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/FP/full_haskell/Prelude_negate_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">negate</FONT> :: <FONT COLOR="#666600">Num</FONT> <FONT COLOR="#000088">a</FONT> =&gt; <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>) :: <FONT COLOR="#666600">Num</FONT> <FONT COLOR="#000088">a</FONT> =&gt; <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<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>
<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">negate</FONT> :: <FONT COLOR="#666600">Num</FONT> <FONT COLOR="#000088">a</FONT> =&gt; <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>) :: <FONT COLOR="#666600">Num</FONT> <FONT COLOR="#000088">a</FONT> =&gt; <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<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>
<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">negate</FONT> :: <FONT COLOR="#666600">Num</FONT> <FONT COLOR="#000088">a</FONT> =&gt; <FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<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>
<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="negate\n",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3];
3[label="negate vx3\n",fontsize=16,color="blue",shape="triangle"];35[label="negate :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];3 -> 35[label="",style="solid", color="blue", weight=9];
35 -> 4[label="",style="solid", color="blue", weight=3];
36[label="negate :: Float -> Float",fontsize=10,color="white",style="solid",shape="box"];3 -> 36[label="",style="solid", color="blue", weight=9];
36 -> 5[label="",style="solid", color="blue", weight=3];
37[label="negate :: (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];3 -> 37[label="",style="solid", color="blue", weight=9];
37 -> 6[label="",style="solid", color="blue", weight=3];
38[label="negate :: Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];3 -> 38[label="",style="solid", color="blue", weight=9];
38 -> 7[label="",style="solid", color="blue", weight=3];
39[label="negate :: Double -> Double",fontsize=10,color="white",style="solid",shape="box"];3 -> 39[label="",style="solid", color="blue", weight=9];
39 -> 8[label="",style="solid", color="blue", weight=3];
4[label="negate vx3\n",fontsize=16,color="black",shape="triangle"];4 -> 9[label="",style="solid", color="black", weight=3];
5[label="negate vx3\n",fontsize=16,color="black",shape="box"];5 -> 10[label="",style="solid", color="black", weight=3];
6[label="negate vx3\n",fontsize=16,color="burlywood",shape="box"];40[label="vx3/vx30 :% vx31",fontsize=10,color="white",style="solid",shape="box"];6 -> 40[label="",style="solid", color="burlywood", weight=9];
40 -> 11[label="",style="solid", color="burlywood", weight=3];
7[label="negate vx3\n",fontsize=16,color="burlywood",shape="triangle"];41[label="vx3/Integer vx30",fontsize=10,color="white",style="solid",shape="box"];7 -> 41[label="",style="solid", color="burlywood", weight=9];
41 -> 12[label="",style="solid", color="burlywood", weight=3];
8[label="negate vx3\n",fontsize=16,color="black",shape="box"];8 -> 13[label="",style="solid", color="black", weight=3];
9[label="primNegInt vx3\n",fontsize=16,color="burlywood",shape="triangle"];42[label="vx3/Pos vx30",fontsize=10,color="white",style="solid",shape="box"];9 -> 42[label="",style="solid", color="burlywood", weight=9];
42 -> 14[label="",style="solid", color="burlywood", weight=3];
43[label="vx3/Neg vx30",fontsize=10,color="white",style="solid",shape="box"];9 -> 43[label="",style="solid", color="burlywood", weight=9];
43 -> 15[label="",style="solid", color="burlywood", weight=3];
10[label="primNegFloat vx3\n",fontsize=16,color="burlywood",shape="box"];44[label="vx3/Float vx30 vx31",fontsize=10,color="white",style="solid",shape="box"];10 -> 44[label="",style="solid", color="burlywood", weight=9];
44 -> 16[label="",style="solid", color="burlywood", weight=3];
11[label="negate vx30 :% vx31\n",fontsize=16,color="black",shape="box"];11 -> 17[label="",style="solid", color="black", weight=3];
12[label="negate Integer vx30\n",fontsize=16,color="black",shape="box"];12 -> 18[label="",style="solid", color="black", weight=3];
13[label="primNegDouble vx3\n",fontsize=16,color="burlywood",shape="box"];45[label="vx3/Double vx30 vx31",fontsize=10,color="white",style="solid",shape="box"];13 -> 45[label="",style="solid", color="burlywood", weight=9];
45 -> 19[label="",style="solid", color="burlywood", weight=3];
14[label="primNegInt (Pos vx30)\n",fontsize=16,color="black",shape="box"];14 -> 20[label="",style="solid", color="black", weight=3];
15[label="primNegInt (Neg vx30)\n",fontsize=16,color="black",shape="box"];15 -> 21[label="",style="solid", color="black", weight=3];
16[label="primNegFloat (Float vx30 vx31)\n",fontsize=16,color="black",shape="box"];16 -> 22[label="",style="solid", color="black", weight=3];
17[label="(negate vx30) :% vx31\n",fontsize=16,color="green",shape="box"];17 -> 23[label="",style="dashed", color="green", weight=3];
18[label="Integer (primNegInt vx30)\n",fontsize=16,color="green",shape="box"];18 -> 24[label="",style="dashed", color="green", weight=3];
19[label="primNegDouble (Double vx30 vx31)\n",fontsize=16,color="black",shape="box"];19 -> 25[label="",style="solid", color="black", weight=3];
20[label="Neg vx30\n",fontsize=16,color="green",shape="box"];21[label="Pos vx30\n",fontsize=16,color="green",shape="box"];22[label="Float (`negate` vx30) vx31\n",fontsize=16,color="green",shape="box"];22 -> 26[label="",style="dashed", color="green", weight=3];
23[label="negate vx30\n",fontsize=16,color="blue",shape="box"];46[label="negate :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];23 -> 46[label="",style="solid", color="blue", weight=9];
46 -> 27[label="",style="solid", color="blue", weight=3];
47[label="negate :: Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];23 -> 47[label="",style="solid", color="blue", weight=9];
47 -> 28[label="",style="solid", color="blue", weight=3];
24 -> 9[label="",style="dashed", color="red", weight=0];
24[label="primNegInt vx30\n",fontsize=16,color="magenta"];24 -> 29[label="",style="dashed", color="magenta", weight=3];
25[label="Double (`negate` vx30) vx31\n",fontsize=16,color="green",shape="box"];25 -> 30[label="",style="dashed", color="green", weight=3];
26 -> 4[label="",style="dashed", color="red", weight=0];
26[label="`negate` vx30\n",fontsize=16,color="magenta"];26 -> 31[label="",style="dashed", color="magenta", weight=3];
27 -> 4[label="",style="dashed", color="red", weight=0];
27[label="negate vx30\n",fontsize=16,color="magenta"];27 -> 32[label="",style="dashed", color="magenta", weight=3];
28 -> 7[label="",style="dashed", color="red", weight=0];
28[label="negate vx30\n",fontsize=16,color="magenta"];28 -> 33[label="",style="dashed", color="magenta", weight=3];
29[label="vx30\n",fontsize=16,color="green",shape="box"];30 -> 4[label="",style="dashed", color="red", weight=0];
30[label="`negate` vx30\n",fontsize=16,color="magenta"];30 -> 34[label="",style="dashed", color="magenta", weight=3];
31[label="vx30\n",fontsize=16,color="green",shape="box"];32[label="vx30\n",fontsize=16,color="green",shape="box"];33[label="vx30\n",fontsize=16,color="green",shape="box"];34[label="vx30\n",fontsize=16,color="green",shape="box"];}
</textarea><BR><BR></body>


