Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/Ex1_Luc02b_C)

The rewrite relation of the following TRS is considered.

active(from(X)) mark(cons(X,from(s(X)))) (1)
active(first(0,Z)) mark(nil) (2)
active(first(s(X),cons(Y,Z))) mark(cons(Y,first(X,Z))) (3)
active(sel(0,cons(X,Z))) mark(X) (4)
active(sel(s(X),cons(Y,Z))) mark(sel(X,Z)) (5)
active(from(X)) from(active(X)) (6)
active(cons(X1,X2)) cons(active(X1),X2) (7)
active(s(X)) s(active(X)) (8)
active(first(X1,X2)) first(active(X1),X2) (9)
active(first(X1,X2)) first(X1,active(X2)) (10)
active(sel(X1,X2)) sel(active(X1),X2) (11)
active(sel(X1,X2)) sel(X1,active(X2)) (12)
from(mark(X)) mark(from(X)) (13)
cons(mark(X1),X2) mark(cons(X1,X2)) (14)
s(mark(X)) mark(s(X)) (15)
first(mark(X1),X2) mark(first(X1,X2)) (16)
first(X1,mark(X2)) mark(first(X1,X2)) (17)
sel(mark(X1),X2) mark(sel(X1,X2)) (18)
sel(X1,mark(X2)) mark(sel(X1,X2)) (19)
proper(from(X)) from(proper(X)) (20)
proper(cons(X1,X2)) cons(proper(X1),proper(X2)) (21)
proper(s(X)) s(proper(X)) (22)
proper(first(X1,X2)) first(proper(X1),proper(X2)) (23)
proper(0) ok(0) (24)
proper(nil) ok(nil) (25)
proper(sel(X1,X2)) sel(proper(X1),proper(X2)) (26)
from(ok(X)) ok(from(X)) (27)
cons(ok(X1),ok(X2)) ok(cons(X1,X2)) (28)
s(ok(X)) ok(s(X)) (29)
first(ok(X1),ok(X2)) ok(first(X1,X2)) (30)
sel(ok(X1),ok(X2)) ok(sel(X1,X2)) (31)
top(mark(X)) top(proper(X)) (32)
top(ok(X)) top(active(X)) (33)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by NaTT @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
active#(from(X)) from#(active(X)) (34)
active#(from(X)) cons#(X,from(s(X))) (35)
from#(ok(X)) from#(X) (36)
proper#(sel(X1,X2)) proper#(X1) (37)
active#(s(X)) s#(active(X)) (38)
active#(first(s(X),cons(Y,Z))) first#(X,Z) (39)
active#(first(s(X),cons(Y,Z))) cons#(Y,first(X,Z)) (40)
proper#(cons(X1,X2)) cons#(proper(X1),proper(X2)) (41)
active#(s(X)) active#(X) (42)
s#(mark(X)) s#(X) (43)
proper#(cons(X1,X2)) proper#(X1) (44)
active#(first(X1,X2)) active#(X1) (45)
first#(mark(X1),X2) first#(X1,X2) (46)
active#(sel(X1,X2)) active#(X2) (47)
proper#(first(X1,X2)) first#(proper(X1),proper(X2)) (48)
proper#(first(X1,X2)) proper#(X2) (49)
top#(ok(X)) active#(X) (50)
top#(ok(X)) top#(active(X)) (51)
active#(from(X)) s#(X) (52)
active#(sel(X1,X2)) sel#(X1,active(X2)) (53)
top#(mark(X)) top#(proper(X)) (54)
sel#(ok(X1),ok(X2)) sel#(X1,X2) (55)
first#(X1,mark(X2)) first#(X1,X2) (56)
sel#(mark(X1),X2) sel#(X1,X2) (57)
active#(sel(s(X),cons(Y,Z))) sel#(X,Z) (58)
active#(cons(X1,X2)) active#(X1) (59)
active#(sel(X1,X2)) sel#(active(X1),X2) (60)
proper#(cons(X1,X2)) proper#(X2) (61)
proper#(first(X1,X2)) proper#(X1) (62)
sel#(X1,mark(X2)) sel#(X1,X2) (63)
active#(first(X1,X2)) first#(active(X1),X2) (64)
active#(from(X)) from#(s(X)) (65)
proper#(s(X)) proper#(X) (66)
active#(first(X1,X2)) active#(X2) (67)
proper#(sel(X1,X2)) sel#(proper(X1),proper(X2)) (68)
proper#(s(X)) s#(proper(X)) (69)
proper#(from(X)) from#(proper(X)) (70)
top#(mark(X)) proper#(X) (71)
active#(cons(X1,X2)) cons#(active(X1),X2) (72)
cons#(ok(X1),ok(X2)) cons#(X1,X2) (73)
proper#(sel(X1,X2)) proper#(X2) (74)
active#(first(X1,X2)) first#(X1,active(X2)) (75)
first#(ok(X1),ok(X2)) first#(X1,X2) (76)
active#(from(X)) active#(X) (77)
s#(ok(X)) s#(X) (78)
active#(sel(X1,X2)) active#(X1) (79)
cons#(mark(X1),X2) cons#(X1,X2) (80)
from#(mark(X)) from#(X) (81)
proper#(from(X)) proper#(X) (82)

1.1 Dependency Graph Processor

The dependency pairs are split into 8 components.