Metamath Proof Explorer


Theorem finxpsuclem

Description: Lemma for finxpsuc . (Contributed by ML, 24-Oct-2020)

Ref Expression
Hypothesis finxpsuclem.1 𝐹 = ( 𝑛 ∈ ω , 𝑥 ∈ V ↦ if ( ( 𝑛 = 1o𝑥𝑈 ) , ∅ , if ( 𝑥 ∈ ( V × 𝑈 ) , ⟨ 𝑛 , ( 1st𝑥 ) ⟩ , ⟨ 𝑛 , 𝑥 ⟩ ) ) )
Assertion finxpsuclem ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( 𝑈 ↑↑ suc 𝑁 ) = ( ( 𝑈 ↑↑ 𝑁 ) × 𝑈 ) )

Proof

Step Hyp Ref Expression
1 finxpsuclem.1 𝐹 = ( 𝑛 ∈ ω , 𝑥 ∈ V ↦ if ( ( 𝑛 = 1o𝑥𝑈 ) , ∅ , if ( 𝑥 ∈ ( V × 𝑈 ) , ⟨ 𝑛 , ( 1st𝑥 ) ⟩ , ⟨ 𝑛 , 𝑥 ⟩ ) ) )
2 peano2 ( 𝑁 ∈ ω → suc 𝑁 ∈ ω )
3 2 adantr ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → suc 𝑁 ∈ ω )
4 1on 1o ∈ On
5 4 onordi Ord 1o
6 nnord ( 𝑁 ∈ ω → Ord 𝑁 )
7 ordsseleq ( ( Ord 1o ∧ Ord 𝑁 ) → ( 1o𝑁 ↔ ( 1o𝑁 ∨ 1o = 𝑁 ) ) )
8 5 6 7 sylancr ( 𝑁 ∈ ω → ( 1o𝑁 ↔ ( 1o𝑁 ∨ 1o = 𝑁 ) ) )
9 8 biimpa ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( 1o𝑁 ∨ 1o = 𝑁 ) )
10 elelsuc ( 1o𝑁 → 1o ∈ suc 𝑁 )
11 10 a1i ( 𝑁 ∈ ω → ( 1o𝑁 → 1o ∈ suc 𝑁 ) )
12 sucidg ( 𝑁 ∈ ω → 𝑁 ∈ suc 𝑁 )
13 eleq1 ( 1o = 𝑁 → ( 1o ∈ suc 𝑁𝑁 ∈ suc 𝑁 ) )
14 12 13 syl5ibrcom ( 𝑁 ∈ ω → ( 1o = 𝑁 → 1o ∈ suc 𝑁 ) )
15 11 14 jaod ( 𝑁 ∈ ω → ( ( 1o𝑁 ∨ 1o = 𝑁 ) → 1o ∈ suc 𝑁 ) )
16 15 adantr ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( ( 1o𝑁 ∨ 1o = 𝑁 ) → 1o ∈ suc 𝑁 ) )
17 9 16 mpd ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → 1o ∈ suc 𝑁 )
18 1 finxpreclem6 ( ( suc 𝑁 ∈ ω ∧ 1o ∈ suc 𝑁 ) → ( 𝑈 ↑↑ suc 𝑁 ) ⊆ ( V × 𝑈 ) )
19 3 17 18 syl2anc ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( 𝑈 ↑↑ suc 𝑁 ) ⊆ ( V × 𝑈 ) )
20 19 sselda ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) ) → 𝑦 ∈ ( V × 𝑈 ) )
21 2 ad2antrr ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → suc 𝑁 ∈ ω )
22 df-2o 2o = suc 1o
23 ordsucsssuc ( ( Ord 1o ∧ Ord 𝑁 ) → ( 1o𝑁 ↔ suc 1o ⊆ suc 𝑁 ) )
24 5 6 23 sylancr ( 𝑁 ∈ ω → ( 1o𝑁 ↔ suc 1o ⊆ suc 𝑁 ) )
25 24 biimpa ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → suc 1o ⊆ suc 𝑁 )
26 22 25 eqsstrid ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → 2o ⊆ suc 𝑁 )
27 26 adantr ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → 2o ⊆ suc 𝑁 )
28 simpr ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → 𝑦 ∈ ( V × 𝑈 ) )
29 1 finxpreclem4 ( ( ( suc 𝑁 ∈ ω ∧ 2o ⊆ suc 𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → ( rec ( 𝐹 , ⟨ suc 𝑁 , 𝑦 ⟩ ) ‘ suc 𝑁 ) = ( rec ( 𝐹 , ⟨ suc 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ suc 𝑁 ) )
30 21 27 28 29 syl21anc ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → ( rec ( 𝐹 , ⟨ suc 𝑁 , 𝑦 ⟩ ) ‘ suc 𝑁 ) = ( rec ( 𝐹 , ⟨ suc 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ suc 𝑁 ) )
31 ordunisuc ( Ord 𝑁 suc 𝑁 = 𝑁 )
32 6 31 syl ( 𝑁 ∈ ω → suc 𝑁 = 𝑁 )
33 opeq1 ( suc 𝑁 = 𝑁 → ⟨ suc 𝑁 , ( 1st𝑦 ) ⟩ = ⟨ 𝑁 , ( 1st𝑦 ) ⟩ )
34 rdgeq2 ( ⟨ suc 𝑁 , ( 1st𝑦 ) ⟩ = ⟨ 𝑁 , ( 1st𝑦 ) ⟩ → rec ( 𝐹 , ⟨ suc 𝑁 , ( 1st𝑦 ) ⟩ ) = rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) )
35 33 34 syl ( suc 𝑁 = 𝑁 → rec ( 𝐹 , ⟨ suc 𝑁 , ( 1st𝑦 ) ⟩ ) = rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) )
36 32 35 syl ( 𝑁 ∈ ω → rec ( 𝐹 , ⟨ suc 𝑁 , ( 1st𝑦 ) ⟩ ) = rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) )
37 36 32 fveq12d ( 𝑁 ∈ ω → ( rec ( 𝐹 , ⟨ suc 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ suc 𝑁 ) = ( rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ 𝑁 ) )
38 37 ad2antrr ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → ( rec ( 𝐹 , ⟨ suc 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ suc 𝑁 ) = ( rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ 𝑁 ) )
39 30 38 eqtrd ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → ( rec ( 𝐹 , ⟨ suc 𝑁 , 𝑦 ⟩ ) ‘ suc 𝑁 ) = ( rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ 𝑁 ) )
40 39 eqeq2d ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → ( ∅ = ( rec ( 𝐹 , ⟨ suc 𝑁 , 𝑦 ⟩ ) ‘ suc 𝑁 ) ↔ ∅ = ( rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ 𝑁 ) ) )
41 1 dffinxpf ( 𝑈 ↑↑ suc 𝑁 ) = { 𝑦 ∣ ( suc 𝑁 ∈ ω ∧ ∅ = ( rec ( 𝐹 , ⟨ suc 𝑁 , 𝑦 ⟩ ) ‘ suc 𝑁 ) ) }
42 41 abeq2i ( 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) ↔ ( suc 𝑁 ∈ ω ∧ ∅ = ( rec ( 𝐹 , ⟨ suc 𝑁 , 𝑦 ⟩ ) ‘ suc 𝑁 ) ) )
43 2 biantrurd ( 𝑁 ∈ ω → ( ∅ = ( rec ( 𝐹 , ⟨ suc 𝑁 , 𝑦 ⟩ ) ‘ suc 𝑁 ) ↔ ( suc 𝑁 ∈ ω ∧ ∅ = ( rec ( 𝐹 , ⟨ suc 𝑁 , 𝑦 ⟩ ) ‘ suc 𝑁 ) ) ) )
44 42 43 bitr4id ( 𝑁 ∈ ω → ( 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) ↔ ∅ = ( rec ( 𝐹 , ⟨ suc 𝑁 , 𝑦 ⟩ ) ‘ suc 𝑁 ) ) )
45 44 ad2antrr ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → ( 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) ↔ ∅ = ( rec ( 𝐹 , ⟨ suc 𝑁 , 𝑦 ⟩ ) ‘ suc 𝑁 ) ) )
46 fvex ( 1st𝑦 ) ∈ V
47 opeq2 ( 𝑧 = ( 1st𝑦 ) → ⟨ 𝑁 , 𝑧 ⟩ = ⟨ 𝑁 , ( 1st𝑦 ) ⟩ )
48 rdgeq2 ( ⟨ 𝑁 , 𝑧 ⟩ = ⟨ 𝑁 , ( 1st𝑦 ) ⟩ → rec ( 𝐹 , ⟨ 𝑁 , 𝑧 ⟩ ) = rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) )
49 47 48 syl ( 𝑧 = ( 1st𝑦 ) → rec ( 𝐹 , ⟨ 𝑁 , 𝑧 ⟩ ) = rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) )
50 49 fveq1d ( 𝑧 = ( 1st𝑦 ) → ( rec ( 𝐹 , ⟨ 𝑁 , 𝑧 ⟩ ) ‘ 𝑁 ) = ( rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ 𝑁 ) )
51 50 eqeq2d ( 𝑧 = ( 1st𝑦 ) → ( ∅ = ( rec ( 𝐹 , ⟨ 𝑁 , 𝑧 ⟩ ) ‘ 𝑁 ) ↔ ∅ = ( rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ 𝑁 ) ) )
52 51 anbi2d ( 𝑧 = ( 1st𝑦 ) → ( ( 𝑁 ∈ ω ∧ ∅ = ( rec ( 𝐹 , ⟨ 𝑁 , 𝑧 ⟩ ) ‘ 𝑁 ) ) ↔ ( 𝑁 ∈ ω ∧ ∅ = ( rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ 𝑁 ) ) ) )
53 1 dffinxpf ( 𝑈 ↑↑ 𝑁 ) = { 𝑧 ∣ ( 𝑁 ∈ ω ∧ ∅ = ( rec ( 𝐹 , ⟨ 𝑁 , 𝑧 ⟩ ) ‘ 𝑁 ) ) }
54 46 52 53 elab2 ( ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) ↔ ( 𝑁 ∈ ω ∧ ∅ = ( rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ 𝑁 ) ) )
55 54 baib ( 𝑁 ∈ ω → ( ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) ↔ ∅ = ( rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ 𝑁 ) ) )
56 55 ad2antrr ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → ( ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) ↔ ∅ = ( rec ( 𝐹 , ⟨ 𝑁 , ( 1st𝑦 ) ⟩ ) ‘ 𝑁 ) ) )
57 40 45 56 3bitr4d ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → ( 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) ↔ ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) ) )
58 57 biimpd ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → ( 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) → ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) ) )
59 58 impancom ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) ) → ( 𝑦 ∈ ( V × 𝑈 ) → ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) ) )
60 20 59 mpd ( ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) ∧ 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) ) → ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) )
61 60 ex ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) → ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) ) )
62 20 ex ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) → 𝑦 ∈ ( V × 𝑈 ) ) )
63 61 62 jcad ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) → ( ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) ) )
64 57 exbiri ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( 𝑦 ∈ ( V × 𝑈 ) → ( ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) → 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) ) ) )
65 64 impd ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( ( 𝑦 ∈ ( V × 𝑈 ) ∧ ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) ) → 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) ) )
66 65 ancomsd ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( ( ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) → 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) ) )
67 63 66 impbid ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) ↔ ( ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) ) )
68 elxp8 ( 𝑦 ∈ ( ( 𝑈 ↑↑ 𝑁 ) × 𝑈 ) ↔ ( ( 1st𝑦 ) ∈ ( 𝑈 ↑↑ 𝑁 ) ∧ 𝑦 ∈ ( V × 𝑈 ) ) )
69 67 68 bitr4di ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( 𝑦 ∈ ( 𝑈 ↑↑ suc 𝑁 ) ↔ 𝑦 ∈ ( ( 𝑈 ↑↑ 𝑁 ) × 𝑈 ) ) )
70 69 eqrdv ( ( 𝑁 ∈ ω ∧ 1o𝑁 ) → ( 𝑈 ↑↑ suc 𝑁 ) = ( ( 𝑈 ↑↑ 𝑁 ) × 𝑈 ) )