Step * 1 2 1 2 of Lemma recode-tuple_wf


1. T:Type ⟶ (L:Type List × h:T ⟶ tuple-type(L) × {j:tuple-type(L) ⟶ T| ∀s:T. ((j (h s)) s ∈ T)} )
2. Type
3. Type List
4. tuple-type(v) ⟶ Unit
5. v3 Unit ⟶ tuple-type(v)
6. ∀s:tuple-type(v). ((v3 (h s)) s ∈ tuple-type(v))
7. Type List
8. h1 u ⟶ tuple-type(L)
9. v6 tuple-type(L) ⟶ u
10. ∀s:u. ((v6 (h1 s)) s ∈ u)
11. null(v) ff
12. ¬0 < 0
⊢ λx.<v6 x, v3 ⋅> ∈ {j:tuple-type(L) ⟶ (u × tuple-type(v))| 
                     ∀s:u × tuple-type(v)
                       ((j let a,b in append-tuple(||L||;0;h1 a;h b)) s ∈ (u × tuple-type(v)))} 
BY
(MemTypeCD THEN Auto) }

1
1. T:Type ⟶ (L:Type List × h:T ⟶ tuple-type(L) × {j:tuple-type(L) ⟶ T| ∀s:T. ((j (h s)) s ∈ T)} )
2. Type
3. Type List
4. tuple-type(v) ⟶ Unit
5. v3 Unit ⟶ tuple-type(v)
6. ∀s:tuple-type(v). ((v3 (h s)) s ∈ tuple-type(v))
7. Type List
8. h1 u ⟶ tuple-type(L)
9. v6 tuple-type(L) ⟶ u
10. ∀s:u. ((v6 (h1 s)) s ∈ u)
11. null(v) ff
12. ¬0 < 0
13. u × tuple-type(v)
⊢ ((λx.<v6 x, v3 ⋅>let a,b in append-tuple(||L||;0;h1 a;h b)) s ∈ (u × tuple-type(v))

2
1. T:Type ⟶ (L:Type List × h:T ⟶ tuple-type(L) × {j:tuple-type(L) ⟶ T| ∀s:T. ((j (h s)) s ∈ T)} )
2. Type
3. Type List
4. tuple-type(v) ⟶ Unit
5. v3 Unit ⟶ tuple-type(v)
6. ∀s:tuple-type(v). ((v3 (h s)) s ∈ tuple-type(v))
7. Type List
8. h1 u ⟶ tuple-type(L)
9. v6 tuple-type(L) ⟶ u
10. ∀s:u. ((v6 (h1 s)) s ∈ u)
11. null(v) ff
12. ¬0 < 0
13. tuple-type(L) ⟶ (u × tuple-type(v))
14. s1 u
15. s2 tuple-type(v)
⊢ append-tuple(||L||;0;h1 s1;h s2) ∈ tuple-type(L)


Latex:


Latex:

1.  f  :  T:Type  {}\mrightarrow{}  (L:Type  List
                                  \mtimes{}  h:T  {}\mrightarrow{}  tuple-type(L)
                                  \mtimes{}  \{j:tuple-type(L)  {}\mrightarrow{}  T|  \mforall{}s:T.  ((j  (h  s))  =  s)\}  )
2.  u  :  Type
3.  v  :  Type  List
4.  h  :  tuple-type(v)  {}\mrightarrow{}  Unit
5.  v3  :  Unit  {}\mrightarrow{}  tuple-type(v)
6.  \mforall{}s:tuple-type(v).  ((v3  (h  s))  =  s)
7.  L  :  Type  List
8.  h1  :  u  {}\mrightarrow{}  tuple-type(L)
9.  v6  :  tuple-type(L)  {}\mrightarrow{}  u
10.  \mforall{}s:u.  ((v6  (h1  s))  =  s)
11.  null(v)  =  ff
12.  \mneg{}0  <  0
\mvdash{}  \mlambda{}x.<v6  x,  v3  \mcdot{}>  \mmember{}  \{j:tuple-type(L)  {}\mrightarrow{}  (u  \mtimes{}  tuple-type(v))| 
                                          \mforall{}s:u  \mtimes{}  tuple-type(v).  ((j  let  a,b  =  s  in  append-tuple(||L||;0;h1  a;h  b))  =  s)\} 


By


Latex:
(MemTypeCD  THEN  Auto)




Home Index