Term Rewriting System R:
[x, y, z]
:(x, x) -> e
:(x, e) -> x
:(:(x, y), z) -> :(x, :(z, i(y)))
:(e, x) -> i(x)
:(x, :(y, i(x))) -> i(y)
:(x, :(y, :(i(x), z))) -> :(i(z), y)
:(i(x), :(y, x)) -> i(y)
:(i(x), :(y, :(x, z))) -> :(i(z), y)
i(:(x, y)) -> :(y, x)
i(i(x)) -> x
i(e) -> e

Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

:'(:(x, y), z) -> :'(x, :(z, i(y)))
:'(:(x, y), z) -> :'(z, i(y))
:'(:(x, y), z) -> I(y)
:'(e, x) -> I(x)
:'(x, :(y, i(x))) -> I(y)
:'(x, :(y, :(i(x), z))) -> :'(i(z), y)
:'(x, :(y, :(i(x), z))) -> I(z)
:'(i(x), :(y, x)) -> I(y)
:'(i(x), :(y, :(x, z))) -> :'(i(z), y)
:'(i(x), :(y, :(x, z))) -> I(z)
I(:(x, y)) -> :'(y, x)

Furthermore, R contains one SCC.


   R
DPs
       →DP Problem 1
Polynomial Ordering


Dependency Pairs:

:'(i(x), :(y, :(x, z))) -> I(z)
:'(i(x), :(y, :(x, z))) -> :'(i(z), y)
:'(i(x), :(y, x)) -> I(y)
:'(x, :(y, :(i(x), z))) -> I(z)
:'(x, :(y, :(i(x), z))) -> :'(i(z), y)
:'(x, :(y, i(x))) -> I(y)
:'(e, x) -> I(x)
I(:(x, y)) -> :'(y, x)
:'(:(x, y), z) -> I(y)
:'(:(x, y), z) -> :'(z, i(y))
:'(:(x, y), z) -> :'(x, :(z, i(y)))


Rules:


:(x, x) -> e
:(x, e) -> x
:(:(x, y), z) -> :(x, :(z, i(y)))
:(e, x) -> i(x)
:(x, :(y, i(x))) -> i(y)
:(x, :(y, :(i(x), z))) -> :(i(z), y)
:(i(x), :(y, x)) -> i(y)
:(i(x), :(y, :(x, z))) -> :(i(z), y)
i(:(x, y)) -> :(y, x)
i(i(x)) -> x
i(e) -> e





The following dependency pairs can be strictly oriented:

:'(i(x), :(y, :(x, z))) -> I(z)
:'(i(x), :(y, :(x, z))) -> :'(i(z), y)
:'(i(x), :(y, x)) -> I(y)
:'(x, :(y, :(i(x), z))) -> I(z)
:'(x, :(y, :(i(x), z))) -> :'(i(z), y)
:'(x, :(y, i(x))) -> I(y)
I(:(x, y)) -> :'(y, x)
:'(:(x, y), z) -> I(y)
:'(:(x, y), z) -> :'(z, i(y))


Additionally, the following usable rules using the Ce-refinement can be oriented:

i(:(x, y)) -> :(y, x)
i(i(x)) -> x
i(e) -> e
:(x, x) -> e
:(x, e) -> x
:(:(x, y), z) -> :(x, :(z, i(y)))
:(e, x) -> i(x)
:(x, :(y, i(x))) -> i(y)
:(x, :(y, :(i(x), z))) -> :(i(z), y)
:(i(x), :(y, x)) -> i(y)
:(i(x), :(y, :(x, z))) -> :(i(z), y)


Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(:(x1, x2))=  1 + x1 + x2  
  POL(I(x1))=  x1  
  POL(i(x1))=  x1  
  POL(e)=  0  
  POL(:'(x1, x2))=  x1 + x2  

resulting in one new DP problem.



   R
DPs
       →DP Problem 1
Polo
           →DP Problem 2
Dependency Graph


Dependency Pairs:

:'(e, x) -> I(x)
:'(:(x, y), z) -> :'(x, :(z, i(y)))


Rules:


:(x, x) -> e
:(x, e) -> x
:(:(x, y), z) -> :(x, :(z, i(y)))
:(e, x) -> i(x)
:(x, :(y, i(x))) -> i(y)
:(x, :(y, :(i(x), z))) -> :(i(z), y)
:(i(x), :(y, x)) -> i(y)
:(i(x), :(y, :(x, z))) -> :(i(z), y)
i(:(x, y)) -> :(y, x)
i(i(x)) -> x
i(e) -> e





Using the Dependency Graph the DP problem was split into 1 DP problems.


   R
DPs
       →DP Problem 1
Polo
           →DP Problem 2
DGraph
             ...
               →DP Problem 3
Polynomial Ordering


Dependency Pair:

:'(:(x, y), z) -> :'(x, :(z, i(y)))


Rules:


:(x, x) -> e
:(x, e) -> x
:(:(x, y), z) -> :(x, :(z, i(y)))
:(e, x) -> i(x)
:(x, :(y, i(x))) -> i(y)
:(x, :(y, :(i(x), z))) -> :(i(z), y)
:(i(x), :(y, x)) -> i(y)
:(i(x), :(y, :(x, z))) -> :(i(z), y)
i(:(x, y)) -> :(y, x)
i(i(x)) -> x
i(e) -> e





The following dependency pair can be strictly oriented:

:'(:(x, y), z) -> :'(x, :(z, i(y)))


Additionally, the following usable rules using the Ce-refinement can be oriented:

:(x, x) -> e
:(x, e) -> x
:(:(x, y), z) -> :(x, :(z, i(y)))
:(e, x) -> i(x)
:(x, :(y, i(x))) -> i(y)
:(x, :(y, :(i(x), z))) -> :(i(z), y)
:(i(x), :(y, x)) -> i(y)
:(i(x), :(y, :(x, z))) -> :(i(z), y)
i(:(x, y)) -> :(y, x)
i(i(x)) -> x
i(e) -> e


Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(:(x1, x2))=  1 + x1 + x2  
  POL(i(x1))=  x1  
  POL(e)=  0  
  POL(:'(x1, x2))=  1 + x1  

resulting in one new DP problem.



   R
DPs
       →DP Problem 1
Polo
           →DP Problem 2
DGraph
             ...
               →DP Problem 4
Dependency Graph


Dependency Pair:


Rules:


:(x, x) -> e
:(x, e) -> x
:(:(x, y), z) -> :(x, :(z, i(y)))
:(e, x) -> i(x)
:(x, :(y, i(x))) -> i(y)
:(x, :(y, :(i(x), z))) -> :(i(z), y)
:(i(x), :(y, x)) -> i(y)
:(i(x), :(y, :(x, z))) -> :(i(z), y)
i(:(x, y)) -> :(y, x)
i(i(x)) -> x
i(e) -> e





Using the Dependency Graph resulted in no new DP problems.

Termination of R successfully shown.
Duration:
0:00 minutes