(*
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
¤ Dauer der Verarbeitung: 0.5 Sekunden
(vorverarbeitet am 2026-11-04)
¤
*© Formatika GbR, Deutschland
|
|