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

Theorem 0csh0 12891
Description: Cyclically shifting an empty set/word always results in the empty word/set. (Contributed by AV, 25-Oct-2018.) (Revised by AV, 17-Nov-2018.)
Assertion
Ref Expression
0csh0  |-  ( (/) cyclShift  N
)  =  (/)

Proof of Theorem 0csh0
Dummy variables  f 
l  n  w are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 df-csh 12887 . . . 4  |- cyclShift  =  ( w  e.  { f  |  E. l  e. 
NN0  f  Fn  (
0..^ l ) } ,  n  e.  ZZ  |->  if ( w  =  (/) ,  (/) ,  ( ( w substr  <. ( n  mod  ( # `
 w ) ) ,  ( # `  w
) >. ) ++  ( w substr  <. 0 ,  ( n  mod  ( # `  w
) ) >. )
) ) )
21a1i 11 . . 3  |-  ( N  e.  ZZ  -> cyclShift  =  ( w  e.  { f  |  E. l  e. 
NN0  f  Fn  (
0..^ l ) } ,  n  e.  ZZ  |->  if ( w  =  (/) ,  (/) ,  ( ( w substr  <. ( n  mod  ( # `
 w ) ) ,  ( # `  w
) >. ) ++  ( w substr  <. 0 ,  ( n  mod  ( # `  w
) ) >. )
) ) ) )
3 iftrue 3916 . . . 4  |-  ( w  =  (/)  ->  if ( w  =  (/) ,  (/) ,  ( ( w substr  <. (
n  mod  ( # `  w
) ) ,  (
# `  w ) >. ) ++  ( w substr  <. 0 ,  ( n  mod  ( # `  w ) ) >. ) ) )  =  (/) )
43ad2antrl 733 . . 3  |-  ( ( N  e.  ZZ  /\  ( w  =  (/)  /\  n  =  N ) )  ->  if ( w  =  (/) ,  (/) ,  ( ( w substr  <. ( n  mod  ( # `
 w ) ) ,  ( # `  w
) >. ) ++  ( w substr  <. 0 ,  ( n  mod  ( # `  w
) ) >. )
) )  =  (/) )
5 0nn0 10886 . . . . . 6  |-  0  e.  NN0
6 f0 5779 . . . . . . 7  |-  (/) : (/) --> _V
7 ffn 5744 . . . . . . . 8  |-  ( (/) :
(/) --> _V  ->  (/)  Fn  (/) )
8 fzo0 11944 . . . . . . . . . 10  |-  ( 0..^ 0 )  =  (/)
98eqcomi 2436 . . . . . . . . 9  |-  (/)  =  ( 0..^ 0 )
109fneq2i 5687 . . . . . . . 8  |-  ( (/)  Fn  (/) 
<->  (/)  Fn  ( 0..^ 0 ) )
117, 10sylib 200 . . . . . . 7  |-  ( (/) :
(/) --> _V  ->  (/)  Fn  (
0..^ 0 ) )
126, 11ax-mp 5 . . . . . 6  |-  (/)  Fn  (
0..^ 0 )
13 id 23 . . . . . . 7  |-  ( 0  e.  NN0  ->  0  e. 
NN0 )
14 oveq2 6311 . . . . . . . . 9  |-  ( l  =  0  ->  (
0..^ l )  =  ( 0..^ 0 ) )
1514fneq2d 5683 . . . . . . . 8  |-  ( l  =  0  ->  ( (/) 
Fn  ( 0..^ l )  <->  (/)  Fn  ( 0..^ 0 ) ) )
1615adantl 468 . . . . . . 7  |-  ( ( 0  e.  NN0  /\  l  =  0 )  ->  ( (/)  Fn  (
0..^ l )  <->  (/)  Fn  (
0..^ 0 ) ) )
1713, 16rspcedv 3187 . . . . . 6  |-  ( 0  e.  NN0  ->  ( (/)  Fn  ( 0..^ 0 )  ->  E. l  e.  NN0  (/) 
Fn  ( 0..^ l ) ) )
185, 12, 17mp2 9 . . . . 5  |-  E. l  e.  NN0  (/)  Fn  ( 0..^ l )
19 0ex 4554 . . . . . 6  |-  (/)  e.  _V
20 fneq1 5680 . . . . . . 7  |-  ( f  =  (/)  ->  ( f  Fn  ( 0..^ l )  <->  (/)  Fn  ( 0..^ l ) ) )
2120rexbidv 2940 . . . . . 6  |-  ( f  =  (/)  ->  ( E. l  e.  NN0  f  Fn  ( 0..^ l )  <->  E. l  e.  NN0  (/) 
Fn  ( 0..^ l ) ) )
2219, 21elab 3219 . . . . 5  |-  ( (/)  e.  { f  |  E. l  e.  NN0  f  Fn  ( 0..^ l ) }  <->  E. l  e.  NN0  (/) 
Fn  ( 0..^ l ) )
2318, 22mpbir 213 . . . 4  |-  (/)  e.  {
f  |  E. l  e.  NN0  f  Fn  (
0..^ l ) }
2423a1i 11 . . 3  |-  ( N  e.  ZZ  ->  (/)  e.  {
f  |  E. l  e.  NN0  f  Fn  (
0..^ l ) } )
25 id 23 . . 3  |-  ( N  e.  ZZ  ->  N  e.  ZZ )
2619a1i 11 . . 3  |-  ( N  e.  ZZ  ->  (/)  e.  _V )
272, 4, 24, 25, 26ovmpt2d 6436 . 2  |-  ( N  e.  ZZ  ->  ( (/) cyclShift  N )  =  (/) )
28 cshnz 12890 . 2  |-  ( -.  N  e.  ZZ  ->  (
(/) cyclShift  N )  =  (/) )
2927, 28pm2.61i 168 1  |-  ( (/) cyclShift  N
)  =  (/)
Colors of variables: wff setvar class
Syntax hints:    <-> wb 188    = wceq 1438    e. wcel 1869   {cab 2408   E.wrex 2777   _Vcvv 3082   (/)c0 3762   ifcif 3910   <.cop 4003    Fn wfn 5594   -->wf 5595   ` cfv 5599  (class class class)co 6303    |-> cmpt2 6305   0cc0 9541   NN0cn0 10871   ZZcz 10939  ..^cfzo 11917    mod cmo 12097   #chash 12516   ++ cconcat 12656   substr csubstr 12658   cyclShift ccsh 12886
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1666  ax-4 1679  ax-5 1749  ax-6 1795  ax-7 1840  ax-8 1871  ax-9 1873  ax-10 1888  ax-11 1893  ax-12 1906  ax-13 2054  ax-ext 2401  ax-sep 4544  ax-nul 4553  ax-pow 4600  ax-pr 4658  ax-un 6595  ax-cnex 9597  ax-resscn 9598  ax-1cn 9599  ax-icn 9600  ax-addcl 9601  ax-addrcl 9602  ax-mulcl 9603  ax-mulrcl 9604  ax-mulcom 9605  ax-addass 9606  ax-mulass 9607  ax-distr 9608  ax-i2m1 9609  ax-1ne0 9610  ax-1rid 9611  ax-rnegex 9612  ax-rrecex 9613  ax-cnre 9614  ax-pre-lttri 9615  ax-pre-lttrn 9616  ax-pre-ltadd 9617  ax-pre-mulgt0 9618
This theorem depends on definitions:  df-bi 189  df-or 372  df-an 373  df-3or 984  df-3an 985  df-tru 1441  df-ex 1661  df-nf 1665  df-sb 1788  df-eu 2270  df-mo 2271  df-clab 2409  df-cleq 2415  df-clel 2418  df-nfc 2573  df-ne 2621  df-nel 2622  df-ral 2781  df-rex 2782  df-reu 2783  df-rab 2785  df-v 3084  df-sbc 3301  df-csb 3397  df-dif 3440  df-un 3442  df-in 3444  df-ss 3451  df-pss 3453  df-nul 3763  df-if 3911  df-pw 3982  df-sn 3998  df-pr 4000  df-tp 4002  df-op 4004  df-uni 4218  df-iun 4299  df-br 4422  df-opab 4481  df-mpt 4482  df-tr 4517  df-eprel 4762  df-id 4766  df-po 4772  df-so 4773  df-fr 4810  df-we 4812  df-xp 4857  df-rel 4858  df-cnv 4859  df-co 4860  df-dm 4861  df-rn 4862  df-res 4863  df-ima 4864  df-pred 5397  df-ord 5443  df-on 5444  df-lim 5445  df-suc 5446  df-iota 5563  df-fun 5601  df-fn 5602  df-f 5603  df-f1 5604  df-fo 5605  df-f1o 5606  df-fv 5607  df-riota 6265  df-ov 6306  df-oprab 6307  df-mpt2 6308  df-om 6705  df-1st 6805  df-2nd 6806  df-wrecs 7034  df-recs 7096  df-rdg 7134  df-er 7369  df-en 7576  df-dom 7577  df-sdom 7578  df-pnf 9679  df-mnf 9680  df-xr 9681  df-ltxr 9682  df-le 9683  df-sub 9864  df-neg 9865  df-nn 10612  df-n0 10872  df-z 10940  df-uz 11162  df-fz 11787  df-fzo 11918  df-csh 12887
This theorem is referenced by:  cshw0  12892  cshwmodn  12893  cshwn  12895  cshwlen  12897  repswcshw  12907
  Copyright terms: Public domain W3C validator