Certification Problem

Input (TPDB TRS_Standard/AProVE_07/thiemann41)

The rewrite relation of the following TRS is considered.

times(x,y) sum(generate(x,y)) (1)
generate(x,y) gen(x,y,0) (2)
gen(x,y,z) if(ge(z,x),x,y,z) (3)
if(true,x,y,z) nil (4)
if(false,x,y,z) cons(y,gen(x,y,s(z))) (5)
sum(nil) 0 (6)
sum(cons(0,xs)) sum(xs) (7)
sum(cons(s(x),xs)) s(sum(cons(x,xs))) (8)
ge(x,0) true (9)
ge(0,s(y)) false (10)
ge(s(x),s(y)) ge(x,y) (11)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 Switch to Innermost Termination

The TRS is overlay and locally confluent:

10

Hence, it suffices to show innermost termination in the following.

1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
times#(x,y) sum#(generate(x,y)) (12)
times#(x,y) generate#(x,y) (13)
generate#(x,y) gen#(x,y,0) (14)
gen#(x,y,z) if#(ge(z,x),x,y,z) (15)
gen#(x,y,z) ge#(z,x) (16)
if#(false,x,y,z) gen#(x,y,s(z)) (17)
sum#(cons(0,xs)) sum#(xs) (18)
sum#(cons(s(x),xs)) sum#(cons(x,xs)) (19)
ge#(s(x),s(y)) ge#(x,y) (20)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.