Term Rewriting System R: [x, f, t] app(app(fmap, fnil), x) -> nil app(app(fmap, app(app(fcons, f), t)), x) -> app(app(cons, app(f, x)), app(app(fmap, t), x)) 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(fmap, app(app(fcons, f), t)), x) -> APP(app(cons, app(f, x)), app(app(fmap, t), x)) APP(app(fmap, app(app(fcons, f), t)), x) -> APP(cons, app(f, x)) APP(app(fmap, app(app(fcons, f), t)), x) -> APP(f, x) APP(app(fmap, app(app(fcons, f), t)), x) -> APP(app(fmap, t), x) APP(app(fmap, app(app(fcons, f), t)), x) -> APP(fmap, t) Furthermore, R contains one SCC. SCC1: APP(app(fmap, app(app(fcons, f), t)), x) -> APP(app(fmap, t), x) APP(app(fmap, app(app(fcons, f), t)), x) -> APP(f, x) APP(app(fmap, app(app(fcons, f), t)), x) -> APP(app(cons, app(f, x)), app(app(fmap, t), x)) On this Scc, a Narrowing SCC transformation can be performed. As a result of transforming the rule APP(app(fmap, app(app(fcons, f), t)), x) -> APP(app(cons, app(f, x)), app(app(fmap, t), x)) four new Dependency Pairs are created: APP(app(fmap, app(app(fcons, app(fmap, fnil)), t)), x'') -> APP(app(cons, nil), app(app(fmap, t), x'')) APP(app(fmap, app(app(fcons, app(fmap, app(app(fcons, f''), t''))), t)), x'') -> APP(app(cons, app(app(cons, app(f'', x'')), app(app(fmap, t''), x''))), app(app(fmap, t), x'')) APP(app(fmap, app(app(fcons, f), fnil)), x'') -> APP(app(cons, app(f, x'')), nil) APP(app(fmap, app(app(fcons, f), app(app(fcons, f''), t''))), x'') -> APP(app(cons, app(f, x'')), app(app(cons, app(f'', x'')), app(app(fmap, t''), x''))) The transformation is resulting in one subcycle: SCC1.Nar1: APP(app(fmap, app(app(fcons, f), app(app(fcons, f''), t''))), x'') -> APP(app(cons, app(f, x'')), app(app(cons, app(f'', x'')), app(app(fmap, t''), x''))) APP(app(fmap, app(app(fcons, f), fnil)), x'') -> APP(app(cons, app(f, x'')), nil) APP(app(fmap, app(app(fcons, app(fmap, app(app(fcons, f''), t''))), t)), x'') -> APP(app(cons, app(app(cons, app(f'', x'')), app(app(fmap, t''), x''))), app(app(fmap, t), x'')) APP(app(fmap, app(app(fcons, app(fmap, fnil)), t)), x'') -> APP(app(cons, nil), app(app(fmap, t), x'')) APP(app(fmap, app(app(fcons, f), t)), x) -> APP(f, x) APP(app(fmap, app(app(fcons, f), t)), x) -> APP(app(fmap, t), x) 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(fmap, fnil), x) -> nil app(app(fmap, app(app(fcons, f), t)), x) -> app(app(cons, app(f, x)), app(app(fmap, t), x)) Used ordering: Polynomial ordering with Polynomial interpretation: POL(nil) = 0 POL(fcons) = 1 POL(fnil) = 0 POL(APP(x_1, x_2)) = 1 + x_1 POL(fmap) = 1 POL(app(x_1, x_2)) = x_1 + x_1*x_2 POL(cons) = 0 resulting in no subcycles. Termination of R successfully shown. Duration: 33.719 seconds.