Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/ExIntrod_GM01_C)

The rewrite relation of the following TRS is considered.

active(incr(nil)) mark(nil) (1)
active(incr(cons(X,L))) mark(cons(s(X),incr(L))) (2)
active(adx(nil)) mark(nil) (3)
active(adx(cons(X,L))) mark(incr(cons(X,adx(L)))) (4)
active(nats) mark(adx(zeros)) (5)
active(zeros) mark(cons(0,zeros)) (6)
active(head(cons(X,L))) mark(X) (7)
active(tail(cons(X,L))) mark(L) (8)
active(incr(X)) incr(active(X)) (9)
active(cons(X1,X2)) cons(active(X1),X2) (10)
active(s(X)) s(active(X)) (11)
active(adx(X)) adx(active(X)) (12)
active(head(X)) head(active(X)) (13)
active(tail(X)) tail(active(X)) (14)
incr(mark(X)) mark(incr(X)) (15)
cons(mark(X1),X2) mark(cons(X1,X2)) (16)
s(mark(X)) mark(s(X)) (17)
adx(mark(X)) mark(adx(X)) (18)
head(mark(X)) mark(head(X)) (19)
tail(mark(X)) mark(tail(X)) (20)
proper(incr(X)) incr(proper(X)) (21)
proper(nil) ok(nil) (22)
proper(cons(X1,X2)) cons(proper(X1),proper(X2)) (23)
proper(s(X)) s(proper(X)) (24)
proper(adx(X)) adx(proper(X)) (25)
proper(nats) ok(nats) (26)
proper(zeros) ok(zeros) (27)
proper(0) ok(0) (28)
proper(head(X)) head(proper(X)) (29)
proper(tail(X)) tail(proper(X)) (30)
incr(ok(X)) ok(incr(X)) (31)
cons(ok(X1),ok(X2)) ok(cons(X1,X2)) (32)
s(ok(X)) ok(s(X)) (33)
adx(ok(X)) ok(adx(X)) (34)
head(ok(X)) ok(head(X)) (35)
tail(ok(X)) ok(tail(X)) (36)
top(mark(X)) top(proper(X)) (37)
top(ok(X)) top(active(X)) (38)

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#(incr(cons(X,L))) s#(X) (39)
proper#(incr(X)) proper#(X) (40)
proper#(tail(X)) proper#(X) (41)
s#(ok(X)) s#(X) (42)
active#(adx(cons(X,L))) incr#(cons(X,adx(L))) (43)
proper#(incr(X)) incr#(proper(X)) (44)
tail#(ok(X)) tail#(X) (45)
adx#(ok(X)) adx#(X) (46)
active#(adx(cons(X,L))) cons#(X,adx(L)) (47)
active#(adx(cons(X,L))) adx#(L) (48)
s#(mark(X)) s#(X) (49)
head#(ok(X)) head#(X) (50)
head#(mark(X)) head#(X) (51)
active#(head(X)) active#(X) (52)
top#(ok(X)) top#(active(X)) (53)
active#(zeros) cons#(0,zeros) (54)
active#(adx(X)) active#(X) (55)
active#(adx(X)) adx#(active(X)) (56)
incr#(mark(X)) incr#(X) (57)
active#(head(X)) head#(active(X)) (58)
proper#(adx(X)) proper#(X) (59)
active#(incr(X)) incr#(active(X)) (60)
proper#(adx(X)) adx#(proper(X)) (61)
adx#(mark(X)) adx#(X) (62)
incr#(ok(X)) incr#(X) (63)
proper#(cons(X1,X2)) cons#(proper(X1),proper(X2)) (64)
top#(mark(X)) top#(proper(X)) (65)
cons#(ok(X1),ok(X2)) cons#(X1,X2) (66)
top#(ok(X)) active#(X) (67)
active#(cons(X1,X2)) cons#(active(X1),X2) (68)
proper#(head(X)) proper#(X) (69)
cons#(mark(X1),X2) cons#(X1,X2) (70)
proper#(tail(X)) tail#(proper(X)) (71)
proper#(cons(X1,X2)) proper#(X2) (72)
active#(cons(X1,X2)) active#(X1) (73)
active#(tail(X)) active#(X) (74)
active#(s(X)) active#(X) (75)
tail#(mark(X)) tail#(X) (76)
proper#(s(X)) proper#(X) (77)
active#(tail(X)) tail#(active(X)) (78)
active#(nats) adx#(zeros) (79)
proper#(cons(X1,X2)) proper#(X1) (80)
active#(s(X)) s#(active(X)) (81)
active#(incr(cons(X,L))) incr#(L) (82)
active#(incr(cons(X,L))) cons#(s(X),incr(L)) (83)
top#(mark(X)) proper#(X) (84)
active#(incr(X)) active#(X) (85)
proper#(head(X)) head#(proper(X)) (86)
proper#(s(X)) s#(proper(X)) (87)

1.1 Dependency Graph Processor

The dependency pairs are split into 9 components.