YES
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http:/www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Left Termination proof of ../tpdb/LP/talp/talp/flat.pl</title>
</head>
<body>
<BR><B>Left Termination</B> of the query pattern
flat_in_2(g, a)
w.r.t. the given <I>Prolog program</I> could successfully be <font color=#00ff00>proven</font>:<BR><BR><BR><BR><pre>&#8627 <B>Prolog</B></pre><pre>  &#8627 PrologToPiTRSProof</pre><BR>Clauses:<BR><BR>flat(niltree, nil).<BR>flat(tree(X, niltree, T), cons(X, Xs))&#160;:-&#160;flat(T, Xs).<BR>flat(tree(X, tree(Y, T1, T2), T3), Xs)&#160;:-&#160;flat(tree(Y, T1, tree(X, T2, T3)), Xs).<BR><BR>Queries:<BR><BR>flat(g,a).<BR><BR>We use the technique of [30]. With regard to the inferred argument filtering the predicates were used in the following modes:
<BR><FONT COLOR=#0000cc>flat_in</font>: (b,f)
<BR>Transforming <I>Prolog</I> into the following <B>Term Rewriting System</B>:
<BR>Pi-finite rewrite system:<BR>The TRS R consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#0000cc>nil</font>) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#0000cc>nil</font>)
<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>) &#8594; <FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>)
<BR><FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>))</BLOCKQUOTE><BR>The argument filtering Pi contains the following mapping:<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>x1</font>)<BR>
<FONT COLOR=#0000cc>niltree</font>&#160; = &#160;<FONT COLOR=#0000cc>niltree</font><BR>
<FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>x2</font>)<BR>
<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>)&#160; = &#160;<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>)<BR>
<FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>)&#160; = &#160;<FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x4</font>)<BR>
<FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>, <FONT COLOR=#cc0000>x5</font>, <FONT COLOR=#cc0000>x6</font>, <FONT COLOR=#cc0000>x7</font>)&#160; = &#160;<FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>x7</font>)<BR>
<FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)<BR>
<BR>
<P><B>Infinitary Constructor Rewriting Termination</B> of PiTRS implies <B>Termination</B> of Prolog<P>
<BR><BR><pre>&#8627 Prolog</pre><pre>  &#8627 PrologToPiTRSProof</pre><pre>    &#8627 <B>PiTRS</B></pre><pre>      &#8627 DependencyPairsProof</pre><BR>Pi-finite rewrite system:<BR>The TRS R consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#0000cc>nil</font>) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#0000cc>nil</font>)
<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>) &#8594; <FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>)
<BR><FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>))</BLOCKQUOTE><BR>The argument filtering Pi contains the following mapping:<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>x1</font>)<BR>
<FONT COLOR=#0000cc>niltree</font>&#160; = &#160;<FONT COLOR=#0000cc>niltree</font><BR>
<FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>x2</font>)<BR>
<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>)&#160; = &#160;<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>)<BR>
<FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>)&#160; = &#160;<FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x4</font>)<BR>
<FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>, <FONT COLOR=#cc0000>x5</font>, <FONT COLOR=#cc0000>x6</font>, <FONT COLOR=#cc0000>x7</font>)&#160; = &#160;<FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>x7</font>)<BR>
<FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)<BR>
<BR><BR>Using Dependency Pairs [1,30] we result in the following initial DP problem:<BR>Pi DP problem:<BR>The TRS P consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>U1_GA</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>)
<BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>) &#8594; <FONT COLOR=#0000cc>U2_GA</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>) &#8594; <FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>)</BLOCKQUOTE><BR>The TRS R consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#0000cc>nil</font>) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#0000cc>nil</font>)
<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>) &#8594; <FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>)
<BR><FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>))</BLOCKQUOTE><BR>The argument filtering Pi contains the following mapping:<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>x1</font>)<BR>
<FONT COLOR=#0000cc>niltree</font>&#160; = &#160;<FONT COLOR=#0000cc>niltree</font><BR>
<FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>x2</font>)<BR>
<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>)&#160; = &#160;<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>)<BR>
<FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>)&#160; = &#160;<FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x4</font>)<BR>
<FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>, <FONT COLOR=#cc0000>x5</font>, <FONT COLOR=#cc0000>x6</font>, <FONT COLOR=#cc0000>x7</font>)&#160; = &#160;<FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>x7</font>)<BR>
<FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)<BR>
<FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>x1</font>)<BR>
<FONT COLOR=#0000cc>U1_GA</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>)&#160; = &#160;<FONT COLOR=#0000cc>U1_GA</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x4</font>)<BR>
<FONT COLOR=#0000cc>U2_GA</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>, <FONT COLOR=#cc0000>x5</font>, <FONT COLOR=#cc0000>x6</font>, <FONT COLOR=#cc0000>x7</font>)&#160; = &#160;<FONT COLOR=#0000cc>U2_GA</font>(<FONT COLOR=#cc0000>x7</font>)<BR>
<BR>We have to consider all (P,R,Pi)-chains<BR><BR><pre>&#8627 Prolog</pre><pre>  &#8627 PrologToPiTRSProof</pre><pre>    &#8627 PiTRS</pre><pre>      &#8627 DependencyPairsProof</pre><pre>        &#8627 <B>PiDP</B></pre><pre>          &#8627 DependencyGraphProof</pre><BR>Pi DP problem:<BR>The TRS P consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>U1_GA</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>)
<BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>) &#8594; <FONT COLOR=#0000cc>U2_GA</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>) &#8594; <FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>)</BLOCKQUOTE><BR>The TRS R consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#0000cc>nil</font>) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#0000cc>nil</font>)
<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>) &#8594; <FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>)
<BR><FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>))</BLOCKQUOTE><BR>The argument filtering Pi contains the following mapping:<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>x1</font>)<BR>
<FONT COLOR=#0000cc>niltree</font>&#160; = &#160;<FONT COLOR=#0000cc>niltree</font><BR>
<FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>x2</font>)<BR>
<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>)&#160; = &#160;<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>)<BR>
<FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>)&#160; = &#160;<FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x4</font>)<BR>
<FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>, <FONT COLOR=#cc0000>x5</font>, <FONT COLOR=#cc0000>x6</font>, <FONT COLOR=#cc0000>x7</font>)&#160; = &#160;<FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>x7</font>)<BR>
<FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)<BR>
<FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>x1</font>)<BR>
<FONT COLOR=#0000cc>U1_GA</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>)&#160; = &#160;<FONT COLOR=#0000cc>U1_GA</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x4</font>)<BR>
<FONT COLOR=#0000cc>U2_GA</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>, <FONT COLOR=#cc0000>x5</font>, <FONT COLOR=#cc0000>x6</font>, <FONT COLOR=#cc0000>x7</font>)&#160; = &#160;<FONT COLOR=#0000cc>U2_GA</font>(<FONT COLOR=#cc0000>x7</font>)<BR>
<BR>We have to consider all (P,R,Pi)-chains<BR>The approximation of the Dependency Graph [30] contains 1 SCC with 2 less nodes.<BR><BR><pre>&#8627 Prolog</pre><pre>  &#8627 PrologToPiTRSProof</pre><pre>    &#8627 PiTRS</pre><pre>      &#8627 DependencyPairsProof</pre><pre>        &#8627 PiDP</pre><pre>          &#8627 DependencyGraphProof</pre><pre>            &#8627 <B>PiDP</B></pre><pre>              &#8627 UsableRulesProof</pre><BR>Pi DP problem:<BR>The TRS P consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>) &#8594; <FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>)
<BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>)</BLOCKQUOTE><BR>The TRS R consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#0000cc>nil</font>) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#0000cc>nil</font>)
<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>) &#8594; <FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>))
<BR><FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>)
<BR><FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>, <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>))</BLOCKQUOTE><BR>The argument filtering Pi contains the following mapping:<BR><FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>flat_in_ga</font>(<FONT COLOR=#cc0000>x1</font>)<BR>
<FONT COLOR=#0000cc>niltree</font>&#160; = &#160;<FONT COLOR=#0000cc>niltree</font><BR>
<FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>flat_out_ga</font>(<FONT COLOR=#cc0000>x2</font>)<BR>
<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>)&#160; = &#160;<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>)<BR>
<FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>)&#160; = &#160;<FONT COLOR=#0000cc>U1_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x4</font>)<BR>
<FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>, <FONT COLOR=#cc0000>x4</font>, <FONT COLOR=#cc0000>x5</font>, <FONT COLOR=#cc0000>x6</font>, <FONT COLOR=#cc0000>x7</font>)&#160; = &#160;<FONT COLOR=#0000cc>U2_ga</font>(<FONT COLOR=#cc0000>x7</font>)<BR>
<FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)<BR>
<FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>x1</font>)<BR>
<BR>We have to consider all (P,R,Pi)-chains<BR>For (infinitary) constructor rewriting [30] we can delete all non-usable rules from R.<BR><BR><pre>&#8627 Prolog</pre><pre>  &#8627 PrologToPiTRSProof</pre><pre>    &#8627 PiTRS</pre><pre>      &#8627 DependencyPairsProof</pre><pre>        &#8627 PiDP</pre><pre>          &#8627 DependencyGraphProof</pre><pre>            &#8627 PiDP</pre><pre>              &#8627 UsableRulesProof</pre><pre>                &#8627 <B>PiDP</B></pre><pre>                  &#8627 PiDPToQDPProof</pre><BR>Pi DP problem:<BR>The TRS P consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>), <FONT COLOR=#cc0000>Xs</font>) &#8594; <FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)), <FONT COLOR=#cc0000>Xs</font>)
<BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>), <FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>Xs</font>)) &#8594; <FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>T</font>, <FONT COLOR=#cc0000>Xs</font>)</BLOCKQUOTE><BR>R is empty.<BR>The argument filtering Pi contains the following mapping:<BR><FONT COLOR=#0000cc>niltree</font>&#160; = &#160;<FONT COLOR=#0000cc>niltree</font><BR>
<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>)&#160; = &#160;<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>, <FONT COLOR=#cc0000>x3</font>)<BR>
<FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>cons</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)<BR>
<FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>x1</font>, <FONT COLOR=#cc0000>x2</font>)&#160; = &#160;<FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>x1</font>)<BR>
<BR>We have to consider all (P,R,Pi)-chains<BR>Transforming (infinitary) constructor rewriting Pi-DP problem [30] into ordinary QDP problem [15] by application of Pi.<BR><BR><pre>&#8627 Prolog</pre><pre>  &#8627 PrologToPiTRSProof</pre><pre>    &#8627 PiTRS</pre><pre>      &#8627 DependencyPairsProof</pre><pre>        &#8627 PiDP</pre><pre>          &#8627 DependencyGraphProof</pre><pre>            &#8627 PiDP</pre><pre>              &#8627 UsableRulesProof</pre><pre>                &#8627 PiDP</pre><pre>                  &#8627 PiDPToQDPProof</pre><pre>                    &#8627 <B>QDP</B></pre><pre>                      &#8627 UsableRulesReductionPairsProof</pre><BR>Q DP problem:<BR>The TRS P consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>)) &#8594; <FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>T</font>)
<BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>)) &#8594; <FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)))</BLOCKQUOTE><BR>R is empty.<BR>Q is empty.<BR>We have to consider all (P,Q,R)-chains.<BR>By using the usable rules with reduction pair processor [15] with a polynomial ordering [25], all dependency pairs and the corresponding usable rules [17] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.<BR><BR>The following dependency pairs can be deleted:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>niltree</font>, <FONT COLOR=#cc0000>T</font>)) &#8594; <FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#cc0000>T</font>)
<BR><FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#cc0000>T2</font>), <FONT COLOR=#cc0000>T3</font>)) &#8594; <FONT COLOR=#0000cc>FLAT_IN_GA</font>(<FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>Y</font>, <FONT COLOR=#cc0000>T1</font>, <FONT COLOR=#0000cc>tree</font>(<FONT COLOR=#cc0000>X</font>, <FONT COLOR=#cc0000>T2</font>, <FONT COLOR=#cc0000>T3</font>)))</BLOCKQUOTE>No rules are removed from R.<BR><BR>Used ordering: POLO with Polynomial interpretation [25]:
<BLOCKQUOTE><BR>POL(<B><FONT COLOR=#0000cc>FLAT_IN_GA</font>(x<SUB>1</SUB>)</B>) = 2&middot;x<SUB>1</SUB><sup>&nbsp;</sup> <sub>&nbsp;</sub>
<BR>POL(<B><FONT COLOR=#0000cc>niltree</font></B>) = 0<sup>&nbsp;</sup> <sub>&nbsp;</sub>
<BR>POL(<B><FONT COLOR=#0000cc>tree</font>(x<SUB>1</SUB>, x<SUB>2</SUB>, x<SUB>3</SUB>)</B>) = 2 + 2&middot;x<SUB>1</SUB> + 2&middot;x<SUB>2</SUB> + x<SUB>3</SUB><sup>&nbsp;</sup> <sub>&nbsp;</sub></BLOCKQUOTE><BR><BR><BR><pre>&#8627 Prolog</pre><pre>  &#8627 PrologToPiTRSProof</pre><pre>    &#8627 PiTRS</pre><pre>      &#8627 DependencyPairsProof</pre><pre>        &#8627 PiDP</pre><pre>          &#8627 DependencyGraphProof</pre><pre>            &#8627 PiDP</pre><pre>              &#8627 UsableRulesProof</pre><pre>                &#8627 PiDP</pre><pre>                  &#8627 PiDPToQDPProof</pre><pre>                    &#8627 QDP</pre><pre>                      &#8627 UsableRulesReductionPairsProof</pre><pre>                        &#8627 <B>QDP</B></pre><pre>                          &#8627 PisEmptyProof</pre><BR>Q DP problem:<BR>P is empty.<BR>R is empty.<BR>Q is empty.<BR>We have to consider all (P,Q,R)-chains.<BR>The TRS P is empty. Hence, there is no (P,Q,R) chain.<BR><BR></body>


