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

Theorem rankxpsuc 8705
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 8702 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 rankuni 8686 . . . . . . . 8 (rank‘ (𝐴 × 𝐵)) = (rank‘ (𝐴 × 𝐵))
2 rankuni 8686 . . . . . . . . 9 (rank‘ (𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵))
32unieqi 4418 . . . . . . . 8 (rank‘ (𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵))
41, 3eqtri 2643 . . . . . . 7 (rank‘ (𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵))
5 unixp 5637 . . . . . . . 8 ((𝐴 × 𝐵) ≠ ∅ → (𝐴 × 𝐵) = (𝐴𝐵))
65fveq2d 6162 . . . . . . 7 ((𝐴 × 𝐵) ≠ ∅ → (rank‘ (𝐴 × 𝐵)) = (rank‘(𝐴𝐵)))
74, 6syl5reqr 2670 . . . . . 6 ((𝐴 × 𝐵) ≠ ∅ → (rank‘(𝐴𝐵)) = (rank‘(𝐴 × 𝐵)))
8 suc11reg 8476 . . . . . 6 (suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)) ↔ (rank‘(𝐴𝐵)) = (rank‘(𝐴 × 𝐵)))
97, 8sylibr 224 . . . . 5 ((𝐴 × 𝐵) ≠ ∅ → suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)))
109adantl 482 . . . 4 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)))
11 fvex 6168 . . . . . . . . . . . . . 14 (rank‘(𝐴𝐵)) ∈ V
12 eleq1 2686 . . . . . . . . . . . . . 14 ((rank‘(𝐴𝐵)) = suc 𝐶 → ((rank‘(𝐴𝐵)) ∈ V ↔ suc 𝐶 ∈ V))
1311, 12mpbii 223 . . . . . . . . . . . . 13 ((rank‘(𝐴𝐵)) = suc 𝐶 → suc 𝐶 ∈ V)
14 sucexb 6971 . . . . . . . . . . . . 13 (𝐶 ∈ V ↔ suc 𝐶 ∈ V)
1513, 14sylibr 224 . . . . . . . . . . . 12 ((rank‘(𝐴𝐵)) = suc 𝐶𝐶 ∈ V)
16 nlimsucg 7004 . . . . . . . . . . . 12 (𝐶 ∈ V → ¬ Lim suc 𝐶)
1715, 16syl 17 . . . . . . . . . . 11 ((rank‘(𝐴𝐵)) = suc 𝐶 → ¬ Lim suc 𝐶)
18 limeq 5704 . . . . . . . . . . 11 ((rank‘(𝐴𝐵)) = suc 𝐶 → (Lim (rank‘(𝐴𝐵)) ↔ Lim suc 𝐶))
1917, 18mtbird 315 . . . . . . . . . 10 ((rank‘(𝐴𝐵)) = suc 𝐶 → ¬ Lim (rank‘(𝐴𝐵)))
20 rankxplim.1 . . . . . . . . . . 11 𝐴 ∈ V
21 rankxplim.2 . . . . . . . . . . 11 𝐵 ∈ V
2220, 21rankxplim2 8703 . . . . . . . . . 10 (Lim (rank‘(𝐴 × 𝐵)) → Lim (rank‘(𝐴𝐵)))
2319, 22nsyl 135 . . . . . . . . 9 ((rank‘(𝐴𝐵)) = suc 𝐶 → ¬ Lim (rank‘(𝐴 × 𝐵)))
2420, 21xpex 6927 . . . . . . . . . . . . . 14 (𝐴 × 𝐵) ∈ V
2524rankeq0 8684 . . . . . . . . . . . . 13 ((𝐴 × 𝐵) = ∅ ↔ (rank‘(𝐴 × 𝐵)) = ∅)
2625necon3abii 2836 . . . . . . . . . . . 12 ((𝐴 × 𝐵) ≠ ∅ ↔ ¬ (rank‘(𝐴 × 𝐵)) = ∅)
27 rankon 8618 . . . . . . . . . . . . . . . 16 (rank‘(𝐴 × 𝐵)) ∈ On
2827onordi 5801 . . . . . . . . . . . . . . 15 Ord (rank‘(𝐴 × 𝐵))
29 ordzsl 7007 . . . . . . . . . . . . . . 15 (Ord (rank‘(𝐴 × 𝐵)) ↔ ((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3028, 29mpbi 220 . . . . . . . . . . . . . 14 ((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))
31 3orass 1039 . . . . . . . . . . . . . 14 (((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))) ↔ ((rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))))
3230, 31mpbi 220 . . . . . . . . . . . . 13 ((rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3332ori 390 . . . . . . . . . . . 12 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3426, 33sylbi 207 . . . . . . . . . . 11 ((𝐴 × 𝐵) ≠ ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3534ord 392 . . . . . . . . . 10 ((𝐴 × 𝐵) ≠ ∅ → (¬ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → Lim (rank‘(𝐴 × 𝐵))))
3635con1d 139 . . . . . . . . 9 ((𝐴 × 𝐵) ≠ ∅ → (¬ Lim (rank‘(𝐴 × 𝐵)) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
3723, 36syl5com 31 . . . . . . . 8 ((rank‘(𝐴𝐵)) = suc 𝐶 → ((𝐴 × 𝐵) ≠ ∅ → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
38 vex 3193 . . . . . . . . . . . 12 𝑥 ∈ V
39 nlimsucg 7004 . . . . . . . . . . . 12 (𝑥 ∈ V → ¬ Lim suc 𝑥)
4038, 39ax-mp 5 . . . . . . . . . . 11 ¬ Lim suc 𝑥
41 limeq 5704 . . . . . . . . . . 11 ((rank‘(𝐴 × 𝐵)) = suc 𝑥 → (Lim (rank‘(𝐴 × 𝐵)) ↔ Lim suc 𝑥))
4240, 41mtbiri 317 . . . . . . . . . 10 ((rank‘(𝐴 × 𝐵)) = suc 𝑥 → ¬ Lim (rank‘(𝐴 × 𝐵)))
4342rexlimivw 3024 . . . . . . . . 9 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → ¬ Lim (rank‘(𝐴 × 𝐵)))
4420, 21rankxplim3 8704 . . . . . . . . 9 (Lim (rank‘(𝐴 × 𝐵)) ↔ Lim (rank‘(𝐴 × 𝐵)))
4543, 44sylnib 318 . . . . . . . 8 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → ¬ Lim (rank‘(𝐴 × 𝐵)))
4637, 45syl6com 37 . . . . . . 7 ((𝐴 × 𝐵) ≠ ∅ → ((rank‘(𝐴𝐵)) = suc 𝐶 → ¬ Lim (rank‘(𝐴 × 𝐵))))
47 unixp0 5638 . . . . . . . . . . . 12 ((𝐴 × 𝐵) = ∅ ↔ (𝐴 × 𝐵) = ∅)
4824uniex 6918 . . . . . . . . . . . . 13 (𝐴 × 𝐵) ∈ V
4948rankeq0 8684 . . . . . . . . . . . 12 ( (𝐴 × 𝐵) = ∅ ↔ (rank‘ (𝐴 × 𝐵)) = ∅)
502eqeq1i 2626 . . . . . . . . . . . 12 ((rank‘ (𝐴 × 𝐵)) = ∅ ↔ (rank‘(𝐴 × 𝐵)) = ∅)
5147, 49, 503bitri 286 . . . . . . . . . . 11 ((𝐴 × 𝐵) = ∅ ↔ (rank‘(𝐴 × 𝐵)) = ∅)
5251necon3abii 2836 . . . . . . . . . 10 ((𝐴 × 𝐵) ≠ ∅ ↔ ¬ (rank‘(𝐴 × 𝐵)) = ∅)
53 onuni 6955 . . . . . . . . . . . . . . 15 ((rank‘(𝐴 × 𝐵)) ∈ On → (rank‘(𝐴 × 𝐵)) ∈ On)
5427, 53ax-mp 5 . . . . . . . . . . . . . 14 (rank‘(𝐴 × 𝐵)) ∈ On
5554onordi 5801 . . . . . . . . . . . . 13 Ord (rank‘(𝐴 × 𝐵))
56 ordzsl 7007 . . . . . . . . . . . . 13 (Ord (rank‘(𝐴 × 𝐵)) ↔ ( (rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
5755, 56mpbi 220 . . . . . . . . . . . 12 ( (rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))
58 3orass 1039 . . . . . . . . . . . 12 (( (rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))) ↔ ( (rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))))
5957, 58mpbi 220 . . . . . . . . . . 11 ( (rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
6059ori 390 . . . . . . . . . 10 (rank‘(𝐴 × 𝐵)) = ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
6152, 60sylbi 207 . . . . . . . . 9 ((𝐴 × 𝐵) ≠ ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
6261ord 392 . . . . . . . 8 ((𝐴 × 𝐵) ≠ ∅ → (¬ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → Lim (rank‘(𝐴 × 𝐵))))
6362con1d 139 . . . . . . 7 ((𝐴 × 𝐵) ≠ ∅ → (¬ Lim (rank‘(𝐴 × 𝐵)) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
6446, 63syld 47 . . . . . 6 ((𝐴 × 𝐵) ≠ ∅ → ((rank‘(𝐴𝐵)) = suc 𝐶 → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
6564impcom 446 . . . . 5 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥)
66 onsucuni2 6996 . . . . . . 7 (( (rank‘(𝐴 × 𝐵)) ∈ On ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑥) → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
6754, 66mpan 705 . . . . . 6 ( (rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
6867rexlimivw 3024 . . . . 5 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
6965, 68syl 17 . . . 4 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7010, 69eqtrd 2655 . . 3 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴𝐵)) = (rank‘(𝐴 × 𝐵)))
71 suc11reg 8476 . . 3 (suc suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)) ↔ suc (rank‘(𝐴𝐵)) = (rank‘(𝐴 × 𝐵)))
7270, 71sylibr 224 . 2 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)))
7337imp 445 . . 3 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥)
74 onsucuni2 6996 . . . . 5 (((rank‘(𝐴 × 𝐵)) ∈ On ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑥) → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7527, 74mpan 705 . . . 4 ((rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7675rexlimivw 3024 . . 3 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7773, 76syl 17 . 2 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7872, 77eqtr2d 2656 1 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → (rank‘(𝐴 × 𝐵)) = suc suc (rank‘(𝐴𝐵)))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wo 383  wa 384  w3o 1035   = wceq 1480  wcel 1987  wne 2790  wrex 2909  Vcvv 3190  cun 3558  c0 3897   cuni 4409   × cxp 5082  Ord word 5691  Oncon0 5692  Lim wlim 5693  suc csuc 5694  cfv 5857  rankcrnk 8586
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1719  ax-4 1734  ax-5 1836  ax-6 1885  ax-7 1932  ax-8 1989  ax-9 1996  ax-10 2016  ax-11 2031  ax-12 2044  ax-13 2245  ax-ext 2601  ax-rep 4741  ax-sep 4751  ax-nul 4759  ax-pow 4813  ax-pr 4877  ax-un 6914  ax-reg 8457  ax-inf2 8498
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3or 1037  df-3an 1038  df-tru 1483  df-ex 1702  df-nf 1707  df-sb 1878  df-eu 2473  df-mo 2474  df-clab 2608  df-cleq 2614  df-clel 2617  df-nfc 2750  df-ne 2791  df-ral 2913  df-rex 2914  df-reu 2915  df-rab 2917  df-v 3192  df-sbc 3423  df-csb 3520  df-dif 3563  df-un 3565  df-in 3567  df-ss 3574  df-pss 3576  df-nul 3898  df-if 4065  df-pw 4138  df-sn 4156  df-pr 4158  df-tp 4160  df-op 4162  df-uni 4410  df-int 4448  df-iun 4494  df-br 4624  df-opab 4684  df-mpt 4685  df-tr 4723  df-eprel 4995  df-id 4999  df-po 5005  df-so 5006  df-fr 5043  df-we 5045  df-xp 5090  df-rel 5091  df-cnv 5092  df-co 5093  df-dm 5094  df-rn 5095  df-res 5096  df-ima 5097  df-pred 5649  df-ord 5695  df-on 5696  df-lim 5697  df-suc 5698  df-iota 5820  df-fun 5859  df-fn 5860  df-f 5861  df-f1 5862  df-fo 5863  df-f1o 5864  df-fv 5865  df-om 7028  df-wrecs 7367  df-recs 7428  df-rdg 7466  df-r1 8587  df-rank 8588
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator