Step * 1 1 of Lemma dep-accum_wf


1. Type
2. Type
3. A ⟶ B ⟶ Type
4. very-dep-fun(A;B;a,b.C[a;b])
5. a:A ⟶ b:B ⟶ C[a;b]
6. : ℕ
7. bs List
8. ∀b1:B List
     (||b1|| < ||bs||
      (dep-accum(L,b.f[L;b];a,b.g[a;b];b1) ∈ {L:(a:A × b:B × C[a;b]) List| 
                                                vdf-eq(A;f;L) ∧ (map(λx.(fst(snd(x)));L) b1 ∈ (B List))} ))
9. bs if (||bs|| =z 0) then [] else firstn(||bs|| 1;bs) [last(bs)] fi 
10. ¬(||bs|| 0 ∈ ℤ)
11. dep-accum(L,b.f[L;b];a,b.g[a;b];firstn(||bs|| 1;bs)) ∈ {L:(a:A × b:B × C[a;b]) List| 
                                                              vdf-eq(A;f;L)
                                                              ∧ (map(λx.(fst(snd(x)));L)
                                                                firstn(||bs|| 1;bs)
                                                                ∈ (B List))} 
12. {L:(a:A × b:B × C[a;b]) List| vdf-eq(A;f;L) ∧ (map(λx.(fst(snd(x)));L) firstn(||bs|| 1;bs) ∈ (B List))} 
13. dep-accum(L,b.f[L;b];a,bb.g[a;bb];firstn(||bs|| 1;bs))
v
∈ {L:(a:A × b:B × C[a;b]) List| vdf-eq(A;f;L) ∧ (map(λx.(fst(snd(x)));L) firstn(||bs|| 1;bs) ∈ (B List))} 
14. f ∈ {L:(a:A × b:B × C[a;b]) List| vdf-eq(A;f;L)}  ⟶ B ⟶ A
15. A
16. f[v;last(bs)] a ∈ A
⊢ [<a, last(bs), g[a;last(bs)]>] ∈ {L:(a:A × b:B × C[a;b]) List| 
                                       vdf-eq(A;f;L)
                                       ∧ (map(λx.(fst(snd(x)));L) (firstn(||bs|| 1;bs) [last(bs)]) ∈ (B List))} 
