| Step | Hyp | Ref
| Expression |
| 1 | | oveq2 5975 |
. . . . . 6
⊢
((♯‘𝐴) =
0 → (0...(♯‘𝐴)) = (0...0)) |
| 2 | 1 | eleq2d 2277 |
. . . . 5
⊢
((♯‘𝐴) =
0 → (𝑁 ∈
(0...(♯‘𝐴))
↔ 𝑁 ∈
(0...0))) |
| 3 | 2 | adantl 277 |
. . . 4
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) = 0) → (𝑁 ∈ (0...(♯‘𝐴)) ↔ 𝑁 ∈ (0...0))) |
| 4 | | elfz1eq 10192 |
. . . . . . 7
⊢ (𝑁 ∈ (0...0) → 𝑁 = 0) |
| 5 | | elfz1eq 10192 |
. . . . . . . . . . 11
⊢ (𝑀 ∈ (0...0) → 𝑀 = 0) |
| 6 | | ccatcl 11087 |
. . . . . . . . . . . . . . 15
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → (𝐴 ++ 𝐵) ∈ Word 𝑉) |
| 7 | | 0z 9418 |
. . . . . . . . . . . . . . 15
⊢ 0 ∈
ℤ |
| 8 | | swrd00g 11140 |
. . . . . . . . . . . . . . 15
⊢ (((𝐴 ++ 𝐵) ∈ Word 𝑉 ∧ 0 ∈ ℤ) → ((𝐴 ++ 𝐵) substr 〈0, 0〉) =
∅) |
| 9 | 6, 7, 8 | sylancl 413 |
. . . . . . . . . . . . . 14
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → ((𝐴 ++ 𝐵) substr 〈0, 0〉) =
∅) |
| 10 | | simpl 109 |
. . . . . . . . . . . . . . 15
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → 𝐴 ∈ Word 𝑉) |
| 11 | | swrd00g 11140 |
. . . . . . . . . . . . . . 15
⊢ ((𝐴 ∈ Word 𝑉 ∧ 0 ∈ ℤ) → (𝐴 substr 〈0, 0〉) =
∅) |
| 12 | 10, 7, 11 | sylancl 413 |
. . . . . . . . . . . . . 14
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → (𝐴 substr 〈0, 0〉) =
∅) |
| 13 | 9, 12 | eqtr4d 2243 |
. . . . . . . . . . . . 13
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → ((𝐴 ++ 𝐵) substr 〈0, 0〉) = (𝐴 substr 〈0,
0〉)) |
| 14 | 13 | adantr 276 |
. . . . . . . . . . . 12
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑀 = 0) → ((𝐴 ++ 𝐵) substr 〈0, 0〉) = (𝐴 substr 〈0,
0〉)) |
| 15 | | opeq1 3833 |
. . . . . . . . . . . . . 14
⊢ (𝑀 = 0 → 〈𝑀, 0〉 = 〈0,
0〉) |
| 16 | 15 | oveq2d 5983 |
. . . . . . . . . . . . 13
⊢ (𝑀 = 0 → ((𝐴 ++ 𝐵) substr 〈𝑀, 0〉) = ((𝐴 ++ 𝐵) substr 〈0, 0〉)) |
| 17 | 16 | adantl 277 |
. . . . . . . . . . . 12
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑀 = 0) → ((𝐴 ++ 𝐵) substr 〈𝑀, 0〉) = ((𝐴 ++ 𝐵) substr 〈0, 0〉)) |
| 18 | 15 | oveq2d 5983 |
. . . . . . . . . . . . 13
⊢ (𝑀 = 0 → (𝐴 substr 〈𝑀, 0〉) = (𝐴 substr 〈0, 0〉)) |
| 19 | 18 | adantl 277 |
. . . . . . . . . . . 12
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑀 = 0) → (𝐴 substr 〈𝑀, 0〉) = (𝐴 substr 〈0, 0〉)) |
| 20 | 14, 17, 19 | 3eqtr4d 2250 |
. . . . . . . . . . 11
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑀 = 0) → ((𝐴 ++ 𝐵) substr 〈𝑀, 0〉) = (𝐴 substr 〈𝑀, 0〉)) |
| 21 | 5, 20 | sylan2 286 |
. . . . . . . . . 10
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...0)) → ((𝐴 ++ 𝐵) substr 〈𝑀, 0〉) = (𝐴 substr 〈𝑀, 0〉)) |
| 22 | 21 | ex 115 |
. . . . . . . . 9
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → (𝑀 ∈ (0...0) → ((𝐴 ++ 𝐵) substr 〈𝑀, 0〉) = (𝐴 substr 〈𝑀, 0〉))) |
| 23 | 22 | adantr 276 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑁 = 0) → (𝑀 ∈ (0...0) → ((𝐴 ++ 𝐵) substr 〈𝑀, 0〉) = (𝐴 substr 〈𝑀, 0〉))) |
| 24 | | oveq2 5975 |
. . . . . . . . . . 11
⊢ (𝑁 = 0 → (0...𝑁) = (0...0)) |
| 25 | 24 | eleq2d 2277 |
. . . . . . . . . 10
⊢ (𝑁 = 0 → (𝑀 ∈ (0...𝑁) ↔ 𝑀 ∈ (0...0))) |
| 26 | | opeq2 3834 |
. . . . . . . . . . . 12
⊢ (𝑁 = 0 → 〈𝑀, 𝑁〉 = 〈𝑀, 0〉) |
| 27 | 26 | oveq2d 5983 |
. . . . . . . . . . 11
⊢ (𝑁 = 0 → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = ((𝐴 ++ 𝐵) substr 〈𝑀, 0〉)) |
| 28 | 26 | oveq2d 5983 |
. . . . . . . . . . 11
⊢ (𝑁 = 0 → (𝐴 substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 0〉)) |
| 29 | 27, 28 | eqeq12d 2222 |
. . . . . . . . . 10
⊢ (𝑁 = 0 → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 𝑁〉) ↔ ((𝐴 ++ 𝐵) substr 〈𝑀, 0〉) = (𝐴 substr 〈𝑀, 0〉))) |
| 30 | 25, 29 | imbi12d 234 |
. . . . . . . . 9
⊢ (𝑁 = 0 → ((𝑀 ∈ (0...𝑁) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 𝑁〉)) ↔ (𝑀 ∈ (0...0) → ((𝐴 ++ 𝐵) substr 〈𝑀, 0〉) = (𝐴 substr 〈𝑀, 0〉)))) |
| 31 | 30 | adantl 277 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑁 = 0) → ((𝑀 ∈ (0...𝑁) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 𝑁〉)) ↔ (𝑀 ∈ (0...0) → ((𝐴 ++ 𝐵) substr 〈𝑀, 0〉) = (𝐴 substr 〈𝑀, 0〉)))) |
| 32 | 23, 31 | mpbird 167 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑁 = 0) → (𝑀 ∈ (0...𝑁) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 𝑁〉))) |
| 33 | 4, 32 | sylan2 286 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑁 ∈ (0...0)) → (𝑀 ∈ (0...𝑁) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 𝑁〉))) |
| 34 | 33 | ex 115 |
. . . . 5
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → (𝑁 ∈ (0...0) → (𝑀 ∈ (0...𝑁) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 𝑁〉)))) |
| 35 | 34 | adantr 276 |
. . . 4
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) = 0) → (𝑁 ∈ (0...0) → (𝑀 ∈ (0...𝑁) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 𝑁〉)))) |
| 36 | 3, 35 | sylbid 150 |
. . 3
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) = 0) → (𝑁 ∈ (0...(♯‘𝐴)) → (𝑀 ∈ (0...𝑁) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 𝑁〉)))) |
| 37 | 36 | impcomd 255 |
. 2
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) = 0) → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 𝑁〉))) |
| 38 | 6 | ad2antrr 488 |
. . . . 5
⊢ ((((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) → (𝐴 ++ 𝐵) ∈ Word 𝑉) |
| 39 | | simprl 529 |
. . . . 5
⊢ ((((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) → 𝑀 ∈ (0...𝑁)) |
| 40 | | elfzelfzccat 11094 |
. . . . . . 7
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → (𝑁 ∈ (0...(♯‘𝐴)) → 𝑁 ∈ (0...(♯‘(𝐴 ++ 𝐵))))) |
| 41 | 40 | imp 124 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑁 ∈ (0...(♯‘𝐴))) → 𝑁 ∈ (0...(♯‘(𝐴 ++ 𝐵)))) |
| 42 | 41 | ad2ant2rl 511 |
. . . . 5
⊢ ((((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) → 𝑁 ∈ (0...(♯‘(𝐴 ++ 𝐵)))) |
| 43 | | swrdvalfn 11147 |
. . . . 5
⊢ (((𝐴 ++ 𝐵) ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘(𝐴 ++ 𝐵)))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) Fn (0..^(𝑁 − 𝑀))) |
| 44 | 38, 39, 42, 43 | syl3anc 1250 |
. . . 4
⊢ ((((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) Fn (0..^(𝑁 − 𝑀))) |
| 45 | | 3anass 985 |
. . . . . . . 8
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴))) ↔ (𝐴 ∈ Word 𝑉 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴))))) |
| 46 | 45 | simplbi2 385 |
. . . . . . 7
⊢ (𝐴 ∈ Word 𝑉 → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴))) → (𝐴 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴))))) |
| 47 | 46 | ad2antrr 488 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴))) → (𝐴 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴))))) |
| 48 | 47 | imp 124 |
. . . . 5
⊢ ((((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) → (𝐴 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) |
| 49 | | swrdvalfn 11147 |
. . . . 5
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴))) → (𝐴 substr 〈𝑀, 𝑁〉) Fn (0..^(𝑁 − 𝑀))) |
| 50 | 48, 49 | syl 14 |
. . . 4
⊢ ((((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) → (𝐴 substr 〈𝑀, 𝑁〉) Fn (0..^(𝑁 − 𝑀))) |
| 51 | | simp-4l 541 |
. . . . . 6
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → 𝐴 ∈ Word 𝑉) |
| 52 | | simp-4r 542 |
. . . . . 6
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → 𝐵 ∈ Word 𝑉) |
| 53 | | elfznn0 10271 |
. . . . . . . . . 10
⊢ (𝑀 ∈ (0...𝑁) → 𝑀 ∈
ℕ0) |
| 54 | | nn0addcl 9365 |
. . . . . . . . . . 11
⊢ ((𝑘 ∈ ℕ0
∧ 𝑀 ∈
ℕ0) → (𝑘 + 𝑀) ∈
ℕ0) |
| 55 | 54 | expcom 116 |
. . . . . . . . . 10
⊢ (𝑀 ∈ ℕ0
→ (𝑘 ∈
ℕ0 → (𝑘 + 𝑀) ∈
ℕ0)) |
| 56 | 53, 55 | syl 14 |
. . . . . . . . 9
⊢ (𝑀 ∈ (0...𝑁) → (𝑘 ∈ ℕ0 → (𝑘 + 𝑀) ∈
ℕ0)) |
| 57 | 56 | ad2antrl 490 |
. . . . . . . 8
⊢ ((((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) → (𝑘 ∈ ℕ0 → (𝑘 + 𝑀) ∈
ℕ0)) |
| 58 | | elfzonn0 10347 |
. . . . . . . 8
⊢ (𝑘 ∈ (0..^(𝑁 − 𝑀)) → 𝑘 ∈ ℕ0) |
| 59 | 57, 58 | impel 280 |
. . . . . . 7
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → (𝑘 + 𝑀) ∈
ℕ0) |
| 60 | | lencl 11035 |
. . . . . . . . . . 11
⊢ (𝐴 ∈ Word 𝑉 → (♯‘𝐴) ∈
ℕ0) |
| 61 | | elnnne0 9344 |
. . . . . . . . . . . 12
⊢
((♯‘𝐴)
∈ ℕ ↔ ((♯‘𝐴) ∈ ℕ0 ∧
(♯‘𝐴) ≠
0)) |
| 62 | 61 | simplbi2 385 |
. . . . . . . . . . 11
⊢
((♯‘𝐴)
∈ ℕ0 → ((♯‘𝐴) ≠ 0 → (♯‘𝐴) ∈
ℕ)) |
| 63 | 60, 62 | syl 14 |
. . . . . . . . . 10
⊢ (𝐴 ∈ Word 𝑉 → ((♯‘𝐴) ≠ 0 → (♯‘𝐴) ∈
ℕ)) |
| 64 | 63 | adantr 276 |
. . . . . . . . 9
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → ((♯‘𝐴) ≠ 0 → (♯‘𝐴) ∈
ℕ)) |
| 65 | 64 | imp 124 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) → (♯‘𝐴) ∈
ℕ) |
| 66 | 65 | ad2antrr 488 |
. . . . . . 7
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → (♯‘𝐴) ∈ ℕ) |
| 67 | | elfzo0 10343 |
. . . . . . . . 9
⊢ (𝑘 ∈ (0..^(𝑁 − 𝑀)) ↔ (𝑘 ∈ ℕ0 ∧ (𝑁 − 𝑀) ∈ ℕ ∧ 𝑘 < (𝑁 − 𝑀))) |
| 68 | | elfz2nn0 10269 |
. . . . . . . . . . . 12
⊢ (𝑁 ∈
(0...(♯‘𝐴))
↔ (𝑁 ∈
ℕ0 ∧ (♯‘𝐴) ∈ ℕ0 ∧ 𝑁 ≤ (♯‘𝐴))) |
| 69 | | nn0re 9339 |
. . . . . . . . . . . . . . . . . . . . . 22
⊢ (𝑘 ∈ ℕ0
→ 𝑘 ∈
ℝ) |
| 70 | 69 | ad2antrl 490 |
. . . . . . . . . . . . . . . . . . . . 21
⊢ (((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0) ∧ (𝑘 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0))
→ 𝑘 ∈
ℝ) |
| 71 | | nn0re 9339 |
. . . . . . . . . . . . . . . . . . . . . 22
⊢ (𝑀 ∈ ℕ0
→ 𝑀 ∈
ℝ) |
| 72 | 71 | ad2antll 491 |
. . . . . . . . . . . . . . . . . . . . 21
⊢ (((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0) ∧ (𝑘 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0))
→ 𝑀 ∈
ℝ) |
| 73 | | nn0re 9339 |
. . . . . . . . . . . . . . . . . . . . . 22
⊢ (𝑁 ∈ ℕ0
→ 𝑁 ∈
ℝ) |
| 74 | 73 | ad2antrr 488 |
. . . . . . . . . . . . . . . . . . . . 21
⊢ (((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0) ∧ (𝑘 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0))
→ 𝑁 ∈
ℝ) |
| 75 | 70, 72, 74 | ltaddsubd 8653 |
. . . . . . . . . . . . . . . . . . . 20
⊢ (((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0) ∧ (𝑘 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0))
→ ((𝑘 + 𝑀) < 𝑁 ↔ 𝑘 < (𝑁 − 𝑀))) |
| 76 | | nn0readdcl 9389 |
. . . . . . . . . . . . . . . . . . . . . . 23
⊢ ((𝑘 ∈ ℕ0
∧ 𝑀 ∈
ℕ0) → (𝑘 + 𝑀) ∈ ℝ) |
| 77 | 76 | adantl 277 |
. . . . . . . . . . . . . . . . . . . . . 22
⊢ (((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0) ∧ (𝑘 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0))
→ (𝑘 + 𝑀) ∈
ℝ) |
| 78 | | nn0re 9339 |
. . . . . . . . . . . . . . . . . . . . . . 23
⊢
((♯‘𝐴)
∈ ℕ0 → (♯‘𝐴) ∈ ℝ) |
| 79 | 78 | ad2antlr 489 |
. . . . . . . . . . . . . . . . . . . . . 22
⊢ (((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0) ∧ (𝑘 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0))
→ (♯‘𝐴)
∈ ℝ) |
| 80 | | ltletr 8197 |
. . . . . . . . . . . . . . . . . . . . . 22
⊢ (((𝑘 + 𝑀) ∈ ℝ ∧ 𝑁 ∈ ℝ ∧ (♯‘𝐴) ∈ ℝ) →
(((𝑘 + 𝑀) < 𝑁 ∧ 𝑁 ≤ (♯‘𝐴)) → (𝑘 + 𝑀) < (♯‘𝐴))) |
| 81 | 77, 74, 79, 80 | syl3anc 1250 |
. . . . . . . . . . . . . . . . . . . . 21
⊢ (((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0) ∧ (𝑘 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0))
→ (((𝑘 + 𝑀) < 𝑁 ∧ 𝑁 ≤ (♯‘𝐴)) → (𝑘 + 𝑀) < (♯‘𝐴))) |
| 82 | 81 | expd 258 |
. . . . . . . . . . . . . . . . . . . 20
⊢ (((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0) ∧ (𝑘 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0))
→ ((𝑘 + 𝑀) < 𝑁 → (𝑁 ≤ (♯‘𝐴) → (𝑘 + 𝑀) < (♯‘𝐴)))) |
| 83 | 75, 82 | sylbird 170 |
. . . . . . . . . . . . . . . . . . 19
⊢ (((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0) ∧ (𝑘 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0))
→ (𝑘 < (𝑁 − 𝑀) → (𝑁 ≤ (♯‘𝐴) → (𝑘 + 𝑀) < (♯‘𝐴)))) |
| 84 | 83 | ex 115 |
. . . . . . . . . . . . . . . . . 18
⊢ ((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0) → ((𝑘 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0)
→ (𝑘 < (𝑁 − 𝑀) → (𝑁 ≤ (♯‘𝐴) → (𝑘 + 𝑀) < (♯‘𝐴))))) |
| 85 | 84 | com24 87 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0) → (𝑁 ≤ (♯‘𝐴) → (𝑘 < (𝑁 − 𝑀) → ((𝑘 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0)
→ (𝑘 + 𝑀) < (♯‘𝐴))))) |
| 86 | 85 | 3impia 1203 |
. . . . . . . . . . . . . . . 16
⊢ ((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0 ∧ 𝑁 ≤ (♯‘𝐴)) → (𝑘 < (𝑁 − 𝑀) → ((𝑘 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0)
→ (𝑘 + 𝑀) < (♯‘𝐴)))) |
| 87 | 86 | com13 80 |
. . . . . . . . . . . . . . 15
⊢ ((𝑘 ∈ ℕ0
∧ 𝑀 ∈
ℕ0) → (𝑘 < (𝑁 − 𝑀) → ((𝑁 ∈ ℕ0 ∧
(♯‘𝐴) ∈
ℕ0 ∧ 𝑁
≤ (♯‘𝐴))
→ (𝑘 + 𝑀) < (♯‘𝐴)))) |
| 88 | 87 | impancom 260 |
. . . . . . . . . . . . . 14
⊢ ((𝑘 ∈ ℕ0
∧ 𝑘 < (𝑁 − 𝑀)) → (𝑀 ∈ ℕ0 → ((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0 ∧ 𝑁 ≤ (♯‘𝐴)) → (𝑘 + 𝑀) < (♯‘𝐴)))) |
| 89 | 88 | 3adant2 1019 |
. . . . . . . . . . . . 13
⊢ ((𝑘 ∈ ℕ0
∧ (𝑁 − 𝑀) ∈ ℕ ∧ 𝑘 < (𝑁 − 𝑀)) → (𝑀 ∈ ℕ0 → ((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0 ∧ 𝑁 ≤ (♯‘𝐴)) → (𝑘 + 𝑀) < (♯‘𝐴)))) |
| 90 | 89 | com13 80 |
. . . . . . . . . . . 12
⊢ ((𝑁 ∈ ℕ0
∧ (♯‘𝐴)
∈ ℕ0 ∧ 𝑁 ≤ (♯‘𝐴)) → (𝑀 ∈ ℕ0 → ((𝑘 ∈ ℕ0
∧ (𝑁 − 𝑀) ∈ ℕ ∧ 𝑘 < (𝑁 − 𝑀)) → (𝑘 + 𝑀) < (♯‘𝐴)))) |
| 91 | 68, 90 | sylbi 121 |
. . . . . . . . . . 11
⊢ (𝑁 ∈
(0...(♯‘𝐴))
→ (𝑀 ∈
ℕ0 → ((𝑘 ∈ ℕ0 ∧ (𝑁 − 𝑀) ∈ ℕ ∧ 𝑘 < (𝑁 − 𝑀)) → (𝑘 + 𝑀) < (♯‘𝐴)))) |
| 92 | 53, 91 | mpan9 281 |
. . . . . . . . . 10
⊢ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴))) → ((𝑘 ∈ ℕ0 ∧ (𝑁 − 𝑀) ∈ ℕ ∧ 𝑘 < (𝑁 − 𝑀)) → (𝑘 + 𝑀) < (♯‘𝐴))) |
| 93 | 92 | adantl 277 |
. . . . . . . . 9
⊢ ((((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) → ((𝑘 ∈ ℕ0 ∧ (𝑁 − 𝑀) ∈ ℕ ∧ 𝑘 < (𝑁 − 𝑀)) → (𝑘 + 𝑀) < (♯‘𝐴))) |
| 94 | 67, 93 | biimtrid 152 |
. . . . . . . 8
⊢ ((((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) → (𝑘 ∈ (0..^(𝑁 − 𝑀)) → (𝑘 + 𝑀) < (♯‘𝐴))) |
| 95 | 94 | imp 124 |
. . . . . . 7
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → (𝑘 + 𝑀) < (♯‘𝐴)) |
| 96 | | elfzo0 10343 |
. . . . . . 7
⊢ ((𝑘 + 𝑀) ∈ (0..^(♯‘𝐴)) ↔ ((𝑘 + 𝑀) ∈ ℕ0 ∧
(♯‘𝐴) ∈
ℕ ∧ (𝑘 + 𝑀) < (♯‘𝐴))) |
| 97 | 59, 66, 95, 96 | syl3anbrc 1184 |
. . . . . 6
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → (𝑘 + 𝑀) ∈ (0..^(♯‘𝐴))) |
| 98 | | ccatval1 11091 |
. . . . . 6
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ∧ (𝑘 + 𝑀) ∈ (0..^(♯‘𝐴))) → ((𝐴 ++ 𝐵)‘(𝑘 + 𝑀)) = (𝐴‘(𝑘 + 𝑀))) |
| 99 | 51, 52, 97, 98 | syl3anc 1250 |
. . . . 5
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → ((𝐴 ++ 𝐵)‘(𝑘 + 𝑀)) = (𝐴‘(𝑘 + 𝑀))) |
| 100 | 6 | ad3antrrr 492 |
. . . . . 6
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → (𝐴 ++ 𝐵) ∈ Word 𝑉) |
| 101 | | simplrl 535 |
. . . . . 6
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → 𝑀 ∈ (0...𝑁)) |
| 102 | 42 | adantr 276 |
. . . . . 6
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → 𝑁 ∈ (0...(♯‘(𝐴 ++ 𝐵)))) |
| 103 | | simpr 110 |
. . . . . 6
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → 𝑘 ∈ (0..^(𝑁 − 𝑀))) |
| 104 | | swrdfv 11144 |
. . . . . 6
⊢ ((((𝐴 ++ 𝐵) ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘(𝐴 ++ 𝐵)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉)‘𝑘) = ((𝐴 ++ 𝐵)‘(𝑘 + 𝑀))) |
| 105 | 100, 101,
102, 103, 104 | syl31anc 1253 |
. . . . 5
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉)‘𝑘) = ((𝐴 ++ 𝐵)‘(𝑘 + 𝑀))) |
| 106 | | swrdfv 11144 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → ((𝐴 substr 〈𝑀, 𝑁〉)‘𝑘) = (𝐴‘(𝑘 + 𝑀))) |
| 107 | 48, 106 | sylan 283 |
. . . . 5
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → ((𝐴 substr 〈𝑀, 𝑁〉)‘𝑘) = (𝐴‘(𝑘 + 𝑀))) |
| 108 | 99, 105, 107 | 3eqtr4d 2250 |
. . . 4
⊢
(((((𝐴 ∈ Word
𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉)‘𝑘) = ((𝐴 substr 〈𝑀, 𝑁〉)‘𝑘)) |
| 109 | 44, 50, 108 | eqfnfvd 5703 |
. . 3
⊢ ((((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴)))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 𝑁〉)) |
| 110 | 109 | ex 115 |
. 2
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (♯‘𝐴) ≠ 0) → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 𝑁〉))) |
| 111 | 60 | nn0zd 9528 |
. . . . 5
⊢ (𝐴 ∈ Word 𝑉 → (♯‘𝐴) ∈ ℤ) |
| 112 | | zdceq 9483 |
. . . . 5
⊢
(((♯‘𝐴)
∈ ℤ ∧ 0 ∈ ℤ) → DECID
(♯‘𝐴) =
0) |
| 113 | 111, 7, 112 | sylancl 413 |
. . . 4
⊢ (𝐴 ∈ Word 𝑉 → DECID
(♯‘𝐴) =
0) |
| 114 | | dcne 2389 |
. . . 4
⊢
(DECID (♯‘𝐴) = 0 ↔ ((♯‘𝐴) = 0 ∨ (♯‘𝐴) ≠ 0)) |
| 115 | 113, 114 | sylib 122 |
. . 3
⊢ (𝐴 ∈ Word 𝑉 → ((♯‘𝐴) = 0 ∨ (♯‘𝐴) ≠ 0)) |
| 116 | 115 | adantr 276 |
. 2
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → ((♯‘𝐴) = 0 ∨ (♯‘𝐴) ≠ 0)) |
| 117 | 37, 110, 116 | mpjaodan 800 |
1
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝐴))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐴 substr 〈𝑀, 𝑁〉))) |