Step
*
1
1
4
of Lemma
recode-tuple_wf
1. f : T:Type ⟶ (L:Type List × h:T ⟶ tuple-type(L) × {j:tuple-type(L) ⟶ T| ∀s:T. ((j (h s)) = s ∈ T)} )
2. u : Type
3. v : Type List
4. L' : Type List
5. h : tuple-type(v) ⟶ tuple-type(L')
6. v3 : tuple-type(L') ⟶ tuple-type(v)
7. ∀s:tuple-type(v). ((v3 (h s)) = s ∈ tuple-type(v))
8. L : Type List
9. h1 : u ⟶ tuple-type(L)
10. v6 : tuple-type(L) ⟶ u
11. ∀s:u. ((v6 (h1 s)) = s ∈ u)
12. null(v) = ff
13. 0 < ||L'||
14. null(L') = ff
15. s : u × tuple-type(v)
⊢ let a,b = split-tuple(let a,b = s 
                        in append-tuple(||L||;||L'||;h1 a;h b);||L||) 
  in <v6 a, v3 b>
= s
∈ (u × tuple-type(v))
BY
{ (D (-1) THEN Reduce 0 THEN RWO "split-tuple-append-tuple" 0 THEN Reduce 0 THEN Auto THEN EqCD THEN Auto)⋅ }
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.  L'  :  Type  List
5.  h  :  tuple-type(v)  {}\mrightarrow{}  tuple-type(L')
6.  v3  :  tuple-type(L')  {}\mrightarrow{}  tuple-type(v)
7.  \mforall{}s:tuple-type(v).  ((v3  (h  s))  =  s)
8.  L  :  Type  List
9.  h1  :  u  {}\mrightarrow{}  tuple-type(L)
10.  v6  :  tuple-type(L)  {}\mrightarrow{}  u
11.  \mforall{}s:u.  ((v6  (h1  s))  =  s)
12.  null(v)  =  ff
13.  0  <  ||L'||
14.  null(L')  =  ff
15.  s  :  u  \mtimes{}  tuple-type(v)
\mvdash{}  let  a,b  =  split-tuple(let  a,b  =  s 
                                                in  append-tuple(||L||;||L'||;h1  a;h  b);||L||) 
    in  <v6  a,  v3  b>
=  s
By
Latex:
(D  (-1)
  THEN  Reduce  0
  THEN  RWO  "split-tuple-append-tuple"  0
  THEN  Reduce  0
  THEN  Auto
  THEN  EqCD
  THEN  Auto)\mcdot{}
Home
Index