Metamath Proof Explorer


Theorem cycpmfvlem

Description: Lemma for cycpmfv1 and cycpmfv2 . (Contributed by Thierry Arnoux, 22-Sep-2023)

Ref Expression
Hypotheses tocycval.1 𝐶 = ( toCyc ‘ 𝐷 )
tocycfv.d ( 𝜑𝐷𝑉 )
tocycfv.w ( 𝜑𝑊 ∈ Word 𝐷 )
tocycfv.1 ( 𝜑𝑊 : dom 𝑊1-1𝐷 )
cycpmfvlem.1 ( 𝜑𝑁 ∈ ( 0 ..^ ( ♯ ‘ 𝑊 ) ) )
Assertion cycpmfvlem ( 𝜑 → ( ( 𝐶𝑊 ) ‘ ( 𝑊𝑁 ) ) = ( ( ( 𝑊 cyclShift 1 ) ∘ 𝑊 ) ‘ ( 𝑊𝑁 ) ) )

Proof

Step Hyp Ref Expression
1 tocycval.1 𝐶 = ( toCyc ‘ 𝐷 )
2 tocycfv.d ( 𝜑𝐷𝑉 )
3 tocycfv.w ( 𝜑𝑊 ∈ Word 𝐷 )
4 tocycfv.1 ( 𝜑𝑊 : dom 𝑊1-1𝐷 )
5 cycpmfvlem.1 ( 𝜑𝑁 ∈ ( 0 ..^ ( ♯ ‘ 𝑊 ) ) )
6 1 2 3 4 tocycfv ( 𝜑 → ( 𝐶𝑊 ) = ( ( I ↾ ( 𝐷 ∖ ran 𝑊 ) ) ∪ ( ( 𝑊 cyclShift 1 ) ∘ 𝑊 ) ) )
7 6 fveq1d ( 𝜑 → ( ( 𝐶𝑊 ) ‘ ( 𝑊𝑁 ) ) = ( ( ( I ↾ ( 𝐷 ∖ ran 𝑊 ) ) ∪ ( ( 𝑊 cyclShift 1 ) ∘ 𝑊 ) ) ‘ ( 𝑊𝑁 ) ) )
8 f1oi ( I ↾ ( 𝐷 ∖ ran 𝑊 ) ) : ( 𝐷 ∖ ran 𝑊 ) –1-1-onto→ ( 𝐷 ∖ ran 𝑊 )
9 f1ofn ( ( I ↾ ( 𝐷 ∖ ran 𝑊 ) ) : ( 𝐷 ∖ ran 𝑊 ) –1-1-onto→ ( 𝐷 ∖ ran 𝑊 ) → ( I ↾ ( 𝐷 ∖ ran 𝑊 ) ) Fn ( 𝐷 ∖ ran 𝑊 ) )
10 8 9 mp1i ( 𝜑 → ( I ↾ ( 𝐷 ∖ ran 𝑊 ) ) Fn ( 𝐷 ∖ ran 𝑊 ) )
11 1zzd ( 𝜑 → 1 ∈ ℤ )
12 cshwf ( ( 𝑊 ∈ Word 𝐷 ∧ 1 ∈ ℤ ) → ( 𝑊 cyclShift 1 ) : ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ⟶ 𝐷 )
13 3 11 12 syl2anc ( 𝜑 → ( 𝑊 cyclShift 1 ) : ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ⟶ 𝐷 )
14 13 ffnd ( 𝜑 → ( 𝑊 cyclShift 1 ) Fn ( 0 ..^ ( ♯ ‘ 𝑊 ) ) )
15 df-f1 ( 𝑊 : dom 𝑊1-1𝐷 ↔ ( 𝑊 : dom 𝑊𝐷 ∧ Fun 𝑊 ) )
16 4 15 sylib ( 𝜑 → ( 𝑊 : dom 𝑊𝐷 ∧ Fun 𝑊 ) )
17 16 simprd ( 𝜑 → Fun 𝑊 )
18 17 funfnd ( 𝜑 𝑊 Fn dom 𝑊 )
19 df-rn ran 𝑊 = dom 𝑊
20 19 fneq2i ( 𝑊 Fn ran 𝑊 𝑊 Fn dom 𝑊 )
21 18 20 sylibr ( 𝜑 𝑊 Fn ran 𝑊 )
22 dfdm4 dom 𝑊 = ran 𝑊
23 22 eqimss2i ran 𝑊 ⊆ dom 𝑊
24 wrdfn ( 𝑊 ∈ Word 𝐷𝑊 Fn ( 0 ..^ ( ♯ ‘ 𝑊 ) ) )
25 3 24 syl ( 𝜑𝑊 Fn ( 0 ..^ ( ♯ ‘ 𝑊 ) ) )
26 25 fndmd ( 𝜑 → dom 𝑊 = ( 0 ..^ ( ♯ ‘ 𝑊 ) ) )
27 23 26 sseqtrid ( 𝜑 → ran 𝑊 ⊆ ( 0 ..^ ( ♯ ‘ 𝑊 ) ) )
28 fnco ( ( ( 𝑊 cyclShift 1 ) Fn ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ∧ 𝑊 Fn ran 𝑊 ∧ ran 𝑊 ⊆ ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ) → ( ( 𝑊 cyclShift 1 ) ∘ 𝑊 ) Fn ran 𝑊 )
29 14 21 27 28 syl3anc ( 𝜑 → ( ( 𝑊 cyclShift 1 ) ∘ 𝑊 ) Fn ran 𝑊 )
30 incom ( ran 𝑊 ∩ ( 𝐷 ∖ ran 𝑊 ) ) = ( ( 𝐷 ∖ ran 𝑊 ) ∩ ran 𝑊 )
31 disjdif ( ran 𝑊 ∩ ( 𝐷 ∖ ran 𝑊 ) ) = ∅
32 30 31 eqtr3i ( ( 𝐷 ∖ ran 𝑊 ) ∩ ran 𝑊 ) = ∅
33 32 a1i ( 𝜑 → ( ( 𝐷 ∖ ran 𝑊 ) ∩ ran 𝑊 ) = ∅ )
34 fnfvelrn ( ( 𝑊 Fn ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ∧ 𝑁 ∈ ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ) → ( 𝑊𝑁 ) ∈ ran 𝑊 )
35 25 5 34 syl2anc ( 𝜑 → ( 𝑊𝑁 ) ∈ ran 𝑊 )
36 fvun2 ( ( ( I ↾ ( 𝐷 ∖ ran 𝑊 ) ) Fn ( 𝐷 ∖ ran 𝑊 ) ∧ ( ( 𝑊 cyclShift 1 ) ∘ 𝑊 ) Fn ran 𝑊 ∧ ( ( ( 𝐷 ∖ ran 𝑊 ) ∩ ran 𝑊 ) = ∅ ∧ ( 𝑊𝑁 ) ∈ ran 𝑊 ) ) → ( ( ( I ↾ ( 𝐷 ∖ ran 𝑊 ) ) ∪ ( ( 𝑊 cyclShift 1 ) ∘ 𝑊 ) ) ‘ ( 𝑊𝑁 ) ) = ( ( ( 𝑊 cyclShift 1 ) ∘ 𝑊 ) ‘ ( 𝑊𝑁 ) ) )
37 10 29 33 35 36 syl112anc ( 𝜑 → ( ( ( I ↾ ( 𝐷 ∖ ran 𝑊 ) ) ∪ ( ( 𝑊 cyclShift 1 ) ∘ 𝑊 ) ) ‘ ( 𝑊𝑁 ) ) = ( ( ( 𝑊 cyclShift 1 ) ∘ 𝑊 ) ‘ ( 𝑊𝑁 ) ) )
38 7 37 eqtrd ( 𝜑 → ( ( 𝐶𝑊 ) ‘ ( 𝑊𝑁 ) ) = ( ( ( 𝑊 cyclShift 1 ) ∘ 𝑊 ) ‘ ( 𝑊𝑁 ) ) )