Metamath Proof Explorer


Theorem rankxplim3

Description: The rank of a Cartesian product is a limit ordinal iff its union is. (Contributed by NM, 19-Sep-2006)

Ref Expression
Hypotheses rankxplim.1 AV
rankxplim.2 BV
Assertion rankxplim3 LimrankA×BLimrankA×B

Proof

Step Hyp Ref Expression
1 rankxplim.1 AV
2 rankxplim.2 BV
3 limuni2 LimrankA×BLimrankA×B
4 0ellim LimrankA×BrankA×B
5 n0i rankA×B¬rankA×B=
6 unieq rankA×B=rankA×B=
7 uni0 =
8 6 7 eqtrdi rankA×B=rankA×B=
9 8 con3i ¬rankA×B=¬rankA×B=
10 4 5 9 3syl LimrankA×B¬rankA×B=
11 rankon rankABOn
12 11 onsuci sucrankABOn
13 12 onsuci sucsucrankABOn
14 13 elexi sucsucrankABV
15 14 sucid sucsucrankABsucsucsucrankAB
16 13 onsuci sucsucsucrankABOn
17 ontri1 sucsucsucrankABOnsucsucrankABOnsucsucsucrankABsucsucrankAB¬sucsucrankABsucsucsucrankAB
18 16 13 17 mp2an sucsucsucrankABsucsucrankAB¬sucsucrankABsucsucsucrankAB
19 18 con2bii sucsucrankABsucsucsucrankAB¬sucsucsucrankABsucsucrankAB
20 15 19 mpbi ¬sucsucsucrankABsucsucrankAB
21 1 2 rankxpu rankA×BsucsucrankAB
22 sstr sucsucsucrankABrankA×BrankA×BsucsucrankABsucsucsucrankABsucsucrankAB
23 21 22 mpan2 sucsucsucrankABrankA×BsucsucsucrankABsucsucrankAB
24 20 23 mto ¬sucsucsucrankABrankA×B
25 reeanv xOnyOnrankAB=sucxrankA×B=sucyxOnrankAB=sucxyOnrankA×B=sucy
26 simprl LimrankA×BrankAB=sucxrankA×B=sucyrankAB=sucx
27 simpr LimrankA×BrankAB=sucxrankAB=sucx
28 df-ne A×B¬A×B=
29 1 2 xpex A×BV
30 29 rankeq0 A×B=rankA×B=
31 30 notbii ¬A×B=¬rankA×B=
32 28 31 bitr2i ¬rankA×B=A×B
33 10 32 sylib LimrankA×BA×B
34 unixp A×BA×B=AB
35 33 34 syl LimrankA×BA×B=AB
36 35 fveq2d LimrankA×BrankA×B=rankAB
37 rankuni rankA×B=rankA×B
38 rankuni rankA×B=rankA×B
39 38 unieqi rankA×B=rankA×B
40 37 39 eqtri rankA×B=rankA×B
41 36 40 eqtr3di LimrankA×BrankAB=rankA×B
42 eqimss rankAB=rankA×BrankABrankA×B
43 41 42 syl LimrankA×BrankABrankA×B
44 43 adantr LimrankA×BrankAB=sucxrankABrankA×B
45 27 44 eqsstrrd LimrankA×BrankAB=sucxsucxrankA×B
46 45 adantrr LimrankA×BrankAB=sucxrankA×B=sucysucxrankA×B
47 limuni LimrankA×BrankA×B=rankA×B
48 47 adantr LimrankA×BrankAB=sucxrankA×B=sucyrankA×B=rankA×B
49 46 48 sseqtrrd LimrankA×BrankAB=sucxrankA×B=sucysucxrankA×B
50 vex xV
51 rankon rankA×BOn
52 51 onordi OrdrankA×B
53 orduni OrdrankA×BOrdrankA×B
54 52 53 ax-mp OrdrankA×B
55 ordelsuc xVOrdrankA×BxrankA×BsucxrankA×B
56 50 54 55 mp2an xrankA×BsucxrankA×B
57 49 56 sylibr LimrankA×BrankAB=sucxrankA×B=sucyxrankA×B
58 limsuc LimrankA×BxrankA×BsucxrankA×B
59 58 adantr LimrankA×BrankAB=sucxrankA×B=sucyxrankA×BsucxrankA×B
60 57 59 mpbid LimrankA×BrankAB=sucxrankA×B=sucysucxrankA×B
61 26 60 eqeltrd LimrankA×BrankAB=sucxrankA×B=sucyrankABrankA×B
62 limsuc LimrankA×BrankABrankA×BsucrankABrankA×B
63 62 adantr LimrankA×BrankAB=sucxrankA×B=sucyrankABrankA×BsucrankABrankA×B
64 61 63 mpbid LimrankA×BrankAB=sucxrankA×B=sucysucrankABrankA×B
65 ordsucelsuc OrdrankA×BsucrankABrankA×BsucsucrankABsucrankA×B
66 54 65 ax-mp sucrankABrankA×BsucsucrankABsucrankA×B
67 64 66 sylib LimrankA×BrankAB=sucxrankA×B=sucysucsucrankABsucrankA×B
68 onsucuni2 rankA×BOnrankA×B=sucysucrankA×B=rankA×B
69 51 68 mpan rankA×B=sucysucrankA×B=rankA×B
70 69 ad2antll LimrankA×BrankAB=sucxrankA×B=sucysucrankA×B=rankA×B
71 67 70 eleqtrd LimrankA×BrankAB=sucxrankA×B=sucysucsucrankABrankA×B
72 13 51 onsucssi sucsucrankABrankA×BsucsucsucrankABrankA×B
73 71 72 sylib LimrankA×BrankAB=sucxrankA×B=sucysucsucsucrankABrankA×B
74 73 ex LimrankA×BrankAB=sucxrankA×B=sucysucsucsucrankABrankA×B
75 74 a1d LimrankA×BxOnyOnrankAB=sucxrankA×B=sucysucsucsucrankABrankA×B
76 75 rexlimdvv LimrankA×BxOnyOnrankAB=sucxrankA×B=sucysucsucsucrankABrankA×B
77 25 76 biimtrrid LimrankA×BxOnrankAB=sucxyOnrankA×B=sucysucsucsucrankABrankA×B
78 24 77 mtoi LimrankA×B¬xOnrankAB=sucxyOnrankA×B=sucy
79 ianor ¬xOnrankAB=sucxyOnrankA×B=sucy¬xOnrankAB=sucx¬yOnrankA×B=sucy
80 un00 A=B=AB=
81 animorl A=B=A=B=
82 80 81 sylbir AB=A=B=
83 xpeq0 A×B=A=B=
84 82 83 sylibr AB=A×B=
85 84 con3i ¬A×B=¬AB=
86 31 85 sylbir ¬rankA×B=¬AB=
87 1 2 unex ABV
88 87 rankeq0 AB=rankAB=
89 88 notbii ¬AB=¬rankAB=
90 86 89 sylib ¬rankA×B=¬rankAB=
91 11 onordi OrdrankAB
92 ordzsl OrdrankABrankAB=xOnrankAB=sucxLimrankAB
93 91 92 mpbi rankAB=xOnrankAB=sucxLimrankAB
94 93 3ori ¬rankAB=¬xOnrankAB=sucxLimrankAB
95 90 94 sylan ¬rankA×B=¬xOnrankAB=sucxLimrankAB
96 95 ex ¬rankA×B=¬xOnrankAB=sucxLimrankAB
97 ordzsl OrdrankA×BrankA×B=yOnrankA×B=sucyLimrankA×B
98 52 97 mpbi rankA×B=yOnrankA×B=sucyLimrankA×B
99 98 3ori ¬rankA×B=¬yOnrankA×B=sucyLimrankA×B
100 99 ex ¬rankA×B=¬yOnrankA×B=sucyLimrankA×B
101 96 100 orim12d ¬rankA×B=¬xOnrankAB=sucx¬yOnrankA×B=sucyLimrankABLimrankA×B
102 79 101 biimtrid ¬rankA×B=¬xOnrankAB=sucxyOnrankA×B=sucyLimrankABLimrankA×B
103 102 imp ¬rankA×B=¬xOnrankAB=sucxyOnrankA×B=sucyLimrankABLimrankA×B
104 simpl LimrankAB¬rankA×B=LimrankAB
105 30 necon3abii A×B¬rankA×B=
106 1 2 rankxplim LimrankABA×BrankA×B=rankAB
107 105 106 sylan2br LimrankAB¬rankA×B=rankA×B=rankAB
108 limeq rankA×B=rankABLimrankA×BLimrankAB
109 107 108 syl LimrankAB¬rankA×B=LimrankA×BLimrankAB
110 104 109 mpbird LimrankAB¬rankA×B=LimrankA×B
111 110 expcom ¬rankA×B=LimrankABLimrankA×B
112 idd ¬rankA×B=LimrankA×BLimrankA×B
113 111 112 jaod ¬rankA×B=LimrankABLimrankA×BLimrankA×B
114 113 adantr ¬rankA×B=¬xOnrankAB=sucxyOnrankA×B=sucyLimrankABLimrankA×BLimrankA×B
115 103 114 mpd ¬rankA×B=¬xOnrankAB=sucxyOnrankA×B=sucyLimrankA×B
116 10 78 115 syl2anc LimrankA×BLimrankA×B
117 3 116 impbii LimrankA×BLimrankA×B