src/HOL/Finite_Set.thy
changeset 57447 87429bdecad5
parent 57025 e7fd64f82876
child 57598 56ed992b6d65
equal deleted inserted replaced
57446:06e195515deb 57447:87429bdecad5
  1510 qed
  1510 qed
  1511 
  1511 
  1512 lemma card_UNIV_unit [simp]: "card (UNIV :: unit set) = 1"
  1512 lemma card_UNIV_unit [simp]: "card (UNIV :: unit set) = 1"
  1513   unfolding UNIV_unit by simp
  1513   unfolding UNIV_unit by simp
  1514 
  1514 
       
  1515 lemma infinite_arbitrarily_large:
       
  1516   assumes "\<not> finite A"
       
  1517   shows "\<exists>B. finite B \<and> card B = n \<and> B \<subseteq> A"
       
  1518 proof (induction n)
       
  1519   case 0 show ?case by (intro exI[of _ "{}"]) auto
       
  1520 next 
       
  1521   case (Suc n)
       
  1522   then guess B .. note B = this
       
  1523   with `\<not> finite A` have "A \<noteq> B" by auto
       
  1524   with B have "B \<subset> A" by auto
       
  1525   hence "\<exists>x. x \<in> A - B" by (elim psubset_imp_ex_mem)
       
  1526   then guess x .. note x = this
       
  1527   with B have "finite (insert x B) \<and> card (insert x B) = Suc n \<and> insert x B \<subseteq> A"
       
  1528     by auto
       
  1529   thus "\<exists>B. finite B \<and> card B = Suc n \<and> B \<subseteq> A" ..
       
  1530 qed
  1515 
  1531 
  1516 subsubsection {* Cardinality of image *}
  1532 subsubsection {* Cardinality of image *}
  1517 
  1533 
  1518 lemma card_image_le: "finite A ==> card (f ` A) \<le> card A"
  1534 lemma card_image_le: "finite A ==> card (f ` A) \<le> card A"
  1519   by (induct rule: finite_induct) (simp_all add: le_SucI card_insert_if)
  1535   by (induct rule: finite_induct) (simp_all add: le_SucI card_insert_if)