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

Theorem ccatlen 11221
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 11181 . . . 4  |-  ( S  e. Word  A  ->  S  e.  Fin )
2 wrdfin 11181 . . . 4  |-  ( T  e. Word  B  ->  T  e.  Fin )
3 ccatfvalfi 11218 . . . 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 5652 . 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 5667 . . . . . . 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 10427 . . . . . . . . 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 11166 . . . . . . . . . 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 9644 . . . . . . . 8  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( `  S )  e.  ZZ )
1410, 13zsubcld 9651 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( x  -  ( `  S ) )  e.  ZZ )
15 fvexg 5667 . . . . . . 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 4587 . . . . 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 2606 . . . 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 5466 . . . 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 9535 . . . 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 9644 . . . . 5  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  S )  e.  ZZ )
25 lencl 11166 . . . . . . 7  |-  ( T  e. Word  B  ->  ( `  T )  e.  NN0 )
2625nn0zd 9644 . . . . . 6  |-  ( T  e. Word  B  ->  ( `  T )  e.  ZZ )
2726adantl 277 . . . . 5  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( `  T )  e.  ZZ )
2824, 27zaddcld 9650 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  B )  ->  ( ( `  S
)  +  ( `  T
) )  e.  ZZ )
29 fzofig 10740 . . . 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 11109 . . 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 9479 . . . 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 11133 . . 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 1398    e. wcel 2202   A.wral 2511   _Vcvv 2803   ifcif 3607    |-> cmpt 4155    Fn wfn 5328   ` cfv 5333  (class class class)co 6028   Fincfn 6952   0cc0 8075    + caddc 8078    - cmin 8392   NN0cn0 9444   ZZcz 9523  ..^cfzo 10422  ♯chash 11083  Word cword 11162   ++ cconcat 11216
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 717  ax-5 1496  ax-7 1497  ax-gen 1498  ax-ie1 1542  ax-ie2 1543  ax-8 1553  ax-10 1554  ax-11 1555  ax-i12 1556  ax-bndl 1558  ax-4 1559  ax-17 1575  ax-i9 1579  ax-ial 1583  ax-i5r 1584  ax-13 2204  ax-14 2205  ax-ext 2213  ax-coll 4209  ax-sep 4212  ax-nul 4220  ax-pow 4270  ax-pr 4305  ax-un 4536  ax-setind 4641  ax-iinf 4692  ax-cnex 8166  ax-resscn 8167  ax-1cn 8168  ax-1re 8169  ax-icn 8170  ax-addcl 8171  ax-addrcl 8172  ax-mulcl 8173  ax-addcom 8175  ax-addass 8177  ax-distr 8179  ax-i2m1 8180  ax-0lt1 8181  ax-0id 8183  ax-rnegex 8184  ax-cnre 8186  ax-pre-ltirr 8187  ax-pre-ltwlin 8188  ax-pre-lttrn 8189  ax-pre-apti 8190  ax-pre-ltadd 8191
This theorem depends on definitions:  df-bi 117  df-dc 843  df-3or 1006  df-3an 1007  df-tru 1401  df-fal 1404  df-nf 1510  df-sb 1811  df-eu 2082  df-mo 2083  df-clab 2218  df-cleq 2224  df-clel 2227  df-nfc 2364  df-ne 2404  df-nel 2499  df-ral 2516  df-rex 2517  df-reu 2518  df-rab 2520  df-v 2805  df-sbc 3033  df-csb 3129  df-dif 3203  df-un 3205  df-in 3207  df-ss 3214  df-nul 3497  df-if 3608  df-pw 3658  df-sn 3679  df-pr 3680  df-op 3682  df-uni 3899  df-int 3934  df-iun 3977  df-br 4094  df-opab 4156  df-mpt 4157  df-tr 4193  df-id 4396  df-iord 4469  df-on 4471  df-ilim 4472  df-suc 4474  df-iom 4695  df-xp 4737  df-rel 4738  df-cnv 4739  df-co 4740  df-dm 4741  df-rn 4742  df-res 4743  df-ima 4744  df-iota 5293  df-fun 5335  df-fn 5336  df-f 5337  df-f1 5338  df-fo 5339  df-f1o 5340  df-fv 5341  df-riota 5981  df-ov 6031  df-oprab 6032  df-mpo 6033  df-1st 6312  df-2nd 6313  df-recs 6514  df-frec 6600  df-1o 6625  df-er 6745  df-en 6953  df-dom 6954  df-fin 6955  df-pnf 8258  df-mnf 8259  df-xr 8260  df-ltxr 8261  df-le 8262  df-sub 8394  df-neg 8395  df-inn 9186  df-n0 9445  df-z 9524  df-uz 9800  df-fz 10289  df-fzo 10423  df-ihash 11084  df-word 11163  df-concat 11217
This theorem is referenced by:  ccat0  11222  elfzelfzccat  11226  ccatsymb  11228  ccatass  11234  lswccatn0lsw  11237  ccatws1leng  11260  ccatswrd  11300  swrdccat2  11301  ccatpfx  11331  pfxccat1  11332  lenrevpfxcctswrd  11342  ccatopth  11346  ccatopth2  11347  swrdccatfn  11354  swrdccatin2  11359  pfxccatin12lem2c  11360  cats1lend  11397  clwwlkccatlem  16324  clwwlknccat  16347
  Copyright terms: Public domain W3C validator