Finitary CCS: syntax and operational semantics #
Co-label: swap input/output.
Equations
- (CCS.Label.inp n).co = CCS.Label.out n
- (CCS.Label.out n).co = CCS.Label.inp n
Instances For
Rename the underlying name.
Equations
- CCS.Label.map f (CCS.Label.inp n) = CCS.Label.inp (f n)
- CCS.Label.map f (CCS.Label.out n) = CCS.Label.out (f n)
Instances For
Strip a label down to Name, failing on the bound name none.
Equations
- (CCS.Label.inp none).strip = none
- (CCS.Label.inp (some n)).strip = some (CCS.Label.inp n)
- (CCS.Label.out none).strip = none
- (CCS.Label.out (some n)).strip = some (CCS.Label.out n)
Instances For
Rename the underlying name.
Equations
Instances For
Strip an action down to Name, failing if it mentions the bound name.
Equations
Instances For
Finitary CCS, well-scoped: res binds a name via Option.
- nil {Name : Type u} : Process Name
- pre {Name : Type u} : Action Name → Process Name → Process Name
- sum {Name : Type u} : Process Name → Process Name → Process Name
- par {Name : Type u} : Process Name → Process Name → Process Name
- res {Name : Type u} : Process (Option Name) → Process Name
Instances For
Operational semantics of CCS.
- pre {Name : Type u_1} {α : Action Name} {P : Process Name} : Step (Process.pre α P) α P
- sumL {Name : Type u_1} {P : Process Name} {α : Action Name} {P' Q : Process Name} : Step P α P' → Step (P.sum Q) α P'
- sumR {Name : Type u_1} {P Q : Process Name} {α : Action Name} {Q' : Process Name} : Step Q α Q' → Step (P.sum Q) α Q'
- parL {Name : Type u_1} {P : Process Name} {α : Action Name} {P' Q : Process Name} : Step P α P' → Step (P.par Q) α (P'.par Q)
- parR {Name : Type u_1} {P Q : Process Name} {α : Action Name} {Q' : Process Name} : Step Q α Q' → Step (P.par Q) α (P.par Q')
- parSync {Name : Type u_1} {P : Process Name} {a : Label Name} {P' Q Q' : Process Name} : Step P (Action.vis a) P' → Step Q (Action.vis a.co) Q' → Step (P.par Q) Action.tau (P'.par Q')
- res {Name : Type u_1} {P : Process (Option Name)} {α : Action Name} {P' : Process (Option Name)} : Step P (Action.map some α) P' → Step P.res α P'.res