Metamath Proof Explorer


Theorem efgredlemf

Description: Lemma for efgredleme . (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 )
Assertion efgredlemf ( 𝜑 → ( ( 𝐴𝐾 ) ∈ 𝑊 ∧ ( 𝐵𝐿 ) ∈ 𝑊 ) )

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 1 2 3 4 5 6 efgsdm ( 𝐴 ∈ dom 𝑆 ↔ ( 𝐴 ∈ ( Word 𝑊 ∖ { ∅ } ) ∧ ( 𝐴 ‘ 0 ) ∈ 𝐷 ∧ ∀ 𝑖 ∈ ( 1 ..^ ( ♯ ‘ 𝐴 ) ) ( 𝐴𝑖 ) ∈ ran ( 𝑇 ‘ ( 𝐴 ‘ ( 𝑖 − 1 ) ) ) ) )
15 14 simp1bi ( 𝐴 ∈ dom 𝑆𝐴 ∈ ( Word 𝑊 ∖ { ∅ } ) )
16 8 15 syl ( 𝜑𝐴 ∈ ( Word 𝑊 ∖ { ∅ } ) )
17 16 eldifad ( 𝜑𝐴 ∈ Word 𝑊 )
18 wrdf ( 𝐴 ∈ Word 𝑊𝐴 : ( 0 ..^ ( ♯ ‘ 𝐴 ) ) ⟶ 𝑊 )
19 17 18 syl ( 𝜑𝐴 : ( 0 ..^ ( ♯ ‘ 𝐴 ) ) ⟶ 𝑊 )
20 fzossfz ( 0 ..^ ( ( ♯ ‘ 𝐴 ) − 1 ) ) ⊆ ( 0 ... ( ( ♯ ‘ 𝐴 ) − 1 ) )
21 lencl ( 𝐴 ∈ Word 𝑊 → ( ♯ ‘ 𝐴 ) ∈ ℕ0 )
22 17 21 syl ( 𝜑 → ( ♯ ‘ 𝐴 ) ∈ ℕ0 )
23 22 nn0zd ( 𝜑 → ( ♯ ‘ 𝐴 ) ∈ ℤ )
24 fzoval ( ( ♯ ‘ 𝐴 ) ∈ ℤ → ( 0 ..^ ( ♯ ‘ 𝐴 ) ) = ( 0 ... ( ( ♯ ‘ 𝐴 ) − 1 ) ) )
25 23 24 syl ( 𝜑 → ( 0 ..^ ( ♯ ‘ 𝐴 ) ) = ( 0 ... ( ( ♯ ‘ 𝐴 ) − 1 ) ) )
26 20 25 sseqtrrid ( 𝜑 → ( 0 ..^ ( ( ♯ ‘ 𝐴 ) − 1 ) ) ⊆ ( 0 ..^ ( ♯ ‘ 𝐴 ) ) )
27 1 2 3 4 5 6 7 8 9 10 11 efgredlema ( 𝜑 → ( ( ( ♯ ‘ 𝐴 ) − 1 ) ∈ ℕ ∧ ( ( ♯ ‘ 𝐵 ) − 1 ) ∈ ℕ ) )
28 27 simpld ( 𝜑 → ( ( ♯ ‘ 𝐴 ) − 1 ) ∈ ℕ )
29 fzo0end ( ( ( ♯ ‘ 𝐴 ) − 1 ) ∈ ℕ → ( ( ( ♯ ‘ 𝐴 ) − 1 ) − 1 ) ∈ ( 0 ..^ ( ( ♯ ‘ 𝐴 ) − 1 ) ) )
30 28 29 syl ( 𝜑 → ( ( ( ♯ ‘ 𝐴 ) − 1 ) − 1 ) ∈ ( 0 ..^ ( ( ♯ ‘ 𝐴 ) − 1 ) ) )
31 12 30 eqeltrid ( 𝜑𝐾 ∈ ( 0 ..^ ( ( ♯ ‘ 𝐴 ) − 1 ) ) )
32 26 31 sseldd ( 𝜑𝐾 ∈ ( 0 ..^ ( ♯ ‘ 𝐴 ) ) )
33 19 32 ffvelrnd ( 𝜑 → ( 𝐴𝐾 ) ∈ 𝑊 )
34 1 2 3 4 5 6 efgsdm ( 𝐵 ∈ dom 𝑆 ↔ ( 𝐵 ∈ ( Word 𝑊 ∖ { ∅ } ) ∧ ( 𝐵 ‘ 0 ) ∈ 𝐷 ∧ ∀ 𝑖 ∈ ( 1 ..^ ( ♯ ‘ 𝐵 ) ) ( 𝐵𝑖 ) ∈ ran ( 𝑇 ‘ ( 𝐵 ‘ ( 𝑖 − 1 ) ) ) ) )
35 34 simp1bi ( 𝐵 ∈ dom 𝑆𝐵 ∈ ( Word 𝑊 ∖ { ∅ } ) )
36 9 35 syl ( 𝜑𝐵 ∈ ( Word 𝑊 ∖ { ∅ } ) )
37 36 eldifad ( 𝜑𝐵 ∈ Word 𝑊 )
38 wrdf ( 𝐵 ∈ Word 𝑊𝐵 : ( 0 ..^ ( ♯ ‘ 𝐵 ) ) ⟶ 𝑊 )
39 37 38 syl ( 𝜑𝐵 : ( 0 ..^ ( ♯ ‘ 𝐵 ) ) ⟶ 𝑊 )
40 fzossfz ( 0 ..^ ( ( ♯ ‘ 𝐵 ) − 1 ) ) ⊆ ( 0 ... ( ( ♯ ‘ 𝐵 ) − 1 ) )
41 lencl ( 𝐵 ∈ Word 𝑊 → ( ♯ ‘ 𝐵 ) ∈ ℕ0 )
42 37 41 syl ( 𝜑 → ( ♯ ‘ 𝐵 ) ∈ ℕ0 )
43 42 nn0zd ( 𝜑 → ( ♯ ‘ 𝐵 ) ∈ ℤ )
44 fzoval ( ( ♯ ‘ 𝐵 ) ∈ ℤ → ( 0 ..^ ( ♯ ‘ 𝐵 ) ) = ( 0 ... ( ( ♯ ‘ 𝐵 ) − 1 ) ) )
45 43 44 syl ( 𝜑 → ( 0 ..^ ( ♯ ‘ 𝐵 ) ) = ( 0 ... ( ( ♯ ‘ 𝐵 ) − 1 ) ) )
46 40 45 sseqtrrid ( 𝜑 → ( 0 ..^ ( ( ♯ ‘ 𝐵 ) − 1 ) ) ⊆ ( 0 ..^ ( ♯ ‘ 𝐵 ) ) )
47 fzo0end ( ( ( ♯ ‘ 𝐵 ) − 1 ) ∈ ℕ → ( ( ( ♯ ‘ 𝐵 ) − 1 ) − 1 ) ∈ ( 0 ..^ ( ( ♯ ‘ 𝐵 ) − 1 ) ) )
48 27 47 simpl2im ( 𝜑 → ( ( ( ♯ ‘ 𝐵 ) − 1 ) − 1 ) ∈ ( 0 ..^ ( ( ♯ ‘ 𝐵 ) − 1 ) ) )
49 13 48 eqeltrid ( 𝜑𝐿 ∈ ( 0 ..^ ( ( ♯ ‘ 𝐵 ) − 1 ) ) )
50 46 49 sseldd ( 𝜑𝐿 ∈ ( 0 ..^ ( ♯ ‘ 𝐵 ) ) )
51 39 50 ffvelrnd ( 𝜑 → ( 𝐵𝐿 ) ∈ 𝑊 )
52 33 51 jca ( 𝜑 → ( ( 𝐴𝐾 ) ∈ 𝑊 ∧ ( 𝐵𝐿 ) ∈ 𝑊 ) )