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

Theorem rankxpsuc 8930
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 8927 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 8911 . . . . . . . 8 (rank‘ (𝐴 × 𝐵)) = (rank‘ (𝐴 × 𝐵))
2 rankuni 8911 . . . . . . . . 9 (rank‘ (𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵))
32unieqi 4594 . . . . . . . 8 (rank‘ (𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵))
41, 3eqtri 2796 . . . . . . 7 (rank‘ (𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵))
5 unixp 5823 . . . . . . . 8 ((𝐴 × 𝐵) ≠ ∅ → (𝐴 × 𝐵) = (𝐴𝐵))
65fveq2d 6352 . . . . . . 7 ((𝐴 × 𝐵) ≠ ∅ → (rank‘ (𝐴 × 𝐵)) = (rank‘(𝐴𝐵)))
74, 6syl5reqr 2823 . . . . . 6 ((𝐴 × 𝐵) ≠ ∅ → (rank‘(𝐴𝐵)) = (rank‘(𝐴 × 𝐵)))
8 suc11reg 8701 . . . . . 6 (suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)) ↔ (rank‘(𝐴𝐵)) = (rank‘(𝐴 × 𝐵)))
97, 8sylibr 225 . . . . 5 ((𝐴 × 𝐵) ≠ ∅ → suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)))
109adantl 468 . . . 4 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)))
11 fvex 6359 . . . . . . . . . . . . . 14 (rank‘(𝐴𝐵)) ∈ V
12 eleq1 2841 . . . . . . . . . . . . . 14 ((rank‘(𝐴𝐵)) = suc 𝐶 → ((rank‘(𝐴𝐵)) ∈ V ↔ suc 𝐶 ∈ V))
1311, 12mpbii 224 . . . . . . . . . . . . 13 ((rank‘(𝐴𝐵)) = suc 𝐶 → suc 𝐶 ∈ V)
14 sucexb 7177 . . . . . . . . . . . . 13 (𝐶 ∈ V ↔ suc 𝐶 ∈ V)
1513, 14sylibr 225 . . . . . . . . . . . 12 ((rank‘(𝐴𝐵)) = suc 𝐶𝐶 ∈ V)
16 nlimsucg 7210 . . . . . . . . . . . 12 (𝐶 ∈ V → ¬ Lim suc 𝐶)
1715, 16syl 17 . . . . . . . . . . 11 ((rank‘(𝐴𝐵)) = suc 𝐶 → ¬ Lim suc 𝐶)
18 limeq 5889 . . . . . . . . . . 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 8928 . . . . . . . . . 10 (Lim (rank‘(𝐴 × 𝐵)) → Lim (rank‘(𝐴𝐵)))
2319, 22nsyl 137 . . . . . . . . 9 ((rank‘(𝐴𝐵)) = suc 𝐶 → ¬ Lim (rank‘(𝐴 × 𝐵)))
2420, 21xpex 7130 . . . . . . . . . . . . . 14 (𝐴 × 𝐵) ∈ V
2524rankeq0 8909 . . . . . . . . . . . . 13 ((𝐴 × 𝐵) = ∅ ↔ (rank‘(𝐴 × 𝐵)) = ∅)
2625necon3abii 2992 . . . . . . . . . . . 12 ((𝐴 × 𝐵) ≠ ∅ ↔ ¬ (rank‘(𝐴 × 𝐵)) = ∅)
27 rankon 8843 . . . . . . . . . . . . . . . 16 (rank‘(𝐴 × 𝐵)) ∈ On
2827onordi 5986 . . . . . . . . . . . . . . 15 Ord (rank‘(𝐴 × 𝐵))
29 ordzsl 7213 . . . . . . . . . . . . . . 15 (Ord (rank‘(𝐴 × 𝐵)) ↔ ((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3028, 29mpbi 221 . . . . . . . . . . . . . 14 ((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))
31 3orass 1101 . . . . . . . . . . . . . 14 (((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))) ↔ ((rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))))
3230, 31mpbi 221 . . . . . . . . . . . . 13 ((rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3332ori 877 . . . . . . . . . . . 12 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3426, 33sylbi 208 . . . . . . . . . . 11 ((𝐴 × 𝐵) ≠ ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
3534ord 880 . . . . . . . . . 10 ((𝐴 × 𝐵) ≠ ∅ → (¬ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → Lim (rank‘(𝐴 × 𝐵))))
3635con1d 141 . . . . . . . . 9 ((𝐴 × 𝐵) ≠ ∅ → (¬ Lim (rank‘(𝐴 × 𝐵)) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
3723, 36syl5com 31 . . . . . . . 8 ((rank‘(𝐴𝐵)) = suc 𝐶 → ((𝐴 × 𝐵) ≠ ∅ → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
38 vex 3358 . . . . . . . . . . . 12 𝑥 ∈ V
39 nlimsucg 7210 . . . . . . . . . . . 12 (𝑥 ∈ V → ¬ Lim suc 𝑥)
4038, 39ax-mp 5 . . . . . . . . . . 11 ¬ Lim suc 𝑥
41 limeq 5889 . . . . . . . . . . 11 ((rank‘(𝐴 × 𝐵)) = suc 𝑥 → (Lim (rank‘(𝐴 × 𝐵)) ↔ Lim suc 𝑥))
4240, 41mtbiri 317 . . . . . . . . . 10 ((rank‘(𝐴 × 𝐵)) = suc 𝑥 → ¬ Lim (rank‘(𝐴 × 𝐵)))
4342rexlimivw 3181 . . . . . . . . 9 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → ¬ Lim (rank‘(𝐴 × 𝐵)))
4420, 21rankxplim3 8929 . . . . . . . . 9 (Lim (rank‘(𝐴 × 𝐵)) ↔ Lim (rank‘(𝐴 × 𝐵)))
4543, 44sylnib 318 . . . . . . . 8 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → ¬ Lim (rank‘(𝐴 × 𝐵)))
4637, 45syl6com 37 . . . . . . 7 ((𝐴 × 𝐵) ≠ ∅ → ((rank‘(𝐴𝐵)) = suc 𝐶 → ¬ Lim (rank‘(𝐴 × 𝐵))))
47 unixp0 5824 . . . . . . . . . . . 12 ((𝐴 × 𝐵) = ∅ ↔ (𝐴 × 𝐵) = ∅)
4824uniex 7121 . . . . . . . . . . . . 13 (𝐴 × 𝐵) ∈ V
4948rankeq0 8909 . . . . . . . . . . . 12 ( (𝐴 × 𝐵) = ∅ ↔ (rank‘ (𝐴 × 𝐵)) = ∅)
502eqeq1i 2779 . . . . . . . . . . . 12 ((rank‘ (𝐴 × 𝐵)) = ∅ ↔ (rank‘(𝐴 × 𝐵)) = ∅)
5147, 49, 503bitri 287 . . . . . . . . . . 11 ((𝐴 × 𝐵) = ∅ ↔ (rank‘(𝐴 × 𝐵)) = ∅)
5251necon3abii 2992 . . . . . . . . . 10 ((𝐴 × 𝐵) ≠ ∅ ↔ ¬ (rank‘(𝐴 × 𝐵)) = ∅)
53 onuni 7161 . . . . . . . . . . . . . . 15 ((rank‘(𝐴 × 𝐵)) ∈ On → (rank‘(𝐴 × 𝐵)) ∈ On)
5427, 53ax-mp 5 . . . . . . . . . . . . . 14 (rank‘(𝐴 × 𝐵)) ∈ On
5554onordi 5986 . . . . . . . . . . . . 13 Ord (rank‘(𝐴 × 𝐵))
56 ordzsl 7213 . . . . . . . . . . . . 13 (Ord (rank‘(𝐴 × 𝐵)) ↔ ( (rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
5755, 56mpbi 221 . . . . . . . . . . . 12 ( (rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))
58 3orass 1101 . . . . . . . . . . . 12 (( (rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))) ↔ ( (rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵)))))
5957, 58mpbi 221 . . . . . . . . . . 11 ( (rank‘(𝐴 × 𝐵)) = ∅ ∨ (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
6059ori 877 . . . . . . . . . 10 (rank‘(𝐴 × 𝐵)) = ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
6152, 60sylbi 208 . . . . . . . . 9 ((𝐴 × 𝐵) ≠ ∅ → (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 × 𝐵))))
6261ord 880 . . . . . . . 8 ((𝐴 × 𝐵) ≠ ∅ → (¬ ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → Lim (rank‘(𝐴 × 𝐵))))
6362con1d 141 . . . . . . 7 ((𝐴 × 𝐵) ≠ ∅ → (¬ Lim (rank‘(𝐴 × 𝐵)) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
6446, 63syld 47 . . . . . 6 ((𝐴 × 𝐵) ≠ ∅ → ((rank‘(𝐴𝐵)) = suc 𝐶 → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥))
6564impcom 395 . . . . 5 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥)
66 onsucuni2 7202 . . . . . . 7 (( (rank‘(𝐴 × 𝐵)) ∈ On ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑥) → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
6754, 66mpan 671 . . . . . 6 ( (rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
6867rexlimivw 3181 . . . . 5 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
6965, 68syl 17 . . . 4 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7010, 69eqtrd 2808 . . 3 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴𝐵)) = (rank‘(𝐴 × 𝐵)))
71 suc11reg 8701 . . 3 (suc suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)) ↔ suc (rank‘(𝐴𝐵)) = (rank‘(𝐴 × 𝐵)))
7270, 71sylibr 225 . 2 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc suc (rank‘(𝐴𝐵)) = suc (rank‘(𝐴 × 𝐵)))
7337imp 394 . . 3 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → ∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥)
74 onsucuni2 7202 . . . . 5 (((rank‘(𝐴 × 𝐵)) ∈ On ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑥) → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7527, 74mpan 671 . . . 4 ((rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7675rexlimivw 3181 . . 3 (∃𝑥 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑥 → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7773, 76syl 17 . 2 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → suc (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7872, 77eqtr2d 2809 1 (((rank‘(𝐴𝐵)) = suc 𝐶 ∧ (𝐴 × 𝐵) ≠ ∅) → (rank‘(𝐴 × 𝐵)) = suc suc (rank‘(𝐴𝐵)))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 383  wo 863  w3o 1097   = wceq 1634  wcel 2148  wne 2946  wrex 3065  Vcvv 3355  cun 3727  c0 4073   cuni 4585   × cxp 5261  Ord word 5876  Oncon0 5877  Lim wlim 5878  suc csuc 5879  cfv 6042  rankcrnk 8811
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1873  ax-4 1888  ax-5 1994  ax-6 2060  ax-7 2096  ax-8 2150  ax-9 2157  ax-10 2177  ax-11 2193  ax-12 2206  ax-13 2411  ax-ext 2754  ax-rep 4917  ax-sep 4928  ax-nul 4936  ax-pow 4988  ax-pr 5048  ax-un 7117  ax-reg 8674  ax-inf2 8723
This theorem depends on definitions:  df-bi 198  df-an 384  df-or 864  df-3or 1099  df-3an 1100  df-tru 1637  df-ex 1856  df-nf 1861  df-sb 2053  df-eu 2625  df-mo 2626  df-clab 2761  df-cleq 2767  df-clel 2770  df-nfc 2905  df-ne 2947  df-ral 3069  df-rex 3070  df-reu 3071  df-rab 3073  df-v 3357  df-sbc 3594  df-csb 3689  df-dif 3732  df-un 3734  df-in 3736  df-ss 3743  df-pss 3745  df-nul 4074  df-if 4236  df-pw 4309  df-sn 4327  df-pr 4329  df-tp 4331  df-op 4333  df-uni 4586  df-int 4623  df-iun 4667  df-br 4798  df-opab 4860  df-mpt 4877  df-tr 4900  df-id 5171  df-eprel 5176  df-po 5184  df-so 5185  df-fr 5222  df-we 5224  df-xp 5269  df-rel 5270  df-cnv 5271  df-co 5272  df-dm 5273  df-rn 5274  df-res 5275  df-ima 5276  df-pred 5834  df-ord 5880  df-on 5881  df-lim 5882  df-suc 5883  df-iota 6005  df-fun 6044  df-fn 6045  df-f 6046  df-f1 6047  df-fo 6048  df-f1o 6049  df-fv 6050  df-om 7234  df-wrecs 7580  df-recs 7642  df-rdg 7680  df-r1 8812  df-rank 8813
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator