Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/ExSec4_2_DLMMU04_FR)

The rewrite relation of the following TRS is considered.

natsFrom(N) cons(N,n__natsFrom(n__s(N))) (1)
fst(pair(XS,YS)) XS (2)
snd(pair(XS,YS)) YS (3)
splitAt(0,XS) pair(nil,XS) (4)
splitAt(s(N),cons(X,XS)) u(splitAt(N,activate(XS)),N,X,activate(XS)) (5)
u(pair(YS,ZS),N,X,XS) pair(cons(activate(X),YS),ZS) (6)
head(cons(N,XS)) N (7)
tail(cons(N,XS)) activate(XS) (8)
sel(N,XS) head(afterNth(N,XS)) (9)
take(N,XS) fst(splitAt(N,XS)) (10)
afterNth(N,XS) snd(splitAt(N,XS)) (11)
natsFrom(X) n__natsFrom(X) (12)
s(X) n__s(X) (13)
activate(n__natsFrom(X)) natsFrom(activate(X)) (14)
activate(n__s(X)) s(activate(X)) (15)
activate(X) X (16)

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.
sel#(N,XS) head#(afterNth(N,XS)) (17)
activate#(n__natsFrom(X)) natsFrom#(activate(X)) (18)
splitAt#(s(N),cons(X,XS)) activate#(XS) (19)
take#(N,XS) splitAt#(N,XS) (20)
splitAt#(s(N),cons(X,XS)) splitAt#(N,activate(XS)) (21)
splitAt#(s(N),cons(X,XS)) activate#(XS) (19)
tail#(cons(N,XS)) activate#(XS) (22)
activate#(n__natsFrom(X)) activate#(X) (23)
splitAt#(s(N),cons(X,XS)) u#(splitAt(N,activate(XS)),N,X,activate(XS)) (24)
afterNth#(N,XS) splitAt#(N,XS) (25)
activate#(n__s(X)) activate#(X) (26)
sel#(N,XS) afterNth#(N,XS) (27)
u#(pair(YS,ZS),N,X,XS) activate#(X) (28)
take#(N,XS) fst#(splitAt(N,XS)) (29)
activate#(n__s(X)) s#(activate(X)) (30)
afterNth#(N,XS) snd#(splitAt(N,XS)) (31)

1.1 Dependency Graph Processor

The dependency pairs are split into 2 components.