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

Theorem ccatlen 12386
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 12384 . . 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 5796 . 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 5802 . . . . 5  |-  ( S `
 x )  e. 
_V
4 fvex 5802 . . . . 5  |-  ( T `
 ( x  -  ( # `  S ) ) )  e.  _V
53, 4ifex 3959 . . . 4  |-  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( # `
 S ) ) ) )  e.  _V
6 eqid 2451 . . . 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 5640 . . 3  |-  ( x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( S `  x
) ,  ( T `
 ( x  -  ( # `  S ) ) ) ) )  Fn  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) )
8 hashfn 12249 . . 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 12360 . . . 4  |-  ( S  e. Word  B  ->  ( # `
 S )  e. 
NN0 )
11 lencl 12360 . . . 4  |-  ( T  e. Word  B  ->  ( # `
 T )  e. 
NN0 )
12 nn0addcl 10719 . . . 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 12302 . . 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 2496 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 1370    e. wcel 1758   ifcif 3892    |-> cmpt 4451    Fn wfn 5514   ` cfv 5519  (class class class)co 6193   0cc0 9386    + caddc 9389    - cmin 9699   NN0cn0 10683  ..^cfzo 11658   #chash 12213  Word cword 12332   concat cconcat 12334
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1592  ax-4 1603  ax-5 1671  ax-6 1710  ax-7 1730  ax-8 1760  ax-9 1762  ax-10 1777  ax-11 1782  ax-12 1794  ax-13 1952  ax-ext 2430  ax-rep 4504  ax-sep 4514  ax-nul 4522  ax-pow 4571  ax-pr 4632  ax-un 6475  ax-cnex 9442  ax-resscn 9443  ax-1cn 9444  ax-icn 9445  ax-addcl 9446  ax-addrcl 9447  ax-mulcl 9448  ax-mulrcl 9449  ax-mulcom 9450  ax-addass 9451  ax-mulass 9452  ax-distr 9453  ax-i2m1 9454  ax-1ne0 9455  ax-1rid 9456  ax-rnegex 9457  ax-rrecex 9458  ax-cnre 9459  ax-pre-lttri 9460  ax-pre-lttrn 9461  ax-pre-ltadd 9462  ax-pre-mulgt0 9463
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 966  df-3an 967  df-tru 1373  df-ex 1588  df-nf 1591  df-sb 1703  df-eu 2264  df-mo 2265  df-clab 2437  df-cleq 2443  df-clel 2446  df-nfc 2601  df-ne 2646  df-nel 2647  df-ral 2800  df-rex 2801  df-reu 2802  df-rab 2804  df-v 3073  df-sbc 3288  df-csb 3390  df-dif 3432  df-un 3434  df-in 3436  df-ss 3443  df-pss 3445  df-nul 3739  df-if 3893  df-pw 3963  df-sn 3979  df-pr 3981  df-tp 3983  df-op 3985  df-uni 4193  df-int 4230  df-iun 4274  df-br 4394  df-opab 4452  df-mpt 4453  df-tr 4487  df-eprel 4733  df-id 4737  df-po 4742  df-so 4743  df-fr 4780  df-we 4782  df-ord 4823  df-on 4824  df-lim 4825  df-suc 4826  df-xp 4947  df-rel 4948  df-cnv 4949  df-co 4950  df-dm 4951  df-rn 4952  df-res 4953  df-ima 4954  df-iota 5482  df-fun 5521  df-fn 5522  df-f 5523  df-f1 5524  df-fo 5525  df-f1o 5526  df-fv 5527  df-riota 6154  df-ov 6196  df-oprab 6197  df-mpt2 6198  df-om 6580  df-1st 6680  df-2nd 6681  df-recs 6935  df-rdg 6969  df-1o 7023  df-oadd 7027  df-er 7204  df-en 7414  df-dom 7415  df-sdom 7416  df-fin 7417  df-card 8213  df-pnf 9524  df-mnf 9525  df-xr 9526  df-ltxr 9527  df-le 9528  df-sub 9701  df-neg 9702  df-nn 10427  df-n0 10684  df-z 10751  df-uz 10966  df-fz 11548  df-fzo 11659  df-hash 12214  df-word 12340  df-concat 12342
This theorem is referenced by:  elfzelfzccat  12390  ccatsymb  12392  ccatlid  12395  ccatrid  12396  ccatass  12397  lswccatn0lsw  12398  lswccat0lsw  12399  ccatws1len  12415  wrdlenccats1lenm1  12416  ccatswrd  12461  swrdccat1  12462  swrdccat2  12463  lenrevcctswrd  12472  ccatopth  12475  ccatopth2  12476  cats1un  12481  swrdccatfn  12484  swrdccatin2  12489  swrdccatin12lem2c  12490  swrdccatin12  12493  spllen  12507  splfv1  12508  splfv2a  12509  splval2  12510  revccat  12517  cshwlen  12547  cats1len  12598  gsumccat  15630  psgnuni  16116  efginvrel2  16337  efgsval2  16343  efgsp1  16347  efgredleme  16353  efgredlemc  16355  efgcpbllemb  16365  pgpfaclem1  16696  psgnghm  18128  ofcccat  27079  signstfvn  27107  signstfvp  27109  signstfvneq0  27110  signstfvc  27112  signsvfn  27120  signshf  27126  ccat2s1len  30405  wwlknext  30497  wwlknextbi  30498  clwlkisclwwlk2  30593  clwwlkel  30596  wlkp1lenfislenp  30653  numclwlk1lem2fo  30829
  Copyright terms: Public domain W3C validator