Calculus of Communicating Systems (CCS) #
CCS [Mil80], as presented in [San]. In the semantics (see CCS.lts
), we adopt the
option of constant definitions (K = P).
Main definitions #
CCS.Process
: processes.CCS.Context
: contexts.
Main results #
CCS.Context.complete
: any process is equal to some context filled an atomic process (nil or a constant).
References #
Equations
Processes.
- nil {Name : Type u} {Constant : Type v} : Process Name Constant
- pre {Name : Type u} {Constant : Type v} (μ : Act Name) (p : Process Name Constant) : Process Name Constant
- par {Name : Type u} {Constant : Type v} (p q : Process Name Constant) : Process Name Constant
- choice {Name : Type u} {Constant : Type v} (p q : Process Name Constant) : Process Name Constant
- res {Name : Type u} {Constant : Type v} (a : Name) (p : Process Name Constant) : Process Name Constant
- const {Name : Type u} {Constant : Type v} (c : Constant) : Process Name Constant
Instances For
instance
CCS.instDecidableEqProcess
{Name✝ : Type u_1}
{Constant✝ : Type u_2}
[DecidableEq Name✝]
[DecidableEq Constant✝]
:
DecidableEq (Process Name✝ Constant✝)
Equations
Co action.
Equations
- CCS.Act.co Name (CCS.Act.name a) = CCS.Act.coname a
- CCS.Act.co Name (CCS.Act.coname a) = CCS.Act.name a
- CCS.Act.co Name CCS.Act.τ = CCS.Act.τ
Instances For
Contexts.
- hole {Name : Type u} {Constant : Type v} : Context Name Constant
- pre {Name : Type u} {Constant : Type v} (μ : Act Name) (c : Context Name Constant) : Context Name Constant
- parL {Name : Type u} {Constant : Type v} (c : Context Name Constant) (q : Process Name Constant) : Context Name Constant
- parR {Name : Type u} {Constant : Type v} (p : Process Name Constant) (c : Context Name Constant) : Context Name Constant
- choiceL {Name : Type u} {Constant : Type v} (c : Context Name Constant) (q : Process Name Constant) : Context Name Constant
- choiceR {Name : Type u} {Constant : Type v} (p : Process Name Constant) (c : Context Name Constant) : Context Name Constant
- res {Name : Type u} {Constant : Type v} (a : Name) (c : Context Name Constant) : Context Name Constant
Instances For
instance
CCS.instDecidableEqContext
{Name✝ : Type u_1}
{Constant✝ : Type u_2}
[DecidableEq Name✝]
[DecidableEq Constant✝]
:
DecidableEq (Context Name✝ Constant✝)
Equations
def
CCS.Context.fill
{Name : Type u}
{Constant : Type v}
(c : Context Name Constant)
(p : Process Name Constant)
:
Process Name Constant
Replaces the hole in a Context
with a Process
.
Equations
- CCS.Context.hole.fill p = p
- (CCS.Context.pre μ c_2).fill p = CCS.Process.pre μ (c_2.fill p)
- (c_2.parL r).fill p = (c_2.fill p).par r
- (CCS.Context.parR r c_2).fill p = r.par (c_2.fill p)
- (c_2.choiceL r).fill p = (c_2.fill p).choice r
- (CCS.Context.choiceR r c_2).fill p = r.choice (c_2.fill p)
- (CCS.Context.res a c_2).fill p = CCS.Process.res a (c_2.fill p)