Certification Problem

Input (TPDB TRS_Standard/SK90/4.24)

The rewrite relation of the following TRS is considered.

rev(nil) nil (1)
rev(++(x,y)) ++(rev1(x,y),rev2(x,y)) (2)
rev1(x,nil) x (3)
rev1(x,++(y,z)) rev1(y,z) (4)
rev2(x,nil) nil (5)
rev2(x,++(y,z)) rev(++(x,rev(rev2(y,z)))) (6)

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.
rev#(++(x,y)) rev1#(x,y) (7)
rev#(++(x,y)) rev2#(x,y) (8)
rev1#(x,++(y,z)) rev1#(y,z) (9)
rev2#(x,++(y,z)) rev#(++(x,rev(rev2(y,z)))) (10)
rev2#(x,++(y,z)) rev#(rev2(y,z)) (11)
rev2#(x,++(y,z)) rev2#(y,z) (12)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 2 components.