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

Theorem rankxplim3 9898
Description: The rank of a Cartesian product is a limit ordinal iff its union is. (Contributed by NM, 19-Sep-2006.)
Hypotheses
Ref Expression
rankxplim.1 𝐴 ∈ V
rankxplim.2 𝐵 ∈ V
Assertion
Ref Expression
rankxplim3 (Lim (rank‘(𝐴 × 𝐵)) ↔ Lim ∪ (rank‘(𝐴 × 𝐵)))

Proof of Theorem rankxplim3
Dummy variables 𝑥 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 limuni2 6426 . 2 (Lim (rank‘(𝐴 × 𝐵)) → Lim ∪ (rank‘(𝐴 × 𝐵)))
2 0ellim 6427 . . . 4 (Lim ∪ (rank‘(𝐴 × 𝐵)) → ∅ ∈ ∪ (rank‘(𝐴 × 𝐵)))
3 n0i 4285 . . . 4 (∅ ∈ ∪ (rank‘(𝐴 × 𝐵)) → ¬ ∪ (rank‘(𝐴 × 𝐵)) = ∅)
4 unieq 4877 . . . . . 6 ((rank‘(𝐴 × 𝐵)) = ∅ → ∪ (rank‘(𝐴 × 𝐵)) = ∪ ∅)
5 uni0 4895 . . . . . 6 ∪ ∅ = ∅
64, 5eqtrdi 2811 . . . . 5 ((rank‘(𝐴 × 𝐵)) = ∅ → ∪ (rank‘(𝐴 × 𝐵)) = ∅)
76con3i 155 . . . 4 (¬ ∪ (rank‘(𝐴 × 𝐵)) = ∅ → ¬ (rank‘(𝐴 × 𝐵)) = ∅)
82, 3, 73syl 19 . . 3 (Lim ∪ (rank‘(𝐴 × 𝐵)) → ¬ (rank‘(𝐴 × 𝐵)) = ∅)
9 rankon 9803 . . . . . . . . . 10 (rank‘(𝐴 ∪ 𝐵)) ∈ On
109onsuci 7850 . . . . . . . . 9 suc (rank‘(𝐴 ∪ 𝐵)) ∈ On
1110onsuci 7850 . . . . . . . 8 suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ On
1211elexi 3472 . . . . . . 7 suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ V
1312sucid 6447 . . . . . 6 suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ suc suc suc (rank‘(𝐴 ∪ 𝐵))
1411onsuci 7850 . . . . . . . 8 suc suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ On
15 ontri1 6397 . . . . . . . 8 ((suc suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ On ∧ suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ On) → (suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ suc suc (rank‘(𝐴 ∪ 𝐵)) ↔ ¬ suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ suc suc suc (rank‘(𝐴 ∪ 𝐵))))
1614, 11, 15mp2an 705 . . . . . . 7 (suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ suc suc (rank‘(𝐴 ∪ 𝐵)) ↔ ¬ suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ suc suc suc (rank‘(𝐴 ∪ 𝐵)))
1716con2bii 360 . . . . . 6 (suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ suc suc suc (rank‘(𝐴 ∪ 𝐵)) ↔ ¬ suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ suc suc (rank‘(𝐴 ∪ 𝐵)))
1813, 17mpbi 233 . . . . 5 ¬ suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ suc suc (rank‘(𝐴 ∪ 𝐵))
19 rankxplim.1 . . . . . . 7 𝐴 ∈ V
20 rankxplim.2 . . . . . . 7 𝐵 ∈ V
2119, 20rankxpu 9893 . . . . . 6 (rank‘(𝐴 × 𝐵)) ⊆ suc suc (rank‘(𝐴 ∪ 𝐵))
22 sstr 3916 . . . . . 6 ((suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ (rank‘(𝐴 × 𝐵)) ∧ (rank‘(𝐴 × 𝐵)) ⊆ suc suc (rank‘(𝐴 ∪ 𝐵))) → suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ suc suc (rank‘(𝐴 ∪ 𝐵)))
2321, 22mpan2 704 . . . . 5 (suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ (rank‘(𝐴 × 𝐵)) → suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ suc suc (rank‘(𝐴 ∪ 𝐵)))
2418, 23mto 200 . . . 4 ¬ suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ (rank‘(𝐴 × 𝐵))
25 reeanv 3234 . . . . 5 (∃𝑥 ∈ On ∃𝑦 ∈ On ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦) ↔ (∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦))
26 simprl 783 . . . . . . . . . . . . 13 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥)
27 simpr 490 . . . . . . . . . . . . . . . . . 18 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥) → (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥)
28 df-ne 2956 . . . . . . . . . . . . . . . . . . . . . . . . 25 ((𝐴 × 𝐵) ≠ ∅ ↔ ¬ (𝐴 × 𝐵) = ∅)
2919, 20xpex 7767 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (𝐴 × 𝐵) ∈ V
3029rankeq0 9877 . . . . . . . . . . . . . . . . . . . . . . . . . 26 ((𝐴 × 𝐵) = ∅ ↔ (rank‘(𝐴 × 𝐵)) = ∅)
3130notbii 323 . . . . . . . . . . . . . . . . . . . . . . . . 25 (¬ (𝐴 × 𝐵) = ∅ ↔ ¬ (rank‘(𝐴 × 𝐵)) = ∅)
3228, 31bitr2i 279 . . . . . . . . . . . . . . . . . . . . . . . 24 (¬ (rank‘(𝐴 × 𝐵)) = ∅ ↔ (𝐴 × 𝐵) ≠ ∅)
338, 32sylib 221 . . . . . . . . . . . . . . . . . . . . . . 23 (Lim ∪ (rank‘(𝐴 × 𝐵)) → (𝐴 × 𝐵) ≠ ∅)
34 unixp 6285 . . . . . . . . . . . . . . . . . . . . . . 23 ((𝐴 × 𝐵) ≠ ∅ → ∪ ∪ (𝐴 × 𝐵) = (𝐴 ∪ 𝐵))
3533, 34syl 18 . . . . . . . . . . . . . . . . . . . . . 22 (Lim ∪ (rank‘(𝐴 × 𝐵)) → ∪ ∪ (𝐴 × 𝐵) = (𝐴 ∪ 𝐵))
3635fveq2d 6889 . . . . . . . . . . . . . . . . . . . . 21 (Lim ∪ (rank‘(𝐴 × 𝐵)) → (rank‘∪ ∪ (𝐴 × 𝐵)) = (rank‘(𝐴 ∪ 𝐵)))
37 rankuni 9879 . . . . . . . . . . . . . . . . . . . . . 22 (rank‘∪ ∪ (𝐴 × 𝐵)) = ∪ (rank‘∪ (𝐴 × 𝐵))
38 rankuni 9879 . . . . . . . . . . . . . . . . . . . . . . 23 (rank‘∪ (𝐴 × 𝐵)) = ∪ (rank‘(𝐴 × 𝐵))
3938unieqi 4878 . . . . . . . . . . . . . . . . . . . . . 22 ∪ (rank‘∪ (𝐴 × 𝐵)) = ∪ ∪ (rank‘(𝐴 × 𝐵))
4037, 39eqtri 2783 . . . . . . . . . . . . . . . . . . . . 21 (rank‘∪ ∪ (𝐴 × 𝐵)) = ∪ ∪ (rank‘(𝐴 × 𝐵))
4136, 40eqtr3di 2810 . . . . . . . . . . . . . . . . . . . 20 (Lim ∪ (rank‘(𝐴 × 𝐵)) → (rank‘(𝐴 ∪ 𝐵)) = ∪ ∪ (rank‘(𝐴 × 𝐵)))
42 eqimss 3966 . . . . . . . . . . . . . . . . . . . 20 ((rank‘(𝐴 ∪ 𝐵)) = ∪ ∪ (rank‘(𝐴 × 𝐵)) → (rank‘(𝐴 ∪ 𝐵)) ⊆ ∪ ∪ (rank‘(𝐴 × 𝐵)))
4341, 42syl 18 . . . . . . . . . . . . . . . . . . 19 (Lim ∪ (rank‘(𝐴 × 𝐵)) → (rank‘(𝐴 ∪ 𝐵)) ⊆ ∪ ∪ (rank‘(𝐴 × 𝐵)))
4443adantr 486 . . . . . . . . . . . . . . . . . 18 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥) → (rank‘(𝐴 ∪ 𝐵)) ⊆ ∪ ∪ (rank‘(𝐴 × 𝐵)))
4527, 44eqsstrrd 3943 . . . . . . . . . . . . . . . . 17 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥) → suc 𝑥 ⊆ ∪ ∪ (rank‘(𝐴 × 𝐵)))
4645adantrr 730 . . . . . . . . . . . . . . . 16 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → suc 𝑥 ⊆ ∪ ∪ (rank‘(𝐴 × 𝐵)))
47 limuni 6425 . . . . . . . . . . . . . . . . 17 (Lim ∪ (rank‘(𝐴 × 𝐵)) → ∪ (rank‘(𝐴 × 𝐵)) = ∪ ∪ (rank‘(𝐴 × 𝐵)))
4847adantr 486 . . . . . . . . . . . . . . . 16 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → ∪ (rank‘(𝐴 × 𝐵)) = ∪ ∪ (rank‘(𝐴 × 𝐵)))
4946, 48sseqtrrd 3945 . . . . . . . . . . . . . . 15 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → suc 𝑥 ⊆ ∪ (rank‘(𝐴 × 𝐵)))
50 vex 3454 . . . . . . . . . . . . . . . 16 𝑥 ∈ V
51 rankon 9803 . . . . . . . . . . . . . . . . . 18 (rank‘(𝐴 × 𝐵)) ∈ On
5251onordi 6476 . . . . . . . . . . . . . . . . 17 Ord (rank‘(𝐴 × 𝐵))
53 orduni 7803 . . . . . . . . . . . . . . . . 17 (Ord (rank‘(𝐴 × 𝐵)) → Ord ∪ (rank‘(𝐴 × 𝐵)))
5452, 53ax-mp 5 . . . . . . . . . . . . . . . 16 Ord ∪ (rank‘(𝐴 × 𝐵))
55 ordelsuc 7831 . . . . . . . . . . . . . . . 16 ((𝑥 ∈ V ∧ Ord ∪ (rank‘(𝐴 × 𝐵))) → (𝑥 ∈ ∪ (rank‘(𝐴 × 𝐵)) ↔ suc 𝑥 ⊆ ∪ (rank‘(𝐴 × 𝐵))))
5650, 54, 55mp2an 705 . . . . . . . . . . . . . . 15 (𝑥 ∈ ∪ (rank‘(𝐴 × 𝐵)) ↔ suc 𝑥 ⊆ ∪ (rank‘(𝐴 × 𝐵)))
5749, 56sylibr 237 . . . . . . . . . . . . . 14 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → 𝑥 ∈ ∪ (rank‘(𝐴 × 𝐵)))
58 limsuc 7860 . . . . . . . . . . . . . . 15 (Lim ∪ (rank‘(𝐴 × 𝐵)) → (𝑥 ∈ ∪ (rank‘(𝐴 × 𝐵)) ↔ suc 𝑥 ∈ ∪ (rank‘(𝐴 × 𝐵))))
5958adantr 486 . . . . . . . . . . . . . 14 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → (𝑥 ∈ ∪ (rank‘(𝐴 × 𝐵)) ↔ suc 𝑥 ∈ ∪ (rank‘(𝐴 × 𝐵))))
6057, 59mpbid 235 . . . . . . . . . . . . 13 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → suc 𝑥 ∈ ∪ (rank‘(𝐴 × 𝐵)))
6126, 60eqeltrd 2860 . . . . . . . . . . . 12 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → (rank‘(𝐴 ∪ 𝐵)) ∈ ∪ (rank‘(𝐴 × 𝐵)))
62 limsuc 7860 . . . . . . . . . . . . 13 (Lim ∪ (rank‘(𝐴 × 𝐵)) → ((rank‘(𝐴 ∪ 𝐵)) ∈ ∪ (rank‘(𝐴 × 𝐵)) ↔ suc (rank‘(𝐴 ∪ 𝐵)) ∈ ∪ (rank‘(𝐴 × 𝐵))))
6362adantr 486 . . . . . . . . . . . 12 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → ((rank‘(𝐴 ∪ 𝐵)) ∈ ∪ (rank‘(𝐴 × 𝐵)) ↔ suc (rank‘(𝐴 ∪ 𝐵)) ∈ ∪ (rank‘(𝐴 × 𝐵))))
6461, 63mpbid 235 . . . . . . . . . . 11 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → suc (rank‘(𝐴 ∪ 𝐵)) ∈ ∪ (rank‘(𝐴 × 𝐵)))
65 ordsucelsuc 7833 . . . . . . . . . . . 12 (Ord ∪ (rank‘(𝐴 × 𝐵)) → (suc (rank‘(𝐴 ∪ 𝐵)) ∈ ∪ (rank‘(𝐴 × 𝐵)) ↔ suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ suc ∪ (rank‘(𝐴 × 𝐵))))
6654, 65ax-mp 5 . . . . . . . . . . 11 (suc (rank‘(𝐴 ∪ 𝐵)) ∈ ∪ (rank‘(𝐴 × 𝐵)) ↔ suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ suc ∪ (rank‘(𝐴 × 𝐵)))
6764, 66sylib 221 . . . . . . . . . 10 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ suc ∪ (rank‘(𝐴 × 𝐵)))
68 onsucuni2 7845 . . . . . . . . . . . 12 (((rank‘(𝐴 × 𝐵)) ∈ On ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦) → suc ∪ (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
6951, 68mpan 703 . . . . . . . . . . 11 ((rank‘(𝐴 × 𝐵)) = suc 𝑦 → suc ∪ (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7069ad2antll 742 . . . . . . . . . 10 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → suc ∪ (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 × 𝐵)))
7167, 70eleqtrd 2862 . . . . . . . . 9 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ (rank‘(𝐴 × 𝐵)))
7211, 51onsucssi 7852 . . . . . . . . 9 (suc suc (rank‘(𝐴 ∪ 𝐵)) ∈ (rank‘(𝐴 × 𝐵)) ↔ suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ (rank‘(𝐴 × 𝐵)))
7371, 72sylib 221 . . . . . . . 8 ((Lim ∪ (rank‘(𝐴 × 𝐵)) ∧ ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ (rank‘(𝐴 × 𝐵)))
7473ex 418 . . . . . . 7 (Lim ∪ (rank‘(𝐴 × 𝐵)) → (((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦) → suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ (rank‘(𝐴 × 𝐵))))
7574a1d 26 . . . . . 6 (Lim ∪ (rank‘(𝐴 × 𝐵)) → ((𝑥 ∈ On ∧ 𝑦 ∈ On) → (((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦) → suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ (rank‘(𝐴 × 𝐵)))))
7675rexlimdvv 3218 . . . . 5 (Lim ∪ (rank‘(𝐴 × 𝐵)) → (∃𝑥 ∈ On ∃𝑦 ∈ On ((rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ (rank‘(𝐴 × 𝐵)) = suc 𝑦) → suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ (rank‘(𝐴 × 𝐵))))
7725, 76biimtrrid 246 . . . 4 (Lim ∪ (rank‘(𝐴 × 𝐵)) → ((∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦) → suc suc suc (rank‘(𝐴 ∪ 𝐵)) ⊆ (rank‘(𝐴 × 𝐵))))
7824, 77mtoi 202 . . 3 (Lim ∪ (rank‘(𝐴 × 𝐵)) → ¬ (∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦))
79 ianor 997 . . . . . 6 (¬ (∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦) ↔ (¬ ∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∨ ¬ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦))
80 un00 4356 . . . . . . . . . . . . . 14 ((𝐴 = ∅ ∧ 𝐵 = ∅) ↔ (𝐴 ∪ 𝐵) = ∅)
81 animorl 993 . . . . . . . . . . . . . 14 ((𝐴 = ∅ ∧ 𝐵 = ∅) → (𝐴 = ∅ ∨ 𝐵 = ∅))
8280, 81sylbir 238 . . . . . . . . . . . . 13 ((𝐴 ∪ 𝐵) = ∅ → (𝐴 = ∅ ∨ 𝐵 = ∅))
83 xpeq0 6150 . . . . . . . . . . . . 13 ((𝐴 × 𝐵) = ∅ ↔ (𝐴 = ∅ ∨ 𝐵 = ∅))
8482, 83sylibr 237 . . . . . . . . . . . 12 ((𝐴 ∪ 𝐵) = ∅ → (𝐴 × 𝐵) = ∅)
8584con3i 155 . . . . . . . . . . 11 (¬ (𝐴 × 𝐵) = ∅ → ¬ (𝐴 ∪ 𝐵) = ∅)
8631, 85sylbir 238 . . . . . . . . . 10 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → ¬ (𝐴 ∪ 𝐵) = ∅)
8719, 20unex 7761 . . . . . . . . . . . 12 (𝐴 ∪ 𝐵) ∈ V
8887rankeq0 9877 . . . . . . . . . . 11 ((𝐴 ∪ 𝐵) = ∅ ↔ (rank‘(𝐴 ∪ 𝐵)) = ∅)
8988notbii 323 . . . . . . . . . 10 (¬ (𝐴 ∪ 𝐵) = ∅ ↔ ¬ (rank‘(𝐴 ∪ 𝐵)) = ∅)
9086, 89sylib 221 . . . . . . . . 9 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → ¬ (rank‘(𝐴 ∪ 𝐵)) = ∅)
919onordi 6476 . . . . . . . . . . 11 Ord (rank‘(𝐴 ∪ 𝐵))
92 ordzsl 7856 . . . . . . . . . . 11 (Ord (rank‘(𝐴 ∪ 𝐵)) ↔ ((rank‘(𝐴 ∪ 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 ∪ 𝐵))))
9391, 92mpbi 233 . . . . . . . . . 10 ((rank‘(𝐴 ∪ 𝐵)) = ∅ ∨ ∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∨ Lim (rank‘(𝐴 ∪ 𝐵)))
94933ori 1451 . . . . . . . . 9 ((¬ (rank‘(𝐴 ∪ 𝐵)) = ∅ ∧ ¬ ∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥) → Lim (rank‘(𝐴 ∪ 𝐵)))
9590, 94sylan 592 . . . . . . . 8 ((¬ (rank‘(𝐴 × 𝐵)) = ∅ ∧ ¬ ∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥) → Lim (rank‘(𝐴 ∪ 𝐵)))
9695ex 418 . . . . . . 7 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → (¬ ∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 → Lim (rank‘(𝐴 ∪ 𝐵))))
97 ordzsl 7856 . . . . . . . . . 10 (Ord (rank‘(𝐴 × 𝐵)) ↔ ((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦 ∨ Lim (rank‘(𝐴 × 𝐵))))
9852, 97mpbi 233 . . . . . . . . 9 ((rank‘(𝐴 × 𝐵)) = ∅ ∨ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦 ∨ Lim (rank‘(𝐴 × 𝐵)))
99983ori 1451 . . . . . . . 8 ((¬ (rank‘(𝐴 × 𝐵)) = ∅ ∧ ¬ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦) → Lim (rank‘(𝐴 × 𝐵)))
10099ex 418 . . . . . . 7 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → (¬ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦 → Lim (rank‘(𝐴 × 𝐵))))
10196, 100orim12d 979 . . . . . 6 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → ((¬ ∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∨ ¬ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦) → (Lim (rank‘(𝐴 ∪ 𝐵)) ∨ Lim (rank‘(𝐴 × 𝐵)))))
10279, 101biimtrid 245 . . . . 5 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → (¬ (∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦) → (Lim (rank‘(𝐴 ∪ 𝐵)) ∨ Lim (rank‘(𝐴 × 𝐵)))))
103102imp 412 . . . 4 ((¬ (rank‘(𝐴 × 𝐵)) = ∅ ∧ ¬ (∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → (Lim (rank‘(𝐴 ∪ 𝐵)) ∨ Lim (rank‘(𝐴 × 𝐵))))
104 simpl 488 . . . . . . . 8 ((Lim (rank‘(𝐴 ∪ 𝐵)) ∧ ¬ (rank‘(𝐴 × 𝐵)) = ∅) → Lim (rank‘(𝐴 ∪ 𝐵)))
10530necon3abii 3001 . . . . . . . . . 10 ((𝐴 × 𝐵) ≠ ∅ ↔ ¬ (rank‘(𝐴 × 𝐵)) = ∅)
10619, 20rankxplim 9896 . . . . . . . . . 10 ((Lim (rank‘(𝐴 ∪ 𝐵)) ∧ (𝐴 × 𝐵) ≠ ∅) → (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 ∪ 𝐵)))
107105, 106sylan2br 607 . . . . . . . . 9 ((Lim (rank‘(𝐴 ∪ 𝐵)) ∧ ¬ (rank‘(𝐴 × 𝐵)) = ∅) → (rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 ∪ 𝐵)))
108 limeq 6374 . . . . . . . . 9 ((rank‘(𝐴 × 𝐵)) = (rank‘(𝐴 ∪ 𝐵)) → (Lim (rank‘(𝐴 × 𝐵)) ↔ Lim (rank‘(𝐴 ∪ 𝐵))))
109107, 108syl 18 . . . . . . . 8 ((Lim (rank‘(𝐴 ∪ 𝐵)) ∧ ¬ (rank‘(𝐴 × 𝐵)) = ∅) → (Lim (rank‘(𝐴 × 𝐵)) ↔ Lim (rank‘(𝐴 ∪ 𝐵))))
110104, 109mpbird 260 . . . . . . 7 ((Lim (rank‘(𝐴 ∪ 𝐵)) ∧ ¬ (rank‘(𝐴 × 𝐵)) = ∅) → Lim (rank‘(𝐴 × 𝐵)))
111110expcom 419 . . . . . 6 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → (Lim (rank‘(𝐴 ∪ 𝐵)) → Lim (rank‘(𝐴 × 𝐵))))
112 idd 25 . . . . . 6 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → (Lim (rank‘(𝐴 × 𝐵)) → Lim (rank‘(𝐴 × 𝐵))))
113111, 112jaod 873 . . . . 5 (¬ (rank‘(𝐴 × 𝐵)) = ∅ → ((Lim (rank‘(𝐴 ∪ 𝐵)) ∨ Lim (rank‘(𝐴 × 𝐵))) → Lim (rank‘(𝐴 × 𝐵))))
114113adantr 486 . . . 4 ((¬ (rank‘(𝐴 × 𝐵)) = ∅ ∧ ¬ (∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → ((Lim (rank‘(𝐴 ∪ 𝐵)) ∨ Lim (rank‘(𝐴 × 𝐵))) → Lim (rank‘(𝐴 × 𝐵))))
115103, 114mpd 16 . . 3 ((¬ (rank‘(𝐴 × 𝐵)) = ∅ ∧ ¬ (∃𝑥 ∈ On (rank‘(𝐴 ∪ 𝐵)) = suc 𝑥 ∧ ∃𝑦 ∈ On (rank‘(𝐴 × 𝐵)) = suc 𝑦)) → Lim (rank‘(𝐴 × 𝐵)))
1168, 78, 115syl2anc 596 . 2 (Lim ∪ (rank‘(𝐴 × 𝐵)) → Lim (rank‘(𝐴 × 𝐵)))
1171, 116impbii 212 1 (Lim (rank‘(𝐴 × 𝐵)) ↔ Lim ∪ (rank‘(𝐴 × 𝐵)))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:  ¬ wn 3   → wi 4   ↔ wb 209   ∧ wa 401   ∨ wo 861   ∨ w3o 1102   = wceq 1569   ∈ wcel 2144   ≠ wne 2955  ∃wrex 3086  Vcvv 3450   ⊆ wss 3895   ∪ cun 4149  ∅c0 4278  ∪ cuni 4866   × cxp 5648  Ord word 6361  Oncon0 6362  Lim wlim 6363  suc csuc 6364  ‘cfv 6538  rankcrnk 9767
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 9586  ax-inf2 9642
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 8299  df-wrecs 8330  df-recs 8379  df-rdg 8418  df-r1 9768  df-rank 9769
This theorem is used by:  rankxpsuc  9899
  Copyright terms: Public domain W3C validator