Users' Mathboxes Mathbox for Alexander van der Vekens < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  swrdccatin12lem3 Unicode version

Theorem swrdccatin12lem3 28024
Description: Lemma 3 for swrdccatin12 28026. (Contributed by Alexander van der Vekens, 30-Mar-2018.)
Hypothesis
Ref Expression
swrdccat3.l  |-  L  =  ( # `  A
)
Assertion
Ref Expression
swrdccatin12lem3  |-  ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) )  ->  ( ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) )  ->  ( (
( A concat  B ) substr  <. M ,  N >. ) `
 K )  =  ( ( B substr  <. 0 ,  ( N  -  L ) >. ) `  ( K  -  ( # `
 ( A substr  <. M ,  L >. ) ) ) ) ) )

Proof of Theorem swrdccatin12lem3
StepHypRef Expression
1 swrdccat3.l . . . . . 6  |-  L  =  ( # `  A
)
21swrdccatin12lem3c 28023 . . . . 5  |-  ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) )  ->  ( ( A concat  B )  e. Word  V  /\  M  e.  (
0 ... N )  /\  N  e.  ( 0 ... ( # `  ( A concat  B ) ) ) ) )
32adantr 452 . . . 4  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  (
( A concat  B )  e. Word  V  /\  M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( # `
 ( A concat  B
) ) ) ) )
4 simprl 733 . . . 4  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  K  e.  ( 0..^ ( N  -  M ) ) )
5 swrdfv 11726 . . . 4  |-  ( ( ( ( A concat  B
)  e. Word  V  /\  M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( # `  ( A concat  B ) ) ) )  /\  K  e.  ( 0..^ ( N  -  M ) ) )  ->  ( (
( A concat  B ) substr  <. M ,  N >. ) `
 K )  =  ( ( A concat  B
) `  ( K  +  M ) ) )
63, 4, 5syl2anc 643 . . 3  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  (
( ( A concat  B
) substr  <. M ,  N >. ) `  K )  =  ( ( A concat  B ) `  ( K  +  M )
) )
7 elfzoelz 11095 . . . . . . . 8  |-  ( K  e.  ( 0..^ ( N  -  M ) )  ->  K  e.  ZZ )
8 elfzo0 11126 . . . . . . . . . . 11  |-  ( M  e.  ( 0..^ L )  <->  ( M  e. 
NN0  /\  L  e.  NN  /\  M  <  L
) )
9 nn0cn 10187 . . . . . . . . . . . . . . . . 17  |-  ( M  e.  NN0  ->  M  e.  CC )
10 nncn 9964 . . . . . . . . . . . . . . . . 17  |-  ( L  e.  NN  ->  L  e.  CC )
119, 10anim12i 550 . . . . . . . . . . . . . . . 16  |-  ( ( M  e.  NN0  /\  L  e.  NN )  ->  ( M  e.  CC  /\  L  e.  CC ) )
12 zcn 10243 . . . . . . . . . . . . . . . 16  |-  ( K  e.  ZZ  ->  K  e.  CC )
13 subcl 9261 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( L  e.  CC  /\  M  e.  CC )  ->  ( L  -  M
)  e.  CC )
1413ancoms 440 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( M  e.  CC  /\  L  e.  CC )  ->  ( L  -  M
)  e.  CC )
1514anim2i 553 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( K  e.  CC  /\  ( M  e.  CC  /\  L  e.  CC ) )  ->  ( K  e.  CC  /\  ( L  -  M )  e.  CC ) )
1615ancoms 440 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( M  e.  CC  /\  L  e.  CC )  /\  K  e.  CC )  ->  ( K  e.  CC  /\  ( L  -  M )  e.  CC ) )
17 subcl 9261 . . . . . . . . . . . . . . . . . . 19  |-  ( ( K  e.  CC  /\  ( L  -  M
)  e.  CC )  ->  ( K  -  ( L  -  M
) )  e.  CC )
1816, 17syl 16 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( M  e.  CC  /\  L  e.  CC )  /\  K  e.  CC )  ->  ( K  -  ( L  -  M
) )  e.  CC )
1918addid1d 9222 . . . . . . . . . . . . . . . . 17  |-  ( ( ( M  e.  CC  /\  L  e.  CC )  /\  K  e.  CC )  ->  ( ( K  -  ( L  -  M ) )  +  0 )  =  ( K  -  ( L  -  M ) ) )
20 simpr 448 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( M  e.  CC  /\  L  e.  CC )  /\  K  e.  CC )  ->  K  e.  CC )
21 simplr 732 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( M  e.  CC  /\  L  e.  CC )  /\  K  e.  CC )  ->  L  e.  CC )
22 simpll 731 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( M  e.  CC  /\  L  e.  CC )  /\  K  e.  CC )  ->  M  e.  CC )
2320, 21, 22subsub3d 9397 . . . . . . . . . . . . . . . . 17  |-  ( ( ( M  e.  CC  /\  L  e.  CC )  /\  K  e.  CC )  ->  ( K  -  ( L  -  M
) )  =  ( ( K  +  M
)  -  L ) )
2419, 23eqtr2d 2437 . . . . . . . . . . . . . . . 16  |-  ( ( ( M  e.  CC  /\  L  e.  CC )  /\  K  e.  CC )  ->  ( ( K  +  M )  -  L )  =  ( ( K  -  ( L  -  M )
)  +  0 ) )
2511, 12, 24syl2an 464 . . . . . . . . . . . . . . 15  |-  ( ( ( M  e.  NN0  /\  L  e.  NN )  /\  K  e.  ZZ )  ->  ( ( K  +  M )  -  L )  =  ( ( K  -  ( L  -  M )
)  +  0 ) )
26 oveq2 6048 . . . . . . . . . . . . . . . . 17  |-  ( (
# `  A )  =  L  ->  ( ( K  +  M )  -  ( # `  A
) )  =  ( ( K  +  M
)  -  L ) )
2726eqcoms 2407 . . . . . . . . . . . . . . . 16  |-  ( L  =  ( # `  A
)  ->  ( ( K  +  M )  -  ( # `  A
) )  =  ( ( K  +  M
)  -  L ) )
2827eqeq1d 2412 . . . . . . . . . . . . . . 15  |-  ( L  =  ( # `  A
)  ->  ( (
( K  +  M
)  -  ( # `  A ) )  =  ( ( K  -  ( L  -  M
) )  +  0 )  <->  ( ( K  +  M )  -  L )  =  ( ( K  -  ( L  -  M )
)  +  0 ) ) )
2925, 28syl5ibr 213 . . . . . . . . . . . . . 14  |-  ( L  =  ( # `  A
)  ->  ( (
( M  e.  NN0  /\  L  e.  NN )  /\  K  e.  ZZ )  ->  ( ( K  +  M )  -  ( # `  A ) )  =  ( ( K  -  ( L  -  M ) )  +  0 ) ) )
301, 29ax-mp 8 . . . . . . . . . . . . 13  |-  ( ( ( M  e.  NN0  /\  L  e.  NN )  /\  K  e.  ZZ )  ->  ( ( K  +  M )  -  ( # `  A ) )  =  ( ( K  -  ( L  -  M ) )  +  0 ) )
3130ex 424 . . . . . . . . . . . 12  |-  ( ( M  e.  NN0  /\  L  e.  NN )  ->  ( K  e.  ZZ  ->  ( ( K  +  M )  -  ( # `
 A ) )  =  ( ( K  -  ( L  -  M ) )  +  0 ) ) )
32313adant3 977 . . . . . . . . . . 11  |-  ( ( M  e.  NN0  /\  L  e.  NN  /\  M  <  L )  ->  ( K  e.  ZZ  ->  ( ( K  +  M
)  -  ( # `  A ) )  =  ( ( K  -  ( L  -  M
) )  +  0 ) ) )
338, 32sylbi 188 . . . . . . . . . 10  |-  ( M  e.  ( 0..^ L )  ->  ( K  e.  ZZ  ->  ( ( K  +  M )  -  ( # `  A
) )  =  ( ( K  -  ( L  -  M )
)  +  0 ) ) )
3433adantr 452 . . . . . . . . 9  |-  ( ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  + 
1 ) ... ( L  +  ( # `  B
) ) ) )  ->  ( K  e.  ZZ  ->  ( ( K  +  M )  -  ( # `  A
) )  =  ( ( K  -  ( L  -  M )
)  +  0 ) ) )
3534adantl 453 . . . . . . . 8  |-  ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) )  ->  ( K  e.  ZZ  ->  ( ( K  +  M )  -  ( # `  A
) )  =  ( ( K  -  ( L  -  M )
)  +  0 ) ) )
367, 35syl5com 28 . . . . . . 7  |-  ( K  e.  ( 0..^ ( N  -  M ) )  ->  ( (
( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) )  ->  ( ( K  +  M )  -  ( # `  A ) )  =  ( ( K  -  ( L  -  M ) )  +  0 ) ) )
3736adantr 452 . . . . . 6  |-  ( ( K  e.  ( 0..^ ( N  -  M
) )  /\  -.  K  e.  ( 0..^ ( L  -  M
) ) )  -> 
( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  + 
1 ) ... ( L  +  ( # `  B
) ) ) ) )  ->  ( ( K  +  M )  -  ( # `  A
) )  =  ( ( K  -  ( L  -  M )
)  +  0 ) ) )
3837impcom 420 . . . . 5  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  (
( K  +  M
)  -  ( # `  A ) )  =  ( ( K  -  ( L  -  M
) )  +  0 ) )
3938fveq2d 5691 . . . 4  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  ( B `  ( ( K  +  M )  -  ( # `  A
) ) )  =  ( B `  (
( K  -  ( L  -  M )
)  +  0 ) ) )
40 3simpc 956 . . . . . . 7  |-  ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  ->  ( A  e. Word  V  /\  B  e. Word  V ) )
4140ad2antrr 707 . . . . . 6  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  ( A  e. Word  V  /\  B  e. Word  V ) )
42 lencl 11690 . . . . . . . . . . . 12  |-  ( B  e. Word  V  ->  ( # `
 B )  e. 
