Structure bisimulationTheory


Source File Identifier index Theory binding index

signature bisimulationTheory =
sig
  type thm = Thm.thm
  
  (*  Definitions  *)
    val BISIM_def : thm
    val ETS_def : thm
    val WBISIM_def : thm
    val WTS_def : thm
  
  (*  Theorems  *)
    val BISIM_ID : thm
    val BISIM_IMP_WBISIM : thm
    val BISIM_INV : thm
    val BISIM_O : thm
    val BISIM_REL_IMP_WBISIM_REL : thm
    val BISIM_REL_IS_BISIM : thm
    val BISIM_REL_IS_EQUIV_REL : thm
    val BISIM_REL_RSUBSET_WBISIM_REL : thm
    val BISIM_REL_cases : thm
    val BISIM_REL_coind : thm
    val BISIM_REL_def : thm
    val BISIM_REL_rules : thm
    val BISIM_RUNION : thm
    val ETS_REFL : thm
    val ETS_TRANS : thm
    val ETS_WTS_ETS : thm
    val TS_IMP_ETS : thm
    val TS_IMP_WTS : thm
    val WBISIM_ID : thm
    val WBISIM_INV : thm
    val WBISIM_O : thm
    val WBISIM_REL_IS_EQUIV_REL : thm
    val WBISIM_REL_IS_WBISIM : thm
    val WBISIM_REL_cases : thm
    val WBISIM_REL_coind : thm
    val WBISIM_REL_def : thm
    val WBISIM_REL_rules : thm
    val WBISIM_RUNION : thm
  
  val bisimulation_grammars : type_grammar.grammar * term_grammar.grammar
