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

Theorem ccatlen 11672
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 11670 . . 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 5673 . 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 5683 . . . . 5  |-  ( S `
 x )  e. 
_V
4 fvex 5683 . . . . 5  |-  ( T `
 ( x  -  ( # `  S ) ) )  e.  _V
53, 4ifex 3741 . . . 4  |-  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( # `
 S ) ) ) )  e.  _V
6 eqid 2388 . . . 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 5514 . . 3  |-  ( x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( S `  x
) ,  ( T `
 ( x  -  ( # `  S ) ) ) ) )  Fn  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) )
8 hashfn 11577 . . 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 11663 . . . 4  |-  ( S  e. Word  B  ->  ( # `
 S )  e. 
NN0 )
11 lencl 11663 . . . 4  |-  ( T  e. Word  B  ->  ( # `
 T )  e. 
NN0 )
12 nn0addcl 10188 . . . 4  |-  ( ( ( # `  S
)  e.  NN0  /\  ( # `  T )  e.  NN0 )  -> 
( ( # `  S
)  +  ( # `  T ) )  e. 
NN0 )
1310, 11, 12syl2an 464 . . 3  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( ( # `  S
)  +  ( # `  T ) )  e. 
NN0 )
14 hashfzo0 11623 . . 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 2424 1  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( # `  ( S concat  T ) )  =  ( ( # `  S
)  +  ( # `  T ) ) )
Colors of variables: wff set class
Syntax hints:    -> wi 4    /\ wa 359    = wceq 1649    e. wcel 1717   ifcif 3683    e. cmpt 4208    Fn wfn 5390   ` cfv 5395  (class class class)co 6021   0cc0 8924    + caddc 8927    - cmin 9224   NN0cn0 10154  ..^cfzo 11066   #chash 11546  Word cword 11645   concat cconcat 11646
This theorem is referenced by:  ccatlid  11676  ccatrid  11677  ccatass  11678  ccatswrd  11701  swrdccat1  11702  swrdccat2  11703  ccatopth  11704  ccatopth2  11705  spllen  11711  splfv1  11712  splfv2a  11713  splval2  11714  cats1un  11718  revccat  11726  cats1len  11752  gsumccat  14715  efginvrel2  15287  efgsval2  15293  efgsp1  15297  efgredleme  15303  efgredlemc  15305  efgcpbllemb  15315  pgpfaclem1  15567  psgnuni  27092  psgnghm  27107
This theorem was proved from axioms:  ax-1 5  ax-2 6  ax-3 7  ax-mp 8  ax-gen 1552  ax-5 1563  ax-17 1623  ax-9 1661  ax-8 1682  ax-13 1719  ax-14 1721  ax-6 1736  ax-7 1741  ax-11 1753  ax-12 1939  ax-ext 2369  ax-rep 4262  ax-sep 4272  ax-nul 4280  ax-pow 4319  ax-pr 4345  ax-un 4642  ax-cnex 8980  ax-resscn 8981  ax-1cn 8982  ax-icn 8983  ax-addcl 8984  ax-addrcl 8985  ax-mulcl 8986  ax-mulrcl 8987  ax-mulcom 8988  ax-addass 8989  ax-mulass 8990  ax-distr 8991  ax-i2m1 8992  ax-1ne0 8993  ax-1rid 8994  ax-rnegex 8995  ax-rrecex 8996  ax-cnre 8997  ax-pre-lttri 8998  ax-pre-lttrn 8999  ax-pre-ltadd 9000  ax-pre-mulgt0 9001
This theorem depends on definitions:  df-bi 178  df-or 360  df-an 361  df-3or 937  df-3an 938  df-tru 1325  df-ex 1548  df-nf 1551  df-sb 1656  df-eu 2243  df-mo 2244  df-clab 2375  df-cleq 2381  df-clel 2384  df-nfc 2513  df-ne 2553  df-nel 2554  df-ral 2655  df-rex 2656  df-reu 2657  df-rab 2659  df-v 2902  df-sbc 3106  df-csb 3196  df-dif 3267  df-un 3269  df-in 3271  df-ss 3278  df-pss 3280  df-nul 3573  df-if 3684  df-pw 3745  df-sn 3764  df-pr 3765  df-tp 3766  df-op 3767  df-uni 3959  df-int 3994  df-iun 4038  df-br 4155  df-opab 4209  df-mpt 4210  df-tr 4245  df-eprel 4436  df-id 4440  df-po 4445  df-so 4446  df-fr 4483  df-we 4485  df-ord 4526  df-on 4527  df-lim 4528  df-suc 4529  df-om 4787  df-xp 4825  df-rel 4826  df-cnv 4827  df-co 4828  df-dm 4829  df-rn 4830  df-res 4831  df-ima 4832  df-iota 5359  df-fun 5397  df-fn 5398  df-f 5399  df-f1 5400  df-fo 5401  df-f1o 5402  df-fv 5403  df-ov 6024  df-oprab 6025  df-mpt2 6026  df-1st 6289  df-2nd 6290  df-riota 6486  df-recs 6570  df-rdg 6605  df-1o 6661  df-oadd 6665  df-er 6842  df-en 7047  df-dom 7048  df-sdom 7049  df-fin 7050  df-card 7760  df-pnf 9056  df-mnf 9057  df-xr 9058  df-ltxr 9059  df-le 9060  df-sub 9226  df-neg 9227  df-nn 9934  df-n0 10155  df-z 10216  df-uz 10422  df-fz 10977  df-fzo 11067  df-hash 11547  df-word 11651  df-concat 11652
  Copyright terms: Public domain W3C validator