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

Theorem ccatswrd 12348
Description: Joining two adjacent subwords makes a longer subword. (Contributed by Stefan O'Rear, 20-Aug-2015.)
Assertion
Ref Expression
ccatswrd  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( S substr  <. X ,  Y >. ) concat 
( S substr  <. Y ,  Z >. ) )  =  ( S substr  <. X ,  Z >. ) )

Proof of Theorem ccatswrd
Dummy variable  x is distinct from all other variables.
StepHypRef Expression
1 swrdcl 12313 . . . . . 6  |-  ( S  e. Word  A  ->  ( S substr  <. X ,  Y >. )  e. Word  A )
21adantr 465 . . . . 5  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( S substr  <. X ,  Y >. )  e. Word  A
)
3 swrdcl 12313 . . . . . 6  |-  ( S  e. Word  A  ->  ( S substr  <. Y ,  Z >. )  e. Word  A )
43adantr 465 . . . . 5  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( S substr  <. Y ,  Z >. )  e. Word  A
)
5 ccatcl 12272 . . . . 5  |-  ( ( ( S substr  <. X ,  Y >. )  e. Word  A  /\  ( S substr  <. Y ,  Z >. )  e. Word  A
)  ->  ( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) )  e. Word  A )
62, 4, 5syl2anc 661 . . . 4  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( S substr  <. X ,  Y >. ) concat 
( S substr  <. Y ,  Z >. ) )  e. Word  A )
7 wrdf 12238 . . . 4  |-  ( ( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) )  e. Word  A  -> 
( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) : ( 0..^ ( # `  (
( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) ) ) --> A )
8 ffn 5557 . . . 4  |-  ( ( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) : ( 0..^ ( # `  (
( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) ) ) --> A  ->  ( ( S substr  <. X ,  Y >. ) concat 
( S substr  <. Y ,  Z >. ) )  Fn  ( 0..^ ( # `  ( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) ) ) )
96, 7, 83syl 20 . . 3  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( S substr  <. X ,  Y >. ) concat 
( S substr  <. Y ,  Z >. ) )  Fn  ( 0..^ ( # `  ( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) ) ) )
10 ccatlen 12273 . . . . . . 7  |-  ( ( ( S substr  <. X ,  Y >. )  e. Word  A  /\  ( S substr  <. Y ,  Z >. )  e. Word  A
)  ->  ( # `  (
( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) )  =  ( ( # `  ( S substr  <. X ,  Y >. ) )  +  (
# `  ( S substr  <. Y ,  Z >. ) ) ) )
112, 4, 10syl2anc 661 . . . . . 6  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( # `  (
( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) )  =  ( ( # `  ( S substr  <. X ,  Y >. ) )  +  (
# `  ( S substr  <. Y ,  Z >. ) ) ) )
12 simpl 457 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  S  e. Word  A
)
13 simpr1 994 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  X  e.  ( 0 ... Y ) )
14 simpr2 995 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  Y  e.  ( 0 ... Z ) )
15 simpr3 996 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  Z  e.  ( 0 ... ( # `  S ) ) )
16 fzass4 11494 . . . . . . . . . . . 12  |-  ( ( Y  e.  ( 0 ... ( # `  S
) )  /\  Z  e.  ( Y ... ( # `
 S ) ) )  <->  ( Y  e.  ( 0 ... Z
)  /\  Z  e.  ( 0 ... ( # `
 S ) ) ) )
1716biimpri 206 . . . . . . . . . . 11  |-  ( ( Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) )  -> 
( Y  e.  ( 0 ... ( # `  S ) )  /\  Z  e.  ( Y ... ( # `  S
) ) ) )
1817simpld 459 . . . . . . . . . 10  |-  ( ( Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) )  ->  Y  e.  ( 0 ... ( # `  S
) ) )
1914, 15, 18syl2anc 661 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  Y  e.  ( 0 ... ( # `  S ) ) )
20 swrdlen 12317 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... ( # `  S
) ) )  -> 
( # `  ( S substr  <. X ,  Y >. ) )  =  ( Y  -  X ) )
2112, 13, 19, 20syl3anc 1218 . . . . . . . 8  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( # `  ( S substr  <. X ,  Y >. ) )  =  ( Y  -  X ) )
22 swrdlen 12317 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) )  -> 
( # `  ( S substr  <. Y ,  Z >. ) )  =  ( Z  -  Y ) )
2312, 14, 15, 22syl3anc 1218 . . . . . . . 8  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( # `  ( S substr  <. Y ,  Z >. ) )  =  ( Z  -  Y ) )
2421, 23oveq12d 6107 . . . . . . 7  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( # `  ( S substr  <. X ,  Y >. ) )  +  ( # `  ( S substr  <. Y ,  Z >. ) ) )  =  ( ( Y  -  X )  +  ( Z  -  Y ) ) )
25 elfzelz 11451 . . . . . . . . . 10  |-  ( Y  e.  ( 0 ... Z )  ->  Y  e.  ZZ )
2614, 25syl 16 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  Y  e.  ZZ )
2726zcnd 10746 . . . . . . . 8  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  Y  e.  CC )
28 elfzelz 11451 . . . . . . . . . 10  |-  ( X  e.  ( 0 ... Y )  ->  X  e.  ZZ )
2913, 28syl 16 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  X  e.  ZZ )
3029zcnd 10746 . . . . . . . 8  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  X  e.  CC )
31 elfzelz 11451 . . . . . . . . . 10  |-  ( Z  e.  ( 0 ... ( # `  S
) )  ->  Z  e.  ZZ )
3215, 31syl 16 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  Z  e.  ZZ )
3332zcnd 10746 . . . . . . . 8  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  Z  e.  CC )
3427, 30, 33npncan3d 9753 . . . . . . 7  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( Y  -  X )  +  ( Z  -  Y
) )  =  ( Z  -  X ) )
3524, 34eqtrd 2473 . . . . . 6  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( # `  ( S substr  <. X ,  Y >. ) )  +  ( # `  ( S substr  <. Y ,  Z >. ) ) )  =  ( Z  -  X
) )
3611, 35eqtrd 2473 . . . . 5  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( # `  (
( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) )  =  ( Z  -  X ) )
3736oveq2d 6105 . . . 4  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( 0..^ (
# `  ( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) ) )  =  ( 0..^ ( Z  -  X
) ) )
3837fneq2d 5500 . . 3  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) )  Fn  ( 0..^ ( # `  ( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) ) )  <->  ( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) )  Fn  ( 0..^ ( Z  -  X ) ) ) )
399, 38mpbid 210 . 2  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( S substr  <. X ,  Y >. ) concat 
( S substr  <. Y ,  Z >. ) )  Fn  ( 0..^ ( Z  -  X ) ) )
40 swrdcl 12313 . . . . 5  |-  ( S  e. Word  A  ->  ( S substr  <. X ,  Z >. )  e. Word  A )
4140adantr 465 . . . 4  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( S substr  <. X ,  Z >. )  e. Word  A
)
42 wrdf 12238 . . . 4  |-  ( ( S substr  <. X ,  Z >. )  e. Word  A  -> 
( S substr  <. X ,  Z >. ) : ( 0..^ ( # `  ( S substr  <. X ,  Z >. ) ) ) --> A )
43 ffn 5557 . . . 4  |-  ( ( S substr  <. X ,  Z >. ) : ( 0..^ ( # `  ( S substr  <. X ,  Z >. ) ) ) --> A  ->  ( S substr  <. X ,  Z >. )  Fn  (
0..^ ( # `  ( S substr  <. X ,  Z >. ) ) ) )
4441, 42, 433syl 20 . . 3  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( S substr  <. X ,  Z >. )  Fn  (
0..^ ( # `  ( S substr  <. X ,  Z >. ) ) ) )
45 fzass4 11494 . . . . . . . . 9  |-  ( ( X  e.  ( 0 ... Z )  /\  Y  e.  ( X ... Z ) )  <->  ( X  e.  ( 0 ... Y
)  /\  Y  e.  ( 0 ... Z
) ) )
4645biimpri 206 . . . . . . . 8  |-  ( ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z ) )  ->  ( X  e.  ( 0 ... Z
)  /\  Y  e.  ( X ... Z ) ) )
4746simpld 459 . . . . . . 7  |-  ( ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z ) )  ->  X  e.  ( 0 ... Z ) )
4813, 14, 47syl2anc 661 . . . . . 6  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  X  e.  ( 0 ... Z ) )
49 swrdlen 12317 . . . . . 6  |-  ( ( S  e. Word  A  /\  X  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) )  -> 
( # `  ( S substr  <. X ,  Z >. ) )  =  ( Z  -  X ) )
5012, 48, 15, 49syl3anc 1218 . . . . 5  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( # `  ( S substr  <. X ,  Z >. ) )  =  ( Z  -  X ) )
5150oveq2d 6105 . . . 4  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( 0..^ (
# `  ( S substr  <. X ,  Z >. ) ) )  =  ( 0..^ ( Z  -  X ) ) )
5251fneq2d 5500 . . 3  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( S substr  <. X ,  Z >. )  Fn  ( 0..^ (
# `  ( S substr  <. X ,  Z >. ) ) )  <->  ( S substr  <. X ,  Z >. )  Fn  ( 0..^ ( Z  -  X ) ) ) )
5344, 52mpbid 210 . 2  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( S substr  <. X ,  Z >. )  Fn  (
0..^ ( Z  -  X ) ) )
54 simpr 461 . . . . 5  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Z  -  X ) ) )  ->  x  e.  ( 0..^ ( Z  -  X ) ) )
5526, 29zsubcld 10750 . . . . . 6  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( Y  -  X )  e.  ZZ )
5655adantr 465 . . . . 5  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Z  -  X ) ) )  ->  ( Y  -  X )  e.  ZZ )
57 fzospliti 11579 . . . . 5  |-  ( ( x  e.  ( 0..^ ( Z  -  X
) )  /\  ( Y  -  X )  e.  ZZ )  ->  (
x  e.  ( 0..^ ( Y  -  X
) )  \/  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) ) )
5854, 56, 57syl2anc 661 . . . 4  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Z  -  X ) ) )  ->  ( x  e.  ( 0..^ ( Y  -  X ) )  \/  x  e.  ( ( Y  -  X
)..^ ( Z  -  X ) ) ) )
592adantr 465 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Y  -  X ) ) )  ->  ( S substr  <. X ,  Y >. )  e. Word  A )
604adantr 465 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Y  -  X ) ) )  ->  ( S substr  <. Y ,  Z >. )  e. Word  A )
6121oveq2d 6105 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( 0..^ (
# `  ( S substr  <. X ,  Y >. ) ) )  =  ( 0..^ ( Y  -  X ) ) )
6261eleq2d 2508 . . . . . . . 8  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( x  e.  ( 0..^ ( # `  ( S substr  <. X ,  Y >. ) ) )  <-> 
x  e.  ( 0..^ ( Y  -  X
) ) ) )
6362biimpar 485 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Y  -  X ) ) )  ->  x  e.  ( 0..^ ( # `  ( S substr  <. X ,  Y >. ) ) ) )
64 ccatval1 12274 . . . . . . 7  |-  ( ( ( S substr  <. X ,  Y >. )  e. Word  A  /\  ( S substr  <. Y ,  Z >. )  e. Word  A  /\  x  e.  (
0..^ ( # `  ( S substr  <. X ,  Y >. ) ) ) )  ->  ( ( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) `  x )  =  ( ( S substr  <. X ,  Y >. ) `  x
) )
6559, 60, 63, 64syl3anc 1218 . . . . . 6  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Y  -  X ) ) )  ->  ( (
( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) `  x )  =  ( ( S substr  <. X ,  Y >. ) `
 x ) )
66 simpll 753 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Y  -  X ) ) )  ->  S  e. Word  A )
67 simplr1 1030 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Y  -  X ) ) )  ->  X  e.  ( 0 ... Y
) )
6819adantr 465 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Y  -  X ) ) )  ->  Y  e.  ( 0 ... ( # `
 S ) ) )