(*
   [relation] Parent theory of "bisimulation"
   
   [BISIM_def]  Definition
      
      ⊢ ∀ts R.
            BISIM ts R ⇔
            ∀p q l.
                R p q ⇒
                (∀p'. ts p l p' ⇒ ∃q'. ts q l q' ∧ R p' q') ∧
                ∀q'. ts q l q' ⇒ ∃p'. ts p l p' ∧ R p' q'
   
   [ETS_def]  Definition
      
      ⊢ ∀ts tau. ETS ts tau = (λx y. ts x tau y)⃰
   
   [WBISIM_def]  Definition
      
      ⊢ ∀ts tau R.
            WBISIM ts tau R ⇔
            ∀p q.
                R p q ⇒
                (∀l.
                     l ≠ tau ⇒
                     (∀p'. ts p l p' ⇒ ∃q'. WTS ts tau q l q' ∧ R p' q') ∧
                     ∀q'. ts q l q' ⇒ ∃p'. WTS ts tau p l p' ∧ R p' q') ∧
                (∀p'. ts p tau p' ⇒ ∃q'. ETS ts tau q q' ∧ R p' q') ∧
                ∀q'. ts q tau q' ⇒ ∃p'. ETS ts tau p p' ∧ R p' q'
   
   [WTS_def]  Definition
      
      ⊢ ∀ts tau.
            WTS ts tau =
            (λp l q. ∃p' q'. ETS ts tau p p' ∧ ts p' l q' ∧ ETS ts tau q' q)
   
   [BISIM_ID]  Theorem
      
      ⊢ ∀ts. BISIM ts $=
   
   [BISIM_IMP_WBISIM]  Theorem
      
      ⊢ ∀ts tau R. BISIM ts R ⇒ WBISIM ts tau R
   
   [BISIM_INV]  Theorem
      
      ⊢ ∀ts R. BISIM ts R ⇒ BISIM ts Rᵀ
   
   [BISIM_O]  Theorem
      
      ⊢ ∀ts R R'. BISIM ts R ∧ BISIM ts R' ⇒ BISIM ts (R' ∘ᵣ R)
   
   [BISIM_REL_IMP_WBISIM_REL]  Theorem
      
      ⊢ ∀ts tau p q. BISIM_REL ts p q ⇒ WBISIM_REL ts tau p q
   
   [BISIM_REL_IS_BISIM]  Theorem
      
      ⊢ ∀ts. BISIM ts (BISIM_REL ts)
   
   [BISIM_REL_IS_EQUIV_REL]  Theorem
      
      ⊢ ∀ts. equivalence (BISIM_REL ts)
   
   [BISIM_REL_RSUBSET_WBISIM_REL]  Theorem
      
      ⊢ ∀ts tau. BISIM_REL ts ⊆ᵣ WBISIM_REL ts tau
   
   [BISIM_REL_cases]  Theorem
      
      ⊢ ∀ts a0 a1.
            BISIM_REL ts a0 a1 ⇔
            ∀l.
                (∀p'. ts a0 l p' ⇒ ∃q'. ts a1 l q' ∧ BISIM_REL ts p' q') ∧
                ∀q'. ts a1 l q' ⇒ ∃p'. ts a0 l p' ∧ BISIM_REL ts p' q'
   
   [BISIM_REL_coind]  Theorem
      
      ⊢ ∀ts BISIM_REL'.
            (∀a0 a1.
                 BISIM_REL' a0 a1 ⇒
                 ∀l.
                     (∀p'. ts a0 l p' ⇒ ∃q'. ts a1 l q' ∧ BISIM_REL' p' q') ∧
                     ∀q'. ts a1 l q' ⇒ ∃p'. ts a0 l p' ∧ BISIM_REL' p' q') ⇒
            ∀a0 a1. BISIM_REL' a0 a1 ⇒ BISIM_REL ts a0 a1
   
   [BISIM_REL_def]  Theorem
      
      ⊢ ∀ts. BISIM_REL ts = (λp q. ∃R. BISIM ts R ∧ R p q)
   
   [BISIM_REL_rules]  Theorem
      
      ⊢ ∀ts p q.
            (∀l.
                 (∀p'. ts p l p' ⇒ ∃q'. ts q l q' ∧ BISIM_REL ts p' q') ∧
                 ∀q'. ts q l q' ⇒ ∃p'. ts p l p' ∧ BISIM_REL ts p' q') ⇒
            BISIM_REL ts p q
   
   [BISIM_RUNION]  Theorem
      
      ⊢ ∀ts R R'. BISIM ts R ∧ BISIM ts R' ⇒ BISIM ts (R ∪ᵣ R')
   
   [ETS_REFL]  Theorem
      
      ⊢ ∀ts tau p. ETS ts tau p p
   
   [ETS_TRANS]  Theorem
      
      ⊢ ∀ts tau x y z. ETS ts tau x y ∧ ETS ts tau y z ⇒ ETS ts tau x z
   
   [ETS_WTS_ETS]  Theorem
      
      ⊢ ∀ts tau p p1 l p2 p'.
            ETS ts tau p p1 ∧ WTS ts tau p1 l p2 ∧ ETS ts tau p2 p' ⇒
            WTS ts tau p l p'
   
   [TS_IMP_ETS]  Theorem
      
      ⊢ ∀ts tau p q. ts p tau q ⇒ ETS ts tau p q
   
   [TS_IMP_WTS]  Theorem
      
      ⊢ ∀ts tau p l q. ts p l q ⇒ WTS ts tau p l q
   
   [WBISIM_ID]  Theorem
      
      ⊢ ∀ts tau. WBISIM ts tau $=
   
   [WBISIM_INV]  Theorem
      
      ⊢ ∀ts tau R. WBISIM ts tau R ⇒ WBISIM ts tau Rᵀ
   
   [WBISIM_O]  Theorem
      
      ⊢ ∀ts tau R R'.
            WBISIM ts tau R ∧ WBISIM ts tau R' ⇒ WBISIM ts tau (R' ∘ᵣ R)
   
   [WBISIM_REL_IS_EQUIV_REL]  Theorem
      
      ⊢ ∀ts tau. equivalence (WBISIM_REL ts tau)
   
   [WBISIM_REL_IS_WBISIM]  Theorem
      
      ⊢ ∀ts tau. WBISIM ts tau (WBISIM_REL ts tau)
   
   [WBISIM_REL_cases]  Theorem
      
      ⊢ ∀ts tau a0 a1.
            WBISIM_REL ts tau a0 a1 ⇔
            (∀l.
                 l ≠ tau ⇒
                 (∀p'.
                      ts a0 l p' ⇒
                      ∃q'. WTS ts tau a1 l q' ∧ WBISIM_REL ts tau p' q') ∧
                 ∀q'.
                     ts a1 l q' ⇒
                     ∃p'. WTS ts tau a0 l p' ∧ WBISIM_REL ts tau p' q') ∧
            (∀p'.
                 ts a0 tau p' ⇒
                 ∃q'. ETS ts tau a1 q' ∧ WBISIM_REL ts tau p' q') ∧
            ∀q'.
                ts a1 tau q' ⇒
                ∃p'. ETS ts tau a0 p' ∧ WBISIM_REL ts tau p' q'
   
   [WBISIM_REL_coind]  Theorem
      
      ⊢ ∀ts tau WBISIM_REL'.
            (∀a0 a1.
                 WBISIM_REL' a0 a1 ⇒
                 (∀l.
                      l ≠ tau ⇒
                      (∀p'.
                           ts a0 l p' ⇒
                           ∃q'. WTS ts tau a1 l q' ∧ WBISIM_REL' p' q') ∧
                      ∀q'.
                          ts a1 l q' ⇒
                          ∃p'. WTS ts tau a0 l p' ∧ WBISIM_REL' p' q') ∧
                 (∀p'.
                      ts a0 tau p' ⇒
                      ∃q'. ETS ts tau a1 q' ∧ WBISIM_REL' p' q') ∧
                 ∀q'.
                     ts a1 tau q' ⇒
                     ∃p'. ETS ts tau a0 p' ∧ WBISIM_REL' p' q') ⇒
            ∀a0 a1. WBISIM_REL' a0 a1 ⇒ WBISIM_REL ts tau a0 a1
   
   [WBISIM_REL_def]  Theorem
      
      ⊢ ∀ts tau. WBISIM_REL ts tau = (λp q. ∃R. WBISIM ts tau R ∧ R p q)
   
   [WBISIM_REL_rules]  Theorem
      
      ⊢ ∀ts tau p q.
            (∀l.
                 l ≠ tau ⇒
                 (∀p'.
                      ts p l p' ⇒
                      ∃q'. WTS ts tau q l q' ∧ WBISIM_REL ts tau p' q') ∧
                 ∀q'.
                     ts q l q' ⇒
                     ∃p'. WTS ts tau p l p' ∧ WBISIM_REL ts tau p' q') ∧
            (∀p'.
                 ts p tau p' ⇒
                 ∃q'. ETS ts tau q q' ∧ WBISIM_REL ts tau p' q') ∧
            (∀q'.
                 ts q tau q' ⇒
                 ∃p'. ETS ts tau p p' ∧ WBISIM_REL ts tau p' q') ⇒
            WBISIM_REL ts tau p q
   
   [WBISIM_RUNION]  Theorem
      
      ⊢ ∀ts tau R R'.
            WBISIM ts tau R ∧ WBISIM ts tau R' ⇒ WBISIM ts tau (R ∪ᵣ R')
   
   
*)
end


Source File Identifier index Theory binding index

HOL 4, Kananaskis-13