Certification Problem

Input (TPDB TRS_Innermost/Transformed_CSR_innermost_04/Ex9_BLR02_iGM)

The rewrite relation of the following TRS is considered.

active(filter(cons(X,Y),0,M)) mark(cons(0,filter(Y,M,M))) (1)
active(filter(cons(X,Y),s(N),M)) mark(cons(X,filter(Y,N,M))) (2)
active(sieve(cons(0,Y))) mark(cons(0,sieve(Y))) (3)
active(sieve(cons(s(N),Y))) mark(cons(s(N),sieve(filter(Y,N,N)))) (4)
active(nats(N)) mark(cons(N,nats(s(N)))) (5)
active(zprimes) mark(sieve(nats(s(s(0))))) (6)
mark(filter(X1,X2,X3)) active(filter(mark(X1),mark(X2),mark(X3))) (7)
mark(cons(X1,X2)) active(cons(mark(X1),X2)) (8)
mark(0) active(0) (9)
mark(s(X)) active(s(mark(X))) (10)
mark(sieve(X)) active(sieve(mark(X))) (11)
mark(nats(X)) active(nats(mark(X))) (12)
mark(zprimes) active(zprimes) (13)
filter(mark(X1),X2,X3) filter(X1,X2,X3) (14)
filter(X1,mark(X2),X3) filter(X1,X2,X3) (15)
filter(X1,X2,mark(X3)) filter(X1,X2,X3) (16)
filter(active(X1),X2,X3) filter(X1,X2,X3) (17)
filter(X1,active(X2),X3) filter(X1,X2,X3) (18)
filter(X1,X2,active(X3)) filter(X1,X2,X3) (19)
cons(mark(X1),X2) cons(X1,X2) (20)
cons(X1,mark(X2)) cons(X1,X2) (21)
cons(active(X1),X2) cons(X1,X2) (22)
cons(X1,active(X2)) cons(X1,X2) (23)
s(mark(X)) s(X) (24)
s(active(X)) s(X) (25)
sieve(mark(X)) sieve(X) (26)
sieve(active(X)) sieve(X) (27)
nats(mark(X)) nats(X) (28)
nats(active(X)) nats(X) (29)
The evaluation strategy is innermost.

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
active#(filter(cons(X,Y),0,M)) mark#(cons(0,filter(Y,M,M))) (30)
active#(filter(cons(X,Y),0,M)) cons#(0,filter(Y,M,M)) (31)
active#(filter(cons(X,Y),0,M)) filter#(Y,M,M) (32)
active#(filter(cons(X,Y),s(N),M)) mark#(cons(X,filter(Y,N,M))) (33)
active#(filter(cons(X,Y),s(N),M)) cons#(X,filter(Y,N,M)) (34)
active#(filter(cons(X,Y),s(N),M)) filter#(Y,N,M) (35)
active#(sieve(cons(0,Y))) mark#(cons(0,sieve(Y))) (36)
active#(sieve(cons(0,Y))) cons#(0,sieve(Y)) (37)
active#(sieve(cons(0,Y))) sieve#(Y) (38)
active#(sieve(cons(s(N),Y))) mark#(cons(s(N),sieve(filter(Y,N,N)))) (39)
active#(sieve(cons(s(N),Y))) cons#(s(N),sieve(filter(Y,N,N))) (40)
active#(sieve(cons(s(N),Y))) sieve#(filter(Y,N,N)) (41)
active#(sieve(cons(s(N),Y))) filter#(Y,N,N) (42)
active#(nats(N)) mark#(cons(N,nats(s(N)))) (43)
active#(nats(N)) cons#(N,nats(s(N))) (44)
active#(nats(N)) nats#(s(N)) (45)
active#(nats(N)) s#(N) (46)
active#(zprimes) mark#(sieve(nats(s(s(0))))) (47)
active#(zprimes) sieve#(nats(s(s(0)))) (48)
active#(zprimes) nats#(s(s(0))) (49)
active#(zprimes) s#(s(0)) (50)
active#(zprimes) s#(0) (51)
mark#(filter(X1,X2,X3)) active#(filter(mark(X1),mark(X2),mark(X3))) (52)
mark#(filter(X1,X2,X3)) filter#(mark(X1),mark(X2),mark(X3)) (53)
mark#(filter(X1,X2,X3)) mark#(X1) (54)
mark#(filter(X1,X2,X3)) mark#(X2) (55)
mark#(filter(X1,X2,X3)) mark#(X3) (56)
mark#(cons(X1,X2)) active#(cons(mark(X1),X2)) (57)
mark#(cons(X1,X2)) cons#(mark(X1),X2) (58)
mark#(cons(X1,X2)) mark#(X1) (59)
mark#(0) active#(0) (60)
mark#(s(X)) active#(s(mark(X))) (61)
mark#(s(X)) s#(mark(X)) (62)
mark#(s(X)) mark#(X) (63)
mark#(sieve(X)) active#(sieve(mark(X))) (64)
mark#(sieve(X)) sieve#(mark(X)) (65)
mark#(sieve(X)) mark#(X) (66)
mark#(nats(X)) active#(nats(mark(X))) (67)
mark#(nats(X)) nats#(mark(X)) (68)
mark#(nats(X)) mark#(X) (69)
mark#(zprimes) active#(zprimes) (70)
filter#(mark(X1),X2,X3) filter#(X1,X2,X3) (71)
filter#(X1,mark(X2),X3) filter#(X1,X2,X3) (72)
filter#(X1,X2,mark(X3)) filter#(X1,X2,X3) (73)
filter#(active(X1),X2,X3) filter#(X1,X2,X3) (74)
filter#(X1,active(X2),X3) filter#(X1,X2,X3) (75)
filter#(X1,X2,active(X3)) filter#(X1,X2,X3) (76)
cons#(mark(X1),X2) cons#(X1,X2) (77)
cons#(X1,mark(X2)) cons#(X1,X2) (78)
cons#(active(X1),X2) cons#(X1,X2) (79)
cons#(X1,active(X2)) cons#(X1,X2) (80)
s#(mark(X)) s#(X) (81)
s#(active(X)) s#(X) (82)
sieve#(mark(X)) sieve#(X) (83)
sieve#(active(X)) sieve#(X) (84)
nats#(mark(X)) nats#(X) (85)
nats#(active(X)) nats#(X) (86)

1.1 Dependency Graph Processor

The dependency pairs are split into 6 components.