definition comm :: "(('a × 'a) set × 'a set) ==> ('a confs) set"where "comm ≡ λ(guar, post). {c. (∀i. Suc i⟶ c!i -c→ c!(Suc i) ⟶ (snd(c!i), snd(c!Suc i)) ∈ guar) ∧ (fst (last c) = None ⟶ snd (last c) ∈ post)}"
definition com_validity :: "'a com ==> 'a set ==> ('a × 'a) set ==> ('a × 'a) set ==> 'a set ==> bool"
(‹⊨ _ sat [_, _, _, _]› [60,0,0,0,0] 45) where "⊨ P sat [pre, rely, guar, post] ≡ ∀s. cp (Some P) s ∩ assum(pre, rely) ⊆ comm(guar, post)"
definition par_comm :: "(('a × 'a) set × 'a set) ==> ('a par_confs) set"where "par_comm ≡ λ(guar, post). {c. (∀i. Suc i⟶ c!i -pc→ c!Suc i ⟶ (snd(c!i), snd(c!Suc i)) ∈ guar) ∧ (All_None (fst (last c)) ⟶ snd( last c) ∈ post)}"
definition par_com_validity :: "'a par_com ==> 'a set ==> ('a × 'a) set ==> ('a ×'a) set \ 'a set ==> bool" (‹⊨ _ SAT [_, _, _, _]› [60,0,0,0,0] 45) where "⊨ Ps SAT [pre, rely, guar, post] ≡ ∀s. par_cp Ps s ∩ par_assum(pre, rely) ⊆ par_comm(guar, post)"
subsection‹Compositionality of the Semantics›
subsubsection ‹Definition of the conjoin operator›
definition same_length :: "'a par_confs ==> ('a confs) list ==> bool"where "same_length c clist ≡ (∀i
definition same_state :: "'a par_confs ==> ('a confs) list ==> bool"where "same_state c clist ≡ (∀i ∀j
definition same_program :: "'a par_confs ==> ('a confs) list ==> bool"where "same_program c clist ≡ (∀j
lemma tl_zero[rule_format]: "P (ys!Suc j) ⟶ Suc j⟶ ys≠[] ⟶ P (tl(ys)!j)" by (induct ys) simp_all
subsection‹The Semantics is Compositional›
lemma aux_if [rule_format]: "∀xs s clist. (length clist = length xs ∧ (∀i∈ cptn) ∧ ((xs, s)#ys ∝ map (λi. (fst i,s)#snd i) (zip xs clist)) ⟶ (xs, s)#ys ∈ par_cptn)" apply(induct ys) apply(clarify) apply(rule ParCptnOne) apply(clarify) apply(simp add:conjoin_def compat_label_def) apply clarify apply(erule_tac x="0"and P="λj. H j ⟶ (P j ∨ Q j)"for H P Q in all_dupE, simp) apply(erule disjE) 🍋‹first step is a Component step› apply clarify apply simp apply(subgoal_tac "a=(xs[i:=(fst(clist!i!0))])") apply(subgoal_tac "b=snd(clist!i!0)",simp) prefer 2 apply(simp add: same_state_def) apply(erule_tac x=i in allE,erule impE,assumption,
erule_tac x=1 and P="λj. (H j) ⟶ (snd (d j))=(snd (e j))"for H d e in allE, simp) prefer 2 apply(simp add:same_program_def) apply(erule_tac x=1 and P="λj. H j ⟶ (fst (s j))=(t j)"for H s t in allE,simp) apply(rule nth_equalityI,simp) apply clarify apply(case_tac "i=ia",simp,simp) apply(erule_tac x=ia and P="λj. H j ⟶ I j ⟶ J j"for H I J in allE) apply(drule_tac t=i in not_sym,simp) apply(erule etranE,simp) apply(rule ParCptnComp) apply(erule ParComp,simp) 🍋‹applying the induction hypothesis› apply(erule_tac x="xs[i := fst (clist ! i ! 0)]"in allE) apply(erule_tac x="snd (clist ! i ! 0)"in allE) apply(erule mp) apply(rule_tac x="map tl clist"in exI,simp) apply(rule conjI,clarify) apply(case_tac "i=ia",simp) apply(rule nth_tl_if) apply(force simp add:same_length_def length_Suc_conv) apply simp apply(erule allE,erule impE,assumption,erule tl_in_cptn) apply(force simp add:same_length_def length_Suc_conv) apply(rule nth_tl_if) apply(force simp add:same_length_def length_Suc_conv) apply(simp add:same_state_def) apply(erule_tac x=ia in allE, erule impE, assumption,
erule_tac x=1 and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE) apply(erule_tac x=ia and P="λj. H j ⟶ I j ⟶ J j"for H I J in allE) apply(drule_tac t=i in not_sym,simp) apply(erule etranE,simp) apply(erule allE,erule impE,assumption,erule tl_in_cptn) apply(force simp add:same_length_def length_Suc_conv) apply(simp add:same_length_def same_state_def) apply(rule conjI) apply clarify apply(case_tac j,simp,simp) apply(erule_tac x=ia in allE, erule impE, assumption,
erule_tac x="Suc(Suc nat)"and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE,simp) apply(force simp add:same_length_def length_Suc_conv) apply(rule conjI) apply(simp add:same_program_def) apply clarify apply(case_tac j,simp) apply(rule nth_equalityI,simp) apply clarify apply(case_tac "i=ia",simp,simp) apply(erule_tac x="Suc(Suc nat)"and P="λj. H j ⟶ (fst (s j))=(t j)"for H s t in allE,simp) apply(rule nth_equalityI,simp,simp) apply(force simp add:length_Suc_conv) apply(rule allI,rule impI) apply(erule_tac x="Suc j"and P="λj. H j ⟶ (I j ∨ J j)"for H I J in allE,simp) apply(erule disjE) apply clarify apply(rule_tac x=ia in exI,simp) apply(case_tac "i=ia",simp) apply(rule conjI) apply(force simp add: length_Suc_conv) apply clarify apply(erule_tac x=l and P="λj. H j ⟶ I j ⟶ J j"for H I J in allE,erule impE,assumption) apply(erule_tac x=l and P="λj. H j ⟶ I j ⟶ J j"for H I J in allE,erule impE,assumption) apply simp apply(case_tac j,simp) apply(rule tl_zero) apply(erule_tac x=l in allE, erule impE, assumption,
erule_tac x=1 and P="λj. (H j) ⟶ (snd (d j))=(snd (e j))"for H d e in allE,simp) apply(force elim:etranE intro:Env) apply force apply force apply simp apply(rule tl_zero) apply(erule tl_zero) apply force apply force apply force apply force apply(rule conjI,simp) apply(rule nth_tl_if) apply force apply(erule_tac x=ia in allE, erule impE, assumption,
erule_tac x=1 and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE) apply(erule_tac x=ia and P="λj. H j ⟶ I j ⟶ J j"for H I J in allE) apply(drule_tac t=i in not_sym,simp) apply(erule etranE,simp) apply(erule tl_zero) apply force apply force apply clarify apply(case_tac "i=l",simp) apply(rule nth_tl_if) apply(erule_tac x=l and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply simp apply(erule_tac P="λj. H j ⟶ I j ⟶ J j"for H I J in allE,erule impE,assumption,erule impE,assumption) apply(erule tl_zero,force) apply(erule_tac x=l and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply(rule nth_tl_if) apply(erule_tac x=l and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply(erule_tac x=l in allE, erule impE, assumption,
erule_tac x=1 and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE) apply(erule_tac x=l and P="λj. H j ⟶ I j ⟶ J j"for H I J in allE,erule impE, assumption,simp) apply(erule etranE,simp) apply(rule tl_zero) apply force apply force apply(erule_tac x=l and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply(rule disjI2) apply(case_tac j,simp) apply clarify apply(rule tl_zero) apply(erule_tac x=ia and P="λj. H j ⟶ I j∈etran"for H I in allE,erule impE, assumption) apply(case_tac "i=ia",simp,simp) apply(erule_tac x=ia in allE, erule impE, assumption,
erule_tac x=1 and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE) apply(erule_tac x=ia and P="λj. H j ⟶ I j ⟶ J j"for H I J in allE,erule impE, assumption,simp) apply(force elim:etranE intro:Env) apply force apply(erule_tac x=ia and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply simp apply clarify apply(rule tl_zero) apply(rule tl_zero,force) apply force apply(erule_tac x=ia and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply force apply(erule_tac x=ia and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) 🍋‹first step is an environmental step› apply clarify apply(erule par_etran.cases) apply simp apply(rule ParCptnEnv) apply(erule_tac x="Ps"in allE) apply(erule_tac x="t"in allE) apply(erule mp) apply(rule_tac x="map tl clist"in exI,simp) apply(rule conjI) apply clarify apply(erule_tac x=i and P="λj. H j ⟶ I j ∈ cptn"for H I in allE,simp) apply(erule cptn.cases) apply(simp add:same_length_def) apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply(simp add:same_state_def) apply(erule_tac x=i in allE, erule impE, assumption,
erule_tac x=1 and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE,simp) apply(erule_tac x=i and P="λj. H j ⟶ J j ∈etran"for H J in allE,simp) apply(erule etranE,simp) apply(simp add:same_state_def same_length_def) apply(rule conjI,clarify) apply(case_tac j,simp,simp) apply(erule_tac x=i in allE, erule impE, assumption,
erule_tac x="Suc(Suc nat)"and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE,simp) apply(rule tl_zero) apply(simp) apply force apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply(rule conjI) apply(simp add:same_program_def) apply clarify apply(case_tac j,simp) apply(rule nth_equalityI,simp) apply clarify apply simp apply(erule_tac x="Suc(Suc nat)"and P="λj. H j ⟶ (fst (s j))=(t j)"for H s t in allE,simp) apply(rule nth_equalityI,simp,simp) apply(force simp add:length_Suc_conv) apply(rule allI,rule impI) apply(erule_tac x="Suc j"and P="λj. H j ⟶ (I j ∨ J j)"for H I J in allE,simp) apply(erule disjE) apply clarify apply(rule_tac x=i in exI,simp) apply(rule conjI) apply(erule_tac x=i and P="λi. H i ⟶ J i ∈etran"for H J in allE, erule impE, assumption) apply(erule etranE,simp) apply(erule_tac x=i in allE, erule impE, assumption,
erule_tac x=1 and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE,simp) apply(rule nth_tl_if) apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply simp apply(erule tl_zero,force) apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply clarify apply(erule_tac x=l and P="λi. H i ⟶ J i ∈etran"for H J in allE, erule impE, assumption) apply(erule etranE,simp) apply(erule_tac x=l in allE, erule impE, assumption,
erule_tac x=1 and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE,simp) apply(rule nth_tl_if) apply(erule_tac x=l and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply simp apply(rule tl_zero,force) apply force apply(erule_tac x=l and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply(rule disjI2) apply simp apply clarify apply(case_tac j,simp) apply(rule tl_zero) apply(erule_tac x=i and P="λi. H i ⟶ J i ∈etran"for H J in allE, erule impE, assumption) apply(erule_tac x=i and P="λi. H i ⟶ J i ∈etran"for H J in allE, erule impE, assumption) apply(force elim:etranE intro:Env) apply force apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply simp apply(rule tl_zero) apply(rule tl_zero,force) apply force apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply force apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) done
lemma one_iff_aux: "xs≠[] ==> (∀ys. ((xs, s)#ys ∈ par_cptn) = (∃clist. length clist= length xs ∧ ((xs, s)#ys ∝ map (λi. (fst i,s)#(snd i)) (zip xs clist)) ∧ (∀i∈ cptn))) = (par_cp (xs) s = {c. ∃clist. (length clist)=(length xs) ∧ (∀i∈ cp(xs!i) s) ∧ c ∝ clist})" apply (rule iffI) apply(rule subset_antisym) apply(rule subsetI) apply(clarify) apply(simp add:par_cp_def cp_def) apply(case_tac x) apply(force elim:par_cptn.cases) apply simp apply(rename_tac a list) apply(erule_tac x="list"in allE) apply clarify apply simp apply(rule_tac x="map (λi. (fst i, s) # snd i) (zip xs clist)"in exI,simp) apply(rule subsetI) apply(clarify) apply(case_tac x) apply(erule_tac x=0 in allE) apply(simp add:cp_def conjoin_def same_length_def same_program_def same_state_def compat_label_def) apply clarify apply(erule cptn.cases,force,force,force) apply(simp add:par_cp_def conjoin_def same_length_def same_program_def same_state_def compat_label_def) apply clarify apply(erule_tac x=0 and P="λj. H j ⟶ (length (s j) = t)"for H s t in all_dupE) apply(subgoal_tac "a = xs") apply(subgoal_tac "b = s",simp) prefer 3 apply(erule_tac x=0 and P="λj. H j ⟶ (fst (s j))=((t j))"for H s t in allE) apply (simp add:cp_def) apply(rule nth_equalityI,simp,simp) prefer 2 apply(erule_tac x=0 in allE) apply (simp add:cp_def) apply(erule_tac x=0 and P="λj. H j ⟶ (∀i. T i ⟶ (snd (d j i))=(snd (e j i)))"for H T d e in allE,simp) apply(erule_tac x=0 and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE,simp) apply(erule_tac x=list in allE) apply(rule_tac x="map tl clist"in exI,simp) apply(rule conjI) apply clarify apply(case_tac j,simp) apply(erule_tac x=i in allE, erule impE, assumption,
erule_tac x="0"and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE,simp) apply(erule_tac x=i in allE, erule impE, assumption,
erule_tac x="Suc nat"and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE) apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!i",simp,simp) apply(rule conjI) apply clarify apply(rule nth_equalityI,simp,simp) apply(case_tac j) apply clarify apply(erule_tac x=i in allE) apply(simp add:cp_def) apply clarify apply simp apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!i",simp,simp) apply(thin_tac "H = (∃i. J i)"for H J) apply(rule conjI) apply clarify apply(erule_tac x=j in allE,erule impE, assumption,erule disjE) apply clarify apply(rule_tac x=i in exI,simp) apply(case_tac j,simp) apply(rule conjI) apply(erule_tac x=i in allE) apply(simp add:cp_def) apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!i",simp,simp) apply clarify apply(erule_tac x=l in allE) apply(erule_tac x=l and P="λj. H j ⟶ I j ⟶ J j"for H I J in allE) apply clarify apply(simp add:cp_def) apply(erule_tac x=l and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!l",simp,simp) apply simp apply(rule conjI) apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!i",simp,simp) apply clarify apply(erule_tac x=l and P="λj. H j ⟶ I j ⟶ J j"for H I J in allE) apply(erule_tac x=l and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!l",simp,simp) apply clarify apply(erule_tac x=i in allE) apply(simp add:cp_def) apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!i",simp) apply(rule nth_tl_if,simp,simp) apply(erule_tac x=i and P="λj. H j ⟶ (P j)∈etran"for H P in allE, erule impE, assumption,simp) apply(simp add:cp_def) apply clarify apply(rule nth_tl_if) apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!i",simp,simp) apply force apply force apply clarify apply(rule iffI) apply(simp add:par_cp_def) apply(erule_tac c="(xs, s) # ys"in equalityCE) apply simp apply clarify apply(rule_tac x="map tl clist"in exI) apply simp apply (rule conjI) apply(simp add:conjoin_def cp_def) apply(rule conjI) apply clarify apply(unfold same_length_def) apply clarify apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,simp) apply(rule conjI) apply(simp add:same_state_def) apply clarify apply(erule_tac x=i in allE, erule impE, assumption,
erule_tac x=j and P="λj. H j ⟶ (snd (d j))=(snd (e j))"for H d e in allE) apply(case_tac j,simp) apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!i",simp,simp) apply(rule conjI) apply(simp add:same_program_def) apply clarify apply(rule nth_equalityI,simp,simp) apply(case_tac j,simp) apply clarify apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!i",simp,simp) apply clarify apply(simp add:compat_label_def) apply(rule allI,rule impI) apply(erule_tac x=j in allE,erule impE, assumption) apply(erule disjE) apply clarify apply(rule_tac x=i in exI,simp) apply(rule conjI) apply(erule_tac x=i in allE) apply(case_tac j,simp) apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!i",simp,simp) apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!i",simp,simp) apply clarify apply(erule_tac x=l and P="λj. H j ⟶ I j ⟶ J j"for H I J in allE) apply(erule_tac x=l and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE) apply(case_tac "clist!l",simp,simp) apply(erule_tac x=l in allE,simp) apply(rule disjI2) apply clarify apply(rule tl_zero) apply(case_tac j,simp,simp) apply(rule tl_zero,force) apply force apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply force apply(erule_tac x=i and P="λj. H j ⟶ (length (s j) = t)"for H s t in allE,force) apply clarify apply(erule_tac x=i in allE) apply(simp add:cp_def) apply(rule nth_tl_if) apply(simp add:conjoin_def) apply clarify apply(simp add:same_length_def) apply(erule_tac x=i in allE,simp) apply simp apply simp apply simp apply clarify apply(erule_tac c="(xs, s) # ys"in equalityCE) apply(simp add:par_cp_def) apply simp apply(erule_tac x="map (λi. (fst i, s) # snd i) (zip xs clist)"in allE) apply simp apply clarify apply(simp add:cp_def) done
¤ 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.0.34Bemerkung:
(vorverarbeitet am 2026-05-03)
¤
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.