MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  swrdcl Structured version   Unicode version

Theorem swrdcl 12426
Description: Closure of the subword extractor. (Contributed by Stefan O'Rear, 16-Aug-2015.) (Revised by Mario Carneiro, 26-Feb-2016.)
Assertion
Ref Expression
swrdcl  |-  ( S  e. Word  A  ->  ( S substr  <. F ,  L >. )  e. Word  A )

Proof of Theorem swrdcl
Dummy variables  s 
b  x are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 eleq1 2523 . 2  |-  ( ( S substr  <. F ,  L >. )  =  (/)  ->  (
( S substr  <. F ,  L >. )  e. Word  A  <->  (/)  e. Word  A ) )
2 n0 3747 . . . 4  |-  ( ( S substr  <. F ,  L >. )  =/=  (/)  <->  E. x  x  e.  ( S substr  <. F ,  L >. ) )
3 df-substr 12344 . . . . . . 7  |- substr  =  ( s  e.  _V , 
b  e.  ( ZZ 
X.  ZZ )  |->  if ( ( ( 1st `  b )..^ ( 2nd `  b ) )  C_  dom  s ,  ( x  e.  ( 0..^ ( ( 2nd `  b
)  -  ( 1st `  b ) ) ) 
|->  ( s `  (
x  +  ( 1st `  b ) ) ) ) ,  (/) ) )
43elmpt2cl2 6409 . . . . . 6  |-  ( x  e.  ( S substr  <. F ,  L >. )  ->  <. F ,  L >.  e.  ( ZZ 
X.  ZZ ) )
5 opelxp 4970 . . . . . 6  |-  ( <. F ,  L >.  e.  ( ZZ  X.  ZZ ) 
<->  ( F  e.  ZZ  /\  L  e.  ZZ ) )
64, 5sylib 196 . . . . 5  |-  ( x  e.  ( S substr  <. F ,  L >. )  ->  ( F  e.  ZZ  /\  L  e.  ZZ ) )
76exlimiv 1689 . . . 4  |-  ( E. x  x  e.  ( S substr  <. F ,  L >. )  ->  ( F  e.  ZZ  /\  L  e.  ZZ ) )
82, 7sylbi 195 . . 3  |-  ( ( S substr  <. F ,  L >. )  =/=  (/)  ->  ( F  e.  ZZ  /\  L  e.  ZZ ) )
9 swrdval 12424 . . . . 5  |-  ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  ->  ( S substr  <. F ,  L >. )  =  if ( ( F..^ L ) 
C_  dom  S , 
( x  e.  ( 0..^ ( L  -  F ) )  |->  ( S `  ( x  +  F ) ) ) ,  (/) ) )
10 wrdf 12351 . . . . . . . . . . 11  |-  ( S  e. Word  A  ->  S : ( 0..^ (
# `  S )
) --> A )
11103ad2ant1 1009 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  ->  S : ( 0..^ (
# `  S )
) --> A )
1211ad2antrr 725 . . . . . . . . 9  |-  ( ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  ( F..^ L
)  C_  dom  S )  /\  x  e.  ( 0..^ ( L  -  F ) ) )  ->  S : ( 0..^ ( # `  S
) ) --> A )
13 simplr 754 . . . . . . . . . . 11  |-  ( ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  ( F..^ L
)  C_  dom  S )  /\  x  e.  ( 0..^ ( L  -  F ) ) )  ->  ( F..^ L
)  C_  dom  S )
14 simpr 461 . . . . . . . . . . . 12  |-  ( ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  ( F..^ L
)  C_  dom  S )  /\  x  e.  ( 0..^ ( L  -  F ) ) )  ->  x  e.  ( 0..^ ( L  -  F ) ) )
15 simpll3 1029 . . . . . . . . . . . 12  |-  ( ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  ( F..^ L
)  C_  dom  S )  /\  x  e.  ( 0..^ ( L  -  F ) ) )  ->  L  e.  ZZ )
16 simpll2 1028 . . . . . . . . . . . 12  |-  ( ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  ( F..^ L
)  C_  dom  S )  /\  x  e.  ( 0..^ ( L  -  F ) ) )  ->  F  e.  ZZ )
17 fzoaddel2 11708 . . . . . . . . . . . 12  |-  ( ( x  e.  ( 0..^ ( L  -  F
) )  /\  L  e.  ZZ  /\  F  e.  ZZ )  ->  (
x  +  F )  e.  ( F..^ L
) )
1814, 15, 16, 17syl3anc 1219 . . . . . . . . . . 11  |-  ( ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  ( F..^ L
)  C_  dom  S )  /\  x  e.  ( 0..^ ( L  -  F ) ) )  ->  ( x  +  F )  e.  ( F..^ L ) )
1913, 18sseldd 3458 . . . . . . . . . 10  |-  ( ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  ( F..^ L
)  C_  dom  S )  /\  x  e.  ( 0..^ ( L  -  F ) ) )  ->  ( x  +  F )  e.  dom  S )
20 fdm 5664 . . . . . . . . . . 11  |-  ( S : ( 0..^ (
# `  S )
) --> A  ->  dom  S  =  ( 0..^ (
# `  S )
) )
2112, 20syl 16 . . . . . . . . . 10  |-  ( ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  ( F..^ L
)  C_  dom  S )  /\  x  e.  ( 0..^ ( L  -  F ) ) )  ->  dom  S  =  ( 0..^ ( # `  S
) ) )
2219, 21eleqtrd 2541 . . . . . . . . 9  |-  ( ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  ( F..^ L
)  C_  dom  S )  /\  x  e.  ( 0..^ ( L  -  F ) ) )  ->  ( x  +  F )  e.  ( 0..^ ( # `  S
) ) )
2312, 22ffvelrnd 5946 . . . . . . . 8  |-  ( ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  ( F..^ L
)  C_  dom  S )  /\  x  e.  ( 0..^ ( L  -  F ) ) )  ->  ( S `  ( x  +  F
) )  e.  A
)
24 eqid 2451 . . . . . . . 8  |-  ( x  e.  ( 0..^ ( L  -  F ) )  |->  ( S `  ( x  +  F
) ) )  =  ( x  e.  ( 0..^ ( L  -  F ) )  |->  ( S `  ( x  +  F ) ) )
2523, 24fmptd 5969 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  ( F..^ L
)  C_  dom  S )  ->  ( x  e.  ( 0..^ ( L  -  F ) ) 
|->  ( S `  (
x  +  F ) ) ) : ( 0..^ ( L  -  F ) ) --> A )
26 iswrdi 12350 . . . . . . 7  |-  ( ( x  e.  ( 0..^ ( L  -  F
) )  |->  ( S `
 ( x  +  F ) ) ) : ( 0..^ ( L  -  F ) ) --> A  ->  (
x  e.  ( 0..^ ( L  -  F
) )  |->  ( S `
 ( x  +  F ) ) )  e. Word  A )
