Metamath Proof Explorer


Theorem efgrelexlemb

Description: If two words A , B are related under the free group equivalence, then there exist two extension sequences a , b such that a ends at A , b ends at B , and a and B have the same starting point. (Contributed by Mario Carneiro, 1-Oct-2015)

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 ) ) )
efgrelexlem.1 𝐿 = { ⟨ 𝑖 , 𝑗 ⟩ ∣ ∃ 𝑐 ∈ ( 𝑆 “ { 𝑖 } ) ∃ 𝑑 ∈ ( 𝑆 “ { 𝑗 } ) ( 𝑐 ‘ 0 ) = ( 𝑑 ‘ 0 ) }
Assertion efgrelexlemb 𝐿

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 efgrelexlem.1 𝐿 = { ⟨ 𝑖 , 𝑗 ⟩ ∣ ∃ 𝑐 ∈ ( 𝑆 “ { 𝑖 } ) ∃ 𝑑 ∈ ( 𝑆 “ { 𝑗 } ) ( 𝑐 ‘ 0 ) = ( 𝑑 ‘ 0 ) }
8 1 2 3 4 efgval2 = { 𝑟 ∣ ( 𝑟 Er 𝑊 ∧ ∀ 𝑎𝑊 ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝑟 ) }
9 7 relopabiv Rel 𝐿
10 9 a1i ( ⊤ → Rel 𝐿 )
11 eqcom ( ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ↔ ( 𝑏 ‘ 0 ) = ( 𝑎 ‘ 0 ) )
12 11 2rexbii ( ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ↔ ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ( 𝑏 ‘ 0 ) = ( 𝑎 ‘ 0 ) )
13 rexcom ( ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ( 𝑏 ‘ 0 ) = ( 𝑎 ‘ 0 ) ↔ ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ( 𝑏 ‘ 0 ) = ( 𝑎 ‘ 0 ) )
14 12 13 bitri ( ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ↔ ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ( 𝑏 ‘ 0 ) = ( 𝑎 ‘ 0 ) )
15 1 2 3 4 5 6 7 efgrelexlema ( 𝑓 𝐿 𝑔 ↔ ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) )
16 1 2 3 4 5 6 7 efgrelexlema ( 𝑔 𝐿 𝑓 ↔ ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ( 𝑏 ‘ 0 ) = ( 𝑎 ‘ 0 ) )
17 14 15 16 3bitr4i ( 𝑓 𝐿 𝑔𝑔 𝐿 𝑓 )
18 17 bilani ( ( ⊤ ∧ 𝑓 𝐿 𝑔 ) → 𝑔 𝐿 𝑓 )
19 1 2 3 4 5 6 7 efgrelexlema ( 𝑔 𝐿 ↔ ∃ 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) )
20 reeanv ( ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) ( ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ∧ ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) ↔ ( ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ∧ ∃ 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) )
21 1 2 3 4 5 6 efgsfo 𝑆 : dom 𝑆onto𝑊
22 fofn ( 𝑆 : dom 𝑆onto𝑊𝑆 Fn dom 𝑆 )
23 21 22 ax-mp 𝑆 Fn dom 𝑆
24 fniniseg ( 𝑆 Fn dom 𝑆 → ( 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) ↔ ( 𝑟 ∈ dom 𝑆 ∧ ( 𝑆𝑟 ) = 𝑔 ) ) )
25 23 24 ax-mp ( 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) ↔ ( 𝑟 ∈ dom 𝑆 ∧ ( 𝑆𝑟 ) = 𝑔 ) )
26 fniniseg ( 𝑆 Fn dom 𝑆 → ( 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ↔ ( 𝑏 ∈ dom 𝑆 ∧ ( 𝑆𝑏 ) = 𝑔 ) ) )
27 23 26 ax-mp ( 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ↔ ( 𝑏 ∈ dom 𝑆 ∧ ( 𝑆𝑏 ) = 𝑔 ) )
28 eqtr3 ( ( ( 𝑆𝑟 ) = 𝑔 ∧ ( 𝑆𝑏 ) = 𝑔 ) → ( 𝑆𝑟 ) = ( 𝑆𝑏 ) )
29 1 2 3 4 5 6 efgred ( ( 𝑟 ∈ dom 𝑆𝑏 ∈ dom 𝑆 ∧ ( 𝑆𝑟 ) = ( 𝑆𝑏 ) ) → ( 𝑟 ‘ 0 ) = ( 𝑏 ‘ 0 ) )
30 29 eqcomd ( ( 𝑟 ∈ dom 𝑆𝑏 ∈ dom 𝑆 ∧ ( 𝑆𝑟 ) = ( 𝑆𝑏 ) ) → ( 𝑏 ‘ 0 ) = ( 𝑟 ‘ 0 ) )
31 30 3expa ( ( ( 𝑟 ∈ dom 𝑆𝑏 ∈ dom 𝑆 ) ∧ ( 𝑆𝑟 ) = ( 𝑆𝑏 ) ) → ( 𝑏 ‘ 0 ) = ( 𝑟 ‘ 0 ) )
32 28 31 sylan2 ( ( ( 𝑟 ∈ dom 𝑆𝑏 ∈ dom 𝑆 ) ∧ ( ( 𝑆𝑟 ) = 𝑔 ∧ ( 𝑆𝑏 ) = 𝑔 ) ) → ( 𝑏 ‘ 0 ) = ( 𝑟 ‘ 0 ) )
33 32 an4s ( ( ( 𝑟 ∈ dom 𝑆 ∧ ( 𝑆𝑟 ) = 𝑔 ) ∧ ( 𝑏 ∈ dom 𝑆 ∧ ( 𝑆𝑏 ) = 𝑔 ) ) → ( 𝑏 ‘ 0 ) = ( 𝑟 ‘ 0 ) )
34 25 27 33 syl2anb ( ( 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) ∧ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ) → ( 𝑏 ‘ 0 ) = ( 𝑟 ‘ 0 ) )
35 eqeq2 ( ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) → ( ( 𝑏 ‘ 0 ) = ( 𝑟 ‘ 0 ) ↔ ( 𝑏 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) )
36 34 35 syl5ibcom ( ( 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) ∧ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ) → ( ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) → ( 𝑏 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) )
37 36 reximdv ( ( 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) ∧ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ) → ( ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) → ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑏 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) )
38 eqeq1 ( ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) → ( ( 𝑎 ‘ 0 ) = ( 𝑠 ‘ 0 ) ↔ ( 𝑏 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) )
39 38 rexbidv ( ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) → ( ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑎 ‘ 0 ) = ( 𝑠 ‘ 0 ) ↔ ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑏 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) )
40 39 imbi2d ( ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) → ( ( ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) → ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑎 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) ↔ ( ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) → ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑏 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) ) )
41 37 40 syl5ibrcom ( ( 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) ∧ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ) → ( ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) → ( ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) → ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑎 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) ) )
42 41 rexlimdva ( 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) → ( ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) → ( ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) → ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑎 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) ) )
43 42 impd ( 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) → ( ( ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ∧ ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) → ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑎 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) )
44 43 rexlimiv ( ∃ 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) ( ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ∧ ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) → ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑎 ‘ 0 ) = ( 𝑠 ‘ 0 ) )
45 44 reximi ( ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) ( ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ∧ ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) → ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑎 ‘ 0 ) = ( 𝑠 ‘ 0 ) )
46 20 45 sylbir ( ( ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑏 ∈ ( 𝑆 “ { 𝑔 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ∧ ∃ 𝑟 ∈ ( 𝑆 “ { 𝑔 } ) ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) ) → ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑎 ‘ 0 ) = ( 𝑠 ‘ 0 ) )
47 15 19 46 syl2anb ( ( 𝑓 𝐿 𝑔𝑔 𝐿 ) → ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑎 ‘ 0 ) = ( 𝑠 ‘ 0 ) )
48 1 2 3 4 5 6 7 efgrelexlema ( 𝑓 𝐿 ↔ ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑠 ∈ ( 𝑆 “ { } ) ( 𝑎 ‘ 0 ) = ( 𝑠 ‘ 0 ) )
49 47 48 sylibr ( ( 𝑓 𝐿 𝑔𝑔 𝐿 ) → 𝑓 𝐿 )
50 49 adantl ( ( ⊤ ∧ ( 𝑓 𝐿 𝑔𝑔 𝐿 ) ) → 𝑓 𝐿 )
51 eqid ( 𝑎 ‘ 0 ) = ( 𝑎 ‘ 0 )
52 fveq1 ( 𝑏 = 𝑎 → ( 𝑏 ‘ 0 ) = ( 𝑎 ‘ 0 ) )
53 52 rspceeqv ( ( 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∧ ( 𝑎 ‘ 0 ) = ( 𝑎 ‘ 0 ) ) → ∃ 𝑏 ∈ ( 𝑆 “ { 𝑓 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) )
54 51 53 mpan2 ( 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) → ∃ 𝑏 ∈ ( 𝑆 “ { 𝑓 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) )
55 54 pm4.71i ( 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ↔ ( 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∧ ∃ 𝑏 ∈ ( 𝑆 “ { 𝑓 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ) )
56 fniniseg ( 𝑆 Fn dom 𝑆 → ( 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ↔ ( 𝑎 ∈ dom 𝑆 ∧ ( 𝑆𝑎 ) = 𝑓 ) ) )
57 23 56 ax-mp ( 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ↔ ( 𝑎 ∈ dom 𝑆 ∧ ( 𝑆𝑎 ) = 𝑓 ) )
58 55 57 bitr3i ( ( 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∧ ∃ 𝑏 ∈ ( 𝑆 “ { 𝑓 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ) ↔ ( 𝑎 ∈ dom 𝑆 ∧ ( 𝑆𝑎 ) = 𝑓 ) )
59 58 rexbii2 ( ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑏 ∈ ( 𝑆 “ { 𝑓 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) ↔ ∃ 𝑎 ∈ dom 𝑆 ( 𝑆𝑎 ) = 𝑓 )
60 1 2 3 4 5 6 7 efgrelexlema ( 𝑓 𝐿 𝑓 ↔ ∃ 𝑎 ∈ ( 𝑆 “ { 𝑓 } ) ∃ 𝑏 ∈ ( 𝑆 “ { 𝑓 } ) ( 𝑎 ‘ 0 ) = ( 𝑏 ‘ 0 ) )
61 forn ( 𝑆 : dom 𝑆onto𝑊 → ran 𝑆 = 𝑊 )
62 21 61 ax-mp ran 𝑆 = 𝑊
63 62 eleq2i ( 𝑓 ∈ ran 𝑆𝑓𝑊 )
64 fvelrnb ( 𝑆 Fn dom 𝑆 → ( 𝑓 ∈ ran 𝑆 ↔ ∃ 𝑎 ∈ dom 𝑆 ( 𝑆𝑎 ) = 𝑓 ) )
65 23 64 ax-mp ( 𝑓 ∈ ran 𝑆 ↔ ∃ 𝑎 ∈ dom 𝑆 ( 𝑆𝑎 ) = 𝑓 )
66 63 65 bitr3i ( 𝑓𝑊 ↔ ∃ 𝑎 ∈ dom 𝑆 ( 𝑆𝑎 ) = 𝑓 )
67 59 60 66 3bitr4ri ( 𝑓𝑊𝑓 𝐿 𝑓 )
68 67 a1i ( ⊤ → ( 𝑓𝑊𝑓 𝐿 𝑓 ) )
69 10 18 50 68 iserd ( ⊤ → 𝐿 Er 𝑊 )
70 69 mptru 𝐿 Er 𝑊
71 simpl ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) → 𝑎𝑊 )
72 foelrn ( ( 𝑆 : dom 𝑆onto𝑊𝑎𝑊 ) → ∃ 𝑟 ∈ dom 𝑆 𝑎 = ( 𝑆𝑟 ) )
73 21 71 72 sylancr ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) → ∃ 𝑟 ∈ dom 𝑆 𝑎 = ( 𝑆𝑟 ) )
74 simprl ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → 𝑟 ∈ dom 𝑆 )
75 simprr ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → 𝑎 = ( 𝑆𝑟 ) )
76 75 eqcomd ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → ( 𝑆𝑟 ) = 𝑎 )
77 fniniseg ( 𝑆 Fn dom 𝑆 → ( 𝑟 ∈ ( 𝑆 “ { 𝑎 } ) ↔ ( 𝑟 ∈ dom 𝑆 ∧ ( 𝑆𝑟 ) = 𝑎 ) ) )
78 23 77 ax-mp ( 𝑟 ∈ ( 𝑆 “ { 𝑎 } ) ↔ ( 𝑟 ∈ dom 𝑆 ∧ ( 𝑆𝑟 ) = 𝑎 ) )
79 74 76 78 sylanbrc ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → 𝑟 ∈ ( 𝑆 “ { 𝑎 } ) )
80 simplr ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → 𝑏 ∈ ran ( 𝑇𝑎 ) )
81 75 fveq2d ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → ( 𝑇𝑎 ) = ( 𝑇 ‘ ( 𝑆𝑟 ) ) )
82 81 rneqd ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → ran ( 𝑇𝑎 ) = ran ( 𝑇 ‘ ( 𝑆𝑟 ) ) )
83 80 82 eleqtrd ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → 𝑏 ∈ ran ( 𝑇 ‘ ( 𝑆𝑟 ) ) )
84 1 2 3 4 5 6 efgsp1 ( ( 𝑟 ∈ dom 𝑆𝑏 ∈ ran ( 𝑇 ‘ ( 𝑆𝑟 ) ) ) → ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ∈ dom 𝑆 )
85 74 83 84 syl2anc ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ∈ dom 𝑆 )
86 1 2 3 4 5 6 efgsdm ( 𝑟 ∈ dom 𝑆 ↔ ( 𝑟 ∈ ( Word 𝑊 ∖ { ∅ } ) ∧ ( 𝑟 ‘ 0 ) ∈ 𝐷 ∧ ∀ 𝑖 ∈ ( 1 ..^ ( ♯ ‘ 𝑟 ) ) ( 𝑟𝑖 ) ∈ ran ( 𝑇 ‘ ( 𝑟 ‘ ( 𝑖 − 1 ) ) ) ) )
87 86 simp1bi ( 𝑟 ∈ dom 𝑆𝑟 ∈ ( Word 𝑊 ∖ { ∅ } ) )
88 87 ad2antrl ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → 𝑟 ∈ ( Word 𝑊 ∖ { ∅ } ) )
89 88 eldifad ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → 𝑟 ∈ Word 𝑊 )
90 1 2 3 4 efgtf ( 𝑎𝑊 → ( ( 𝑇𝑎 ) = ( 𝑓 ∈ ( 0 ... ( ♯ ‘ 𝑎 ) ) , 𝑔 ∈ ( 𝐼 × 2o ) ↦ ( 𝑎 splice ⟨ 𝑓 , 𝑓 , ⟨“ 𝑔 ( 𝑀𝑔 ) ”⟩ ⟩ ) ) ∧ ( 𝑇𝑎 ) : ( ( 0 ... ( ♯ ‘ 𝑎 ) ) × ( 𝐼 × 2o ) ) ⟶ 𝑊 ) )
91 90 simprd ( 𝑎𝑊 → ( 𝑇𝑎 ) : ( ( 0 ... ( ♯ ‘ 𝑎 ) ) × ( 𝐼 × 2o ) ) ⟶ 𝑊 )
92 91 frnd ( 𝑎𝑊 → ran ( 𝑇𝑎 ) ⊆ 𝑊 )
93 92 sselda ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) → 𝑏𝑊 )
94 93 adantr ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → 𝑏𝑊 )
95 1 2 3 4 5 6 efgsval2 ( ( 𝑟 ∈ Word 𝑊𝑏𝑊 ∧ ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ∈ dom 𝑆 ) → ( 𝑆 ‘ ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ) = 𝑏 )
96 89 94 85 95 syl3anc ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → ( 𝑆 ‘ ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ) = 𝑏 )
97 fniniseg ( 𝑆 Fn dom 𝑆 → ( ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ∈ ( 𝑆 “ { 𝑏 } ) ↔ ( ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ∈ dom 𝑆 ∧ ( 𝑆 ‘ ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ) = 𝑏 ) ) )
98 23 97 ax-mp ( ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ∈ ( 𝑆 “ { 𝑏 } ) ↔ ( ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ∈ dom 𝑆 ∧ ( 𝑆 ‘ ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ) = 𝑏 ) )
99 85 96 98 sylanbrc ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ∈ ( 𝑆 “ { 𝑏 } ) )
100 94 s1cld ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → ⟨“ 𝑏 ”⟩ ∈ Word 𝑊 )
101 eldifsn ( 𝑟 ∈ ( Word 𝑊 ∖ { ∅ } ) ↔ ( 𝑟 ∈ Word 𝑊𝑟 ≠ ∅ ) )
102 lennncl ( ( 𝑟 ∈ Word 𝑊𝑟 ≠ ∅ ) → ( ♯ ‘ 𝑟 ) ∈ ℕ )
103 101 102 sylbi ( 𝑟 ∈ ( Word 𝑊 ∖ { ∅ } ) → ( ♯ ‘ 𝑟 ) ∈ ℕ )
104 88 103 syl ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → ( ♯ ‘ 𝑟 ) ∈ ℕ )
105 lbfzo0 ( 0 ∈ ( 0 ..^ ( ♯ ‘ 𝑟 ) ) ↔ ( ♯ ‘ 𝑟 ) ∈ ℕ )
106 104 105 sylibr ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → 0 ∈ ( 0 ..^ ( ♯ ‘ 𝑟 ) ) )
107 ccatval1 ( ( 𝑟 ∈ Word 𝑊 ∧ ⟨“ 𝑏 ”⟩ ∈ Word 𝑊 ∧ 0 ∈ ( 0 ..^ ( ♯ ‘ 𝑟 ) ) ) → ( ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ‘ 0 ) = ( 𝑟 ‘ 0 ) )
108 89 100 106 107 syl3anc ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → ( ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ‘ 0 ) = ( 𝑟 ‘ 0 ) )
109 108 eqcomd ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → ( 𝑟 ‘ 0 ) = ( ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ‘ 0 ) )
110 fveq1 ( 𝑠 = ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) → ( 𝑠 ‘ 0 ) = ( ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ‘ 0 ) )
111 110 rspceeqv ( ( ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ∈ ( 𝑆 “ { 𝑏 } ) ∧ ( 𝑟 ‘ 0 ) = ( ( 𝑟 ++ ⟨“ 𝑏 ”⟩ ) ‘ 0 ) ) → ∃ 𝑠 ∈ ( 𝑆 “ { 𝑏 } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) )
112 99 109 111 syl2anc ( ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) ∧ ( 𝑟 ∈ dom 𝑆𝑎 = ( 𝑆𝑟 ) ) ) → ∃ 𝑠 ∈ ( 𝑆 “ { 𝑏 } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) )
113 73 79 112 reximssdv ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) → ∃ 𝑟 ∈ ( 𝑆 “ { 𝑎 } ) ∃ 𝑠 ∈ ( 𝑆 “ { 𝑏 } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) )
114 1 2 3 4 5 6 7 efgrelexlema ( 𝑎 𝐿 𝑏 ↔ ∃ 𝑟 ∈ ( 𝑆 “ { 𝑎 } ) ∃ 𝑠 ∈ ( 𝑆 “ { 𝑏 } ) ( 𝑟 ‘ 0 ) = ( 𝑠 ‘ 0 ) )
115 113 114 sylibr ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) → 𝑎 𝐿 𝑏 )
116 vex 𝑏 ∈ V
117 vex 𝑎 ∈ V
118 116 117 elec ( 𝑏 ∈ [ 𝑎 ] 𝐿𝑎 𝐿 𝑏 )
119 115 118 sylibr ( ( 𝑎𝑊𝑏 ∈ ran ( 𝑇𝑎 ) ) → 𝑏 ∈ [ 𝑎 ] 𝐿 )
120 119 ex ( 𝑎𝑊 → ( 𝑏 ∈ ran ( 𝑇𝑎 ) → 𝑏 ∈ [ 𝑎 ] 𝐿 ) )
121 120 ssrdv ( 𝑎𝑊 → ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝐿 )
122 121 rgen 𝑎𝑊 ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝐿
123 1 fvexi 𝑊 ∈ V
124 erex ( 𝐿 Er 𝑊 → ( 𝑊 ∈ V → 𝐿 ∈ V ) )
125 70 123 124 mp2 𝐿 ∈ V
126 ereq1 ( 𝑟 = 𝐿 → ( 𝑟 Er 𝑊𝐿 Er 𝑊 ) )
127 eceq2 ( 𝑟 = 𝐿 → [ 𝑎 ] 𝑟 = [ 𝑎 ] 𝐿 )
128 127 sseq2d ( 𝑟 = 𝐿 → ( ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝑟 ↔ ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝐿 ) )
129 128 ralbidv ( 𝑟 = 𝐿 → ( ∀ 𝑎𝑊 ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝑟 ↔ ∀ 𝑎𝑊 ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝐿 ) )
130 126 129 anbi12d ( 𝑟 = 𝐿 → ( ( 𝑟 Er 𝑊 ∧ ∀ 𝑎𝑊 ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝑟 ) ↔ ( 𝐿 Er 𝑊 ∧ ∀ 𝑎𝑊 ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝐿 ) ) )
131 125 130 elab ( 𝐿 ∈ { 𝑟 ∣ ( 𝑟 Er 𝑊 ∧ ∀ 𝑎𝑊 ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝑟 ) } ↔ ( 𝐿 Er 𝑊 ∧ ∀ 𝑎𝑊 ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝐿 ) )
132 70 122 131 mpbir2an 𝐿 ∈ { 𝑟 ∣ ( 𝑟 Er 𝑊 ∧ ∀ 𝑎𝑊 ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝑟 ) }
133 intss1 ( 𝐿 ∈ { 𝑟 ∣ ( 𝑟 Er 𝑊 ∧ ∀ 𝑎𝑊 ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝑟 ) } → { 𝑟 ∣ ( 𝑟 Er 𝑊 ∧ ∀ 𝑎𝑊 ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝑟 ) } ⊆ 𝐿 )
134 132 133 ax-mp { 𝑟 ∣ ( 𝑟 Er 𝑊 ∧ ∀ 𝑎𝑊 ran ( 𝑇𝑎 ) ⊆ [ 𝑎 ] 𝑟 ) } ⊆ 𝐿
135 8 134 eqsstri 𝐿