Proof of Theorem 2swrd1eqwrdeqOLD
Step | Hyp | Ref
| Expression |
1 | | lencl 13593 |
. . . . . . 7
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈
ℕ0) |
2 | | nn0z 11728 |
. . . . . . 7
⊢
((♯‘𝑊)
∈ ℕ0 → (♯‘𝑊) ∈ ℤ) |
3 | | elnnz 11714 |
. . . . . . . 8
⊢
((♯‘𝑊)
∈ ℕ ↔ ((♯‘𝑊) ∈ ℤ ∧ 0 <
(♯‘𝑊))) |
4 | 3 | simplbi2 496 |
. . . . . . 7
⊢
((♯‘𝑊)
∈ ℤ → (0 < (♯‘𝑊) → (♯‘𝑊) ∈ ℕ)) |
5 | 1, 2, 4 | 3syl 18 |
. . . . . 6
⊢ (𝑊 ∈ Word 𝑉 → (0 < (♯‘𝑊) → (♯‘𝑊) ∈
ℕ)) |
6 | 5 | a1d 25 |
. . . . 5
⊢ (𝑊 ∈ Word 𝑉 → (𝑈 ∈ Word 𝑉 → (0 < (♯‘𝑊) → (♯‘𝑊) ∈
ℕ))) |
7 | 6 | 3imp 1143 |
. . . 4
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) → (♯‘𝑊) ∈
ℕ) |
8 | | fzo0end 12855 |
. . . 4
⊢
((♯‘𝑊)
∈ ℕ → ((♯‘𝑊) − 1) ∈
(0..^(♯‘𝑊))) |
9 | 7, 8 | syl 17 |
. . 3
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) → ((♯‘𝑊) − 1) ∈
(0..^(♯‘𝑊))) |
10 | | 2swrdeqwrdeqOLD 13743 |
. . 3
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ ((♯‘𝑊) − 1) ∈
(0..^(♯‘𝑊)))
→ (𝑊 = 𝑈 ↔ ((♯‘𝑊) = (♯‘𝑈) ∧ ((𝑊 substr 〈0, ((♯‘𝑊) − 1)〉) = (𝑈 substr 〈0,
((♯‘𝑊) −
1)〉) ∧ (𝑊 substr
〈((♯‘𝑊)
− 1), (♯‘𝑊)〉) = (𝑈 substr 〈((♯‘𝑊) − 1),
(♯‘𝑊)〉))))) |
11 | 9, 10 | syld3an3 1534 |
. 2
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) → (𝑊 = 𝑈 ↔ ((♯‘𝑊) = (♯‘𝑈) ∧ ((𝑊 substr 〈0, ((♯‘𝑊) − 1)〉) = (𝑈 substr 〈0,
((♯‘𝑊) −
1)〉) ∧ (𝑊 substr
〈((♯‘𝑊)
− 1), (♯‘𝑊)〉) = (𝑈 substr 〈((♯‘𝑊) − 1),
(♯‘𝑊)〉))))) |
12 | | hashneq0 13445 |
. . . . . . . . . . 11
⊢ (𝑊 ∈ Word 𝑉 → (0 < (♯‘𝑊) ↔ 𝑊 ≠ ∅)) |
13 | 12 | biimpd 221 |
. . . . . . . . . 10
⊢ (𝑊 ∈ Word 𝑉 → (0 < (♯‘𝑊) → 𝑊 ≠ ∅)) |
14 | 13 | imdistani 566 |
. . . . . . . . 9
⊢ ((𝑊 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) → (𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅)) |
15 | 14 | 3adant2 1167 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) → (𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅)) |
16 | 15 | adantr 474 |
. . . . . . 7
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ∧ (♯‘𝑊) = (♯‘𝑈)) → (𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅)) |
17 | | swrdlsw 13742 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → (𝑊 substr 〈((♯‘𝑊) − 1),
(♯‘𝑊)〉) =
〈“(lastS‘𝑊)”〉) |
18 | 16, 17 | syl 17 |
. . . . . 6
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ∧ (♯‘𝑊) = (♯‘𝑈)) → (𝑊 substr 〈((♯‘𝑊) − 1),
(♯‘𝑊)〉) =
〈“(lastS‘𝑊)”〉) |
19 | | breq2 4877 |
. . . . . . . . . 10
⊢
((♯‘𝑊) =
(♯‘𝑈) → (0
< (♯‘𝑊)
↔ 0 < (♯‘𝑈))) |
20 | 19 | 3anbi3d 1572 |
. . . . . . . . 9
⊢
((♯‘𝑊) =
(♯‘𝑈) →
((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ↔ (𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑈)))) |
21 | | hashneq0 13445 |
. . . . . . . . . . . . 13
⊢ (𝑈 ∈ Word 𝑉 → (0 < (♯‘𝑈) ↔ 𝑈 ≠ ∅)) |
22 | 21 | biimpd 221 |
. . . . . . . . . . . 12
⊢ (𝑈 ∈ Word 𝑉 → (0 < (♯‘𝑈) → 𝑈 ≠ ∅)) |
23 | 22 | imdistani 566 |
. . . . . . . . . . 11
⊢ ((𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑈)) → (𝑈 ∈ Word 𝑉 ∧ 𝑈 ≠ ∅)) |
24 | 23 | 3adant1 1166 |
. . . . . . . . . 10
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑈)) → (𝑈 ∈ Word 𝑉 ∧ 𝑈 ≠ ∅)) |
25 | | swrdlsw 13742 |
. . . . . . . . . 10
⊢ ((𝑈 ∈ Word 𝑉 ∧ 𝑈 ≠ ∅) → (𝑈 substr 〈((♯‘𝑈) − 1),
(♯‘𝑈)〉) =
〈“(lastS‘𝑈)”〉) |
26 | 24, 25 | syl 17 |
. . . . . . . . 9
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑈)) → (𝑈 substr 〈((♯‘𝑈) − 1),
(♯‘𝑈)〉) =
〈“(lastS‘𝑈)”〉) |
27 | 20, 26 | syl6bi 245 |
. . . . . . . 8
⊢
((♯‘𝑊) =
(♯‘𝑈) →
((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) → (𝑈 substr 〈((♯‘𝑈) − 1),
(♯‘𝑈)〉) =
〈“(lastS‘𝑈)”〉)) |
28 | 27 | impcom 398 |
. . . . . . 7
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ∧ (♯‘𝑊) = (♯‘𝑈)) → (𝑈 substr 〈((♯‘𝑈) − 1),
(♯‘𝑈)〉) =
〈“(lastS‘𝑈)”〉) |
29 | | oveq1 6912 |
. . . . . . . . . . 11
⊢
((♯‘𝑊) =
(♯‘𝑈) →
((♯‘𝑊) −
1) = ((♯‘𝑈)
− 1)) |
30 | | id 22 |
. . . . . . . . . . 11
⊢
((♯‘𝑊) =
(♯‘𝑈) →
(♯‘𝑊) =
(♯‘𝑈)) |
31 | 29, 30 | opeq12d 4631 |
. . . . . . . . . 10
⊢
((♯‘𝑊) =
(♯‘𝑈) →
〈((♯‘𝑊)
− 1), (♯‘𝑊)〉 = 〈((♯‘𝑈) − 1),
(♯‘𝑈)〉) |
32 | 31 | oveq2d 6921 |
. . . . . . . . 9
⊢
((♯‘𝑊) =
(♯‘𝑈) →
(𝑈 substr
〈((♯‘𝑊)
− 1), (♯‘𝑊)〉) = (𝑈 substr 〈((♯‘𝑈) − 1),
(♯‘𝑈)〉)) |
33 | 32 | eqeq1d 2827 |
. . . . . . . 8
⊢
((♯‘𝑊) =
(♯‘𝑈) →
((𝑈 substr
〈((♯‘𝑊)
− 1), (♯‘𝑊)〉) = 〈“(lastS‘𝑈)”〉 ↔ (𝑈 substr
〈((♯‘𝑈)
− 1), (♯‘𝑈)〉) = 〈“(lastS‘𝑈)”〉)) |
34 | 33 | adantl 475 |
. . . . . . 7
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ∧ (♯‘𝑊) = (♯‘𝑈)) → ((𝑈 substr 〈((♯‘𝑊) − 1),
(♯‘𝑊)〉) =
〈“(lastS‘𝑈)”〉 ↔ (𝑈 substr 〈((♯‘𝑈) − 1),
(♯‘𝑈)〉) =
〈“(lastS‘𝑈)”〉)) |
35 | 28, 34 | mpbird 249 |
. . . . . 6
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ∧ (♯‘𝑊) = (♯‘𝑈)) → (𝑈 substr 〈((♯‘𝑊) − 1),
(♯‘𝑊)〉) =
〈“(lastS‘𝑈)”〉) |
36 | 18, 35 | eqeq12d 2840 |
. . . . 5
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ∧ (♯‘𝑊) = (♯‘𝑈)) → ((𝑊 substr 〈((♯‘𝑊) − 1),
(♯‘𝑊)〉) =
(𝑈 substr
〈((♯‘𝑊)
− 1), (♯‘𝑊)〉) ↔
〈“(lastS‘𝑊)”〉 =
〈“(lastS‘𝑈)”〉)) |
37 | | hashgt0n0 13446 |
. . . . . . . . 9
⊢ ((𝑊 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) → 𝑊 ≠ ∅) |
38 | | lswcl 13628 |
. . . . . . . . 9
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → (lastS‘𝑊) ∈ 𝑉) |
39 | 37, 38 | syldan 587 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) → (lastS‘𝑊) ∈ 𝑉) |
40 | 39 | 3adant2 1167 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) → (lastS‘𝑊) ∈ 𝑉) |
41 | 40 | adantr 474 |
. . . . . 6
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ∧ (♯‘𝑊) = (♯‘𝑈)) → (lastS‘𝑊) ∈ 𝑉) |
42 | | hashgt0n0 13446 |
. . . . . . . . . 10
⊢ ((𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑈)) → 𝑈 ≠ ∅) |
43 | | lswcl 13628 |
. . . . . . . . . 10
⊢ ((𝑈 ∈ Word 𝑉 ∧ 𝑈 ≠ ∅) → (lastS‘𝑈) ∈ 𝑉) |
44 | 42, 43 | syldan 587 |
. . . . . . . . 9
⊢ ((𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑈)) → (lastS‘𝑈) ∈ 𝑉) |
45 | 44 | 3adant1 1166 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑈)) → (lastS‘𝑈) ∈ 𝑉) |
46 | 20, 45 | syl6bi 245 |
. . . . . . 7
⊢
((♯‘𝑊) =
(♯‘𝑈) →
((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) → (lastS‘𝑈) ∈ 𝑉)) |
47 | 46 | impcom 398 |
. . . . . 6
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ∧ (♯‘𝑊) = (♯‘𝑈)) → (lastS‘𝑈) ∈ 𝑉) |
48 | | s111 13675 |
. . . . . 6
⊢
(((lastS‘𝑊)
∈ 𝑉 ∧
(lastS‘𝑈) ∈
𝑉) →
(〈“(lastS‘𝑊)”〉 =
〈“(lastS‘𝑈)”〉 ↔ (lastS‘𝑊) = (lastS‘𝑈))) |
49 | 41, 47, 48 | syl2anc 581 |
. . . . 5
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ∧ (♯‘𝑊) = (♯‘𝑈)) →
(〈“(lastS‘𝑊)”〉 =
〈“(lastS‘𝑈)”〉 ↔ (lastS‘𝑊) = (lastS‘𝑈))) |
50 | 36, 49 | bitrd 271 |
. . . 4
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ∧ (♯‘𝑊) = (♯‘𝑈)) → ((𝑊 substr 〈((♯‘𝑊) − 1),
(♯‘𝑊)〉) =
(𝑈 substr
〈((♯‘𝑊)
− 1), (♯‘𝑊)〉) ↔ (lastS‘𝑊) = (lastS‘𝑈))) |
51 | 50 | anbi2d 624 |
. . 3
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ∧ (♯‘𝑊) = (♯‘𝑈)) → (((𝑊 substr 〈0, ((♯‘𝑊) − 1)〉) = (𝑈 substr 〈0,
((♯‘𝑊) −
1)〉) ∧ (𝑊 substr
〈((♯‘𝑊)
− 1), (♯‘𝑊)〉) = (𝑈 substr 〈((♯‘𝑊) − 1),
(♯‘𝑊)〉))
↔ ((𝑊 substr 〈0,
((♯‘𝑊) −
1)〉) = (𝑈 substr
〈0, ((♯‘𝑊)
− 1)〉) ∧ (lastS‘𝑊) = (lastS‘𝑈)))) |
52 | 51 | pm5.32da 576 |
. 2
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) → (((♯‘𝑊) = (♯‘𝑈) ∧ ((𝑊 substr 〈0, ((♯‘𝑊) − 1)〉) = (𝑈 substr 〈0,
((♯‘𝑊) −
1)〉) ∧ (𝑊 substr
〈((♯‘𝑊)
− 1), (♯‘𝑊)〉) = (𝑈 substr 〈((♯‘𝑊) − 1),
(♯‘𝑊)〉)))
↔ ((♯‘𝑊) =
(♯‘𝑈) ∧
((𝑊 substr 〈0,
((♯‘𝑊) −
1)〉) = (𝑈 substr
〈0, ((♯‘𝑊)
− 1)〉) ∧ (lastS‘𝑊) = (lastS‘𝑈))))) |
53 | 11, 52 | bitrd 271 |
1
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) → (𝑊 = 𝑈 ↔ ((♯‘𝑊) = (♯‘𝑈) ∧ ((𝑊 substr 〈0, ((♯‘𝑊) − 1)〉) = (𝑈 substr 〈0,
((♯‘𝑊) −
1)〉) ∧ (lastS‘𝑊) = (lastS‘𝑈))))) |