Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/Ex4_DLMMU04_FR)

The rewrite relation of the following TRS is considered.

and(tt,T) T (1)
isNatIList(IL) isNatList(activate(IL)) (2)
isNat(n__0) tt (3)
isNat(n__s(N)) isNat(activate(N)) (4)
isNat(n__length(L)) isNatList(activate(L)) (5)
isNatIList(n__zeros) tt (6)
isNatIList(n__cons(N,IL)) and(isNat(activate(N)),isNatIList(activate(IL))) (7)
isNatList(n__nil) tt (8)
isNatList(n__cons(N,L)) and(isNat(activate(N)),isNatList(activate(L))) (9)
isNatList(n__take(N,IL)) and(isNat(activate(N)),isNatIList(activate(IL))) (10)
zeros cons(0,n__zeros) (11)
take(0,IL) uTake1(isNatIList(IL)) (12)
uTake1(tt) nil (13)
take(s(M),cons(N,IL)) uTake2(and(isNat(M),and(isNat(N),isNatIList(activate(IL)))),M,N,activate(IL)) (14)
uTake2(tt,M,N,IL) cons(activate(N),n__take(activate(M),activate(IL))) (15)
length(cons(N,L)) uLength(and(isNat(N),isNatList(activate(L))),activate(L)) (16)
uLength(tt,L) s(length(activate(L))) (17)
0 n__0 (18)
s(X) n__s(X) (19)
length(X) n__length(X) (20)
zeros n__zeros (21)
cons(X1,X2) n__cons(X1,X2) (22)
nil n__nil (23)
take(X1,X2) n__take(X1,X2) (24)
activate(n__0) 0 (25)
activate(n__s(X)) s(activate(X)) (26)
activate(n__length(X)) length(activate(X)) (27)
activate(n__zeros) zeros (28)
activate(n__cons(X1,X2)) cons(activate(X1),X2) (29)
activate(n__nil) nil (30)
activate(n__take(X1,X2)) take(activate(X1),activate(X2)) (31)
activate(X) X (32)

Property / Task

Prove or disprove termination.

Answer / Result

No.

