Term Rewriting System R: [x, y, w, z] app(app(lt, app(s, x)), app(s, y)) -> app(app(lt, x), y) app(app(lt, 0), app(s, y)) -> true app(app(lt, y), 0) -> false app(app(eq, x), x) -> true app(app(eq, app(s, x)), 0) -> false app(app(eq, 0), app(s, x)) -> false app(app(member, w), null) -> false app(app(member, w), app(app(app(fork, x), y), z)) -> app(app(app(if, app(app(lt, w), y)), app(app(member, w), x)), app(app(app(if, app(app(eq, w), y)), true), app(app(member, w), z))) 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(lt, app(s, x)), app(s, y)) -> APP(app(lt, x), y) APP(app(lt, app(s, x)), app(s, y)) -> APP(lt, x) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(app(if, app(app(lt, w), y)), app(app(member, w), x)), app(app(app(if, app(app(eq, w), y)), true), app(app(member, w), z))) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(if, app(app(lt, w), y)), app(app(member, w), x)) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(if, app(app(lt, w), y)) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(lt, w), y) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(lt, w) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(member, w), x) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(app(if, app(app(eq, w), y)), true), app(app(member, w), z)) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(if, app(app(eq, w), y)), true) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(if, app(app(eq, w), y)) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(eq, w), y) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(eq, w) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(member, w), z) Furthermore, R contains one SCC. SCC1: APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(member, w), z) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(eq, w), y) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(app(if, app(app(eq, w), y)), true), app(app(member, w), z)) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(member, w), x) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(lt, w), y) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(if, app(app(lt, w), y)), app(app(member, w), x)) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(app(if, app(app(lt, w), y)), app(app(member, w), x)), app(app(app(if, app(app(eq, w), y)), true), app(app(member, w), z))) APP(app(lt, app(s, x)), app(s, y)) -> APP(app(lt, x), y) On this Scc, a Narrowing SCC transformation can be performed. As a result of transforming the rule APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(eq, w), y) no new Dependency Pairs are created. none The transformation is resulting in one subcycle: SCC1.Nar1: APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(app(if, app(app(eq, w), y)), true), app(app(member, w), z)) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(member, w), x) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(lt, w), y) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(if, app(app(lt, w), y)), app(app(member, w), x)) APP(app(lt, app(s, x)), app(s, y)) -> APP(app(lt, x), y) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(app(if, app(app(lt, w), y)), app(app(member, w), x)), app(app(app(if, app(app(eq, w), y)), true), app(app(member, w), z))) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(member, w), z) 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(eq, app(s, x)), 0) -> false app(app(lt, app(s, x)), app(s, y)) -> app(app(lt, x), y) app(app(member, w), null) -> false app(app(member, w), app(app(app(fork, x), y), z)) -> app(app(app(if, app(app(lt, w), y)), app(app(member, w), x)), app(app(app(if, app(app(eq, w), y)), true), app(app(member, w), z))) app(app(lt, y), 0) -> false app(app(eq, x), x) -> true app(app(eq, 0), app(s, x)) -> false app(app(lt, 0), app(s, y)) -> true Used ordering: Polynomial ordering with Polynomial interpretation: POL(null) = 0 POL(s) = 0 POL(APP(x_1, x_2)) = x_1 POL(eq) = 0 POL(true) = 0 POL(lt) = 0 POL(member) = 1 POL(app(x_1, x_2)) = x_1 POL(0) = 0 POL(if) = 0 POL(false) = 0 POL(fork) = 0 resulting in two subcycles. SCC1.Nar1.Polo1: APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(member, w), z) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(member, w), x) 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(APP(x_1, x_2)) = 1 + x_1 + x_2 POL(member) = 1 POL(app(x_1, x_2)) = 1 + x_1 + x_2 POL(fork) = 1 The following Dependency Pairs can be deleted: APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(member, w), z) APP(app(member, w), app(app(app(fork, x), y), z)) -> APP(app(member, w), x) This transformation is resulting in no new subcycles. SCC1.Nar1.Polo2: APP(app(lt, app(s, x)), app(s, y)) -> APP(app(lt, x), y) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. No rules need to be oriented. Used ordering: Polynomial ordering with Polynomial interpretation: POL(null) = 0 POL(s) = 0 POL(APP(x_1, x_2)) = x_2 POL(eq) = 0 POL(true) = 0 POL(lt) = 0 POL(member) = 0 POL(app(x_1, x_2)) = 1 + x_2 POL(0) = 0 POL(if) = 0 POL(false) = 0 POL(fork) = 0 resulting in no subcycles. Termination of R successfully shown. Duration: 9.595 seconds.