NN0 )
43423ad2ant3 980 . . . . . . . . . . 11  |-  ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  ->  ( # `
 B )  e. 
NN0 )
4443anim1i 552 . . . . . . . . . 10  |-  ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) )  ->  ( ( # `  B )  e.  NN0  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) ) )
45 3anass 940 . . . . . . . . . 10  |-  ( ( ( # `  B
)  e.  NN0  /\  M  e.  ( 0..^ L )  /\  N  e.  ( ( L  + 
1 ) ... ( L  +  ( # `  B
) ) ) )  <-> 
( ( # `  B
)  e.  NN0  /\  ( M  e.  (
0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) ) )
4644, 45sylibr 204 . . . . . . . . 9  |-  ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) )  ->  ( ( # `  B )  e.  NN0  /\  M  e.  ( 0..^ L )  /\  N  e.  ( ( L  + 
1 ) ... ( L  +  ( # `  B
) ) ) ) )
471swrdccatin12lem3a 28021 . . . . . . . . 9  |-  ( ( ( # `  B
)  e.  NN0  /\  M  e.  ( 0..^ L )  /\  N  e.  ( ( L  + 
1 ) ... ( L  +  ( # `  B
) ) ) )  ->  ( ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) )  ->  ( K  +  M )  e.  ( L..^ ( L  +  ( # `  B ) ) ) ) )
4846, 47syl 16 . . . . . . . 8  |-  ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) )  ->  ( ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) )  ->  ( K  +  M )  e.  ( L..^ ( L  +  ( # `  B ) ) ) ) )
4948imp 419 . . . . . . 7  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  ( K  +  M )  e.  ( L..^ ( L  +  ( # `  B
) ) ) )
50 id 20 . . . . . . . . . . 11  |-  ( (
# `  A )  =  L  ->  ( # `  A )  =  L )
51 oveq1 6047 . . . . . . . . . . 11  |-  ( (
# `  A )  =  L  ->  ( (
# `  A )  +  ( # `  B
) )  =  ( L  +  ( # `  B ) ) )
5250, 51oveq12d 6058 . . . . . . . . . 10  |-  ( (
# `  A )  =  L  ->  ( (
# `  A )..^ ( ( # `  A
)  +  ( # `  B ) ) )  =  ( L..^ ( L  +  ( # `  B
) ) ) )
5352eleq2d 2471 . . . . . . . . 9  |-  ( (
# `  A )  =  L  ->  ( ( K  +  M )  e.  ( ( # `  A )..^ ( (
# `  A )  +  ( # `  B
) ) )  <->  ( K  +  M )  e.  ( L..^ ( L  +  ( # `  B ) ) ) ) )
5453eqcoms 2407 . . . . . . . 8  |-  ( L  =  ( # `  A
)  ->  ( ( K  +  M )  e.  ( ( # `  A
)..^ ( ( # `  A )  +  (
# `  B )
) )  <->  ( K  +  M )  e.  ( L..^ ( L  +  ( # `  B ) ) ) ) )
551, 54ax-mp 8 . . . . . . 7  |-  ( ( K  +  M )  e.  ( ( # `  A )..^ ( (
# `  A )  +  ( # `  B
) ) )  <->  ( K  +  M )  e.  ( L..^ ( L  +  ( # `  B ) ) ) )
5649, 55sylibr 204 . . . . . 6  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  ( K  +  M )  e.  ( ( # `  A
)..^ ( ( # `  A )  +  (
# `  B )
) ) )
57 df-3an 938 . . . . . 6  |-  ( ( A  e. Word  V  /\  B  e. Word  V  /\  ( K  +  M )  e.  ( ( # `  A
)..^ ( ( # `  A )  +  (
# `  B )
) ) )  <->  ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( K  +  M )  e.  ( ( # `  A
)..^ ( ( # `  A )  +  (
# `  B )
) ) ) )
5841, 56, 57sylanbrc 646 . . . . 5  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  ( A  e. Word  V  /\  B  e. Word  V  /\  ( K  +  M )  e.  ( ( # `  A
)..^ ( ( # `  A )  +  (
# `  B )
) ) ) )
59 ccatval2 11701 . . . . 5  |-  ( ( A  e. Word  V  /\  B  e. Word  V  /\  ( K  +  M )  e.  ( ( # `  A
)..^ ( ( # `  A )  +  (
# `  B )
) ) )  -> 
( ( A concat  B
) `  ( K  +  M ) )  =  ( B `  (
( K  +  M
)  -  ( # `  A ) ) ) )
6058, 59syl 16 . . . 4  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  (
( A concat  B ) `  ( K  +  M
) )  =  ( B `  ( ( K  +  M )  -  ( # `  A
) ) ) )
61 simpll3 998 . . . . 5  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  B  e. Word  V )
62 elfz2 11006 . . . . . . . . . . 11  |-  ( N  e.  ( ( L  +  1 ) ... ( L  +  (
# `  B )
) )  <->  ( (
( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `
 B ) )  e.  ZZ  /\  N  e.  ZZ )  /\  (
( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B ) ) ) ) )
63 nnz 10259 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( L  e.  NN  ->  L  e.  ZZ )
64 zltp1le 10281 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ( L  e.  ZZ  /\  N  e.  ZZ )  ->  ( L  <  N  <->  ( L  +  1 )  <_  N ) )
6563, 64sylan 458 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( L  e.  NN  /\  N  e.  ZZ )  ->  ( L  <  N  <->  ( L  +  1 )  <_  N ) )
66 nnre 9963 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( L  e.  NN  ->  L  e.  RR )
67 zre 10242 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( N  e.  ZZ  ->  N  e.  RR )
68 ltle 9119 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( L  e.  RR  /\  N  e.  RR )  ->  ( L  <  N  ->  L  <_  N )
)
6966, 67, 68syl2an 464 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ( L  e.  NN  /\  N  e.  ZZ )  ->  ( L  <  N  ->  L  <_  N )
)
70 subge0 9497 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  |-  ( ( N  e.  RR  /\  L  e.  RR )  ->  ( 0  <_  ( N  -  L )  <->  L  <_  N ) )
7167, 66, 70syl2anr 465 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( L  e.  NN  /\  N  e.  ZZ )  ->  ( 0  <_  ( N  -  L )  <->  L  <_  N ) )
72 0nn0 10192 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30  |-  0  e.  NN0
7372a1i 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( ( ( L  e.  NN  /\  N  e.  ZZ )  /\  0  <_  ( N  -  L )
)  ->  0  e.  NN0 )
7463anim2i 553 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33  |-  ( ( N  e.  ZZ  /\  L  e.  NN )  ->  ( N  e.  ZZ  /\  L  e.  ZZ ) )
7574ancoms 440 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32  |-  ( ( L  e.  NN  /\  N  e.  ZZ )  ->  ( N  e.  ZZ  /\  L  e.  ZZ ) )
76 zsubcl 10275 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32  |-  ( ( N  e.  ZZ  /\  L  e.  ZZ )  ->  ( N  -  L
)  e.  ZZ )
7775, 76syl 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31  |-  ( ( L  e.  NN  /\  N  e.  ZZ )  ->  ( N  -  L
)  e.  ZZ )
7877anim1i 552 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30  |-  ( ( ( L  e.  NN  /\  N  e.  ZZ )  /\  0  <_  ( N  -  L )
)  ->  ( ( N  -  L )  e.  ZZ  /\  0  <_ 
( N  -  L
) ) )
79 elnn0z 10250 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30  |-  ( ( N  -  L )  e.  NN0  <->  ( ( N  -  L )  e.  ZZ  /\  0  <_ 
( N  -  L
) ) )
8078, 79sylibr 204 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( ( ( L  e.  NN  /\  N  e.  ZZ )  /\  0  <_  ( N  -  L )
)  ->  ( N  -  L )  e.  NN0 )
81 simpr 448 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( ( ( L  e.  NN  /\  N  e.  ZZ )  /\  0  <_  ( N  -  L )
)  ->  0  <_  ( N  -  L ) )
8273, 80, 813jca 1134 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  |-  ( ( ( L  e.  NN  /\  N  e.  ZZ )  /\  0  <_  ( N  -  L )
)  ->  ( 0  e.  NN0  /\  ( N  -  L )  e.  NN0  /\  0  <_ 
( N  -  L
) ) )
8382ex 424 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( L  e.  NN  /\  N  e.  ZZ )  ->  ( 0  <_  ( N  -  L )  ->  ( 0  e.  NN0  /\  ( N  -  L
)  e.  NN0  /\  0  <_  ( N  -  L ) ) ) )
8471, 83sylbird 227 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ( L  e.  NN  /\  N  e.  ZZ )  ->  ( L  <_  N  ->  ( 0  e.  NN0  /\  ( N  -  L
)  e.  NN0  /\  0  <_  ( N  -  L ) ) ) )
8569, 84syld 42 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( L  e.  NN  /\  N  e.  ZZ )  ->  ( L  <  N  ->  ( 0  e.  NN0  /\  ( N  -  L
)  e.  NN0  /\  0  <_  ( N  -  L ) ) ) )
8665, 85sylbird 227 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( L  e.  NN  /\  N  e.  ZZ )  ->  ( ( L  + 
1 )  <_  N  ->  ( 0  e.  NN0  /\  ( N  -  L
)  e.  NN0  /\  0  <_  ( N  -  L ) ) ) )
8786expcom 425 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( N  e.  ZZ  ->  ( L  e.  NN  ->  ( ( L  +  1 )  <_  N  ->  ( 0  e.  NN0  /\  ( N  -  L
)  e.  NN0  /\  0  <_  ( N  -  L ) ) ) ) )
8887com23 74 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( N  e.  ZZ  ->  (
( L  +  1 )  <_  N  ->  ( L  e.  NN  ->  ( 0  e.  NN0  /\  ( N  -  L
)  e.  NN0  /\  0  <_  ( N  -  L ) ) ) ) )
8988adantl 453 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( L  +  1 )  e.  ZZ  /\  N  e.  ZZ )  ->  ( ( L  + 
1 )  <_  N  ->  ( L  e.  NN  ->  ( 0  e.  NN0  /\  ( N  -  L
)  e.  NN0  /\  0  <_  ( N  -  L ) ) ) ) )
9089imp 419 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( ( L  + 
1 )  e.  ZZ  /\  N  e.  ZZ )  /\  ( L  + 
1 )  <_  N
)  ->  ( L  e.  NN  ->  ( 0  e.  NN0  /\  ( N  -  L )  e.  NN0  /\  0  <_ 
( N  -  L
) ) ) )
9190com12 29 . . . . . . . . . . . . . . . . . . 19  |-  ( L  e.  NN  ->  (
( ( ( L  +  1 )  e.  ZZ  /\  N  e.  ZZ )  /\  ( L  +  1 )  <_  N )  -> 
( 0  e.  NN0  /\  ( N  -  L
)  e.  NN0  /\  0  <_  ( N  -  L ) ) ) )
92913ad2ant2 979 . . . . . . . . . . . . . . . . . 18  |-  ( ( M  e.  NN0  /\  L  e.  NN  /\  M  <  L )  ->  (
( ( ( L  +  1 )  e.  ZZ  /\  N  e.  ZZ )  /\  ( L  +  1 )  <_  N )  -> 
( 0  e.  NN0  /\  ( N  -  L
)  e.  NN0  /\  0  <_  ( N  -  L ) ) ) )
9392impcom 420 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( ( L  +  1 )  e.  ZZ  /\  N  e.  ZZ )  /\  ( L  +  1 )  <_  N )  /\  ( M  e.  NN0  /\  L  e.  NN  /\  M  <  L ) )  ->  ( 0  e. 
NN0  /\  ( N  -  L )  e.  NN0  /\  0  <_  ( N  -  L ) ) )
94 elfz2nn0 11038 . . . . . . . . . . . . . . . . 17  |-  ( 0  e.  ( 0 ... ( N  -  L
) )  <->  ( 0  e.  NN0  /\  ( N  -  L )  e.  NN0  /\  0  <_ 
( N  -  L
) ) )
9593, 94sylibr 204 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( ( L  +  1 )  e.  ZZ  /\  N  e.  ZZ )  /\  ( L  +  1 )  <_  N )  /\  ( M  e.  NN0  /\  L  e.  NN  /\  M  <  L ) )  ->  0  e.  ( 0 ... ( N  -  L ) ) )
9695exp31 588 . . . . . . . . . . . . . . 15  |-  ( ( ( L  +  1 )  e.  ZZ  /\  N  e.  ZZ )  ->  ( ( L  + 
1 )  <_  N  ->  ( ( M  e. 
NN0  /\  L  e.  NN  /\  M  <  L
)  ->  0  e.  ( 0 ... ( N  -  L )
) ) ) )
97963adant2 976 . . . . . . . . . . . . . 14  |-  ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `
 B ) )  e.  ZZ  /\  N  e.  ZZ )  ->  (
( L  +  1 )  <_  N  ->  ( ( M  e.  NN0  /\  L  e.  NN  /\  M  <  L )  -> 
0  e.  ( 0 ... ( N  -  L ) ) ) ) )
9897com12 29 . . . . . . . . . . . . 13  |-  ( ( L  +  1 )  <_  N  ->  (
( ( L  + 
1 )  e.  ZZ  /\  ( L  +  (
# `  B )
)  e.  ZZ  /\  N  e.  ZZ )  ->  ( ( M  e. 
NN0  /\  L  e.  NN  /\  M  <  L
)  ->  0  e.  ( 0 ... ( N  -  L )
) ) ) )
9998adantr 452 . . . . . . . . . . . 12  |-  ( ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B ) ) )  ->  (
( ( L  + 
1 )  e.  ZZ  /\  ( L  +  (
# `  B )
)  e.  ZZ  /\  N  e.  ZZ )  ->  ( ( M  e. 
NN0  /\  L  e.  NN  /\  M  <  L
)  ->  0  e.  ( 0 ... ( N  -  L )
) ) ) )
10099impcom 420 . . . . . . . . . . 11  |-  ( ( ( ( L  + 
1 )  e.  ZZ  /\  ( L  +  (
# `  B )
)  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  + 
1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) )  ->  ( ( M  e.  NN0  /\  L  e.  NN  /\  M  < 
L )  ->  0  e.  ( 0 ... ( N  -  L )
) ) )
10162, 100sylbi 188 . . . . . . . . . 10  |-  ( N  e.  ( ( L  +  1 ) ... ( L  +  (
# `  B )
) )  ->  (
( M  e.  NN0  /\  L  e.  NN  /\  M  <  L )  -> 
0  e.  ( 0 ... ( N  -  L ) ) ) )
102101com12 29 . . . . . . . . 9  |-  ( ( M  e.  NN0  /\  L  e.  NN  /\  M  <  L )  ->  ( N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) )  ->  0  e.  ( 0 ... ( N  -  L )
) ) )
1038, 102sylbi 188 . . . . . . . 8  |-  ( M  e.  ( 0..^ L )  ->  ( N  e.  ( ( L  + 
1 ) ... ( L  +  ( # `  B
) ) )  -> 
0  e.  ( 0 ... ( N  -  L ) ) ) )
104103imp 419 . . . . . . 7  |-  ( ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  + 
1 ) ... ( L  +  ( # `  B
) ) ) )  ->  0  e.  ( 0 ... ( N  -  L ) ) )
105104adantl 453 . . . . . 6  |-  ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) )  ->  0  e.  ( 0 ... ( N  -  L ) ) )
106105adantr 452 . . . . 5  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  0  e.  ( 0 ... ( N  -  L )
) )
107 elfzoel2 11094 . . . . . . . . . . 11  |-  ( M  e.  ( 0..^ L )  ->  L  e.  ZZ )
10876ex 424 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( N  e.  ZZ  ->  ( L  e.  ZZ  ->  ( N  -  L )  e.  ZZ ) )
1091083ad2ant3 980 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `
 B ) )  e.  ZZ  /\  N  e.  ZZ )  ->  ( L  e.  ZZ  ->  ( N  -  L )  e.  ZZ ) )
110109adantr 452 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( ( L  + 
1 )  e.  ZZ  /\  ( L  +  (
# `  B )
)  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  + 
1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) )  ->  ( L  e.  ZZ  ->  ( N  -  L )  e.  ZZ ) )
111110com12 29 . . . . . . . . . . . . . . . . . . 19  |-  ( L  e.  ZZ  ->  (
( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `  B
) )  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) )  ->  ( N  -  L )  e.  ZZ ) )
112111adantr 452 . . . . . . . . . . . . . . . . . 18  |-  ( ( L  e.  ZZ  /\  ( # `  B )  e.  NN0 )  -> 
( ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `  B
) )  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) )  ->  ( N  -  L )  e.  ZZ ) )
113112imp 419 . . . . . . . . . . . . . . . . 17  |-  ( ( ( L  e.  ZZ  /\  ( # `  B
)  e.  NN0 )  /\  ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `  B
) )  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) ) )  ->  ( N  -  L )  e.  ZZ )
114 zre 10242 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( L  e.  ZZ  ->  L  e.  RR )
115 p1le 9809 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30  |-  ( ( L  e.  RR  /\  N  e.  RR  /\  ( L  +  1 )  <_  N )  ->  L  <_  N )
1161153expia 1155 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( ( L  e.  RR  /\  N  e.  RR )  ->  ( ( L  + 
1 )  <_  N  ->  L  <_  N )
)
117116ancoms 440 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  |-  ( ( N  e.  RR  /\  L  e.  RR )  ->  ( ( L  + 
1 )  <_  N  ->  L  <_  N )
)
118117, 70sylibrd 226 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( N  e.  RR  /\  L  e.  RR )  ->  ( ( L  + 
1 )  <_  N  ->  0  <_  ( N  -  L ) ) )
11967, 114, 118syl2an 464 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ( N  e.  ZZ  /\  L  e.  ZZ )  ->  ( ( L  + 
1 )  <_  N  ->  0  <_  ( N  -  L ) ) )
120119ex 424 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( N  e.  ZZ  ->  ( L  e.  ZZ  ->  ( ( L  +  1 )  <_  N  ->  0  <_  ( N  -  L ) ) ) )
121120com23 74 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( N  e.  ZZ  ->  (
( L  +  1 )  <_  N  ->  ( L  e.  ZZ  ->  0  <_  ( N  -  L ) ) ) )
1221213ad2ant3 980 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `
 B ) )  e.  ZZ  /\  N  e.  ZZ )  ->  (
( L  +  1 )  <_  N  ->  ( L  e.  ZZ  ->  0  <_  ( N  -  L ) ) ) )
123122com12 29 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( L  +  1 )  <_  N  ->  (
( ( L  + 
1 )  e.  ZZ  /\  ( L  +  (
# `  B )
)  e.  ZZ  /\  N  e.  ZZ )  ->  ( L  e.  ZZ  ->  0  <_  ( N  -  L ) ) ) )
124123adantr 452 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B ) ) )  ->  (
( ( L  + 
1 )  e.  ZZ  /\  ( L  +  (
# `  B )
)  e.  ZZ  /\  N  e.  ZZ )  ->  ( L  e.  ZZ  ->  0  <_  ( N  -  L ) ) ) )
125124impcom 420 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( ( L  + 
1 )  e.  ZZ  /\  ( L  +  (
# `  B )
)  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  + 
1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) )  ->  ( L  e.  ZZ  ->  0  <_  ( N  -  L ) ) )
126125com12 29 . . . . . . . . . . . . . . . . . . 19  |-  ( L  e.  ZZ  ->  (
( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `  B
) )  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) )  ->  0  <_  ( N  -  L )
) )
127126adantr 452 . . . . . . . . . . . . . . . . . 18  |-  ( ( L  e.  ZZ  /\  ( # `  B )  e.  NN0 )  -> 
( ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `  B
) )  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) )  ->  0  <_  ( N  -  L )
) )
128127imp 419 . . . . . . . . . . . . . . . . 17  |-  ( ( ( L  e.  ZZ  /\  ( # `  B
)  e.  NN0 )  /\  ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `  B
) )  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) ) )  ->  0  <_  ( N  -  L ) )
129113, 128, 79sylanbrc 646 . . . . . . . . . . . . . . . 16  |-  ( ( ( L  e.  ZZ  /\  ( # `  B
)  e.  NN0 )  /\  ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `  B
) )  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) ) )  ->  ( N  -  L )  e.  NN0 )
130 simplr 732 . . . . . . . . . . . . . . . 16  |-  ( ( ( L  e.  ZZ  /\  ( # `  B
)  e.  NN0 )  /\  ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `  B
) )  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) ) )  ->  ( # `  B
)  e.  NN0 )
131 nn0re 10186 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( (
# `  B )  e.  NN0  ->  ( # `  B
)  e.  RR )
13267, 114, 1313anim123i 1139 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( N  e.  ZZ  /\  L  e.  ZZ  /\  ( # `
 B )  e. 
NN0 )  ->  ( N  e.  RR  /\  L  e.  RR  /\  ( # `  B )  e.  RR ) )
1331323expb 1154 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( N  e.  ZZ  /\  ( L  e.  ZZ  /\  ( # `  B
)  e.  NN0 )
)  ->  ( N  e.  RR  /\  L  e.  RR  /\  ( # `  B )  e.  RR ) )
134 lesubadd2 9457 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( N  e.  RR  /\  L  e.  RR  /\  ( # `
 B )  e.  RR )  ->  (
( N  -  L
)  <_  ( # `  B
)  <->  N  <_  ( L  +  ( # `  B
) ) ) )
135133, 134syl 16 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( N  e.  ZZ  /\  ( L  e.  ZZ  /\  ( # `  B
)  e.  NN0 )
)  ->  ( ( N  -  L )  <_  ( # `  B
)  <->  N  <_  ( L  +  ( # `  B
) ) ) )
136135exbiri 606 . . . . . . . . . . . . . . . . . . . . 21  |-  ( N  e.  ZZ  ->  (
( L  e.  ZZ  /\  ( # `  B
)  e.  NN0 )  ->  ( N  <_  ( L  +  ( # `  B
) )  ->  ( N  -  L )  <_  ( # `  B
) ) ) )
137136com23 74 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  e.  ZZ  ->  ( N  <_  ( L  +  ( # `  B ) )  ->  ( ( L  e.  ZZ  /\  ( # `
 B )  e. 
NN0 )  ->  ( N  -  L )  <_  ( # `  B
) ) ) )
1381373ad2ant3 980 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `
 B ) )  e.  ZZ  /\  N  e.  ZZ )  ->  ( N  <_  ( L  +  ( # `  B ) )  ->  ( ( L  e.  ZZ  /\  ( # `
 B )  e. 
NN0 )  ->  ( N  -  L )  <_  ( # `  B
) ) ) )
139138adantld 454 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `
 B ) )  e.  ZZ  /\  N  e.  ZZ )  ->  (
( ( L  + 
1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) )  -> 
( ( L  e.  ZZ  /\  ( # `  B )  e.  NN0 )  ->  ( N  -  L )  <_  ( # `
 B ) ) ) )
