401 "m \<le> n ==> wens_single_finite act B m \<subseteq> wens_single_finite act B n" |
401 "m \<le> n ==> wens_single_finite act B m \<subseteq> wens_single_finite act B n" |
402 by (force simp add: wens_single_finite_eq_Union [of act B n]) |
402 by (force simp add: wens_single_finite_eq_Union [of act B n]) |
403 |
403 |
404 lemma wens_single_finite_subset_wens_single: |
404 lemma wens_single_finite_subset_wens_single: |
405 "wens_single_finite act B k \<subseteq> wens_single act B" |
405 "wens_single_finite act B k \<subseteq> wens_single act B" |
406 by (simp add: wens_single_eq_Union, blast) |
406 by (simp add: wens_single_eq_Union, blast) |
407 |
407 |
408 lemma subset_wens_single_finite: |
408 lemma subset_wens_single_finite: |
409 "[|W \<subseteq> wens_single_finite act B ` (atMost k); single_valued act; W\<noteq>{}|] |
409 "[|W \<subseteq> wens_single_finite act B ` (atMost k); single_valued act; W\<noteq>{}|] |
410 ==> \<exists>m. \<Union>W = wens_single_finite act B m" |
410 ==> \<exists>m. \<Union>W = wens_single_finite act B m" |
411 apply (induct k) |
411 apply (induct k) |
412 apply (rule_tac x=0 in exI, simp, blast) |
412 apply (rule_tac x=0 in exI, simp, blast) |
413 apply (auto simp add: atMost_Suc) |
413 apply (auto simp add: atMost_Suc) |
414 apply (case_tac "wens_single_finite act B (Suc n) \<in> W") |
414 apply (case_tac "wens_single_finite act B (Suc k) \<in> W") |
415 prefer 2 apply blast |
415 prefer 2 apply blast |
416 apply (drule_tac x="Suc n" in spec) |
416 apply (drule_tac x="Suc k" in spec) |
417 apply (erule notE, rule equalityI) |
417 apply (erule notE, rule equalityI) |
418 prefer 2 apply blast |
418 prefer 2 apply blast |
419 apply (subst wens_single_finite_eq_Union) |
419 apply (subst wens_single_finite_eq_Union) |
420 apply (simp add: atMost_Suc, blast) |
420 apply (simp add: atMost_Suc, blast) |
421 done |
421 done |
422 |
422 |
423 text{*lemma for Union case*} |
423 text{*lemma for Union case*} |
424 lemma Union_eq_wens_single: |
424 lemma Union_eq_wens_single: |
425 "\<lbrakk>\<forall>k. \<not> W \<subseteq> wens_single_finite act B ` {..k}; |
425 "\<lbrakk>\<forall>k. \<not> W \<subseteq> wens_single_finite act B ` {..k}; |