Metamath Proof Explorer


Theorem 2cshwid

Description: Cyclically shifting a word two times resulting in the word itself. (Contributed by AV, 7-Apr-2018) (Revised by AV, 5-Jun-2018) (Revised by AV, 1-Nov-2018)

Ref Expression
Assertion 2cshwid ( ( 𝑊 ∈ Word 𝑉𝑁 ∈ ℤ ) → ( ( 𝑊 cyclShift 𝑁 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑁 ) ) = 𝑊 )

Proof

Step Hyp Ref Expression
1 lencl ( 𝑊 ∈ Word 𝑉 → ( ♯ ‘ 𝑊 ) ∈ ℕ0 )
2 1 nn0zd ( 𝑊 ∈ Word 𝑉 → ( ♯ ‘ 𝑊 ) ∈ ℤ )
3 zsubcl ( ( ( ♯ ‘ 𝑊 ) ∈ ℤ ∧ 𝑁 ∈ ℤ ) → ( ( ♯ ‘ 𝑊 ) − 𝑁 ) ∈ ℤ )
4 2 3 sylan ( ( 𝑊 ∈ Word 𝑉𝑁 ∈ ℤ ) → ( ( ♯ ‘ 𝑊 ) − 𝑁 ) ∈ ℤ )
5 2cshw ( ( 𝑊 ∈ Word 𝑉𝑁 ∈ ℤ ∧ ( ( ♯ ‘ 𝑊 ) − 𝑁 ) ∈ ℤ ) → ( ( 𝑊 cyclShift 𝑁 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑁 ) ) = ( 𝑊 cyclShift ( 𝑁 + ( ( ♯ ‘ 𝑊 ) − 𝑁 ) ) ) )
6 4 5 mpd3an3 ( ( 𝑊 ∈ Word 𝑉𝑁 ∈ ℤ ) → ( ( 𝑊 cyclShift 𝑁 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑁 ) ) = ( 𝑊 cyclShift ( 𝑁 + ( ( ♯ ‘ 𝑊 ) − 𝑁 ) ) ) )
7 zcn ( 𝑁 ∈ ℤ → 𝑁 ∈ ℂ )
8 1 nn0cnd ( 𝑊 ∈ Word 𝑉 → ( ♯ ‘ 𝑊 ) ∈ ℂ )
9 pncan3 ( ( 𝑁 ∈ ℂ ∧ ( ♯ ‘ 𝑊 ) ∈ ℂ ) → ( 𝑁 + ( ( ♯ ‘ 𝑊 ) − 𝑁 ) ) = ( ♯ ‘ 𝑊 ) )
10 7 8 9 syl2anr ( ( 𝑊 ∈ Word 𝑉𝑁 ∈ ℤ ) → ( 𝑁 + ( ( ♯ ‘ 𝑊 ) − 𝑁 ) ) = ( ♯ ‘ 𝑊 ) )
11 10 oveq2d ( ( 𝑊 ∈ Word 𝑉𝑁 ∈ ℤ ) → ( 𝑊 cyclShift ( 𝑁 + ( ( ♯ ‘ 𝑊 ) − 𝑁 ) ) ) = ( 𝑊 cyclShift ( ♯ ‘ 𝑊 ) ) )
12 cshwn ( 𝑊 ∈ Word 𝑉 → ( 𝑊 cyclShift ( ♯ ‘ 𝑊 ) ) = 𝑊 )
13 12 adantr ( ( 𝑊 ∈ Word 𝑉𝑁 ∈ ℤ ) → ( 𝑊 cyclShift ( ♯ ‘ 𝑊 ) ) = 𝑊 )
14 6 11 13 3eqtrd ( ( 𝑊 ∈ Word 𝑉𝑁 ∈ ℤ ) → ( ( 𝑊 cyclShift 𝑁 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑁 ) ) = 𝑊 )