equal
deleted
inserted
replaced
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) |