Step * 1 2 1 of Lemma apply_gen_wf2

.....wf..... 
1. Type
2. : ℕ
3. : ℤ
4. 0 ≤ m < 1
5. : ℕn ⟶ Type
6. : ℤ
7. 0 < p
8. 0 ≤ (m p) 1 < 1
 (∀lst:k:{(m p) 1..n-} ⟶ (A k). ∀f:funtype(n (m p) 1;λx.(A (x (m p) 1));B).
      (apply_gen(m;lst) ((m p) 1) f ∈ funtype(n m;λx.(A (x m));B)))
9. 0 ≤ p < 1
10. lst k:{m p..n-} ⟶ (A k)
11. funtype(n p;λx.(A (x (m p)));B)
⊢ (lst (m p)) ∈ funtype(n (m p) 1;λx.(A (x (m p) 1));B)
BY
(Unfold `funtype` (-1)⋅
   THEN (RWO "primrec-unroll" (-1)⋅ THENA Auto)
   THEN (SplitOnHypITE -1  THENA Auto)
   THEN Auto'
   THEN Reduce (-2)) }


Latex:


Latex:
.....wf..... 
1.  B  :  Type
2.  n  :  \mBbbN{}
3.  m  :  \mBbbZ{}
4.  0  \mleq{}  m  <  n  +  1
5.  A  :  \mBbbN{}n  {}\mrightarrow{}  Type
6.  p  :  \mBbbZ{}
7.  0  <  p
8.  0  \mleq{}  (m  -  p)  +  1  <  m  +  1
{}\mRightarrow{}  (\mforall{}lst:k:\{(m  -  p)  +  1..n\msupminus{}\}  {}\mrightarrow{}  (A  k).  \mforall{}f:funtype(n  -  (m  -  p)  +  1;\mlambda{}x.(A  (x  +  (m  -  p)  +  1));B).
            (apply\_gen(m;lst)  ((m  -  p)  +  1)  f  \mmember{}  funtype(n  -  m;\mlambda{}x.(A  (x  +  m));B)))
9.  0  \mleq{}  m  -  p  <  m  +  1
10.  lst  :  k:\{m  -  p..n\msupminus{}\}  {}\mrightarrow{}  (A  k)
11.  f  :  funtype(n  -  m  -  p;\mlambda{}x.(A  (x  +  (m  -  p)));B)
\mvdash{}  f  (lst  (m  -  p))  \mmember{}  funtype(n  -  (m  -  p)  +  1;\mlambda{}x.(A  (x  +  (m  -  p)  +  1));B)


By


Latex:
(Unfold  `funtype`  (-1)\mcdot{}
  THEN  (RWO  "primrec-unroll"  (-1)\mcdot{}  THENA  Auto)
  THEN  (SplitOnHypITE  -1    THENA  Auto)
  THEN  Auto'
  THEN  Reduce  (-2))




Home Index