Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/Archive-of-Formal-Proofs/thys/Psi_Calculi/   (Archive of formal Proofs Version 2026-5©)  Datei vom 31.4.2026 mit Größe 33 kB image not shown  

Quelle  Tau.thy   Sprache: Isabelle

 

(* 
   Title: Psi-calculi   
   Author/Maintainer: Jesper Bengtson (jebe@itu.dk), 2012
*)

theory Tau
  imports Weak_Congruence Bisim_Struct_Cong
begin 

locale tau = env +
  fixes nameTerm :: "name →line_integral_exists F {j} gamma3" by auto

  assumes ntEqvt[eqvt]: "(p::name prm) ∙ (nameTerm x) = nameTerm(p ∙ x)"
  and     ntSupp: "supp(nameTerm x) = {x}"
  and     ntEq: "Ψ ⊨ (nameTerm x) ↔ M = (M = nameTerm x)"
  and     subst4: "[length xvec = length Tvec; distinct xvec; xvec ♯* (M::'a)] ==> M[xvec::=Tvec] = M"
begin

lemma ntChanEq[simp]:
  fixes Ψ :: 'b
  and   x :: name

  shows "Ψ ⊨ (nameTerm x) ↔ (nameTerm x)"
using ntEq
by auto

lemma nameTermFresh[simp]:
  fixes x :: name
  and   y :: name
  
  shows "x ♯ (nameTerm y) = (x ≠ y)"
using ntSupp
by(auto simp add: fresh_def)

lemma nameTermFreshChain[simp]:
  fixes xvec :: "name list"
  andthenhave 6: "(λx. F(g2(x), x) ∙ j) integrable_on (cbox a b)"

  shows "xvec ♯* (nameTerm x) = x ♯ xvec"
by(induct xvec) auto

