Term Rewriting System R:
[x, y, z]
rev(nil) -> nil
rev(rev(x)) -> x
rev(++(x, y)) -> ++(rev(y), rev(x))
++(nil, y) -> y
++(x, nil) -> x
++(.(x, y), z) -> .(x, ++(y, z))
++(x, ++(y, z)) -> ++(++(x, y), z)
make(x) -> .(x, nil)

Innermost Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

REV(++(x, y)) -> ++'(rev(y), rev(x))
REV(++(x, y)) -> REV(y)
REV(++(x, y)) -> REV(x)
++'(.(x, y), z) -> ++'(y, z)
++'(x, ++(y, z)) -> ++'(++(x, y), z)
++'(x, ++(y, z)) -> ++'(x, y)

Furthermore, R contains two SCCs.


   R
DPs
       →DP Problem 1
Narrowing Transformation
       →DP Problem 2
Remaining


Dependency Pairs:

++'(x, ++(y, z)) -> ++'(x, y)
++'(x, ++(y, z)) -> ++'(++(x, y), z)
++'(.(x, y), z) -> ++'(y, z)


Rules:


rev(nil) -> nil
rev(rev(x)) -> x
rev(++(x, y)) -> ++(rev(y), rev(x))
++(nil, y) -> y
++(x, nil) -> x
++(.(x, y), z) -> .(x, ++(y, z))
++(x, ++(y, z)) -> ++(++(x, y), z)
make(x) -> .(x, nil)


Strategy:

innermost




On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

++'(x, ++(y, z)) -> ++'(++(x, y), z)
three new Dependency Pairs are created:

++'(nil, ++(y'', z)) -> ++'(y'', z)
++'(.(x'', y''), ++(y0, z)) -> ++'(.(x'', ++(y'', y0)), z)
++'(x'', ++(++(y'', z''), z)) -> ++'(++(++(x'', y''), z''), z)

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Nar
       →DP Problem 2
Remaining Obligation(s)




The following remains to be proven:


   R
DPs
       →DP Problem 1
Nar
       →DP Problem 2
Remaining Obligation(s)




The following remains to be proven:

Innermost Termination of R could not be shown.
Duration:
0:00 minutes