The rewrite relation of the following TRS is considered.
app(app(app(compose,f),g),x) |
→ |
app(g,app(f,x)) |
(1) |
app(reverse,l) |
→ |
app(app(reverse2,l),nil) |
(2) |
app(app(reverse2,nil),l) |
→ |
l |
(3) |
app(app(reverse2,app(app(cons,x),xs)),l) |
→ |
app(app(reverse2,xs),app(app(cons,x),l)) |
(4) |
app(hd,app(app(cons,x),xs)) |
→ |
x |
(5) |
app(tl,app(app(cons,x),xs)) |
→ |
xs |
(6) |
last |
→ |
app(app(compose,hd),reverse) |
(7) |
init |
→ |
app(app(compose,reverse),app(app(compose,tl),reverse)) |
(8) |
app(app(app(compose,f),g),x) |
→ |
app(g,app(f,x)) |
(1) |
app(reverse,l) |
→ |
app(app(reverse2,l),nil) |
(2) |
app(app(reverse2,nil),l) |
→ |
l |
(3) |
app(app(reverse2,app(app(cons,x),xs)),l) |
→ |
app(app(reverse2,xs),app(app(cons,x),l)) |
(4) |
app(tl,app(app(cons,x),xs)) |
→ |
xs |
(6) |
last |
→ |
app(app(compose,hd),reverse) |
(7) |
There are no rules in the TRS. Hence, it is terminating.