Certification Problem
Input (TPDB TRS_Standard/Transformed_CSR_04/Ex24_GM04_Z)
The rewrite relation of the following TRS is considered.
f(X,n__g(X),Y) |
→ |
f(activate(Y),activate(Y),activate(Y)) |
(1) |
g(b) |
→ |
c |
(2) |
b |
→ |
c |
(3) |
g(X) |
→ |
n__g(X) |
(4) |
activate(n__g(X)) |
→ |
g(X) |
(5) |
activate(X) |
→ |
X |
(6) |
Property / Task
Prove or disprove termination.Answer / Result
No.Proof (by AProVE @ termCOMP 2023)
1 Dependency Pair Transformation
The following set of initial dependency pairs has been identified.
f#(X,n__g(X),Y) |
→ |
f#(activate(Y),activate(Y),activate(Y)) |
(7) |
f#(X,n__g(X),Y) |
→ |
activate#(Y) |
(8) |
activate#(n__g(X)) |
→ |
g#(X) |
(9) |
It remains to prove infiniteness of the resulting DP problem.
1.1 Pair and Rule Removal
Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem.
The following pairs have been deleted.
f#(X,n__g(X),Y) |
→ |
activate#(Y) |
(8) |
activate#(n__g(X)) |
→ |
g#(X) |
(9) |
and the following rules have been deleted.
1.1.1 Non-Loop
An infinite (possibly non-looping) derivation has been detected due to the following pattern rule.
f#(c,n__g(c),n__g(b))∅n∅→+f#(c,n__g(c),n__g(b))
{x0/c}
n∅
The pattern rule is equivalent to the following pattern rule
-
f#(x0,n__g(x0),n__g(b))
{x0/c}
n∅→+f#(c,n__g(c),n__g(b))
{x0/c}
n∅
The pattern rule is obtained by instantiating the following pattern rule.
-
f#(x0,n__g(x0),n__g(b))∅n∅→+f#(c,n__g(c),n__g(b))∅n∅
The pattern rule is obtained by narrowing the following two pattern rules.
-
f#(x0,n__g(x0),n__g(b))∅n∅→+f#(c,n__g(c),activate(n__g(b)))∅n∅
The pattern rule is obtained by narrowing the following two pattern rules.
-
f#(x0,n__g(x0),n__g(b))∅n∅→+f#(c,activate(n__g(c)),activate(n__g(b)))∅n∅
The pattern rule is obtained by narrowing the following two pattern rules.
-
f#(x0,n__g(x0),n__g(b))∅n∅→+f#(c,activate(n__g(b)),activate(n__g(b)))∅n∅
The pattern rule is obtained by narrowing the following two pattern rules.
-
f#(x0,n__g(x0),n__g(b))∅n∅→+f#(g(b),activate(n__g(b)),activate(n__g(b)))∅n∅
The pattern rule is obtained by instantiating the following pattern rule.
-
f#(x0,n__g(x0),n__g(x1))∅n∅→+f#(g(x1),activate(n__g(x1)),activate(n__g(x1)))∅n∅
The pattern rule is obtained by instantiating the following pattern rule.
-
f#(x0,n__g(x0),n__g(y0))∅n∅→+f#(g(y0),activate(n__g(y0)),activate(n__g(y0)))∅n∅
The pattern rule is obtained by narrowing the following two pattern rules.
-
f#(x0,n__g(x0),n__g(y0))∅n∅→+f#(activate(n__g(y0)),activate(n__g(y0)),activate(n__g(y0)))∅n∅
The pattern rule is obtained by instantiating the following pattern rule.
-
f#(x0,n__g(x0),x1)∅n∅→+f#(activate(x1),activate(x1),activate(x1))∅n∅
The pattern rule is obtained by instantiating the following pattern rule.
-
f#(X,n__g(X),Y)∅n∅→+f#(activate(Y),activate(Y),activate(Y))∅n∅
The pattern rule is obtained from the original rule
-
activate(n__g(y0))∅n∅→+g(y0)∅n∅
The pattern rule is obtained by instantiating the following pattern rule.
-
activate(n__g(X))∅n∅→+g(X)∅n∅
The pattern rule is obtained from the original rule
-
g(b)∅n∅→+c∅n∅
The pattern rule is obtained from the original rule
-
b∅n∅→+c∅n∅
The pattern rule is obtained from the original rule
-
activate(n__g(c))∅n∅→+n__g(c)∅n∅
The pattern rule is obtained by instantiating the following pattern rule.
-
activate(y0)∅n∅→+y0∅n∅
The pattern rule is obtained by instantiating the following pattern rule.
-
activate(X)∅n∅→+X∅n∅
The pattern rule is obtained from the original rule
-
activate(n__g(b))∅n∅→+n__g(b)∅n∅
The pattern rule is obtained by instantiating the following pattern rule.
-
activate(y0)∅n∅→+y0∅n∅
The pattern rule is obtained by instantiating the following pattern rule.
-
activate(X)∅n∅→+X∅n∅
The pattern rule is obtained from the original rule