src/HOL/BNF_Cardinal_Order_Relation.thy
changeset 69276 3d954183b707
parent 67613 ce654b0e6d69
child 69850 5f993636ac07
equal deleted inserted replaced
69275:9bbd5497befd 69276:3d954183b707
  1517  \<forall>i j. (i,j) \<in> r \<longrightarrow> As i \<le> As j"
  1517  \<forall>i j. (i,j) \<in> r \<longrightarrow> As i \<le> As j"
  1518 
  1518 
  1519 lemma regularCard_UNION:
  1519 lemma regularCard_UNION:
  1520 assumes r: "Card_order r"   "regularCard r"
  1520 assumes r: "Card_order r"   "regularCard r"
  1521 and As: "relChain r As"
  1521 and As: "relChain r As"
  1522 and Bsub: "B \<le> (UN i : Field r. As i)"
  1522 and Bsub: "B \<le> (\<Union>i \<in> Field r. As i)"
  1523 and cardB: "|B| <o r"
  1523 and cardB: "|B| <o r"
  1524 shows "\<exists>i \<in> Field r. B \<le> As i"
  1524 shows "\<exists>i \<in> Field r. B \<le> As i"
  1525 proof-
  1525 proof-
  1526   let ?phi = "\<lambda>b j. j \<in> Field r \<and> b \<in> As j"
  1526   let ?phi = "\<lambda>b j. j \<in> Field r \<and> b \<in> As j"
  1527   have "\<forall>b\<in>B. \<exists>j. ?phi b j" using Bsub by blast
  1527   have "\<forall>b\<in>B. \<exists>j. ?phi b j" using Bsub by blast
  1566     hence "|K| \<le>o |Field ?r'|" by (simp only: card_of_mono1)
  1566     hence "|K| \<le>o |Field ?r'|" by (simp only: card_of_mono1)
  1567     also have 22: "|Field ?r'| =o ?r'"
  1567     also have 22: "|Field ?r'| =o ?r'"
  1568     using r' by (simp add: card_of_Field_ordIso[of ?r'])
  1568     using r' by (simp add: card_of_Field_ordIso[of ?r'])
  1569     finally have "|K| \<le>o ?r'" .
  1569     finally have "|K| \<le>o ?r'" .
  1570     moreover
  1570     moreover
  1571     {let ?L = "UN j : K. underS ?r' j"
  1571     {let ?L = "\<Union> j \<in> K. underS ?r' j"
  1572      let ?J = "Field r"
  1572      let ?J = "Field r"
  1573      have rJ: "r =o |?J|"
  1573      have rJ: "r =o |?J|"
  1574      using r_card card_of_Field_ordIso ordIso_symmetric by blast
  1574      using r_card card_of_Field_ordIso ordIso_symmetric by blast
  1575      assume "|K| <o ?r'"
  1575      assume "|K| <o ?r'"
  1576      hence "|K| <=o r" using r' card_of_Card_order[of K] by blast
  1576      hence "|K| <=o r" using r' card_of_Card_order[of K] by blast
  1604 qed
  1604 qed
  1605 
  1605 
  1606 lemma cardSuc_UNION:
  1606 lemma cardSuc_UNION:
  1607 assumes r: "Card_order r" and "\<not>finite (Field r)"
  1607 assumes r: "Card_order r" and "\<not>finite (Field r)"
  1608 and As: "relChain (cardSuc r) As"
  1608 and As: "relChain (cardSuc r) As"
  1609 and Bsub: "B \<le> (UN i : Field (cardSuc r). As i)"
  1609 and Bsub: "B \<le> (\<Union> i \<in> Field (cardSuc r). As i)"
  1610 and cardB: "|B| <=o r"
  1610 and cardB: "|B| <=o r"
  1611 shows "\<exists>i \<in> Field (cardSuc r). B \<le> As i"
  1611 shows "\<exists>i \<in> Field (cardSuc r). B \<le> As i"
  1612 proof-
  1612 proof-
  1613   let ?r' = "cardSuc r"
  1613   let ?r' = "cardSuc r"
  1614   have "Card_order ?r' \<and> |B| <o ?r'"
  1614   have "Card_order ?r' \<and> |B| <o ?r'"