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

Theorem swrdcl 11771
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 2498 . 2  |-  ( ( S substr  <. F ,  L >. )  =  (/)  ->  (
( S substr  <. F ,  L >. )  e. Word  A  <->  (/)  e. Word  A ) )
2 n0 3639 . . . 4  |-  ( ( S substr  <. F ,  L >. )  =/=  (/)  <->  E. x  x  e.  ( S substr  <. F ,  L >. ) )
3 df-substr 11731 . . . . . . 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 6293 . . . . . 6  |-  ( x  e.  ( S substr  <. F ,  L >. )  ->  <. F ,  L >.  e.  ( ZZ 
X.  ZZ ) )
5 opelxp 4911 . . . . . 6  |-  ( <. F ,  L >.  e.  ( ZZ  X.  ZZ ) 
<->  ( F  e.  ZZ  /\  L  e.  ZZ ) )
64, 5sylib 190 . . . . 5  |-  ( x  e.  ( S substr  <. F ,  L >. )  ->  ( F  e.  ZZ  /\  L  e.  ZZ ) )
76exlimiv 1645 . . . 4  |-  ( E. x  x  e.  ( S substr  <. F ,  L >. )  ->  ( F  e.  ZZ  /\  L  e.  ZZ ) )
82, 7sylbi 189 . . 3  |-  ( ( S substr  <. F ,  L >. )  =/=  (/)  ->  ( F  e.  ZZ  /\  L  e.  ZZ ) )
9 swrdval 11769 . . . . 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 11738 . . . . . . . . . . 11  |-  ( S  e. Word  A  ->  S : ( 0..^ (
# `  S )
) --> A )
11103ad2ant1 979 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  ->  S : ( 0..^ (
# `  S )
) --> A )
1211ad2antrr 708 . . . . . . . . 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 733 . . . . . . . . . . 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 449 . . . . . . . . . . . 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 999 . . . . . . . . . . . 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 998 . . . . . . . . . . . 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 11181 . . . . . . . . . . . 12  |-  ( ( x  e.  ( 0..^ ( L  -  F
) )  /\  L  e.  ZZ  /\  F  e.  ZZ )  ->  (
x  +  F )  e.  ( F..^ L
) )
1814, 15, 16, 17syl3anc 1185 . . . . . . . . . . 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 3351 . . . . . . . . . 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 5598 . . . . . . . . . . 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 2514 . . . . . . . . 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 5874 . . . . . . . 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 2438 . . . . . . . 8  |-  ( x  e.  ( 0..^ ( L  -  F ) )  |->  ( S `  ( x  +  F
) ) )  =  ( x  e.  ( 0..^ ( L  -  F ) )  |->  ( S `  ( x  +  F ) ) )
2523, 24fmptd 5896 . . . . . . 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 11736 . . . . . . 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 11737 . . . . . . 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 3768 . . . . 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 2512 . . . 4  |-  ( ( S  e. Word  A  /\  F  e.  ZZ  /\  L  e.  ZZ )  ->  ( S substr  <. F ,  L >. )  e. Word  A )
32313expb 1155 . . 3  |-  ( ( S  e. Word  A  /\  ( F  e.  ZZ  /\  L  e.  ZZ ) )  ->  ( S substr  <. F ,  L >. )  e. Word  A )
338, 32sylan2 462 . 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 2681 1  |-  ( S  e. Word  A  ->  ( S substr  <. F ,  L >. )  e. Word  A )
Colors of variables: wff set class
Syntax hints:   -. wn 3    -> wi 4    /\ wa 360    /\ w3a 937   E.wex 1551    = wceq 1653    e. wcel 1726    =/= wne 2601   _Vcvv 2958    C_ wss 3322   (/)c0 3630   ifcif 3741   <.cop 3819    e. cmpt 4269    X. cxp 4879   dom cdm 4881   -->wf 5453   ` cfv 5457  (class class class)co 6084   1stc1st 6350   2ndc2nd 6351   0cc0 8995    + caddc 8998    - cmin 9296   ZZcz 10287  ..^cfzo 11140   #chash 11623  Word cword 11722   substr csubstr 11725
This theorem is referenced by:  swrdid  11777  ccatswrd  11778  swrdccat2  11780  splcl  11786  spllen  11788  splfv1  11789  splfv2a  11790  splval2  11791  swrds1  11792  wrdind  11796  gsumspl  14794  efgsres  15375  efgredleme  15380  efgredlemc  15382  efgcpbllemb  15392  frgpuplem  15409  psgnunilem5  27408  psgnunilem2  27409  lenrevcctswrd  28224  swdeq  28230  swrd0swrd  28231  swrdswrd  28233  swrdccatin12  28248  swrdccat  28250  swrdccat3a  28251  swrdccat3blem  28252  cshwcl  28274  cshwlen  28275  cshwidx  28276  2cshw1lem1  28282  2cshw1lem2  28283  2cshw1lem3  28284  2cshw1  28285  2cshw2lem1  28286  2cshw2lem2  28287  2cshw2lem3  28288  2cshw2  28289  swrd0fvls  28298
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1556  ax-5 1567  ax-17 1627  ax-9 1667  ax-8 1688  ax-13 1728  ax-14 1730  ax-6 1745  ax-7 1750  ax-11 1762  ax-12 1951  ax-ext 2419  ax-rep 4323  ax-sep 4333  ax-nul 4341  ax-pow 4380  ax-pr 4406  ax-un 4704  ax-cnex 9051  ax-resscn 9052  ax-1cn 9053  ax-icn 9054  ax-addcl 9055  ax-addrcl 9056  ax-mulcl 9057  ax-mulrcl 9058  ax-mulcom 9059  ax-addass 9060  ax-mulass 9061  ax-distr 9062  ax-i2m1 9063  ax-1ne0 9064  ax-1rid 9065  ax-rnegex 9066  ax-rrecex 9067  ax-cnre 9068  ax-pre-lttri 9069  ax-pre-lttrn 9070  ax-pre-ltadd 9071  ax-pre-mulgt0 9072
This theorem depends on definitions:  df-bi 179  df-or 361  df-an 362  df-3or 938  df-3an 939  df-tru 1329  df-ex 1552  df-nf 1555  df-sb 1660  df-eu 2287  df-mo 2288  df-clab 2425  df-cleq 2431  df-clel 2434  df-nfc 2563  df-ne 2603  df-nel 2604  df-ral 2712  df-rex 2713  df-reu 2714  df-rab 2716  df-v 2960  df-sbc 3164  df-csb 3254  df-dif 3325  df-un 3327  df-in 3329  df-ss 3336  df-pss 3338  df-nul 3631  df-if 3742  df-pw 3803  df-sn 3822  df-pr 3823  df-tp 3824  df-op 3825  df-uni 4018  df-int 4053  df-iun 4097  df-br 4216  df-opab 4270  df-mpt 4271  df-tr 4306  df-eprel 4497  df-id 4501  df-po 4506  df-so 4507  df-fr 4544  df-we 4546  df-ord 4587  df-on 4588  df-lim 4589  df-suc 4590  df-om 4849  df-xp 4887  df-rel 4888  df-cnv 4889  df-co 4890  df-dm 4891  df-rn 4892  df-res 4893  df-ima 4894  df-iota 5421  df-fun 5459  df-fn 5460  df-f 5461  df-f1 5462  df-fo 5463  df-f1o 5464  df-fv 5465  df-ov 6087  df-oprab 6088  df-mpt2 6089  df-1st 6352  df-2nd 6353  df-riota 6552  df-recs 6636  df-rdg 6671  df-1o 6727  df-oadd 6731  df-er 6908  df-en 7113  df-dom 7114  df-sdom 7115  df-fin 7116  df-card 7831  df-pnf 9127  df-mnf 9128  df-xr 9129  df-ltxr 9130  df-le 9131  df-sub 9298  df-neg 9299  df-nn 10006  df-n0 10227  df-z 10288  df-uz 10494  df-fz 11049  df-fzo 11141  df-hash 11624  df-word 11728  df-substr 11731
  Copyright terms: Public domain W3C validator