Term Rewriting System R:
[x]
f(a, f(a, x)) -> f(c, f(b, x))
f(b, f(b, x)) -> f(a, f(c, x))
f(c, f(c, x)) -> f(b, f(a, x))

Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

F(a, f(a, x)) -> F(c, f(b, x))
F(a, f(a, x)) -> F(b, x)
F(b, f(b, x)) -> F(a, f(c, x))
F(b, f(b, x)) -> F(c, x)
F(c, f(c, x)) -> F(b, f(a, x))
F(c, f(c, x)) -> F(a, x)

Furthermore, R contains one SCC.


   R
DPs
       →DP Problem 1
Modular Removal of Rules


Dependency Pairs:

F(c, f(c, x)) -> F(a, x)
F(b, f(b, x)) -> F(c, x)
F(a, f(a, x)) -> F(b, x)
F(b, f(b, x)) -> F(a, f(c, x))
F(c, f(c, x)) -> F(b, f(a, x))
F(a, f(a, x)) -> F(c, f(b, x))


Rules:


f(a, f(a, x)) -> f(c, f(b, x))
f(b, f(b, x)) -> f(a, f(c, x))
f(c, f(c, x)) -> f(b, f(a, x))





The original DP problem is in applicative form. Its DPs and usable rules are the following.

F(c, f(c, x)) -> F(a, x)
F(b, f(b, x)) -> F(c, x)
F(a, f(a, x)) -> F(b, x)
F(b, f(b, x)) -> F(a, f(c, x))
F(c, f(c, x)) -> F(b, f(a, x))
F(a, f(a, x)) -> F(c, f(b, x))


f(c, f(c, x)) -> f(b, f(a, x))
f(a, f(a, x)) -> f(c, f(b, x))
f(b, f(b, x)) -> f(a, f(c, x))


It is proper and hence, it can be A-transformed which results in the DP problem

C(c(x)) -> A(x)
B(b(x)) -> C(x)
A(a(x)) -> B(x)
B(b(x)) -> A(c(x))
C(c(x)) -> B(a(x))
A(a(x)) -> C(b(x))


c(c(x)) -> b(a(x))
b(b(x)) -> a(c(x))
a(a(x)) -> c(b(x))


To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
Polynomial interpretation:
  POL(c(x1))=  x1  
  POL(C(x1))=  x1  
  POL(B(x1))=  x1  
  POL(b(x1))=  x1  
  POL(a(x1))=  x1  
  POL(A(x1))=  x1  

We have the following set D of usable symbols: {c, C, B, b, a, A}
No Dependency Pairs can be deleted.
No Rules can be deleted.

The result of this processor delivers one new DP problem.
Note that we keep the A-transformed DP problem as result of this processor.



   R
DPs
       →DP Problem 1
MRR
           →DP Problem 2
Modular Removal of Rules


Dependency Pairs:

C(c(x)) -> A(x)
B(b(x)) -> C(x)
A(a(x)) -> B(x)
B(b(x)) -> A(c(x))
C(c(x)) -> B(a(x))
A(a(x)) -> C(b(x))


Rules:


c(c(x)) -> b(a(x))
b(b(x)) -> a(c(x))
a(a(x)) -> c(b(x))





We have the following set of usable rules:

c(c(x)) -> b(a(x))
a(a(x)) -> c(b(x))
b(b(x)) -> a(c(x))
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
Polynomial interpretation:
  POL(c(x1))=  1 + x1  
  POL(C(x1))=  x1  
  POL(B(x1))=  x1  
  POL(b(x1))=  1 + x1  
  POL(a(x1))=  1 + x1  
  POL(A(x1))=  x1  

We have the following set D of usable symbols: {c, C, B, b, a, A}
The following Dependency Pairs can be deleted as the lhs is strictly greater than the corresponding rhs:

C(c(x)) -> A(x)
B(b(x)) -> C(x)
A(a(x)) -> B(x)

No Rules can be deleted.

The result of this processor delivers one new DP problem.



   R
DPs
       →DP Problem 1
MRR
           →DP Problem 2
MRR
             ...
               →DP Problem 3
RFC Match Bounds


Dependency Pairs:

B(b(x)) -> A(c(x))
C(c(x)) -> B(a(x))
A(a(x)) -> C(b(x))


Rules:


c(c(x)) -> b(a(x))
b(b(x)) -> a(c(x))
a(a(x)) -> c(b(x))





Using RFC Match Bounds, the DP problem could be solved. The Match Bound was 1.
The certificate found is represented by the following graph.

The certificate consists of the following enumerated nodes:

32, 33, 34, 35, 36, 37, 38, 39

Node 32 is start node and node 33 is final node.

Those nodes are connect through the following edges:



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