Term Rewriting System R:
[x, y, z, u]
f(j(x, y), y) -> g(f(x, k(y)))
f(x, h1(y, z)) -> h2(0, x, h1(y, z))
g(h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u))
h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u))
i(f(x, h(y))) -> y
i(h2(s(x), y, h1(x, z))) -> z
k(h(x)) -> h1(0, x)
k(h1(x, y)) -> h1(s(x), y)

Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

F(j(x, y), y) -> G(f(x, k(y)))
F(j(x, y), y) -> F(x, k(y))
F(j(x, y), y) -> K(y)
F(x, h1(y, z)) -> H2(0, x, h1(y, z))
G(h2(x, y, h1(z, u))) -> H2(s(x), y, h1(z, u))
H2(x, j(y, h1(z, u)), h1(z, u)) -> H2(s(x), y, h1(s(z), u))

Furthermore, R contains two SCCs.


   R
DPs
       →DP Problem 1
Polynomial Ordering
       →DP Problem 2
Polo


Dependency Pair:

H2(x, j(y, h1(z, u)), h1(z, u)) -> H2(s(x), y, h1(s(z), u))


Rules:


f(j(x, y), y) -> g(f(x, k(y)))
f(x, h1(y, z)) -> h2(0, x, h1(y, z))
g(h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u))
h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u))
i(f(x, h(y))) -> y
i(h2(s(x), y, h1(x, z))) -> z
k(h(x)) -> h1(0, x)
k(h1(x, y)) -> h1(s(x), y)





The following dependency pair can be strictly oriented:

H2(x, j(y, h1(z, u)), h1(z, u)) -> H2(s(x), y, h1(s(z), u))


Additionally, the following rules can be oriented:

f(j(x, y), y) -> g(f(x, k(y)))
f(x, h1(y, z)) -> h2(0, x, h1(y, z))
g(h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u))
k(h(x)) -> h1(0, x)
k(h1(x, y)) -> h1(s(x), y)
h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u))
i(f(x, h(y))) -> y
i(h2(s(x), y, h1(x, z))) -> z


Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(0)=  0  
  POL(i(x1))=  x1  
  POL(g(x1))=  x1  
  POL(h1(x1, x2))=  x2  
  POL(s(x1))=  0  
  POL(h(x1))=  x1  
  POL(j(x1, x2))=  1 + x1  
  POL(f(x1, x2))=  x2  
  POL(h2(x1, x2, x3))=  x3  
  POL(k(x1))=  x1  
  POL(H2(x1, x2, x3))=  x2  

resulting in one new DP problem.



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


Dependency Pair:


Rules:


f(j(x, y), y) -> g(f(x, k(y)))
f(x, h1(y, z)) -> h2(0, x, h1(y, z))
g(h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u))
h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u))
i(f(x, h(y))) -> y
i(h2(s(x), y, h1(x, z))) -> z
k(h(x)) -> h1(0, x)
k(h1(x, y)) -> h1(s(x), y)





Using the Dependency Graph resulted in no new DP problems.


   R
DPs
       →DP Problem 1
Polo
       →DP Problem 2
Polynomial Ordering


Dependency Pair:

F(j(x, y), y) -> F(x, k(y))


Rules:


f(j(x, y), y) -> g(f(x, k(y)))
f(x, h1(y, z)) -> h2(0, x, h1(y, z))
g(h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u))
h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u))
i(f(x, h(y))) -> y
i(h2(s(x), y, h1(x, z))) -> z
k(h(x)) -> h1(0, x)
k(h1(x, y)) -> h1(s(x), y)





The following dependency pair can be strictly oriented:

F(j(x, y), y) -> F(x, k(y))


Additionally, the following rules can be oriented:

f(j(x, y), y) -> g(f(x, k(y)))
f(x, h1(y, z)) -> h2(0, x, h1(y, z))
g(h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u))
k(h(x)) -> h1(0, x)
k(h1(x, y)) -> h1(s(x), y)
h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u))
i(f(x, h(y))) -> y
i(h2(s(x), y, h1(x, z))) -> z


Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(0)=  0  
  POL(i(x1))=  x1  
  POL(g(x1))=  x1  
  POL(h1(x1, x2))=  x2  
  POL(s(x1))=  0  
  POL(h(x1))=  x1  
  POL(j(x1, x2))=  1 + x1  
  POL(f(x1, x2))=  x2  
  POL(h2(x1, x2, x3))=  x3  
  POL(F(x1, x2))=  x1  
  POL(k(x1))=  x1  

resulting in one new DP problem.



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


Dependency Pair:


Rules:


f(j(x, y), y) -> g(f(x, k(y)))
f(x, h1(y, z)) -> h2(0, x, h1(y, z))
g(h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u))
h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u))
i(f(x, h(y))) -> y
i(h2(s(x), y, h1(x, z))) -> z
k(h(x)) -> h1(0, x)
k(h1(x, y)) -> h1(s(x), y)





Using the Dependency Graph resulted in no new DP problems.

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