MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  swrdccat3 Structured version   Unicode version

Theorem swrdccat3 12771
Description: The subword of a concatenation is either a subword of the first concatenated word or a subword of the second concatenated word or a concatenation of a suffix of the first word with a prefix of the second word. (Contributed by Alexander van der Vekens, 30-Mar-2018.) (Revised by Alexander van der Vekens, 28-May-2018.)
Hypothesis
Ref Expression
swrdccatin12.l  |-  L  =  ( # `  A
)
Assertion
Ref Expression
swrdccat3  |-  ( ( A  e. Word  V  /\  B  e. Word  V )  ->  ( ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) )  ->  ( ( A ++  B ) substr  <. M ,  N >. )  =  if ( N  <_  L ,  ( A substr  <. M ,  N >. ) ,  if ( L  <_  M , 
( B substr  <. ( M  -  L ) ,  ( N  -  L
) >. ) ,  ( ( A substr  <. M ,  L >. ) ++  ( B substr  <. 0 ,  ( N  -  L ) >.
) ) ) ) ) )

Proof of Theorem swrdccat3
StepHypRef Expression
1 simpll 752 . . . 4  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  N  <_  L )  ->  ( A  e. Word  V  /\  B  e. Word  V ) )
2 simplrl 762 . . . . 5  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  N  <_  L )  ->  M  e.  ( 0 ... N
) )
3 lencl 12612 . . . . . . . . 9  |-  ( A  e. Word  V  ->  ( # `
 A )  e. 
NN0 )
4 elfznn0 11824 . . . . . . . . . . . . . 14  |-  ( N  e.  ( 0 ... ( L  +  (
# `  B )
) )  ->  N  e.  NN0 )
54adantr 463 . . . . . . . . . . . . 13  |-  ( ( N  e.  ( 0 ... ( L  +  ( # `  B ) ) )  /\  ( # `
 A )  e. 
NN0 )  ->  N  e.  NN0 )
65adantr 463 . . . . . . . . . . . 12  |-  ( ( ( N  e.  ( 0 ... ( L  +  ( # `  B
) ) )  /\  ( # `  A )  e.  NN0 )  /\  N  <_  L )  ->  N  e.  NN0 )
7 simplr 754 . . . . . . . . . . . 12  |-  ( ( ( N  e.  ( 0 ... ( L  +  ( # `  B
) ) )  /\  ( # `  A )  e.  NN0 )  /\  N  <_  L )  -> 
( # `  A )  e.  NN0 )
8 swrdccatin12.l . . . . . . . . . . . . . . 15  |-  L  =  ( # `  A
)
98breq2i 4402 . . . . . . . . . . . . . 14  |-  ( N  <_  L  <->  N  <_  (
# `  A )
)
109biimpi 194 . . . . . . . . . . . . 13  |-  ( N  <_  L  ->  N  <_  ( # `  A
) )
1110adantl 464 . . . . . . . . . . . 12  |-  ( ( ( N  e.  ( 0 ... ( L  +  ( # `  B
) ) )  /\  ( # `  A )  e.  NN0 )  /\  N  <_  L )  ->  N  <_  ( # `  A
) )
12 elfz2nn0 11822 . . . . . . . . . . . 12  |-  ( N  e.  ( 0 ... ( # `  A
) )  <->  ( N  e.  NN0  /\  ( # `  A )  e.  NN0  /\  N  <_  ( # `  A
) ) )
136, 7, 11, 12syl3anbrc 1181 . . . . . . . . . . 11  |-  ( ( ( N  e.  ( 0 ... ( L  +  ( # `  B
) ) )  /\  ( # `  A )  e.  NN0 )  /\  N  <_  L )  ->  N  e.  ( 0 ... ( # `  A
) ) )
1413exp31 602 . . . . . . . . . 10  |-  ( N  e.  ( 0 ... ( L  +  (
# `  B )
) )  ->  (
( # `  A )  e.  NN0  ->  ( N  <_  L  ->  N  e.  ( 0 ... ( # `
 A ) ) ) ) )
1514adantl 464 . . . . . . . . 9  |-  ( ( M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B ) ) ) )  -> 
( ( # `  A
)  e.  NN0  ->  ( N  <_  L  ->  N  e.  ( 0 ... ( # `  A
) ) ) ) )
163, 15syl5com 28 . . . . . . . 8  |-  ( A  e. Word  V  ->  (
( M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) )  ->  ( N  <_  L  ->  N  e.  ( 0 ... ( # `  A ) ) ) ) )
1716adantr 463 . . . . . . 7  |-  ( ( A  e. Word  V  /\  B  e. Word  V )  ->  ( ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) )  ->  ( N  <_  L  ->  N  e.  ( 0 ... ( # `  A ) ) ) ) )
1817imp 427 . . . . . 6  |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  ->  ( N  <_  L  ->  N  e.  ( 0 ... ( # `
 A ) ) ) )
1918imp 427 . . . . 5  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  N  <_  L )  ->  N  e.  ( 0 ... ( # `
 A ) ) )
202, 19jca 530 . . . 4  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  N  <_  L )  ->  ( M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( # `  A
) ) ) )
21 swrdccatin1 12762 . . . 4  |-  ( ( A  e. Word  V  /\  B  e. Word  V )  ->  ( ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( # `
 A ) ) )  ->  ( ( A ++  B ) substr  <. M ,  N >. )  =  ( A substr  <. M ,  N >. ) ) )
221, 20, 21sylc 59 . . 3  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  N  <_  L )  ->  (
( A ++  B ) substr  <. M ,  N >. )  =  ( A substr  <. M ,  N >. ) )
23 simp1l 1021 . . . 4  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  -.  N  <_  L  /\  L  <_  M )  ->  ( A  e. Word  V  /\  B  e. Word  V ) )
248eleq1i 2479 . . . . . . . . . . 11  |-  ( L  e.  NN0  <->  ( # `  A
)  e.  NN0 )
25 elfz2nn0 11822 . . . . . . . . . . . . . 14  |-  ( M  e.  ( 0 ... N )  <->  ( M  e.  NN0  /\  N  e. 
NN0  /\  M  <_  N ) )
26 nn0z 10927 . . . . . . . . . . . . . . . . . . 19  |-  ( L  e.  NN0  ->  L  e.  ZZ )
2726adantl 464 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( M  e.  NN0  /\  N  e.  NN0  /\  M  <_  N )  /\  L  e.  NN0 )  ->  L  e.  ZZ )
28 nn0z 10927 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  e.  NN0  ->  N  e.  ZZ )
29283ad2ant2 1019 . . . . . . . . . . . . . . . . . . 19  |-  ( ( M  e.  NN0  /\  N  e.  NN0  /\  M  <_  N )  ->  N  e.  ZZ )
3029adantr 463 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( M  e.  NN0  /\  N  e.  NN0  /\  M  <_  N )  /\  L  e.  NN0 )  ->  N  e.  ZZ )
31 nn0z 10927 . . . . . . . . . . . . . . . . . . . 20  |-  ( M  e.  NN0  ->  M  e.  ZZ )
32313ad2ant1 1018 . . . . . . . . . . . . . . . . . . 19  |-  ( ( M  e.  NN0  /\  N  e.  NN0  /\  M  <_  N )  ->  M  e.  ZZ )
3332adantr 463 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( M  e.  NN0  /\  N  e.  NN0  /\  M  <_  N )  /\  L  e.  NN0 )  ->  M  e.  ZZ )
3427, 30, 333jca 1177 . . . . . . . . . . . . . . . . 17  |-  ( ( ( M  e.  NN0  /\  N  e.  NN0  /\  M  <_  N )  /\  L  e.  NN0 )  -> 
( L  e.  ZZ  /\  N  e.  ZZ  /\  M  e.  ZZ )
)
3534adantr 463 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( M  e. 
NN0  /\  N  e.  NN0 
/\  M  <_  N
)  /\  L  e.  NN0 )  /\  L  <_  M )  ->  ( L  e.  ZZ  /\  N  e.  ZZ  /\  M  e.  ZZ ) )
36 simpl3 1002 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( M  e.  NN0  /\  N  e.  NN0  /\  M  <_  N )  /\  L  e.  NN0 )  ->  M  <_  N )
3736anim1i 566 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( M  e. 
NN0  /\  N  e.  NN0 
/\  M  <_  N
)  /\  L  e.  NN0 )  /\  L  <_  M )  ->  ( M  <_  N  /\  L  <_  M ) )
3837ancomd 449 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( M  e. 
NN0  /\  N  e.  NN0 
/\  M  <_  N
)  /\  L  e.  NN0 )  /\  L  <_  M )  ->  ( L  <_  M  /\  M  <_  N ) )
39 elfz2 11731 . . . . . . . . . . . . . . . 16  |-  ( M  e.  ( L ... N )  <->  ( ( L  e.  ZZ  /\  N  e.  ZZ  /\  M  e.  ZZ )  /\  ( L  <_  M  /\  M  <_  N ) ) )
4035, 38, 39sylanbrc 662 . . . . . . . . . . . . . . 15  |-  ( ( ( ( M  e. 
NN0  /\  N  e.  NN0 
/\  M  <_  N
)  /\  L  e.  NN0 )  /\  L  <_  M )  ->  M  e.  ( L ... N
) )
4140exp31 602 . . . . . . . . . . . . . 14  |-  ( ( M  e.  NN0  /\  N  e.  NN0  /\  M  <_  N )  ->  ( L  e.  NN0  ->  ( L  <_  M  ->  M  e.  ( L ... N
) ) ) )
4225, 41sylbi 195 . . . . . . . . . . . . 13  |-  ( M  e.  ( 0 ... N )  ->  ( L  e.  NN0  ->  ( L  <_  M  ->  M  e.  ( L ... N
) ) ) )
4342adantr 463 . . . . . . . . . . . 12  |-  ( ( M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B ) ) ) )  -> 
( L  e.  NN0  ->  ( L  <_  M  ->  M  e.  ( L ... N ) ) ) )
4443com12 29 . . . . . . . . . . 11  |-  ( L  e.  NN0  ->  ( ( M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B ) ) ) )  -> 
( L  <_  M  ->  M  e.  ( L ... N ) ) ) )
4524, 44sylbir 213 . . . . . . . . . 10  |-  ( (
# `  A )  e.  NN0  ->  ( ( M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B ) ) ) )  -> 
( L  <_  M  ->  M  e.  ( L ... N ) ) ) )
463, 45syl 17 . . . . . . . . 9  |-  ( A  e. Word  V  ->  (
( M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) )  ->  ( L  <_  M  ->  M  e.  ( L ... N ) ) ) )
4746adantr 463 . . . . . . . 8  |-  ( ( A  e. Word  V  /\  B  e. Word  V )  ->  ( ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) )  ->  ( L  <_  M  ->  M  e.  ( L ... N ) ) ) )
4847imp 427 . . . . . . 7  |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  ->  ( L  <_  M  ->  M  e.  ( L ... N ) ) )
4948a1d 25 . . . . . 6  |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  ->  ( -.  N  <_  L  ->  ( L  <_  M  ->  M  e.  ( L ... N
) ) ) )
50493imp 1191 . . . . 5  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  -.  N  <_  L  /\  L  <_  M )  ->  M  e.  ( L ... N
) )
51 elfz2nn0 11822 . . . . . . . . . . . 12  |-  ( N  e.  ( 0 ... ( L  +  (
# `  B )
) )  <->  ( N  e.  NN0  /\  ( L  +  ( # `  B
) )  e.  NN0  /\  N  <_  ( L  +  ( # `  B
) ) ) )
52 nn0z 10927 . . . . . . . . . . . . . . . . . 18  |-  ( (
# `  A )  e.  NN0  ->  ( # `  A
)  e.  ZZ )
538, 52syl5eqel 2494 . . . . . . . . . . . . . . . . 17  |-  ( (
# `  A )  e.  NN0  ->  L  e.  ZZ )
5453adantr 463 . . . . . . . . . . . . . . . 16  |-  ( ( ( # `  A
)  e.  NN0  /\  -.  N  <_  L )  ->  L  e.  ZZ )
5554adantl 464 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) )  /\  (
( # `  A )  e.  NN0  /\  -.  N  <_  L ) )  ->  L  e.  ZZ )
56 nn0z 10927 . . . . . . . . . . . . . . . . 17  |-  ( ( L  +  ( # `  B ) )  e. 
NN0  ->  ( L  +  ( # `  B ) )  e.  ZZ )
57563ad2ant2 1019 . . . . . . . . . . . . . . . 16  |-  ( ( N  e.  NN0  /\  ( L  +  ( # `
 B ) )  e.  NN0  /\  N  <_ 
( L  +  (
# `  B )
) )  ->  ( L  +  ( # `  B
) )  e.  ZZ )
5857adantr 463 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) )  /\  (
( # `  A )  e.  NN0  /\  -.  N  <_  L ) )  -> 
( L  +  (
# `  B )
)  e.  ZZ )
59283ad2ant1 1018 . . . . . . . . . . . . . . . 16  |-  ( ( N  e.  NN0  /\  ( L  +  ( # `
 B ) )  e.  NN0  /\  N  <_ 
( L  +  (
# `  B )
) )  ->  N  e.  ZZ )
6059adantr 463 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) )  /\  (
( # `  A )  e.  NN0  /\  -.  N  <_  L ) )  ->  N  e.  ZZ )
6155, 58, 603jca 1177 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) )  /\  (
( # `  A )  e.  NN0  /\  -.  N  <_  L ) )  -> 
( L  e.  ZZ  /\  ( L  +  (
# `  B )
)  e.  ZZ  /\  N  e.  ZZ )
)
628eqcomi 2415 . . . . . . . . . . . . . . . . . . 19  |-  ( # `  A )  =  L
6362eleq1i 2479 . . . . . . . . . . . . . . . . . 18  |-  ( (
# `  A )  e.  NN0  <->  L  e.  NN0 )
64 nn0re 10844 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( L  e.  NN0  ->  L  e.  RR )
65 nn0re 10844 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( N  e.  NN0  ->  N  e.  RR )
66 ltnle 9694 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( L  e.  RR  /\  N  e.  RR )  ->  ( L  <  N  <->  -.  N  <_  L )
)
6764, 65, 66syl2anr 476 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( N  e.  NN0  /\  L  e.  NN0 )  -> 
( L  <  N  <->  -.  N  <_  L )
)
6867bicomd 201 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( N  e.  NN0  /\  L  e.  NN0 )  -> 
( -.  N  <_  L 
<->  L  <  N ) )
69 ltle 9703 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( L  e.  RR  /\  N  e.  RR )  ->  ( L  <  N  ->  L  <_  N )
)
7064, 65, 69syl2anr 476 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( N  e.  NN0  /\  L  e.  NN0 )  -> 
( L  <  N  ->  L  <_  N )
)
7168, 70sylbid 215 . . . . . . . . . . . . . . . . . . 19  |-  ( ( N  e.  NN0  /\  L  e.  NN0 )  -> 
( -.  N  <_  L  ->  L  <_  N
) )
7271ex 432 . . . . . . . . . . . . . . . . . 18  |-  ( N  e.  NN0  ->  ( L  e.  NN0  ->  ( -.  N  <_  L  ->  L  <_  N ) ) )
7363, 72syl5bi 217 . . . . . . . . . . . . . . . . 17  |-  ( N  e.  NN0  ->  ( (
# `  A )  e.  NN0  ->  ( -.  N  <_  L  ->  L  <_  N ) ) )
74733ad2ant1 1018 . . . . . . . . . . . . . . . 16  |-  ( ( N  e.  NN0  /\  ( L  +  ( # `
 B ) )  e.  NN0  /\  N  <_ 
( L  +  (
# `  B )
) )  ->  (
( # `  A )  e.  NN0  ->  ( -.  N  <_  L  ->  L  <_  N ) ) )
7574imp32 431 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) )  /\  (
( # `  A )  e.  NN0  /\  -.  N  <_  L ) )  ->  L  <_  N )
76 simpl3 1002 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) )  /\  (
( # `  A )  e.  NN0  /\  -.  N  <_  L ) )  ->  N  <_  ( L  +  ( # `  B ) ) )
7775, 76jca 530 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) )  /\  (
( # `  A )  e.  NN0  /\  -.  N  <_  L ) )  -> 
( L  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) )
78 elfz2 11731 . . . . . . . . . . . . . 14  |-  ( N  e.  ( L ... ( L  +  ( # `
 B ) ) )  <->  ( ( L  e.  ZZ  /\  ( L  +  ( # `  B
) )  e.  ZZ  /\  N  e.  ZZ )  /\  ( L  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) ) )
7961, 77, 78sylanbrc 662 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) )  /\  (
( # `  A )  e.  NN0  /\  -.  N  <_  L ) )  ->  N  e.  ( L ... ( L  +  (
# `  B )
) ) )
8079exp32 603 . . . . . . . . . . . 12  |-  ( ( N  e.  NN0  /\  ( L  +  ( # `
 B ) )  e.  NN0  /\  N  <_ 
( L  +  (
# `  B )
) )  ->  (
( # `  A )  e.  NN0  ->  ( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `
 B ) ) ) ) ) )
8151, 80sylbi 195 . . . . . . . . . . 11  |-  ( N  e.  ( 0 ... ( L  +  (
# `  B )
) )  ->  (
( # `  A )  e.  NN0  ->  ( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `
 B ) ) ) ) ) )
8281adantl 464 . . . . . . . . . 10  |-  ( ( M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B ) ) ) )  -> 
( ( # `  A
)  e.  NN0  ->  ( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `  B ) ) ) ) ) )
833, 82syl5com 28 . . . . . . . . 9  |-  ( A  e. Word  V  ->  (
( M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) )  ->  ( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) ) ) )
8483adantr 463 . . . . . . . 8  |-  ( ( A  e. Word  V  /\  B  e. Word  V )  ->  ( ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) )  ->  ( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) ) ) )
8584imp 427 . . . . . . 7  |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  ->  ( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) ) )
8685a1dd 44 . . . . . 6  |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  ->  ( -.  N  <_  L  ->  ( L  <_  M  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) ) ) )
87863imp 1191 . . . . 5  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  -.  N  <_  L  /\  L  <_  M )  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) )
8850, 87jca 530 . . . 4  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  -.  N  <_  L  /\  L  <_  M )  ->  ( M  e.  ( L ... N )  /\  N  e.  ( L ... ( L  +  ( # `  B
) ) ) ) )
898swrdccatin2 12766 . . . 4  |-  ( ( A  e. Word  V  /\  B  e. Word  V )  ->  ( ( M  e.  ( L ... N
)  /\  N  e.  ( L ... ( L  +  ( # `  B
) ) ) )  ->  ( ( A ++  B ) substr  <. M ,  N >. )  =  ( B substr  <. ( M  -  L ) ,  ( N  -  L )
>. ) ) )
9023, 88, 89sylc 59 . . 3  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  -.  N  <_  L  /\  L  <_  M )  ->  (
( A ++  B ) substr  <. M ,  N >. )  =  ( B substr  <. ( M  -  L ) ,  ( N  -  L ) >. )
)
91 simp1l 1021 . . . 4  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  -.  N  <_  L  /\  -.  L  <_  M )  ->  ( A  e. Word  V  /\  B  e. Word  V ) )
92 nn0re 10844 . . . . . . . . . . . . . . . . . . 19  |-  ( M  e.  NN0  ->  M  e.  RR )
9392adantr 463 . . . . . . . . . . . . . . . . . 18  |-  ( ( M  e.  NN0  /\  N  e.  NN0 )  ->  M  e.  RR )
94 ltnle 9694 . . . . . . . . . . . . . . . . . 18  |-  ( ( M  e.  RR  /\  L  e.  RR )  ->  ( M  <  L  <->  -.  L  <_  M )
)
9593, 64, 94syl2anr 476 . . . . . . . . . . . . . . . . 17  |-  ( ( L  e.  NN0  /\  ( M  e.  NN0  /\  N  e.  NN0 )
)  ->  ( M  <  L  <->  -.  L  <_  M ) )
9695bicomd 201 . . . . . . . . . . . . . . . 16  |-  ( ( L  e.  NN0  /\  ( M  e.  NN0  /\  N  e.  NN0 )
)  ->  ( -.  L  <_  M  <->  M  <  L ) )
97 simpll 752 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( M  e.  NN0  /\  L  e.  NN0 )  /\  M  <  L )  ->  M  e.  NN0 )
98 simplr 754 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( M  e.  NN0  /\  L  e.  NN0 )  /\  M  <  L )  ->  L  e.  NN0 )
99 ltle 9703 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( M  e.  RR  /\  L  e.  RR )  ->  ( M  <  L  ->  M  <_  L )
)
10092, 64, 99syl2an 475 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( M  e.  NN0  /\  L  e.  NN0 )  -> 
( M  <  L  ->  M  <_  L )
)
101100imp 427 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( M  e.  NN0  /\  L  e.  NN0 )  /\  M  <  L )  ->  M  <_  L
)
102 elfz2nn0 11822 . . . . . . . . . . . . . . . . . . . 20  |-  ( M  e.  ( 0 ... L )  <->  ( M  e.  NN0  /\  L  e. 
NN0  /\  M  <_  L ) )
10397, 98, 101, 102syl3anbrc 1181 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( M  e.  NN0  /\  L  e.  NN0 )  /\  M  <  L )  ->  M  e.  ( 0 ... L ) )
104103exp31 602 . . . . . . . . . . . . . . . . . 18  |-  ( M  e.  NN0  ->  ( L  e.  NN0  ->  ( M  <  L  ->  M  e.  ( 0 ... L
) ) ) )
105104adantr 463 . . . . . . . . . . . . . . . . 17  |-  ( ( M  e.  NN0  /\  N  e.  NN0 )  -> 
( L  e.  NN0  ->  ( M  <  L  ->  M  e.  ( 0 ... L ) ) ) )
106105impcom 428 . . . . . . . . . . . . . . . 16  |-  ( ( L  e.  NN0  /\  ( M  e.  NN0  /\  N  e.  NN0 )
)  ->  ( M  <  L  ->  M  e.  ( 0 ... L
) ) )
10796, 106sylbid 215 . . . . . . . . . . . . . . 15  |-  ( ( L  e.  NN0  /\  ( M  e.  NN0  /\  N  e.  NN0 )
)  ->  ( -.  L  <_  M  ->  M  e.  ( 0 ... L
) ) )
108107expcom 433 . . . . . . . . . . . . . 14  |-  ( ( M  e.  NN0  /\  N  e.  NN0 )  -> 
( L  e.  NN0  ->  ( -.  L  <_  M  ->  M  e.  ( 0 ... L ) ) ) )
1091083adant3 1017 . . . . . . . . . . . . 13  |-  ( ( M  e.  NN0  /\  N  e.  NN0  /\  M  <_  N )  ->  ( L  e.  NN0  ->  ( -.  L  <_  M  ->  M  e.  ( 0 ... L ) ) ) )
11025, 109sylbi 195 . . . . . . . . . . . 12  |-  ( M  e.  ( 0 ... N )  ->  ( L  e.  NN0  ->  ( -.  L  <_  M  ->  M  e.  ( 0 ... L ) ) ) )
11163, 110syl5bi 217 . . . . . . . . . . 11  |-  ( M  e.  ( 0 ... N )  ->  (
( # `  A )  e.  NN0  ->  ( -.  L  <_  M  ->  M  e.  ( 0 ... L ) ) ) )
112111adantr 463 . . . . . . . . . 10  |-  ( ( M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B ) ) ) )  -> 
( ( # `  A
)  e.  NN0  ->  ( -.  L  <_  M  ->  M  e.  ( 0 ... L ) ) ) )
1133, 112syl5com 28 . . . . . . . . 9  |-  ( A  e. Word  V  ->  (
( M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) )  ->  ( -.  L  <_  M  ->  M  e.  ( 0 ... L
) ) ) )
114113adantr 463 . . . . . . . 8  |-  ( ( A  e. Word  V  /\  B  e. Word  V )  ->  ( ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) )  ->  ( -.  L  <_  M  ->  M  e.  ( 0 ... L
) ) ) )
115114imp 427 . . . . . . 7  |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  ->  ( -.  L  <_  M  ->  M  e.  ( 0 ... L
) ) )
116115a1d 25 . . . . . 6  |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  ->  ( -.  N  <_  L  ->  ( -.  L  <_  M  ->  M  e.  ( 0 ... L ) ) ) )
1171163imp 1191 . . . . 5  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  -.  N  <_  L  /\  -.  L  <_  M )  ->  M  e.  ( 0 ... L
) )
118653ad2ant1 1018 . . . . . . . . . . . . . . . . 17  |-  ( ( N  e.  NN0  /\  ( L  +  ( # `
 B ) )  e.  NN0  /\  N  <_ 
( L  +  (
# `  B )
) )  ->  N  e.  RR )
11966bicomd 201 . . . . . . . . . . . . . . . . 17  |-  ( ( L  e.  RR  /\  N  e.  RR )  ->  ( -.  N  <_  L 
<->  L  <  N ) )
12064, 118, 119syl2an 475 . . . . . . . . . . . . . . . 16  |-  ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  -> 
( -.  N  <_  L 
<->  L  <  N ) )
12126adantr 463 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  ->  L  e.  ZZ )
12257adantl 464 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  -> 
( L  +  (
# `  B )
)  e.  ZZ )
12359adantl 464 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  ->  N  e.  ZZ )
124121, 122, 1233jca 1177 . . . . . . . . . . . . . . . . . . 19  |-  ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  -> 
( L  e.  ZZ  /\  ( L  +  (
# `  B )
)  e.  ZZ  /\  N  e.  ZZ )
)
125124adantr 463 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  /\  L  <  N )  -> 
( L  e.  ZZ  /\  ( L  +  (
# `  B )
)  e.  ZZ  /\  N  e.  ZZ )
)
12664, 118, 69syl2an 475 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  -> 
( L  <  N  ->  L  <_  N )
)
127126imp 427 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  /\  L  <  N )  ->  L  <_  N )
128 simplr3 1041 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  /\  L  <  N )  ->  N  <_  ( L  +  ( # `  B ) ) )
129127, 128jca 530 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  /\  L  <  N )  -> 
( L  <_  N  /\  N  <_  ( L  +  ( # `  B
) ) ) )
130125, 129, 78sylanbrc 662 . . . . . . . . . . . . . . . . 17  |-  ( ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  /\  L  <  N )  ->  N  e.  ( L ... ( L  +  (
# `  B )
) ) )
131130ex 432 . . . . . . . . . . . . . . . 16  |-  ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  -> 
( L  <  N  ->  N  e.  ( L ... ( L  +  ( # `  B ) ) ) ) )
132120, 131sylbid 215 . . . . . . . . . . . . . . 15  |-  ( ( L  e.  NN0  /\  ( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) ) )  -> 
( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) ) )
133132ex 432 . . . . . . . . . . . . . 14  |-  ( L  e.  NN0  ->  ( ( N  e.  NN0  /\  ( L  +  ( # `
 B ) )  e.  NN0  /\  N  <_ 
( L  +  (
# `  B )
) )  ->  ( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  (
# `  B )
) ) ) ) )
13463, 133sylbi 195 . . . . . . . . . . . . 13  |-  ( (
# `  A )  e.  NN0  ->  ( ( N  e.  NN0  /\  ( L  +  ( # `  B
) )  e.  NN0  /\  N  <_  ( L  +  ( # `  B
) ) )  -> 
( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) ) ) )
1353, 134syl 17 . . . . . . . . . . . 12  |-  ( A  e. Word  V  ->  (
( N  e.  NN0  /\  ( L  +  (
# `  B )
)  e.  NN0  /\  N  <_  ( L  +  ( # `  B ) ) )  ->  ( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  (
# `  B )
) ) ) ) )
136135adantr 463 . . . . . . . . . . 11  |-  ( ( A  e. Word  V  /\  B  e. Word  V )  ->  ( ( N  e. 
NN0  /\  ( L  +  ( # `  B
) )  e.  NN0  /\  N  <_  ( L  +  ( # `  B
) ) )  -> 
( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) ) ) )
137136com12 29 . . . . . . . . . 10  |-  ( ( N  e.  NN0  /\  ( L  +  ( # `
 B ) )  e.  NN0  /\  N  <_ 
( L  +  (
# `  B )
) )  ->  (
( A  e. Word  V  /\  B  e. Word  V )  ->  ( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) ) ) )
13851, 137sylbi 195 . . . . . . . . 9  |-  ( N  e.  ( 0 ... ( L  +  (
# `  B )
) )  ->  (
( A  e. Word  V  /\  B  e. Word  V )  ->  ( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) ) ) )
139138adantl 464 . . . . . . . 8  |-  ( ( M  e.  ( 0 ... N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B ) ) ) )  -> 
( ( A  e. Word  V  /\  B  e. Word  V
)  ->  ( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) ) ) )
140139impcom 428 . . . . . . 7  |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  ->  ( -.  N  <_  L  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) ) )
141140a1dd 44 . . . . . 6  |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  ->  ( -.  N  <_  L  ->  ( -.  L  <_  M  ->  N  e.  ( L ... ( L  +  (
# `  B )
) ) ) ) )
1421413imp 1191 . . . . 5  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  -.  N  <_  L  /\  -.  L  <_  M )  ->  N  e.  ( L ... ( L  +  ( # `  B
) ) ) )
143117, 142jca 530 . . . 4  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  -.  N  <_  L  /\  -.  L  <_  M )  ->  ( M  e.  ( 0 ... L )  /\  N  e.  ( L ... ( L  +  (
# `  B )
) ) ) )
1448swrdccatin12 12770 . . . 4  |-  ( ( A  e. Word  V  /\  B  e. Word  V )  ->  ( ( M  e.  ( 0 ... L
)  /\  N  e.  ( L ... ( L  +  ( # `  B
) ) ) )  ->  ( ( A ++  B ) substr  <. M ,  N >. )  =  ( ( A substr  <. M ,  L >. ) ++  ( B substr  <. 0 ,  ( N  -  L ) >.
) ) ) )
14591, 143, 144sylc 59 . . 3  |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V
)  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  /\  -.  N  <_  L  /\  -.  L  <_  M )  ->  (
( A ++  B ) substr  <. M ,  N >. )  =  ( ( A substr  <. M ,  L >. ) ++  ( B substr  <. 0 ,  ( N  -  L ) >. )
) )
14622, 90, 1452if2 3932 . 2  |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) ) )  ->  ( ( A ++  B ) substr  <. M ,  N >. )  =  if ( N  <_  L ,  ( A substr  <. M ,  N >. ) ,  if ( L  <_  M , 
( B substr  <. ( M  -  L ) ,  ( N  -  L
) >. ) ,  ( ( A substr  <. M ,  L >. ) ++  ( B substr  <. 0 ,  ( N  -  L ) >.
) ) ) ) )
147146ex 432 1  |-  ( ( A  e. Word  V  /\  B  e. Word  V )  ->  ( ( M  e.  ( 0 ... N
)  /\  N  e.  ( 0 ... ( L  +  ( # `  B
) ) ) )  ->  ( ( A ++  B ) substr  <. M ,  N >. )  =  if ( N  <_  L ,  ( A substr  <. M ,  N >. ) ,  if ( L  <_  M , 
( B substr  <. ( M  -  L ) ,  ( N  -  L
) >. ) ,  ( ( A substr  <. M ,  L >. ) ++  ( B substr  <. 0 ,  ( N  -  L ) >.
) ) ) ) ) )
Colors of variables: wff setvar class
Syntax hints:   -. wn 3    -> wi 4    <-> wb 184    /\ wa 367    /\ w3a 974    = wceq 1405    e. wcel 1842   ifcif 3884   <.cop 3977   class class class wbr 4394   ` cfv 5568  (class class class)co 6277   RRcr 9520   0cc0 9521    + caddc 9524    < clt 9657    <_ cle 9658    - cmin 9840   NN0cn0 10835   ZZcz 10904   ...cfz 11724   #chash 12450  Word cword 12581   ++ cconcat 12583   substr csubstr 12585
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1639  ax-4 1652  ax-5 1725  ax-6 1771  ax-7 1814  ax-8 1844  ax-9 1846  ax-10 1861  ax-11 1866  ax-12 1878  ax-13 2026  ax-ext 2380  ax-rep 4506  ax-sep 4516  ax-nul 4524  ax-pow 4571  ax-pr 4629  ax-un 6573  ax-cnex 9577  ax-resscn 9578  ax-1cn 9579  ax-icn 9580  ax-addcl 9581  ax-addrcl 9582  ax-mulcl 9583  ax-mulrcl 9584  ax-mulcom 9585  ax-addass 9586  ax-mulass 9587  ax-distr 9588  ax-i2m1 9589  ax-1ne0 9590  ax-1rid 9591  ax-rnegex 9592  ax-rrecex 9593  ax-cnre 9594  ax-pre-lttri 9595  ax-pre-lttrn 9596  ax-pre-ltadd 9597  ax-pre-mulgt0 9598
This theorem depends on definitions:  df-bi 185  df-or 368  df-an 369  df-3or 975  df-3an 976  df-tru 1408  df-ex 1634  df-nf 1638  df-sb 1764  df-eu 2242  df-mo 2243  df-clab 2388  df-cleq 2394  df-clel 2397  df-nfc 2552  df-ne 2600  df-nel 2601  df-ral 2758  df-rex 2759  df-reu 2760  df-rmo 2761  df-rab 2762  df-v 3060  df-sbc 3277  df-csb 3373  df-dif 3416  df-un 3418  df-in 3420  df-ss 3427  df-pss 3429  df-nul 3738  df-if 3885  df-pw 3956  df-sn 3972  df-pr 3974  df-tp 3976  df-op 3978  df-uni 4191  df-int 4227  df-iun 4272  df-br 4395  df-opab 4453  df-mpt 4454  df-tr 4489  df-eprel 4733  df-id 4737  df-po 4743  df-so 4744  df-fr 4781  df-we 4783  df-xp 4828  df-rel 4829  df-cnv 4830  df-co 4831  df-dm 4832  df-rn 4833  df-res 4834  df-ima 4835  df-pred 5366  df-ord 5412  df-on 5413  df-lim 5414  df-suc 5415  df-iota 5532  df-fun 5570  df-fn 5571  df-f 5572  df-f1 5573  df-fo 5574  df-f1o 5575  df-fv 5576  df-riota 6239  df-ov 6280  df-oprab 6281  df-mpt2 6282  df-om 6683  df-1st 6783  df-2nd 6784  df-wrecs 7012  df-recs 7074  df-rdg 7112  df-1o 7166  df-oadd 7170  df-er 7347  df-en 7554  df-dom 7555  df-sdom 7556  df-fin 7557  df-card 8351  df-cda 8579  df-pnf 9659  df-mnf 9660  df-xr 9661  df-ltxr 9662  df-le 9663  df-sub 9842  df-neg 9843  df-nn 10576  df-2 10634  df-n0 10836  df-z 10905  df-uz 11127  df-fz 11725  df-fzo 11853  df-hash 12451  df-word 12589  df-concat 12591  df-substr 12593
This theorem is referenced by:  swrdccat  12772  swrdccat3a  12773  swrdccat3b  12775
  Copyright terms: Public domain W3C validator