Up to index of Isabelle/HOL/HOL-Complex/CSP-Prover
theory Rep_int_choice_cpo = Rep_int_choice + Domain_SF_prod_cpo:(*-------------------------------------------* | CSP-Prover | | February 2005 | | Yoshinao Isobe (AIST JAPAN) | *-------------------------------------------*) theory Rep_int_choice_cpo = Rep_int_choice + Domain_SF_prod_cpo: (* The following simplification rules are deleted in this theory file *) (* because they unexpectly rewrite UnionT and InterT. *) (* disj_not1: (~ P | Q) = (P --> Q) *) declare disj_not1 [simp del] (* The following simplification is sometimes unexpected. *) (* *) (* not_None_eq: (x ~= None) = (EX y. x = Some y) *) declare not_None_eq [simp del] (* The following simplification rules are deleted in this theory file *) (* because they unexpectly rewrite UnionT and InterT. *) (* Union (B ` A) = (UN x:A. B x) *) (* Inter (B ` A) = (INT x:A. B x) *) (* disj_not1: (~ P | Q) = (P --> Q) *) declare Union_image_eq [simp del] declare Inter_image_eq [simp del] (***************************************************************** 1. [[! :X .. Pf]]T : continuous 2. [[! :X .. Pf]]F : continuous 3. 4. *****************************************************************) (*** Rep_int_choice_evalT_continuous ***) lemma Rep_int_choice_evalT_continuous: "ALL a. continuous [[Pf a]]T ==> continuous [[! :X .. Pf]]T" apply (simp add: continuous_iff) apply (intro allI impI) apply (subgoal_tac "Xa ~= {}") apply (erule exchange_forall_orderE) apply (drule_tac x="Xa" in spec) apply (simp add: isLUB_UnionT) apply (rule_tac x="LUB Xa" in exI) apply (rule conjI) apply (rule eq_iffI) (* <= *) apply (rule) apply (simp add: memT_UnionT) apply (simp add: Rep_int_choice_mem) apply (erule disjE, fast) apply (elim conjE exE) apply (drule_tac x="a" in spec) apply (elim conjE exE) apply (subgoal_tac "LUB Xa = x", simp) apply (simp add: memT_UnionT) apply (erule bexE) apply (rule_tac x="xa" in bexI) apply (fast) apply (simp) apply (simp add: isLUB_LUB) (* => *) apply (rule) apply (simp add: memT_UnionT) apply (erule bexE) apply (simp add: Rep_int_choice_mem) apply (erule disjE, simp) apply (elim conjE exE) apply (rule disjI2) apply (rule_tac x="a" in exI) apply (drule_tac x="a" in spec) apply (elim conjE exE) apply (subgoal_tac "LUB Xa = xa", simp) apply (simp add: memT_UnionT) apply (rule_tac x="x" in bexI) apply (simp) apply (simp) apply (simp add: isLUB_LUB) apply (drule_tac x="a" in spec) apply (elim conjE exE) apply (simp add: isLUB_LUB) by (simp add: directed_def) (*** Rep_int_choice_evalF_continuous ***) lemma Rep_int_choice_evalF_continuous: "ALL a. continuous [[Pf a]]F ==> continuous [[! :X .. Pf]]F" apply (simp add: continuous_iff) apply (intro allI impI) apply (subgoal_tac "Xa ~= {}") apply (erule exchange_forall_orderE) apply (drule_tac x="Xa" in spec) apply (simp add: isLUB_UnionF) apply (rule_tac x="LUB Xa" in exI) apply (rule conjI) apply (rule eq_iffI) (* <= *) apply (rule) apply (simp add: memF_UnionF) apply (simp add: Rep_int_choice_mem) apply (elim conjE exE) apply (drule_tac x="a" in spec) apply (elim conjE exE) apply (subgoal_tac "LUB Xa = x", simp) apply (simp add: memF_UnionF) apply (erule bexE) apply (rule_tac x="xa" in bexI) apply (fast) apply (simp) apply (simp add: isLUB_LUB) (* => *) apply (rule) apply (simp add: memF_UnionF) apply (erule bexE) apply (simp add: Rep_int_choice_mem) apply (elim conjE exE) apply (rule_tac x="a" in exI) apply (drule_tac x="a" in spec) apply (elim conjE exE) apply (subgoal_tac "LUB Xa = xa", simp) apply (simp add: memF_UnionF) apply (rule_tac x="x" in bexI) apply (simp) apply (simp) apply (simp add: isLUB_LUB) apply (drule_tac x="a" in spec) apply (elim conjE exE) apply (simp add: isLUB_LUB) by (simp add: directed_def) (****************** to add them again ******************) declare Union_image_eq [simp] declare Inter_image_eq [simp] declare disj_not1 [simp] declare not_None_eq [simp] end
lemma Rep_int_choice_evalT_continuous:
∀a. continuous [[Pf a]]T ==> continuous [[! :X .. Pf]]T
lemma Rep_int_choice_evalF_continuous:
∀a. continuous [[Pf a]]F ==> continuous [[! :X .. Pf]]F