Documentation

Cslib.Languages.CCS.Semantics

Semantics of CCS #

Main definitions #

inductive Cslib.CCS.Tr {Name : Type u} {Constant : Type v} {defs : ConstantOption (Process Name Constant)} :
Process Name ConstantAct NameProcess Name ConstantProp

The transition relation for CCS. This is a direct formalisation of the one found in [San].

Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        abbrev Cslib.CCS.lts {Name : Type u} {Constant : Type v} {defs : ConstantOption (Process Name Constant)} :
        LTS (Process Name Constant) (Act Name)
        Equations
        Instances For
          @[instance_reducible]
          instance Cslib.CCS.instHasTauAct {Name : Type u} :
          HasTau (Act Name)
          Equations
          inductive Cslib.CCS.Terminated {Name : Type u} {Constant : Type v} :
          Process Name ConstantProp

          A process is (successfully) terminated if it is a composition of nils.

          Instances For
            theorem Cslib.CCS.not_tr_of_terminated {Name : Type u} {Constant : Type v} {defs : ConstantOption (Process Name Constant)} {p : Process Name Constant} {μ : Act Name} {p' : Process Name Constant} (h : Terminated p) :
            ¬lts.Tr p μ p'

            A terminated process has no outgoing transitions.

            theorem Cslib.CCS.pre_tr {Name : Type u} {Constant : Type v} {defs : ConstantOption (Process Name Constant)} {μ : Act Name} {p : Process Name Constant} {μ' : Act Name} {p' : Process Name Constant} (h : lts.Tr (Process.pre μ p) μ' p') :
            μ = μ' p = p'

            Inversion lemma for prefix transitions.

            theorem Cslib.CCS.const_tr {Name : Type u} {Constant : Type v} {defs : ConstantOption (Process Name Constant)} {k : Constant} {μ : Act Name} {p' : Process Name Constant} (h : lts.Tr (Process.const k) μ p') :
            ∃ (p : Process Name Constant), defs k = some p lts.Tr p μ p'

            Inversion lemma for constant transitions.

            theorem Cslib.CCS.pre_deterministicState {Name : Type u} {Constant : Type v} {defs : ConstantOption (Process Name Constant)} {μ : Act Name} {p : Process Name Constant} :

            Prefixes are deterministic.

            theorem Cslib.CCS.const_deterministicStateLabel {Name : Type u} {Constant : Type v} {defs : ConstantOption (Process Name Constant)} {k : Constant} {p : Process Name Constant} {μ : Act Name} (hdef : defs k = some p) (h : lts.DeterministicStateLabel p μ) :

            Constants are deterministic if their definition is deterministic.

            theorem Cslib.CCS.res_deterministicStateLabel {Name : Type u} {Constant : Type v} {defs : ConstantOption (Process Name Constant)} {p : Process Name Constant} {μ : Act Name} {μ' : Name} (h : lts.DeterministicStateLabel p μ) :

            Restriction is deterministic if its subterm is deterministic.