YES
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http:/www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>H-Termination proof of ../tpdb/qualif/Queue_addToQueue_1.hs</title>
</head>
<body>
<BR><B>H-Termination</B> of the given <I>Haskell-Program with start terms</I> could successfully be <font color=#00ff00>proven</font>:<BR><BR><BR><BR><pre>&#8627 <B>HASKELL</B></pre><pre>  &#8627 BR</pre><BR><html>
<body>mainModule Main<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>
                   &nbsp;
                </td><td>((<FONT COLOR="#000088">Queue.addToQueue</FONT> :: <FONT COLOR="#666600">Queue.Queue</FONT> <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue.Queue</FONT> <FONT COLOR="#000088">a</FONT>) :: <FONT COLOR="#666600">Queue.Queue</FONT> <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue.Queue</FONT> <FONT COLOR="#000088">a</FONT>)</td>
</tr>
</table>
<br>module Main where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified Prelude<br>import qualified Queue<br>
<br>
</td>
</tr>
</table>
<br>module Queue where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified Main<br>import qualified Prelude<br>
<br>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">data <FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT> = <FONT COLOR="#666600">Q&nbsp;</FONT>[<FONT COLOR="#000088">a</FONT>]&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<br>
<br>
<br>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">addToQueue</FONT> :: <FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT>
<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">addToQueue</FONT>&nbsp;</td><td valign="top">(<FONT COLOR="#666600">Q</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#000088">ys</FONT> <FONT COLOR="#000088">xs'</FONT>)&nbsp;<FONT COLOR="#000088">y</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">makeQ</FONT> <FONT COLOR="#000088">xs</FONT> (<FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>) <FONT COLOR="#000088">xs'</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">listToQueue</FONT> :: [<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT>
<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">listToQueue</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xs</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#666600">Q</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#666600">[]</FONT> <FONT COLOR="#000088">xs</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">makeQ</FONT> :: [<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT>
<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">makeQ</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xs</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>&nbsp;<FONT COLOR="#666600">[]</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">listToQueue</FONT> (<FONT COLOR="#000088">rotate</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#000088">ys</FONT> <FONT COLOR="#666600">[]</FONT>)</td>
</tr>
<tr>
<td valign="top"><FONT COLOR="#000088">makeQ</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xs</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>&nbsp;(_&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">xs'</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#666600">Q</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#000088">ys</FONT> <FONT COLOR="#000088">xs'</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">rotate</FONT> :: [<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">rotate</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#666600">[]</FONT>&nbsp;(<FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;_)&nbsp;<FONT COLOR="#000088">zs</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">zs</FONT></td>
</tr>
<tr>
<td valign="top"><FONT COLOR="#000088">rotate</FONT>&nbsp;</td><td valign="top">(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">xs</FONT>)&nbsp;(<FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>)&nbsp;<FONT COLOR="#000088">zs</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">rotate</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#000088">ys</FONT> (<FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">zs</FONT>)</td>
</tr>
</table>
<BR>
</td>
</tr>
</table>
<br>
</body>
</html>
<BR>Replaced joker patterns by fresh variables and removed binding patterns.<BR><BR><pre>&#8627 HASKELL</pre><pre>  &#8627 BR</pre><pre>    &#8627 <B>HASKELL</B></pre><pre>      &#8627 NumRed</pre><BR><html>
<body>mainModule Main<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>
                   &nbsp;
                </td><td>((<FONT COLOR="#000088">Queue.addToQueue</FONT> :: <FONT COLOR="#666600">Queue.Queue</FONT> <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue.Queue</FONT> <FONT COLOR="#000088">a</FONT>) :: <FONT COLOR="#666600">Queue.Queue</FONT> <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue.Queue</FONT> <FONT COLOR="#000088">a</FONT>)</td>
</tr>
</table>
<br>module Main where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified Prelude<br>import qualified Queue<br>
<br>
</td>
</tr>
</table>
<br>module Queue where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified Main<br>import qualified Prelude<br>
<br>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">data <FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT> = <FONT COLOR="#666600">Q&nbsp;</FONT>[<FONT COLOR="#000088">a</FONT>]&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<br>
<br>
<br>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">addToQueue</FONT> :: <FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT>
<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">addToQueue</FONT>&nbsp;</td><td valign="top">(<FONT COLOR="#666600">Q</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#000088">ys</FONT> <FONT COLOR="#000088">xs'</FONT>)&nbsp;<FONT COLOR="#000088">y</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">makeQ</FONT> <FONT COLOR="#000088">xs</FONT> (<FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>) <FONT COLOR="#000088">xs'</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">listToQueue</FONT> :: [<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT>
<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">listToQueue</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xs</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#666600">Q</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#666600">[]</FONT> <FONT COLOR="#000088">xs</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">makeQ</FONT> :: [<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT>
<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">makeQ</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xs</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>&nbsp;<FONT COLOR="#666600">[]</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">listToQueue</FONT> (<FONT COLOR="#000088">rotate</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#000088">ys</FONT> <FONT COLOR="#666600">[]</FONT>)</td>
</tr>
<tr>
<td valign="top"><FONT COLOR="#000088">makeQ</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xs</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>&nbsp;(<FONT COLOR="#000088">vv</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">xs'</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#666600">Q</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#000088">ys</FONT> <FONT COLOR="#000088">xs'</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">rotate</FONT> :: [<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">rotate</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#666600">[]</FONT>&nbsp;(<FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">vw</FONT>)&nbsp;<FONT COLOR="#000088">zs</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">zs</FONT></td>
</tr>
<tr>
<td valign="top"><FONT COLOR="#000088">rotate</FONT>&nbsp;</td><td valign="top">(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">xs</FONT>)&nbsp;(<FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>)&nbsp;<FONT COLOR="#000088">zs</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">rotate</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#000088">ys</FONT> (<FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">zs</FONT>)</td>
</tr>
</table>
<BR>
</td>
</tr>
</table>
<br>
</body>
</html>
<BR>Num Reduction:All numbers are transformed to thier corresponding representation with Succ, Pred and Zero.<BR><BR><pre>&#8627 HASKELL</pre><pre>  &#8627 BR</pre><pre>    &#8627 HASKELL</pre><pre>      &#8627 NumRed</pre><pre>        &#8627 <B>HASKELL</B></pre><pre>          &#8627 Narrow</pre><BR><html>
<body>mainModule Main<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>
                   &nbsp;
                </td><td>(<FONT COLOR="#000088">Queue.addToQueue</FONT> :: <FONT COLOR="#666600">Queue.Queue</FONT> <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue.Queue</FONT> <FONT COLOR="#000088">a</FONT>)</td>
</tr>
</table>
<br>module Main where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified Prelude<br>import qualified Queue<br>
<br>
</td>
</tr>
</table>
<br>module Queue where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified Main<br>import qualified Prelude<br>
<br>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">data <FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT> = <FONT COLOR="#666600">Q&nbsp;</FONT>[<FONT COLOR="#000088">a</FONT>]&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<br>
<br>
<br>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">addToQueue</FONT> :: <FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT>
<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">addToQueue</FONT>&nbsp;</td><td valign="top">(<FONT COLOR="#666600">Q</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#000088">ys</FONT> <FONT COLOR="#000088">xs'</FONT>)&nbsp;<FONT COLOR="#000088">y</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">makeQ</FONT> <FONT COLOR="#000088">xs</FONT> (<FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>) <FONT COLOR="#000088">xs'</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">listToQueue</FONT> :: [<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT>
<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">listToQueue</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xs</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#666600">Q</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#666600">[]</FONT> <FONT COLOR="#000088">xs</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">makeQ</FONT> :: [<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Queue</FONT> <FONT COLOR="#000088">a</FONT>
<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">makeQ</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xs</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>&nbsp;<FONT COLOR="#666600">[]</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">listToQueue</FONT> (<FONT COLOR="#000088">rotate</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#000088">ys</FONT> <FONT COLOR="#666600">[]</FONT>)</td>
</tr>
<tr>
<td valign="top"><FONT COLOR="#000088">makeQ</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xs</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>&nbsp;(<FONT COLOR="#000088">vv</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">xs'</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#666600">Q</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#000088">ys</FONT> <FONT COLOR="#000088">xs'</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">rotate</FONT> :: [<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">rotate</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#666600">[]</FONT>&nbsp;(<FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">vw</FONT>)&nbsp;<FONT COLOR="#000088">zs</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">zs</FONT></td>
</tr>
<tr>
<td valign="top"><FONT COLOR="#000088">rotate</FONT>&nbsp;</td><td valign="top">(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">xs</FONT>)&nbsp;(<FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>)&nbsp;<FONT COLOR="#000088">zs</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">rotate</FONT> <FONT COLOR="#000088">xs</FONT> <FONT COLOR="#000088">ys</FONT> (<FONT COLOR="#000088">y</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">zs</FONT>)</td>
</tr>
</table>
<BR>
</td>
</tr>
</table>
<br>
</body>
</html>
<BR>Haskell To QDPs<BR><textarea cols="80" rows="25">digraph dp_graph {
node [outthreshold=100, inthreshold=100];1[label="Queue.addToQueue\n",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3];
3[label="Queue.addToQueue vz3\n",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3];
4[label="Queue.addToQueue vz3 vz4\n",fontsize=16,color="burlywood",shape="triangle"];159[label="vz3/Queue.Q vz30 vz31 vz32",fontsize=10,color="white",style="solid",shape="box"];4 -> 159[label="",style="solid", color="burlywood", weight=9];
159 -> 5[label="",style="solid", color="burlywood", weight=3];
5[label="Queue.addToQueue (Queue.Q vz30 vz31 vz32) vz4\n",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3];
6[label="Queue.makeQ vz30 (vz4 : vz31) vz32\n",fontsize=16,color="burlywood",shape="box"];160[label="vz32/vz320 : vz321",fontsize=10,color="white",style="solid",shape="box"];6 -> 160[label="",style="solid", color="burlywood", weight=9];
160 -> 7[label="",style="solid", color="burlywood", weight=3];
161[label="vz32/[]",fontsize=10,color="white",style="solid",shape="box"];6 -> 161[label="",style="solid", color="burlywood", weight=9];
161 -> 8[label="",style="solid", color="burlywood", weight=3];
7[label="Queue.makeQ vz30 (vz4 : vz31) (vz320 : vz321)\n",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3];
8[label="Queue.makeQ vz30 (vz4 : vz31) []\n",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3];
9[label="Queue.Q vz30 (vz4 : vz31) vz321\n",fontsize=16,color="green",shape="box"];10[label="Queue.listToQueue (Queue.rotate vz30 (vz4 : vz31) [])\n",fontsize=16,color="black",shape="box"];10 -> 11[label="",style="solid", color="black", weight=3];
11[label="Queue.Q (Queue.rotate vz30 (vz4 : vz31) []) [] (Queue.rotate vz30 (vz4 : vz31) [])\n",fontsize=16,color="green",shape="box"];11 -> 12[label="",style="dashed", color="green", weight=3];
11 -> 13[label="",style="dashed", color="green", weight=3];
12[label="Queue.rotate vz30 (vz4 : vz31) []\n",fontsize=16,color="burlywood",shape="triangle"];162[label="vz30/vz300 : vz301",fontsize=10,color="white",style="solid",shape="box"];12 -> 162[label="",style="solid", color="burlywood", weight=9];
162 -> 14[label="",style="solid", color="burlywood", weight=3];
163[label="vz30/[]",fontsize=10,color="white",style="solid",shape="box"];12 -> 163[label="",style="solid", color="burlywood", weight=9];
163 -> 15[label="",style="solid", color="burlywood", weight=3];
13 -> 12[label="",style="dashed", color="red", weight=0];
13[label="Queue.rotate vz30 (vz4 : vz31) []\n",fontsize=16,color="magenta"];14[label="Queue.rotate (vz300 : vz301) (vz4 : vz31) []\n",fontsize=16,color="black",shape="box"];14 -> 16[label="",style="solid", color="black", weight=3];
15[label="Queue.rotate [] (vz4 : vz31) []\n",fontsize=16,color="black",shape="box"];15 -> 17[label="",style="solid", color="black", weight=3];
16[label="vz300 : Queue.rotate vz301 vz31 (vz4 : [])\n",fontsize=16,color="green",shape="box"];16 -> 18[label="",style="dashed", color="green", weight=3];
17[label="vz4 : []\n",fontsize=16,color="green",shape="box"];18 -> 107[label="",style="dashed", color="red", weight=0];
18[label="Queue.rotate vz301 vz31 (vz4 : [])\n",fontsize=16,color="magenta"];18 -> 108[label="",style="dashed", color="magenta", weight=3];
18 -> 109[label="",style="dashed", color="magenta", weight=3];
18 -> 110[label="",style="dashed", color="magenta", weight=3];
18 -> 111[label="",style="dashed", color="magenta", weight=3];
108[label="[]\n",fontsize=16,color="green",shape="box"];109[label="vz301\n",fontsize=16,color="green",shape="box"];110[label="vz31\n",fontsize=16,color="green",shape="box"];111[label="vz4\n",fontsize=16,color="green",shape="box"];107[label="Queue.rotate vz6 vz7 (vz8 : vz9)\n",fontsize=16,color="burlywood",shape="triangle"];166[label="vz6/vz60 : vz61",fontsize=10,color="white",style="solid",shape="box"];107 -> 166[label="",style="solid", color="burlywood", weight=9];
166 -> 144[label="",style="solid", color="burlywood", weight=3];
167[label="vz6/[]",fontsize=10,color="white",style="solid",shape="box"];107 -> 167[label="",style="solid", color="burlywood", weight=9];
167 -> 145[label="",style="solid", color="burlywood", weight=3];
144[label="Queue.rotate (vz60 : vz61) vz7 (vz8 : vz9)\n",fontsize=16,color="burlywood",shape="box"];168[label="vz7/vz70 : vz71",fontsize=10,color="white",style="solid",shape="box"];144 -> 168[label="",style="solid", color="burlywood", weight=9];
168 -> 146[label="",style="solid", color="burlywood", weight=3];
169[label="vz7/[]",fontsize=10,color="white",style="solid",shape="box"];144 -> 169[label="",style="solid", color="burlywood", weight=9];
169 -> 147[label="",style="solid", color="burlywood", weight=3];
145[label="Queue.rotate [] vz7 (vz8 : vz9)\n",fontsize=16,color="burlywood",shape="box"];170[label="vz7/vz70 : vz71",fontsize=10,color="white",style="solid",shape="box"];145 -> 170[label="",style="solid", color="burlywood", weight=9];
170 -> 148[label="",style="solid", color="burlywood", weight=3];
171[label="vz7/[]",fontsize=10,color="white",style="solid",shape="box"];145 -> 171[label="",style="solid", color="burlywood", weight=9];
171 -> 149[label="",style="solid", color="burlywood", weight=3];
146[label="Queue.rotate (vz60 : vz61) (vz70 : vz71) (vz8 : vz9)\n",fontsize=16,color="black",shape="box"];146 -> 150[label="",style="solid", color="black", weight=3];
147[label="Queue.rotate (vz60 : vz61) [] (vz8 : vz9)\n",fontsize=16,color="black",shape="box"];147 -> 151[label="",style="solid", color="black", weight=3];
148[label="Queue.rotate [] (vz70 : vz71) (vz8 : vz9)\n",fontsize=16,color="black",shape="box"];148 -> 152[label="",style="solid", color="black", weight=3];
149[label="Queue.rotate [] [] (vz8 : vz9)\n",fontsize=16,color="black",shape="box"];149 -> 153[label="",style="solid", color="black", weight=3];
150[label="vz60 : Queue.rotate vz61 vz71 (vz70 : vz8 : vz9)\n",fontsize=16,color="green",shape="box"];150 -> 154[label="",style="dashed", color="green", weight=3];
151[label="error []\n",fontsize=16,color="red",shape="box"];152[label="vz70 : vz8 : vz9\n",fontsize=16,color="green",shape="box"];153[label="error []\n",fontsize=16,color="red",shape="box"];154 -> 107[label="",style="dashed", color="red", weight=0];
154[label="Queue.rotate vz61 vz71 (vz70 : vz8 : vz9)\n",fontsize=16,color="magenta"];154 -> 155[label="",style="dashed", color="magenta", weight=3];
154 -> 156[label="",style="dashed", color="magenta", weight=3];
154 -> 157[label="",style="dashed", color="magenta", weight=3];
154 -> 158[label="",style="dashed", color="magenta", weight=3];
155[label="vz8 : vz9\n",fontsize=16,color="green",shape="box"];156[label="vz61\n",fontsize=16,color="green",shape="box"];157[label="vz71\n",fontsize=16,color="green",shape="box"];158[label="vz70\n",fontsize=16,color="green",shape="box"];}
</textarea><BR><BR><pre>&#8627 HASKELL</pre><pre>  &#8627 BR</pre><pre>    &#8627 HASKELL</pre><pre>      &#8627 NumRed</pre><pre>        &#8627 HASKELL</pre><pre>          &#8627 Narrow</pre><pre>            &#8627 <B>QDP</B></pre><pre>              &#8627 QDPSizeChangeProof</pre><BR>Q DP problem:<BR>The TRS P consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>new_rotate</font>(<FONT COLOR=#0000cc>:</font>(<FONT COLOR=#cc0000>vz60</font>, <FONT COLOR=#cc0000>vz61</font>), <FONT COLOR=#0000cc>:</font>(<FONT COLOR=#cc0000>vz70</font>, <FONT COLOR=#cc0000>vz71</font>), <FONT COLOR=#cc0000>vz8</font>, <FONT COLOR=#cc0000>vz9</font>, <FONT COLOR=#cc0000>h</font>) &#8594; <FONT COLOR=#0000cc>new_rotate</font>(<FONT COLOR=#cc0000>vz61</font>, <FONT COLOR=#cc0000>vz71</font>, <FONT COLOR=#cc0000>vz70</font>, <FONT COLOR=#0000cc>:</font>(<FONT COLOR=#cc0000>vz8</font>, <FONT COLOR=#cc0000>vz9</font>), <FONT COLOR=#cc0000>h</font>)</BLOCKQUOTE><BR>R is empty.<BR>Q is empty.<BR>We have to consider all minimal (P,Q,R)-chains.<BR>By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. <P>From the DPs we obtained the following set of size-change graphs:
<UL><LI><FONT COLOR=#0000cc>new_rotate</font>(<FONT COLOR=#0000cc>:</font>(<FONT COLOR=#cc0000>vz60</font>, <FONT COLOR=#cc0000>vz61</font>), <FONT COLOR=#0000cc>:</font>(<FONT COLOR=#cc0000>vz70</font>, <FONT COLOR=#cc0000>vz71</font>), <FONT COLOR=#cc0000>vz8</font>, <FONT COLOR=#cc0000>vz9</font>, <FONT COLOR=#cc0000>h</font>) &#8594; <FONT COLOR=#0000cc>new_rotate</font>(<FONT COLOR=#cc0000>vz61</font>, <FONT COLOR=#cc0000>vz71</font>, <FONT COLOR=#cc0000>vz70</font>, <FONT COLOR=#0000cc>:</font>(<FONT COLOR=#cc0000>vz8</font>, <FONT COLOR=#cc0000>vz9</font>), <FONT COLOR=#cc0000>h</font>)<BR>The graph contains the following edges 1 > 1, 2 > 2, 2 > 3, 5 >= 5<P></LI></UL><BR><BR></body>


