Step
*
2
2
1
1
2
1
of Lemma
concat-lifting-list-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)
9. n - p < n + 1
10. f : (A (0 + (n - p))) ⟶ funtype(p - 1;λi.(A ((i + 1) + (n - p)));bag(B))
11. lst : k:{n - p..n-} ⟶ (A k)
12. ∀[k:{n - p..n-}]. lst k ↓∈ bags k
13. b ↓∈ uncurry-gen(n) (n - p) (λx.f) lst
14. ∀f:funtype(p - 1;λx.(A (x + (n - p) + 1));bag(B))
      ((↓∃lst:k:{(n - p) + 1..n-} ⟶ (A k)
          ((∀[k:{(n - p) + 1..n-}]. lst k ↓∈ bags k) ∧ b ↓∈ uncurry-gen(n) ((n - p) + 1) (λx.f) lst))
      
⇒ b ↓∈ bag-union(lifting-gen-list-rev(n;bags) ((n - p) + 1) f))
⊢ (∀[k:{(n - p) + 1..n-}]. lst k ↓∈ bags k) ∧ b ↓∈ uncurry-gen(n) ((n - p) + 1) (λx.(f (lst (n - p)))) lst
BY
{ (D 0
   THEN Try (Complete (Auto))
   THEN Thin (-1)
   THEN Unfold `uncurry-gen` (-1)
   THEN RW (SweepUpC UnrollRecursionC) (-1)
   THEN Reduce (-1)
   THEN Try (Fold `uncurry-gen` (-1))
   THEN (Subst ⌜(n - p =z n) ~ ff⌝ (-1)⋅ THENA Auto)
   THEN Reduce (-1)) }
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)
9. n - p < n + 1
10. f : (A (0 + (n - p))) ⟶ funtype(p - 1;λi.(A ((i + 1) + (n - p)));bag(B))
11. lst : k:{n - p..n-} ⟶ (A k)
12. ∀[k:{n - p..n-}]. lst k ↓∈ bags k
13. b ↓∈ uncurry-gen(n) ((n - p) + 1) (λx.(f (x (n - p)))) lst
⊢ b ↓∈ uncurry-gen(n) ((n - p) + 1) (λx.(f (lst (n - p)))) lst
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)
9.  n  -  p  <  n  +  1
10.  f  :  (A  (0  +  (n  -  p)))  {}\mrightarrow{}  funtype(p  -  1;\mlambda{}i.(A  ((i  +  1)  +  (n  -  p)));bag(B))
11.  lst  :  k:\{n  -  p..n\msupminus{}\}  {}\mrightarrow{}  (A  k)
12.  \mforall{}[k:\{n  -  p..n\msupminus{}\}].  lst  k  \mdownarrow{}\mmember{}  bags  k
13.  b  \mdownarrow{}\mmember{}  uncurry-gen(n)  (n  -  p)  (\mlambda{}x.f)  lst
14.  \mforall{}f:funtype(p  -  1;\mlambda{}x.(A  (x  +  (n  -  p)  +  1));bag(B))
            ((\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{}  b  \mdownarrow{}\mmember{}  uncurry-gen(n)  ((n  -  p)  +  1)  (\mlambda{}x.f)  lst))
            {}\mRightarrow{}  b  \mdownarrow{}\mmember{}  bag-union(lifting-gen-list-rev(n;bags)  ((n  -  p)  +  1)  f))
\mvdash{}  (\mforall{}[k:\{(n  -  p)  +  1..n\msupminus{}\}].  lst  k  \mdownarrow{}\mmember{}  bags  k)
\mwedge{}  b  \mdownarrow{}\mmember{}  uncurry-gen(n)  ((n  -  p)  +  1)  (\mlambda{}x.(f  (lst  (n  -  p))))  lst
By
Latex:
(D  0
  THEN  Try  (Complete  (Auto))
  THEN  Thin  (-1)
  THEN  Unfold  `uncurry-gen`  (-1)
  THEN  RW  (SweepUpC  UnrollRecursionC)  (-1)
  THEN  Reduce  (-1)
  THEN  Try  (Fold  `uncurry-gen`  (-1))
  THEN  (Subst  \mkleeneopen{}(n  -  p  =\msubz{}  n)  \msim{}  ff\mkleeneclose{}  (-1)\mcdot{}  THENA  Auto)
  THEN  Reduce  (-1))
Home
Index