Certification Problem

Input (TPDB TRS_Standard/Applicative_first_order_05/01)

The rewrite relation of the following TRS is considered.

app(app(\,x),x) e (1)
app(app(\,e),x) x (2)
app(app(\,x),app(app(.,x),y)) y (3)
app(app(\,app(app(/,x),y)),x) y (4)
app(app(/,x),x) e (5)
app(app(/,x),e) x (6)
app(app(/,app(app(.,y),x)),x) y (7)
app(app(/,x),app(app(\,y),x)) y (8)
app(app(.,e),x) x (9)
app(app(.,x),e) x (10)
app(app(.,x),app(app(\,x),y)) y (11)
app(app(.,app(app(/,y),x)),x) y (12)
app(app(map,f),nil) nil (13)
app(app(map,f),app(app(cons,x),xs)) app(app(cons,app(f,x)),app(app(map,f),xs)) (14)
app(app(filter,f),nil) nil (15)
app(app(filter,f),app(app(cons,x),xs)) app(app(app(app(filter2,app(f,x)),f),x),xs) (16)
app(app(app(app(filter2,true),f),x),xs) app(app(cons,x),app(app(filter,f),xs)) (17)
app(app(app(app(filter2,false),f),x),xs) app(app(filter,f),xs) (18)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by ttt2 @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
app#(app(map,f),app(app(cons,x),xs)) app#(app(map,f),xs) (19)
app#(app(map,f),app(app(cons,x),xs)) app#(f,x) (20)
app#(app(map,f),app(app(cons,x),xs)) app#(cons,app(f,x)) (21)
app#(app(map,f),app(app(cons,x),xs)) app#(app(cons,app(f,x)),app(app(map,f),xs)) (22)
app#(app(filter,f),app(app(cons,x),xs)) app#(f,x) (23)
app#(app(filter,f),app(app(cons,x),xs)) app#(filter2,app(f,x)) (24)
app#(app(filter,f),app(app(cons,x),xs)) app#(app(filter2,app(f,x)),f) (25)
app#(app(filter,f),app(app(cons,x),xs)) app#(app(app(filter2,app(f,x)),f),x) (26)
app#(app(filter,f),app(app(cons,x),xs)) app#(app(app(app(filter2,app(f,x)),f),x),xs) (27)
app#(app(app(app(filter2,true),f),x),xs) app#(filter,f) (28)
app#(app(app(app(filter2,true),f),x),xs) app#(app(filter,f),xs) (29)
app#(app(app(app(filter2,true),f),x),xs) app#(cons,x) (30)
app#(app(app(app(filter2,true),f),x),xs) app#(app(cons,x),app(app(filter,f),xs)) (31)
app#(app(app(app(filter2,false),f),x),xs) app#(filter,f) (32)
app#(app(app(app(filter2,false),f),x),xs) app#(app(filter,f),xs) (33)

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.