src/HOL/UNITY/Transformers.thy
changeset 15236 f289e8ba2bb3
parent 15102 04b0e943fcc9
child 16417 9bc16273c2d4
equal deleted inserted replaced
15235:614a804d7116 15236:f289e8ba2bb3
   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};