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


1. Type
2. : ℕ
3. : ℕn ⟶ Type
4. bags k:ℕn ⟶ bag(A k)
5. B
6. : ℤ
7. 0 < p
8. 0 ≤ p < 1
9. (A (n p)) ⟶ primrec(p 1;B;λi,t. ((A ((p i) (n p))) ⟶ t))
10. ∀f:funtype(p 1;λx.(A (x (n p) 1));B)
      (b ↓∈ lifting-gen-list-rev(n;bags) ((n p) 1) f
       (↓∃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))))
11. (n p)
12. x ↓∈ bags (n p)
13. b ↓∈ lifting-gen-list-rev(n;bags) ((n p) 1) (f x)
14. lst k:{(n p) 1..n-} ⟶ (A k)
15. ∀[k:{(n p) 1..n-}]. lst k ↓∈ bags k
16. (uncurry-gen(n) ((n p) 1) x@0.(f x)) lst) b ∈ B
⊢ ∀[k:{n p..n-}]. r.if (r =z p) then else lst fi k ↓∈ bags k
BY
((D THENA Auto)
   THEN Reduce 0
   THEN (InstLemma `bool_cases` [⌜(k =z p)⌝]⋅ THENA Auto)
   THEN (-1)
   THEN HypSubst' (-1) 0
   THEN Reduce 0
   THEN Try (Complete (((Assert ⌜(n p) ∈ ℤ⌝⋅ THENA Auto) THEN HypSubst' (-1) THEN Auto)))
   THEN BHyp (-4)
   THEN Assert ⌜k > (n p)⌝⋅
   THEN Try (Complete (Auto))
   THEN (D (-2) THENA Auto)
   THEN (Assert ⌜(k (n p) ∈ ℤ) ∨ (k > (n p))⌝⋅ THENA Auto)
   THEN (-1)
   THEN Auto) }


Latex:


Latex:

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  <  n  +  1
9.  f  :  (A  (n  -  p))  {}\mrightarrow{}  primrec(p  -  1;B;\mlambda{}i,t.  ((A  ((p  -  1  -  i)  +  (n  -  p)))  {}\mrightarrow{}  t))
10.  \mforall{}f:funtype(p  -  1;\mlambda{}x.(A  (x  +  (n  -  p)  +  1));B)
            (b  \mdownarrow{}\mmember{}  lifting-gen-list-rev(n;bags)  ((n  -  p)  +  1)  f
            {}\mRightarrow{}  (\mdownarrow{}\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))))
11.  x  :  A  (n  -  p)
12.  x  \mdownarrow{}\mmember{}  bags  (n  -  p)
13.  b  \mdownarrow{}\mmember{}  lifting-gen-list-rev(n;bags)  ((n  -  p)  +  1)  (f  x)
14.  lst  :  k:\{(n  -  p)  +  1..n\msupminus{}\}  {}\mrightarrow{}  (A  k)
15.  \mforall{}[k:\{(n  -  p)  +  1..n\msupminus{}\}].  lst  k  \mdownarrow{}\mmember{}  bags  k
16.  (uncurry-gen(n)  ((n  -  p)  +  1)  (\mlambda{}x@0.(f  x))  lst)  =  b
\mvdash{}  \mforall{}[k:\{n  -  p..n\msupminus{}\}].  (\mlambda{}r.if  (r  =\msubz{}  n  -  p)  then  x  else  lst  r  fi  )  k  \mdownarrow{}\mmember{}  bags  k


By


Latex:
((D  0  THENA  Auto)
  THEN  Reduce  0
  THEN  (InstLemma  `bool\_cases`  [\mkleeneopen{}(k  =\msubz{}  n  -  p)\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  D  (-1)
  THEN  HypSubst'  (-1)  0
  THEN  Reduce  0
  THEN  Try  (Complete  (((Assert  \mkleeneopen{}k  =  (n  -  p)\mkleeneclose{}\mcdot{}  THENA  Auto)  THEN  HypSubst'  (-1)  0  THEN  Auto)))
  THEN  BHyp  (-4)
  THEN  Assert  \mkleeneopen{}k  >  (n  -  p)\mkleeneclose{}\mcdot{}
  THEN  Try  (Complete  (Auto))
  THEN  (D  (-2)  THENA  Auto)
  THEN  (Assert  \mkleeneopen{}(k  =  (n  -  p))  \mvee{}  (k  >  (n  -  p))\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  D  (-1)
  THEN  Auto)




Home Index