MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  rankxpsuc Structured version   Visualization version   GIF version

Theorem rankxpsuc 9571
Description: The rank of a Cartesian product when the rank of the union of its arguments is a successor ordinal. Part of Exercise 4 of [Kunen] p. 107. See rankxplim 9568 for the limit ordinal case. (Contributed by NM, 19-Sep-2006.)
Hypotheses
Ref Expression
rankxplim.1 𝐴 ∈ V
rankxplim.2 𝐵 ∈ V
Assertion
Ref Expression
rankxpsuc (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → (rank‘(𝐴 × 𝐵)) = suc suc (rank‘(𝐴𝐵)))

Proof of Theorem rankxpsuc
Dummy variable 𝑥 is distinct from all other variables.
StepHypRef Expression
1 unixp 6174 . . . . . . . 8 ((𝐴 × 𝐵) ≠ ∅ → (𝐴 × 𝐵) = (𝐴𝐵))
21fveq2d 6760 . . . . . . 7 ((𝐴 × 𝐵) ≠ ∅ → (rank‘ (𝐴 × 𝐵)) = (rank‘(𝐴𝐵)))
3 rankuni 9552 . . . . . . . 8 (rank‘ (𝐴 × 𝐵)) = (rank‘ (𝐴 × 𝐵))
4 rankuni 9552 . . . . . . . . 9 (rank‘ (𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵))
54unieqi 4849 . . . . . . . 8 (rank‘ (𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵))
63, 5eqtri 2766 . . . . . . 7 (rank‘ (𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵))
72, 6eqtr3di 2794 . . . . . 6 ((𝐴 × 𝐵) ≠ ∅ → (rank‘(𝐴𝐵)) = (rank‘(𝐴 × 𝐵)))
8 suc11reg 9307 . . . . . 6 (suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)) ↔ (rank‘(𝐴𝐵)) = (rank‘(𝐴 × 𝐵)))
97, 8sylibr 233 . . . . 5 ((𝐴 × 𝐵) ≠ ∅ → suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)))
109adantl 481 . . . 4 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)))
11 fvex 6769 . . . . . . . . . . . . . 14 (rank‘(𝐴𝐵)) ∈ V
12 eleq1 2826 . . . . . . . . . . . . . 14 ((rank‘(𝐴𝐵)) = suc 𝐶 → ((rank‘(𝐴𝐵)) ∈ V ↔ suc 𝐶 ∈ V))
1311, 12mpbii 232 . . . . . . . . . . . . 13 ((rank‘(𝐴𝐵)) = suc 𝐶 → suc 𝐶 ∈ V)
14 sucexb 7631 . . . . . . . . . . . . 13 (𝐶 ∈ V ↔ suc 𝐶 ∈ V)
1513, 14sylibr 233 . . . . . . . . . . . 12 ((rank‘(𝐴𝐵)) = suc 𝐶𝐶 ∈ V)
16 nlimsucg 7664 . . . . . . . . . . . 12 (𝐶 ∈ V → ¬ Lim suc 𝐶)
1715, 16syl 17 . . . . . . . . . . 11 ((rank‘(𝐴𝐵)) = suc 𝐶 → ¬ Lim suc 𝐶)
18 limeq 6263 . . . . . . . . . . 11 ((rank‘(𝐴𝐵)) = suc 𝐶 → (Lim (rank‘(𝐴𝐵)) ↔ Lim suc 𝐶))
1917, 18mtbird 324 . . . . . . . . . 10 ((rank‘(𝐴𝐵)) = suc 𝐶 → ¬ Lim (rank‘(𝐴𝐵)))
20 rankxplim.1 . . . . . . . . . . 11 𝐴 ∈ V
21 rankxplim.2 . . . . . . . . . . 11 𝐵 ∈ V
2220, 21rankxplim2 9569 . . . . . . . . . 10 (Lim (rank‘(𝐴 × 𝐵)) → Lim (rank‘(𝐴𝐵)))
2319, 22nsyl 140 . . . . . . . . 9 ((rank‘(𝐴𝐵)) = suc 𝐶 → ¬ Lim (rank‘(𝐴 × 𝐵)))
2420, 21xpex 7581 . . . . . . . . . . . . . 14 (𝐴 × 𝐵) ∈ V
2524rankeq0 9550 . . . . . . . . . . . . 13 ((𝐴 × 𝐵) = ∅ ↔ (rank‘(𝐴 × 𝐵)) = ∅)
2625necon3abii 2989 . . . . . . . . . . . 12 ((𝐴 × 𝐵) ≠ ∅ ↔ ¬ (rank‘(𝐴 × 𝐵)) = ∅)
27 rankon 9484 . . . . . . . . . . . . . . . 16 (rank‘(𝐴 × 𝐵)) ∈ On
2827onordi 6356 . . . . . . . . . . . . . . 15 Ord (rank‘(𝐴 × 𝐵))
29 ordzsl 7667 . . . . . . . . . . . . . . 15 (Ord (rank‘(𝐴 × 𝐵)) ↔ ((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3028, 29mpbi 229 . . . . . . . . . . . . . 14 ((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))
31 3orass 1088 . . . . . . . . . . . . . 14 (((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))) ↔ ((rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))))
3230, 31mpbi 229 . . . . . . . . . . . . 13 ((rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3332ori 857 . . . . . . . . . . . 12 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3426, 33sylbi 216 . . . . . . . . . . 11 ((𝐴 × 𝐵) ≠ ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3534ord 860 . . . . . . . . . 10 ((𝐴 × 𝐵) ≠ ∅ → (¬ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → Lim (rank‘(𝐴 × 𝐵))))
3635con1d 145 . . . . . . . . 9 ((𝐴 × 𝐵) ≠ ∅ → (¬ Lim (rank‘(𝐴 × 𝐵)) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
3723, 36syl5com 31 . . . . . . . 8 ((rank‘(𝐴𝐵)) = suc 𝐶 → ((𝐴 × 𝐵) ≠ ∅ → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
38 nlimsucg 7664 . . . . . . . . . . . 12 (𝑥 ∈ V → ¬ Lim suc 𝑥)
3938elv 3428 . . . . . . . . . . 11 ¬ Lim suc 𝑥
40 limeq 6263 . . . . . . . . . . 11 ((rank‘(𝐴 × 𝐵)) = suc 𝑥 → (Lim (rank‘(𝐴 × 𝐵)) ↔ Lim suc 𝑥))
4139, 40mtbiri 326 . . . . . . . . . 10 ((rank‘(𝐴 × 𝐵)) = suc 𝑥 → ¬ Lim (rank‘(𝐴 × 𝐵)))
4241rexlimivw 3210 . . . . . . . . 9 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → ¬ Lim (rank‘(𝐴 × 𝐵)))
4320, 21rankxplim3 9570 . . . . . . . . 9 (Lim (rank‘(𝐴 × 𝐵)) ↔ Lim (rank‘(𝐴 × 𝐵)))
4442, 43sylnib 327 . . . . . . . 8 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → ¬ Lim (rank‘(𝐴 × 𝐵)))
4537, 44syl6com 37 . . . . . . 7 ((𝐴 × 𝐵) ≠ ∅ → ((rank‘(𝐴𝐵)) = suc 𝐶 → ¬ Lim (rank‘(𝐴 × 𝐵))))
46 unixp0 6175 . . . . . . . . . . . 12 ((𝐴 × 𝐵) = ∅ ↔ (𝐴 × 𝐵) = ∅)
4724uniex 7572 . . . . . . . . . . . . 13 (𝐴 × 𝐵) ∈ V
4847rankeq0 9550 . . . . . . . . . . . 12 ( (𝐴 × 𝐵) = ∅ ↔ (rank‘ (𝐴 × 𝐵)) = ∅)
494eqeq1i 2743 . . . . . . . . . . . 12 ((rank‘ (𝐴 × 𝐵)) = ∅ ↔ (rank‘(𝐴 × 𝐵)) = ∅)
5046, 48, 493bitri 296 . . . . . . . . . . 11 ((𝐴 × 𝐵) = ∅ ↔ (rank‘(𝐴 × 𝐵)) = ∅)
5150necon3abii 2989 . . . . . . . . . 10 ((𝐴 × 𝐵) ≠ ∅ ↔ ¬ (rank‘(𝐴 × 𝐵)) = ∅)
52 onuni 7615 . . . . . . . . . . . . . . 15 ((rank‘(𝐴 × 𝐵)) ∈ On → (rank‘(𝐴 × 𝐵)) ∈ On)
5327, 52ax-mp 5 . . . . . . . . . . . . . 14 (rank‘(𝐴 × 𝐵)) ∈ On
5453onordi 6356 . . . . . . . . . . . . 13 Ord (rank‘(𝐴 × 𝐵))
55 ordzsl 7667 . . . . . . . . . . . . 13 (Ord (rank‘(𝐴 × 𝐵)) ↔ ( (rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
5654, 55mpbi 229 . . . . . . . . . . . 12 ( (rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))
57 3orass 1088 . . . . . . . . . . . 12 (( (rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))) ↔ ( (rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))))
5856, 57mpbi 229 . . . . . . . . . . 11 ( (rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
5958ori 857 . . . . . . . . . 10 (rank‘(𝐴 × 𝐵)) = ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
6051, 59sylbi 216 . . . . . . . . 9 ((𝐴 × 𝐵) ≠ ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
6160ord 860 . . . . . . . 8 ((𝐴 × 𝐵) ≠ ∅ → (¬ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → Lim (rank‘(𝐴 × 𝐵))))
6261con1d 145 . . . . . . 7 ((𝐴 × 𝐵) ≠ ∅ → (¬ Lim (rank‘(𝐴 × 𝐵)) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
6345, 62syld 47 . . . . . 6 ((𝐴 × 𝐵) ≠ ∅ → ((rank‘(𝐴𝐵)) = suc 𝐶 → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
6463impcom 407 . . . . 5 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥)
65 onsucuni2 7656 . . . . . . 7 (( (rank‘(𝐴 × 𝐵)) ∈ On ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑥) → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
6653, 65mpan 686 . . . . . 6 ( (rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
6766rexlimivw 3210 . . . . 5 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
6864, 67syl 17 . . . 4 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
6910, 68eqtrd 2778 . . 3 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴𝐵)) = (rank‘(𝐴 × 𝐵)))
70 suc11reg 9307 . . 3 (suc suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)) ↔ suc (rank‘(𝐴𝐵)) = (rank‘(𝐴 × 𝐵)))
7169, 70sylibr 233 . 2 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)))
7237imp 406 . . 3 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥)
73 onsucuni2 7656 . . . . 5 (((rank‘(𝐴 × 𝐵)) ∈ On ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑥) → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7427, 73mpan 686 . . . 4 ((rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7574rexlimivw 3210 . . 3 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7672, 75syl 17 . 2 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7771, 76eqtr2d 2779 1 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → (rank‘(𝐴 × 𝐵)) = suc suc (rank‘(𝐴𝐵)))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 395  wo 843  w3o 1084   = wceq 1539  wcel 2108  wne 2942  wrex 3064  Vcvv 3422  cun 3881  c0 4253   cuni 4836   × cxp 5578  Ord word 6250  Oncon0 6251  Lim wlim 6252  suc csuc 6253  cfv 6418  rankcrnk 9452
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1799  ax-4 1813  ax-5 1914  ax-6 1972  ax-7 2012  ax-8 2110  ax-9 2118  ax-10 2139  ax-11 2156  ax-12 2173  ax-ext 2709  ax-rep 5205  ax-sep 5218  ax-nul 5225  ax-pow 5283  ax-pr 5347  ax-un 7566  ax-reg 9281  ax-inf2 9329
This theorem depends on definitions:  df-bi 206  df-an 396  df-or 844  df-3or 1086  df-3an 1087  df-tru 1542  df-fal 1552  df-ex 1784  df-nf 1788  df-sb 2069  df-mo 2540  df-eu 2569  df-clab 2716  df-cleq 2730  df-clel 2817  df-nfc 2888  df-ne 2943  df-ral 3068  df-rex 3069  df-reu 3070  df-rab 3072  df-v 3424  df-sbc 3712  df-csb 3829  df-dif 3886  df-un 3888  df-in 3890  df-ss 3900  df-pss 3902  df-nul 4254  df-if 4457  df-pw 4532  df-sn 4559  df-pr 4561  df-tp 4563  df-op 4565  df-uni 4837  df-int 4877  df-iun 4923  df-br 5071  df-opab 5133  df-mpt 5154  df-tr 5188  df-id 5480  df-eprel 5486  df-po 5494  df-so 5495  df-fr 5535  df-we 5537  df-xp 5586  df-rel 5587  df-cnv 5588  df-co 5589  df-dm 5590  df-rn 5591  df-res 5592  df-ima 5593  df-pred 6191  df-ord 6254  df-on 6255  df-lim 6256  df-suc 6257  df-iota 6376  df-fun 6420  df-fn 6421  df-f 6422  df-f1 6423  df-fo 6424  df-f1o 6425  df-fv 6426  df-ov 7258  df-om 7688  df-2nd 7805  df-frecs 8068  df-wrecs 8099  df-recs 8173  df-rdg 8212  df-r1 9453  df-rank 9454
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator