src/HOL/UNITY/Guar.thy
changeset 67613 ce654b0e6d69
parent 63146 f1ecba0272f9
child 69313 b021008c5397
equal deleted inserted replaced
67610:4939494ed791 67613:ce654b0e6d69
    83    using assms(1) apply (unfold ex_prop_def)
    83    using assms(1) apply (unfold ex_prop_def)
    84    apply (auto simp add: OK_insert_iff Int_insert_left)
    84    apply (auto simp add: OK_insert_iff Int_insert_left)
    85   done
    85   done
    86 
    86 
    87 lemma ex2: 
    87 lemma ex2: 
    88      "\<forall>GG. finite GG & GG \<inter> X \<noteq> {} --> OK GG (%G. G) -->(\<Squnion>G \<in> GG. G):X 
    88      "\<forall>GG. finite GG & GG \<inter> X \<noteq> {} \<longrightarrow> OK GG (\<lambda>G. G) \<longrightarrow> (\<Squnion>G \<in> GG. G) \<in> X 
    89       ==> ex_prop X"
    89       \<Longrightarrow> ex_prop X"
    90 apply (unfold ex_prop_def, clarify)
    90 apply (unfold ex_prop_def, clarify)
    91 apply (drule_tac x = "{F,G}" in spec)
    91 apply (drule_tac x = "{F,G}" in spec)
    92 apply (auto dest: ok_sym simp add: OK_iff_ok)
    92 apply (auto dest: ok_sym simp add: OK_iff_ok)
    93 done
    93 done
    94 
    94 
   138 done
   138 done
   139 
   139 
   140 (*Chandy & Sanders take this as a definition*)
   140 (*Chandy & Sanders take this as a definition*)
   141 lemma uv_prop_finite:
   141 lemma uv_prop_finite:
   142      "uv_prop X = 
   142      "uv_prop X = 
   143       (\<forall>GG. finite GG & GG \<subseteq> X & OK GG (%G. G) --> (\<Squnion>G \<in> GG. G): X)"
   143       (\<forall>GG. finite GG \<and> GG \<subseteq> X \<and> OK GG (\<lambda>G. G) \<longrightarrow> (\<Squnion>G \<in> GG. G) \<in> X)"
   144 by (blast intro: uv1 uv2)
   144 by (blast intro: uv1 uv2)
   145 
   145 
   146 subsection\<open>Guarantees\<close>
   146 subsection\<open>Guarantees\<close>
   147 
   147 
   148 lemma guaranteesI:
   148 lemma guaranteesI:
   401 
   401 
   402 lemma component_of_wg: "F component_of H ==> (H \<in> wg F X) = (H \<in> X)"
   402 lemma component_of_wg: "F component_of H ==> (H \<in> wg F X) = (H \<in> X)"
   403 by (simp add: wg_equiv)
   403 by (simp add: wg_equiv)
   404 
   404 
   405 lemma wg_finite: 
   405 lemma wg_finite: 
   406     "\<forall>FF. finite FF & FF \<inter> X \<noteq> {} --> OK FF (%F. F)  
   406     "\<forall>FF. finite FF \<and> FF \<inter> X \<noteq> {} \<longrightarrow> OK FF (\<lambda>F. F)
   407           --> (\<forall>F\<in>FF. ((\<Squnion>F \<in> FF. F): wg F X) = ((\<Squnion>F \<in> FF. F):X))"
   407           \<longrightarrow> (\<forall>F\<in>FF. ((\<Squnion>F \<in> FF. F) \<in> wg F X) = ((\<Squnion>F \<in> FF. F) \<in> X))"
   408 apply clarify
   408 apply clarify
   409 apply (subgoal_tac "F component_of (\<Squnion>F \<in> FF. F) ")
   409 apply (subgoal_tac "F component_of (\<Squnion>F \<in> FF. F) ")
   410 apply (drule_tac X = X in component_of_wg, simp)
   410 apply (drule_tac X = X in component_of_wg, simp)
   411 apply (simp add: component_of_def)
   411 apply (simp add: component_of_def)
   412 apply (rule_tac x = "\<Squnion>F \<in> (FF-{F}) . F" in exI)
   412 apply (rule_tac x = "\<Squnion>F \<in> (FF-{F}) . F" in exI)