WORST_CASE(Omega(n^1),?) proof of /export/starexec/sandbox/benchmark/theBenchmark.trs # AProVE Commit ID: c69e44bd14796315568835c1ffa2502984884775 mhark 20210624 unpublished The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). (0) CpxRelTRS (1) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 1189 ms] (2) CpxRelTRS (3) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxRelTRS (5) SlicingProof [LOWER BOUND(ID), 0 ms] (6) CpxRelTRS (7) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (8) typed CpxTrs (9) OrderProof [LOWER BOUND(ID), 17 ms] (10) typed CpxTrs (11) RewriteLemmaProof [LOWER BOUND(ID), 21.0 s] (12) typed CpxTrs (13) RewriteLemmaProof [LOWER BOUND(ID), 1778 ms] (14) BEST (15) proven lower bound (16) LowerBoundPropagationProof [FINISHED, 0 ms] (17) BOUNDS(n^1, INF) (18) typed CpxTrs ---------------------------------------- (0) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: A__APP(nil, z0) -> c(MARK(z0)) A__APP(cons(z0, z1), z2) -> c1(MARK(z0)) A__APP(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ZWADR(nil, z0) -> c5 A__ZWADR(z0, nil) -> c6 A__ZWADR(cons(z0, z1), cons(z2, z3)) -> c7(A__APP(mark(z2), cons(mark(z0), nil)), MARK(z2)) A__ZWADR(cons(z0, z1), cons(z2, z3)) -> c8(A__APP(mark(z2), cons(mark(z0), nil)), MARK(z0)) A__ZWADR(z0, z1) -> c9 A__PREFIX(z0) -> c10 A__PREFIX(z0) -> c11 MARK(app(z0, z1)) -> c12(A__APP(mark(z0), mark(z1)), MARK(z0)) MARK(app(z0, z1)) -> c13(A__APP(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c14(A__FROM(mark(z0)), MARK(z0)) MARK(zWadr(z0, z1)) -> c15(A__ZWADR(mark(z0), mark(z1)), MARK(z0)) MARK(zWadr(z0, z1)) -> c16(A__ZWADR(mark(z0), mark(z1)), MARK(z1)) MARK(prefix(z0)) -> c17(A__PREFIX(mark(z0)), MARK(z0)) MARK(nil) -> c18 MARK(cons(z0, z1)) -> c19(MARK(z0)) MARK(s(z0)) -> c20(MARK(z0)) The (relative) TRS S consists of the following rules: a__app(nil, z0) -> mark(z0) a__app(cons(z0, z1), z2) -> cons(mark(z0), app(z1, z2)) a__app(z0, z1) -> app(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__zWadr(nil, z0) -> nil a__zWadr(z0, nil) -> nil a__zWadr(cons(z0, z1), cons(z2, z3)) -> cons(a__app(mark(z2), cons(mark(z0), nil)), zWadr(z1, z3)) a__zWadr(z0, z1) -> zWadr(z0, z1) a__prefix(z0) -> cons(nil, zWadr(z0, prefix(z0))) a__prefix(z0) -> prefix(z0) mark(app(z0, z1)) -> a__app(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(zWadr(z0, z1)) -> a__zWadr(mark(z0), mark(z1)) mark(prefix(z0)) -> a__prefix(mark(z0)) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) Rewrite Strategy: INNERMOST ---------------------------------------- (1) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: A__APP(nil, z0) -> c(MARK(z0)) A__APP(cons(z0, z1), z2) -> c1(MARK(z0)) A__APP(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ZWADR(nil, z0) -> c5 A__ZWADR(z0, nil) -> c6 A__ZWADR(cons(z0, z1), cons(z2, z3)) -> c7(A__APP(mark(z2), cons(mark(z0), nil)), MARK(z2)) A__ZWADR(cons(z0, z1), cons(z2, z3)) -> c8(A__APP(mark(z2), cons(mark(z0), nil)), MARK(z0)) A__ZWADR(z0, z1) -> c9 A__PREFIX(z0) -> c10 A__PREFIX(z0) -> c11 MARK(app(z0, z1)) -> c12(A__APP(mark(z0), mark(z1)), MARK(z0)) MARK(app(z0, z1)) -> c13(A__APP(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c14(A__FROM(mark(z0)), MARK(z0)) MARK(zWadr(z0, z1)) -> c15(A__ZWADR(mark(z0), mark(z1)), MARK(z0)) MARK(zWadr(z0, z1)) -> c16(A__ZWADR(mark(z0), mark(z1)), MARK(z1)) MARK(prefix(z0)) -> c17(A__PREFIX(mark(z0)), MARK(z0)) MARK(nil) -> c18 MARK(cons(z0, z1)) -> c19(MARK(z0)) MARK(s(z0)) -> c20(MARK(z0)) The (relative) TRS S consists of the following rules: a__app(nil, z0) -> mark(z0) a__app(cons(z0, z1), z2) -> cons(mark(z0), app(z1, z2)) a__app(z0, z1) -> app(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__zWadr(nil, z0) -> nil a__zWadr(z0, nil) -> nil a__zWadr(cons(z0, z1), cons(z2, z3)) -> cons(a__app(mark(z2), cons(mark(z0), nil)), zWadr(z1, z3)) a__zWadr(z0, z1) -> zWadr(z0, z1) a__prefix(z0) -> cons(nil, zWadr(z0, prefix(z0))) a__prefix(z0) -> prefix(z0) mark(app(z0, z1)) -> a__app(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(zWadr(z0, z1)) -> a__zWadr(mark(z0), mark(z1)) mark(prefix(z0)) -> a__prefix(mark(z0)) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) Rewrite Strategy: INNERMOST ---------------------------------------- (3) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: A__APP(nil, z0) -> c(MARK(z0)) A__APP(cons(z0, z1), z2) -> c1(MARK(z0)) A__APP(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ZWADR(nil, z0) -> c5 A__ZWADR(z0, nil) -> c6 A__ZWADR(cons(z0, z1), cons(z2, z3)) -> c7(A__APP(mark(z2), cons(mark(z0), nil)), MARK(z2)) A__ZWADR(cons(z0, z1), cons(z2, z3)) -> c8(A__APP(mark(z2), cons(mark(z0), nil)), MARK(z0)) A__ZWADR(z0, z1) -> c9 A__PREFIX(z0) -> c10 A__PREFIX(z0) -> c11 MARK(app(z0, z1)) -> c12(A__APP(mark(z0), mark(z1)), MARK(z0)) MARK(app(z0, z1)) -> c13(A__APP(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c14(A__FROM(mark(z0)), MARK(z0)) MARK(zWadr(z0, z1)) -> c15(A__ZWADR(mark(z0), mark(z1)), MARK(z0)) MARK(zWadr(z0, z1)) -> c16(A__ZWADR(mark(z0), mark(z1)), MARK(z1)) MARK(prefix(z0)) -> c17(A__PREFIX(mark(z0)), MARK(z0)) MARK(nil) -> c18 MARK(cons(z0, z1)) -> c19(MARK(z0)) MARK(s(z0)) -> c20(MARK(z0)) The (relative) TRS S consists of the following rules: a__app(nil, z0) -> mark(z0) a__app(cons(z0, z1), z2) -> cons(mark(z0), app(z1, z2)) a__app(z0, z1) -> app(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__zWadr(nil, z0) -> nil a__zWadr(z0, nil) -> nil a__zWadr(cons(z0, z1), cons(z2, z3)) -> cons(a__app(mark(z2), cons(mark(z0), nil)), zWadr(z1, z3)) a__zWadr(z0, z1) -> zWadr(z0, z1) a__prefix(z0) -> cons(nil, zWadr(z0, prefix(z0))) a__prefix(z0) -> prefix(z0) mark(app(z0, z1)) -> a__app(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(zWadr(z0, z1)) -> a__zWadr(mark(z0), mark(z1)) mark(prefix(z0)) -> a__prefix(mark(z0)) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) Rewrite Strategy: INNERMOST ---------------------------------------- (5) SlicingProof (LOWER BOUND(ID)) Sliced the following arguments: cons/1 ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: A__APP(nil, z0) -> c(MARK(z0)) A__APP(cons(z0), z2) -> c1(MARK(z0)) A__APP(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ZWADR(nil, z0) -> c5 A__ZWADR(z0, nil) -> c6 A__ZWADR(cons(z0), cons(z2)) -> c7(A__APP(mark(z2), cons(mark(z0))), MARK(z2)) A__ZWADR(cons(z0), cons(z2)) -> c8(A__APP(mark(z2), cons(mark(z0))), MARK(z0)) A__ZWADR(z0, z1) -> c9 A__PREFIX(z0) -> c10 A__PREFIX(z0) -> c11 MARK(app(z0, z1)) -> c12(A__APP(mark(z0), mark(z1)), MARK(z0)) MARK(app(z0, z1)) -> c13(A__APP(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c14(A__FROM(mark(z0)), MARK(z0)) MARK(zWadr(z0, z1)) -> c15(A__ZWADR(mark(z0), mark(z1)), MARK(z0)) MARK(zWadr(z0, z1)) -> c16(A__ZWADR(mark(z0), mark(z1)), MARK(z1)) MARK(prefix(z0)) -> c17(A__PREFIX(mark(z0)), MARK(z0)) MARK(nil) -> c18 MARK(cons(z0)) -> c19(MARK(z0)) MARK(s(z0)) -> c20(MARK(z0)) The (relative) TRS S consists of the following rules: a__app(nil, z0) -> mark(z0) a__app(cons(z0), z2) -> cons(mark(z0)) a__app(z0, z1) -> app(z0, z1) a__from(z0) -> cons(mark(z0)) a__from(z0) -> from(z0) a__zWadr(nil, z0) -> nil a__zWadr(z0, nil) -> nil a__zWadr(cons(z0), cons(z2)) -> cons(a__app(mark(z2), cons(mark(z0)))) a__zWadr(z0, z1) -> zWadr(z0, z1) a__prefix(z0) -> cons(nil) a__prefix(z0) -> prefix(z0) mark(app(z0, z1)) -> a__app(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(zWadr(z0, z1)) -> a__zWadr(mark(z0), mark(z1)) mark(prefix(z0)) -> a__prefix(mark(z0)) mark(nil) -> nil mark(cons(z0)) -> cons(mark(z0)) mark(s(z0)) -> s(mark(z0)) Rewrite Strategy: INNERMOST ---------------------------------------- (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (8) Obligation: Innermost TRS: Rules: A__APP(nil, z0) -> c(MARK(z0)) A__APP(cons(z0), z2) -> c1(MARK(z0)) A__APP(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ZWADR(nil, z0) -> c5 A__ZWADR(z0, nil) -> c6 A__ZWADR(cons(z0), cons(z2)) -> c7(A__APP(mark(z2), cons(mark(z0))), MARK(z2)) A__ZWADR(cons(z0), cons(z2)) -> c8(A__APP(mark(z2), cons(mark(z0))), MARK(z0)) A__ZWADR(z0, z1) -> c9 A__PREFIX(z0) -> c10 A__PREFIX(z0) -> c11 MARK(app(z0, z1)) -> c12(A__APP(mark(z0), mark(z1)), MARK(z0)) MARK(app(z0, z1)) -> c13(A__APP(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c14(A__FROM(mark(z0)), MARK(z0)) MARK(zWadr(z0, z1)) -> c15(A__ZWADR(mark(z0), mark(z1)), MARK(z0)) MARK(zWadr(z0, z1)) -> c16(A__ZWADR(mark(z0), mark(z1)), MARK(z1)) MARK(prefix(z0)) -> c17(A__PREFIX(mark(z0)), MARK(z0)) MARK(nil) -> c18 MARK(cons(z0)) -> c19(MARK(z0)) MARK(s(z0)) -> c20(MARK(z0)) a__app(nil, z0) -> mark(z0) a__app(cons(z0), z2) -> cons(mark(z0)) a__app(z0, z1) -> app(z0, z1) a__from(z0) -> cons(mark(z0)) a__from(z0) -> from(z0) a__zWadr(nil, z0) -> nil a__zWadr(z0, nil) -> nil a__zWadr(cons(z0), cons(z2)) -> cons(a__app(mark(z2), cons(mark(z0)))) a__zWadr(z0, z1) -> zWadr(z0, z1) a__prefix(z0) -> cons(nil) a__prefix(z0) -> prefix(z0) mark(app(z0, z1)) -> a__app(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(zWadr(z0, z1)) -> a__zWadr(mark(z0), mark(z1)) mark(prefix(z0)) -> a__prefix(mark(z0)) mark(nil) -> nil mark(cons(z0)) -> cons(mark(z0)) mark(s(z0)) -> s(mark(z0)) Types: A__APP :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> c:c1:c2 nil :: nil:cons:app:from:zWadr:prefix:s c :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 MARK :: nil:cons:app:from:zWadr:prefix:s -> c12:c13:c14:c15:c16:c17:c18:c19:c20 cons :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c1 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 c2 :: c:c1:c2 A__FROM :: nil:cons:app:from:zWadr:prefix:s -> c3:c4 c3 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c3:c4 c4 :: c3:c4 A__ZWADR :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> c5:c6:c7:c8:c9 c5 :: c5:c6:c7:c8:c9 c6 :: c5:c6:c7:c8:c9 c7 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7:c8:c9 mark :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c8 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7:c8:c9 c9 :: c5:c6:c7:c8:c9 A__PREFIX :: nil:cons:app:from:zWadr:prefix:s -> c10:c11 c10 :: c10:c11 c11 :: c10:c11 app :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c12 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c13 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 from :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c14 :: c3:c4 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 zWadr :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c15 :: c5:c6:c7:c8:c9 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c16 :: c5:c6:c7:c8:c9 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 prefix :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c17 :: c10:c11 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c18 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 c19 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 s :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c20 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 a__app :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__from :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__zWadr :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__prefix :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s hole_c:c1:c21_21 :: c:c1:c2 hole_nil:cons:app:from:zWadr:prefix:s2_21 :: nil:cons:app:from:zWadr:prefix:s hole_c12:c13:c14:c15:c16:c17:c18:c19:c203_21 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 hole_c3:c44_21 :: c3:c4 hole_c5:c6:c7:c8:c95_21 :: c5:c6:c7:c8:c9 hole_c10:c116_21 :: c10:c11 gen_nil:cons:app:from:zWadr:prefix:s7_21 :: Nat -> nil:cons:app:from:zWadr:prefix:s gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21 :: Nat -> c12:c13:c14:c15:c16:c17:c18:c19:c20 ---------------------------------------- (9) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: A__APP, MARK, A__FROM, mark, a__app, a__from They will be analysed ascendingly in the following order: A__APP = MARK A__APP = A__FROM MARK = A__FROM mark < MARK mark = a__app mark = a__from a__app = a__from ---------------------------------------- (10) Obligation: Innermost TRS: Rules: A__APP(nil, z0) -> c(MARK(z0)) A__APP(cons(z0), z2) -> c1(MARK(z0)) A__APP(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ZWADR(nil, z0) -> c5 A__ZWADR(z0, nil) -> c6 A__ZWADR(cons(z0), cons(z2)) -> c7(A__APP(mark(z2), cons(mark(z0))), MARK(z2)) A__ZWADR(cons(z0), cons(z2)) -> c8(A__APP(mark(z2), cons(mark(z0))), MARK(z0)) A__ZWADR(z0, z1) -> c9 A__PREFIX(z0) -> c10 A__PREFIX(z0) -> c11 MARK(app(z0, z1)) -> c12(A__APP(mark(z0), mark(z1)), MARK(z0)) MARK(app(z0, z1)) -> c13(A__APP(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c14(A__FROM(mark(z0)), MARK(z0)) MARK(zWadr(z0, z1)) -> c15(A__ZWADR(mark(z0), mark(z1)), MARK(z0)) MARK(zWadr(z0, z1)) -> c16(A__ZWADR(mark(z0), mark(z1)), MARK(z1)) MARK(prefix(z0)) -> c17(A__PREFIX(mark(z0)), MARK(z0)) MARK(nil) -> c18 MARK(cons(z0)) -> c19(MARK(z0)) MARK(s(z0)) -> c20(MARK(z0)) a__app(nil, z0) -> mark(z0) a__app(cons(z0), z2) -> cons(mark(z0)) a__app(z0, z1) -> app(z0, z1) a__from(z0) -> cons(mark(z0)) a__from(z0) -> from(z0) a__zWadr(nil, z0) -> nil a__zWadr(z0, nil) -> nil a__zWadr(cons(z0), cons(z2)) -> cons(a__app(mark(z2), cons(mark(z0)))) a__zWadr(z0, z1) -> zWadr(z0, z1) a__prefix(z0) -> cons(nil) a__prefix(z0) -> prefix(z0) mark(app(z0, z1)) -> a__app(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(zWadr(z0, z1)) -> a__zWadr(mark(z0), mark(z1)) mark(prefix(z0)) -> a__prefix(mark(z0)) mark(nil) -> nil mark(cons(z0)) -> cons(mark(z0)) mark(s(z0)) -> s(mark(z0)) Types: A__APP :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> c:c1:c2 nil :: nil:cons:app:from:zWadr:prefix:s c :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 MARK :: nil:cons:app:from:zWadr:prefix:s -> c12:c13:c14:c15:c16:c17:c18:c19:c20 cons :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c1 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 c2 :: c:c1:c2 A__FROM :: nil:cons:app:from:zWadr:prefix:s -> c3:c4 c3 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c3:c4 c4 :: c3:c4 A__ZWADR :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> c5:c6:c7:c8:c9 c5 :: c5:c6:c7:c8:c9 c6 :: c5:c6:c7:c8:c9 c7 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7:c8:c9 mark :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c8 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7:c8:c9 c9 :: c5:c6:c7:c8:c9 A__PREFIX :: nil:cons:app:from:zWadr:prefix:s -> c10:c11 c10 :: c10:c11 c11 :: c10:c11 app :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c12 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c13 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 from :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c14 :: c3:c4 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 zWadr :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c15 :: c5:c6:c7:c8:c9 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c16 :: c5:c6:c7:c8:c9 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 prefix :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c17 :: c10:c11 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c18 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 c19 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 s :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c20 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 a__app :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__from :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__zWadr :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__prefix :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s hole_c:c1:c21_21 :: c:c1:c2 hole_nil:cons:app:from:zWadr:prefix:s2_21 :: nil:cons:app:from:zWadr:prefix:s hole_c12:c13:c14:c15:c16:c17:c18:c19:c203_21 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 hole_c3:c44_21 :: c3:c4 hole_c5:c6:c7:c8:c95_21 :: c5:c6:c7:c8:c9 hole_c10:c116_21 :: c10:c11 gen_nil:cons:app:from:zWadr:prefix:s7_21 :: Nat -> nil:cons:app:from:zWadr:prefix:s gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21 :: Nat -> c12:c13:c14:c15:c16:c17:c18:c19:c20 Generator Equations: gen_nil:cons:app:from:zWadr:prefix:s7_21(0) <=> nil gen_nil:cons:app:from:zWadr:prefix:s7_21(+(x, 1)) <=> cons(gen_nil:cons:app:from:zWadr:prefix:s7_21(x)) gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21(0) <=> c18 gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21(+(x, 1)) <=> c12(c(c18), gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21(x)) The following defined symbols remain to be analysed: a__app, A__APP, MARK, A__FROM, mark, a__from They will be analysed ascendingly in the following order: A__APP = MARK A__APP = A__FROM MARK = A__FROM mark < MARK mark = a__app mark = a__from a__app = a__from ---------------------------------------- (11) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen_nil:cons:app:from:zWadr:prefix:s7_21(n36756_21)) -> gen_nil:cons:app:from:zWadr:prefix:s7_21(n36756_21), rt in Omega(0) Induction Base: mark(gen_nil:cons:app:from:zWadr:prefix:s7_21(0)) ->_R^Omega(0) nil Induction Step: mark(gen_nil:cons:app:from:zWadr:prefix:s7_21(+(n36756_21, 1))) ->_R^Omega(0) cons(mark(gen_nil:cons:app:from:zWadr:prefix:s7_21(n36756_21))) ->_IH cons(gen_nil:cons:app:from:zWadr:prefix:s7_21(c36757_21)) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (12) Obligation: Innermost TRS: Rules: A__APP(nil, z0) -> c(MARK(z0)) A__APP(cons(z0), z2) -> c1(MARK(z0)) A__APP(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ZWADR(nil, z0) -> c5 A__ZWADR(z0, nil) -> c6 A__ZWADR(cons(z0), cons(z2)) -> c7(A__APP(mark(z2), cons(mark(z0))), MARK(z2)) A__ZWADR(cons(z0), cons(z2)) -> c8(A__APP(mark(z2), cons(mark(z0))), MARK(z0)) A__ZWADR(z0, z1) -> c9 A__PREFIX(z0) -> c10 A__PREFIX(z0) -> c11 MARK(app(z0, z1)) -> c12(A__APP(mark(z0), mark(z1)), MARK(z0)) MARK(app(z0, z1)) -> c13(A__APP(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c14(A__FROM(mark(z0)), MARK(z0)) MARK(zWadr(z0, z1)) -> c15(A__ZWADR(mark(z0), mark(z1)), MARK(z0)) MARK(zWadr(z0, z1)) -> c16(A__ZWADR(mark(z0), mark(z1)), MARK(z1)) MARK(prefix(z0)) -> c17(A__PREFIX(mark(z0)), MARK(z0)) MARK(nil) -> c18 MARK(cons(z0)) -> c19(MARK(z0)) MARK(s(z0)) -> c20(MARK(z0)) a__app(nil, z0) -> mark(z0) a__app(cons(z0), z2) -> cons(mark(z0)) a__app(z0, z1) -> app(z0, z1) a__from(z0) -> cons(mark(z0)) a__from(z0) -> from(z0) a__zWadr(nil, z0) -> nil a__zWadr(z0, nil) -> nil a__zWadr(cons(z0), cons(z2)) -> cons(a__app(mark(z2), cons(mark(z0)))) a__zWadr(z0, z1) -> zWadr(z0, z1) a__prefix(z0) -> cons(nil) a__prefix(z0) -> prefix(z0) mark(app(z0, z1)) -> a__app(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(zWadr(z0, z1)) -> a__zWadr(mark(z0), mark(z1)) mark(prefix(z0)) -> a__prefix(mark(z0)) mark(nil) -> nil mark(cons(z0)) -> cons(mark(z0)) mark(s(z0)) -> s(mark(z0)) Types: A__APP :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> c:c1:c2 nil :: nil:cons:app:from:zWadr:prefix:s c :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 MARK :: nil:cons:app:from:zWadr:prefix:s -> c12:c13:c14:c15:c16:c17:c18:c19:c20 cons :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c1 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 c2 :: c:c1:c2 A__FROM :: nil:cons:app:from:zWadr:prefix:s -> c3:c4 c3 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c3:c4 c4 :: c3:c4 A__ZWADR :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> c5:c6:c7:c8:c9 c5 :: c5:c6:c7:c8:c9 c6 :: c5:c6:c7:c8:c9 c7 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7:c8:c9 mark :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c8 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7:c8:c9 c9 :: c5:c6:c7:c8:c9 A__PREFIX :: nil:cons:app:from:zWadr:prefix:s -> c10:c11 c10 :: c10:c11 c11 :: c10:c11 app :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c12 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c13 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 from :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c14 :: c3:c4 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 zWadr :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c15 :: c5:c6:c7:c8:c9 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c16 :: c5:c6:c7:c8:c9 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 prefix :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c17 :: c10:c11 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c18 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 c19 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 s :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c20 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 a__app :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__from :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__zWadr :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__prefix :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s hole_c:c1:c21_21 :: c:c1:c2 hole_nil:cons:app:from:zWadr:prefix:s2_21 :: nil:cons:app:from:zWadr:prefix:s hole_c12:c13:c14:c15:c16:c17:c18:c19:c203_21 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 hole_c3:c44_21 :: c3:c4 hole_c5:c6:c7:c8:c95_21 :: c5:c6:c7:c8:c9 hole_c10:c116_21 :: c10:c11 gen_nil:cons:app:from:zWadr:prefix:s7_21 :: Nat -> nil:cons:app:from:zWadr:prefix:s gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21 :: Nat -> c12:c13:c14:c15:c16:c17:c18:c19:c20 Lemmas: mark(gen_nil:cons:app:from:zWadr:prefix:s7_21(n36756_21)) -> gen_nil:cons:app:from:zWadr:prefix:s7_21(n36756_21), rt in Omega(0) Generator Equations: gen_nil:cons:app:from:zWadr:prefix:s7_21(0) <=> nil gen_nil:cons:app:from:zWadr:prefix:s7_21(+(x, 1)) <=> cons(gen_nil:cons:app:from:zWadr:prefix:s7_21(x)) gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21(0) <=> c18 gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21(+(x, 1)) <=> c12(c(c18), gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21(x)) The following defined symbols remain to be analysed: a__from, A__APP, MARK, A__FROM, a__app They will be analysed ascendingly in the following order: A__APP = MARK A__APP = A__FROM MARK = A__FROM mark < MARK mark = a__app mark = a__from a__app = a__from ---------------------------------------- (13) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: MARK(gen_nil:cons:app:from:zWadr:prefix:s7_21(+(1, n40049_21))) -> *9_21, rt in Omega(n40049_21) Induction Base: MARK(gen_nil:cons:app:from:zWadr:prefix:s7_21(+(1, 0))) Induction Step: MARK(gen_nil:cons:app:from:zWadr:prefix:s7_21(+(1, +(n40049_21, 1)))) ->_R^Omega(1) c19(MARK(gen_nil:cons:app:from:zWadr:prefix:s7_21(+(1, n40049_21)))) ->_IH c19(*9_21) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (14) Complex Obligation (BEST) ---------------------------------------- (15) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: A__APP(nil, z0) -> c(MARK(z0)) A__APP(cons(z0), z2) -> c1(MARK(z0)) A__APP(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ZWADR(nil, z0) -> c5 A__ZWADR(z0, nil) -> c6 A__ZWADR(cons(z0), cons(z2)) -> c7(A__APP(mark(z2), cons(mark(z0))), MARK(z2)) A__ZWADR(cons(z0), cons(z2)) -> c8(A__APP(mark(z2), cons(mark(z0))), MARK(z0)) A__ZWADR(z0, z1) -> c9 A__PREFIX(z0) -> c10 A__PREFIX(z0) -> c11 MARK(app(z0, z1)) -> c12(A__APP(mark(z0), mark(z1)), MARK(z0)) MARK(app(z0, z1)) -> c13(A__APP(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c14(A__FROM(mark(z0)), MARK(z0)) MARK(zWadr(z0, z1)) -> c15(A__ZWADR(mark(z0), mark(z1)), MARK(z0)) MARK(zWadr(z0, z1)) -> c16(A__ZWADR(mark(z0), mark(z1)), MARK(z1)) MARK(prefix(z0)) -> c17(A__PREFIX(mark(z0)), MARK(z0)) MARK(nil) -> c18 MARK(cons(z0)) -> c19(MARK(z0)) MARK(s(z0)) -> c20(MARK(z0)) a__app(nil, z0) -> mark(z0) a__app(cons(z0), z2) -> cons(mark(z0)) a__app(z0, z1) -> app(z0, z1) a__from(z0) -> cons(mark(z0)) a__from(z0) -> from(z0) a__zWadr(nil, z0) -> nil a__zWadr(z0, nil) -> nil a__zWadr(cons(z0), cons(z2)) -> cons(a__app(mark(z2), cons(mark(z0)))) a__zWadr(z0, z1) -> zWadr(z0, z1) a__prefix(z0) -> cons(nil) a__prefix(z0) -> prefix(z0) mark(app(z0, z1)) -> a__app(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(zWadr(z0, z1)) -> a__zWadr(mark(z0), mark(z1)) mark(prefix(z0)) -> a__prefix(mark(z0)) mark(nil) -> nil mark(cons(z0)) -> cons(mark(z0)) mark(s(z0)) -> s(mark(z0)) Types: A__APP :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> c:c1:c2 nil :: nil:cons:app:from:zWadr:prefix:s c :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 MARK :: nil:cons:app:from:zWadr:prefix:s -> c12:c13:c14:c15:c16:c17:c18:c19:c20 cons :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c1 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 c2 :: c:c1:c2 A__FROM :: nil:cons:app:from:zWadr:prefix:s -> c3:c4 c3 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c3:c4 c4 :: c3:c4 A__ZWADR :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> c5:c6:c7:c8:c9 c5 :: c5:c6:c7:c8:c9 c6 :: c5:c6:c7:c8:c9 c7 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7:c8:c9 mark :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c8 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7:c8:c9 c9 :: c5:c6:c7:c8:c9 A__PREFIX :: nil:cons:app:from:zWadr:prefix:s -> c10:c11 c10 :: c10:c11 c11 :: c10:c11 app :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c12 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c13 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 from :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c14 :: c3:c4 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 zWadr :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c15 :: c5:c6:c7:c8:c9 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c16 :: c5:c6:c7:c8:c9 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 prefix :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c17 :: c10:c11 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c18 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 c19 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 s :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c20 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 a__app :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__from :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__zWadr :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__prefix :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s hole_c:c1:c21_21 :: c:c1:c2 hole_nil:cons:app:from:zWadr:prefix:s2_21 :: nil:cons:app:from:zWadr:prefix:s hole_c12:c13:c14:c15:c16:c17:c18:c19:c203_21 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 hole_c3:c44_21 :: c3:c4 hole_c5:c6:c7:c8:c95_21 :: c5:c6:c7:c8:c9 hole_c10:c116_21 :: c10:c11 gen_nil:cons:app:from:zWadr:prefix:s7_21 :: Nat -> nil:cons:app:from:zWadr:prefix:s gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21 :: Nat -> c12:c13:c14:c15:c16:c17:c18:c19:c20 Lemmas: mark(gen_nil:cons:app:from:zWadr:prefix:s7_21(n36756_21)) -> gen_nil:cons:app:from:zWadr:prefix:s7_21(n36756_21), rt in Omega(0) Generator Equations: gen_nil:cons:app:from:zWadr:prefix:s7_21(0) <=> nil gen_nil:cons:app:from:zWadr:prefix:s7_21(+(x, 1)) <=> cons(gen_nil:cons:app:from:zWadr:prefix:s7_21(x)) gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21(0) <=> c18 gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21(+(x, 1)) <=> c12(c(c18), gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21(x)) The following defined symbols remain to be analysed: MARK, A__APP, A__FROM They will be analysed ascendingly in the following order: A__APP = MARK A__APP = A__FROM MARK = A__FROM ---------------------------------------- (16) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (17) BOUNDS(n^1, INF) ---------------------------------------- (18) Obligation: Innermost TRS: Rules: A__APP(nil, z0) -> c(MARK(z0)) A__APP(cons(z0), z2) -> c1(MARK(z0)) A__APP(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ZWADR(nil, z0) -> c5 A__ZWADR(z0, nil) -> c6 A__ZWADR(cons(z0), cons(z2)) -> c7(A__APP(mark(z2), cons(mark(z0))), MARK(z2)) A__ZWADR(cons(z0), cons(z2)) -> c8(A__APP(mark(z2), cons(mark(z0))), MARK(z0)) A__ZWADR(z0, z1) -> c9 A__PREFIX(z0) -> c10 A__PREFIX(z0) -> c11 MARK(app(z0, z1)) -> c12(A__APP(mark(z0), mark(z1)), MARK(z0)) MARK(app(z0, z1)) -> c13(A__APP(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c14(A__FROM(mark(z0)), MARK(z0)) MARK(zWadr(z0, z1)) -> c15(A__ZWADR(mark(z0), mark(z1)), MARK(z0)) MARK(zWadr(z0, z1)) -> c16(A__ZWADR(mark(z0), mark(z1)), MARK(z1)) MARK(prefix(z0)) -> c17(A__PREFIX(mark(z0)), MARK(z0)) MARK(nil) -> c18 MARK(cons(z0)) -> c19(MARK(z0)) MARK(s(z0)) -> c20(MARK(z0)) a__app(nil, z0) -> mark(z0) a__app(cons(z0), z2) -> cons(mark(z0)) a__app(z0, z1) -> app(z0, z1) a__from(z0) -> cons(mark(z0)) a__from(z0) -> from(z0) a__zWadr(nil, z0) -> nil a__zWadr(z0, nil) -> nil a__zWadr(cons(z0), cons(z2)) -> cons(a__app(mark(z2), cons(mark(z0)))) a__zWadr(z0, z1) -> zWadr(z0, z1) a__prefix(z0) -> cons(nil) a__prefix(z0) -> prefix(z0) mark(app(z0, z1)) -> a__app(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(zWadr(z0, z1)) -> a__zWadr(mark(z0), mark(z1)) mark(prefix(z0)) -> a__prefix(mark(z0)) mark(nil) -> nil mark(cons(z0)) -> cons(mark(z0)) mark(s(z0)) -> s(mark(z0)) Types: A__APP :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> c:c1:c2 nil :: nil:cons:app:from:zWadr:prefix:s c :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 MARK :: nil:cons:app:from:zWadr:prefix:s -> c12:c13:c14:c15:c16:c17:c18:c19:c20 cons :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c1 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 c2 :: c:c1:c2 A__FROM :: nil:cons:app:from:zWadr:prefix:s -> c3:c4 c3 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c3:c4 c4 :: c3:c4 A__ZWADR :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> c5:c6:c7:c8:c9 c5 :: c5:c6:c7:c8:c9 c6 :: c5:c6:c7:c8:c9 c7 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7:c8:c9 mark :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c8 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7:c8:c9 c9 :: c5:c6:c7:c8:c9 A__PREFIX :: nil:cons:app:from:zWadr:prefix:s -> c10:c11 c10 :: c10:c11 c11 :: c10:c11 app :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c12 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c13 :: c:c1:c2 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 from :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c14 :: c3:c4 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 zWadr :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c15 :: c5:c6:c7:c8:c9 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c16 :: c5:c6:c7:c8:c9 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 prefix :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c17 :: c10:c11 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 c18 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 c19 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 s :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s c20 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c12:c13:c14:c15:c16:c17:c18:c19:c20 a__app :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__from :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__zWadr :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s a__prefix :: nil:cons:app:from:zWadr:prefix:s -> nil:cons:app:from:zWadr:prefix:s hole_c:c1:c21_21 :: c:c1:c2 hole_nil:cons:app:from:zWadr:prefix:s2_21 :: nil:cons:app:from:zWadr:prefix:s hole_c12:c13:c14:c15:c16:c17:c18:c19:c203_21 :: c12:c13:c14:c15:c16:c17:c18:c19:c20 hole_c3:c44_21 :: c3:c4 hole_c5:c6:c7:c8:c95_21 :: c5:c6:c7:c8:c9 hole_c10:c116_21 :: c10:c11 gen_nil:cons:app:from:zWadr:prefix:s7_21 :: Nat -> nil:cons:app:from:zWadr:prefix:s gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21 :: Nat -> c12:c13:c14:c15:c16:c17:c18:c19:c20 Lemmas: mark(gen_nil:cons:app:from:zWadr:prefix:s7_21(n36756_21)) -> gen_nil:cons:app:from:zWadr:prefix:s7_21(n36756_21), rt in Omega(0) MARK(gen_nil:cons:app:from:zWadr:prefix:s7_21(+(1, n40049_21))) -> *9_21, rt in Omega(n40049_21) Generator Equations: gen_nil:cons:app:from:zWadr:prefix:s7_21(0) <=> nil gen_nil:cons:app:from:zWadr:prefix:s7_21(+(x, 1)) <=> cons(gen_nil:cons:app:from:zWadr:prefix:s7_21(x)) gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21(0) <=> c18 gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21(+(x, 1)) <=> c12(c(c18), gen_c12:c13:c14:c15:c16:c17:c18:c19:c208_21(x)) The following defined symbols remain to be analysed: A__APP, A__FROM They will be analysed ascendingly in the following order: A__APP = MARK A__APP = A__FROM MARK = A__FROM