Certification Problem

Input (TPDB TRS_Standard/CiME_04/fact-hard)

The rewrite relation of the following TRS is considered.

+(x,0) x (1)
+(x,s(y)) s(+(x,y)) (2)
*(x,0) 0 (3)
*(x,s(y)) +(*(x,y),x) (4)
ge(x,0) true (5)
ge(0,s(y)) false (6)
ge(s(x),s(y)) ge(x,y) (7)
-(x,0) x (8)
-(s(x),s(y)) -(x,y) (9)
fact(x) iffact(x,ge(x,s(s(0)))) (10)
iffact(x,true) *(x,fact(-(x,s(0)))) (11)
iffact(x,false) s(0) (12)

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.
+#(x,s(y)) +#(x,y) (13)
*#(x,s(y)) +#(*(x,y),x) (14)
*#(x,s(y)) *#(x,y) (15)
ge#(s(x),s(y)) ge#(x,y) (16)
-#(s(x),s(y)) -#(x,y) (17)
fact#(x) iffact#(x,ge(x,s(s(0)))) (18)
fact#(x) ge#(x,s(s(0))) (19)
iffact#(x,true) *#(x,fact(-(x,s(0)))) (20)
iffact#(x,true) fact#(-(x,s(0))) (21)
iffact#(x,true) -#(x,s(0)) (22)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 5 components.