140139imp 419 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( L  + 
1 )  e.  ZZ  /\  ( L  +  (
# `  B )
)  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  + 
1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) )  ->  ( ( L  e.  ZZ  /\  ( # `
 B )  e. 
NN0 )  ->  ( N  -  L )  <_  ( # `  B
) ) )
141140impcom 420 . . . . . . . . . . . . . . . 16  |-  ( ( ( L  e.  ZZ  /\  ( # `  B
)  e.  NN0 )  /\  ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `  B
) )  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) ) )  ->  ( N  -  L )  <_  ( # `
 B ) )
142129, 130, 1413jca 1134 . . . . . . . . . . . . . . 15  |-  ( ( ( L  e.  ZZ  /\  ( # `  B
)  e.  NN0 )  /\  ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `  B
) )  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) ) )  ->  ( ( N  -  L )  e.  NN0  /\  ( # `  B )  e.  NN0  /\  ( N  -  L
)  <_  ( # `  B
) ) )
143142ex 424 . . . . . . . . . . . . . 14  |-  ( ( L  e.  ZZ  /\  ( # `  B )  e.  NN0 )  -> 
( ( ( ( L  +  1 )  e.  ZZ  /\  ( L  +  ( # `  B
) )  e.  ZZ  /\  N  e.  ZZ )  /\  ( ( L  +  1 )  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) )  ->  ( ( N  -  L )  e. 
NN0  /\  ( # `  B
)  e.  NN0  /\  ( N  -  L
)  <_  ( # `  B
) ) ) )
144 elfz2nn0 11038 . . . . . . . . . . . . . 14  |-  ( ( N  -  L )  e.  ( 0 ... ( # `  B
) )  <->  ( ( N  -  L )  e.  NN0  /\  ( # `  B )  e.  NN0  /\  ( N  -  L
)  <_  ( # `  B
) ) )
145143, 62, 1443imtr4g 262 . . . . . . . . . . . . 13  |-  ( ( L  e.  ZZ  /\  ( # `  B )  e.  NN0 )  -> 
( N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) )  -> 
( N  -  L
)  e.  ( 0 ... ( # `  B
) ) ) )
146145ex 424 . . . . . . . . . . . 12  |-  ( L  e.  ZZ  ->  (
( # `  B )  e.  NN0  ->  ( N  e.  ( ( L  +  1 ) ... ( L  +  (
# `  B )
) )  ->  ( N  -  L )  e.  ( 0 ... ( # `
 B ) ) ) ) )
