This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
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 for the limit ordinal case. (Contributed by NM, 19-Sep-2006)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | rankxplim.1 | ⊢ 𝐴 ∈ V | |
| rankxplim.2 | ⊢ 𝐵 ∈ V | ||
| Assertion | rankxpsuc | ⊢ ( ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 ∧ ( 𝐴 × 𝐵 ) ≠ ∅ ) → ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc suc ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | rankxplim.1 | ⊢ 𝐴 ∈ V | |
| 2 | rankxplim.2 | ⊢ 𝐵 ∈ V | |
| 3 | unixp | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ∪ ∪ ( 𝐴 × 𝐵 ) = ( 𝐴 ∪ 𝐵 ) ) | |
| 4 | 3 | fveq2d | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ( rank ‘ ∪ ∪ ( 𝐴 × 𝐵 ) ) = ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) ) |
| 5 | rankuni | ⊢ ( rank ‘ ∪ ∪ ( 𝐴 × 𝐵 ) ) = ∪ ( rank ‘ ∪ ( 𝐴 × 𝐵 ) ) | |
| 6 | rankuni | ⊢ ( rank ‘ ∪ ( 𝐴 × 𝐵 ) ) = ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) | |
| 7 | 6 | unieqi | ⊢ ∪ ( rank ‘ ∪ ( 𝐴 × 𝐵 ) ) = ∪ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) |
| 8 | 5 7 | eqtri | ⊢ ( rank ‘ ∪ ∪ ( 𝐴 × 𝐵 ) ) = ∪ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) |
| 9 | 4 8 | eqtr3di | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = ∪ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 10 | suc11reg | ⊢ ( suc ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc ∪ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ↔ ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = ∪ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) | |
| 11 | 9 10 | sylibr | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → suc ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc ∪ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 12 | 11 | adantl | ⊢ ( ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 ∧ ( 𝐴 × 𝐵 ) ≠ ∅ ) → suc ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc ∪ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 13 | fvex | ⊢ ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) ∈ V | |
| 14 | eleq1 | ⊢ ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 → ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) ∈ V ↔ suc 𝐶 ∈ V ) ) | |
| 15 | 13 14 | mpbii | ⊢ ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 → suc 𝐶 ∈ V ) |
| 16 | sucexb | ⊢ ( 𝐶 ∈ V ↔ suc 𝐶 ∈ V ) | |
| 17 | 15 16 | sylibr | ⊢ ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 → 𝐶 ∈ V ) |
| 18 | nlimsucg | ⊢ ( 𝐶 ∈ V → ¬ Lim suc 𝐶 ) | |
| 19 | 17 18 | syl | ⊢ ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 → ¬ Lim suc 𝐶 ) |
| 20 | limeq | ⊢ ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 → ( Lim ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) ↔ Lim suc 𝐶 ) ) | |
| 21 | 19 20 | mtbird | ⊢ ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 → ¬ Lim ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) ) |
| 22 | 1 2 | rankxplim2 | ⊢ ( Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) → Lim ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) ) |
| 23 | 21 22 | nsyl | ⊢ ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 → ¬ Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 24 | 1 2 | xpex | ⊢ ( 𝐴 × 𝐵 ) ∈ V |
| 25 | 24 | rankeq0 | ⊢ ( ( 𝐴 × 𝐵 ) = ∅ ↔ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ) |
| 26 | 25 | necon3abii | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ ↔ ¬ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ) |
| 27 | rankon | ⊢ ( rank ‘ ( 𝐴 × 𝐵 ) ) ∈ On | |
| 28 | 27 | onordi | ⊢ Ord ( rank ‘ ( 𝐴 × 𝐵 ) ) |
| 29 | ordzsl | ⊢ ( Ord ( rank ‘ ( 𝐴 × 𝐵 ) ) ↔ ( ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ∨ ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) | |
| 30 | 28 29 | mpbi | ⊢ ( ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ∨ ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 31 | 3orass | ⊢ ( ( ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ∨ ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ↔ ( ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ∨ ( ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) ) | |
| 32 | 30 31 | mpbi | ⊢ ( ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ∨ ( ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) |
| 33 | 32 | ori | ⊢ ( ¬ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ → ( ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) |
| 34 | 26 33 | sylbi | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ( ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) |
| 35 | 34 | ord | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ( ¬ ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 → Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) |
| 36 | 35 | con1d | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ( ¬ Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) → ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ) ) |
| 37 | 23 36 | syl5com | ⊢ ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 → ( ( 𝐴 × 𝐵 ) ≠ ∅ → ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ) ) |
| 38 | nlimsucg | ⊢ ( 𝑥 ∈ V → ¬ Lim suc 𝑥 ) | |
| 39 | 38 | elv | ⊢ ¬ Lim suc 𝑥 |
| 40 | limeq | ⊢ ( ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 → ( Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ↔ Lim suc 𝑥 ) ) | |
| 41 | 39 40 | mtbiri | ⊢ ( ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 → ¬ Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 42 | 41 | rexlimivw | ⊢ ( ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 → ¬ Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 43 | 1 2 | rankxplim3 | ⊢ ( Lim ( rank ‘ ( 𝐴 × 𝐵 ) ) ↔ Lim ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 44 | 42 43 | sylnib | ⊢ ( ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 → ¬ Lim ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 45 | 37 44 | syl6com | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 → ¬ Lim ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) |
| 46 | unixp0 | ⊢ ( ( 𝐴 × 𝐵 ) = ∅ ↔ ∪ ( 𝐴 × 𝐵 ) = ∅ ) | |
| 47 | 24 | uniex | ⊢ ∪ ( 𝐴 × 𝐵 ) ∈ V |
| 48 | 47 | rankeq0 | ⊢ ( ∪ ( 𝐴 × 𝐵 ) = ∅ ↔ ( rank ‘ ∪ ( 𝐴 × 𝐵 ) ) = ∅ ) |
| 49 | 6 | eqeq1i | ⊢ ( ( rank ‘ ∪ ( 𝐴 × 𝐵 ) ) = ∅ ↔ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ) |
| 50 | 46 48 49 | 3bitri | ⊢ ( ( 𝐴 × 𝐵 ) = ∅ ↔ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ) |
| 51 | 50 | necon3abii | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ ↔ ¬ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ) |
| 52 | onuni | ⊢ ( ( rank ‘ ( 𝐴 × 𝐵 ) ) ∈ On → ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ∈ On ) | |
| 53 | 27 52 | ax-mp | ⊢ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ∈ On |
| 54 | 53 | onordi | ⊢ Ord ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) |
| 55 | ordzsl | ⊢ ( Ord ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ↔ ( ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ∨ ∃ 𝑥 ∈ On ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) | |
| 56 | 54 55 | mpbi | ⊢ ( ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ∨ ∃ 𝑥 ∈ On ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 57 | 3orass | ⊢ ( ( ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ∨ ∃ 𝑥 ∈ On ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ↔ ( ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ∨ ( ∃ 𝑥 ∈ On ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) ) | |
| 58 | 56 57 | mpbi | ⊢ ( ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ ∨ ( ∃ 𝑥 ∈ On ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) |
| 59 | 58 | ori | ⊢ ( ¬ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∅ → ( ∃ 𝑥 ∈ On ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) |
| 60 | 51 59 | sylbi | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ( ∃ 𝑥 ∈ On ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ∨ Lim ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) |
| 61 | 60 | ord | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ( ¬ ∃ 𝑥 ∈ On ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 → Lim ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) ) |
| 62 | 61 | con1d | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ( ¬ Lim ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) → ∃ 𝑥 ∈ On ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ) ) |
| 63 | 45 62 | syld | ⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 → ∃ 𝑥 ∈ On ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ) ) |
| 64 | 63 | impcom | ⊢ ( ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 ∧ ( 𝐴 × 𝐵 ) ≠ ∅ ) → ∃ 𝑥 ∈ On ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ) |
| 65 | onsucuni2 | ⊢ ( ( ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ∈ On ∧ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ) → suc ∪ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) | |
| 66 | 53 65 | mpan | ⊢ ( ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 → suc ∪ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 67 | 66 | rexlimivw | ⊢ ( ∃ 𝑥 ∈ On ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 → suc ∪ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 68 | 64 67 | syl | ⊢ ( ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 ∧ ( 𝐴 × 𝐵 ) ≠ ∅ ) → suc ∪ ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 69 | 12 68 | eqtrd | ⊢ ( ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 ∧ ( 𝐴 × 𝐵 ) ≠ ∅ ) → suc ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 70 | suc11reg | ⊢ ( suc suc ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ↔ suc ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) | |
| 71 | 69 70 | sylibr | ⊢ ( ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 ∧ ( 𝐴 × 𝐵 ) ≠ ∅ ) → suc suc ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 72 | 37 | imp | ⊢ ( ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 ∧ ( 𝐴 × 𝐵 ) ≠ ∅ ) → ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ) |
| 73 | onsucuni2 | ⊢ ( ( ( rank ‘ ( 𝐴 × 𝐵 ) ) ∈ On ∧ ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 ) → suc ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ( rank ‘ ( 𝐴 × 𝐵 ) ) ) | |
| 74 | 27 73 | mpan | ⊢ ( ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 → suc ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 75 | 74 | rexlimivw | ⊢ ( ∃ 𝑥 ∈ On ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc 𝑥 → suc ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 76 | 72 75 | syl | ⊢ ( ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 ∧ ( 𝐴 × 𝐵 ) ≠ ∅ ) → suc ∪ ( rank ‘ ( 𝐴 × 𝐵 ) ) = ( rank ‘ ( 𝐴 × 𝐵 ) ) ) |
| 77 | 71 76 | eqtr2d | ⊢ ( ( ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) = suc 𝐶 ∧ ( 𝐴 × 𝐵 ) ≠ ∅ ) → ( rank ‘ ( 𝐴 × 𝐵 ) ) = suc suc ( rank ‘ ( 𝐴 ∪ 𝐵 ) ) ) |