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

Theorem ccatcl 11376
Description: The concatenation of two words is a word. (Contributed by FL, 2-Feb-2014.) (Proof shortened by Stefan O'Rear, 15-Aug-2015.) (Proof shortened by AV, 29-Apr-2020.)
Assertion
Ref Expression
ccatcl  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( S ++  T )  e. Word  B )

Proof of Theorem ccatcl
Dummy variable  x is distinct from all other variables.
StepHypRef Expression
1 wrdfin 11338 . . 3  |-  ( S  e. Word  B  ->  S  e.  Fin )
2 wrdfin 11338 . . 3  |-  ( T  e. Word  B  ->  T  e.  Fin )
3 ccatfvalfi 11375 . . 3  |-  ( ( 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 . 2  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( S ++  T )  =  ( x  e.  ( 0..^ ( ( `  S )  +  ( `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) ) ) )
5 wrdf 11325 . . . . . . 7  |-  ( S  e. Word  B  ->  S : ( 0..^ ( `  S ) ) --> B )
65ad2antrr 492 . . . . . 6  |-  ( ( ( S  e. Word  B  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  S : ( 0..^ ( `  S
) ) --> B )
76ffvelcdmda 5843 . . . . 5  |-  ( ( ( ( S  e. Word  B  /\  T  e. Word  B
)  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  /\  x  e.  ( 0..^ ( `  S
) ) )  -> 
( S `  x
)  e.  B )
8 wrdf 11325 . . . . . . 7  |-  ( T  e. Word  B  ->  T : ( 0..^ ( `  T ) ) --> B )
98ad3antlr 497 . . . . . 6  |-  ( ( ( ( S  e. Word  B  /\  T  e. Word  B
)  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  /\  -.  x  e.  ( 0..^ ( `  S
) ) )  ->  T : ( 0..^ ( `  T ) ) --> B )
10 simpr 110 . . . . . . . 8  |-  ( ( ( S  e. Word  B  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )
1110anim1i 340 . . . . . . 7  |-  ( ( ( ( S  e. Word  B  /\  T  e. Word  B
)  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  /\  -.  x  e.  ( 0..^ ( `  S
) ) )  -> 
( x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) )  /\  -.  x  e.  (
0..^ ( `  S )
) ) )
12 lencl 11323 . . . . . . . . . 10  |-  ( S  e. Word  B  ->  ( `  S )  e.  NN0 )
1312nn0zd 9771 . . . . . . . . 9  |-  ( S  e. Word  B  ->  ( `  S )  e.  ZZ )
14 lencl 11323 . . . . . . . . . 10  |-  ( T  e. Word  B  ->  ( `  T )  e.  NN0 )
1514nn0zd 9771 . . . . . . . . 9  |-  ( T  e. Word  B  ->  ( `  T )  e.  ZZ )
1613, 15anim12i 338 . . . . . . . 8  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( ( `  S
)  e.  ZZ  /\  ( `  T )  e.  ZZ ) )
1716ad2antrr 492 . . . . . . 7  |-  ( ( ( ( S  e. Word  B  /\  T  e. Word  B
)  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  /\  -.  x  e.  ( 0..^ ( `  S
) ) )  -> 
( ( `  S
)  e.  ZZ  /\  ( `  T )  e.  ZZ ) )
18 fzocatel 10628 . . . . . . 7  |-  ( ( ( x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) )  /\  -.  x  e.  (
0..^ ( `  S )
) )  /\  (
( `  S )  e.  ZZ  /\  ( `  T
)  e.  ZZ ) )  ->  ( x  -  ( `  S )
)  e.  ( 0..^ ( `  T )
) )
1911, 17, 18syl2anc 415 . . . . . 6  |-  ( ( ( ( S  e. Word  B  /\  T  e. Word  B
)  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  /\  -.  x  e.  ( 0..^ ( `  S
) ) )  -> 
( x  -  ( `  S ) )  e.  ( 0..^ ( `  T
) ) )
209, 19ffvelcdmd 5844 . . . . 5  |-  ( ( ( ( S  e. Word  B  /\  T  e. Word  B
)  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  /\  -.  x  e.  ( 0..^ ( `  S
) ) )  -> 
( T `  (
x  -  ( `  S
) ) )  e.  B )
21 elfzoelz 10565 . . . . . . 7  |-  ( x  e.  ( 0..^ ( ( `  S )  +  ( `  T )
) )  ->  x  e.  ZZ )
2221adantl 277 . . . . . 6  |-  ( ( ( S  e. Word  B  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  x  e.  ZZ )
23 0zd 9661 . . . . . 6  |-  ( ( ( S  e. Word  B  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  0  e.  ZZ )
2413ad2antrr 492 . . . . . 6  |-  ( ( ( S  e. Word  B  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  ( `  S )  e.  ZZ )
25 fzodcel 10571 . . . . . 6  |-  ( ( x  e.  ZZ  /\  0  e.  ZZ  /\  ( `  S )  e.  ZZ )  -> DECID 
x  e.  ( 0..^ ( `  S )
) )
2622, 23, 24, 25syl3anc 1278 . . . . 5  |-  ( ( ( S  e. Word  B  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  -> DECID 
x  e.  ( 0..^ ( `  S )
) )
277, 20, 26ifcldadc 3670 . . . 4  |-  ( ( ( S  e. Word  B  /\  T  e. Word  B )  /\  x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) )  ->  if ( x  e.  ( 0..^ ( `  S ) ) ,  ( S `  x
) ,  ( T `
 ( x  -  ( `  S ) ) ) )  e.  B
)
2827fmpttd 5863 . . 3  |-  ( ( 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
) ) ) --> B )
2912adantr 276 . . . 4  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( `  S )  e.  NN0 )
3014adantl 277 . . . 4  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( `  T )  e.  NN0 )
3129, 30nn0addcld 9629 . . 3  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( ( `  S
)  +  ( `  T
) )  e.  NN0 )
32 iswrdinn0 11324 . . 3  |-  ( ( ( x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) )  |->  if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) ) ) : ( 0..^ ( ( `  S
)  +  ( `  T
) ) ) --> B  /\  ( ( `  S
)  +  ( `  T
) )  e.  NN0 )  ->  ( x  e.  ( 0..^ ( ( `  S )  +  ( `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) ) )  e. Word  B
)
3328, 31, 32syl2anc 415 . 2  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( x  e.  ( 0..^ ( ( `  S
)  +  ( `  T
) ) )  |->  if ( x  e.  ( 0..^ ( `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( `  S ) ) ) ) )  e. Word  B
)
344, 33eqeltrd 2315 1  |-  ( ( S  e. Word  B  /\  T  e. Word  B )  ->  ( S ++  T )  e. Word  B )
Colors of variables:    wff set class
This proof depends on syntax axioms:   -. wn 3    -> wi 4    /\ wa 104  DECID wdc 846    = wceq 1402    e. wcel 2209   ifcif 3638    |-> cmpt 4192   -->wf 5373   ` cfv 5377  (class class class)co 6085   Fincfn 7022   0cc0 8180    + caddc 8183    - cmin 8499   NN0cn0 9568   ZZcz 9649  ..^cfzo 10560  ♯chash 11229  Word cword 11319   ++ cconcat 11373
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 8271  ax-resscn 8272  ax-1cn 8273  ax-1re 8274  ax-icn 8275  ax-addcl 8276  ax-addrcl 8277  ax-mulcl 8278  ax-addcom 8280  ax-addass 8282  ax-distr 8284  ax-i2m1 8285  ax-0lt1 8286  ax-0id 8288  ax-rnegex 8289  ax-cnre 8291  ax-pre-ltirr 8292  ax-pre-ltwlin 8293  ax-pre-lttrn 8294  ax-pre-apti 8295  ax-pre-ltadd 8296
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 8363  df-mnf 8364  df-xr 8365  df-ltxr 8366  df-le 8367  df-sub 8501  df-neg 8502  df-inn 9308  df-n0 9569  df-z 9650  df-uz 9932  df-fz 10423  df-fzo 10561  df-ihash 11230  df-word 11320  df-concat 11374
This theorem is used by:  ccatclab  11377  ccatsymb  11385  ccatass  11391  lswccatn0lsw  11394  ccatalpha  11396  ccatws1cl  11415  ccatswrd  11457  swrdccat2  11458  ccatpfx  11488  pfxccat1  11489  swrdccatfn  11511  swrdccatin1  11512  swrdccatin2  11516  pfxccatin12lem2c  11517  pfxccatpfx1  11523  pfxccatpfx2  11524  cats1cld  11550  cats2catd  11556  clwwlkccat  16764
  Copyright terms: Public domain W3C validator