ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  ccatlen Unicode version

Theorem ccatlen 11363
Description: The length of a concatenated word. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Revised by JJ, 1-Jan-2024.)
Assertion
Ref Expression
ccatlen  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  ( S ++  T ) )  =  ( ( `  S
)  +  ( `  T
) ) )

Proof of Theorem ccatlen
Dummy variable  x is distinct from all other variables.
StepHypRef Expression
1 wrdfin 11323 . . . 4  |-  ( S  e. Word  A  ->  S  e.  Fin )
2 wrdfin 11323 . . . 4  |-  ( T  e. Word  B  ->  T  e.  Fin )
3 ccatfvalfi 11360 . . . 4  |-  ( ( S  e.  Fin  /\  T  e.  Fin )  ->  ( S ++  T )  =  ( x  e.  ( 0..^ ( ( `  S )  +  ( `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) ) ) )
41, 2, 3syl2an 289 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( S ++  T )  =  ( x  e.  ( 0..^ ( ( `  S )  +  ( `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) ) ) )
54fveq2d 5699 . 2  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  ( S ++  T ) )  =  ( `  ( x  e.  ( 0..^ ( ( `  S )  +  ( `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) ) ) ) )
6 fvexg 5714 . . . . . . 7  |-  ( ( S  e. Word  A  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( S `  x )  e.  _V )
76adantlr 481 . . . . . 6  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( S `  x )  e.  _V )
8 simplr 533 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  T  e. Word  B
)
9 elfzoelz 10554 . . . . . . . . 9  |-  ( x  e.  ( 0..^ ( ( `  S )  +  ( `  T )
) )  ->  x  e.  ZZ )
109adantl 277 . . . . . . . 8  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  x  e.  ZZ )
11 lencl 11308 . . . . . . . . . 10  |-  ( S  e. Word  A  ->  ( `  S )  e.  NN0 )
1211ad2antrr 492 . . . . . . . . 9  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( `  S )  e.  NN0 )
1312nn0zd 9766 . . . . . . . 8  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( `  S )  e.  ZZ )
1410, 13zsubcld 9773 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( x  -  ( `  S ) )  e.  ZZ )
15 fvexg 5714 . . . . . . 7  |-  ( ( T  e. Word  B  /\  ( x  -  ( `  S ) )  e.  ZZ )  ->  ( T `  ( x  -  ( `  S )
) )  e.  _V )
168, 14, 15syl2anc 415 . . . . . 6  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( T `  ( x  -  ( `  S ) ) )  e.  _V )
177, 16ifexd 4630 . . . . 5  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  if ( x  e.  ( 0..^ ( `  S ) ) ,  ( S `  x
) ,  ( T `
 ( x  -  ( `  S ) ) ) )  e.  _V )
