Proof of Theorem swrd2lsw
| Step | Hyp | Ref
| Expression |
| 1 | | simpl 482 |
. . . 4
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 < (♯‘𝑊)) → 𝑊 ∈ Word 𝑉) |
| 2 | | lencl 14571 |
. . . . 5
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈
ℕ0) |
| 3 | | 1z 12647 |
. . . . . . . . 9
⊢ 1 ∈
ℤ |
| 4 | | nn0z 12638 |
. . . . . . . . 9
⊢
((♯‘𝑊)
∈ ℕ0 → (♯‘𝑊) ∈ ℤ) |
| 5 | | zltp1le 12667 |
. . . . . . . . 9
⊢ ((1
∈ ℤ ∧ (♯‘𝑊) ∈ ℤ) → (1 <
(♯‘𝑊) ↔ (1
+ 1) ≤ (♯‘𝑊))) |
| 6 | 3, 4, 5 | sylancr 587 |
. . . . . . . 8
⊢
((♯‘𝑊)
∈ ℕ0 → (1 < (♯‘𝑊) ↔ (1 + 1) ≤ (♯‘𝑊))) |
| 7 | | 1p1e2 12391 |
. . . . . . . . . . 11
⊢ (1 + 1) =
2 |
| 8 | 7 | a1i 11 |
. . . . . . . . . 10
⊢
((♯‘𝑊)
∈ ℕ0 → (1 + 1) = 2) |
| 9 | 8 | breq1d 5153 |
. . . . . . . . 9
⊢
((♯‘𝑊)
∈ ℕ0 → ((1 + 1) ≤ (♯‘𝑊) ↔ 2 ≤
(♯‘𝑊))) |
| 10 | 9 | biimpd 229 |
. . . . . . . 8
⊢
((♯‘𝑊)
∈ ℕ0 → ((1 + 1) ≤ (♯‘𝑊) → 2 ≤
(♯‘𝑊))) |
| 11 | 6, 10 | sylbid 240 |
. . . . . . 7
⊢
((♯‘𝑊)
∈ ℕ0 → (1 < (♯‘𝑊) → 2 ≤ (♯‘𝑊))) |
| 12 | 11 | imp 406 |
. . . . . 6
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ 1 < (♯‘𝑊)) → 2 ≤ (♯‘𝑊)) |
| 13 | | 2nn0 12543 |
. . . . . . . . 9
⊢ 2 ∈
ℕ0 |
| 14 | 13 | jctl 523 |
. . . . . . . 8
⊢
((♯‘𝑊)
∈ ℕ0 → (2 ∈ ℕ0 ∧
(♯‘𝑊) ∈
ℕ0)) |
| 15 | 14 | adantr 480 |
. . . . . . 7
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ 1 < (♯‘𝑊)) → (2 ∈ ℕ0
∧ (♯‘𝑊)
∈ ℕ0)) |
| 16 | | nn0sub 12576 |
. . . . . . 7
⊢ ((2
∈ ℕ0 ∧ (♯‘𝑊) ∈ ℕ0) → (2 ≤
(♯‘𝑊) ↔
((♯‘𝑊) −
2) ∈ ℕ0)) |
| 17 | 15, 16 | syl 17 |
. . . . . 6
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ 1 < (♯‘𝑊)) → (2 ≤ (♯‘𝑊) ↔ ((♯‘𝑊) − 2) ∈
ℕ0)) |
| 18 | 12, 17 | mpbid 232 |
. . . . 5
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ 1 < (♯‘𝑊)) → ((♯‘𝑊) − 2) ∈
ℕ0) |
| 19 | 2, 18 | sylan 580 |
. . . 4
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 < (♯‘𝑊)) → ((♯‘𝑊) − 2) ∈
ℕ0) |
| 20 | | 0red 11264 |
. . . . . . . . . . . 12
⊢
((♯‘𝑊)
∈ ℤ → 0 ∈ ℝ) |
| 21 | | 1red 11262 |
. . . . . . . . . . . 12
⊢
((♯‘𝑊)
∈ ℤ → 1 ∈ ℝ) |
| 22 | | zre 12617 |
. . . . . . . . . . . 12
⊢
((♯‘𝑊)
∈ ℤ → (♯‘𝑊) ∈ ℝ) |
| 23 | 20, 21, 22 | 3jca 1129 |
. . . . . . . . . . 11
⊢
((♯‘𝑊)
∈ ℤ → (0 ∈ ℝ ∧ 1 ∈ ℝ ∧
(♯‘𝑊) ∈
ℝ)) |
| 24 | | 0lt1 11785 |
. . . . . . . . . . 11
⊢ 0 <
1 |
| 25 | | lttr 11337 |
. . . . . . . . . . . 12
⊢ ((0
∈ ℝ ∧ 1 ∈ ℝ ∧ (♯‘𝑊) ∈ ℝ) → ((0 < 1 ∧ 1
< (♯‘𝑊))
→ 0 < (♯‘𝑊))) |
| 26 | 25 | expd 415 |
. . . . . . . . . . 11
⊢ ((0
∈ ℝ ∧ 1 ∈ ℝ ∧ (♯‘𝑊) ∈ ℝ) → (0 < 1 → (1
< (♯‘𝑊)
→ 0 < (♯‘𝑊)))) |
| 27 | 23, 24, 26 | mpisyl 21 |
. . . . . . . . . 10
⊢
((♯‘𝑊)
∈ ℤ → (1 < (♯‘𝑊) → 0 < (♯‘𝑊))) |
| 28 | | elnnz 12623 |
. . . . . . . . . . 11
⊢
((♯‘𝑊)
∈ ℕ ↔ ((♯‘𝑊) ∈ ℤ ∧ 0 <
(♯‘𝑊))) |
| 29 | 28 | simplbi2 500 |
. . . . . . . . . 10
⊢
((♯‘𝑊)
∈ ℤ → (0 < (♯‘𝑊) → (♯‘𝑊) ∈ ℕ)) |
| 30 | 27, 29 | syld 47 |
. . . . . . . . 9
⊢
((♯‘𝑊)
∈ ℤ → (1 < (♯‘𝑊) → (♯‘𝑊) ∈ ℕ)) |
| 31 | 4, 30 | syl 17 |
. . . . . . . 8
⊢
((♯‘𝑊)
∈ ℕ0 → (1 < (♯‘𝑊) → (♯‘𝑊) ∈ ℕ)) |
| 32 | 31 | imp 406 |
. . . . . . 7
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ 1 < (♯‘𝑊)) → (♯‘𝑊) ∈ ℕ) |
| 33 | | fzo0end 13797 |
. . . . . . 7
⊢
((♯‘𝑊)
∈ ℕ → ((♯‘𝑊) − 1) ∈
(0..^(♯‘𝑊))) |
| 34 | 32, 33 | syl 17 |
. . . . . 6
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ 1 < (♯‘𝑊)) → ((♯‘𝑊) − 1) ∈
(0..^(♯‘𝑊))) |
| 35 | | nn0cn 12536 |
. . . . . . . . . . 11
⊢
((♯‘𝑊)
∈ ℕ0 → (♯‘𝑊) ∈ ℂ) |
| 36 | | 2cn 12341 |
. . . . . . . . . . . 12
⊢ 2 ∈
ℂ |
| 37 | 36 | a1i 11 |
. . . . . . . . . . 11
⊢
((♯‘𝑊)
∈ ℕ0 → 2 ∈ ℂ) |
| 38 | | 1cnd 11256 |
. . . . . . . . . . 11
⊢
((♯‘𝑊)
∈ ℕ0 → 1 ∈ ℂ) |
| 39 | 35, 37, 38 | 3jca 1129 |
. . . . . . . . . 10
⊢
((♯‘𝑊)
∈ ℕ0 → ((♯‘𝑊) ∈ ℂ ∧ 2 ∈ ℂ
∧ 1 ∈ ℂ)) |
| 40 | | 1e2m1 12393 |
. . . . . . . . . . . . 13
⊢ 1 = (2
− 1) |
| 41 | 40 | a1i 11 |
. . . . . . . . . . . 12
⊢
(((♯‘𝑊)
∈ ℂ ∧ 2 ∈ ℂ ∧ 1 ∈ ℂ) → 1 = (2
− 1)) |
| 42 | 41 | oveq2d 7447 |
. . . . . . . . . . 11
⊢
(((♯‘𝑊)
∈ ℂ ∧ 2 ∈ ℂ ∧ 1 ∈ ℂ) →
((♯‘𝑊) −
1) = ((♯‘𝑊)
− (2 − 1))) |
| 43 | | subsub 11539 |
. . . . . . . . . . 11
⊢
(((♯‘𝑊)
∈ ℂ ∧ 2 ∈ ℂ ∧ 1 ∈ ℂ) →
((♯‘𝑊) −
(2 − 1)) = (((♯‘𝑊) − 2) + 1)) |
| 44 | 42, 43 | eqtrd 2777 |
. . . . . . . . . 10
⊢
(((♯‘𝑊)
∈ ℂ ∧ 2 ∈ ℂ ∧ 1 ∈ ℂ) →
((♯‘𝑊) −
1) = (((♯‘𝑊)
− 2) + 1)) |
| 45 | 39, 44 | syl 17 |
. . . . . . . . 9
⊢
((♯‘𝑊)
∈ ℕ0 → ((♯‘𝑊) − 1) = (((♯‘𝑊) − 2) +
1)) |
| 46 | 45 | eqcomd 2743 |
. . . . . . . 8
⊢
((♯‘𝑊)
∈ ℕ0 → (((♯‘𝑊) − 2) + 1) = ((♯‘𝑊) − 1)) |
| 47 | 46 | eleq1d 2826 |
. . . . . . 7
⊢
((♯‘𝑊)
∈ ℕ0 → ((((♯‘𝑊) − 2) + 1) ∈
(0..^(♯‘𝑊))
↔ ((♯‘𝑊)
− 1) ∈ (0..^(♯‘𝑊)))) |
| 48 | 47 | adantr 480 |
. . . . . 6
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ 1 < (♯‘𝑊)) → ((((♯‘𝑊) − 2) + 1) ∈
(0..^(♯‘𝑊))
↔ ((♯‘𝑊)
− 1) ∈ (0..^(♯‘𝑊)))) |
| 49 | 34, 48 | mpbird 257 |
. . . . 5
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ 1 < (♯‘𝑊)) → (((♯‘𝑊) − 2) + 1) ∈
(0..^(♯‘𝑊))) |
| 50 | 2, 49 | sylan 580 |
. . . 4
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 < (♯‘𝑊)) → (((♯‘𝑊) − 2) + 1) ∈
(0..^(♯‘𝑊))) |
| 51 | 1, 19, 50 | 3jca 1129 |
. . 3
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 < (♯‘𝑊)) → (𝑊 ∈ Word 𝑉 ∧ ((♯‘𝑊) − 2) ∈ ℕ0
∧ (((♯‘𝑊)
− 2) + 1) ∈ (0..^(♯‘𝑊)))) |
| 52 | | swrds2 14979 |
. . 3
⊢ ((𝑊 ∈ Word 𝑉 ∧ ((♯‘𝑊) − 2) ∈ ℕ0
∧ (((♯‘𝑊)
− 2) + 1) ∈ (0..^(♯‘𝑊))) → (𝑊 substr 〈((♯‘𝑊) − 2),
(((♯‘𝑊) −
2) + 2)〉) = 〈“(𝑊‘((♯‘𝑊) − 2))(𝑊‘(((♯‘𝑊) − 2) +
1))”〉) |
| 53 | 51, 52 | syl 17 |
. 2
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 < (♯‘𝑊)) → (𝑊 substr 〈((♯‘𝑊) − 2),
(((♯‘𝑊) −
2) + 2)〉) = 〈“(𝑊‘((♯‘𝑊) − 2))(𝑊‘(((♯‘𝑊) − 2) +
1))”〉) |
| 54 | 35, 36 | jctir 520 |
. . . . . 6
⊢
((♯‘𝑊)
∈ ℕ0 → ((♯‘𝑊) ∈ ℂ ∧ 2 ∈
ℂ)) |
| 55 | | npcan 11517 |
. . . . . . 7
⊢
(((♯‘𝑊)
∈ ℂ ∧ 2 ∈ ℂ) → (((♯‘𝑊) − 2) + 2) =
(♯‘𝑊)) |
| 56 | 55 | eqcomd 2743 |
. . . . . 6
⊢
(((♯‘𝑊)
∈ ℂ ∧ 2 ∈ ℂ) → (♯‘𝑊) = (((♯‘𝑊) − 2) + 2)) |
| 57 | 2, 54, 56 | 3syl 18 |
. . . . 5
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) = (((♯‘𝑊) − 2) + 2)) |
| 58 | 57 | adantr 480 |
. . . 4
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 < (♯‘𝑊)) → (♯‘𝑊) = (((♯‘𝑊) − 2) +
2)) |
| 59 | 58 | opeq2d 4880 |
. . 3
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 < (♯‘𝑊)) →
〈((♯‘𝑊)
− 2), (♯‘𝑊)〉 = 〈((♯‘𝑊) − 2),
(((♯‘𝑊) −
2) + 2)〉) |
| 60 | 59 | oveq2d 7447 |
. 2
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 < (♯‘𝑊)) → (𝑊 substr 〈((♯‘𝑊) − 2),
(♯‘𝑊)〉) =
(𝑊 substr
〈((♯‘𝑊)
− 2), (((♯‘𝑊) − 2) + 2)〉)) |
| 61 | | eqidd 2738 |
. . 3
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 < (♯‘𝑊)) → (𝑊‘((♯‘𝑊) − 2)) = (𝑊‘((♯‘𝑊) − 2))) |
| 62 | | lsw 14602 |
. . . . 5
⊢ (𝑊 ∈ Word 𝑉 → (lastS‘𝑊) = (𝑊‘((♯‘𝑊) − 1))) |
| 63 | 39, 43 | syl 17 |
. . . . . . . . . 10
⊢
((♯‘𝑊)
∈ ℕ0 → ((♯‘𝑊) − (2 − 1)) =
(((♯‘𝑊) −
2) + 1)) |
| 64 | 63 | eqcomd 2743 |
. . . . . . . . 9
⊢
((♯‘𝑊)
∈ ℕ0 → (((♯‘𝑊) − 2) + 1) = ((♯‘𝑊) − (2 −
1))) |
| 65 | | 2m1e1 12392 |
. . . . . . . . . . 11
⊢ (2
− 1) = 1 |
| 66 | 65 | a1i 11 |
. . . . . . . . . 10
⊢
((♯‘𝑊)
∈ ℕ0 → (2 − 1) = 1) |
| 67 | 66 | oveq2d 7447 |
. . . . . . . . 9
⊢
((♯‘𝑊)
∈ ℕ0 → ((♯‘𝑊) − (2 − 1)) =
((♯‘𝑊) −
1)) |
| 68 | 64, 67 | eqtrd 2777 |
. . . . . . . 8
⊢
((♯‘𝑊)
∈ ℕ0 → (((♯‘𝑊) − 2) + 1) = ((♯‘𝑊) − 1)) |
| 69 | 2, 68 | syl 17 |
. . . . . . 7
⊢ (𝑊 ∈ Word 𝑉 → (((♯‘𝑊) − 2) + 1) = ((♯‘𝑊) − 1)) |
| 70 | 69 | eqcomd 2743 |
. . . . . 6
⊢ (𝑊 ∈ Word 𝑉 → ((♯‘𝑊) − 1) = (((♯‘𝑊) − 2) +
1)) |
| 71 | 70 | fveq2d 6910 |
. . . . 5
⊢ (𝑊 ∈ Word 𝑉 → (𝑊‘((♯‘𝑊) − 1)) = (𝑊‘(((♯‘𝑊) − 2) + 1))) |
| 72 | 62, 71 | eqtrd 2777 |
. . . 4
⊢ (𝑊 ∈ Word 𝑉 → (lastS‘𝑊) = (𝑊‘(((♯‘𝑊) − 2) + 1))) |
| 73 | 72 | adantr 480 |
. . 3
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 < (♯‘𝑊)) → (lastS‘𝑊) = (𝑊‘(((♯‘𝑊) − 2) + 1))) |
| 74 | 61, 73 | s2eqd 14902 |
. 2
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 < (♯‘𝑊)) → 〈“(𝑊‘((♯‘𝑊) − 2))(lastS‘𝑊)”〉 =
〈“(𝑊‘((♯‘𝑊) − 2))(𝑊‘(((♯‘𝑊) − 2) +
1))”〉) |
| 75 | 53, 60, 74 | 3eqtr4d 2787 |
1
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 < (♯‘𝑊)) → (𝑊 substr 〈((♯‘𝑊) − 2),
(♯‘𝑊)〉) =
〈“(𝑊‘((♯‘𝑊) − 2))(lastS‘𝑊)”〉) |