Step
*
2
2
3
1
of Lemma
lifting-member
1. B : Type
2. n : ℕ
3. A : ℕn ⟶ Type
4. bags : k:ℕn ⟶ bag(A k)
5. b : B
6. p : ℤ
7. 0 < p
8. 0 ≤ (n - p) + 1 < n + 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 < n + 1
10. f : funtype(p;λx.(A (x + (n - p)));B)
11. ∃lst:k:{n - p..n-} ⟶ (A k). ((∀[k:{n - p..n-}]. lst k ↓∈ bags k) ∧ ((uncurry-gen(n) (n - p) (λx.f) lst) = b ∈ B))
⊢ b ↓∈ lifting-gen-list-rev(n;bags) (n - p) f
BY
{ (Unfold `lifting-gen-list-rev` 0
   THEN RW (SweepUpC UnrollRecursionC) 0
   THEN Reduce 0
   THEN Try (Fold `lifting-gen-list-rev` 0)
   THEN (Subst ⌜(n =z n - p) ~ ff⌝ 0⋅ THENA Auto)
   THEN Reduce 0) }
1
1. B : Type
2. n : ℕ
3. A : ℕn ⟶ Type
4. bags : k:ℕn ⟶ bag(A k)
5. b : B
6. p : ℤ
7. 0 < p
8. 0 ≤ (n - p) + 1 < n + 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 < n + 1
10. f : funtype(p;λx.(A (x + (n - p)));B)
11. ∃lst:k:{n - p..n-} ⟶ (A k). ((∀[k:{n - p..n-}]. lst k ↓∈ bags k) ∧ ((uncurry-gen(n) (n - p) (λx.f) lst) = b ∈ B))
⊢ b ↓∈ ⋃x∈bags (n - p).lifting-gen-list-rev(n;bags) ((n - p) + 1) (f x)
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)  +  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  <  n  +  1
10.  f  :  funtype(p;\mlambda{}x.(A  (x  +  (n  -  p)));B)
11.  \mexists{}lst:k:\{n  -  p..n\msupminus{}\}  {}\mrightarrow{}  (A  k)
          ((\mforall{}[k:\{n  -  p..n\msupminus{}\}].  lst  k  \mdownarrow{}\mmember{}  bags  k)  \mwedge{}  ((uncurry-gen(n)  (n  -  p)  (\mlambda{}x.f)  lst)  =  b))
\mvdash{}  b  \mdownarrow{}\mmember{}  lifting-gen-list-rev(n;bags)  (n  -  p)  f
By
Latex:
(Unfold  `lifting-gen-list-rev`  0
  THEN  RW  (SweepUpC  UnrollRecursionC)  0
  THEN  Reduce  0
  THEN  Try  (Fold  `lifting-gen-list-rev`  0)
  THEN  (Subst  \mkleeneopen{}(n  =\msubz{}  n  -  p)  \msim{}  ff\mkleeneclose{}  0\mcdot{}  THENA  Auto)
  THEN  Reduce  0)
Home
Index