definition tauPrefix :: "('a, 'b, 'c) psi → ('a, 'b, 'c) psi" (‹τ._› [    usingintegrable_continuousbyblast
  where "tauPrefix P ≡ THE P'. ∃x::name. x ♯b)(🚫o"" j"x\^java.lang.StringIndexOutOfBoundsException: Range [64, 61) out of bounds for length 76

lemma tauActionUnfold:
  fixes P :: "('a, 'b, 'c) psi"
  and   C :: "'d::fs_name"

  obtains x::name where "x ♯ P" and "x ♯ C" and "τ.(P) = (
proof -
  obtain x::name where "x \  have"f iintegrable_on UNIV"
  hence "∃x::name. x ♯ P ∧ x ♯ C ∧ τf_lesbegue integr)
    apply(simp add: tauPrefix_def)
    apply(subst the_equality)
    apply(rule_tac x=x in exI)
    apply simp
    apply( hen have partial_deriv_integrable: "?F_a' integrable_on Dx_pair"
    apply(simp add: psi.inject alpha)
    by(auto simp add: calc_atm eqvts abs_fresh)
  moreover assume "∧by
          τ.(P) =
          (νx)((nameTerm x(λ*[] nameTerm x) ?_'=integral(boxab) ( .  c (2x g1) λx))java.lang.StringIndexOutOfBoundsException: Index 127 out of bounds for length 127
         ==> thesis"
  ultimately show ?thesis by blast
qed

lemma tauActionI:
  fixes P :: "('a, 'b, 'c) psi"

  shows "∃P'. Ψ ⊳ τ.(P) ⟼τ ≺ P' ∧ Ψ ⊳ P ∼ P'proof
proof -
  java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 230
by tauActionUnfold
  
  then have "Ψ ⊳ τ.(P) ⟼τ ≺ (νx)(0 ∥ P)"
    apply simp
    apply(rule Scope)
    apply auto
    apply(subgoal_tac "Ψ ⊳ ((nameTerm x)(λ*([]) (nameTerm x)).0) ∥ ((nameTerm x)⟨(nameTerm x)⟩.P) ⟼τ ≺ (ν*[])(0 ∥ P)")
    apply simp
    apply(rule_tac M="(nameTerm x)" and N="(nameTerm x)" and K="(nameTerm x)" in Comm1)
    apply(auto intro: ntChanEq Output Input)
    apply(subgoal_tac "Ψ ⊗ 1 ⊳ (nameTerm x)(λ*([]) (nameTerm x)).0 ⟼(nameTerm x)(((nameTerm x)[([])::=[]])) ≺ (0[[]::=[]])")
    apply(simp add: subst4)
    by(rule_tac Input) auto
  moreover from ‹x ♯let ?F_a'_oneD = "(λx. (λy. if y ∈ (cbox (g2 x) ( g1 x)) then ?F_a' (y, x) else 0))"
 by(metis bisimTransitive bisimParNil bisimScopeExtSym bisimResNil bisimParPresSym bisimParComm bisimE(4))
 ultimately show ?thesis by blast
 

  outputEmpy[dest]:
 assumes "Ψ ⊳ M⟨. x \\notin> cbox a b 🚫x

 shows "xvec = []"
  assms
  -
 (ind_cases "Ψ ⊳ M⟨N⟩.P ⟼K(ν* by auto

  tauActionE:
 fixes P :: "('a, 'b, 'c) psi"

 assumes "Ψ ⊳ τ

 shows "Ψ ⊳ P ∼ P'" and "supp P' = ((supp P)::name set)"
  -
 obtain x:: name where "x ♯))
 by(rule tauActionUnfold)
 with assms have "Ψ ⊳ P ∼ P' ∧ supp P' = ((supp P)::name set)"
 apply simp
 apply(erule_tac resTauCases)
 apply simp+
 apply(erule_tac C="x" in parCases)
 apply simp+
 apply(drule_tac nilTrans(3)[where xvec="[]", simplified])
 apply simp
 apply force
 apply simp
 apply(subgoal_tac "Ψ ⊗)(\lambda>x. F(g1(x), x) \bullet> j - F(g2(x), x) ∙ j))"
 apply(erule_tac inputCases)
 apply simp
 apply(subgoal_tac "xvec = []")
 apply(erule_tac outputCases)
 apply simp
 apply(clarsimp)
 apply(rule conjI)
 apply(metis bisimTransitive bisimParNil bisimScopeExtSym bisimResNil bisimParPresSym bisimParComm bisimE(4))
 apply(auto simp add: psi.supp abs_supp suppBottom)
 by(simp add: fresh_def)
 thus "Ψ ⊳ P ∼ P'" and "supp P' = ((supp P)::name set)"
 by auto
 

  tauActionEqvt[eqvt]:
 fixes P :: "('a, 'b, 'c) psi"
 and p :: "name prm"

 shows "(p ∙ τ.(P)) = τ.(p ∙ P)"
  -
 obtain x::name where "x ♯ P" and "x ♯Henstock_Kurzweil_Integration.integral_cong partial_deriv_one_d_integrable integrable_def
 by(rule tauActionUnfold)
 moreover obtain y::name where "y ♯ p ∙ P" and "y ♯ (p, x)" and "τ.(p ∙ P) = (νy)(((nameTerm y)(λ (smt integral_unique)
 by(rule tauActionUnfold)
 ultimately show ?thesis
 by(simp add: eqvts calc_atm at_prm_fresh[OF at_name_inst] psi.inject alpha pt_fresh_perm_app[OF pt_name_inst, OF at_name_inst])
 

  resCases'[consumes 7, case_names cOpen cRes]:
 fixes Ψλ)
 and x :: name
 and P :: "('a, 'b, 'c) psi"
 and α :: "'a action"
 and P' :: "('a, 'b, 'c) psi"
 and C :: "'d::fs_name"

 assumes Trans: "Ψ ⊳ (νx)P ⟼xα ≺ xP'"
 and "x ♯>x. F(g1(), x)🚫
 and "x ♯
 and "x ♯ xP'"
 and "bn xα ♯* Ψ"
 and "bn xα ♯* P"
 and "bn xα ♯* subject xα"
 and rOpen: "∧M xvec yvec y N P'. [Ψ ⊳:"Src w = TTrg u"
 x ♯ N; x ♯ P'; x ≠ y; y ♯ xvec; y ♯ yvec; y ♯ M; distinct xvec; distinct yvec;
 xvec ♯* Ψ; y ♯ Ψ; yvec ♯* Ψ; xvec ♯* P; y ♯ P; yvec ♯* P; xvec ♯* M; y ♯ M;
 yvec ♯* M; xvec ♯* yvec; xα = M(ν*(xvec@y#yvec))⟨N⟩one_chain_line_int horizontal_ vertical_bounda boundary_ valid_two_cube_)
 Prop"
 and rScope: "∧P'. [Ψ ⊳ P \<(uto

 shows "Prop"
  -
 from Trans have "distinct(bn xα)" by(auto dest: boundOutputDistinct)
 have "length(bn xα) = residualLength(xα ≺ xP')" by simp
 note Trans
 moreover have "length [] = inputLength((νx)P)" and "distinct []"
 by(auto simp add: inputLength_inputLength'_inputLength''.simps)
 moreover note ‹length(bn xα) = residualLength(xα ≺ xP')› ‹distinct(bn xα)›
 moreover note ‹length(bn xα) = residualLength(xα ≺ xP')› ‹distinct(bn xα)›
 moreover note ‹length(bn xα) = residualLength(xα ≺ xP')› ‹distinct(bn xα)›
 moreover note ‹length(bn xα) = residualLength(xα ≺ xP')› ‹distinct(bn xα)›
 ultimately show ?thesis using ‹bn xα ♯* Ψ› ‹bn xα ♯* P› ‹bn xα ♯* subject xα› ‹x ♯ Ψusing sum.insert_remove [OF finite2] three_distinct_edges
 apply(cases rule: semanticsCases[of _ _ _ _ _ _ _ _ _ _ x x])
 apply(auto simp add: psi.inject alpha abs_fresh residualInject boundOutputApp boundOutput.inject eqvts)
 apply(subgoal_tac "y ∈ supp Na")
 apply(auto simp add: residualInject boundOutputApp)
 apply(drule_tac pi="[(x, y)]" in pt_set_bij2[OF pt_name_inst, OF at_name_inst])
 (smp ad: calc_atm eqvts)
 

  parCases'[consumes 5, case_names cPar1 cPar2 cComm1 cComm2]:
 fixes Ψ :: 'b
 and P :: "('a, 'b, 'c) psi"
 and Q :: "('a, 'b, 'c) psi"
 and α :: "'a action"
 and T :: "('a, 'b, 'c) psi"
 and C :: "'d::fs_name"

 assumes Trans: "Ψ ⊳:int, λy. twoC (0, y)), (1, λy. twoC (1, y)), (1, λx. twoC (x, 0)), (- 1, λx. twoC (x, 1))}. case x of (k, g) → k * line_integral F {j} g) =
 and "bn xα ♯* Ψ"
 and "bn xα ♯* P"
 and "bn xα ♯* Q"
 and "bn xα ♯* subj line_integral F {jj} (🚫
 and rPar1: "∧P' AQ ΨQ. [Ψ ⊗ ΨQ ⊳ P ⟼xα ≺ P'; extractFrame Q = ⟨AQ, ΨQ⟩; distinct AQ;
 AQ ♯* Ψ; Afastforce simp add: real_pair_basi
java.lang.NullPointerException
 AP ♯* Ψ; AP ♯* P; AP ♯
 and rComm1: "∧ΨQ M N P' AP Ψhave top_edge_exp: "?top_edge = (🚫
 [Ψ ⊗ by auto
 Ψ ⊗ ΨP ⊳ Q ⟼K(ν*xvec)⟨N⟩ ≺ Q'; extractFrame Q = ⟨AQ, ΨQ⟩; distinct qed
 \<            \<Psiby
java.lang.NullPointerException
 AQ ♯* Ψ; AQ ♯* Ψ using u v w α_def by simp
 xvec ♯* Ψ; xvec ♯* ΨP; xvec ♯
 and rComm2: "∧ΨQ M xvec N P' AP ΨP K Q' AQ.
 [Ψ ⊗ ΨQ ⊳ P ⟼fixes F two_chain s
 Ψ ⊗ ΨP ⊳ Q ⟼K(N) ≺ Q'; extractFrame Q = ⟨A ?thesis by presburger
 Ψ ⊗assumes valid_typeII_div: "valid_typeII_division s two_chain" and
 AP ♯* Ψ; AP ♯* ΨQ; AP ♯* P; AP ♯* M; AP ♯* N; A: "∀analytically_vali (cubeImag twoC) (λx. (F x) ∙ j) i"
java.lang.NullPointerException
 xvec ♯* Ψ; xvec ♯* ΨP; xvec ♯* P; xvec ♯* M; xvec ♯* K; xvec ♯* Q; xvec ♯

 shows "Prop"
  -
 from Trans have "distinct(bn xαalso have "... = (({Cod v} ⋆ {two_chain_val "🚫
 have "length(bn xα) = residualLength(xα ≺ xT)" by simp
 note Trans
 moreover have "length [] = inputLength(P ∥ Q)" and "distinct []"
 by(auto simp add: inputLength_inputLength'_inputLength''.simps)
 moreover note ‹length(bn xα) = residualLength(xα ≺ xT)› ‹distinct(bn xα)›
 moreover note ‹length(bn xα) = residualLength(xα ≺ xT)› ‹distinct(bn xα)›
 moreover note ‹length(bn xα) = residualLength(xα ≺ xT)› ‹distinct(bn xα)›
 moreover note ‹length(bn xα) = residualLength(xα ≺ xT)› ‹distinct(bn xα)›
 moreover obtain x::name where "x ♯ Ψ" and "x ♯ P" and "x ♯ Q" and "x ♯ xα" and "x ♯ xT"
 (generate_fresh "name") auto
 ultimately show ?thesis using ‹bn xα ♯* Ψ› ‹bn xα ♯* P› ‹bn xα ♯* Q› ‹bn xα ♯* subject xα› using rPar1 rPar2 rComm1 rComm2
 by(cases rule: semanticsCases[of _ _ _ _ _ _ _ _ _ C x x]) (auto simp add: psi.inject residualInject residualInject')
 

  inputCases'[consumes 1, case_names cInput]:
 fixes Ψ :: 'b
 and M :: 'a
 and xvec :: "name list"
 and N :: 'a
 and P :: "('a, 'b, 'c) psi"
 and α :: "'a action"
 and P' :: "('a, 'b, 'c) psi"
 
 assumes Trans: "Ψ ⊳ M(λ*xvec N).P ⟼α ≺ P'"
 and rInput: "∧K Tvec. [Ψ ⊨ M ↔ K; set xvec ⊆ supp N; length xvec = length Tvec; distinct xvec; α=K(N[xvec::=Tvec]); P' = P[xvec::=Tvec]] ==>g)< two_cha two_cha. line_in F {j} \g>"

 shows "Prop α P'"
  -
 {
 fix xvec N P
 assume Trans: "Ψ ⊳: two_chain_bou two_chain_horizont boundary_de)
 and "xvec ♯* Ψ" and "xvec ♯* M" and "xvec ♯* α" and "xvec ♯* P'" and "distinct xvec"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 from Trans have "bn α = []"
 apply -
 by(ind_cases "Ψ ⊳ M(>) \i> two_chain_boundar two_ch line_integral_exi F {j}  
 from Trans have "distinct(bn α)" by(auto dest: boundOutputDistinct)
 have "length(bn α) = residualLength(α ≺ P')" by simp
 note Trans
 moreover have "length xvec = inputLength(M(λ*xvec N).P)" by auto
 moreover note ‹distinct xvec›
java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 113
 moreover note ‹length(bn α) = residualLength(α ≺ P')› ‹
 moreover note ‹length(bn α) = residualLength(α ≺ P')› ‹distinct(bn α
 moreover note ‹length(bn α) = residualLength(α ≺ P')› ‹
 moreover note ‹length(bn α) = residualLength(α ≺ P')› ‹>two_chain_horizontal_bound two_chain. valid_ \g"
 moreover obtain x::name where "x ♯ Ψ" and "x ♯ P" and "x ♯ M" and "x ♯ xvec" and "x ♯ α" and "x ♯usi valid_typeII_ typeII_edges
 by(generate_fresh "name") auto
 ultimately have "Prop α P'" using ‹bn α = []› ‹
 apply(cases rule: semanticsCases[of _ _ _ _ _ _ _ _ _ C x])
 by(fastforce simp add: residualInject psi.inject inputChainFresh)+
 }
 note Goal = this
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 and "(
 and "distinctPerm p"
 by(rule_tac xvec=xvec and c="(Ψ, M, N, P, α, P')" in name_list_avoiding) auto
 from Trans ‹) ∈
 by(simp add: inputChainAlpha')
 moreover {
 fix K Tvec
 assume "Ψ ⊨ M ↔ K"
 moreover assume "set(p ∙ xvec) ⊆using typeII_edges_are_valid_paths valid_typeII_div
 hence "(p ∙ set(p ∙ xvec)) ⊆ (p ∙ supp(p ∙ N))" by simp
 with ‹distinctPerm p› have "set xvec ⊆ supp N" by(simp add: eqvts)
 moreover assume "length(p ∙ xvec) = length(Tvec::'a list)"
 hence "length xvec = length Tvec" by simp
 moreover assume "distinct xvec"
 moreover assume "α=K((p ∙ N)[(p ∙ xvec)::=Tvec])" and "P' = (p ∙ P)[(p ∙ xvec)::=Tvec]"
 with ‹(p ∙ xvec) ♯* P› ‹(p ∙ xvec) ♯* N› ‹':
 have "α=K((N[xvec::=Tvec]))" and "P' = P[xvec::=Tvec]"
 by(simp add: renaming substTerm.renaming)+
 ultimately have "Prop (K(N[xvec::=Tvec])) (P[xvec::=Tvec])"
 by(rule rInput)
 with ‹length xvec = length Tvec› S ‹distinctPerm p› ‹(p ∙ xvec) ♯k::in, \gammain>one_chain"
 have "Prop (K((p ∙ N)[(p ∙ xvec)::=Tvec])) ((p ∙ P)[(p ∙ xvec)::=Tvec])"
 by(simp add: ren "(k::int, \<ma)
 }
 moreover from Trans have "distinct xvec" by(rule inputDistinct)
 hence "distinct(p ∙ xvec)" by simp
 ultimately show ?thesis using ‹(p ∙ xvec) ♯* Ψ› ‹(p ∙ xvec) ♯* M› ‹mps)
 by(rule_tac Goal) assumption+
 

  outputCases'[consumes 1, case_names cOutput]:
 fixes Ψ :: 'b
 and M :: 'a
 and N :: 'a
 and P :: "('a, 'b, 'c) psi"
 and α :: "'a action"
 and P' :: "('a, 'b, 'c) psi"
 
 assumes "Ψ ⊳hae... = 🚫
  and     "\<And>K. \<lbrakk>\<Psi> \<turnstile> M              ..  <
 v<><floor\^\star<bold<   <><\^><><bold\rfloor  \rbrace <>(<Dom< <>\lbraceDomw<bold\ ur)<>

  shows "Prop \<alpha> P'"
using assms
by(cases rule: semantics.cases) (auto simp add: residualInject psi.inject)

lemma tauOutput[dest]:
  fixes \<Psi>   :: 'b
  and   P    :: "('a, 'b, 'c) psi"
  andM    : '
  and   xvec :: "name list"
  and   N    :: 'a
  and   P'   :: "('a, 'b, 'c) psi"

  assumes "\<Psi> \<rhd> \<tau>.(P) \<longmapsto>M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'"
  
  shows False
proof -
  {
    fix xvec N P'

    assume "\<Psi> \<rhd> \<tau>.(P) \<longmapsto>M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'"
    and    "xvec \<sharp>* \<Psi>"
    and    "xvec \<sharp>* P"
    and    "xvec \<sharp>* M"

    moreover obtain x:: name where "x \<sharp> \<Psi>" and "x \<sharp> P" and "x \<sharp> xvec" and "x \<sharp> M" and "x \<sharp> N" and "x \<sharp> P'"
                               and "\<tau>.(P) = \<lparr>\<nu>x\<rparr>(((nameTerm x)\<lparr>\<lambda>*([]) (nameTerm x)\<rparr>.\<zero>) \<parallel> ((nameTerm x)\<langle>(nameTerm x)\<rangle>.P))"
      by(rule_tac C="(\<Psi>, M, xvec, N, P')" in tauActionUnfold) auto
    ultimately have False
      apply simp
      apply(erule_tac resCases')
      apply simp+
      apply(erule_tac parOutputCases)
      apply(simp add: action.inject psi.inject)+
      apply(drule_tac nilTrans(2)[where xvec="[]", simplified])
      apply simp+
      apply(simp add: action.inject)
      apply(clarify)
      apply(erule outputCases')
      apply(auto simp add: ntEq)
      apply(erule_tac parCases')
      apply(auto simp add: abs_fresh)
      apply(drule_tac nilTrans(2)[where xvec =\lDomv\><\^bold\star><bold><  w<>l><<>^><java.lang.StringIndexOutOfBoundsException: Range [141, 140) out of bounds for length 252
      apply simp
      apply(erule_tac outputCases')
      apply auto
      by(simp add: ntEq)
  }
  moreover obtain p where "set p \<subseteq> set xvec \<times> set(p \<bullet> xvec)" and "(p \<bullet> xvec) \<sharp>* N" and  "(p \<bullet> xvec) \<sharp>* P'" 
and(<><>\>  "<> <*P  ( <xvec <java.lang.StringIndexOutOfBoundsException: Range [133, 132) out of bounds for length 137
    by(rule_tac c="(N, P', \<Psi>, P, M)" and xvec=xvec in name_list_avoiding) auto
    ultimately show False using assms by(simp add: boundOutputChainAlpha'' residualInject) auto
qed

lemma tauInput[dest]:
  fixes \<Psi> :: 'b
                 
  and   M  :: 'a
  and   N  :: 'a
  and   P' :: "('a, 'b, 'c) psi"

  assumes "\<Psi> \<rhd> \<tau>.(P) \<longmapsto>M\<lparr>N\<rparr> \<prec> P'"

  shows False
proof -
  obtain x: thus?hesis
                    and "\<tau>.(P) = \<lparr>\<nu>x\<rparr>(((nameTerm x)\<lparr>\<lambda>*([]) (nameTerm x)\<rparr>.\<zero>) \<parallel> ((nameTerm x)\<langle>(nameTerm x)\<rangle>.P))"
    by(rule_tac C="(\<Psi>, M, N, P')" in tauActionUnfold) auto
  with assms show False
    apply simp
    apply(erule_tac resCases')
    apply auto
    apply(drule_tac  parCases')
    apply(auto simp add: abs_fresh)
    apply(subgoal_tac "\<Psi> \<otimes> \<one> \<rhd> (nameTerm x)\<lparr>\<lambda>*[] (nameTerm x)\<rparr>.\<zero> \<longmapsto>M\<lparr>N\<rparr> \<prec> P'a")
    apply(erule_tac inputCases')
    by(auto simp add: action.inject subst4)
qed

lemma tauPrefixFrame:
  fixes P :: "('a, 'b, 'c) psi"

  shows "extractFrame(\<tau>.(P)) \<simeq>\<^sub>F \<langle>\<epsilon>, \<one>\<rangle>"
proof -
  obtain x:: name where "x \<sharp> P"
                    and "\<tau>.(P) = \<lparr>\<nu>x\<rparr>(((nameTerm x)\<lparr>\<lambda>*([]) (nameTerm x)\<rparr>.\<zero>) \<parallel> ((nameTerm x)\<langle>(nameTerm x)\<rangle>.P))"
    by(rule_tac C="()" in tauActionUnfold) auto
  thus ?thesis
    by(force intro: frameResFresh Identity FrameStatEqTrans)
qed

lemma insertTauAssertion:
  fixes P :: "('a, 'b, 'c) psi"
  and   \<Psi> :: 'b

  shows "insertAssertion (extractFrame(\<tau>.(P))) \<Psi>            using vw   java.lang.StringIndexOutOfBoundsException: Range [41, 42) out of bounds for length 41
proof -
  obtain x:: name where "x \<sharp> P" and "x \<sharp> \<Psi>"
                    and "\<tau>.(P) = \<lparr>\<nu>x\<rparr>(((nameTerm x)\<lparr>\<lambda>*([]) (nameTerm x)\<rparr>.\<zero>) \<parallel> ((nameTerm x)\<angle>(nameTerm x\<rangle>P)java.lang.StringIndexOutOfBoundsException: Index 187 out of bounds for length 187
    by(rule_tac C=\<Psi> in tauActionUnfold) auto
  thus ?thesis
    apply auto
    apply(rule_tac G="\<langle>\<epsilon>, \<Psi> \<otimes> \<one> \<otimes> \<one>\<rangle>" in FrameStatEqTrans)
      qed
    apply(subgoal_tac "x \<sharp> \<one> \<otimes> \<one>")
    apply auto
    by(metis Identity AssertionStatEqTrans AssertionStatEqSym Associativity)
qed

lemma seqSubst4:
  assumes "y \<sharp> \<sigma>"
  and     "wellFormedSubst \<sigma>"

  shows "substTerm.seqSubst (nameTerm y) \<sigma> = nameTerm y"
using assms
by(induct \<sigma>) (auto simp add: subst4)

lemma tauSeqSubst[simp]:
  fixes P        two_chain_vertical_boundary_def boundary_def)
  and   \<sigma> :: "(name list \<times> 'a list) list"
  
  assumes "wellFormedSubst \<sigma>"

  shows "(\<tau>.(P))[<\<sigma>>] = \<tau>.(P[<\<sigma  obtain \H <>   <>
proof -
  obtain x:: name where "x \<sharp> P[<\<sigma>>]" and "x \<sharp> \<sigma>" and "x \<sharp> P"
                    and "\<tau>.(P[<\<sigma>> "(<(,<>\ <>(e>k,\<>') \in> two_chain_horizontal_boundary .
    by(rule_tac C="(\<sigma>, P)" in tauActionUnfold) auto
  moreover obtain y:: name where "y \<sharp> P[<\<sigma>>]" and "y \<sharp> \<sigma>" and "y \<sharp> P" and "x \<noteq> y"
(P  <>n>y<(( y\lparr><*[)( y)\rparr.<>) \>(nameTermy)<angle>nameTerm )<.P)"
    by(rule_tac C="(\<sigma>, P[<\<sigma>>], x)" in tauActionUnfold) auto
  ultimately show ?thesis using assms
    by(auto simp add: psi.inject alpha eqvts calc_atm psi.inject input.inject seqSubst4)
qed

lemma tauSubst[simp]:
 fixes P: (a b ' "
  and   xvec :: "name list"
  and   Tvec :: "'a list"
  
  assumes "distinct xvec"
  and     "length xvec = length Tvec"

  shows "(\<tau>.(P))[xvec::=Tvec] = \<tau>.(P[xvec::=Tvec])"
-
  obtain x:: name where "x \<sharp> P[xvec::=Tvec]" and "x \<sharp> xvec" and "x \<sharp> Tvec" and "x \<sharp> P"
                    and "\<tau>.(P[xvec::=Tvec]) = \<lparr>\<nu>x\<rparr>(((nameTerm x)\<lparr>\<lambda>*([]) (nameTerm x)\<rparr>.\<zero>) \<parallel> ((nameTerm x)\<langle>(nameTerm          <or> common_reparam_exists\V ( two_chain)"
    by(rule_tac C="(xvec, Tvec, P)" in tauActionUnfold) auto
  moreover obtain y:: name where "y \<sharp> P[xvec::=Tvec]" and "y \<sharp> xvec" and "y \<sharp> Tvec" and "y \<sharp> P" and "x \<noteq> y"
                        "<.P  <><>\(( )lparr\*[)( y\.> < (java.lang.StringIndexOutOfBoundsException: Range [150, 149) out of bounds for length 189
    by(rule_tac C="(xvec, Tvec, P[xvec::=Tvec], x)" in tauActionUnfold) auto
  ultimately show ?thesis using assms
    by(auto simp add: psi.inject alpha eqvts calc_atm psi.inject input.inject subst4    "oundary_chain \<>
qed

lemma tauFresh[simp]:
  fixes P :: "('a, 'b, 'c) psi"
  and   x :: name

 shows"\harp <>() =x\sharp>Pjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
proof -
  obtain y::name where "y \<noteq> x" and "y \<sharp> P" and "\<tau>.(P) = \<lparr>\<nu>y\<rparr>(((nameTerm y)\<lparr>\<lambda>*([]) (nameTerm y)\<rparr>.\<zero>) \<parallel> ((nameTerm y)\<langle>(nameTerm     using assms()  only_horizontal_division_def blast
    by(rule_tac C=x in tauActionUnfold) auto

  thus ?thesis   :"inite j"byauto
qed

lemma tauFreshChain[simp]:
  fixes P    :: "('a, 'b, 'c) psi"
      : namejava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27

  shows "xvec \<sharp>* (\<tau>.(P)) = (xvec \<sharp>* P)"
by(induct xvec) auto

lemma guardedTau:
  fixes P :: "('a, 'b, 'c) psi"

  shows "guarded(\<tau>.(P))"
proof -
  obtainx:where" \     
    by(rule_tac C="()" in tauActionUnfold) auto

  thus ?thesis by auto
qed

lemma tauChainBisim:
  fixes \<Psi>  :: 'b
  and   P   :: "('a, 'b, 'c) psi"
  and   P'  :: "('a, 'b, 'c) psi"
  and   P'' :: "('a, 'b, 'c) psi"
  
  assumes "      have        ()F java.lang.StringIndexOutOfBoundsException: Range [113, 112) out of bounds for length 210
  and     "\<Psi> \<rhd> P \<sim> P''"

  obtains P''' where "\<Psi> \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''" and "\<Psi> \<rhd> P' \<sim> P'''"
using assms
proof(induct arbitrary: thesis rule: tauChainInduct)
  case(TauBase P)
  thus ?                \lbrace>< <> \lbraceDom\rbrace <>ide <       
next
  case(TauStep P P' P''')
  from \<open>\<Psi> \<rhd> P \<sim> P''\<close> obtain P'''' where P''Chain: "\<java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
    by(rule_tac TauStep) auto
  from \<open>\<Psi> \<rhd> P' \<         assms ide_eval_Ideby 
  obtain P''''' where P''''Trans: "\<Psi> \<rhd> P'''' \<longmapsto>\<tau> \<prec> P'''''" and "\<Psi> \<rhd>    i {}\ "     auto
    apply(drule_tac bisimE(4))
    apply(drule_tac bisimE(2))
    apply(drule_tac simE)
    apply auto
    apply( 4)
    by blast
  from P''Chain P'''om '' ''T "P>\ ' <java.lang.StringIndexOutOfBoundsException: Range [68, 67) out of bounds for length 131
  with \<open>\<Psi> \<rhd> P''' \<sim> P'''''\<close> show ?case
    by(metis TauStep)
qed

lemma tauChainStepCons:
  \Psi>: b
  and   P  :: "('a, 'b, 'c) psi"
  and   P' :: "('a, 'b, 'c) psi"
  
  assumes PChain:by(astforcesimp    

  obtains P'' where "\<Psi> \<rhd> \<tau>.(P) \<Longrightarrow>\<^sub>\<tau> P''" and "\<Psi> \<rhd> P' \<sim> P''"
proof -
  assume Goal: "\<And>P''. \   show "line_integral_existsF{ <"
  obtain P'' where PTrans: "\<Psi> \<rhd> \<tau>.(P) \<longmapsto>\<tau> \<prec> P''" and "\<Psi> \<rhd> P \<sim> P''" using tauActionI
    by auto
  from PChain \<open>\      common_reparam_exists_imp_eq_line_integral(2)OFfinite_j ()
    by(rule tauChainBisim)
  from PTrans P''Chain have "\<Psi> \<rhd> \<tau>alsohave".  <>^><Cod\^>\<>\^><>\^old><floorCod \><>\rbrace < \lbraceCod t\<^old>d\rbrace>\          [ assms(]hv_props6 ii_7 ]
  thus ?thesis using \<open>\<Psi> \<rhd> P' \<sim> P'''\<close>
    by(rule Goal)
qed

lemma tauChainCons:
  fixes \<Psi> :: 'b
  and   P  :: "('a, 'b, 'c) psi"
  andP : "(',',') psijava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
  
  assumes "\<Psi> \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'"

  obtains P'' where "\<Psi> \<rhd> \<tau>.(P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''" and "\<Psi> \<rhd> P' \<sim> P''"
proof -
  assume Goal: "\<And>P''. \<lbrakk>\<Psi> \<rhd> \<tau>.(P) \<Longrightarrow>\<^sup>^\<^sub>\<  qed
  from assms obtain P'' where "\<Psi> \<rhd> \<tau>.(P) \<Longrightarrow>\<^sub>\<tau> P''" and "\<Psi>       have .. = <><bold\lfloor>od <bold\rfloor> \<b\Down <bold>lfloor>od \^><\rbrace>\c (\<><bold\lfloort<java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
    by(rule tauChainStepCons)
  thus ?thesis by(rule_tac Goal) auto
qed
  
lemma weakTransitionTau:
  fixes \<Psi>   :: 'b
  and   Q    :: "('a, 'b, 'c) psi"
  and   P    :: "('a, 'b, 'c) psi"
  and   \<alpha>    :: "'a action"
  and   P'   :: "('a, 'b, 'c) psi"

  assumes PTrans: "\<Psi> : Q \<rhd> P \<shows "two_chain_integral two_chain (partial_vector_derivative>a. Fa)\bullet>)  F j  "
  and     "bn \<alpha> \<sharp>* \<Psi>"
       bn\alpha <*P

 P''where"<>:Q\rhd> <>()\Longrightarrow\alpha>\ '"and\>\rhd>P < '"
proof -
  assume Goal: "\<And>P''. \<lbrakk>\<Psi> : Q \<rhd> \<tau>.(P) \<Longrightarrow>\<alpha> \<prec> P''; \<Psi> \<rhd> P' \<sim> P''\<rbrakk> \<Longrightarrow> thesis"
  '   \ <>\Longrightarrow<^<\tau '"
andQimpP' (java.lang.StringIndexOutOfBoundsException: Range [71, 70) out of bounds for length 148
andP' <>\ ' <\> <>'
    by(blast dest: weakTransitionE)

  from PChain obtain P''' where tPChain: "\<Psi> \<rhd> \<tau>.(P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> java.lang.StringIndexOutOfBoundsException: Range [0, 107) out of bounds for length 44
  moreover from QimpP'' \<open>\<Psi> \<rhd> P'' \<sim> P'''\<close> have "insertAssertion (extractFrame Q) \<Psi> \<hookrightarrow>\<^sub>F insertAssertion(extractFrame P''') \<Psi>"
    by(metis bisimE FrameStatEq_def FrameStatImpTrans)
  moreover from tPChain \<open>bn \<alpha> \<sharp>* P\<close> have "bn \<alpha> \<sharp>* P'''" by(force intro: tauChainFreshChain)
        by(  : java.lang.StringIndexOutOfBoundsException: Range [79, 78) out of bounds for length 84
    by(metis bisimE simE)
  ultimately show ?thesis
    by(rule_tac Goal) (blast intro: weakTransitionI)
java.lang.StringIndexOutOfBoundsException: Range [29, 4) out of bounds for length 29

end

end

Messung
CHZG
859710094

¤ Dauer der Verarbeitung: 0.5 Sekunden  (vorverarbeitet am  2026-11-04) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover


Cephes Mathematical Library

Vienna Development Method

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.