69 simpr 461 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Y  -  X ) ) )  ->  x  e.  ( 0..^ ( Y  -  X ) ) )
70 swrdfv 12318 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... ( # `  S
) ) )  /\  x  e.  ( 0..^ ( Y  -  X
) ) )  -> 
( ( S substr  <. X ,  Y >. ) `  x
)  =  ( S `
 ( x  +  X ) ) )
7166, 67, 68, 69, 70syl31anc 1221 . . . . . 6  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Y  -  X ) ) )  ->  ( ( S substr  <. X ,  Y >. ) `  x )  =  ( S `  ( x  +  X
) ) )
7265, 71eqtrd 2473 . . . . 5  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Y  -  X ) ) )  ->  ( (
( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) `  x )  =  ( S `  ( x  +  X
) ) )
732adantr 465 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( S substr  <. X ,  Y >. )  e. Word  A
)
744adantr 465 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( S substr  <. Y ,  Z >. )  e. Word  A
)
7521, 35oveq12d 6107 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( # `  ( S substr  <. X ,  Y >. ) )..^ ( ( # `  ( S substr  <. X ,  Y >. ) )  +  (
# `  ( S substr  <. Y ,  Z >. ) ) ) )  =  ( ( Y  -  X )..^ ( Z  -  X ) ) )
7675eleq2d 2508 . . . . . . . 8  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( x  e.  ( ( # `  ( S substr  <. X ,  Y >. ) )..^ ( (
# `  ( S substr  <. X ,  Y >. ) )  +  ( # `  ( S substr  <. Y ,  Z >. ) ) ) )  <->  x  e.  (
( Y  -  X
)..^ ( Z  -  X ) ) ) )
7776biimpar 485 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  x  e.  ( ( # `  ( S substr  <. X ,  Y >. ) )..^ ( (
# `  ( S substr  <. X ,  Y >. ) )  +  ( # `  ( S substr  <. Y ,  Z >. ) ) ) ) )
78 ccatval2 12275 . . . . . . 7  |-  ( ( ( S substr  <. X ,  Y >. )  e. Word  A  /\  ( S substr  <. Y ,  Z >. )  e. Word  A  /\  x  e.  (
( # `  ( S substr  <. X ,  Y >. ) )..^ ( ( # `  ( S substr  <. X ,  Y >. ) )  +  ( # `  ( S substr  <. Y ,  Z >. ) ) ) ) )  ->  ( (
( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) `  x )  =  ( ( S substr  <. Y ,  Z >. ) `
 ( x  -  ( # `  ( S substr  <. X ,  Y >. ) ) ) ) )
7973, 74, 77, 78syl3anc 1218 . . . . . 6  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( ( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) `  x )  =  ( ( S substr  <. Y ,  Z >. ) `  (
x  -  ( # `  ( S substr  <. X ,  Y >. ) ) ) ) )
80 simpll 753 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  S  e. Word  A
)
81 simplr2 1031 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  Y  e.  ( 0 ... Z ) )
82 simplr3 1032 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  Z  e.  ( 0 ... ( # `  S ) ) )
8321oveq2d 6105 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( x  -  ( # `  ( S substr  <. X ,  Y >. ) ) )  =  ( x  -  ( Y  -  X ) ) )
8483adantr 465 . . . . . . . 8  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( x  -  ( # `  ( S substr  <. X ,  Y >. ) ) )  =  ( x  -  ( Y  -  X ) ) )
8534oveq2d 6105 . . . . . . . . . . 11  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( Y  -  X )..^ ( ( Y  -  X
)  +  ( Z  -  Y ) ) )  =  ( ( Y  -  X )..^ ( Z  -  X
) ) )
8685eleq2d 2508 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( x  e.  ( ( Y  -  X )..^ ( ( Y  -  X )  +  ( Z  -  Y
) ) )  <->  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) ) )
8786biimpar 485 . . . . . . . . 9  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  x  e.  ( ( Y  -  X
)..^ ( ( Y  -  X )  +  ( Z  -  Y
) ) ) )
8832, 26zsubcld 10750 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( Z  -  Y )  e.  ZZ )
8988adantr 465 . . . . . . . . 9  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( Z  -  Y )  e.  ZZ )
90 fzosubel3 11599 . . . . . . . . 9  |-  ( ( x  e.  ( ( Y  -  X )..^ ( ( Y  -  X )  +  ( Z  -  Y ) ) )  /\  ( Z  -  Y )  e.  ZZ )  ->  (
x  -  ( Y  -  X ) )  e.  ( 0..^ ( Z  -  Y ) ) )
9187, 89, 90syl2anc 661 . . . . . . . 8  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( x  -  ( Y  -  X
) )  e.  ( 0..^ ( Z  -  Y ) ) )
9284, 91eqeltrd 2515 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( x  -  ( # `  ( S substr  <. X ,  Y >. ) ) )  e.  ( 0..^ ( Z  -  Y ) ) )
93 swrdfv 12318 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  Y  e.  (
0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) )  /\  ( x  -  ( # `
 ( S substr  <. X ,  Y >. ) ) )  e.  ( 0..^ ( Z  -  Y ) ) )  ->  (
( S substr  <. Y ,  Z >. ) `  (
x  -  ( # `  ( S substr  <. X ,  Y >. ) ) ) )  =  ( S `
 ( ( x  -  ( # `  ( S substr  <. X ,  Y >. ) ) )  +  Y ) ) )
9480, 81, 82, 92, 93syl31anc 1221 . . . . . 6  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( ( S substr  <. Y ,  Z >. ) `
 ( x  -  ( # `  ( S substr  <. X ,  Y >. ) ) ) )  =  ( S `  (
( x  -  ( # `
 ( S substr  <. X ,  Y >. ) ) )  +  Y ) ) )
