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

Theorem ccatlen 11171
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 11131 . . . 4  |-  ( S  e. Word  A  ->  S  e.  Fin )
2 wrdfin 11131 . . . 4  |-  ( T  e. Word  B  ->  T  e.  Fin )
3 ccatfvalfi 11168 . . . 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 5643 . 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 5658 . . . . . . 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 529 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  T  e. Word  B
)
9 elfzoelz 10381 . . . . . . . . 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 11116 . . . . . . . . . 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 9599 . . . . . . . 8  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( `  S )  e.  ZZ )
1410, 13zsubcld 9606 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( x  -  ( `  S ) )  e.  ZZ )
15 fvexg 5658 . . . . . . 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 4581 . . . . 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 2605 . . . 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 2231 . . . . 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 5459 . . . 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 9490 . . . 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 9599 . . . . 5  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  S )  e.  ZZ )
25 lencl 11116 . . . . . . 7  |-  ( T  e. Word  B  ->  ( `  T )  e.  NN0 )
2625nn0zd 9599 . . . . . 6  |-  ( T  e. Word  B  ->  ( `  T )  e.  ZZ )
2726adantl 277 . . . . 5  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  T )  e.  ZZ )
2824, 27zaddcld 9605 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( ( `  S
)  +  ( `  T
) )  e.  ZZ )
29 fzofig 10693 . . . 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 11062 . . 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 9436 . . . 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 11086 . . 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 2268 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 1397    e. wcel 2202   A.wral 2510   _Vcvv 2802   ifcif 3605    |-> cmpt 4150    Fn wfn 5321   ` cfv 5326  (class class class)co 6017   Fincfn 6908   0cc0 8031    + caddc 8034    - cmin 8349   NN0cn0 9401   ZZcz 9478  ..^cfzo 10376  ♯chash 11036  Word cword 11112   ++ cconcat 11166
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 619  ax-in2 620  ax-io 716  ax-5 1495  ax-7 1496  ax-gen 1497  ax-ie1 1541  ax-ie2 1542  ax-8 1552  ax-10 1553  ax-11 1554  ax-i12 1555  ax-bndl 1557  ax-4 1558  ax-17 1574  ax-i9 1578  ax-ial 1582  ax-i5r 1583  ax-13 2204  ax-14 2205  ax-ext 2213  ax-coll 4204  ax-sep 4207  ax-nul 4215  ax-pow 4264  ax-pr 4299  ax-un 4530  ax-setind 4635  ax-iinf 4686  ax-cnex 8122  ax-resscn 8123  ax-1cn 8124  ax-1re 8125  ax-icn 8126  ax-addcl 8127  ax-addrcl 8128  ax-mulcl 8129  ax-addcom 8131  ax-addass 8133  ax-distr 8135  ax-i2m1 8136  ax-0lt1 8137  ax-0id 8139  ax-rnegex 8140  ax-cnre 8142  ax-pre-ltirr 8143  ax-pre-ltwlin 8144  ax-pre-lttrn 8145  ax-pre-apti 8146  ax-pre-ltadd 8147
This theorem depends on definitions:  df-bi 117  df-dc 842  df-3or 1005  df-3an 1006  df-tru 1400  df-fal 1403  df-nf 1509  df-sb 1811  df-eu 2082  df-mo 2083  df-clab 2218  df-cleq 2224  df-clel 2227  df-nfc 2363  df-ne 2403  df-nel 2498  df-ral 2515  df-rex 2516  df-reu 2517  df-rab 2519  df-v 2804  df-sbc 3032  df-csb 3128  df-dif 3202  df-un 3204  df-in 3206  df-ss 3213  df-nul 3495  df-if 3606  df-pw 3654  df-sn 3675  df-pr 3676  df-op 3678  df-uni 3894  df-int 3929  df-iun 3972  df-br 4089  df-opab 4151  df-mpt 4152  df-tr 4188  df-id 4390  df-iord 4463  df-on 4465  df-ilim 4466  df-suc 4468  df-iom 4689  df-xp 4731  df-rel 4732  df-cnv 4733  df-co 4734  df-dm 4735  df-rn 4736  df-res 4737  df-ima 4738  df-iota 5286  df-fun 5328  df-fn 5329  df-f 5330  df-f1 5331  df-fo 5332  df-f1o 5333  df-fv 5334  df-riota 5970  df-ov 6020  df-oprab 6021  df-mpo 6022  df-1st 6302  df-2nd 6303  df-recs 6470  df-frec 6556  df-1o 6581  df-er 6701  df-en 6909  df-dom 6910  df-fin 6911  df-pnf 8215  df-mnf 8216  df-xr 8217  df-ltxr 8218  df-le 8219  df-sub 8351  df-neg 8352  df-inn 9143  df-n0 9402  df-z 9479  df-uz 9755  df-fz 10243  df-fzo 10377  df-ihash 11037  df-word 11113  df-concat 11167
This theorem is referenced by:  ccat0  11172  elfzelfzccat  11176  ccatsymb  11178  ccatass  11184  lswccatn0lsw  11187  ccatws1leng  11210  ccatswrd  11250  swrdccat2  11251  ccatpfx  11281  pfxccat1  11282  lenrevpfxcctswrd  11292  ccatopth  11296  ccatopth2  11297  swrdccatfn  11304  swrdccatin2  11309  pfxccatin12lem2c  11310  cats1lend  11347  clwwlkccatlem  16250  clwwlknccat  16273
  Copyright terms: Public domain W3C validator