2725, 26syl 16 . . . . . 6  |-  ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  ( F..^ L
)  C_  dom  S )  ->  ( x  e.  ( 0..^ ( L  -  F ) ) 
|->  ( S `  (
x  +  F ) ) )  e. Word  A
)
28 wrd0 12363 . . . . . . 7  |-  (/)  e. Word  A
2928a1i 11 . . . . . 6  |-  ( ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  /\  -.  ( F..^ L )  C_  dom  S )  ->  (/)  e. Word  A
)
3027, 29ifclda 3922 . . . . 5  |-  ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  ->  if ( ( F..^ L
)  C_  dom  S , 
( x  e.  ( 0..^ ( L  -  F ) )  |->  ( S `  ( x  +  F ) ) ) ,  (/) )  e. Word  A )
319, 30eqeltrd 2539 . . . 4  |-  ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  ->  ( S substr  <. F ,  L >. )  e. Word  A )
32313expb 1189 . . 3  |-  ( ( S  e. Word  A  /\  ( F  e.  ZZ  /\  L  e.  ZZ ) )  ->  ( S substr  <. F ,  L >. )  e. Word  A )
338, 32sylan2 474 . 2  |-  ( ( S  e. Word  A  /\  ( S substr  <. F ,  L >. )  =/=  (/) )  -> 
( S substr  <. F ,  L >. )  e. Word  A
)
3428a1i 11 . 2  |-  ( S  e. Word  A  ->  (/)  e. Word  A
)
351, 33, 34pm2.61ne 2763 1  |-  ( S  e. Word  A  ->  ( S substr  <. F ,  L >. )  e. Word  A )
Colors of variables: wff setvar class
Syntax hints:   -. wn 3    -> wi 4    /\ wa 369    /\ w3a 965    = wceq 1370   E.wex 1587    e. wcel 1758    =/= wne 2644   _Vcvv 3071    C_ wss 3429   (/)c0 3738   ifcif 3892   <.cop 3984    |-> cmpt 4451    X. cxp 4939   dom cdm 4941   -->wf 5515   ` cfv 5519  (class class class)co 6193   1stc1st 6678   2ndc2nd 6679   0cc0 9386    + caddc 9389    - cmin 9699   ZZcz 10750  ..^cfzo 11658   #chash 12213  Word cword 12332   substr csubstr 12336
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1592  ax-4 1603  ax-5 1671  ax-6 1710  ax-7 1730  ax-8 1760  ax-9 1762  ax-10 1777  ax-11 1782  ax-12 1794  ax-13 1952  ax-ext 2430  ax-rep 4504  ax-sep 4514  ax-nul 4522  ax-pow 4571  ax-pr 4632  ax-un 6475  ax-cnex 9442  ax-resscn 9443  ax-1cn 9444  ax-icn 9445  ax-addcl 9446  ax-addrcl 9447  ax-mulcl 9448  ax-mulrcl 9449  ax-mulcom 9450  ax-addass 9451  ax-mulass 9452  ax-distr 9453  ax-i2m1 9454  ax-1ne0 9455  ax-1rid 9456  ax-rnegex 9457  ax-rrecex 9458  ax-cnre 9459  ax-pre-lttri 9460  ax-pre-lttrn 9461  ax-pre-ltadd 9462  ax-pre-mulgt0 9463
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 966  df-3an 967  df-tru 1373  df-ex 1588  df-nf 1591  df-sb 1703  df-eu 2264  df-mo 2265  df-clab 2437  df-cleq 2443  df-clel 2446  df-nfc 2601  df-ne 2646  df-nel 2647  df-ral 2800  df-rex 2801  df-reu 2802  df-rab 2804  df-v 3073  df-sbc 3288  df-csb 3390  df-dif 3432  df-un 3434  df-in 3436  df-ss 3443  df-pss 3445  df-nul 3739  df-if 3893  df-pw 3963  df-sn 3979  df-pr 3981  df-tp 3983  df-op 3985  df-uni 4193  df-int 4230  df-iun 4274  df-br 4394  df-opab 4452  df-mpt 4453  df-tr 4487  df-eprel 4733  df-id 4737  df-po 4742  df-so 4743  df-fr 4780  df-we 4782  df-ord 4823  df-on 4824  df-lim 4825  df-suc 4826  df-xp 4947  df-rel 4948  df-cnv 4949  df-co 4950  df-dm 4951  df-rn 4952  df-res 4953  df-ima 4954  df-iota 5482  df-fun 5521  df-fn 5522  df-f 5523  df-f1 5524  df-fo 5525  df-f1o 5526  df-fv 5527  df-riota 6154  df-ov 6196  df-oprab 6197  df-mpt2 6198  df-om 6580  df-1st 6680  df-2nd 6681  df-recs 6935  df-rdg 6969  df-1o 7023  df-oadd 7027  df-er 7204  df-en 7414  df-dom 7415  df-sdom 7416  df-fin 7417  df-card 8213  df-pnf 9524  df-mnf 9525  df-xr 9526  df-ltxr 9527  df-le 9528  df-sub 9701  df-neg 9702  df-nn 10427  df-n0 10684  df-z 10751  df-uz 10966  df-fz 11548  df-fzo 11659  df-hash 12214  df-word 12340  df-substr 12344
This theorem is referenced by:  swrdid  12432  swrdf  12433  addlenswrd  12442  swrd0fvlsw  12450  swrdeq  12451  swrdsymbeq  12452  swrdspsleq  12453  swrds1  12456  ccatswrd  12461  swrdccat2  12463  swrdswrd  12465  lenrevcctswrd  12472  wrdind  12482  wrd2ind  12483  swrdccatin12  12493  swrdccat  12495  swrdccat3a  12496  swrdccat3blem  12497  splcl  12505  spllen  12507  splfv1  12508  splfv2a  12509  splval2  12510  cshwcl  12546  cshwlen  12547  cshwidxmod  12551  gsumspl  15633  psgnunilem5  16111  psgnunilem2  16112  efgsres  16348  efgredleme  16353  efgredlemc  16355  efgcpbllemb  16365  frgpuplem  16382  wrdsplex  27076  signsvtn0  27108  signstfveq0  27115  wwlknred  30496  wwlkextwrd  30501  wwlkm1edg  30508  clwlkisclwwlk  30592  clwwlkf  30597  wwlksubclwwlk  30607  clwlkfclwwlk  30658  extwwlkfablem2  30812
  Copyright terms: Public domain W3C validator