Proof (by AProVE @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
isNatIList#(IL) isNatList#(activate(IL)) (33)
isNatIList#(IL) activate#(IL) (34)
isNat#(n__s(N)) isNat#(activate(N)) (35)
isNat#(n__s(N)) activate#(N) (36)
isNat#(n__length(L)) isNatList#(activate(L)) (37)
isNat#(n__length(L)) activate#(L) (38)
isNatIList#(n__cons(N,IL)) and#(isNat(activate(N)),isNatIList(activate(IL))) (39)
isNatIList#(n__cons(N,IL)) isNat#(activate(N)) (40)
isNatIList#(n__cons(N,IL)) activate#(N) (41)
isNatIList#(n__cons(N,IL)) isNatIList#(activate(IL)) (42)
isNatIList#(n__cons(N,IL)) activate#(IL) (43)
isNatList#(n__cons(N,L)) and#(isNat(activate(N)),isNatList(activate(L))) (44)
isNatList#(n__cons(N,L)) isNat#(activate(N)) (45)
isNatList#(n__cons(N,L)) activate#(N) (46)
isNatList#(n__cons(N,L)) isNatList#(activate(L)) (47)
isNatList#(n__cons(N,L)) activate#(L) (48)
isNatList#(n__take(N,IL)) and#(isNat(activate(N)),isNatIList(activate(IL))) (49)
isNatList#(n__take(N,IL)) isNat#(activate(N)) (50)
isNatList#(n__take(N,IL)) activate#(N) (51)
isNatList#(n__take(N,IL)) isNatIList#(activate(IL)) (52)
isNatList#(n__take(N,IL)) activate#(IL) (53)
zeros# cons#(0,n__zeros) (54)
zeros# 0# (55)
take#(0,IL) uTake1#(isNatIList(IL)) (56)
take#(0,IL) isNatIList#(IL) (57)
uTake1#(tt) nil# (58)
take#(s(M),cons(N,IL)) uTake2#(and(isNat(M),and(isNat(N),isNatIList(activate(IL)))),M,N,activate(IL)) (59)
take#(s(M),cons(N,IL)) and#(isNat(M),and(isNat(N),isNatIList(activate(IL)))) (60)
take#(s(M),cons(N,IL)) isNat#(M) (61)
take#(s(M),cons(N,IL)) and#(isNat(N),isNatIList(activate(IL))) (62)
take#(s(M),cons(N,IL)) isNat#(N) (63)
take#(s(M),cons(N,IL)) isNatIList#(activate(IL)) (64)
take#(s(M),cons(N,IL)) activate#(IL) (65)
uTake2#(tt,M,N,IL) cons#(activate(N),n__take(activate(M),activate(IL))) (66)
uTake2#(tt,M,N,IL) activate#(N) (67)
uTake2#(tt,M,N,IL) activate#(M) (68)
uTake2#(tt,M,N,IL) activate#(IL) (69)
length#(cons(N,L)) uLength#(and(isNat(N),isNatList(activate(L))),activate(L)) (70)
length#(cons(N,L)) and#(isNat(N),isNatList(activate(L))) (71)
length#(cons(N,L)) isNat#(N) (72)
length#(cons(N,L)) isNatList#(activate(L)) (73)
length#(cons(N,L)) activate#(L) (74)
uLength#(tt,L) s#(length(activate(L))) (75)
uLength#(tt,L) length#(activate(L)) (76)
uLength#(tt,L) activate#(L) (77)
activate#(n__0) 0# (78)
activate#(n__s(X)) s#(activate(X)) (79)
activate#(n__s(X)) activate#(X) (80)
activate#(n__length(X)) length#(activate(X)) (81)
activate#(n__length(X)) activate#(X) (82)
activate#(n__zeros) zeros# (83)
activate#(n__cons(X1,X2)) cons#(activate(X1),X2) (84)
activate#(n__cons(X1,X2)) activate#(X1) (85)
activate#(n__nil) nil# (86)
activate#(n__take(X1,X2)) take#(activate(X1),activate(X2)) (87)
activate#(n__take(X1,X2)) activate#(X1) (88)
activate#(n__take(X1,X2)) activate#(X2) (89)
It remains to prove infiniteness of the resulting DP problem.

1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted.
isNatIList#(n__cons(N,IL)) and#(isNat(activate(N)),isNatIList(activate(IL))) (39)
isNatList#(n__cons(N,L)) and#(isNat(activate(N)),isNatList(activate(L))) (44)
isNatList#(n__take(N,IL)) and#(isNat(activate(N)),isNatIList(activate(IL))) (49)
zeros# cons#(0,n__zeros) (54)
zeros# 0# (55)
take#(0,IL) uTake1#(isNatIList(IL)) (56)
uTake1#(tt) nil# (58)
take#(s(M),cons(N,IL)) and#(isNat(M),and(isNat(N),isNatIList(activate(IL)))) (60)
take#(s(M),cons(N,IL)) and#(isNat(N),isNatIList(activate(IL))) (62)
uTake2#(tt,M,N,IL) cons#(activate(N),n__take(activate(M),activate(IL))) (66)
length#(cons(N,L)) and#(isNat(N),isNatList(activate(L))) (71)
uLength#(tt,L) s#(length(activate(L))) (75)
activate#(n__0) 0# (78)
activate#(n__s(X)) s#(activate(X)) (79)
activate#(n__zeros) zeros# (83)
activate#(n__cons(X1,X2)) cons#(activate(X1),X2) (84)
activate#(n__nil) nil# (86)
and the following rules have been deleted.

1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted.
take#(0,IL) isNatIList#(IL) (57)
activate#(n__take(X1,X2)) activate#(X1) (88)
activate#(n__take(X1,X2)) activate#(X2) (89)
isNatList#(n__take(N,IL)) isNat#(activate(N)) (50)
isNatList#(n__take(N,IL)) activate#(N) (51)
isNatList#(n__take(N,IL)) isNatIList#(activate(IL)) (52)
isNatList#(n__take(N,IL)) activate#(IL) (53)
take#(s(M),cons(N,IL)) uTake2#(and(isNat(M),and(isNat(N),isNatIList(activate(IL)))),M,N,activate(IL)) (59)
uTake2#(tt,M,N,IL) activate#(N) (67)
uTake2#(tt,M,N,IL) activate#(M) (68)
uTake2#(tt,M,N,IL) activate#(IL) (69)
take#(s(M),cons(N,IL)) isNat#(M) (61)
take#(s(M),cons(N,IL)) isNat#(N) (63)
take#(s(M),cons(N,IL)) isNatIList#(activate(IL)) (64)
take#(s(M),cons(N,IL)) activate#(IL) (65)
and the following rules have been deleted.

1.1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted.
activate#(n__take(X1,X2)) take#(activate(X1),activate(X2)) (87)
isNatIList#(IL) isNatList#(activate(IL)) (33)
isNatIList#(IL) activate#(IL) (34)
isNatIList#(n__cons(N,IL)) isNat#(activate(N)) (40)
isNatIList#(n__cons(N,IL)) activate#(N) (41)
isNatIList#(n__cons(N,IL)) isNatIList#(activate(IL)) (42)
isNatIList#(n__cons(N,IL)) activate#(IL) (43)
and the following rules have been deleted.

1.1.1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted.
activate#(n__length(X)) length#(activate(X)) (81)
isNat#(n__length(L)) isNatList#(activate(L)) (37)
isNat#(n__length(L)) activate#(L) (38)
activate#(n__length(X)) activate#(X) (82)
and the following rules have been deleted.

1.1.1.1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted.
isNat#(n__s(N)) isNat#(activate(N)) (35)
isNat#(n__s(N)) activate#(N) (36)
activate#(n__s(X)) activate#(X) (80)
length#(cons(N,L)) uLength#(and(isNat(N),isNatList(activate(L))),activate(L)) (70)
uLength#(tt,L) length#(activate(L)) (76)
length#(cons(N,L)) isNat#(N) (72)
isNatList#(n__cons(N,L)) isNat#(activate(N)) (45)
activate#(n__cons(X1,X2)) activate#(X1) (85)
isNatList#(n__cons(N,L)) activate#(N) (46)
isNatList#(n__cons(N,L)) activate#(L) (48)
length#(cons(N,L)) isNatList#(activate(L)) (73)
length#(cons(N,L)) activate#(L) (74)
uLength#(tt,L) activate#(L) (77)
and the following rules have been deleted.

1.1.1.1.1.1.1 Narrowing Processor

We consider narrowings of the pair below position 1 to get the following set of pairs
isNatList#(n__cons(y0,n__0)) isNatList#(0) (90)
isNatList#(n__cons(y0,n__s(x0))) isNatList#(s(activate(x0))) (91)
isNatList#(n__cons(y0,n__length(x0))) isNatList#(length(activate(x0))) (92)
isNatList#(n__cons(y0,n__zeros)) isNatList#(zeros) (93)
isNatList#(n__cons(y0,n__cons(x0,x1))) isNatList#(cons(activate(x0),x1)) (94)
isNatList#(n__cons(y0,n__nil)) isNatList#(nil) (95)
isNatList#(n__cons(y0,n__take(x0,x1))) isNatList#(take(activate(x0),activate(x1))) (96)
isNatList#(n__cons(y0,x0)) isNatList#(x0) (97)

1.1.1.1.1.1.1.1 Narrowing Processor

We consider narrowings of the pair below position 1 to get the following set of pairs
isNatList#(n__cons(y0,n__0)) isNatList#(n__0) (98)

1.1.1.1.1.1.1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted.
isNatList#(n__cons(y0,n__0)) isNatList#(n__0) (98)
and the following rules have been deleted.

1.1.1.1.1.1.1.1.1.1 Narrowing Processor

We consider narrowings of the pair below position 1 to get the following set of pairs
isNatList#(n__cons(y0,n__zeros)) isNatList#(cons(0,n__zeros)) (99)
isNatList#(n__cons(y0,n__zeros)) isNatList#(n__zeros) (100)

1.1.1.1.1.1.1.1.1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted.
isNatList#(n__cons(y0,n__zeros)) isNatList#(n__zeros) (100)
and the following rules have been deleted.

1.1.1.1.1.1.1.1.1.1.1.1 Narrowing Processor

We consider narrowings of the pair below position 1 to get the following set of pairs
isNatList#(n__cons(y0,n__nil)) isNatList#(n__nil) (101)

1.1.1.1.1.1.1.1.1.1.1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted.
isNatList#(n__cons(y0,n__nil)) isNatList#(n__nil) (101)
and the following rules have been deleted.

1.1.1.1.1.1.1.1.1.1.1.1.1.1 Narrowing Processor

We consider narrowings of the pair below position 1 to get the following set of pairs
isNatList#(n__cons(y0,n__zeros)) isNatList#(n__cons(0,n__zeros)) (102)
isNatList#(n__cons(y0,n__zeros)) isNatList#(cons(n__0,n__zeros)) (103)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Narrowing Processor

We consider narrowings of the pair below position 1 to get the following set of pairs
isNatList#(n__cons(y0,n__zeros)) isNatList#(n__cons(n__0,n__zeros)) (104)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted.
isNatList#(n__cons(y0,n__s(x0))) isNatList#(s(activate(x0))) (91)
isNatList#(n__cons(y0,n__length(x0))) isNatList#(length(activate(x0))) (92)
and the following rules have been deleted.

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted.
isNatList#(n__cons(y0,n__cons(x0,x1))) isNatList#(cons(activate(x0),x1)) (94)
and the following rules have been deleted.

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted.
isNatList#(n__cons(y0,x0)) isNatList#(x0) (97)
and the following rules have been deleted.

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted.
isNatList#(n__cons(y0,n__take(x0,x1))) isNatList#(take(activate(x0),activate(x1))) (96)
and the following rules have been deleted.

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted. and the following rules have been deleted.
and(tt,T) T (1)
isNatIList(IL) isNatList(activate(IL)) (2)
isNat(n__0) tt (3)
isNat(n__s(N)) isNat(activate(N)) (4)
isNat(n__length(L)) isNatList(activate(L)) (5)
isNatIList(n__zeros) tt (6)
isNatIList(n__cons(N,IL)) and(isNat(activate(N)),isNatIList(activate(IL))) (7)
isNatList(n__nil) tt (8)
isNatList(n__cons(N,L)) and(isNat(activate(N)),isNatList(activate(L))) (9)
isNatList(n__take(N,IL)) and(isNat(activate(N)),isNatIList(activate(IL))) (10)
zeros cons(0,n__zeros) (11)
take(0,IL) uTake1(isNatIList(IL)) (12)
uTake1(tt) nil (13)
take(s(M),cons(N,IL)) uTake2(and(isNat(M),and(isNat(N),isNatIList(activate(IL)))),M,N,activate(IL)) (14)
uTake2(tt,M,N,IL) cons(activate(N),n__take(activate(M),activate(IL))) (15)
length(cons(N,L)) uLength(and(isNat(N),isNatList(activate(L))),activate(L)) (16)
uLength(tt,L) s(length(activate(L))) (17)
s(X) n__s(X) (19)
length(X) n__length(X) (20)
zeros n__zeros (21)
cons(X1,X2) n__cons(X1,X2) (22)
nil n__nil (23)
take(X1,X2) n__take(X1,X2) (24)
activate(n__0) 0 (25)
activate(n__s(X)) s(activate(X)) (26)
activate(n__length(X)) length(activate(X)) (27)
activate(n__zeros) zeros (28)
activate(n__cons(X1,X2)) cons(activate(X1),X2) (29)
activate(n__nil) nil (30)
activate(n__take(X1,X2)) take(activate(X1),activate(X2)) (31)
activate(X) X (32)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Innermost Lhss Increase Processor

We add the following left hand sides to the innermost strategy.
0

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Rewriting Processor

We rewrite the right hand side of the pair resulting in

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Pair and Rule Removal

Some pairs and rules have been removed and it remains to prove infiniteness of the remaing problem. The following pairs have been deleted. and the following rules have been deleted.
0 n__0 (18)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Innermost Lhss Removal Processor

We restrict the innermost strategy to the following left hand sides.

There are no lhss.

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Instantiation Processor

The pairs are instantiated to the following pairs.
isNatList#(n__cons(n__0,n__zeros)) isNatList#(n__cons(n__0,n__zeros)) (105)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Loop

The following loop proves infiniteness of the DP problem.

t0 = isNatList#(n__cons(n__0,n__zeros))
P isNatList#(n__cons(n__0,n__zeros))
= t1
where t1 = t0