Step * 1 2 1 of Lemma append-tuple-split-tuple


1. Type
2. u1 Type
3. Type List
4. ∀[x:if null(v) then u1 else u1 × tuple-type(v) fi ]. ∀[n:ℕ||v|| 1].
     (append-tuple(n;(||v|| 1) n;fst(split-tuple(x;n));snd(split-tuple(x;n))) x)
5. x1 u
6. x2 if null(v) then u1 else u1 × tuple-type(v) fi 
7. : ℕ(||v|| 1) 1
8. n ≠ 1
9. n ≠ 0
10. ¬(n ≤ 0)
⊢ let a,b fst(let a,b split-tuple(x2;n 1) 
                in <<x1, a>b>
  in <a, append-tuple(n 1;((||v|| 1) 1) n;b;snd(let a,b split-tuple(x2;n 1) in <<x1, a>b>))> ~ <x1, x2>
BY
((InstHyp [⌜x2⌝;⌜1⌝4⋅ THENA Auto)
   THEN RW (AddrC [2;2] (RevHypC (-1))) 0
   THEN (GenConcl ⌜x2 X ∈ tuple-type([u1 v])⌝⋅ THENA Auto)
   THEN (InstLemma `split-tuple_wf` [⌜[u1 v]⌝;⌜X⌝;⌜1⌝]⋅ THENA Auto')
   THEN (GenConclTerm ⌜split-tuple(X;n 1)⌝⋅ THENA Auto)
   THEN (-2)
   THEN Reduce 0
   THEN RepeatFor (EqCD)
   THEN Auto) }


Latex:


Latex:

1.  u  :  Type
2.  u1  :  Type
3.  v  :  Type  List
4.  \mforall{}[x:if  null(v)  then  u1  else  u1  \mtimes{}  tuple-type(v)  fi  ].  \mforall{}[n:\mBbbN{}||v||  +  1].
          (append-tuple(n;(||v||  +  1)  -  n;fst(split-tuple(x;n));snd(split-tuple(x;n)))  \msim{}  x)
5.  x1  :  u
6.  x2  :  if  null(v)  then  u1  else  u1  \mtimes{}  tuple-type(v)  fi 
7.  n  :  \mBbbN{}(||v||  +  1)  +  1
8.  n  \mneq{}  1
9.  n  \mneq{}  0
10.  \mneg{}(n  \mleq{}  0)
\mvdash{}  let  a,b  =  fst(let  a,b  =  split-tuple(x2;n  -  1) 
                                in  <<x1,  a>,  b>) 
    in  <a
          ,  append-tuple(n  -  1;((||v||  +  1)  +  1)  -  n;b;snd(let  a,b  =  split-tuple(x2;n  -  1) 
                                                                                                            in  <<x1,  a>,  b>))
          >  \msim{}  <x1,  x2>


By


Latex:
((InstHyp  [\mkleeneopen{}x2\mkleeneclose{};\mkleeneopen{}n  -  1\mkleeneclose{}]  4\mcdot{}  THENA  Auto)
  THEN  RW  (AddrC  [2;2]  (RevHypC  (-1)))  0
  THEN  (GenConcl  \mkleeneopen{}x2  =  X\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  (InstLemma  `split-tuple\_wf`  [\mkleeneopen{}[u1  /  v]\mkleeneclose{};\mkleeneopen{}X\mkleeneclose{};\mkleeneopen{}n  -  1\mkleeneclose{}]\mcdot{}  THENA  Auto')
  THEN  (GenConclTerm  \mkleeneopen{}split-tuple(X;n  -  1)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  D  (-2)
  THEN  Reduce  0
  THEN  RepeatFor  2  (EqCD)
  THEN  Auto)




Home Index