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

Theorem ccatlen 12586
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 ++  T ) )  =  ( ( # `  S
)  +  ( # `  T ) ) )

Proof of Theorem ccatlen
Dummy variable  x is distinct from all other variables.
StepHypRef Expression
1 ccatfval 12584 . . 3  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( S ++  T )  =  ( x  e.  ( 0..^ ( (
# `  S )  +  ( # `  T
) ) )  |->  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( # `
 S ) ) ) ) ) )
21fveq2d 5852 . 2  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( # `  ( S ++  T ) )  =  ( # `  (
x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( S `  x
) ,  ( T `
 ( x  -  ( # `  S ) ) ) ) ) ) )
3 fvex 5858 . . . . 5  |-  ( S `
 x )  e. 
_V
4 fvex 5858 . . . . 5  |-  ( T `
 ( x  -  ( # `  S ) ) )  e.  _V
53, 4ifex 3997 . . . 4  |-  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( # `
 S ) ) ) )  e.  _V
6 eqid 2454 . . . 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 5691 . . 3  |-  ( x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( S `  x
) ,  ( T `
 ( x  -  ( # `  S ) ) ) ) )  Fn  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) )
8 hashfn 12429 . . 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 12552 . . . 4  |-  ( S  e. Word  B  ->  ( # `
 S )  e. 
NN0 )
11 lencl 12552 . . . 4  |-  ( T  e. Word  B  ->  ( # `
 T )  e. 
NN0 )
12 nn0addcl 10827 . . . 4  |-  ( ( ( # `  S
)  e.  NN0  /\  ( # `  T )  e.  NN0 )  -> 
( ( # `  S
)  +  ( # `  T ) )  e. 
NN0 )
1310, 11, 12syl2an 475 . . 3  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( ( # `  S
)  +  ( # `  T ) )  e. 
NN0 )
14 hashfzo0 12475 . . 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 2499 1  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( # `  ( S ++  T ) )  =  ( ( # `  S
)  +  ( # `  T ) ) )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    /\ wa 367    = wceq 1398    e. wcel 1823   ifcif 3929    |-> cmpt 4497    Fn wfn 5565   ` cfv 5570  (class class class)co 6270   0cc0 9481    + caddc 9484    - cmin 9796   NN0cn0 10791  ..^cfzo 11799   #chash 12390  Word cword 12521   ++ cconcat 12523
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1623  ax-4 1636  ax-5 1709  ax-6 1752  ax-7 1795  ax-8 1825  ax-9 1827  ax-10 1842  ax-11 1847  ax-12 1859  ax-13 2004  ax-ext 2432  ax-rep 4550  ax-sep 4560  ax-nul 4568  ax-pow 4615  ax-pr 4676  ax-un 6565  ax-cnex 9537  ax-resscn 9538  ax-1cn 9539  ax-icn 9540  ax-addcl 9541  ax-addrcl 9542  ax-mulcl 9543  ax-mulrcl 9544  ax-mulcom 9545  ax-addass 9546  ax-mulass 9547  ax-distr 9548  ax-i2m1 9549  ax-1ne0 9550  ax-1rid 9551  ax-rnegex 9552  ax-rrecex 9553  ax-cnre 9554  ax-pre-lttri 9555  ax-pre-lttrn 9556  ax-pre-ltadd 9557  ax-pre-mulgt0 9558
This theorem depends on definitions:  df-bi 185  df-or 368  df-an 369  df-3or 972  df-3an 973  df-tru 1401  df-ex 1618  df-nf 1622  df-sb 1745  df-eu 2288  df-mo 2289  df-clab 2440  df-cleq 2446  df-clel 2449  df-nfc 2604  df-ne 2651  df-nel 2652  df-ral 2809  df-rex 2810  df-reu 2811  df-rmo 2812  df-rab 2813  df-v 3108  df-sbc 3325  df-csb 3421  df-dif 3464  df-un 3466  df-in 3468  df-ss 3475  df-pss 3477  df-nul 3784  df-if 3930  df-pw 4001  df-sn 4017  df-pr 4019  df-tp 4021  df-op 4023  df-uni 4236  df-int 4272  df-iun 4317  df-br 4440  df-opab 4498  df-mpt 4499  df-tr 4533  df-eprel 4780  df-id 4784  df-po 4789  df-so 4790  df-fr 4827  df-we 4829  df-ord 4870  df-on 4871  df-lim 4872  df-suc 4873  df-xp 4994  df-rel 4995  df-cnv 4996  df-co 4997  df-dm 4998  df-rn 4999  df-res 5000  df-ima 5001  df-iota 5534  df-fun 5572  df-fn 5573  df-f 5574  df-f1 5575  df-fo 5576  df-f1o 5577  df-fv 5578  df-riota 6232  df-ov 6273  df-oprab 6274  df-mpt2 6275  df-om 6674  df-1st 6773  df-2nd 6774  df-recs 7034  df-rdg 7068  df-1o 7122  df-oadd 7126  df-er 7303  df-en 7510  df-dom 7511  df-sdom 7512  df-fin 7513  df-card 8311  df-cda 8539  df-pnf 9619  df-mnf 9620  df-xr 9621  df-ltxr 9622  df-le 9623  df-sub 9798  df-neg 9799  df-nn 10532  df-2 10590  df-n0 10792  df-z 10861  df-uz 11083  df-fz 11676  df-fzo 11800  df-hash 12391  df-word 12529  df-concat 12531
This theorem is referenced by:  elfzelfzccat  12590  ccatsymb  12592  ccatass  12597  lswccatn0lsw  12599  ccatws1len  12618  ccat2s1len  12620  ccatswrd  12675  swrdccat1  12676  swrdccat2  12677  lenrevcctswrd  12686  ccatopth  12689  ccatopth2  12690  swrdccatfn  12701  swrdccatin2  12706  swrdccatin12lem2c  12707  swrdccatin12  12710  spllen  12724  splfv1  12725  splfv2a  12726  splval2  12727  revccat  12734  cshwlen  12764  cats1len  12819  gsumccat  16211  psgnuni  16726  efginvrel2  16947  efgsval2  16953  efgsp1  16957  efgredleme  16963  efgredlemc  16965  efgcpbllemb  16975  pgpfaclem1  17330  psgnghm  18792  wwlknext  24929  wwlknextbi  24930  clwlkisclwwlk2  24995  clwwlkel  24998  wlklenvclwlk  25044  numclwlk1lem2fo  25300  ofcccat  28765  signstfvn  28793  signstfvp  28795  signstfvc  28798  signsvfn  28806  signshf  28812  elmrsubrn  29147  ccatpfx  32656  pfxccat1  32657  lenrevpfxcctswrd  32666  pfxccatin12  32672
  Copyright terms: Public domain W3C validator