Step
*
1
2
2
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 < n + 1
9. f : funtype(n - n - p;λx.(A (x + (n - p)));bag(B))
10. b ↓∈ bag-union(⋃x∈bags (n - p).lifting-gen-list-rev(n;bags) ((n - p) + 1) (f x))
11. ∀f:funtype(n - (n - p) + 1;λx.(A (x + (n - p) + 1));bag(B))
      (b ↓∈ concat-lifting-list(n;bags) ((n - p) + 1) f
      
⇒ (↓∃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)))
12. x : bag(B)
13. b ↓∈ x
14. x1 : A (n - p)
15. x1 ↓∈ bags (n - p)
16. x ↓∈ lifting-gen-list-rev(n;bags) ((n - p) + 1) (f x1)
⊢ ↓∃lst:k:{n - p..n-} ⟶ (A k). ((∀[k:{n - p..n-}]. lst k ↓∈ bags k) ∧ b ↓∈ uncurry-gen(n) (n - p) (λx.f) lst)
BY
{ (((RWO "funtype-unroll" 9 THENM OnVar `f' Reduce) THENA Auto) THEN OnVar `f' SplitOnHypITE THEN Auto) }
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(n - n - p - 1;λi.(A ((i + 1) + (n - p)));bag(B))
11. b ↓∈ bag-union(⋃x∈bags (n - p).lifting-gen-list-rev(n;bags) ((n - p) + 1) (f x))
12. ∀f:funtype(n - (n - p) + 1;λx.(A (x + (n - p) + 1));bag(B))
      (b ↓∈ concat-lifting-list(n;bags) ((n - p) + 1) f
      
⇒ (↓∃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)))
13. x : bag(B)
14. b ↓∈ x
15. x1 : A (n - p)
16. x1 ↓∈ bags (n - p)
17. x ↓∈ lifting-gen-list-rev(n;bags) ((n - p) + 1) (f x1)
18. ¬((n - n - p) = 0 ∈ ℤ)
⊢ ↓∃lst:k:{n - p..n-} ⟶ (A k). ((∀[k:{n - p..n-}]. lst k ↓∈ bags k) ∧ b ↓∈ uncurry-gen(n) (n - p) (λx.f) 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  <  n  +  1
9.  f  :  funtype(n  -  n  -  p;\mlambda{}x.(A  (x  +  (n  -  p)));bag(B))
10.  b  \mdownarrow{}\mmember{}  bag-union(\mcup{}x\mmember{}bags  (n  -  p).lifting-gen-list-rev(n;bags)  ((n  -  p)  +  1)  (f  x))
11.  \mforall{}f:funtype(n  -  (n  -  p)  +  1;\mlambda{}x.(A  (x  +  (n  -  p)  +  1));bag(B))
            (b  \mdownarrow{}\mmember{}  concat-lifting-list(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{}  b  \mdownarrow{}\mmember{}  uncurry-gen(n)  ((n  -  p)  +  1)  (\mlambda{}x.f)  lst)))
12.  x  :  bag(B)
13.  b  \mdownarrow{}\mmember{}  x
14.  x1  :  A  (n  -  p)
15.  x1  \mdownarrow{}\mmember{}  bags  (n  -  p)
16.  x  \mdownarrow{}\mmember{}  lifting-gen-list-rev(n;bags)  ((n  -  p)  +  1)  (f  x1)
\mvdash{}  \mdownarrow{}\mexists{}lst:k:\{n  -  p..n\msupminus{}\}  {}\mrightarrow{}  (A  k)
        ((\mforall{}[k:\{n  -  p..n\msupminus{}\}].  lst  k  \mdownarrow{}\mmember{}  bags  k)  \mwedge{}  b  \mdownarrow{}\mmember{}  uncurry-gen(n)  (n  -  p)  (\mlambda{}x.f)  lst)
By
Latex:
(((RWO  "funtype-unroll"  9  THENM  OnVar  `f'  Reduce)  THENA  Auto)
  THEN  OnVar  `f'  SplitOnHypITE
  THEN  Auto)
Home
Index