Up to index of Isabelle/HOL/HOL-Complex/CSP-Prover
theory CSP_proc_cpo = CSP_proc + STOP_cpo + SKIP_cpo + DIV_cpo + Act_prefix_cpo + Ext_choice_cpo + Ext_pre_choice_cpo + Int_choice_cpo + Rep_int_choice_cpo + Conditional_cpo + Parallel_cpo + Hiding_cpo + Renaming_cpo + Seq_compo_cpo + Proc_name_cpo:(*-------------------------------------------* | CSP-Prover | | December 2004 | | February 2005 (modified) | | Yoshinao Isobe (AIST JAPAN) | *-------------------------------------------*) theory CSP_proc_cpo = CSP_proc + STOP_cpo + SKIP_cpo + DIV_cpo + Act_prefix_cpo + Ext_choice_cpo + Ext_pre_choice_cpo + Int_choice_cpo + Rep_int_choice_cpo + Conditional_cpo + Parallel_cpo + Hiding_cpo + Renaming_cpo + Seq_compo_cpo + Proc_name_cpo : (***************************************************************** 1. [[P]]SF : continuous 2. 3. 4. *****************************************************************) (********************************************************* continuous decomposition *********************************************************) (* Abs_domSF *) lemma continuous_Abs_domSF_only_if: "continuous [[P]]SF ==> continuous ([[P]]T ** [[P]]F)" apply (simp add: evalSF_def) apply (simp add: pairSF_def) apply (simp add: pair_fun_def) apply (insert compo_continuous [of "(%ev. Abs_domSF ([[P]]T ev, [[P]]F ev))" "Rep_domSF" ]) apply (simp add: comp_def) apply (simp add: cont_Rep_domSF) apply (simp add: Abs_domSF_inverse) done lemma continuous_Abs_domSF_if: "continuous ([[P]]T ** [[P]]F) ==> continuous [[P]]SF" apply (simp add: evalSF_def) apply (simp add: pairSF_def) apply (simp add: pair_fun_def) apply (insert continuous_Abs_domSF[of "(%x. ([[P]]T x, [[P]]F x))"]) by (simp add: comp_def) (* iff *) lemma continuous_Abs_domSF: "continuous [[P]]SF = continuous ([[P]]T ** [[P]]F)" apply (rule iffI) apply (simp add: continuous_Abs_domSF_only_if) apply (simp add: continuous_Abs_domSF_if) done (* decompo *) lemma continuous_evalSF_decompo: "continuous [[P]]SF = (continuous [[P]]T & continuous [[P]]F)" apply (simp add: continuous_Abs_domSF) by (simp add: pair_continuous) (***************************************************************** !!! proc continuous !!! *****************************************************************) lemma evalSF_continuous: "continuous [[P]]SF" apply (simp add: continuous_evalSF_decompo) apply (induct_tac P) apply (simp add: STOP_evalT_continuous STOP_evalF_continuous) apply (simp add: SKIP_evalT_continuous SKIP_evalF_continuous) apply (simp add: DIV_evalT_continuous DIV_evalF_continuous) apply (simp add: Act_prefix_evalT_continuous Act_prefix_evalF_continuous) apply (simp add: Ext_pre_choice_evalT_continuous Ext_pre_choice_evalF_continuous) apply (simp add: Ext_choice_evalT_continuous Ext_choice_evalF_continuous) apply (simp add: Int_choice_evalT_continuous Int_choice_evalF_continuous) apply (simp add: Rep_int_choice_evalT_continuous Rep_int_choice_evalF_continuous) apply (simp add: Conditional_evalT_continuous Conditional_evalF_continuous) apply (simp add: Parallel_evalT_continuous Parallel_evalF_continuous) apply (simp add: Hiding_evalT_continuous Hiding_evalF_continuous) apply (simp add: Renaming_evalT_continuous Renaming_evalF_continuous) apply (simp add: Seq_compo_evalT_continuous Seq_compo_evalF_continuous) apply (simp add: continuous_evalSF_decompo[THEN sym]) apply (simp add: Proc_name_evalSF_continuous) done (***************************************************************** !!! [[df]]DF continuous !!! *****************************************************************) lemma evalDF_continuous: "continuous [[df]]DF" apply (simp add: prod_continuous) apply (simp add: proj_fun_evalDF) apply (simp add: evalSF_continuous) done (***************************************************************** Tarski on evalDF *****************************************************************) lemma evalDF_Tarski_thm: "[[df]]DF hasLFP & LFP [[df]]DF isLUB {x. EX n. x = ([[df]]DF^n) Bot}" apply (rule Tarski_thm) apply (simp add: evalDF_continuous) done end
lemma continuous_Abs_domSF_only_if:
continuous [[P]]SF ==> continuous ([[P]]T ** [[P]]F)
lemma continuous_Abs_domSF_if:
continuous ([[P]]T ** [[P]]F) ==> continuous [[P]]SF
lemma continuous_Abs_domSF:
continuous [[P]]SF = continuous ([[P]]T ** [[P]]F)
lemma continuous_evalSF_decompo:
continuous [[P]]SF = (continuous [[P]]T ∧ continuous [[P]]F)
lemma evalSF_continuous:
continuous [[P]]SF
lemma evalDF_continuous:
continuous [[df]]DF
lemma evalDF_Tarski_thm:
[[df]]DF hasLFP ∧ LFP [[df]]DF isLUB {x. ∃n. x = ([[df]]DF ^ n) Bot}