Metamath Proof Explorer


Theorem efgredlemg

Description: Lemma for efgred . (Contributed by Mario Carneiro, 4-Jun-2016)

Ref Expression
Hypotheses efgval.w ⊢ 𝑊 = ( I ‘ Word ( 𝐼 × 2o ) )
efgval.r ⊢ ∼ = ( ~FG ‘ 𝐼 )
efgval2.m ⊢ 𝑀 = ( 𝑦 ∈ 𝐼 , 𝑧 ∈ 2o ↦ ⟨ 𝑦 , ( 1o ∖ 𝑧 ) ⟩ )
efgval2.t ⊢ 𝑇 = ( 𝑣 ∈ 𝑊 ↦ ( 𝑛 ∈ ( 0 ... ( ♯ ‘ 𝑣 ) ) , 𝑤 ∈ ( 𝐼 × 2o ) ↦ ( 𝑣 splice ⟨ 𝑛 , 𝑛 , ⟨“ 𝑤 ( 𝑀 ‘ 𝑤 ) ”⟩ ⟩ ) ) )
efgred.d ⊢ 𝐷 = ( 𝑊 ∖ ∪ 𝑥 ∈ 𝑊 ran ( 𝑇 ‘ 𝑥 ) )
efgred.s ⊢ 𝑆 = ( 𝑚 ∈ { 𝑡 ∈ ( Word 𝑊 ∖ { ∅ } ) ∣ ( ( 𝑡 ‘ 0 ) ∈ 𝐷 ∧ ∀ 𝑘 ∈ ( 1 ..^ ( ♯ ‘ 𝑡 ) ) ( 𝑡 ‘ 𝑘 ) ∈ ran ( 𝑇 ‘ ( 𝑡 ‘ ( 𝑘 − 1 ) ) ) ) } ↦ ( 𝑚 ‘ ( ( ♯ ‘ 𝑚 ) − 1 ) ) )
efgredlem.1 ⊢ ( 𝜑 → ∀ 𝑎 ∈ dom 𝑆 ∀ 𝑏 ∈ dom 𝑆 ( ( ♯ ‘ ( 𝑆 ‘ 𝑎 ) ) < ( ♯ ‘ ( 𝑆 ‘ 𝐴 ) ) → ( ( 𝑆 ‘ 𝑎 ) = ( 𝑆 ‘ 𝑏 ) → ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ) ) )
efgredlem.2 ⊢ ( 𝜑 → 𝐴 ∈ dom 𝑆 )
efgredlem.3 ⊢ ( 𝜑 → 𝐵 ∈ dom 𝑆 )
efgredlem.4 ⊢ ( 𝜑 → ( 𝑆 ‘ 𝐴 ) = ( 𝑆 ‘ 𝐵 ) )
efgredlem.5 ⊢ ( 𝜑 → ¬ ( 𝐴 ‘ 0 ) = ( 𝐵 ‘ 0 ) )
efgredlemb.k ⊢ 𝐾 = ( ( ( ♯ ‘ 𝐴 ) − 1 ) − 1 )
efgredlemb.l ⊢ 𝐿 = ( ( ( ♯ ‘ 𝐵 ) − 1 ) − 1 )
efgredlemb.p ⊢ ( 𝜑 → 𝑃 ∈ ( 0 ... ( ♯ ‘ ( 𝐴 ‘ 𝐾 ) ) ) )
efgredlemb.q ⊢ ( 𝜑 → 𝑄 ∈ ( 0 ... ( ♯ ‘ ( 𝐵 ‘ 𝐿 ) ) ) )
efgredlemb.u ⊢ ( 𝜑 → 𝑈 ∈ ( 𝐼 × 2o ) )
efgredlemb.v ⊢ ( 𝜑 → 𝑉 ∈ ( 𝐼 × 2o ) )
efgredlemb.6 ⊢ ( 𝜑 → ( 𝑆 ‘ 𝐴 ) = ( 𝑃 ( 𝑇 ‘ ( 𝐴 ‘ 𝐾 ) ) 𝑈 ) )
efgredlemb.7 ⊢ ( 𝜑 → ( 𝑆 ‘ 𝐵 ) = ( 𝑄 ( 𝑇 ‘ ( 𝐵 ‘ 𝐿 ) ) 𝑉 ) )
Assertion efgredlemg ( 𝜑 → ( ♯ ‘ ( 𝐴 ‘ 𝐾 ) ) = ( ♯ ‘ ( 𝐵 ‘ 𝐿 ) ) )