9583oveq1d 6104 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( x  -  ( # `  ( S substr  <. X ,  Y >. ) ) )  +  Y )  =  ( ( x  -  ( Y  -  X )
)  +  Y ) )
9695adantr 465 . . . . . . . 8  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( ( x  -  ( # `  ( S substr  <. X ,  Y >. ) ) )  +  Y )  =  ( ( x  -  ( Y  -  X )
)  +  Y ) )
97 elfzoelz 11551 . . . . . . . . . . 11  |-  ( x  e.  ( ( Y  -  X )..^ ( Z  -  X ) )  ->  x  e.  ZZ )
9897zcnd 10746 . . . . . . . . . 10  |-  ( x  e.  ( ( Y  -  X )..^ ( Z  -  X ) )  ->  x  e.  CC )
9998adantl 466 . . . . . . . . 9  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  x  e.  CC )
10027, 30subcld 9717 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( Y  -  X )  e.  CC )
101100adantr 465 . . . . . . . . 9  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( Y  -  X )  e.  CC )
10227adantr 465 . . . . . . . . 9  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  Y  e.  CC )
10399, 101, 102subadd23d 9739 . . . . . . . 8  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( ( x  -  ( Y  -  X ) )  +  Y )  =  ( x  +  ( Y  -  ( Y  -  X ) ) ) )
10427, 30nncand 9722 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( Y  -  ( Y  -  X
) )  =  X )
105104oveq2d 6105 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( x  +  ( Y  -  ( Y  -  X )
) )  =  ( x  +  X ) )
106105adantr 465 . . . . . . . 8  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( x  +  ( Y  -  ( Y  -  X )
) )  =  ( x  +  X ) )
10796, 103, 1063eqtrd 2477 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( ( x  -  ( # `  ( S substr  <. X ,  Y >. ) ) )  +  Y )  =  ( x  +  X ) )
108107fveq2d 5693 . . . . . 6  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( S `  ( ( x  -  ( # `  ( S substr  <. X ,  Y >. ) ) )  +  Y
) )  =  ( S `  ( x  +  X ) ) )
10979, 94, 1083eqtrd 2477 . . . . 5  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) )  ->  ( ( ( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) `  x )  =  ( S `  ( x  +  X ) ) )
11072, 109jaodan 783 . . . 4  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  ( x  e.  ( 0..^ ( Y  -  X ) )  \/  x  e.  ( ( Y  -  X )..^ ( Z  -  X ) ) ) )  ->  ( (
( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) `  x )  =  ( S `  ( x  +  X
) ) )
11158, 110syldan 470 . . 3  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Z  -  X ) ) )  ->  ( (
( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) `  x )  =  ( S `  ( x  +  X
) ) )
112 simpll 753 . . . 4  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Z  -  X ) ) )  ->  S  e. Word  A )
11348adantr 465 . . . 4  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Z  -  X ) ) )  ->  X  e.  ( 0 ... Z
) )
114 simplr3 1032 . . . 4  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Z  -  X ) ) )  ->  Z  e.  ( 0 ... ( # `
 S ) ) )
