Theory Strong_Relations
section ‹Notions of Equivalence›
subsection ‹Strong Simulation and Bisimulation›
theory Strong_Relations
imports Transition_Systems
begin
context lts
begin
definition simulation ::
‹('s ⇒ 's ⇒ bool) ⇒ bool›
where
‹simulation R ≡ ∀ p q. R p q ⟶
(∀ p' a. p ⟼a p' ⟶
(∃ q'. R p' q' ∧ (q ⟼a q')))›
definition bisimulation ::
‹('s ⇒ 's ⇒ bool) ⇒ bool›
where
‹bisimulation R ≡ ∀ p q. R p q ⟶
(∀ p' a. p ⟼a p' ⟶
(∃ q'. R p' q' ∧ (q ⟼a q'))) ∧
(∀ q' a. q ⟼a q' ⟶
(∃ p'. R p' q' ∧ (p ⟼a p')))›
lemma bisim_ruleformat:
assumes ‹bisimulation R›
and ‹R p q›
shows
‹p ⟼a p' ⟹ (∃ q'. R p' q' ∧ (q ⟼a q'))›
‹q ⟼a q' ⟹ (∃ p'. R p' q' ∧ (p ⟼a p'))›
using assms unfolding bisimulation_def by auto
end
end