Certification Problem

Input (TPDB TRS_Standard/EEG_IJCAR_12/emmes-nonloop-ex4_2)

The rewrite relation of the following TRS is considered.

f(true,x) f(eq(0,minus(x,x)),plus1(x)) (1)
plus1(x) plus(x,s(0)) (2)
plus(0,y) y (3)
plus(s(x),y) plus(x,s(y)) (4)
minus(x,0) x (5)
minus(0,y) 0 (6)
minus(s(x),s(y)) minus(x,y) (7)
eq(0,0) true (8)
eq(s(x),0) false (9)
eq(0,s(y)) false (10)
eq(s(x),s(y)) eq(x,y) (11)

Property / Task

Prove or disprove termination.

Answer / Result

No.

Proof (by AProVE @ termCOMP 2023)

1 Innermost Lhss Increase

We add the following left hand sides to the innermost strategy.
f(true,x0)
plus1(x0)
plus(0,x0)
plus(s(x0),x1)
minus(x0,0)
minus(0,x0)
minus(s(x0),s(x1))
eq(0,0)
eq(s(x0),0)
eq(0,s(x0))
eq(s(x0),s(x1))

1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
f#(true,x) f#(eq(0,minus(x,x)),plus1(x)) (12)
f#(true,x) eq#(0,minus(x,x)) (13)
f#(true,x) minus#(x,x) (14)
f#(true,x) plus1#(x) (15)
plus1#(x) plus#(x,s(0)) (16)
plus#(s(x),y) plus#(x,s(y)) (17)
minus#(s(x),s(y)) minus#(x,y) (18)
eq#(s(x),s(y)) eq#(x,y) (19)
It remains to prove infiniteness of the resulting DP problem.

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.
f#(true,x) eq#(0,minus(x,x)) (13)
f#(true,x) minus#(x,x) (14)
f#(true,x) plus1#(x) (15)
plus1#(x) plus#(x,s(0)) (16)
plus#(s(x),y) plus#(x,s(y)) (17)
minus#(s(x),s(y)) minus#(x,y) (18)
eq#(s(x),s(y)) eq#(x,y) (19)
and the following rules have been deleted.

1.1.1.1 Full Strategy Switch Processor

We have a locally confluent overlay TRS, no overlaps between P and R, and the strategy is less than innermost. Hence, it suffices to prove non-termination for the full rewrite relation.

Local Confluence Proof

All critical pairs are joinable within 10 step(s). 10

1.1.1.1.1 Non-Loop

An infinite (possibly non-looping) derivation has been detected due to the following pattern rule.

f#(true,s(zr0)) {zr0/0} n {zr0/s(zr0)} →+f#(true,s(s(zr0))) {zr0/0} n {zr0/s(zr0)}
The pattern rule is equivalent to the following pattern rule