Step |
Hyp |
Ref |
Expression |
1 |
|
2cshwid |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ℤ ) → ( ( 𝑊 cyclShift 𝑀 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ) = 𝑊 ) |
2 |
1
|
3adant2 |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ ) → ( ( 𝑊 cyclShift 𝑀 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ) = 𝑊 ) |
3 |
2
|
eqcomd |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ ) → 𝑊 = ( ( 𝑊 cyclShift 𝑀 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ) ) |
4 |
3
|
oveq1d |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ ) → ( 𝑊 cyclShift 𝑁 ) = ( ( ( 𝑊 cyclShift 𝑀 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ) cyclShift 𝑁 ) ) |
5 |
|
cshwcl |
⊢ ( 𝑊 ∈ Word 𝑉 → ( 𝑊 cyclShift 𝑀 ) ∈ Word 𝑉 ) |
6 |
5
|
3ad2ant1 |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ ) → ( 𝑊 cyclShift 𝑀 ) ∈ Word 𝑉 ) |
7 |
|
lencl |
⊢ ( 𝑊 ∈ Word 𝑉 → ( ♯ ‘ 𝑊 ) ∈ ℕ0 ) |
8 |
7
|
nn0zd |
⊢ ( 𝑊 ∈ Word 𝑉 → ( ♯ ‘ 𝑊 ) ∈ ℤ ) |
9 |
|
zsubcl |
⊢ ( ( ( ♯ ‘ 𝑊 ) ∈ ℤ ∧ 𝑀 ∈ ℤ ) → ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ∈ ℤ ) |
10 |
8 9
|
sylan |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ℤ ) → ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ∈ ℤ ) |
11 |
10
|
3adant2 |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ ) → ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ∈ ℤ ) |
12 |
|
simp2 |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ ) → 𝑁 ∈ ℤ ) |
13 |
|
2cshwcom |
⊢ ( ( ( 𝑊 cyclShift 𝑀 ) ∈ Word 𝑉 ∧ ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ∈ ℤ ∧ 𝑁 ∈ ℤ ) → ( ( ( 𝑊 cyclShift 𝑀 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ) cyclShift 𝑁 ) = ( ( ( 𝑊 cyclShift 𝑀 ) cyclShift 𝑁 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ) ) |
14 |
6 11 12 13
|
syl3anc |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ ) → ( ( ( 𝑊 cyclShift 𝑀 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ) cyclShift 𝑁 ) = ( ( ( 𝑊 cyclShift 𝑀 ) cyclShift 𝑁 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ) ) |
15 |
4 14
|
eqtrd |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ ) → ( 𝑊 cyclShift 𝑁 ) = ( ( ( 𝑊 cyclShift 𝑀 ) cyclShift 𝑁 ) cyclShift ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ) ) |