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


1. Type
2. Type List
3. ||v|| 1 ≠ 0
4. ∀[L2:Type List]
     ∀[x:tuple-type(v)]. ∀[y:tuple-type(L2)].  (split-tuple(append-tuple(||v||;||L2||;x;y);||v||) ~ <x, y>supposing \000C< ||L2||
5. L2 Type List
6. 0 < ||L2||
7. if null(v) then else u × tuple-type(v) fi 
8. tuple-type(L2)
⊢ if (||v|| =z 1)
then <fst(if ||v|| 1 ≤then y
      if (||v|| =z 1) then <x, y>
      else let a,b 
           in <a, append-tuple((||v|| 1) 1;||L2||;b;y)>
      fi )
     snd(if ||v|| 1 ≤then y
       if (||v|| =z 1) then <x, y>
       else let a,b 
            in <a, append-tuple((||v|| 1) 1;||L2||;b;y)>
       fi )
     >
else let a,b split-tuple(snd(if ||v|| 1 ≤then y
     if (||v|| =z 1) then <x, y>
     else let a,b 
          in <a, append-tuple((||v|| 1) 1;||L2||;b;y)>
     fi );(||v|| 1) 1) 
     in <<fst(if ||v|| 1 ≤then y
          if (||v|| =z 1) then if ||L2|| ≤then else <x, y> fi 
          else let a,b 
               in <a, append-tuple((||v|| 1) 1;||L2||;b;y)>
          fi )
         a
         >
        b
        >
fi  ~ <x, y>
BY
AutoSplit }

1
1. Type
2. Type List
3. ||v|| 1 ≠ 1
4. ||v|| 1 ≠ 0
5. ∀[L2:Type List]
     ∀[x:tuple-type(v)]. ∀[y:tuple-type(L2)].  (split-tuple(append-tuple(||v||;||L2||;x;y);||v||) ~ <x, y>supposing \000C< ||L2||
6. L2 Type List
7. 0 < ||L2||
8. if null(v) then else u × tuple-type(v) fi 
9. tuple-type(L2)
⊢ let a,b split-tuple(snd(if ||v|| 1 ≤0
  then y
  else let a,b 
       in <a, append-tuple((||v|| 1) 1;||L2||;b;y)>
  fi );(||v|| 1) 1) 
  in <<fst(if ||v|| 1 ≤then else let a,b in <a, append-tuple((||v|| 1) 1;||L2||;b;y)> fi ), a>b> ~ <x
                                                                                                                     y
                                                                                                                     >


Latex:


Latex:

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


By


Latex:
AutoSplit




Home Index