| Step |
Hyp |
Ref |
Expression |
| 1 |
|
swrdccatin2.l |
⊢ 𝐿 = ( ♯ ‘ 𝐴 ) |
| 2 |
1
|
pfxccat3 |
⊢ ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( ( 𝑀 ∈ ( 0 ... 𝑁 ) ∧ 𝑁 ∈ ( 0 ... ( 𝐿 + ( ♯ ‘ 𝐵 ) ) ) ) → ( ( 𝐴 ++ 𝐵 ) substr 〈 𝑀 , 𝑁 〉 ) = if ( 𝑁 ≤ 𝐿 , ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) , if ( 𝐿 ≤ 𝑀 , ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) , ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) ) ) ) |
| 3 |
2
|
imp |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( 𝑀 ∈ ( 0 ... 𝑁 ) ∧ 𝑁 ∈ ( 0 ... ( 𝐿 + ( ♯ ‘ 𝐵 ) ) ) ) ) → ( ( 𝐴 ++ 𝐵 ) substr 〈 𝑀 , 𝑁 〉 ) = if ( 𝑁 ≤ 𝐿 , ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) , if ( 𝐿 ≤ 𝑀 , ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) , ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) ) ) |
| 4 |
|
lencl |
⊢ ( 𝐴 ∈ Word 𝑉 → ( ♯ ‘ 𝐴 ) ∈ ℕ0 ) |
| 5 |
4
|
adantr |
⊢ ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( ♯ ‘ 𝐴 ) ∈ ℕ0 ) |
| 6 |
1
|
eqcomi |
⊢ ( ♯ ‘ 𝐴 ) = 𝐿 |
| 7 |
6
|
eleq1i |
⊢ ( ( ♯ ‘ 𝐴 ) ∈ ℕ0 ↔ 𝐿 ∈ ℕ0 ) |
| 8 |
|
elfz2nn0 |
⊢ ( 𝑀 ∈ ( 0 ... 𝑁 ) ↔ ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ∧ 𝑀 ≤ 𝑁 ) ) |
| 9 |
|
iftrue |
⊢ ( 𝑁 ≤ 𝐿 → if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) = 𝑁 ) |
| 10 |
9
|
adantl |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) = 𝑁 ) |
| 11 |
10
|
opeq2d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 = 〈 𝑀 , 𝑁 〉 ) |
| 12 |
11
|
oveq2d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) = ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ) |
| 13 |
|
iftrue |
⊢ ( 0 ≤ ( 𝑀 − 𝐿 ) → if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) = ( 𝑀 − 𝐿 ) ) |
| 14 |
13
|
opeq1d |
⊢ ( 0 ≤ ( 𝑀 − 𝐿 ) → 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 = 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) |
| 15 |
14
|
oveq2d |
⊢ ( 0 ≤ ( 𝑀 − 𝐿 ) → ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) = ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) |
| 16 |
15
|
adantr |
⊢ ( ( 0 ≤ ( 𝑀 − 𝐿 ) ∧ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) ) → ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) = ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) |
| 17 |
|
simpr |
⊢ ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → 𝐵 ∈ Word 𝑉 ) |
| 18 |
|
nn0z |
⊢ ( 𝐿 ∈ ℕ0 → 𝐿 ∈ ℤ ) |
| 19 |
|
nn0z |
⊢ ( 𝑀 ∈ ℕ0 → 𝑀 ∈ ℤ ) |
| 20 |
19
|
adantr |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → 𝑀 ∈ ℤ ) |
| 21 |
|
zsubcl |
⊢ ( ( 𝑀 ∈ ℤ ∧ 𝐿 ∈ ℤ ) → ( 𝑀 − 𝐿 ) ∈ ℤ ) |
| 22 |
20 21
|
sylan |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℤ ) → ( 𝑀 − 𝐿 ) ∈ ℤ ) |
| 23 |
|
nn0z |
⊢ ( 𝑁 ∈ ℕ0 → 𝑁 ∈ ℤ ) |
| 24 |
23
|
adantl |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → 𝑁 ∈ ℤ ) |
| 25 |
|
zsubcl |
⊢ ( ( 𝑁 ∈ ℤ ∧ 𝐿 ∈ ℤ ) → ( 𝑁 − 𝐿 ) ∈ ℤ ) |
| 26 |
24 25
|
sylan |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℤ ) → ( 𝑁 − 𝐿 ) ∈ ℤ ) |
| 27 |
22 26
|
jca |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℤ ) → ( ( 𝑀 − 𝐿 ) ∈ ℤ ∧ ( 𝑁 − 𝐿 ) ∈ ℤ ) ) |
| 28 |
18 27
|
sylan2 |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → ( ( 𝑀 − 𝐿 ) ∈ ℤ ∧ ( 𝑁 − 𝐿 ) ∈ ℤ ) ) |
| 29 |
17 28
|
anim12i |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( 𝐵 ∈ Word 𝑉 ∧ ( ( 𝑀 − 𝐿 ) ∈ ℤ ∧ ( 𝑁 − 𝐿 ) ∈ ℤ ) ) ) |
| 30 |
|
3anass |
⊢ ( ( 𝐵 ∈ Word 𝑉 ∧ ( 𝑀 − 𝐿 ) ∈ ℤ ∧ ( 𝑁 − 𝐿 ) ∈ ℤ ) ↔ ( 𝐵 ∈ Word 𝑉 ∧ ( ( 𝑀 − 𝐿 ) ∈ ℤ ∧ ( 𝑁 − 𝐿 ) ∈ ℤ ) ) ) |
| 31 |
29 30
|
sylibr |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( 𝐵 ∈ Word 𝑉 ∧ ( 𝑀 − 𝐿 ) ∈ ℤ ∧ ( 𝑁 − 𝐿 ) ∈ ℤ ) ) |
| 32 |
31
|
ad2antrl |
⊢ ( ( 0 ≤ ( 𝑀 − 𝐿 ) ∧ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) ) → ( 𝐵 ∈ Word 𝑉 ∧ ( 𝑀 − 𝐿 ) ∈ ℤ ∧ ( 𝑁 − 𝐿 ) ∈ ℤ ) ) |
| 33 |
|
nn0re |
⊢ ( 𝑀 ∈ ℕ0 → 𝑀 ∈ ℝ ) |
| 34 |
|
nn0re |
⊢ ( 𝑁 ∈ ℕ0 → 𝑁 ∈ ℝ ) |
| 35 |
33 34
|
anim12i |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( 𝑀 ∈ ℝ ∧ 𝑁 ∈ ℝ ) ) |
| 36 |
|
nn0re |
⊢ ( 𝐿 ∈ ℕ0 → 𝐿 ∈ ℝ ) |
| 37 |
|
subge0 |
⊢ ( ( 𝑀 ∈ ℝ ∧ 𝐿 ∈ ℝ ) → ( 0 ≤ ( 𝑀 − 𝐿 ) ↔ 𝐿 ≤ 𝑀 ) ) |
| 38 |
37
|
adantlr |
⊢ ( ( ( 𝑀 ∈ ℝ ∧ 𝑁 ∈ ℝ ) ∧ 𝐿 ∈ ℝ ) → ( 0 ≤ ( 𝑀 − 𝐿 ) ↔ 𝐿 ≤ 𝑀 ) ) |
| 39 |
|
simpr |
⊢ ( ( 𝑀 ∈ ℝ ∧ 𝑁 ∈ ℝ ) → 𝑁 ∈ ℝ ) |
| 40 |
39
|
adantr |
⊢ ( ( ( 𝑀 ∈ ℝ ∧ 𝑁 ∈ ℝ ) ∧ 𝐿 ∈ ℝ ) → 𝑁 ∈ ℝ ) |
| 41 |
|
simpr |
⊢ ( ( ( 𝑀 ∈ ℝ ∧ 𝑁 ∈ ℝ ) ∧ 𝐿 ∈ ℝ ) → 𝐿 ∈ ℝ ) |
| 42 |
|
simpl |
⊢ ( ( 𝑀 ∈ ℝ ∧ 𝑁 ∈ ℝ ) → 𝑀 ∈ ℝ ) |
| 43 |
42
|
adantr |
⊢ ( ( ( 𝑀 ∈ ℝ ∧ 𝑁 ∈ ℝ ) ∧ 𝐿 ∈ ℝ ) → 𝑀 ∈ ℝ ) |
| 44 |
|
letr |
⊢ ( ( 𝑁 ∈ ℝ ∧ 𝐿 ∈ ℝ ∧ 𝑀 ∈ ℝ ) → ( ( 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → 𝑁 ≤ 𝑀 ) ) |
| 45 |
40 41 43 44
|
syl3anc |
⊢ ( ( ( 𝑀 ∈ ℝ ∧ 𝑁 ∈ ℝ ) ∧ 𝐿 ∈ ℝ ) → ( ( 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → 𝑁 ≤ 𝑀 ) ) |
| 46 |
45
|
expcomd |
⊢ ( ( ( 𝑀 ∈ ℝ ∧ 𝑁 ∈ ℝ ) ∧ 𝐿 ∈ ℝ ) → ( 𝐿 ≤ 𝑀 → ( 𝑁 ≤ 𝐿 → 𝑁 ≤ 𝑀 ) ) ) |
| 47 |
38 46
|
sylbid |
⊢ ( ( ( 𝑀 ∈ ℝ ∧ 𝑁 ∈ ℝ ) ∧ 𝐿 ∈ ℝ ) → ( 0 ≤ ( 𝑀 − 𝐿 ) → ( 𝑁 ≤ 𝐿 → 𝑁 ≤ 𝑀 ) ) ) |
| 48 |
47
|
com23 |
⊢ ( ( ( 𝑀 ∈ ℝ ∧ 𝑁 ∈ ℝ ) ∧ 𝐿 ∈ ℝ ) → ( 𝑁 ≤ 𝐿 → ( 0 ≤ ( 𝑀 − 𝐿 ) → 𝑁 ≤ 𝑀 ) ) ) |
| 49 |
35 36 48
|
syl2an |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → ( 𝑁 ≤ 𝐿 → ( 0 ≤ ( 𝑀 − 𝐿 ) → 𝑁 ≤ 𝑀 ) ) ) |
| 50 |
49
|
adantl |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( 𝑁 ≤ 𝐿 → ( 0 ≤ ( 𝑀 − 𝐿 ) → 𝑁 ≤ 𝑀 ) ) ) |
| 51 |
50
|
imp |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → ( 0 ≤ ( 𝑀 − 𝐿 ) → 𝑁 ≤ 𝑀 ) ) |
| 52 |
51
|
impcom |
⊢ ( ( 0 ≤ ( 𝑀 − 𝐿 ) ∧ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) ) → 𝑁 ≤ 𝑀 ) |
| 53 |
34
|
adantl |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → 𝑁 ∈ ℝ ) |
| 54 |
53
|
adantr |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → 𝑁 ∈ ℝ ) |
| 55 |
33
|
adantr |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → 𝑀 ∈ ℝ ) |
| 56 |
55
|
adantr |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → 𝑀 ∈ ℝ ) |
| 57 |
36
|
adantl |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → 𝐿 ∈ ℝ ) |
| 58 |
54 56 57
|
3jca |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → ( 𝑁 ∈ ℝ ∧ 𝑀 ∈ ℝ ∧ 𝐿 ∈ ℝ ) ) |
| 59 |
58
|
adantl |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( 𝑁 ∈ ℝ ∧ 𝑀 ∈ ℝ ∧ 𝐿 ∈ ℝ ) ) |
| 60 |
59
|
ad2antrl |
⊢ ( ( 0 ≤ ( 𝑀 − 𝐿 ) ∧ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) ) → ( 𝑁 ∈ ℝ ∧ 𝑀 ∈ ℝ ∧ 𝐿 ∈ ℝ ) ) |
| 61 |
|
lesub1 |
⊢ ( ( 𝑁 ∈ ℝ ∧ 𝑀 ∈ ℝ ∧ 𝐿 ∈ ℝ ) → ( 𝑁 ≤ 𝑀 ↔ ( 𝑁 − 𝐿 ) ≤ ( 𝑀 − 𝐿 ) ) ) |
| 62 |
60 61
|
syl |
⊢ ( ( 0 ≤ ( 𝑀 − 𝐿 ) ∧ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) ) → ( 𝑁 ≤ 𝑀 ↔ ( 𝑁 − 𝐿 ) ≤ ( 𝑀 − 𝐿 ) ) ) |
| 63 |
52 62
|
mpbid |
⊢ ( ( 0 ≤ ( 𝑀 − 𝐿 ) ∧ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) ) → ( 𝑁 − 𝐿 ) ≤ ( 𝑀 − 𝐿 ) ) |
| 64 |
|
swrdlend |
⊢ ( ( 𝐵 ∈ Word 𝑉 ∧ ( 𝑀 − 𝐿 ) ∈ ℤ ∧ ( 𝑁 − 𝐿 ) ∈ ℤ ) → ( ( 𝑁 − 𝐿 ) ≤ ( 𝑀 − 𝐿 ) → ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) = ∅ ) ) |
| 65 |
32 63 64
|
sylc |
⊢ ( ( 0 ≤ ( 𝑀 − 𝐿 ) ∧ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) ) → ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) = ∅ ) |
| 66 |
16 65
|
eqtrd |
⊢ ( ( 0 ≤ ( 𝑀 − 𝐿 ) ∧ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) ) → ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) = ∅ ) |
| 67 |
|
iffalse |
⊢ ( ¬ 0 ≤ ( 𝑀 − 𝐿 ) → if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) = 0 ) |
| 68 |
67
|
opeq1d |
⊢ ( ¬ 0 ≤ ( 𝑀 − 𝐿 ) → 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 = 〈 0 , ( 𝑁 − 𝐿 ) 〉 ) |
| 69 |
68
|
oveq2d |
⊢ ( ¬ 0 ≤ ( 𝑀 − 𝐿 ) → ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) = ( 𝐵 substr 〈 0 , ( 𝑁 − 𝐿 ) 〉 ) ) |
| 70 |
17
|
adantr |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → 𝐵 ∈ Word 𝑉 ) |
| 71 |
70
|
adantr |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → 𝐵 ∈ Word 𝑉 ) |
| 72 |
|
0zd |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → 0 ∈ ℤ ) |
| 73 |
24 18 25
|
syl2an |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → ( 𝑁 − 𝐿 ) ∈ ℤ ) |
| 74 |
73
|
adantl |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( 𝑁 − 𝐿 ) ∈ ℤ ) |
| 75 |
74
|
adantr |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → ( 𝑁 − 𝐿 ) ∈ ℤ ) |
| 76 |
71 72 75
|
3jca |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → ( 𝐵 ∈ Word 𝑉 ∧ 0 ∈ ℤ ∧ ( 𝑁 − 𝐿 ) ∈ ℤ ) ) |
| 77 |
53 36
|
anim12i |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → ( 𝑁 ∈ ℝ ∧ 𝐿 ∈ ℝ ) ) |
| 78 |
77
|
adantl |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( 𝑁 ∈ ℝ ∧ 𝐿 ∈ ℝ ) ) |
| 79 |
|
suble0 |
⊢ ( ( 𝑁 ∈ ℝ ∧ 𝐿 ∈ ℝ ) → ( ( 𝑁 − 𝐿 ) ≤ 0 ↔ 𝑁 ≤ 𝐿 ) ) |
| 80 |
78 79
|
syl |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( ( 𝑁 − 𝐿 ) ≤ 0 ↔ 𝑁 ≤ 𝐿 ) ) |
| 81 |
80
|
biimpar |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → ( 𝑁 − 𝐿 ) ≤ 0 ) |
| 82 |
|
swrdlend |
⊢ ( ( 𝐵 ∈ Word 𝑉 ∧ 0 ∈ ℤ ∧ ( 𝑁 − 𝐿 ) ∈ ℤ ) → ( ( 𝑁 − 𝐿 ) ≤ 0 → ( 𝐵 substr 〈 0 , ( 𝑁 − 𝐿 ) 〉 ) = ∅ ) ) |
| 83 |
76 81 82
|
sylc |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → ( 𝐵 substr 〈 0 , ( 𝑁 − 𝐿 ) 〉 ) = ∅ ) |
| 84 |
69 83
|
sylan9eq |
⊢ ( ( ¬ 0 ≤ ( 𝑀 − 𝐿 ) ∧ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) ) → ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) = ∅ ) |
| 85 |
66 84
|
pm2.61ian |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) = ∅ ) |
| 86 |
12 85
|
oveq12d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = ( ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ++ ∅ ) ) |
| 87 |
|
swrdcl |
⊢ ( 𝐴 ∈ Word 𝑉 → ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ∈ Word 𝑉 ) |
| 88 |
|
ccatrid |
⊢ ( ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ∈ Word 𝑉 → ( ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ++ ∅ ) = ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ) |
| 89 |
87 88
|
syl |
⊢ ( 𝐴 ∈ Word 𝑉 → ( ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ++ ∅ ) = ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ) |
| 90 |
89
|
adantr |
⊢ ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ++ ∅ ) = ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ) |
| 91 |
90
|
adantr |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ++ ∅ ) = ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ) |
| 92 |
91
|
adantr |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → ( ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ++ ∅ ) = ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ) |
| 93 |
86 92
|
eqtrd |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝑁 ≤ 𝐿 ) → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) ) |
| 94 |
|
iffalse |
⊢ ( ¬ 𝑁 ≤ 𝐿 → if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) = 𝐿 ) |
| 95 |
94
|
3ad2ant2 |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) = 𝐿 ) |
| 96 |
95
|
opeq2d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 = 〈 𝑀 , 𝐿 〉 ) |
| 97 |
96
|
oveq2d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) = ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ) |
| 98 |
|
simpl |
⊢ ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → 𝐴 ∈ Word 𝑉 ) |
| 99 |
98 20 18
|
3anim123i |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → ( 𝐴 ∈ Word 𝑉 ∧ 𝑀 ∈ ℤ ∧ 𝐿 ∈ ℤ ) ) |
| 100 |
99
|
3expb |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( 𝐴 ∈ Word 𝑉 ∧ 𝑀 ∈ ℤ ∧ 𝐿 ∈ ℤ ) ) |
| 101 |
|
swrdlend |
⊢ ( ( 𝐴 ∈ Word 𝑉 ∧ 𝑀 ∈ ℤ ∧ 𝐿 ∈ ℤ ) → ( 𝐿 ≤ 𝑀 → ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) = ∅ ) ) |
| 102 |
100 101
|
syl |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( 𝐿 ≤ 𝑀 → ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) = ∅ ) ) |
| 103 |
102
|
imp |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝐿 ≤ 𝑀 ) → ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) = ∅ ) |
| 104 |
103
|
3adant2 |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) = ∅ ) |
| 105 |
97 104
|
eqtrd |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) = ∅ ) |
| 106 |
55 36 37
|
syl2an |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → ( 0 ≤ ( 𝑀 − 𝐿 ) ↔ 𝐿 ≤ 𝑀 ) ) |
| 107 |
106
|
biimprd |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → ( 𝐿 ≤ 𝑀 → 0 ≤ ( 𝑀 − 𝐿 ) ) ) |
| 108 |
107
|
adantl |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( 𝐿 ≤ 𝑀 → 0 ≤ ( 𝑀 − 𝐿 ) ) ) |
| 109 |
108
|
imp |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ 𝐿 ≤ 𝑀 ) → 0 ≤ ( 𝑀 − 𝐿 ) ) |
| 110 |
109
|
3adant2 |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → 0 ≤ ( 𝑀 − 𝐿 ) ) |
| 111 |
110 14
|
syl |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 = 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) |
| 112 |
111
|
oveq2d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) = ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) |
| 113 |
105 112
|
oveq12d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = ( ∅ ++ ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) ) |
| 114 |
|
swrdcl |
⊢ ( 𝐵 ∈ Word 𝑉 → ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ∈ Word 𝑉 ) |
| 115 |
114
|
adantl |
⊢ ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ∈ Word 𝑉 ) |
| 116 |
|
ccatlid |
⊢ ( ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ∈ Word 𝑉 → ( ∅ ++ ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) |
| 117 |
115 116
|
syl |
⊢ ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( ∅ ++ ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) |
| 118 |
117
|
adantr |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( ∅ ++ ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) |
| 119 |
118
|
3ad2ant1 |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → ( ∅ ++ ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) |
| 120 |
113 119
|
eqtrd |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ 𝐿 ≤ 𝑀 ) → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) ) |
| 121 |
94
|
3ad2ant2 |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) = 𝐿 ) |
| 122 |
121
|
opeq2d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 = 〈 𝑀 , 𝐿 〉 ) |
| 123 |
122
|
oveq2d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) = ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ) |
| 124 |
33 36 37
|
syl2an |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝐿 ∈ ℕ0 ) → ( 0 ≤ ( 𝑀 − 𝐿 ) ↔ 𝐿 ≤ 𝑀 ) ) |
| 125 |
124
|
adantlr |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → ( 0 ≤ ( 𝑀 − 𝐿 ) ↔ 𝐿 ≤ 𝑀 ) ) |
| 126 |
125
|
adantl |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( 0 ≤ ( 𝑀 − 𝐿 ) ↔ 𝐿 ≤ 𝑀 ) ) |
| 127 |
126
|
biimpd |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( 0 ≤ ( 𝑀 − 𝐿 ) → 𝐿 ≤ 𝑀 ) ) |
| 128 |
127
|
con3dimp |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝐿 ≤ 𝑀 ) → ¬ 0 ≤ ( 𝑀 − 𝐿 ) ) |
| 129 |
128
|
3adant2 |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → ¬ 0 ≤ ( 𝑀 − 𝐿 ) ) |
| 130 |
129 67
|
syl |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) = 0 ) |
| 131 |
130
|
opeq1d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 = 〈 0 , ( 𝑁 − 𝐿 ) 〉 ) |
| 132 |
131
|
oveq2d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) = ( 𝐵 substr 〈 0 , ( 𝑁 − 𝐿 ) 〉 ) ) |
| 133 |
70
|
3ad2ant1 |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → 𝐵 ∈ Word 𝑉 ) |
| 134 |
|
simplrr |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ) → 𝐿 ∈ ℕ0 ) |
| 135 |
|
simprlr |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → 𝑁 ∈ ℕ0 ) |
| 136 |
135
|
adantr |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ) → 𝑁 ∈ ℕ0 ) |
| 137 |
|
ltnle |
⊢ ( ( 𝐿 ∈ ℝ ∧ 𝑁 ∈ ℝ ) → ( 𝐿 < 𝑁 ↔ ¬ 𝑁 ≤ 𝐿 ) ) |
| 138 |
|
ltle |
⊢ ( ( 𝐿 ∈ ℝ ∧ 𝑁 ∈ ℝ ) → ( 𝐿 < 𝑁 → 𝐿 ≤ 𝑁 ) ) |
| 139 |
137 138
|
sylbird |
⊢ ( ( 𝐿 ∈ ℝ ∧ 𝑁 ∈ ℝ ) → ( ¬ 𝑁 ≤ 𝐿 → 𝐿 ≤ 𝑁 ) ) |
| 140 |
36 53 139
|
syl2anr |
⊢ ( ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) → ( ¬ 𝑁 ≤ 𝐿 → 𝐿 ≤ 𝑁 ) ) |
| 141 |
140
|
adantl |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( ¬ 𝑁 ≤ 𝐿 → 𝐿 ≤ 𝑁 ) ) |
| 142 |
141
|
imp |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ) → 𝐿 ≤ 𝑁 ) |
| 143 |
|
nn0sub2 |
⊢ ( ( 𝐿 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ∧ 𝐿 ≤ 𝑁 ) → ( 𝑁 − 𝐿 ) ∈ ℕ0 ) |
| 144 |
134 136 142 143
|
syl3anc |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ) → ( 𝑁 − 𝐿 ) ∈ ℕ0 ) |
| 145 |
144
|
3adant3 |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → ( 𝑁 − 𝐿 ) ∈ ℕ0 ) |
| 146 |
133 145
|
jca |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → ( 𝐵 ∈ Word 𝑉 ∧ ( 𝑁 − 𝐿 ) ∈ ℕ0 ) ) |
| 147 |
|
pfxval |
⊢ ( ( 𝐵 ∈ Word 𝑉 ∧ ( 𝑁 − 𝐿 ) ∈ ℕ0 ) → ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) = ( 𝐵 substr 〈 0 , ( 𝑁 − 𝐿 ) 〉 ) ) |
| 148 |
146 147
|
syl |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) = ( 𝐵 substr 〈 0 , ( 𝑁 − 𝐿 ) 〉 ) ) |
| 149 |
132 148
|
eqtr4d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) = ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) |
| 150 |
123 149
|
oveq12d |
⊢ ( ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) ∧ ¬ 𝑁 ≤ 𝐿 ∧ ¬ 𝐿 ≤ 𝑀 ) → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) |
| 151 |
93 120 150
|
2if2 |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) ∧ 𝐿 ∈ ℕ0 ) ) → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = if ( 𝑁 ≤ 𝐿 , ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) , if ( 𝐿 ≤ 𝑀 , ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) , ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) ) ) |
| 152 |
151
|
exp32 |
⊢ ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( 𝐿 ∈ ℕ0 → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = if ( 𝑁 ≤ 𝐿 , ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) , if ( 𝐿 ≤ 𝑀 , ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) , ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) ) ) ) ) |
| 153 |
152
|
com12 |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( 𝐿 ∈ ℕ0 → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = if ( 𝑁 ≤ 𝐿 , ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) , if ( 𝐿 ≤ 𝑀 , ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) , ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) ) ) ) ) |
| 154 |
153
|
3adant3 |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ∧ 𝑀 ≤ 𝑁 ) → ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( 𝐿 ∈ ℕ0 → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = if ( 𝑁 ≤ 𝐿 , ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) , if ( 𝐿 ≤ 𝑀 , ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) , ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) ) ) ) ) |
| 155 |
8 154
|
sylbi |
⊢ ( 𝑀 ∈ ( 0 ... 𝑁 ) → ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( 𝐿 ∈ ℕ0 → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = if ( 𝑁 ≤ 𝐿 , ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) , if ( 𝐿 ≤ 𝑀 , ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) , ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) ) ) ) ) |
| 156 |
155
|
adantr |
⊢ ( ( 𝑀 ∈ ( 0 ... 𝑁 ) ∧ 𝑁 ∈ ( 0 ... ( 𝐿 + ( ♯ ‘ 𝐵 ) ) ) ) → ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( 𝐿 ∈ ℕ0 → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = if ( 𝑁 ≤ 𝐿 , ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) , if ( 𝐿 ≤ 𝑀 , ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) , ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) ) ) ) ) |
| 157 |
156
|
com13 |
⊢ ( 𝐿 ∈ ℕ0 → ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( ( 𝑀 ∈ ( 0 ... 𝑁 ) ∧ 𝑁 ∈ ( 0 ... ( 𝐿 + ( ♯ ‘ 𝐵 ) ) ) ) → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = if ( 𝑁 ≤ 𝐿 , ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) , if ( 𝐿 ≤ 𝑀 , ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) , ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) ) ) ) ) |
| 158 |
7 157
|
sylbi |
⊢ ( ( ♯ ‘ 𝐴 ) ∈ ℕ0 → ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( ( 𝑀 ∈ ( 0 ... 𝑁 ) ∧ 𝑁 ∈ ( 0 ... ( 𝐿 + ( ♯ ‘ 𝐵 ) ) ) ) → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = if ( 𝑁 ≤ 𝐿 , ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) , if ( 𝐿 ≤ 𝑀 , ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) , ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) ) ) ) ) |
| 159 |
5 158
|
mpcom |
⊢ ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( ( 𝑀 ∈ ( 0 ... 𝑁 ) ∧ 𝑁 ∈ ( 0 ... ( 𝐿 + ( ♯ ‘ 𝐵 ) ) ) ) → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = if ( 𝑁 ≤ 𝐿 , ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) , if ( 𝐿 ≤ 𝑀 , ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) , ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) ) ) ) |
| 160 |
159
|
imp |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( 𝑀 ∈ ( 0 ... 𝑁 ) ∧ 𝑁 ∈ ( 0 ... ( 𝐿 + ( ♯ ‘ 𝐵 ) ) ) ) ) → ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) = if ( 𝑁 ≤ 𝐿 , ( 𝐴 substr 〈 𝑀 , 𝑁 〉 ) , if ( 𝐿 ≤ 𝑀 , ( 𝐵 substr 〈 ( 𝑀 − 𝐿 ) , ( 𝑁 − 𝐿 ) 〉 ) , ( ( 𝐴 substr 〈 𝑀 , 𝐿 〉 ) ++ ( 𝐵 prefix ( 𝑁 − 𝐿 ) ) ) ) ) ) |
| 161 |
3 160
|
eqtr4d |
⊢ ( ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) ∧ ( 𝑀 ∈ ( 0 ... 𝑁 ) ∧ 𝑁 ∈ ( 0 ... ( 𝐿 + ( ♯ ‘ 𝐵 ) ) ) ) ) → ( ( 𝐴 ++ 𝐵 ) substr 〈 𝑀 , 𝑁 〉 ) = ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) ) |
| 162 |
161
|
ex |
⊢ ( ( 𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ) → ( ( 𝑀 ∈ ( 0 ... 𝑁 ) ∧ 𝑁 ∈ ( 0 ... ( 𝐿 + ( ♯ ‘ 𝐵 ) ) ) ) → ( ( 𝐴 ++ 𝐵 ) substr 〈 𝑀 , 𝑁 〉 ) = ( ( 𝐴 substr 〈 𝑀 , if ( 𝑁 ≤ 𝐿 , 𝑁 , 𝐿 ) 〉 ) ++ ( 𝐵 substr 〈 if ( 0 ≤ ( 𝑀 − 𝐿 ) , ( 𝑀 − 𝐿 ) , 0 ) , ( 𝑁 − 𝐿 ) 〉 ) ) ) ) |