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

Theorem rankxpsuc 9900
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 9897 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 6285 . . . . . . . 8 ((𝐴 × 𝐵) ≠ ∅ → ∪ ∪ (𝐴 × 𝐵) = (𝐴 ∪ 𝐵))
21fveq2d 6889 . . . . . . 7 ((𝐴 × 𝐵) ≠ ∅ → (rank‘∪ ∪ (𝐴 × 𝐵)) = (rank‘(𝐴 ∪ 𝐵)))
3 rankuni 9880 . . . . . . . 8 (rank‘∪ ∪ (𝐴 × 𝐵)) = ∪ (rank‘∪ (𝐴 × 𝐵))
4 rankuni 9880 . . . . . . . . 9 (rank‘∪ (𝐴 × 𝐵)) = ∪ (rank‘(𝐴 × 𝐵))
54unieqi 4878 . . . . . . . 8 ∪ (rank‘∪ (𝐴 × 𝐵)) = ∪ ∪ (rank‘(𝐴 × 𝐵))
63, 5eqtri 2783 . . . . . . 7 (rank‘∪ ∪ (𝐴 × 𝐵)) = ∪ ∪ (rank‘(𝐴 × 𝐵))
72, 6eqtr3di 2810 . . . . . 6 ((𝐴 × 𝐵) ≠ ∅ → (rank‘(𝐴 ∪ 𝐵)) = ∪ ∪ (rank‘(𝐴 × 𝐵)))
8 suc11reg 9621 . . . . . 6 (suc (rank‘(𝐴 ∪ 𝐵)) = suc ∪ ∪ (rank‘(𝐴 × 𝐵)) ↔ (rank‘(𝐴 ∪ 𝐵)) = ∪ ∪ (rank‘(𝐴 × 𝐵)))
97, 8sylibr 237 . . . . 5 ((𝐴 × 𝐵) ≠ ∅ → suc (rank‘(𝐴 ∪ 𝐵)) = suc ∪ ∪ (rank‘(𝐴 × 𝐵)))
109adantl 487 . . . 4 (((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴 ∪ 𝐵)) = suc ∪ ∪ (rank‘(𝐴 × 𝐵)))
11 fvex 6898 . . . . . . . . . . . . . 14 (rank‘(𝐴 ∪ 𝐵)) ∈ V
12 eleq1 2848 . . . . . . . . . . . . . 14 ((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 → ((rank‘(𝐴 ∪ 𝐵)) ∈ V ↔ suc 𝐶 ∈ V))
1311, 12mpbii 236 . . . . . . . . . . . . 13 ((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 → suc 𝐶 ∈ V)
14 sucexb 7818 . . . . . . . . . . . . 13 (𝐶 ∈ V ↔ suc 𝐶 ∈ V)
1513, 14sylibr 237 . . . . . . . . . . . 12 ((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 → 𝐶 ∈ V)
16 nlimsucg 7853 . . . . . . . . . . . 12 (𝐶 ∈ V → ¬ Lim suc 𝐶)
1715, 16syl 18 . . . . . . . . . . 11 ((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 → ¬ Lim suc 𝐶)
18 limeq 6374 . . . . . . . . . . 11 ((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 → (Lim (rank‘(𝐴 ∪ 𝐵)) ↔ Lim suc 𝐶))
1917, 18mtbird 328 . . . . . . . . . 10 ((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 → ¬ Lim (rank‘(𝐴 ∪ 𝐵)))
20 rankxplim.1 . . . . . . . . . . 11 𝐴 ∈ V
21 rankxplim.2 . . . . . . . . . . 11 𝐵 ∈ V
2220, 21rankxplim2 9898 . . . . . . . . . 10 (Lim (rank‘(𝐴 × 𝐵)) → Lim (rank‘(𝐴 ∪ 𝐵)))
2319, 22nsyl 141 . . . . . . . . 9 ((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 → ¬ Lim (rank‘(𝐴 × 𝐵)))
2420, 21xpex 7767 . . . . . . . . . . . . . 14 (𝐴 × 𝐵) ∈ V
2524rankeq0 9878 . . . . . . . . . . . . 13 ((𝐴 × 𝐵) = ∅ ↔ (rank‘(𝐴 × 𝐵)) = ∅)
2625necon3abii 3001 . . . . . . . . . . . 12 ((𝐴 × 𝐵) ≠ ∅ ↔ ¬ (rank‘(𝐴 × 𝐵)) = ∅)
27 rankon 9804 . . . . . . . . . . . . . . . 16 (rank‘(𝐴 × 𝐵)) ∈ On
2827onordi 6476 . . . . . . . . . . . . . . 15 Ord (rank‘(𝐴 × 𝐵))
29 ordzsl 7856 . . . . . . . . . . . . . . 15 (Ord (rank‘(𝐴 × 𝐵)) ↔ ((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3028, 29mpbi 233 . . . . . . . . . . . . . 14 ((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))
31 3orass 1106 . . . . . . . . . . . . . 14 (((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))) ↔ ((rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))))
3230, 31mpbi 233 . . . . . . . . . . . . 13 ((rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3332ori 875 . . . . . . . . . . . 12 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3426, 33sylbi 220 . . . . . . . . . . 11 ((𝐴 × 𝐵) ≠ ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3534ord 878 . . . . . . . . . 10 ((𝐴 × 𝐵) ≠ ∅ → (¬ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → Lim (rank‘(𝐴 × 𝐵))))
3635con1d 146 . . . . . . . . 9 ((𝐴 × 𝐵) ≠ ∅ → (¬ Lim (rank‘(𝐴 × 𝐵)) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
3723, 36syl5com 32 . . . . . . . 8 ((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 → ((𝐴 × 𝐵) ≠ ∅ → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
38 nlimsucg 7853 . . . . . . . . . . . 12 (𝑥 ∈ V → ¬ Lim suc 𝑥)
3938elv 3455 . . . . . . . . . . 11 ¬ Lim suc 𝑥
40 limeq 6374 . . . . . . . . . . 11 ((rank‘(𝐴 × 𝐵)) = suc 𝑥 → (Lim (rank‘(𝐴 × 𝐵)) ↔ Lim suc 𝑥))
4139, 40mtbiri 330 . . . . . . . . . 10 ((rank‘(𝐴 × 𝐵)) = suc 𝑥 → ¬ Lim (rank‘(𝐴 × 𝐵)))
4241rexlimivw 3159 . . . . . . . . 9 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → ¬ Lim (rank‘(𝐴 × 𝐵)))
4320, 21rankxplim3 9899 . . . . . . . . 9 (Lim (rank‘(𝐴 × 𝐵)) ↔ Lim ∪ (rank‘(𝐴 × 𝐵)))
4442, 43sylnib 331 . . . . . . . 8 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → ¬ Lim ∪ (rank‘(𝐴 × 𝐵)))
4537, 44syl6com 38 . . . . . . 7 ((𝐴 × 𝐵) ≠ ∅ → ((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 → ¬ Lim ∪ (rank‘(𝐴 × 𝐵))))
46 unixp0 6286 . . . . . . . . . . . 12 ((𝐴 × 𝐵) = ∅ ↔ ∪ (𝐴 × 𝐵) = ∅)
4724uniex 7758 . . . . . . . . . . . . 13 ∪ (𝐴 × 𝐵) ∈ V
4847rankeq0 9878 . . . . . . . . . . . 12 (∪ (𝐴 × 𝐵) = ∅ ↔ (rank‘∪ (𝐴 × 𝐵)) = ∅)
494eqeq1i 2765 . . . . . . . . . . . 12 ((rank‘∪ (𝐴 × 𝐵)) = ∅ ↔ ∪ (rank‘(𝐴 × 𝐵)) = ∅)
5046, 48, 493bitri 300 . . . . . . . . . . 11 ((𝐴 × 𝐵) = ∅ ↔ ∪ (rank‘(𝐴 × 𝐵)) = ∅)
5150necon3abii 3001 . . . . . . . . . 10 ((𝐴 × 𝐵) ≠ ∅ ↔ ¬ ∪ (rank‘(𝐴 × 𝐵)) = ∅)
52 onuni 7802 . . . . . . . . . . . . . . 15 ((rank‘(𝐴 × 𝐵)) ∈ On → ∪ (rank‘(𝐴 × 𝐵)) ∈ On)
5327, 52ax-mp 5 . . . . . . . . . . . . . 14 ∪ (rank‘(𝐴 × 𝐵)) ∈ On
5453onordi 6476 . . . . . . . . . . . . 13 Ord ∪ (rank‘(𝐴 × 𝐵))
55 ordzsl 7856 . . . . . . . . . . . . 13 (Ord ∪ (rank‘(𝐴 × 𝐵)) ↔ (∪ (rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim ∪ (rank‘(𝐴 × 𝐵))))
5654, 55mpbi 233 . . . . . . . . . . . 12 (∪ (rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim ∪ (rank‘(𝐴 × 𝐵)))
57 3orass 1106 . . . . . . . . . . . 12 ((∪ (rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim ∪ (rank‘(𝐴 × 𝐵))) ↔ (∪ (rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim ∪ (rank‘(𝐴 × 𝐵)))))
5856, 57mpbi 233 . . . . . . . . . . 11 (∪ (rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim ∪ (rank‘(𝐴 × 𝐵))))
5958ori 875 . . . . . . . . . 10 (¬ ∪ (rank‘(𝐴 × 𝐵)) = ∅ → (∃𝑥 ∈ On ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim ∪ (rank‘(𝐴 × 𝐵))))
6051, 59sylbi 220 . . . . . . . . 9 ((𝐴 × 𝐵) ≠ ∅ → (∃𝑥 ∈ On ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim ∪ (rank‘(𝐴 × 𝐵))))
6160ord 878 . . . . . . . 8 ((𝐴 × 𝐵) ≠ ∅ → (¬ ∃𝑥 ∈ On ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥 → Lim ∪ (rank‘(𝐴 × 𝐵))))
6261con1d 146 . . . . . . 7 ((𝐴 × 𝐵) ≠ ∅ → (¬ Lim ∪ (rank‘(𝐴 × 𝐵)) → ∃𝑥 ∈ On ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥))
6345, 62syld 48 . . . . . 6 ((𝐴 × 𝐵) ≠ ∅ → ((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 → ∃𝑥 ∈ On ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥))
6463impcom 413 . . . . 5 (((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → ∃𝑥 ∈ On ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥)
65 onsucuni2 7845 . . . . . . 7 ((∪ (rank‘(𝐴 × 𝐵)) ∈ On ∧ ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥) → suc ∪ ∪ (rank‘(𝐴 × 𝐵)) = ∪ (rank‘(𝐴 × 𝐵)))
6653, 65mpan 703 . . . . . 6 (∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc ∪ ∪ (rank‘(𝐴 × 𝐵)) = ∪ (rank‘(𝐴 × 𝐵)))
6766rexlimivw 3159 . . . . 5 (∃𝑥 ∈ On ∪ (rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc ∪ ∪ (rank‘(𝐴 × 𝐵)) = ∪ (rank‘(𝐴 × 𝐵)))
6864, 67syl 18 . . . 4 (((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc ∪ ∪ (rank‘(𝐴 × 𝐵)) = ∪ (rank‘(𝐴 × 𝐵)))
6910, 68eqtrd 2795 . . 3 (((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴 ∪ 𝐵)) = ∪ (rank‘(𝐴 × 𝐵)))
70 suc11reg 9621 . . 3 (suc suc (rank‘(𝐴 ∪ 𝐵)) = suc ∪ (rank‘(𝐴 × 𝐵)) ↔ suc (rank‘(𝐴 ∪ 𝐵)) = ∪ (rank‘(𝐴 × 𝐵)))
7169, 70sylibr 237 . 2 (((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc suc (rank‘(𝐴 ∪ 𝐵)) = suc ∪ (rank‘(𝐴 × 𝐵)))
7237imp 412 . . 3 (((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥)
73 onsucuni2 7845 . . . . 5 (((rank‘(𝐴 × 𝐵)) ∈ On ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑥) → suc ∪ (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7427, 73mpan 703 . . . 4 ((rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc ∪ (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7574rexlimivw 3159 . . 3 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc ∪ (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7672, 75syl 18 . 2 (((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc ∪ (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7771, 76eqtr2d 2796 1 (((rank‘(𝐴 ∪ 𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → (rank‘(𝐴 × 𝐵)) = suc suc (rank‘(𝐴 ∪ 𝐵)))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:  ¬ wn 3   → wi 4   ∧ wa 401   ∨ wo 861   ∨ w3o 1102   = wceq 1569   ∈ wcel 2144   ≠ wne 2955  ∃wrex 3086  Vcvv 3450   ∪ cun 4149  ∅c0 4278  ∪ cuni 4866   × cxp 5648  Ord word 6361  Oncon0 6362  Lim wlim 6363  suc csuc 6364  ‘cfv 6538  rankcrnk 9768
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1827  ax-4 1841  ax-5 1942  ax-6 1999  ax-7 2040  ax-8 2146  ax-9 2154  ax-10 2177  ax-11 2193  ax-12 2212  ax-ext 2732  ax-rep 5231  ax-sep 5248  ax-nul 5259  ax-pow 5326  ax-pr 5390  ax-un 7751  ax-reg 9587  ax-inf2 9643
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-3or 1104  df-3an 1105  df-tru 1572  df-fal 1582  df-ex 1812  df-nf 1816  df-sb 2099  df-mo 2564  df-eu 2594  df-clab 2739  df-cleq 2752  df-clel 2835  df-nfc 2909  df-ne 2956  df-ral 3077  df-rex 3087  df-reu 3366  df-rab 3413  df-v 3452  df-sbc 3739  df-csb 3847  df-ss 3896  df-pss 4014  df-dif 4047  df-in 4091  df-un 4151  df-nul 4279  df-if 4482  df-pw 4558  df-sn 4584  df-pr 4586  df-op 4590  df-uni 4867  df-int 4907  df-iun 4952  df-br 5103  df-opab 5167  df-mpt 5186  df-tr 5212  df-id 5545  df-eprel 5550  df-po 5558  df-so 5559  df-fr 5603  df-we 5605  df-xp 5656  df-rel 5657  df-cnv 5658  df-co 5659  df-dm 5660  df-rn 5661  df-res 5662  df-ima 5663  df-pred 6304  df-ord 6365  df-on 6366  df-lim 6367  df-suc 6368  df-iota 6494  df-fun 6540  df-fn 6541  df-f 6542  df-f1 6543  df-fo 6544  df-f1o 6545  df-fv 6546  df-ov 7423  df-om 7878  df-2nd 8002  df-frecs 8300  df-wrecs 8331  df-recs 8380  df-rdg 8419  df-r1 9769  df-rank 9770
This theorem is used by: (None)
  Copyright terms: Public domain W3C validator