src/HOL/Finite_Set.thy
changeset 82884 d26ffa4a1817
parent 82802 547335b41005
child 82885 5d2a599f88af
equal deleted inserted replaced
82883:42595eaf29da 82884:d26ffa4a1817
  2967   assume "finite T"
  2967   assume "finite T"
  2968   with \<open>S \<subseteq> T\<close> have "finite S" by (simp add: finite_subset)
  2968   with \<open>S \<subseteq> T\<close> have "finite S" by (simp add: finite_subset)
  2969   with \<open>infinite S\<close> show False by simp
  2969   with \<open>infinite S\<close> show False by simp
  2970 qed
  2970 qed
  2971 
  2971 
       
  2972 corollary finite_arbitrarily_large_disj:
       
  2973   "\<lbrakk> infinite(UNIV::'a set); finite (A::'a set) \<rbrakk> \<Longrightarrow> \<exists>B. finite B \<and> card B = n \<and> A \<inter> B = {}"
       
  2974 using infinite_arbitrarily_large[of "UNIV - A"]
       
  2975 by fastforce
       
  2976 
  2972 proposition infinite_coinduct [consumes 1, case_names infinite]:
  2977 proposition infinite_coinduct [consumes 1, case_names infinite]:
  2973   assumes "X A"
  2978   assumes "X A"
  2974     and step: "\<And>A. X A \<Longrightarrow> \<exists>x\<in>A. X (A - {x}) \<or> infinite (A - {x})"
  2979     and step: "\<And>A. X A \<Longrightarrow> \<exists>x\<in>A. X (A - {x}) \<or> infinite (A - {x})"
  2975   shows "infinite A"
  2980   shows "infinite A"
  2976 proof
  2981 proof