Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/Ex6_Luc98_FR)

The rewrite relation of the following TRS is considered.

first(0,X) nil (1)
first(s(X),cons(Y,Z)) cons(Y,n__first(X,activate(Z))) (2)
from(X) cons(X,n__from(n__s(X))) (3)
first(X1,X2) n__first(X1,X2) (4)
from(X) n__from(X) (5)
s(X) n__s(X) (6)
activate(n__first(X1,X2)) first(activate(X1),activate(X2)) (7)
activate(n__from(X)) from(activate(X)) (8)
activate(n__s(X)) s(activate(X)) (9)
activate(X) X (10)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by ttt2 @ termCOMP 2023)

1 Rule Removal

Using the Weighted Path Order with the following precedence and status
prec(n__from) = 0 status(n__from) = [1] list-extension(n__from) = Lex
prec(n__s) = 0 status(n__s) = [1] list-extension(n__s) = Lex
prec(from) = 1 status(from) = [1] list-extension(from) = Lex
prec(n__first) = 0 status(n__first) = [2, 1] list-extension(n__first) = Lex
prec(activate) = 2 status(activate) = [1] list-extension(activate) = Lex
prec(cons) = 0 status(cons) = [1, 2] list-extension(cons) = Lex
prec(s) = 1 status(s) = [1] list-extension(s) = Lex
prec(nil) = 0 status(nil) = [] list-extension(nil) = Lex
prec(first) = 1 status(first) = [1, 2] list-extension(first) = Lex
prec(0) = 0 status(0) = [] list-extension(0) = Lex
and the following Max-polynomial interpretation
[n__from(x1)] = max(0, 0 + 1 · x1)
[n__s(x1)] = max(0, 0 + 1 · x1)
[from(x1)] = max(0, 0 + 1 · x1)
[n__first(x1, x2)] = max(0, 0 + 1 · x1, 4 + 1 · x2)
[activate(x1)] = max(0, 0 + 1 · x1)
[cons(x1, x2)] = max(0, 0 + 1 · x1, 0 + 1 · x2)
[s(x1)] = max(0, 0 + 1 · x1)
[nil] = max(0)
[first(x1, x2)] = max(0, 0 + 1 · x1, 4 + 1 · x2)
[0] = max(0)
all of the following rules can be deleted.
first(0,X) nil (1)
first(s(X),cons(Y,Z)) cons(Y,n__first(X,activate(Z))) (2)
from(X) cons(X,n__from(n__s(X))) (3)
first(X1,X2) n__first(X1,X2) (4)
from(X) n__from(X) (5)
s(X) n__s(X) (6)
activate(n__first(X1,X2)) first(activate(X1),activate(X2)) (7)
activate(n__from(X)) from(activate(X)) (8)
activate(n__s(X)) s(activate(X)) (9)
activate(X) X (10)

1.1 R is empty

There are no rules in the TRS. Hence, it is terminating.