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

Theorem swrdid 12425
Description: A word is a subword of itself. (Contributed by Stefan O'Rear, 16-Aug-2015.)
Assertion
Ref Expression
swrdid  |-  ( S  e. Word  A  ->  ( S substr  <. 0 ,  (
# `  S ) >. )  =  S )

Proof of Theorem swrdid
Dummy variable  x is distinct from all other variables.
StepHypRef Expression
1 swrdcl 12419 . . . 4  |-  ( S  e. Word  A  ->  ( S substr  <. 0 ,  (
# `  S ) >. )  e. Word  A )
2 wrdf 12344 . . . 4  |-  ( ( S substr  <. 0 ,  (
# `  S ) >. )  e. Word  A  -> 
( S substr  <. 0 ,  ( # `  S
) >. ) : ( 0..^ ( # `  ( S substr  <. 0 ,  (
# `  S ) >. ) ) ) --> A )
3 ffn 5659 . . . 4  |-  ( ( S substr  <. 0 ,  (
# `  S ) >. ) : ( 0..^ ( # `  ( S substr  <. 0 ,  (
# `  S ) >. ) ) ) --> A  ->  ( S substr  <. 0 ,  ( # `  S
) >. )  Fn  (
0..^ ( # `  ( S substr  <. 0 ,  (
# `  S ) >. ) ) ) )
41, 2, 33syl 20 . . 3  |-  ( S  e. Word  A  ->  ( S substr  <. 0 ,  (
# `  S ) >. )  Fn  ( 0..^ ( # `  ( S substr  <. 0 ,  (
# `  S ) >. ) ) ) )
5 lencl 12353 . . . . . . . 8  |-  ( S  e. Word  A  ->  ( # `
 S )  e. 
NN0 )
6 eluzfz1 11561 . . . . . . . . 9  |-  ( (
# `  S )  e.  ( ZZ>= `  0 )  ->  0  e.  ( 0 ... ( # `  S
) ) )
7 nn0uz 10998 . . . . . . . . 9  |-  NN0  =  ( ZZ>= `  0 )
86, 7eleq2s 2559 . . . . . . . 8  |-  ( (
# `  S )  e.  NN0  ->  0  e.  ( 0 ... ( # `
 S ) ) )
95, 8syl 16 . . . . . . 7  |-  ( S  e. Word  A  ->  0  e.  ( 0 ... ( # `
 S ) ) )
10 eluzfz2 11562 . . . . . . . . 9  |-  ( (
# `  S )  e.  ( ZZ>= `  0 )  ->  ( # `  S
)  e.  ( 0 ... ( # `  S
) ) )
1110, 7eleq2s 2559 . . . . . . . 8  |-  ( (
# `  S )  e.  NN0  ->  ( # `  S
)  e.  ( 0 ... ( # `  S
) ) )
125, 11syl 16 . . . . . . 7  |-  ( S  e. Word  A  ->  ( # `
 S )  e.  ( 0 ... ( # `
 S ) ) )
13 swrdlen 12423 . . . . . . 7  |-  ( ( S  e. Word  A  /\  0  e.  ( 0 ... ( # `  S
) )  /\  ( # `
 S )  e.  ( 0 ... ( # `
 S ) ) )  ->  ( # `  ( S substr  <. 0 ,  (
# `  S ) >. ) )  =  ( ( # `  S
)  -  0 ) )
149, 12, 13mpd3an23 1317 . . . . . 6  |-  ( S  e. Word  A  ->  ( # `
 ( S substr  <. 0 ,  ( # `  S
) >. ) )  =  ( ( # `  S
)  -  0 ) )
155nn0cnd 10741 . . . . . . 7  |-  ( S  e. Word  A  ->  ( # `
 S )  e.  CC )
1615subid1d 9811 . . . . . 6  |-  ( S  e. Word  A  ->  (
( # `  S )  -  0 )  =  ( # `  S
) )
1714, 16eqtrd 2492 . . . . 5  |-  ( S  e. Word  A  ->  ( # `
 ( S substr  <. 0 ,  ( # `  S
) >. ) )  =  ( # `  S
) )
1817oveq2d 6208 . . . 4  |-  ( S  e. Word  A  ->  (
0..^ ( # `  ( S substr  <. 0 ,  (
# `  S ) >. ) ) )  =  ( 0..^ ( # `  S ) ) )
1918fneq2d 5602 . . 3  |-  ( S  e. Word  A  ->  (
( S substr  <. 0 ,  ( # `  S
) >. )  Fn  (
0..^ ( # `  ( S substr  <. 0 ,  (
# `  S ) >. ) ) )  <->  ( S substr  <.
0 ,  ( # `  S ) >. )  Fn  ( 0..^ ( # `  S ) ) ) )
204, 19mpbid 210 . 2  |-  ( S  e. Word  A  ->  ( S substr  <. 0 ,  (
# `  S ) >. )  Fn  ( 0..^ ( # `  S
) ) )
21 wrdf 12344 . . 3  |-  ( S  e. Word  A  ->  S : ( 0..^ (
# `  S )
) --> A )
22 ffn 5659 . . 3  |-  ( S : ( 0..^ (
# `  S )
) --> A  ->  S  Fn  ( 0..^ ( # `  S ) ) )
2321, 22syl 16 . 2  |-  ( S  e. Word  A  ->  S  Fn  ( 0..^ ( # `  S ) ) )
24 simpl 457 . . . 4  |-  ( ( S  e. Word  A  /\  x  e.  ( 0..^ ( # `  S
) ) )  ->  S  e. Word  A )
259adantr 465 . . . 4  |-  ( ( S  e. Word  A  /\  x  e.  ( 0..^ ( # `  S
) ) )  -> 
0  e.  ( 0 ... ( # `  S
) ) )
2612adantr 465 . . . 4  |-  ( ( S  e. Word  A  /\  x  e.  ( 0..^ ( # `  S
) ) )  -> 
( # `  S )  e.  ( 0 ... ( # `  S
) ) )
2716oveq2d 6208 . . . . . 6  |-  ( S  e. Word  A  ->  (
0..^ ( ( # `  S )  -  0 ) )  =  ( 0..^ ( # `  S
) ) )
2827eleq2d 2521 . . . . 5  |-  ( S  e. Word  A  ->  (
x  e.  ( 0..^ ( ( # `  S
)  -  0 ) )  <->  x  e.  (
0..^ ( # `  S
) ) ) )
2928biimpar 485 . . . 4  |-  ( ( S  e. Word  A  /\  x  e.  ( 0..^ ( # `  S
) ) )  ->  x  e.  ( 0..^ ( ( # `  S
)  -  0 ) ) )
30 swrdfv 12424 . . . 4  |-  ( ( ( S  e. Word  A  /\  0  e.  (
0 ... ( # `  S
) )  /\  ( # `
 S )  e.  ( 0 ... ( # `
 S ) ) )  /\  x  e.  ( 0..^ ( (
# `  S )  -  0 ) ) )  ->  ( ( S substr  <. 0 ,  (
# `  S ) >. ) `  x )  =  ( S `  ( x  +  0
) ) )
3124, 25, 26, 29, 30syl31anc 1222 . . 3  |-  ( ( S  e. Word  A  /\  x  e.  ( 0..^ ( # `  S
) ) )  -> 
( ( S substr  <. 0 ,  ( # `  S
) >. ) `  x
)  =  ( S `
 ( x  + 
0 ) ) )
32 elfzoelz 11656 . . . . . . 7  |-  ( x  e.  ( 0..^ (
# `  S )
)  ->  x  e.  ZZ )
3332zcnd 10851 . . . . . 6  |-  ( x  e.  ( 0..^ (
# `  S )
)  ->  x  e.  CC )
3433addid1d 9672 . . . . 5  |-  ( x  e.  ( 0..^ (
# `  S )
)  ->  ( x  +  0 )  =  x )
3534adantl 466 . . . 4  |-  ( ( S  e. Word  A  /\  x  e.  ( 0..^ ( # `  S
) ) )  -> 
( x  +  0 )  =  x )
3635fveq2d 5795 . . 3  |-  ( ( S  e. Word  A  /\  x  e.  ( 0..^ ( # `  S
) ) )  -> 
( S `  (
x  +  0 ) )  =  ( S `
 x ) )
3731, 36eqtrd 2492 . 2  |-  ( ( S  e. Word  A  /\  x  e.  ( 0..^ ( # `  S
) ) )  -> 
( ( S substr  <. 0 ,  ( # `  S
) >. ) `  x
)  =  ( S `
 x ) )
3820, 23, 37eqfnfvd 5901 1  |-  ( S  e. Word  A  ->  ( S substr  <. 0 ,  (
# `  S ) >. )  =  S )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    /\ wa 369    = wceq 1370    e. wcel 1758   <.cop 3983    Fn wfn 5513   -->wf 5514   ` cfv 5518  (class class class)co 6192   0cc0 9385    + caddc 9388    - cmin 9698   NN0cn0 10682   ZZ>=cuz 10964   ...cfz 11540  ..^cfzo 11651   #chash 12206  Word cword 12325   substr csubstr 12329
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 4503  ax-sep 4513  ax-nul 4521  ax-pow 4570  ax-pr 4631  ax-un 6474  ax-cnex 9441  ax-resscn 9442  ax-1cn 9443  ax-icn 9444  ax-addcl 9445  ax-addrcl 9446  ax-mulcl 9447  ax-mulrcl 9448  ax-mulcom 9449  ax-addass 9450  ax-mulass 9451  ax-distr 9452  ax-i2m1 9453  ax-1ne0 9454  ax-1rid 9455  ax-rnegex 9456  ax-rrecex 9457  ax-cnre 9458  ax-pre-lttri 9459  ax-pre-lttrn 9460  ax-pre-ltadd 9461  ax-pre-mulgt0 9462
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 3072  df-sbc 3287  df-csb 3389  df-dif 3431  df-un 3433  df-in 3435  df-ss 3442  df-pss 3444  df-nul 3738  df-if 3892  df-pw 3962  df-sn 3978  df-pr 3980  df-tp 3982  df-op 3984  df-uni 4192  df-int 4229  df-iun 4273  df-br 4393  df-opab 4451  df-mpt 4452  df-tr 4486  df-eprel 4732  df-id 4736  df-po 4741  df-so 4742  df-fr 4779  df-we 4781  df-ord 4822  df-on 4823  df-lim 4824  df-suc 4825  df-xp 4946  df-rel 4947  df-cnv 4948  df-co 4949  df-dm 4950  df-rn 4951  df-res 4952  df-ima 4953  df-iota 5481  df-fun 5520  df-fn 5521  df-f 5522  df-f1 5523  df-fo 5524  df-f1o 5525  df-fv 5526  df-riota 6153  df-ov 6195  df-oprab 6196  df-mpt2 6197  df-om 6579  df-1st 6679  df-2nd 6680  df-recs 6934  df-rdg 6968  df-1o 7022  df-oadd 7026  df-er 7203  df-en 7413  df-dom 7414  df-sdom 7415  df-fin 7416  df-card 8212  df-pnf 9523  df-mnf 9524  df-xr 9525  df-ltxr 9526  df-le 9527  df-sub 9700  df-neg 9701  df-nn 10426  df-n0 10683  df-z 10750  df-uz 10965  df-fz 11541  df-fzo 11652  df-hash 12207  df-word 12333  df-substr 12337
This theorem is referenced by:  wrdcctswrd  12463  swrdccatwrd  12466  wrdeqcats1  12472  wrdeqs1cat  12473  swrdccat3a  12489  swrdccat3b  12491  swrdccatid  12492  splid  12499  splval2  12503  cshw0  12535  efgredleme  16346  efgredlemc  16348  efgcpbllemb  16358  frgpuplem  16375  wrdsplex  27075
  Copyright terms: Public domain W3C validator