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

Theorem swrdcl 12596
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 2532 . 2  |-  ( ( S substr  <. F ,  L >. )  =  (/)  ->  (
( S substr  <. F ,  L >. )  e. Word  A  <->  (/)  e. Word  A ) )
2 n0 3787 . . . 4  |-  ( ( S substr  <. F ,  L >. )  =/=  (/)  <->  E. x  x  e.  ( S substr  <. F ,  L >. ) )
3 df-substr 12499 . . . . . . 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 6494 . . . . . 6  |-  ( x  e.  ( S substr  <. F ,  L >. )  ->  <. F ,  L >.  e.  ( ZZ 
X.  ZZ ) )
5 opelxp 5021 . . . . . 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 1693 . . . 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 12594 . . . . 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 12506 . . . . . . . . . . 11  |-  ( S  e. Word  A  ->  S : ( 0..^ (
# `  S )
) --> A )
11103ad2ant1 1012 . . . . . . . . . 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 1032 . . . . . . . . . . . 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 1031 . . . . . . . . . . . 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 11831 . . . . . . . . . . . 12  |-  ( ( x  e.  ( 0..^ ( L  -  F
) )  /\  L  e.  ZZ  /\  F  e.  ZZ )  ->  (
x  +  F )  e.  ( F..^ L
) )
1814, 15, 16, 17syl3anc 1223 . . . . . . . . . . 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 3498 . . . . . . . . . 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 5726 . . . . . . . . . . 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 2550 . . . . . . . . 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 6013 . . . . . . . 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 2460 . . . . . . . 8  |-  ( x  e.  ( 0..^ ( L  -  F ) )  |->  ( S `  ( x  +  F
) ) )  =  ( x  e.  ( 0..^ ( L  -  F ) )  |->  ( S `  ( x  +  F ) ) )
2523, 24fmptd 6036 . . . . . . 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 12505 . . . . . . 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 12518 . . . . . . 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 3964 . . . . 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 2548 . . . 4  |-  ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  ->  ( S substr  <. F ,  L >. )  e. Word  A )
32313expb 1192 . . 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 2775 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 968    = wceq 1374   E.wex 1591    e. wcel 1762    =/= wne 2655   _Vcvv 3106    C_ wss 3469   (/)c0 3778   ifcif 3932   <.cop 4026    |-> cmpt 4498    X. cxp 4990   dom cdm 4992   -->wf 5575   ` cfv 5579  (class class class)co 6275   1stc1st 6772   2ndc2nd 6773   0cc0 9481    + caddc 9484    - cmin 9794   ZZcz 10853  ..^cfzo 11781   #chash 12360  Word cword 12487   substr csubstr 12491
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1596  ax-4 1607  ax-5 1675  ax-6 1714  ax-7 1734  ax-8 1764  ax-9 1766  ax-10 1781  ax-11 1786  ax-12 1798  ax-13 1961  ax-ext 2438  ax-rep 4551  ax-sep 4561  ax-nul 4569  ax-pow 4618  ax-pr 4679  ax-un 6567  ax-cnex 9537  ax-resscn 9538  ax-1cn 9539  ax-icn 9540  ax-addcl 9541  ax-addrcl 9542  ax-mulcl 9543  ax-mulrcl 9544  ax-mulcom 9545  ax-addass 9546  ax-mulass 9547  ax-distr 9548  ax-i2m1 9549  ax-1ne0 9550  ax-1rid 9551  ax-rnegex 9552  ax-rrecex 9553  ax-cnre 9554  ax-pre-lttri 9555  ax-pre-lttrn 9556  ax-pre-ltadd 9557  ax-pre-mulgt0 9558
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 969  df-3an 970  df-tru 1377  df-ex 1592  df-nf 1595  df-sb 1707  df-eu 2272  df-mo 2273  df-clab 2446  df-cleq 2452  df-clel 2455  df-nfc 2610  df-ne 2657  df-nel 2658  df-ral 2812  df-rex 2813  df-reu 2814  df-rab 2816  df-v 3108  df-sbc 3325  df-csb 3429  df-dif 3472  df-un 3474  df-in 3476  df-ss 3483  df-pss 3485  df-nul 3779  df-if 3933  df-pw 4005  df-sn 4021  df-pr 4023  df-tp 4025  df-op 4027  df-uni 4239  df-int 4276  df-iun 4320  df-br 4441  df-opab 4499  df-mpt 4500  df-tr 4534  df-eprel 4784  df-id 4788  df-po 4793  df-so 4794  df-fr 4831  df-we 4833  df-ord 4874  df-on 4875  df-lim 4876  df-suc 4877  df-xp 4998  df-rel 4999  df-cnv 5000  df-co 5001  df-dm 5002  df-rn 5003  df-res 5004  df-ima 5005  df-iota 5542  df-fun 5581  df-fn 5582  df-f 5583  df-f1 5584  df-fo 5585  df-f1o 5586  df-fv 5587  df-riota 6236  df-ov 6278  df-oprab 6279  df-mpt2 6280  df-om 6672  df-1st 6774  df-2nd 6775  df-recs 7032  df-rdg 7066  df-1o 7120  df-oadd 7124  df-er 7301  df-en 7507  df-dom 7508  df-sdom 7509  df-fin 7510  df-card 8309  df-pnf 9619  df-mnf 9620  df-xr 9621  df-ltxr 9622  df-le 9623  df-sub 9796  df-neg 9797  df-nn 10526  df-n0 10785  df-z 10854  df-uz 11072  df-fz 11662  df-fzo 11782  df-hash 12361  df-word 12495  df-substr 12499
This theorem is referenced by:  swrdid  12602  swrdf  12603  addlenswrd  12612  swrd0fvlsw  12620  swrdeq  12621  swrdsymbeq  12622  swrdspsleq  12623  swrds1  12626  ccatswrd  12631  swrdccat2  12633  swrdswrd  12635  lenrevcctswrd  12642  wrdind  12652  wrd2ind  12653  swrdccatin12  12666  swrdccat  12668  swrdccat3a  12669  swrdccat3blem  12670  splcl  12678  spllen  12680  splfv1  12681  splfv2a  12682  splval2  12683  cshwcl  12719  cshwlen  12720  cshwidxmod  12724  gsumspl  15828  psgnunilem5  16308  psgnunilem2  16309  efgsres  16545  efgredleme  16550  efgredlemc  16552  efgcpbllemb  16562  frgpuplem  16579  wwlknred  24385  wwlkextwrd  24390  wwlkm1edg  24397  clwlkisclwwlk  24451  clwwlkf  24456  wwlksubclwwlk  24466  clwlkfclwwlk  24506  wrdsplex  27985  signsvtn0  28017  signstfveq0  28024  extwwlkfablem2  31797
  Copyright terms: Public domain W3C validator