Proof

Step Hyp Ref Expression
1 efgval.w ⊢ 𝑊 = ( I ‘ Word ( 𝐼 × 2o ) )
2 efgval.r ⊢ ∼ = ( ~FG ‘ 𝐼 )
3 efgval2.m ⊢ 𝑀 = ( 𝑦 ∈ 𝐼 , 𝑧 ∈ 2o ↦ ⟨ 𝑦 , ( 1o ∖ 𝑧 ) ⟩ )
4 efgval2.t ⊢ 𝑇 = ( 𝑣 ∈ 𝑊 ↦ ( 𝑛 ∈ ( 0 ... ( ♯ ‘ 𝑣 ) ) , 𝑤 ∈ ( 𝐼 × 2o ) ↦ ( 𝑣 splice ⟨ 𝑛 , 𝑛 , ⟨“ 𝑤 ( 𝑀 ‘ 𝑤 ) ”⟩ ⟩ ) ) )
5 efgred.d ⊢ 𝐷 = ( 𝑊 ∖ ∪ 𝑥 ∈ 𝑊 ran ( 𝑇 ‘ 𝑥 ) )
6 efgred.s ⊢ 𝑆 = ( 𝑚 ∈ { 𝑡 ∈ ( Word 𝑊 ∖ { ∅ } ) ∣ ( ( 𝑡 ‘ 0 ) ∈ 𝐷 ∧ ∀ 𝑘 ∈ ( 1 ..^ ( ♯ ‘ 𝑡 ) ) ( 𝑡 ‘ 𝑘 ) ∈ ran ( 𝑇 ‘ ( 𝑡 ‘ ( 𝑘 − 1 ) ) ) ) } ↦ ( 𝑚 ‘ ( ( ♯ ‘ 𝑚 ) − 1 ) ) )
7 efgredlem.1 ⊢ ( 𝜑 → ∀ 𝑎 ∈ dom 𝑆 ∀ 𝑏 ∈ dom 𝑆 ( ( ♯ ‘ ( 𝑆 ‘ 𝑎 ) ) < ( ♯ ‘ ( 𝑆 ‘ 𝐴 ) ) → ( ( 𝑆 ‘ 𝑎 ) = ( 𝑆 ‘ 𝑏 ) → ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ) ) )
8 efgredlem.2 ⊢ ( 𝜑 → 𝐴 ∈ dom 𝑆 )
9 efgredlem.3 ⊢ ( 𝜑 → 𝐵 ∈ dom 𝑆 )
10 efgredlem.4 ⊢ ( 𝜑 → ( 𝑆 ‘ 𝐴 ) = ( 𝑆 ‘ 𝐵 ) )
11 efgredlem.5 ⊢ ( 𝜑 → ¬ ( 𝐴 ‘ 0 ) = ( 𝐵 ‘ 0 ) )
12 efgredlemb.k ⊢ 𝐾 = ( ( ( ♯ ‘ 𝐴 ) − 1 ) − 1 )
13 efgredlemb.l ⊢ 𝐿 = ( ( ( ♯ ‘ 𝐵 ) − 1 ) − 1 )
14 efgredlemb.p ⊢ ( 𝜑 → 𝑃 ∈ ( 0 ... ( ♯ ‘ ( 𝐴 ‘ 𝐾 ) ) ) )
15 efgredlemb.q ⊢ ( 𝜑 → 𝑄 ∈ ( 0 ... ( ♯ ‘ ( 𝐵 ‘ 𝐿 ) ) ) )
16 efgredlemb.u ⊢ ( 𝜑 → 𝑈 ∈ ( 𝐼 × 2o ) )
17 efgredlemb.v ⊢ ( 𝜑 → 𝑉 ∈ ( 𝐼 × 2o ) )
18 efgredlemb.6 ⊢ ( 𝜑 → ( 𝑆 ‘ 𝐴 ) = ( 𝑃 ( 𝑇 ‘ ( 𝐴 ‘ 𝐾 ) ) 𝑈 ) )
19 efgredlemb.7 ⊢ ( 𝜑 → ( 𝑆 ‘ 𝐵 ) = ( 𝑄 ( 𝑇 ‘ ( 𝐵 ‘ 𝐿 ) ) 𝑉 ) )
20 fviss ⊢ ( I ‘ Word ( 𝐼 × 2o ) ) ⊆ Word ( 𝐼 × 2o )
21 1 20 eqsstri ⊢ 𝑊 ⊆ Word ( 𝐼 × 2o )
22 1 2 3 4 5 6 7 8 9 10 11 12 13 efgredlemf ⊢ ( 𝜑 → ( ( 𝐴 ‘ 𝐾 ) ∈ 𝑊 ∧ ( 𝐵 ‘ 𝐿 ) ∈ 𝑊 ) )
23 22 simpld ⊢ ( 𝜑 → ( 𝐴 ‘ 𝐾 ) ∈ 𝑊 )
24 21 23 sselid ⊢ ( 𝜑 → ( 𝐴 ‘ 𝐾 ) ∈ Word ( 𝐼 × 2o ) )
25 lencl ⊢ ( ( 𝐴 ‘ 𝐾 ) ∈ Word ( 𝐼 × 2o ) → ( ♯ ‘ ( 𝐴 ‘ 𝐾 ) ) ∈ ℕ0 )
26 24 25 syl ⊢ ( 𝜑 → ( ♯ ‘ ( 𝐴 ‘ 𝐾 ) ) ∈ ℕ0 )
27 26 nn0cnd ⊢ ( 𝜑 → ( ♯ ‘ ( 𝐴 ‘ 𝐾 ) ) ∈ ℂ )
28 22 simprd ⊢ ( 𝜑 → ( 𝐵 ‘ 𝐿 ) ∈ 𝑊 )
29 21 28 sselid ⊢ ( 𝜑 → ( 𝐵 ‘ 𝐿 ) ∈ Word ( 𝐼 × 2o ) )
30 lencl ⊢ ( ( 𝐵 ‘ 𝐿 ) ∈ Word ( 𝐼 × 2o ) → ( ♯ ‘ ( 𝐵 ‘ 𝐿 ) ) ∈ ℕ0 )
31 29 30 syl ⊢ ( 𝜑 → ( ♯ ‘ ( 𝐵 ‘ 𝐿 ) ) ∈ ℕ0 )
32 31 nn0cnd ⊢ ( 𝜑 → ( ♯ ‘ ( 𝐵 ‘ 𝐿 ) ) ∈ ℂ )
33 2cnd ⊢ ( 𝜑 → 2 ∈ ℂ )
34 1 2 3 4 5 6 7 8 9 10 11 efgredlema ⊢ ( 𝜑 → ( ( ( ♯ ‘ 𝐴 ) − 1 ) ∈ ℕ ∧ ( ( ♯ ‘ 𝐵 ) − 1 ) ∈ ℕ ) )
35 34 simpld ⊢ ( 𝜑 → ( ( ♯ ‘ 𝐴 ) − 1 ) ∈ ℕ )
36 1 2 3 4 5 6 efgsdmi ⊢ ( ( 𝐴 ∈ dom 𝑆 ∧ ( ( ♯ ‘ 𝐴 ) − 1 ) ∈ ℕ ) → ( 𝑆 ‘ 𝐴 ) ∈ ran ( 𝑇 ‘ ( 𝐴 ‘ ( ( ( ♯ ‘ 𝐴 ) − 1 ) − 1 ) ) ) )
37 8 35 36 syl2anc ⊢ ( 𝜑 → ( 𝑆 ‘ 𝐴 ) ∈ ran ( 𝑇 ‘ ( 𝐴 ‘ ( ( ( ♯ ‘ 𝐴 ) − 1 ) − 1 ) ) ) )
38 12 fveq2i ⊢ ( 𝐴 ‘ 𝐾 ) = ( 𝐴 ‘ ( ( ( ♯ ‘ 𝐴 ) − 1 ) − 1 ) )
39 38 fveq2i ⊢ ( 𝑇 ‘ ( 𝐴 ‘ 𝐾 ) ) = ( 𝑇 ‘ ( 𝐴 ‘ ( ( ( ♯ ‘ 𝐴 ) − 1 ) − 1 ) ) )
40 39 rneqi ⊢ ran ( 𝑇 ‘ ( 𝐴 ‘ 𝐾 ) ) = ran ( 𝑇 ‘ ( 𝐴 ‘ ( ( ( ♯ ‘ 𝐴 ) − 1 ) − 1 ) ) )
41 37 40 eleqtrrdi ⊢ ( 𝜑 → ( 𝑆 ‘ 𝐴 ) ∈ ran ( 𝑇 ‘ ( 𝐴 ‘ 𝐾 ) ) )
42 1 2 3 4 efgtlen ⊢ ( ( ( 𝐴 ‘ 𝐾 ) ∈ 𝑊 ∧ ( 𝑆 ‘ 𝐴 ) ∈ ran ( 𝑇 ‘ ( 𝐴 ‘ 𝐾 ) ) ) → ( ♯ ‘ ( 𝑆 ‘ 𝐴 ) ) = ( ( ♯ ‘ ( 𝐴 ‘ 𝐾 ) ) + 2 ) )
43 23 41 42 syl2anc ⊢ ( 𝜑 → ( ♯ ‘ ( 𝑆 ‘ 𝐴 ) ) = ( ( ♯ ‘ ( 𝐴 ‘ 𝐾 ) ) + 2 ) )
44 34 simprd ⊢ ( 𝜑 → ( ( ♯ ‘ 𝐵 ) − 1 ) ∈ ℕ )
45 1 2 3 4 5 6 efgsdmi ⊢ ( ( 𝐵 ∈ dom 𝑆 ∧ ( ( ♯ ‘ 𝐵 ) − 1 ) ∈ ℕ ) → ( 𝑆 ‘ 𝐵 ) ∈ ran ( 𝑇 ‘ ( 𝐵 ‘ ( ( ( ♯ ‘ 𝐵 ) − 1 ) − 1 ) ) ) )
46 9 44 45 syl2anc ⊢ ( 𝜑 → ( 𝑆 ‘ 𝐵 ) ∈ ran ( 𝑇 ‘ ( 𝐵 ‘ ( ( ( ♯ ‘ 𝐵 ) − 1 ) − 1 ) ) ) )
47 10 46 eqeltrd ⊢ ( 𝜑 → ( 𝑆 ‘ 𝐴 ) ∈ ran ( 𝑇 ‘ ( 𝐵 ‘ ( ( ( ♯ ‘ 𝐵 ) − 1 ) − 1 ) ) ) )
48 13 fveq2i ⊢ ( 𝐵 ‘ 𝐿 ) = ( 𝐵 ‘ ( ( ( ♯ ‘ 𝐵 ) − 1 ) − 1 ) )
49 48 fveq2i ⊢ ( 𝑇 ‘ ( 𝐵 ‘ 𝐿 ) ) = ( 𝑇 ‘ ( 𝐵 ‘ ( ( ( ♯ ‘ 𝐵 ) − 1 ) − 1 ) ) )
50 49 rneqi ⊢ ran ( 𝑇 ‘ ( 𝐵 ‘ 𝐿 ) ) = ran ( 𝑇 ‘ ( 𝐵 ‘ ( ( ( ♯ ‘ 𝐵 ) − 1 ) − 1 ) ) )
51 47 50 eleqtrrdi ⊢ ( 𝜑 → ( 𝑆 ‘ 𝐴 ) ∈ ran ( 𝑇 ‘ ( 𝐵 ‘ 𝐿 ) ) )
52 1 2 3 4 efgtlen ⊢ ( ( ( 𝐵 ‘ 𝐿 ) ∈ 𝑊 ∧ ( 𝑆 ‘ 𝐴 ) ∈ ran ( 𝑇 ‘ ( 𝐵 ‘ 𝐿 ) ) ) → ( ♯ ‘ ( 𝑆 ‘ 𝐴 ) ) = ( ( ♯ ‘ ( 𝐵 ‘ 𝐿 ) ) + 2 ) )
53 28 51 52 syl2anc ⊢ ( 𝜑 → ( ♯ ‘ ( 𝑆 ‘ 𝐴 ) ) = ( ( ♯ ‘ ( 𝐵 ‘ 𝐿 ) ) + 2 ) )
54 43 53 eqtr3d ⊢ ( 𝜑 → ( ( ♯ ‘ ( 𝐴 ‘ 𝐾 ) ) + 2 ) = ( ( ♯ ‘ ( 𝐵 ‘ 𝐿 ) ) + 2 ) )
55 27 32 33 54 addcan2ad ⊢ ( 𝜑 → ( ♯ ‘ ( 𝐴 ‘ 𝐾 ) ) = ( ♯ ‘ ( 𝐵 ‘ 𝐿 ) ) )