Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/LISTUTILITIES_nosorts_C)

The rewrite relation of the following TRS is considered.

active(U11(tt,N,X,XS)) mark(U12(splitAt(N,XS),X)) (1)
active(U12(pair(YS,ZS),X)) mark(pair(cons(X,YS),ZS)) (2)
active(afterNth(N,XS)) mark(snd(splitAt(N,XS))) (3)
active(and(tt,X)) mark(X) (4)
active(fst(pair(X,Y))) mark(X) (5)
active(head(cons(N,XS))) mark(N) (6)
active(natsFrom(N)) mark(cons(N,natsFrom(s(N)))) (7)
active(sel(N,XS)) mark(head(afterNth(N,XS))) (8)
active(snd(pair(X,Y))) mark(Y) (9)
active(splitAt(0,XS)) mark(pair(nil,XS)) (10)
active(splitAt(s(N),cons(X,XS))) mark(U11(tt,N,X,XS)) (11)
active(tail(cons(N,XS))) mark(XS) (12)
active(take(N,XS)) mark(fst(splitAt(N,XS))) (13)
active(U11(X1,X2,X3,X4)) U11(active(X1),X2,X3,X4) (14)
active(U12(X1,X2)) U12(active(X1),X2) (15)
active(splitAt(X1,X2)) splitAt(active(X1),X2) (16)
active(splitAt(X1,X2)) splitAt(X1,active(X2)) (17)
active(pair(X1,X2)) pair(active(X1),X2) (18)
active(pair(X1,X2)) pair(X1,active(X2)) (19)
active(cons(X1,X2)) cons(active(X1),X2) (20)
active(afterNth(X1,X2)) afterNth(active(X1),X2) (21)
active(afterNth(X1,X2)) afterNth(X1,active(X2)) (22)
active(snd(X)) snd(active(X)) (23)
active(and(X1,X2)) and(active(X1),X2) (24)
active(fst(X)) fst(active(X)) (25)
active(head(X)) head(active(X)) (26)
active(natsFrom(X)) natsFrom(active(X)) (27)
active(s(X)) s(active(X)) (28)
active(sel(X1,X2)) sel(active(X1),X2) (29)
active(sel(X1,X2)) sel(X1,active(X2)) (30)
active(tail(X)) tail(active(X)) (31)
active(take(X1,X2)) take(active(X1),X2) (32)
active(take(X1,X2)) take(X1,active(X2)) (33)
U11(mark(X1),X2,X3,X4) mark(U11(X1,X2,X3,X4)) (34)
U12(mark(X1),X2) mark(U12(X1,X2)) (35)
splitAt(mark(X1),X2) mark(splitAt(X1,X2)) (36)
splitAt(X1,mark(X2)) mark(splitAt(X1,X2)) (37)
pair(mark(X1),X2) mark(pair(X1,X2)) (38)
pair(X1,mark(X2)) mark(pair(X1,X2)) (39)
cons(mark(X1),X2) mark(cons(X1,X2)) (40)
afterNth(mark(X1),X2) mark(afterNth(X1,X2)) (41)
afterNth(X1,mark(X2)) mark(afterNth(X1,X2)) (42)
snd(mark(X)) mark(snd(X)) (43)
and(mark(X1),X2) mark(and(X1,X2)) (44)
fst(mark(X)) mark(fst(X)) (45)
head(mark(X)) mark(head(X)) (46)
natsFrom(mark(X)) mark(natsFrom(X)) (47)
s(mark(X)) mark(s(X)) (48)
sel(mark(X1),X2) mark(sel(X1,X2)) (49)
sel(X1,mark(X2)) mark(sel(X1,X2)) (50)
tail(mark(X)) mark(tail(X)) (51)
take(mark(X1),X2) mark(take(X1,X2)) (52)
take(X1,mark(X2)) mark(take(X1,X2)) (53)
proper(U11(X1,X2,X3,X4)) U11(proper(X1),proper(X2),proper(X3),proper(X4)) (54)
proper(tt) ok(tt) (55)
proper(U12(X1,X2)) U12(proper(X1),proper(X2)) (56)
proper(splitAt(X1,X2)) splitAt(proper(X1),proper(X2)) (57)
proper(pair(X1,X2)) pair(proper(X1),proper(X2)) (58)
proper(cons(X1,X2)) cons(proper(X1),proper(X2)) (59)
proper(afterNth(X1,X2)) afterNth(proper(X1),proper(X2)) (60)
proper(snd(X)) snd(proper(X)) (61)
proper(and(X1,X2)) and(proper(X1),proper(X2)) (62)
proper(fst(X)) fst(proper(X)) (63)
proper(head(X)) head(proper(X)) (64)
proper(natsFrom(X)) natsFrom(proper(X)) (65)
proper(s(X)) s(proper(X)) (66)
proper(sel(X1,X2)) sel(proper(X1),proper(X2)) (67)
proper(0) ok(0) (68)
proper(nil) ok(nil) (69)
proper(tail(X)) tail(proper(X)) (70)
proper(take(X1,X2)) take(proper(X1),proper(X2)) (71)
U11(ok(X1),ok(X2),ok(X3),ok(X4)) ok(U11(X1,X2,X3,X4)) (72)
U12(ok(X1),ok(X2)) ok(U12(X1,X2)) (73)
splitAt(ok(X1),ok(X2)) ok(splitAt(X1,X2)) (74)
pair(ok(X1),ok(X2)) ok(pair(X1,X2)) (75)
cons(ok(X1),ok(X2)) ok(cons(X1,X2)) (76)
afterNth(ok(X1),ok(X2)) ok(afterNth(X1,X2)) (77)
snd(ok(X)) ok(snd(X)) (78)
and(ok(X1),ok(X2)) ok(and(X1,X2)) (79)
fst(ok(X)) ok(fst(X)) (80)
head(ok(X)) ok(head(X)) (81)
natsFrom(ok(X)) ok(natsFrom(X)) (82)
s(ok(X)) ok(s(X)) (83)
sel(ok(X1),ok(X2)) ok(sel(X1,X2)) (84)
tail(ok(X)) ok(tail(X)) (85)
take(ok(X1),ok(X2)) ok(take(X1,X2)) (86)
top(mark(X)) top(proper(X)) (87)
top(ok(X)) top(active(X)) (88)

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.

There are 135 ruless (increase limit for explicit display).

1.1 Dependency Graph Processor

The dependency pairs are split into 18 components.