| Step |
Hyp |
Ref |
Expression |
| 1 |
|
swrdccatind.l |
|- ( ph -> ( # ` A ) = L ) |
| 2 |
|
swrdccatind.w |
|- ( ph -> ( A e. Word V /\ B e. Word V ) ) |
| 3 |
|
swrdccatin2d.1 |
|- ( ph -> M e. ( L ... N ) ) |
| 4 |
|
swrdccatin2d.2 |
|- ( ph -> N e. ( L ... ( L + ( # ` B ) ) ) ) |
| 5 |
2
|
adantl |
|- ( ( ( # ` A ) = L /\ ph ) -> ( A e. Word V /\ B e. Word V ) ) |
| 6 |
3 4
|
jca |
|- ( ph -> ( M e. ( L ... N ) /\ N e. ( L ... ( L + ( # ` B ) ) ) ) ) |
| 7 |
6
|
adantl |
|- ( ( ( # ` A ) = L /\ ph ) -> ( M e. ( L ... N ) /\ N e. ( L ... ( L + ( # ` B ) ) ) ) ) |
| 8 |
|
oveq1 |
|- ( ( # ` A ) = L -> ( ( # ` A ) ... N ) = ( L ... N ) ) |
| 9 |
8
|
eleq2d |
|- ( ( # ` A ) = L -> ( M e. ( ( # ` A ) ... N ) <-> M e. ( L ... N ) ) ) |
| 10 |
|
id |
|- ( ( # ` A ) = L -> ( # ` A ) = L ) |
| 11 |
|
oveq1 |
|- ( ( # ` A ) = L -> ( ( # ` A ) + ( # ` B ) ) = ( L + ( # ` B ) ) ) |
| 12 |
10 11
|
oveq12d |
|- ( ( # ` A ) = L -> ( ( # ` A ) ... ( ( # ` A ) + ( # ` B ) ) ) = ( L ... ( L + ( # ` B ) ) ) ) |
| 13 |
12
|
eleq2d |
|- ( ( # ` A ) = L -> ( N e. ( ( # ` A ) ... ( ( # ` A ) + ( # ` B ) ) ) <-> N e. ( L ... ( L + ( # ` B ) ) ) ) ) |
| 14 |
9 13
|
anbi12d |
|- ( ( # ` A ) = L -> ( ( M e. ( ( # ` A ) ... N ) /\ N e. ( ( # ` A ) ... ( ( # ` A ) + ( # ` B ) ) ) ) <-> ( M e. ( L ... N ) /\ N e. ( L ... ( L + ( # ` B ) ) ) ) ) ) |
| 15 |
14
|
adantr |
|- ( ( ( # ` A ) = L /\ ph ) -> ( ( M e. ( ( # ` A ) ... N ) /\ N e. ( ( # ` A ) ... ( ( # ` A ) + ( # ` B ) ) ) ) <-> ( M e. ( L ... N ) /\ N e. ( L ... ( L + ( # ` B ) ) ) ) ) ) |
| 16 |
7 15
|
mpbird |
|- ( ( ( # ` A ) = L /\ ph ) -> ( M e. ( ( # ` A ) ... N ) /\ N e. ( ( # ` A ) ... ( ( # ` A ) + ( # ` B ) ) ) ) ) |
| 17 |
5 16
|
jca |
|- ( ( ( # ` A ) = L /\ ph ) -> ( ( A e. Word V /\ B e. Word V ) /\ ( M e. ( ( # ` A ) ... N ) /\ N e. ( ( # ` A ) ... ( ( # ` A ) + ( # ` B ) ) ) ) ) ) |
| 18 |
17
|
ex |
|- ( ( # ` A ) = L -> ( ph -> ( ( A e. Word V /\ B e. Word V ) /\ ( M e. ( ( # ` A ) ... N ) /\ N e. ( ( # ` A ) ... ( ( # ` A ) + ( # ` B ) ) ) ) ) ) ) |
| 19 |
|
eqid |
|- ( # ` A ) = ( # ` A ) |
| 20 |
19
|
swrdccatin2 |
|- ( ( A e. Word V /\ B e. Word V ) -> ( ( M e. ( ( # ` A ) ... N ) /\ N e. ( ( # ` A ) ... ( ( # ` A ) + ( # ` B ) ) ) ) -> ( ( A ++ B ) substr <. M , N >. ) = ( B substr <. ( M - ( # ` A ) ) , ( N - ( # ` A ) ) >. ) ) ) |
| 21 |
20
|
imp |
|- ( ( ( A e. Word V /\ B e. Word V ) /\ ( M e. ( ( # ` A ) ... N ) /\ N e. ( ( # ` A ) ... ( ( # ` A ) + ( # ` B ) ) ) ) ) -> ( ( A ++ B ) substr <. M , N >. ) = ( B substr <. ( M - ( # ` A ) ) , ( N - ( # ` A ) ) >. ) ) |
| 22 |
18 21
|
syl6 |
|- ( ( # ` A ) = L -> ( ph -> ( ( A ++ B ) substr <. M , N >. ) = ( B substr <. ( M - ( # ` A ) ) , ( N - ( # ` A ) ) >. ) ) ) |
| 23 |
|
oveq2 |
|- ( ( # ` A ) = L -> ( M - ( # ` A ) ) = ( M - L ) ) |
| 24 |
|
oveq2 |
|- ( ( # ` A ) = L -> ( N - ( # ` A ) ) = ( N - L ) ) |
| 25 |
23 24
|
opeq12d |
|- ( ( # ` A ) = L -> <. ( M - ( # ` A ) ) , ( N - ( # ` A ) ) >. = <. ( M - L ) , ( N - L ) >. ) |
| 26 |
25
|
oveq2d |
|- ( ( # ` A ) = L -> ( B substr <. ( M - ( # ` A ) ) , ( N - ( # ` A ) ) >. ) = ( B substr <. ( M - L ) , ( N - L ) >. ) ) |
| 27 |
26
|
eqeq2d |
|- ( ( # ` A ) = L -> ( ( ( A ++ B ) substr <. M , N >. ) = ( B substr <. ( M - ( # ` A ) ) , ( N - ( # ` A ) ) >. ) <-> ( ( A ++ B ) substr <. M , N >. ) = ( B substr <. ( M - L ) , ( N - L ) >. ) ) ) |
| 28 |
22 27
|
sylibd |
|- ( ( # ` A ) = L -> ( ph -> ( ( A ++ B ) substr <. M , N >. ) = ( B substr <. ( M - L ) , ( N - L ) >. ) ) ) |
| 29 |
1 28
|
mpcom |
|- ( ph -> ( ( A ++ B ) substr <. M , N >. ) = ( B substr <. ( M - L ) , ( N - L ) >. ) ) |