115 swrdfv 12318 . . . 4  |-  ( ( ( S  e. Word  A  /\  X  e.  (
0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) )  /\  x  e.  ( 0..^ ( Z  -  X
) ) )  -> 
( ( S substr  <. X ,  Z >. ) `  x
)  =  ( S `
 ( x  +  X ) ) )
116112, 113, 114, 54, 115syl31anc 1221 . . 3  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Z  -  X ) ) )  ->  ( ( S substr  <. X ,  Z >. ) `  x )  =  ( S `  ( x  +  X
) ) )
117111, 116eqtr4d 2476 . 2  |-  ( ( ( S  e. Word  A  /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) )  /\  x  e.  ( 0..^ ( Z  -  X ) ) )  ->  ( (
( S substr  <. X ,  Y >. ) concat  ( S substr  <. Y ,  Z >. ) ) `  x )  =  ( ( S substr  <. X ,  Z >. ) `
 x ) )
11839, 53, 117eqfnfvd 5798 1  |-  ( ( S  e. Word  A  /\  ( X  e.  (
0 ... Y )  /\  Y  e.  ( 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S
) ) ) )  ->  ( ( S substr  <. X ,  Y >. ) concat 
( S substr  <. Y ,  Z >. ) )  =  ( S substr  <. X ,  Z >. ) )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    \/ wo 368    /\ wa 369    /\ w3a 965    = wceq 1369    e. wcel 1756   <.cop 3881    Fn wfn 5411   -->wf 5412   ` cfv 5416  (class class class)co 6089   CCcc 9278   0cc0 9280    + caddc 9283    - cmin 9593   ZZcz 10644   ...cfz 11435  ..^cfzo 11546   #chash 12101  Word cword 12219   concat cconcat 12221   substr csubstr 12223
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1591  ax-4 1602  ax-5 1670  ax-6 1708  ax-7 1728  ax-8 1758  ax-9 1760  ax-10 1775  ax-11 1780  ax-12 1792  ax-13 1943  ax-ext 2422  ax-rep 4401  ax-sep 4411  ax-nul 4419  ax-pow 4468  ax-pr 4529  ax-un 6370  ax-cnex 9336  ax-resscn 9337  ax-1cn 9338  ax-icn 9339  ax-addcl 9340  ax-addrcl 9341  ax-mulcl 9342  ax-mulrcl 9343  ax-mulcom 9344  ax-addass 9345  ax-mulass 9346  ax-distr 9347  ax-i2m1 9348  ax-1ne0 9349  ax-1rid 9350  ax-rnegex 9351  ax-rrecex 9352  ax-cnre 9353  ax-pre-lttri 9354  ax-pre-lttrn 9355  ax-pre-ltadd 9356  ax-pre-mulgt0 9357
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 966  df-3an 967  df-tru 1372  df-ex 1587  df-nf 1590  df-sb 1701  df-eu 2257  df-mo 2258  df-clab 2428  df-cleq 2434  df-clel 2437  df-nfc 2566  df-ne 2606  df-nel 2607  df-ral 2718  df-rex 2719  df-reu 2720  df-rab 2722  df-v 2972  df-sbc 3185  df-csb 3287  df-dif 3329  df-un 3331  df-in 3333  df-ss 3340  df-pss 3342  df-nul 3636  df-if 3790  df-pw 3860  df-sn 3876  df-pr 3878  df-tp 3880  df-op 3882  df-uni 4090  df-int 4127  df-iun 4171  df-br 4291  df-opab 4349  df-mpt 4350  df-tr 4384  df-eprel 4630  df-id 4634  df-po 4639  df-so 4640  df-fr 4677  df-we 4679  df-ord 4720  df-on 4721  df-lim 4722  df-suc 4723  df-xp 4844  df-rel 4845  df-cnv 4846  df-co 4847  df-dm 4848  df-rn 4849  df-res 4850  df-ima 4851  df-iota 5379  df-fun 5418  df-fn 5419  df-f 5420  df-f1 5421  df-fo 5422  df-f1o 5423  df-fv 5424  df-riota 6050  df-ov 6092  df-oprab 6093  df-mpt2 6094  df-om 6475  df-1st 6575  df-2nd 6576  df-recs 6830  df-rdg 6864  df-1o 6918  df-oadd 6922  df-er 7099  df-en 7309  df-dom 7310  df-sdom 7311  df-fin 7312  df-card 8107  df-pnf 9418  df-mnf 9419  df-xr 9420  df-ltxr 9421  df-le 9422  df-sub 9595  df-neg 9596  df-nn 10321  df-n0 10578  df-z 10645  df-uz 10860  df-fz 11436  df-fzo 11547  df-hash 12102  df-word 12227  df-concat 12229  df-substr 12231
This theorem is referenced by:  wrdcctswrd  12357  swrdccatwrd  12360  wrdeqcats1  12366  wrdeqs1cat  12367  splid  12393  splval2  12397  swrds2  12543  efgredleme  16238  efgredlemc  16240  efgcpbllemb  16250  frgpuplem  16267  wrdsplex  26937
  Copyright terms: Public domain W3C validator