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

Theorem ccatlen 12267
Description: The length of a concatenated word. (Contributed by Stefan O'Rear, 15-Aug-2015.)
Assertion
Ref Expression
ccatlen  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( # `  ( S concat  T ) )  =  ( ( # `  S
)  +  ( # `  T ) ) )

Proof of Theorem ccatlen
Dummy variable  x is distinct from all other variables.
StepHypRef Expression
1 ccatfval 12265 . . 3  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( S concat  T )  =  ( x  e.  ( 0..^ ( (
# `  S )  +  ( # `  T
) ) )  |->  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( # `
 S ) ) ) ) ) )
21fveq2d 5690 . 2  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( # `  ( S concat  T ) )  =  ( # `  (
x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( S `  x
) ,  ( T `
 ( x  -  ( # `  S ) ) ) ) ) ) )
3 fvex 5696 . . . . 5  |-  ( S `
 x )  e. 
_V
4 fvex 5696 . . . . 5  |-  ( T `
 ( x  -  ( # `  S ) ) )  e.  _V
53, 4ifex 3853 . . . 4  |-  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( # `
 S ) ) ) )  e.  _V
6 eqid 2438 . . . 4  |-  ( x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( S `  x
) ,  ( T `
 ( x  -  ( # `  S ) ) ) ) )  =  ( x  e.  ( 0..^ ( (
# `  S )  +  ( # `  T
) ) )  |->  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( # `
 S ) ) ) ) )
75, 6fnmpti 5534 . . 3  |-  ( x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( S `  x
) ,  ( T `
 ( x  -  ( # `  S ) ) ) ) )  Fn  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) )
8 hashfn 12130 . . 3  |-  ( ( x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( S `  x
) ,  ( T `
 ( x  -  ( # `  S ) ) ) ) )  Fn  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) )  ->  ( # `  (
x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( S `  x
) ,  ( T `
 ( x  -  ( # `  S ) ) ) ) ) )  =  ( # `  ( 0..^ ( (
# `  S )  +  ( # `  T
) ) ) ) )
97, 8mp1i 12 . 2  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( # `  (
x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( S `  x
) ,  ( T `
 ( x  -  ( # `  S ) ) ) ) ) )  =  ( # `  ( 0..^ ( (
# `  S )  +  ( # `  T
) ) ) ) )
10 lencl 12241 . . . 4  |-  ( S  e. Word  B  ->  ( # `
 S )  e. 
NN0 )
11 lencl 12241 . . . 4  |-  ( T  e. Word  B  ->  ( # `
 T )  e. 
NN0 )
12 nn0addcl 10607 . . . 4  |-  ( ( ( # `  S
)  e.  NN0  /\  ( # `  T )  e.  NN0 )  -> 
( ( # `  S
)  +  ( # `  T ) )  e. 
NN0 )
1310, 11, 12syl2an 477 . . 3  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( ( # `  S
)  +  ( # `  T ) )  e. 
NN0 )
14 hashfzo0 12183 . . 3  |-  ( ( ( # `  S
)  +  ( # `  T ) )  e. 
NN0  ->  ( # `  (
0..^ ( ( # `  S )  +  (
# `  T )
) ) )  =  ( ( # `  S
)  +  ( # `  T ) ) )
1513, 14syl 16 . 2  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( # `  (
0..^ ( ( # `  S )  +  (
# `  T )
) ) )  =  ( ( # `  S
)  +  ( # `  T ) ) )
162, 9, 153eqtrd 2474 1  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( # `  ( S concat  T ) )  =  ( ( # `  S
)  +  ( # `  T ) ) )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    /\ wa 369    = wceq 1369    e. wcel 1756   ifcif 3786    e. cmpt 4345    Fn wfn 5408   ` cfv 5413  (class class class)co 6086   0cc0 9274    + caddc 9277    - cmin 9587   NN0cn0 10571  ..^cfzo 11540   #chash 12095  Word cword 12213   concat cconcat 12215
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 2419  ax-rep 4398  ax-sep 4408  ax-nul 4416  ax-pow 4465  ax-pr 4526  ax-un 6367  ax-cnex 9330  ax-resscn 9331  ax-1cn 9332  ax-icn 9333  ax-addcl 9334  ax-addrcl 9335  ax-mulcl 9336  ax-mulrcl 9337  ax-mulcom 9338  ax-addass 9339  ax-mulass 9340  ax-distr 9341  ax-i2m1 9342  ax-1ne0 9343  ax-1rid 9344  ax-rnegex 9345  ax-rrecex 9346  ax-cnre 9347  ax-pre-lttri 9348  ax-pre-lttrn 9349  ax-pre-ltadd 9350  ax-pre-mulgt0 9351
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 2256  df-mo 2257  df-clab 2425  df-cleq 2431  df-clel 2434  df-nfc 2563  df-ne 2603  df-nel 2604  df-ral 2715  df-rex 2716  df-reu 2717  df-rab 2719  df-v 2969  df-sbc 3182  df-csb 3284  df-dif 3326  df-un 3328  df-in 3330  df-ss 3337  df-pss 3339  df-nul 3633  df-if 3787  df-pw 3857  df-sn 3873  df-pr 3875  df-tp 3877  df-op 3879  df-uni 4087  df-int 4124  df-iun 4168  df-br 4288  df-opab 4346  df-mpt 4347  df-tr 4381  df-eprel 4627  df-id 4631  df-po 4636  df-so 4637  df-fr 4674  df-we 4676  df-ord 4717  df-on 4718  df-lim 4719  df-suc 4720  df-xp 4841  df-rel 4842  df-cnv 4843  df-co 4844  df-dm 4845  df-rn 4846  df-res 4847  df-ima 4848  df-iota 5376  df-fun 5415  df-fn 5416  df-f 5417  df-f1 5418  df-fo 5419  df-f1o 5420  df-fv 5421  df-riota 6047  df-ov 6089  df-oprab 6090  df-mpt2 6091  df-om 6472  df-1st 6572  df-2nd 6573  df-recs 6824  df-rdg 6858  df-1o 6912  df-oadd 6916  df-er 7093  df-en 7303  df-dom 7304  df-sdom 7305  df-fin 7306  df-card 8101  df-pnf 9412  df-mnf 9413  df-xr 9414  df-ltxr 9415  df-le 9416  df-sub 9589  df-neg 9590  df-nn 10315  df-n0 10572  df-z 10639  df-uz 10854  df-fz 11430  df-fzo 11541  df-hash 12096  df-word 12221  df-concat 12223
This theorem is referenced by:  elfzelfzccat  12271  ccatsymb  12273  ccatlid  12276  ccatrid  12277  ccatass  12278  lswccatn0lsw  12279  lswccat0lsw  12280  ccatws1len  12296  wrdlenccats1lenm1  12297  ccatswrd  12342  swrdccat1  12343  swrdccat2  12344  lenrevcctswrd  12353  ccatopth  12356  ccatopth2  12357  cats1un  12362  swrdccatfn  12365  swrdccatin2  12370  swrdccatin12lem2c  12371  swrdccatin12  12374  spllen  12388  splfv1  12389  splfv2a  12390  splval2  12391  revccat  12398  cshwlen  12428  cats1len  12479  gsumccat  15510  psgnuni  15996  efginvrel2  16215  efgsval2  16221  efgsp1  16225  efgredleme  16231  efgredlemc  16233  efgcpbllemb  16243  pgpfaclem1  16570  psgnghm  17985  ofcccat  26894  signstfvn  26922  signstfvp  26924  signstfvneq0  26925  signstfvc  26927  signsvfn  26935  signshf  26941  ccat2s1len  30217  wwlknext  30309  wwlknextbi  30310  clwlkisclwwlk2  30405  clwwlkel  30408  wlkp1lenfislenp  30465  numclwlk1lem2fo  30641
  Copyright terms: Public domain W3C validator