Certification Problem

Input (TPDB TRS_Standard/CiME_04/filliatre)

The rewrite relation of the following TRS is considered.

g(A) A (1)
g(B) A (2)
g(B) B (3)
g(C) A (4)
g(C) B (5)
g(C) C (6)
foldf(x,nil) x (7)
foldf(x,cons(y,z)) f(foldf(x,z),y) (8)
f(t,x) f'(t,g(x)) (9)
f'(triple(a,b,c),C) triple(a,b,cons(C,c)) (10)
f'(triple(a,b,c),B) f(triple(a,b,c),A) (11)
f'(triple(a,b,c),A) f''(foldf(triple(cons(A,a),nil,c),b)) (12)
f''(triple(a,b,c)) foldf(triple(a,b,nil),c) (13)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by NaTT @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
f#(t,x) f'#(t,g(x)) (14)
f'#(triple(a,b,c),A) foldf#(triple(cons(A,a),nil,c),b) (15)
foldf#(x,cons(y,z)) f#(foldf(x,z),y) (16)
f'#(triple(a,b,c),A) f''#(foldf(triple(cons(A,a),nil,c),b)) (17)
f#(t,x) g#(x) (18)
f''#(triple(a,b,c)) foldf#(triple(a,b,nil),c) (19)
foldf#(x,cons(y,z)) foldf#(x,z) (20)
f'#(triple(a,b,c),B) f#(triple(a,b,c),A) (21)

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.