147146com23 74 . . . . . . . . . . 11  |-  ( L  e.  ZZ  ->  ( N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) )  ->  (
( # `  B )  e.  NN0  ->  ( N  -  L )  e.  ( 0 ... ( # `
 B ) ) ) ) )
148107, 147syl 16 . . . . . . . . . 10  |-  ( M  e.  ( 0..^ L )  ->  ( N  e.  ( ( L  + 
1 ) ... ( L  +  ( # `  B
) ) )  -> 
( ( # `  B
)  e.  NN0  ->  ( N  -  L )  e.  ( 0 ... ( # `  B
) ) ) ) )
149148imp 419 . . . . . . . . 9  |-  ( ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  + 
1 ) ... ( L  +  ( # `  B
) ) ) )  ->  ( ( # `  B )  e.  NN0  ->  ( N  -  L
)  e.  ( 0 ... ( # `  B
) ) ) )
15042, 149syl5com 28 . . . . . . . 8  |-  ( B  e. Word  V  ->  (
( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) )  -> 
( N  -  L
)  e.  ( 0 ... ( # `  B
) ) ) )
1511503ad2ant3 980 . . . . . . 7  |-  ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  ->  (
( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) )  -> 
( N  -  L
)  e.  ( 0 ... ( # `  B
) ) ) )
152151imp 419 . . . . . 6  |-  ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) )  ->  ( N  -  L )  e.  ( 0 ... ( # `  B ) ) )
153152adantr 452 . . . . 5  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  ( N  -  L )  e.  ( 0 ... ( # `
 B ) ) )
1541swrdccatin12lem3b 28022 . . . . . . 7  |-  ( ( ( # `  B
)  e.  NN0  /\  M  e.  ( 0..^ L )  /\  N  e.  ( ( L  + 
1 ) ... ( L  +  ( # `  B
) ) ) )  ->  ( ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) )  ->  ( K  -  ( L  -  M ) )  e.  ( 0..^ ( ( N  -  L )  -  0 ) ) ) )
15546, 154syl 16 . . . . . 6  |-  ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) )  ->  ( ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) )  ->  ( K  -  ( L  -  M ) )  e.  ( 0..^ ( ( N  -  L )  -  0 ) ) ) )
156155imp 419 . . . . 5  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  ( K  -  ( L  -  M ) )  e.  ( 0..^ ( ( N  -  L )  -  0 ) ) )
157 swrdfv 11726 . . . . 5  |-  ( ( ( B  e. Word  V  /\  0  e.  (
0 ... ( N  -  L ) )  /\  ( N  -  L
)  e.  ( 0 ... ( # `  B
) ) )  /\  ( K  -  ( L  -  M )
)  e.  ( 0..^ ( ( N  -  L )  -  0 ) ) )  -> 
( ( B substr  <. 0 ,  ( N  -  L ) >. ) `  ( K  -  ( L  -  M )
) )  =  ( B `  ( ( K  -  ( L  -  M ) )  +  0 ) ) )
15861, 106, 153, 156, 157syl31anc 1187 . . . 4  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  (
( B substr  <. 0 ,  ( N  -  L
) >. ) `  ( K  -  ( L  -  M ) ) )  =  ( B `  ( ( K  -  ( L  -  M
) )  +  0 ) ) )
15939, 60, 1583eqtr4d 2446 . . 3  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  (
( A concat  B ) `  ( K  +  M
) )  =  ( ( B substr  <. 0 ,  ( N  -  L ) >. ) `  ( K  -  ( L  -  M )
) ) )
1601swrdccatin12lem1 28019 . . . . . . . 8  |-  ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) )  ->  ( A  e. Word  V  /\  M  e.  ( 0 ... L )  /\  L  e.  ( 0 ... ( # `  A ) ) ) )
161160adantr 452 . . . . . . 7  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  ( A  e. Word  V  /\  M  e.  ( 0 ... L
)  /\  L  e.  ( 0 ... ( # `
 A ) ) ) )
162 swrdlen 11725 . . . . . . 7  |-  ( ( A  e. Word  V  /\  M  e.  ( 0 ... L )  /\  L  e.  ( 0 ... ( # `  A
) ) )  -> 
( # `  ( A substr  <. M ,  L >. ) )  =  ( L  -  M ) )
163161, 162syl 16 . . . . . 6  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  ( # `
 ( A substr  <. M ,  L >. ) )  =  ( L  -  M
) )
164163eqcomd 2409 . . . . 5  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  ( L  -  M )  =  ( # `  ( A substr  <. M ,  L >. ) ) )
165164oveq2d 6056 . . . 4  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  ( K  -  ( L  -  M ) )  =  ( K  -  ( # `
 ( A substr  <. M ,  L >. ) ) ) )
166165fveq2d 5691 . . 3  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  (
( B substr  <. 0 ,  ( N  -  L
) >. ) `  ( K  -  ( L  -  M ) ) )  =  ( ( B substr  <. 0 ,  ( N  -  L ) >.
) `  ( K  -  ( # `  ( A substr  <. M ,  L >. ) ) ) ) )
1676, 159, 1663eqtrd 2440 . 2  |-  ( ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B
) ) ) ) )  /\  ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) ) )  ->  (
( ( A concat  B
) substr  <. M ,  N >. ) `  K )  =  ( ( B substr  <. 0 ,  ( N  -  L ) >.
) `  ( K  -  ( # `  ( A substr  <. M ,  L >. ) ) ) ) )
168167ex 424 1  |-  ( ( ( V  e.  X  /\  A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0..^ L )  /\  N  e.  ( ( L  +  1 ) ... ( L  +  ( # `  B ) ) ) ) )  ->  ( ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) )  ->  ( (
( A concat  B ) substr  <. M ,  N >. ) `
 K )  =  ( ( B substr  <. 0 ,  ( N  -  L ) >. ) `  ( K  -  ( # `
 ( A substr  <. M ,  L >. ) ) ) ) ) )
Colors of variables: wff set class
Syntax hints:   -. wn 3    -> wi 4    <-> wb 177    /\ wa 359    /\ w3a 936    = wceq 1649    e. wcel 1721   <.cop 3777   class class class wbr 4172   ` cfv 5413  (class class class)co 6040   CCcc 8944   RRcr 8945   0cc0 8946   1c1 8947    + caddc 8949    < clt 9076    <_ cle 9077    - cmin 9247   NNcn 9956   NN0cn0 10177   ZZcz 10238   ...cfz 10999  ..^cfzo 11090   #chash 11573  Word cword 11672   concat cconcat 11673   substr csubstr 11675
This theorem is referenced by:  swrdccatin12  28026
This theorem was proved from axioms:  ax-1 5  ax-2 6  ax-3 7  ax-mp 8  ax-gen 1552  ax-5 1563  ax-17 1623  ax-9 1662  ax-8 1683  ax-13 1723  ax-14 1725  ax-6 1740  ax-7 1745  ax-11 1757  ax-12 1946  ax-ext 2385  ax-rep 4280  ax-sep 4290  ax-nul 4298  ax-pow 4337  ax-pr 4363  ax-un 4660  ax-cnex 9002  ax-resscn 9003  ax-1cn 9004  ax-icn 9005  ax-addcl 9006  ax-addrcl 9007  ax-mulcl 9008  ax-mulrcl 9009  ax-mulcom 9010  ax-addass 9011  ax-mulass 9012  ax-distr 9013  ax-i2m1 9014  ax-1ne0 9015  ax-1rid 9016  ax-rnegex 9017  ax-rrecex 9018  ax-cnre 9019  ax-pre-lttri 9020  ax-pre-lttrn 9021  ax-pre-ltadd 9022  ax-pre-mulgt0 9023
This theorem depends on definitions:  df-bi 178  df-or 360  df-an 361  df-3or 937  df-3an 938  df-tru 1325  df-ex 1548  df-nf 1551  df-sb 1656  df-eu 2258  df-mo 2259  df-clab 2391  df-cleq 2397  df-clel 2400  df-nfc 2529  df-ne 2569  df-nel 2570  df-ral 2671  df-rex 2672  df-reu 2673  df-rab 2675  df-v 2918  df-sbc 3122  df-csb 3212  df-dif 3283  df-un 3285  df-in 3287  df-ss 3294  df-pss 3296  df-nul 3589  df-if 3700  df-pw 3761  df-sn 3780  df-pr 3781  df-tp 3782  df-op 3783  df-uni 3976  df-int 4011  df-iun 4055  df-br 4173  df-opab 4227  df-mpt 4228  df-tr 4263  df-eprel 4454  df-id 4458  df-po 4463  df-so 4464  df-fr 4501  df-we 4503  df-ord 4544  df-on 4545  df-lim 4546  df-suc 4547  df-om 4805  df-xp 4843  df-rel 4844  df-cnv 4845  df-co 4846  df-dm 4847  df-rn 4848  df-res 4849  df-ima 4850  df-iota 5377  df-fun 5415  df-fn 5416  df-f 5417  df-f1 5418  df-fo 5419  df-f1o 5420  df-fv 5421  df-ov 6043  df-oprab 6044  df-mpt2 6045  df-1st 6308  df-2nd 6309  df-riota 6508  df-recs 6592  df-rdg 6627  df-1o 6683  df-oadd 6687  df-er 6864  df-en 7069  df-dom 7070  df-sdom 7071  df-fin 7072  df-card 7782  df-pnf 9078  df-mnf 9079  df-xr 9080  df-ltxr 9081  df-le 9082  df-sub 9249  df-neg 9250  df-nn 9957  df-n0 10178  df-z 10239  df-uz 10445  df-fz 11000  df-fzo 11091  df-hash 11574  df-word 11678  df-concat 11679  df-substr 11681
  Copyright terms: Public domain W3C validator