Metamath Proof Explorer


Theorem cshwcshid

Description: A cyclically shifted word can be reconstructed by cyclically shifting it again. Lemma for erclwwlksym and erclwwlknsym . (Contributed by AV, 8-Apr-2018) (Revised by AV, 11-Jun-2018) (Proof shortened by AV, 3-Nov-2018)

Ref Expression
Hypotheses cshwcshid.1 ⊢ φ → y ∈ Word V
cshwcshid.2 ⊢ φ → x = y
Assertion cshwcshid ⊢ φ → m ∈ 0 … y ∧ x = y cyclShift m → ∃ n ∈ 0 … x y = x cyclShift n

Proof

Step Hyp Ref Expression
1 cshwcshid.1 ⊢ φ → y ∈ Word V
2 cshwcshid.2 ⊢ φ → x = y
3 fznn0sub2 ⊢ m ∈ 0 … y → y − m ∈ 0 … y
4 oveq2 ⊢ x = y → 0 … x = 0 … y
5 4 eleq2d ⊢ x = y → y − m ∈ 0 … x ↔ y − m ∈ 0 … y
6 3 5 imbitrrid ⊢ x = y → m ∈ 0 … y → y − m ∈ 0 … x
7 6 2 syl11 ⊢ m ∈ 0 … y → φ → y − m ∈ 0 … x
8 7 adantr ⊢ m ∈ 0 … y ∧ x = y cyclShift m → φ → y − m ∈ 0 … x
9 8 impcom ⊢ φ ∧ m ∈ 0 … y ∧ x = y cyclShift m → y − m ∈ 0 … x
10 simpl ⊢ y ∈ Word V ∧ m ∈ 0 … y → y ∈ Word V
11 elfzelz ⊢ m ∈ 0 … y → m ∈ ℤ
12 11 adantl ⊢ y ∈ Word V ∧ m ∈ 0 … y → m ∈ ℤ
13 elfz2nn0 ⊢ m ∈ 0 … y ↔ m ∈ ℕ 0 ∧ y ∈ ℕ 0 ∧ m ≤ y
14 nn0z ⊢ y ∈ ℕ 0 → y ∈ ℤ
15 nn0z ⊢ m ∈ ℕ 0 → m ∈ ℤ
16 zsubcl ⊢ y ∈ ℤ ∧ m ∈ ℤ → y − m ∈ ℤ
17 14 15 16 syl2anr ⊢ m ∈ ℕ 0 ∧ y ∈ ℕ 0 → y − m ∈ ℤ
18 17 3adant3 ⊢ m ∈ ℕ 0 ∧ y ∈ ℕ 0 ∧ m ≤ y → y − m ∈ ℤ
19 13 18 sylbi ⊢ m ∈ 0 … y → y − m ∈ ℤ
20 19 adantl ⊢ y ∈ Word V ∧ m ∈ 0 … y → y − m ∈ ℤ
21 10 12 20 3jca ⊢ y ∈ Word V ∧ m ∈ 0 … y → y ∈ Word V ∧ m ∈ ℤ ∧ y − m ∈ ℤ
22 1 21 sylan ⊢ φ ∧ m ∈ 0 … y → y ∈ Word V ∧ m ∈ ℤ ∧ y − m ∈ ℤ
23 2cshw ⊢ y ∈ Word V ∧ m ∈ ℤ ∧ y − m ∈ ℤ → y cyclShift m cyclShift y − m = y cyclShift m + y - m
24 22 23 syl ⊢ φ ∧ m ∈ 0 … y → y cyclShift m cyclShift y − m = y cyclShift m + y - m
25 nn0cn ⊢ m ∈ ℕ 0 → m ∈ ℂ
26 nn0cn ⊢ y ∈ ℕ 0 → y ∈ ℂ
27 25 26 anim12i ⊢ m ∈ ℕ 0 ∧ y ∈ ℕ 0 → m ∈ ℂ ∧ y ∈ ℂ
28 27 3adant3 ⊢ m ∈ ℕ 0 ∧ y ∈ ℕ 0 ∧ m ≤ y → m ∈ ℂ ∧ y ∈ ℂ
29 13 28 sylbi ⊢ m ∈ 0 … y → m ∈ ℂ ∧ y ∈ ℂ
30 pncan3 ⊢ m ∈ ℂ ∧ y ∈ ℂ → m + y - m = y
31 29 30 syl ⊢ m ∈ 0 … y → m + y - m = y
32 31 adantl ⊢ φ ∧ m ∈ 0 … y → m + y - m = y
33 32 oveq2d ⊢ φ ∧ m ∈ 0 … y → y cyclShift m + y - m = y cyclShift y
34 cshwn ⊢ y ∈ Word V → y cyclShift y = y
35 1 34 syl ⊢ φ → y cyclShift y = y
36 35 adantr ⊢ φ ∧ m ∈ 0 … y → y cyclShift y = y
37 24 33 36 3eqtrrd ⊢ φ ∧ m ∈ 0 … y → y = y cyclShift m cyclShift y − m
38 37 adantrr ⊢ φ ∧ m ∈ 0 … y ∧ x = y cyclShift m → y = y cyclShift m cyclShift y − m
39 oveq1 ⊢ x = y cyclShift m → x cyclShift y − m = y cyclShift m cyclShift y − m
40 39 eqeq2d ⊢ x = y cyclShift m → y = x cyclShift y − m ↔ y = y cyclShift m cyclShift y − m
41 40 adantl ⊢ m ∈ 0 … y ∧ x = y cyclShift m → y = x cyclShift y − m ↔ y = y cyclShift m cyclShift y − m
42 41 adantl ⊢ φ ∧ m ∈ 0 … y ∧ x = y cyclShift m → y = x cyclShift y − m ↔ y = y cyclShift m cyclShift y − m
43 38 42 mpbird ⊢ φ ∧ m ∈ 0 … y ∧ x = y cyclShift m → y = x cyclShift y − m
44 oveq2 ⊢ n = y − m → x cyclShift n = x cyclShift y − m
45 44 rspceeqv ⊢ y − m ∈ 0 … x ∧ y = x cyclShift y − m → ∃ n ∈ 0 … x y = x cyclShift n
46 9 43 45 syl2anc ⊢ φ ∧ m ∈ 0 … y ∧ x = y cyclShift m → ∃ n ∈ 0 … x y = x cyclShift n
47 46 ex ⊢ φ → m ∈ 0 … y ∧ x = y cyclShift m → ∃ n ∈ 0 … x y = x cyclShift n