text‹
This theory brings together the three main operators:
sequential composition,
parallel composition and
conjunction,
as well as the iteration operators. ›
theory CRA imports
Sequential
Conjunction
Parallel begin
text‹
Locale sequential-parallel brings together the sequential and parallel
operators and relates their identities. › locale sequential_parallel = seq_distrib + par_distrib + assumes nil_par_nil: "nil ∥ nil ⊑ nil" and skip_nil: "skip ⊑ nil"(* 41 *) and skip_skip: "skip ⊑ skip;skip"(* 40 *) begin
text‹
Locale conjunction-parallel brings together the weak conjunction and
parallel operators and relates their identities.
It also introduces the interchange axiom for conjunction and parallel. ›
lemma conj_distrib2: "c ⊑ c ∥ c ==> c 🚫 (d0∥ d1) ⊑ (c 🚫 d0) ∥ (c 🚫 d1)" proof - assume"c ⊑ c ∥ c" thenhave"c 🚫 (d0∥ d1) ⊑ (c ∥ c) 🚫 (d0∥ d1)"by (metis conj_mono order.refl) thus ?thesis by (metis parallel_interchange refine_trans) qed
end
text‹
Locale conjunction-sequential brings together the weak conjunction and
sequential operators.
It also introduces the interchange axiom for conjunction and sequential. ›
lemma chaos_seq_absorb: "chaos = chaos;chaos" proof (rule antisym) show"chaos ⊑ chaos;chaos"by (simp add: chaos_seq_chaos) next show"chaos;chaos ⊑ chaos"using chaos_nil using seq_mono_left seq_nil_left by fastforce qed
lemma seq_bot_conj: "c;⊥🚫 d ⊑ (c 🚫 d);⊥" by (metis (no_types) conj_bot_left seq_nil_right sequential_interchange)
lemma conj_seq_bot_right [simp]: "c;⊥🚫 c = c;⊥" proof (rule antisym) show lr: "c;⊥🚫 c ⊑ c;⊥"by (metis seq_bot_conj conj_idem) next show rl: "c;⊥⊑ c;⊥🚫 c" by (metis conj_idem conj_mono_right seq_bot_right) qed
have"F(lfpG)\<sqsubseteq>lfpH" proof(rulefusion_lfp_leq) show"monoH"by(simpadd:H_defiter_step_mono) next show"dist_over_supF"by(simpadd:F_defconj_Sup_distrib) next fixx have"c\<iinter>(nil\<sqinter>d;x)=(c\<iinter>nil)\<sqinter>(c\<iinter>d;x)"by(metisinf_conj_distribconj_commute) alsohave"...\<sqsubseteq>nil\<sqinter>(c\<iinter>d;x)"by(metisconjunction_supinf_mono_leftle_iff_supnil) alsohave"...\<sqsubseteq>nil\<sqinter>(c;c\<iinter>d;x)"by(metisinf_conj_distribinf.absorb_iff2inf_mono_rightrepeat) alsohave"...\<sqsubseteq>nil\<sqinter>(c\<iinter>d);(c\<iinter>x)"by(mesoninf_mono_rightsequential_interchange) finallyshow"(F\<circ>G)x\<sqsubseteq>(H\<circ>F)x"by(simpadd:FGHF) qed
thenshow"c\<iinter>lfp(\<lambda>x.nil\<sqinter>d;x)\<sqsubseteq>lfp(\<lambda>x.nil\<sqinter>(c\<iinter>d);x)"usingF_defG_defH_defbysimp qed
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.