BY
(DVar `v' THEN (MemTypeCD THENW Auto) THEN (D ORELSE Auto)) }

1
1. Type
2. Type
3. A ⟶ B ⟶ Type
4. very-dep-fun(A;B;a,b.C[a;b])
5. a:A ⟶ b:B ⟶ C[a;b]
6. : ℕ
7. bs List
8. ∀b1:B List
     (||b1|| < ||bs||
      (dep-accum(L,b.f[L;b];a,b.g[a;b];b1) ∈ {L:(a:A × b:B × C[a;b]) List| 
                                                vdf-eq(A;f;L) ∧ (map(λx.(fst(snd(x)));L) b1 ∈ (B List))} ))
9. bs if (||bs|| =z 0) then [] else firstn(||bs|| 1;bs) [last(bs)] fi 
10. ¬(||bs|| 0 ∈ ℤ)
11. dep-accum(L,b.f[L;b];a,b.g[a;b];firstn(||bs|| 1;bs)) ∈ {L:(a:A × b:B × C[a;b]) List| 
                                                              vdf-eq(A;f;L)
                                                              ∧ (map(λx.(fst(snd(x)));L)
                                                                firstn(||bs|| 1;bs)
                                                                ∈ (B List))} 
12. (a:A × b:B × C[a;b]) List
13. vdf-eq(A;f;v) ∧ (map(λx.(fst(snd(x)));v) firstn(||bs|| 1;bs) ∈ (B List))
14. dep-accum(L,b.f[L;b];a,bb.g[a;bb];firstn(||bs|| 1;bs))
v
∈ {L:(a:A × b:B × C[a;b]) List| vdf-eq(A;f;L) ∧ (map(λx.(fst(snd(x)));L) firstn(||bs|| 1;bs) ∈ (B List))} 
15. f ∈ {L:(a:A × b:B × C[a;b]) List| vdf-eq(A;f;L)}  ⟶ B ⟶ A
16. A
17. f[v;last(bs)] a ∈ A
⊢ vdf-eq(A;f;v [<a, last(bs), g[a;last(bs)]>])

2
1. Type
2. Type
3. A ⟶ B ⟶ Type
4. very-dep-fun(A;B;a,b.C[a;b])
5. a:A ⟶ b:B ⟶ C[a;b]
6. : ℕ
7. bs List
8. ∀b1:B List
     (||b1|| < ||bs||
      (dep-accum(L,b.f[L;b];a,b.g[a;b];b1) ∈ {L:(a:A × b:B × C[a;b]) List| 
                                                vdf-eq(A;f;L) ∧ (map(λx.(fst(snd(x)));L) b1 ∈ (B List))} ))
9. bs if (||bs|| =z 0) then [] else firstn(||bs|| 1;bs) [last(bs)] fi 
10. ¬(||bs|| 0 ∈ ℤ)
11. dep-accum(L,b.f[L;b];a,b.g[a;b];firstn(||bs|| 1;bs)) ∈ {L:(a:A × b:B × C[a;b]) List| 
                                                              vdf-eq(A;f;L)
                                                              ∧ (map(λx.(fst(snd(x)));L)
                                                                firstn(||bs|| 1;bs)
                                                                ∈ (B List))} 
12. (a:A × b:B × C[a;b]) List
13. vdf-eq(A;f;v) ∧ (map(λx.(fst(snd(x)));v) firstn(||bs|| 1;bs) ∈ (B List))
14. dep-accum(L,b.f[L;b];a,bb.g[a;bb];firstn(||bs|| 1;bs))
v
∈ {L:(a:A × b:B × C[a;b]) List| vdf-eq(A;f;L) ∧ (map(λx.(fst(snd(x)));L) firstn(||bs|| 1;bs) ∈ (B List))} 
15. f ∈ {L:(a:A × b:B × C[a;b]) List| vdf-eq(A;f;L)}  ⟶ B ⟶ A
16. A
17. f[v;last(bs)] a ∈ A
⊢ map(λx.(fst(snd(x)));v [<a, last(bs), g[a;last(bs)]>]) (firstn(||bs|| 1;bs) [last(bs)]) ∈ (B List)


Latex:


Latex:

1.  A  :  Type
2.  B  :  Type
3.  C  :  A  {}\mrightarrow{}  B  {}\mrightarrow{}  Type
4.  f  :  very-dep-fun(A;B;a,b.C[a;b])
5.  g  :  a:A  {}\mrightarrow{}  b:B  {}\mrightarrow{}  C[a;b]
6.  n  :  \mBbbN{}
7.  bs  :  B  List
8.  \mforall{}b1:B  List
          (||b1||  <  ||bs||
          {}\mRightarrow{}  (dep-accum(L,b.f[L;b];a,b.g[a;b];b1)  \mmember{}  \{L:(a:A  \mtimes{}  b:B  \mtimes{}  C[a;b])  List| 
                                                                                                vdf-eq(A;f;L)  \mwedge{}  (map(\mlambda{}x.(fst(snd(x)));L)  =  b1)\}  ))
9.  bs  \msim{}  if  (||bs||  =\msubz{}  0)  then  []  else  firstn(||bs||  -  1;bs)  @  [last(bs)]  fi 
10.  \mneg{}(||bs||  =  0)
11.  dep-accum(L,b.f[L;b];a,b.g[a;b];firstn(||bs||  -  1;bs))  \mmember{}  \{L:(a:A  \mtimes{}  b:B  \mtimes{}  C[a;b])  List| 
                                                                                                                            vdf-eq(A;f;L)
                                                                                                                            \mwedge{}  (map(\mlambda{}x.(fst(snd(x)));L)
                                                                                                                                =  firstn(||bs||  -  1;bs))\} 
12.  v  :  \{L:(a:A  \mtimes{}  b:B  \mtimes{}  C[a;b])  List| 
                  vdf-eq(A;f;L)  \mwedge{}  (map(\mlambda{}x.(fst(snd(x)));L)  =  firstn(||bs||  -  1;bs))\} 
13.  dep-accum(L,b.f[L;b];a,bb.g[a;bb];firstn(||bs||  -  1;bs))  =  v
14.  f  \mmember{}  \{L:(a:A  \mtimes{}  b:B  \mtimes{}  C[a;b])  List|  vdf-eq(A;f;L)\}    {}\mrightarrow{}  B  {}\mrightarrow{}  A
15.  a  :  A
16.  f[v;last(bs)]  =  a
\mvdash{}  v  @  [<a,  last(bs),  g[a;last(bs)]>]  \mmember{}  \{L:(a:A  \mtimes{}  b:B  \mtimes{}  C[a;b])  List| 
                                                                              vdf-eq(A;f;L)
                                                                              \mwedge{}  (map(\mlambda{}x.(fst(snd(x)));L)
                                                                                  =  (firstn(||bs||  -  1;bs)  @  [last(bs)]))\} 


By


Latex:
(DVar  `v'  THEN  (MemTypeCD  THENW  Auto)  THEN  (D  0  ORELSE  Auto))




Home Index