Step * 2 2 3 1 1 2 1 2 1 of Lemma lifting-member

.....wf..... 
1. Type
2. : ℕ
3. : ℕn ⟶ Type
4. bags k:ℕn ⟶ bag(A k)
5. B
6. : ℤ
7. 0 < p
8. 0 ≤ (n p) 1 < 1
 (∀f:funtype(p 1;λx.(A (x (n p) 1));B)
      ((∃lst:k:{(n p) 1..n-} ⟶ (A k)
         ((∀[k:{(n p) 1..n-}]. lst k ↓∈ bags k) ∧ ((uncurry-gen(n) ((n p) 1) x.f) lst) b ∈ B)))
       b ↓∈ lifting-gen-list-rev(n;bags) ((n p) 1) f))
9. 0 ≤ (n p)
10. p < 1
11. funtype(p;λx.(A (x (n p)));B)
12. lst k:{n p..n-} ⟶ (A k)
13. ∀[k:{n p..n-}]. lst k ↓∈ bags k
14. (uncurry-gen(n) (n p) x.f) lst) b ∈ B
15. (n p)
16. x1 x ↓∈ bags (n p)
⊢ x ∈ funtype(n (n p) 1;λx.(A (x (n p) 1));B)
BY
(Unfold `funtype` (-6)
   THEN (RWO "primrec-unroll" (-6) THENA Auto)
   THEN Reduce (-6)
   THEN (Subst ⌜p <ff⌝ (-6)⋅ THENA Auto)
   THEN Reduce (-6)
   THEN (Subst ⌜(p 1) (n p) p⌝ (-6)⋅ THENA Auto)
   THEN Unfold `funtype` 0
   THEN Reduce 0
   THEN MemCD
   THEN Auto') }


Latex:


Latex:
.....wf..... 
1.  B  :  Type
2.  n  :  \mBbbN{}
3.  A  :  \mBbbN{}n  {}\mrightarrow{}  Type
4.  bags  :  k:\mBbbN{}n  {}\mrightarrow{}  bag(A  k)
5.  b  :  B
6.  p  :  \mBbbZ{}
7.  0  <  p
8.  0  \mleq{}  (n  -  p)  +  1  <  n  +  1
{}\mRightarrow{}  (\mforall{}f:funtype(p  -  1;\mlambda{}x.(A  (x  +  (n  -  p)  +  1));B)
            ((\mexists{}lst:k:\{(n  -  p)  +  1..n\msupminus{}\}  {}\mrightarrow{}  (A  k)
                  ((\mforall{}[k:\{(n  -  p)  +  1..n\msupminus{}\}].  lst  k  \mdownarrow{}\mmember{}  bags  k)
                  \mwedge{}  ((uncurry-gen(n)  ((n  -  p)  +  1)  (\mlambda{}x.f)  lst)  =  b)))
            {}\mRightarrow{}  b  \mdownarrow{}\mmember{}  lifting-gen-list-rev(n;bags)  ((n  -  p)  +  1)  f))
9.  0  \mleq{}  (n  -  p)
10.  n  -  p  <  n  +  1
11.  f  :  funtype(p;\mlambda{}x.(A  (x  +  (n  -  p)));B)
12.  lst  :  k:\{n  -  p..n\msupminus{}\}  {}\mrightarrow{}  (A  k)
13.  \mforall{}[k:\{n  -  p..n\msupminus{}\}].  lst  k  \mdownarrow{}\mmember{}  bags  k
14.  (uncurry-gen(n)  (n  -  p)  (\mlambda{}x.f)  lst)  =  b
15.  x  :  A  (n  -  p)
16.  x1  :  x  \mdownarrow{}\mmember{}  bags  (n  -  p)
\mvdash{}  f  x  \mmember{}  funtype(n  -  (n  -  p)  +  1;\mlambda{}x.(A  (x  +  (n  -  p)  +  1));B)


By


Latex:
(Unfold  `funtype`  (-6)
  THEN  (RWO  "primrec-unroll"  (-6)  THENA  Auto)
  THEN  Reduce  (-6)
  THEN  (Subst  \mkleeneopen{}p  <z  1  \msim{}  ff\mkleeneclose{}  (-6)\mcdot{}  THENA  Auto)
  THEN  Reduce  (-6)
  THEN  (Subst  \mkleeneopen{}(p  -  1  -  p  -  1)  +  (n  -  p)  \msim{}  n  -  p\mkleeneclose{}  (-6)\mcdot{}  THENA  Auto)
  THEN  Unfold  `funtype`  0
  THEN  Reduce  0
  THEN  MemCD
  THEN  Auto')




Home Index