Term Rewriting System R: [f, x, xs] app(app(map, f), nil) -> nil app(app(map, f), app(app(cons, x), xs)) -> app(app(cons, app(f, x)), app(app(map, f), xs)) Termination of R to be shown. This program has no overlaps, so it is sufficient to show innermost termination. R contains the following Dependency Pairs: APP(app(map, f), app(app(cons, x), xs)) -> APP(app(cons, app(f, x)), app(app(map, f), xs)) APP(app(map, f), app(app(cons, x), xs)) -> APP(cons, app(f, x)) APP(app(map, f), app(app(cons, x), xs)) -> APP(f, x) APP(app(map, f), app(app(cons, x), xs)) -> APP(app(map, f), xs) Furthermore, R contains one SCC. SCC1: APP(app(map, f), app(app(cons, x), xs)) -> APP(app(map, f), xs) APP(app(map, f), app(app(cons, x), xs)) -> APP(f, x) APP(app(map, f), app(app(cons, x), xs)) -> APP(app(cons, app(f, x)), app(app(map, f), xs)) On this Scc, a Narrowing SCC transformation can be performed. As a result of transforming the rule APP(app(map, f), app(app(cons, x), xs)) -> APP(app(cons, app(f, x)), app(app(map, f), xs)) four new Dependency Pairs are created: APP(app(map, app(map, f'')), app(app(cons, app(app(cons, x''), xs'')), xs)) -> APP(app(cons, app(app(cons, app(f'', x'')), app(app(map, f''), xs''))), app(app(map, app(map, f'')), xs)) APP(app(map, app(map, f'')), app(app(cons, nil), xs)) -> APP(app(cons, nil), app(app(map, app(map, f'')), xs)) APP(app(map, f''), app(app(cons, x), app(app(cons, x''), xs''))) -> APP(app(cons, app(f'', x)), app(app(cons, app(f'', x'')), app(app(map, f''), xs''))) APP(app(map, f''), app(app(cons, x), nil)) -> APP(app(cons, app(f'', x)), nil) The transformation is resulting in one subcycle: SCC1.Nar1: APP(app(map, f''), app(app(cons, x), app(app(cons, x''), xs''))) -> APP(app(cons, app(f'', x)), app(app(cons, app(f'', x'')), app(app(map, f''), xs''))) APP(app(map, app(map, f'')), app(app(cons, app(app(cons, x''), xs'')), xs)) -> APP(app(cons, app(app(cons, app(f'', x'')), app(app(map, f''), xs''))), app(app(map, app(map, f'')), xs)) APP(app(map, f), app(app(cons, x), xs)) -> APP(f, x) APP(app(map, f), app(app(cons, x), xs)) -> APP(app(map, f), xs) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. Additionally, the following rules can be oriented: app(app(map, f), app(app(cons, x), xs)) -> app(app(cons, app(f, x)), app(app(map, f), xs)) app(app(map, f), nil) -> nil Used ordering: Polynomial ordering with Polynomial interpretation: POL(nil) = 0 POL(map) = 1 POL(APP(x_1, x_2)) = x_1 POL(app(x_1, x_2)) = x_1 + x_1*x_2 POL(cons) = 0 resulting in one subcycle. SCC1.Nar1.Polo1: APP(app(map, f), app(app(cons, x), xs)) -> APP(app(map, f), xs) Removing rules from R by ordering and analyzing Dependency Pairs, Usable Rules, and Usable Equations. This is possible by using the following (C_E-compatible) Polynomial ordering. Polynomial interpretation: POL(map) = 1 POL(APP(x_1, x_2)) = 1 + x_1 + x_2 POL(app(x_1, x_2)) = 1 + x_1 + x_2 POL(cons) = 1 The following Dependency Pairs can be deleted: APP(app(map, f), app(app(cons, x), xs)) -> APP(app(map, f), xs) This transformation is resulting in no new subcycles. Termination of R successfully shown. Duration: 36.399 seconds.