Step * 1 1 of Lemma iterated-rotate


1. : ℕ
2. : ℤ
3. 0 < i
4. i ≤ n
5. : ℕn
6. rot(n)^i x.if (i 1) <then (i 1) else (x (i 1)) fi ) ∈ (ℕn ⟶ ℕn)
⊢ (rot(n)^i x) if i <then else (x i) fi  ∈ ℕn
BY
(Unfold `fun_exp` 0
   THEN (RWO "primrec-unroll" THENA Auto)
   THEN Fold `fun_exp` 0
   THEN SplitOnConclITE
   THEN Auto
   THEN Reduce 0
   THEN (HypSubst (-2) THENA TACTIC:(SplitOnConclITE THEN Auto THEN Auto'))
   THEN (RepUR ``rotate`` 0
         THEN AutoBoolCase ⌜(i 1) <n⌝⋅
         THEN AutoBoolCase ⌜i <n⌝⋅
         THEN SplitOnConclITE
         THEN Auto')⋅)⋅ }


Latex:


Latex:

1.  n  :  \mBbbN{}
2.  i  :  \mBbbZ{}
3.  0  <  i
4.  i  \mleq{}  n
5.  x  :  \mBbbN{}n
6.  rot(n)\^{}i  -  1  =  (\mlambda{}x.if  x  +  (i  -  1)  <z  n  then  x  +  (i  -  1)  else  (x  +  (i  -  1))  -  n  fi  )
\mvdash{}  (rot(n)\^{}i  x)  =  if  x  +  i  <z  n  then  x  +  i  else  (x  +  i)  -  n  fi 


By


Latex:
(Unfold  `fun\_exp`  0
  THEN  (RWO  "primrec-unroll"  0  THENA  Auto)
  THEN  Fold  `fun\_exp`  0
  THEN  SplitOnConclITE
  THEN  Auto
  THEN  Reduce  0
  THEN  (HypSubst  (-2)  0  THENA  TACTIC:(SplitOnConclITE  THEN  Auto  THEN  Auto'))
  THEN  (RepUR  ``rotate``  0
              THEN  AutoBoolCase  \mkleeneopen{}x  +  (i  -  1)  <z  n\mkleeneclose{}\mcdot{}
              THEN  AutoBoolCase  \mkleeneopen{}x  +  i  <z  n\mkleeneclose{}\mcdot{}
              THEN  SplitOnConclITE
              THEN  Auto')\mcdot{})\mcdot{}




Home Index