Up to index of Isabelle/HOL/HOL-Complex/CSP-Prover
theory Domain_SF_prod = Domain_SF: (*-------------------------------------------*
| CSP-Prover |
| December 2004 |
| Yoshinao Isobe (AIST JAPAN) |
*-------------------------------------------*)
theory Domain_SF_prod = Domain_SF:
(*****************************************************************
1.
2.
3.
4.
*****************************************************************)
(***********************************************************
type def (Product Stable Failure)
***********************************************************)
types ('i,'a) domSF_prod = "'i => 'a domSF" (* synonym *)
(*----------------------------------------------------------*
| |
| Fixed point induction for refinement |
| |
*----------------------------------------------------------*)
consts
RefSF_prod :: "('i,'a) domSF_prod => ('i,'a) domSF_prod => bool"
RevSF_prod :: "('i,'a) domSF_prod => ('i,'a) domSF_prod => bool"
defs
RefSF_prod_def : "RefSF_prod SEp == (%SFp. (SEp <= SFp))"
RevSF_prod_def : "RevSF_prod SEp == (%SFp. (SFp <= SEp))"
(*********************************************************
order decomposition
*********************************************************)
lemma subsetSF_prod_decompo:
"SFp <= SEp = ((fstSF o SFp <= fstSF o SEp) & (sndSF o SFp <= sndSF o SEp))"
apply (simp add: order_prod_def)
apply (simp add: subsetSF_decompo)
apply (rule iffI)
apply (rule conjI)
apply (rule allI)
apply (drule_tac x="x" in spec, simp)
apply (rule allI)
apply (drule_tac x="x" in spec, simp)
apply (rule allI)
apply (erule conjE)
apply (drule_tac x="x" in spec)
apply (drule_tac x="x" in spec)
apply (simp)
done
end
lemma subsetSF_prod_decompo:
(SFp ≤ SEp) = (fstSF ˆ SFp ≤ fstSF ˆ SEp ∧ sndSF ˆ SFp ≤ sndSF ˆ SEp)