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

Theorem ccatlen 11143
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 11103 . . . 4  |-  ( S  e. Word  A  ->  S  e.  Fin )
2 wrdfin 11103 . . . 4  |-  ( T  e. Word  B  ->  T  e.  Fin )
3 ccatfvalfi 11140 . . . 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 5633 . 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 5648 . . . . . . 7  |-  ( ( S  e. Word  A  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( S `  x )  e.  _V )
76adantlr 477 . . . . . 6  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( S `  x )  e.  _V )
8 simplr 528 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  T  e. Word  B
)
9 elfzoelz 10355 . . . . . . . . 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 11088 . . . . . . . . . 10  |-  ( S  e. Word  A  ->  ( `  S )  e.  NN0 )
1211ad2antrr 488 . . . . . . . . 9  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( `  S )  e.  NN0 )
1312nn0zd 9578 . . . . . . . 8  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( `  S )  e.  ZZ )
1410, 13zsubcld 9585 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( x  -  ( `  S ) )  e.  ZZ )
15 fvexg 5648 . . . . . . 7  |-  ( ( T  e. Word  B  /\  ( x  -  ( `  S ) )  e.  ZZ )  ->  ( T `  ( x  -  ( `  S )
) )  e.  _V )
168, 14, 15syl2anc 411 . . . . . 6  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( T `  ( x  -  ( `  S ) ) )  e.  _V )
177, 16ifexd 4575 . . . . 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 2603 . . . 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 2229 . . . . 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 5450 . . . 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 9469 . . . 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 9578 . . . . 5  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  S )  e.  ZZ )
25 lencl 11088 . . . . . . 7  |-  ( T  e. Word  B  ->  ( `  T )  e.  NN0 )
2625nn0zd 9578 . . . . . 6  |-  ( T  e. Word  B  ->  ( `  T )  e.  ZZ )
2726adantl 277 . . . . 5  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  T )  e.  ZZ )
2824, 27zaddcld 9584 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( ( `  S
)  +  ( `  T
) )  e.  ZZ )
29 fzofig 10666 . . . 4  |-  ( ( 0  e.  ZZ  /\  ( ( `  S )  +  ( `  T )
)  e.  ZZ )  ->  ( 0..^ ( ( `  S )  +  ( `  T )
) )  e.  Fin )
3022, 28, 29syl2anc 411 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( 0..^ ( ( `  S )  +  ( `  T ) ) )  e.  Fin )
31 fihashfn 11034 . . 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 411 . 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 9415 . . . 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 11058 . . 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 2266 1  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  ( S ++  T ) )  =  ( ( `  S
)  +  ( `  T
) ) )
Colors of variables: wff set class
Syntax hints:    -> wi 4    /\ wa 104    = wceq 1395    e. wcel 2200   A.wral 2508   _Vcvv 2799   ifcif 3602    |-> cmpt 4145    Fn wfn 5313   ` cfv 5318  (class class class)co 6007   Fincfn 6895   0cc0 8010    + caddc 8013    - cmin 8328   NN0cn0 9380   ZZcz 9457  ..^cfzo 10350  ♯chash 11009  Word cword 11084   ++ cconcat 11138
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 617  ax-in2 618  ax-io 714  ax-5 1493  ax-7 1494  ax-gen 1495  ax-ie1 1539  ax-ie2 1540  ax-8 1550  ax-10 1551  ax-11 1552  ax-i12 1553  ax-bndl 1555  ax-4 1556  ax-17 1572  ax-i9 1576  ax-ial 1580  ax-i5r 1581  ax-13 2202  ax-14 2203  ax-ext 2211  ax-coll 4199  ax-sep 4202  ax-nul 4210  ax-pow 4258  ax-pr 4293  ax-un 4524  ax-setind 4629  ax-iinf 4680  ax-cnex 8101  ax-resscn 8102  ax-1cn 8103  ax-1re 8104  ax-icn 8105  ax-addcl 8106  ax-addrcl 8107  ax-mulcl 8108  ax-addcom 8110  ax-addass 8112  ax-distr 8114  ax-i2m1 8115  ax-0lt1 8116  ax-0id 8118  ax-rnegex 8119  ax-cnre 8121  ax-pre-ltirr 8122  ax-pre-ltwlin 8123  ax-pre-lttrn 8124  ax-pre-apti 8125  ax-pre-ltadd 8126
This theorem depends on definitions:  df-bi 117  df-dc 840  df-3or 1003  df-3an 1004  df-tru 1398  df-fal 1401  df-nf 1507  df-sb 1809  df-eu 2080  df-mo 2081  df-clab 2216  df-cleq 2222  df-clel 2225  df-nfc 2361  df-ne 2401  df-nel 2496  df-ral 2513  df-rex 2514  df-reu 2515  df-rab 2517  df-v 2801  df-sbc 3029  df-csb 3125  df-dif 3199  df-un 3201  df-in 3203  df-ss 3210  df-nul 3492  df-if 3603  df-pw 3651  df-sn 3672  df-pr 3673  df-op 3675  df-uni 3889  df-int 3924  df-iun 3967  df-br 4084  df-opab 4146  df-mpt 4147  df-tr 4183  df-id 4384  df-iord 4457  df-on 4459  df-ilim 4460  df-suc 4462  df-iom 4683  df-xp 4725  df-rel 4726  df-cnv 4727  df-co 4728  df-dm 4729  df-rn 4730  df-res 4731  df-ima 4732  df-iota 5278  df-fun 5320  df-fn 5321  df-f 5322  df-f1 5323  df-fo 5324  df-f1o 5325  df-fv 5326  df-riota 5960  df-ov 6010  df-oprab 6011  df-mpo 6012  df-1st 6292  df-2nd 6293  df-recs 6457  df-frec 6543  df-1o 6568  df-er 6688  df-en 6896  df-dom 6897  df-fin 6898  df-pnf 8194  df-mnf 8195  df-xr 8196  df-ltxr 8197  df-le 8198  df-sub 8330  df-neg 8331  df-inn 9122  df-n0 9381  df-z 9458  df-uz 9734  df-fz 10217  df-fzo 10351  df-ihash 11010  df-word 11085  df-concat 11139
This theorem is referenced by:  ccat0  11144  elfzelfzccat  11148  ccatsymb  11150  ccatass  11156  lswccatn0lsw  11159  ccatws1leng  11182  ccatswrd  11217  swrdccat2  11218  ccatpfx  11248  pfxccat1  11249  lenrevpfxcctswrd  11259  ccatopth  11263  ccatopth2  11264  swrdccatfn  11271  swrdccatin2  11276  pfxccatin12lem2c  11277  cats1lend  11314  clwwlkccatlem  16137
  Copyright terms: Public domain W3C validator