Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/Archive-of-Formal-Proofs/thys/CCS/   (Sammlung formaler Beweise Version 2026-5©)  Datei vom 29.4.2026 mit Größe 3 kB image not shown  

Quelle  Weak_Bisim_Pres.thy

  Sprache: Isabelle
 

(* 
   Title: The Calculus of Communicating Systems   
   Author/Maintainer: Jesper Bengtson (jebe@itu.dk), 2012
*)

theory Weak_Bisim_Pres
  imports Weak_Bisim Weak_Sim_Pres Strong_Bisim_SC
begin

lemma actPres:
  fixes P :: ccs
  and   Q :: ccs
  and   α :: act

  assumes "P Q"

  shows "α.(P) α.(Q)"
proof -
  let ?X = "{(α.(P), α.(Q)) | P Q. P Q}"
  from assms have "(α.(P), α.(Q)) ?X" by auto
  thus ?thesis 
    by(coinduct rule: weakBisimulationCoinduct) (auto dest: weakBisimulationE intro: actPres)
qed

lemma parPres:
  fixes P :: ccs
  and   Q :: ccs
  and   R :: ccs

  assumes "P Q"

  shows "P R Q R"
proof -
  let ?X = "{(P R, Q R) | P Q R. P Q}"
  from assms have "(P R, Q R) ?X" by blast
  thus ?thesis
    by(coinduct rule: weakBisimulationCoinduct, auto) 
      (blast intro: parPres dest: weakBisimulationE)+
qed

lemma resPres: 
  fixes P :: ccs
  and   Q :: ccs
  and   x :: name

  assumes "P Q"

  shows "(νx)P (νx)Q"
proof -
  let ?X = "{((νx)P, (νx)Q) | x P Q. P Q}"
  from assms have "((νx)P, (νx)Q) ?X" by auto
  thus ?thesis
    by(coinduct rule: weakBisimulationCoinduct) (auto intro: resPres dest: weakBisimulationE)
qed

lemma bangPres:
  fixes P :: ccs
  and   Q :: ccs

  assumes "P Q"

  shows "!P !Q"
proof -
  let ?X = "bangRel weakBisimulation"
  let ?Y = "weakBisimulation O ?X O bisim"
  {
    fix R T P Q
    assume "R T" and "(P, Q) ?Y"
    from (P, Q) ?Y obtain P' Q' where "P P'" and "(P', Q') ?X" and "Q' Q"
      by auto
    from P P' have "R P R P'" 
      by(metis parPres bisimWeakBisimulation transitive parComm)
    moreover from R T (P', Q') ?X have "(R P', T Q') ?X" by(auto dest: BRPar)
    moreover from Q' Q have "T Q' T Q" by(metis Strong_Bisim_Pres.parPres Strong_Bisim.transitive parComm)
    ultimately have "(R P, T Q) ?Y" by auto
  } note BRParAux = this

  from assms have "(!P, !Q) ?X" by(auto intro: BRBang)
  thus ?thesis
  proof(coinduct rule: weakBisimWeakUpto)
    case(cSim P Q)
    from (P, Q) bangRel weakBisimulation show ?case
    proof(induct)
      case(BRBang P Q)
      note P Q weakBisimulationE(1) BRParAux
      moreover have "?X ?Y" by(auto intro: Strong_Bisim.reflexive reflexive)
      moreover {
        fix P Q
        assume "(P !P, Q) ?Y"
        hence "(!P, Q) ?Y" using bangUnfold
          by(blast dest: Strong_Bisim.transitive transitive bisimWeakBisimulation)
      }
      ultimately show ?case by(rule bangPres)
    next
      case(BRPar R T P Q)
      from R T have "R ^<weakBisimulation> T" by(rule weakBisimulationE)
      moreover note R T P ^<?Y> Q
      moreover from (P, Q) ?X have "(P, Q) ?Y" by(blast intro: Strong_Bisim.reflexive reflexive)
      ultimately show ?case using BRParAux by(rule Weak_Sim_Pres.parPresAux)
    qed
  next
    case(cSym P Q)
    thus ?case
      by induct (auto dest: weakBisimulationE intro: BRPar BRBang)
  qed
qed

end


Messung V0.5 in Prozent
C=86 H=97 G=91

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.