(* Title:TheCalculusofCommunicatingSystems Author/Maintainer:JesperBengtson(jebe@itu.dk),2012
*) theory Weak_Bisim imports Weak_Sim Strong_Bisim_SC Struct_Cong begin
lemma weakMonoCoinduct: "∧x y xa xb P Q. x ≤ y ==> (Q ↝^<{(xb, xa). x xb xa}> P) ⟶ (Q ↝^<{(xb, xa). y xb xa}> P)" apply auto apply(rule weakMonotonic) by(auto dest: le_funE)
lemma strongAppend: fixes P :: ccs and Q :: ccs and R :: ccs and Rel :: "(ccs × ccs) set" and Rel' :: "(ccs × ccs) set" and Rel'' :: "(ccs × ccs) set"
assumes PSimQ: "P ↝^<Rel> Q" and QSimR: "Q ↝[Rel'] R" and Trans: "Rel O Rel' ⊆ Rel''"
shows"P ↝^<Rel''> R" using assms by(simp add: weakSimulation_def simulation_def) blast
lemma weakBisimWeakUpto[case_names cSim cSym, consumes 1]: assumes p: "(P, Q) ∈ X" and rSim: "∧P Q. (P, Q) ∈ X ==> P ↝^<(weakBisimulation O X O bisim)> Q" and rSym: "∧ P Q. (P, Q) ∈ X ==> (Q, P) ∈ X"
shows"P ≈ Q" proof - let ?X = "weakBisimulation O X O weakBisimulation" let ?Y = "weakBisimulation O X O bisim" from‹(P, Q) ∈ X›have"(P, Q) ∈ ?X"by(blast intro: Strong_Bisim.reflexive reflexive) thus ?thesis proof(coinduct rule: weakBisimWeakCoinduct) case(cSim P Q)
{ fix P P' Q' Q assume"P ≈ P'"and"(P', Q') ∈ X"and"Q' ≈ Q" from‹(P', Q') ∈ X›have"(P', Q') ∈ ?Y"by(blast intro: reflexive Strong_Bisim.reflexive) moreoverfrom‹Q' ≈ Q›have"Q' ↝^<weakBisimulation> Q"by(rule weakBisimulationE) moreoverhave"?Y O weakBisimulation ⊆ ?X"by(blast dest: bisimWeakBisimulation transitive) moreover { fix P Q assume"(P, Q) ∈ ?Y" thenobtain P' Q' where"P ≈ P'"and"(P', Q') ∈ X"and"Q' ∼ Q"by auto from‹(P', Q') ∈ X›have"P' ↝^<?Y> Q'"by(rule rSim) moreoverfrom‹Q' ∼ Q›have"Q' ↝[bisim] Q"by(rule bisimE) moreoverhave"?Y O bisim ⊆ ?Y"by(auto dest: Strong_Bisim.transitive) ultimatelyhave"P' ↝^<?Y> Q"by(rule strongAppend) moreovernote‹P ≈ P'› moreoverhave"weakBisimulation O ?Y ⊆ ?Y"by(blast dest: transitive) ultimatelyhave"P ↝^<?Y> Q"using weakBisimulationE(1) by(rule_tac Weak_Sim.transitive)
} ultimatelyhave"P' ↝^<?X> Q"by(rule Weak_Sim.transitive) moreovernote‹P ≈ P'› moreoverhave"weakBisimulation O ?X ⊆ ?X"by(blast dest: transitive) ultimatelyhave"P ↝^<?X> Q"using weakBisimulationE(1) by(rule_tac Weak_Sim.transitive)
} with‹(P, Q) ∈ ?X›show ?caseby auto next case(cSym P Q) thus ?case apply auto by(blast dest: bisimE rSym weakBisimulationE) qed qed
lemma weakBisimUpto[case_names cSim cSym, consumes 1]: assumes p: "(P, Q) ∈ X" and rSim: "∧R S. (R, S) ∈ X ==> R ↝^<(weakBisimulation O (X ∪ weakBisimulation) O bisim)> S" and rSym: "∧R S. (R, S) ∈ X ==> (S, R) ∈ X"
shows"P ≈ Q" proof - from p have"(P, Q) ∈ X ∪ weakBisimulation"by simp thus ?thesis apply(coinduct rule: weakBisimWeakUpto) apply(auto dest: rSim rSym weakBisimulationE) apply(rule weakMonotonic) apply(blast dest: weakBisimulationE) apply(auto simp add: relcomp_unfold) by(metis reflexive Strong_Bisim.reflexive transitive) qed
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.