Proof of Theorem pfxwrdsymbg
| Step | Hyp | Ref
| Expression |
| 1 | | pfxval 11130 |
. 2
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) → (𝑆 prefix 𝐿) = (𝑆 substr 〈0, 𝐿〉)) |
| 2 | | simpll 527 |
. . . 4
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧ 𝐿 ≤ (♯‘𝑆)) → 𝑆 ∈ Word 𝐴) |
| 3 | | simplr 528 |
. . . . . 6
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧ 𝐿 ≤ (♯‘𝑆)) → 𝐿 ∈
ℕ0) |
| 4 | | elnn0uz 9688 |
. . . . . 6
⊢ (𝐿 ∈ ℕ0
↔ 𝐿 ∈
(ℤ≥‘0)) |
| 5 | 3, 4 | sylib 122 |
. . . . 5
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧ 𝐿 ≤ (♯‘𝑆)) → 𝐿 ∈
(ℤ≥‘0)) |
| 6 | | eluzfz1 10155 |
. . . . 5
⊢ (𝐿 ∈
(ℤ≥‘0) → 0 ∈ (0...𝐿)) |
| 7 | 5, 6 | syl 14 |
. . . 4
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧ 𝐿 ≤ (♯‘𝑆)) → 0 ∈ (0...𝐿)) |
| 8 | | simpr 110 |
. . . . 5
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧ 𝐿 ≤ (♯‘𝑆)) → 𝐿 ≤ (♯‘𝑆)) |
| 9 | | lencl 11000 |
. . . . . . . 8
⊢ (𝑆 ∈ Word 𝐴 → (♯‘𝑆) ∈
ℕ0) |
| 10 | 9 | nn0zd 9495 |
. . . . . . 7
⊢ (𝑆 ∈ Word 𝐴 → (♯‘𝑆) ∈ ℤ) |
| 11 | 2, 10 | syl 14 |
. . . . . 6
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧ 𝐿 ≤ (♯‘𝑆)) → (♯‘𝑆) ∈
ℤ) |
| 12 | | elfz5 10141 |
. . . . . 6
⊢ ((𝐿 ∈
(ℤ≥‘0) ∧ (♯‘𝑆) ∈ ℤ) → (𝐿 ∈ (0...(♯‘𝑆)) ↔ 𝐿 ≤ (♯‘𝑆))) |
| 13 | 5, 11, 12 | syl2anc 411 |
. . . . 5
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧ 𝐿 ≤ (♯‘𝑆)) → (𝐿 ∈ (0...(♯‘𝑆)) ↔ 𝐿 ≤ (♯‘𝑆))) |
| 14 | 8, 13 | mpbird 167 |
. . . 4
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧ 𝐿 ≤ (♯‘𝑆)) → 𝐿 ∈ (0...(♯‘𝑆))) |
| 15 | | swrdwrdsymbg 11120 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐴 ∧ 0 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → (𝑆 substr 〈0, 𝐿〉) ∈ Word (𝑆 “ (0..^𝐿))) |
| 16 | 2, 7, 14, 15 | syl3anc 1250 |
. . 3
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧ 𝐿 ≤ (♯‘𝑆)) → (𝑆 substr 〈0, 𝐿〉) ∈ Word (𝑆 “ (0..^𝐿))) |
| 17 | | 3mix3 1171 |
. . . . . 6
⊢
((♯‘𝑆)
< 𝐿 → (0 < 0
∨ 𝐿 ≤ 0 ∨
(♯‘𝑆) <
𝐿)) |
| 18 | 17 | adantl 277 |
. . . . 5
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧
(♯‘𝑆) <
𝐿) → (0 < 0 ∨
𝐿 ≤ 0 ∨
(♯‘𝑆) <
𝐿)) |
| 19 | | simpll 527 |
. . . . . 6
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧
(♯‘𝑆) <
𝐿) → 𝑆 ∈ Word 𝐴) |
| 20 | | 0zd 9386 |
. . . . . 6
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧
(♯‘𝑆) <
𝐿) → 0 ∈
ℤ) |
| 21 | | nn0z 9394 |
. . . . . . . 8
⊢ (𝐿 ∈ ℕ0
→ 𝐿 ∈
ℤ) |
| 22 | 21 | adantl 277 |
. . . . . . 7
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) → 𝐿 ∈
ℤ) |
| 23 | 22 | adantr 276 |
. . . . . 6
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧
(♯‘𝑆) <
𝐿) → 𝐿 ∈ ℤ) |
| 24 | | swrdnd 11115 |
. . . . . 6
⊢ ((𝑆 ∈ Word 𝐴 ∧ 0 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((0 <
0 ∨ 𝐿 ≤ 0 ∨
(♯‘𝑆) <
𝐿) → (𝑆 substr 〈0, 𝐿〉) =
∅)) |
| 25 | 19, 20, 23, 24 | syl3anc 1250 |
. . . . 5
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧
(♯‘𝑆) <
𝐿) → ((0 < 0 ∨
𝐿 ≤ 0 ∨
(♯‘𝑆) <
𝐿) → (𝑆 substr 〈0, 𝐿〉) =
∅)) |
| 26 | 18, 25 | mpd 13 |
. . . 4
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧
(♯‘𝑆) <
𝐿) → (𝑆 substr 〈0, 𝐿〉) =
∅) |
| 27 | | wrd0 11021 |
. . . 4
⊢ ∅
∈ Word (𝑆 “
(0..^𝐿)) |
| 28 | 26, 27 | eqeltrdi 2296 |
. . 3
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) ∧
(♯‘𝑆) <
𝐿) → (𝑆 substr 〈0, 𝐿〉) ∈ Word (𝑆 “ (0..^𝐿))) |
| 29 | 10 | adantr 276 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) →
(♯‘𝑆) ∈
ℤ) |
| 30 | | zlelttric 9419 |
. . . 4
⊢ ((𝐿 ∈ ℤ ∧
(♯‘𝑆) ∈
ℤ) → (𝐿 ≤
(♯‘𝑆) ∨
(♯‘𝑆) <
𝐿)) |
| 31 | 22, 29, 30 | syl2anc 411 |
. . 3
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) → (𝐿 ≤ (♯‘𝑆) ∨ (♯‘𝑆) < 𝐿)) |
| 32 | 16, 28, 31 | mpjaodan 800 |
. 2
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) → (𝑆 substr 〈0, 𝐿〉) ∈ Word (𝑆 “ (0..^𝐿))) |
| 33 | 1, 32 | eqeltrd 2282 |
1
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐿 ∈ ℕ0) → (𝑆 prefix 𝐿) ∈ Word (𝑆 “ (0..^𝐿))) |