1817ralrimiva 2623 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  A. x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) )  e.  _V )
19 eqid 2238 . . . . 5  |-  ( 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
) ) ) ) )
2019fnmpt 5510 . . . 4  |-  ( A. x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) )  e.  _V  ->  ( x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) )  |->  if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) ) )  Fn  (
0..^ ( ( `  S
)  +  ( `  T
) ) ) )
2118, 20syl 14 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) )  |->  if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) ) )  Fn  (
0..^ ( ( `  S
)  +  ( `  T
) ) ) )
22 0zd 9656 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  0  e.  ZZ )
2311adantr 276 . . . . . 6  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  S )  e.  NN0 )
2423nn0zd 9766 . . . . 5  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  S )  e.  ZZ )
25 lencl 11308 . . . . . . 7  |-  ( T  e. Word  B  ->  ( `  T )  e.  NN0 )
2625nn0zd 9766 . . . . . 6  |-  ( T  e. Word  B  ->  ( `  T )  e.  ZZ )
2726adantl 277 . . . . 5  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  T )  e.  ZZ )
2824, 27zaddcld 9772 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( ( `  S
)  +  ( `  T
) )  e.  ZZ )
29 fzofig 10869 . . . 4  |-  ( ( 0  e.  ZZ  /\  ( ( `  S )  +  ( `  T )
)  e.  ZZ )  ->  ( 0..^ ( ( `  S )  +  ( `  T )
) )  e.  Fin )
3022, 28, 29syl2anc 415 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( 0..^ ( ( `  S )  +  ( `  T ) ) )  e.  Fin )
31 fihashfn 11240 . . 3  |-  ( ( ( x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) )  |->  if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) ) )  Fn  (
0..^ ( ( `  S
)  +  ( `  T
) ) )  /\  ( 0..^ ( ( `  S
)  +  ( `  T
) ) )  e. 
Fin )  ->  ( `  ( x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) )  |->  if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) ) ) )  =  ( `  ( 0..^ ( ( `  S )  +  ( `  T )
) ) ) )
3221, 30, 31syl2anc 415 . 2  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  ( x  e.  ( 0..^ ( ( `  S )  +  ( `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) ) ) )  =  ( `  ( 0..^ ( ( `  S )  +  ( `  T )
) ) ) )
33 nn0addcl 9598 . . . 4  |-  ( ( ( `  S )  e.  NN0  /\  ( `  T
)  e.  NN0 )  ->  ( ( `  S
)  +  ( `  T
) )  e.  NN0 )
3411, 25, 33syl2an 289 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( ( `  S
)  +  ( `  T
) )  e.  NN0 )
35 hashfzo0 11264 . . 3  |-  ( ( ( `  S )  +  ( `  T )
)  e.  NN0  ->  ( `  ( 0..^ ( ( `  S )  +  ( `  T ) ) ) )  =  ( ( `  S )  +  ( `  T ) ) )
3634, 35syl 14 . 2  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  ( 0..^ ( ( `  S )  +  ( `  T )
) ) )  =  ( ( `  S
)  +  ( `  T
) ) )
375, 32, 363eqtrd 2275 1  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  ( S ++  T ) )  =  ( ( `  S
)  +  ( `  T
) ) )
Colors of variables:    wff set class
This proof depends on syntax axioms:    -> wi 4    /\ wa 104    = wceq 1402    e. wcel 2209   A.wral 2528   _Vcvv 2821   ifcif 3638    |-> cmpt 4192    Fn wfn 5372   ` cfv 5377  (class class class)co 6085   Fincfn 7022   0cc0 8179    + caddc 8182    - cmin 8497   NN0cn0 9563   ZZcz 9644  ..^cfzo 10549  ♯chash 11214  Word cword 11304   ++ cconcat 11358
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 623  ax-in2 624  ax-io 721  ax-5 1500  ax-7 1501  ax-gen 1502  ax-ie1 1546  ax-ie2 1547  ax-8 1557  ax-10 1558  ax-11 1559  ax-i12 1560  ax-bndl 1562  ax-4 1563  ax-17 1579  ax-i9 1583  ax-ial 1587  ax-i5r 1588  ax-14 2212  ax-ext 2220  ax-coll 4246  ax-sep 4249  ax-nul 4259  ax-pow 4311  ax-pr 4346  ax-un 4578  ax-setind 4684  ax-iinf 4735  ax-cnex 8270  ax-resscn 8271  ax-1cn 8272  ax-1re 8273  ax-icn 8274  ax-addcl 8275  ax-addrcl 8276  ax-mulcl 8277  ax-addcom 8279  ax-addass 8281  ax-distr 8283  ax-i2m1 8284  ax-0lt1 8285  ax-0id 8287  ax-rnegex 8288  ax-cnre 8290  ax-pre-ltirr 8291  ax-pre-ltwlin 8292  ax-pre-lttrn 8293  ax-pre-apti 8294  ax-pre-ltadd 8295
This proof depends on definitions:  df-bi 117  df-dc 847  df-3or 1010  df-3an 1011  df-tru 1405  df-fal 1408  df-nf 1514  df-sb 1816  df-eu 2089  df-mo 2090  df-clab 2225  df-cleq 2231  df-clel 2234  df-nfc 2381  df-ne 2421  df-nel 2516  df-ral 2533  df-rex 2534  df-reu 2535  df-rab 2537  df-v 2823  df-sbc 3052  df-csb 3148  df-dif 3222  df-un 3224  df-in 3226  df-ss 3233  df-nul 3521  df-if 3639  df-pw 3690  df-sn 3715  df-pr 3716  df-op 3718  df-uni 3936  df-int 3971  df-iun 4014  df-br 4131  df-opab 4193  df-mpt 4194  df-tr 4230  df-id 4438  df-iord 4511  df-on 4513  df-ilim 4514  df-suc 4516  df-iom 4738  df-xp 4780  df-rel 4781  df-cnv 4782  df-co 4783  df-dm 4784  df-rn 4785  df-res 4786  df-ima 4787  df-iota 5337  df-fun 5379  df-fn 5380  df-f 5381  df-f1 5382  df-fo 5383  df-f1o 5384  df-fv 5385  df-riota 6038  df-ov 6088  df-oprab 6089  df-mpo 6090  df-1st 6374  df-2nd 6375  df-recs 6576  df-frec 6662  df-1o 6687  df-er 6807  df-en 7023  df-dom 7024  df-fin 7025  df-pnf 8362  df-mnf 8363  df-xr 8364  df-ltxr 8365  df-le 8366  df-sub 8499  df-neg 8500  df-inn 9305  df-n0 9564  df-z 9645  df-uz 9922  df-fz 10412  df-fzo 10550  df-ihash 11215  df-word 11305  df-concat 11359
This theorem is used by:  ccat0  11364  elfzelfzccat  11368  ccatsymb  11370  ccatass  11376  lswccatn0lsw  11379  ccatws1leng  11402  ccatswrd  11442  swrdccat2  11443  ccatpfx  11473  pfxccat1  11474  lenrevpfxcctswrd  11484  ccatopth  11488  ccatopth2  11489  swrdccatfn  11496  swrdccatin2  11501  pfxccatin12lem2c  11502  cats1lend  11539  clwwlkccatlem  16641  clwwlknccat  16664
  Copyright terms: Public domain W3C validator