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}