WORST_CASE(Omega(n^1),?) proof of /export/starexec/sandbox2/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) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (4) typed CpxTrs (5) OrderProof [LOWER BOUND(ID), 0 ms] (6) typed CpxTrs (7) RewriteLemmaProof [LOWER BOUND(ID), 334 ms] (8) BEST (9) proven lower bound (10) LowerBoundPropagationProof [FINISHED, 0 ms] (11) BOUNDS(n^1, INF) (12) typed CpxTrs (13) RewriteLemmaProof [LOWER BOUND(ID), 178 ms] (14) typed CpxTrs (15) RewriteLemmaProof [LOWER BOUND(ID), 74 ms] (16) typed CpxTrs (17) RewriteLemmaProof [LOWER BOUND(ID), 2082 ms] (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: APP(nil, z0) -> c APP(cons(z0, z1), z2) -> c1(APP(z1, z2)) FROM(z0) -> c2(FROM(s(z0))) ZWADR(nil, z0) -> c3 ZWADR(z0, nil) -> c4 ZWADR(cons(z0, z1), cons(z2, z3)) -> c5(APP(z2, cons(z0, nil))) ZWADR(cons(z0, z1), cons(z2, z3)) -> c6(ZWADR(z1, z3)) PREFIX(z0) -> c7(ZWADR(z0, prefix(z0)), PREFIX(z0)) The (relative) TRS S consists of the following rules: app(nil, z0) -> z0 app(cons(z0, z1), z2) -> cons(z0, app(z1, z2)) from(z0) -> cons(z0, from(s(z0))) zWadr(nil, z0) -> nil zWadr(z0, nil) -> nil zWadr(cons(z0, z1), cons(z2, z3)) -> cons(app(z2, cons(z0, nil)), zWadr(z1, z3)) prefix(z0) -> cons(nil, zWadr(z0, prefix(z0))) Rewrite Strategy: INNERMOST ---------------------------------------- (1) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (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: APP(nil, z0) -> c APP(cons(z0, z1), z2) -> c1(APP(z1, z2)) FROM(z0) -> c2(FROM(s(z0))) ZWADR(nil, z0) -> c3 ZWADR(z0, nil) -> c4 ZWADR(cons(z0, z1), cons(z2, z3)) -> c5(APP(z2, cons(z0, nil))) ZWADR(cons(z0, z1), cons(z2, z3)) -> c6(ZWADR(z1, z3)) PREFIX(z0) -> c7(ZWADR(z0, prefix(z0)), PREFIX(z0)) The (relative) TRS S consists of the following rules: app(nil, z0) -> z0 app(cons(z0, z1), z2) -> cons(z0, app(z1, z2)) from(z0) -> cons(z0, from(s(z0))) zWadr(nil, z0) -> nil zWadr(z0, nil) -> nil zWadr(cons(z0, z1), cons(z2, z3)) -> cons(app(z2, cons(z0, nil)), zWadr(z1, z3)) prefix(z0) -> cons(nil, zWadr(z0, prefix(z0))) Rewrite Strategy: INNERMOST ---------------------------------------- (3) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (4) Obligation: Innermost TRS: Rules: APP(nil, z0) -> c APP(cons(z0, z1), z2) -> c1(APP(z1, z2)) FROM(z0) -> c2(FROM(s(z0))) ZWADR(nil, z0) -> c3 ZWADR(z0, nil) -> c4 ZWADR(cons(z0, z1), cons(z2, z3)) -> c5(APP(z2, cons(z0, nil))) ZWADR(cons(z0, z1), cons(z2, z3)) -> c6(ZWADR(z1, z3)) PREFIX(z0) -> c7(ZWADR(z0, prefix(z0)), PREFIX(z0)) app(nil, z0) -> z0 app(cons(z0, z1), z2) -> cons(z0, app(z1, z2)) from(z0) -> cons(z0, from(s(z0))) zWadr(nil, z0) -> nil zWadr(z0, nil) -> nil zWadr(cons(z0, z1), cons(z2, z3)) -> cons(app(z2, cons(z0, nil)), zWadr(z1, z3)) prefix(z0) -> cons(nil, zWadr(z0, prefix(z0))) Types: APP :: nil:cons:s -> nil:cons:s -> c:c1 nil :: nil:cons:s c :: c:c1 cons :: nil:cons:s -> nil:cons:s -> nil:cons:s c1 :: c:c1 -> c:c1 FROM :: nil:cons:s -> c2 c2 :: c2 -> c2 s :: nil:cons:s -> nil:cons:s ZWADR :: nil:cons:s -> nil:cons:s -> c3:c4:c5:c6 c3 :: c3:c4:c5:c6 c4 :: c3:c4:c5:c6 c5 :: c:c1 -> c3:c4:c5:c6 c6 :: c3:c4:c5:c6 -> c3:c4:c5:c6 PREFIX :: nil:cons:s -> c7 c7 :: c3:c4:c5:c6 -> c7 -> c7 prefix :: nil:cons:s -> nil:cons:s app :: nil:cons:s -> nil:cons:s -> nil:cons:s from :: nil:cons:s -> nil:cons:s zWadr :: nil:cons:s -> nil:cons:s -> nil:cons:s hole_c:c11_8 :: c:c1 hole_nil:cons:s2_8 :: nil:cons:s hole_c23_8 :: c2 hole_c3:c4:c5:c64_8 :: c3:c4:c5:c6 hole_c75_8 :: c7 gen_c:c16_8 :: Nat -> c:c1 gen_nil:cons:s7_8 :: Nat -> nil:cons:s gen_c28_8 :: Nat -> c2 gen_c3:c4:c5:c69_8 :: Nat -> c3:c4:c5:c6 gen_c710_8 :: Nat -> c7 ---------------------------------------- (5) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: APP, FROM, ZWADR, PREFIX, prefix, app, from, zWadr They will be analysed ascendingly in the following order: APP < ZWADR ZWADR < PREFIX prefix < PREFIX zWadr < prefix app < zWadr ---------------------------------------- (6) Obligation: Innermost TRS: Rules: APP(nil, z0) -> c APP(cons(z0, z1), z2) -> c1(APP(z1, z2)) FROM(z0) -> c2(FROM(s(z0))) ZWADR(nil, z0) -> c3 ZWADR(z0, nil) -> c4 ZWADR(cons(z0, z1), cons(z2, z3)) -> c5(APP(z2, cons(z0, nil))) ZWADR(cons(z0, z1), cons(z2, z3)) -> c6(ZWADR(z1, z3)) PREFIX(z0) -> c7(ZWADR(z0, prefix(z0)), PREFIX(z0)) app(nil, z0) -> z0 app(cons(z0, z1), z2) -> cons(z0, app(z1, z2)) from(z0) -> cons(z0, from(s(z0))) zWadr(nil, z0) -> nil zWadr(z0, nil) -> nil zWadr(cons(z0, z1), cons(z2, z3)) -> cons(app(z2, cons(z0, nil)), zWadr(z1, z3)) prefix(z0) -> cons(nil, zWadr(z0, prefix(z0))) Types: APP :: nil:cons:s -> nil:cons:s -> c:c1 nil :: nil:cons:s c :: c:c1 cons :: nil:cons:s -> nil:cons:s -> nil:cons:s c1 :: c:c1 -> c:c1 FROM :: nil:cons:s -> c2 c2 :: c2 -> c2 s :: nil:cons:s -> nil:cons:s ZWADR :: nil:cons:s -> nil:cons:s -> c3:c4:c5:c6 c3 :: c3:c4:c5:c6 c4 :: c3:c4:c5:c6 c5 :: c:c1 -> c3:c4:c5:c6 c6 :: c3:c4:c5:c6 -> c3:c4:c5:c6 PREFIX :: nil:cons:s -> c7 c7 :: c3:c4:c5:c6 -> c7 -> c7 prefix :: nil:cons:s -> nil:cons:s app :: nil:cons:s -> nil:cons:s -> nil:cons:s from :: nil:cons:s -> nil:cons:s zWadr :: nil:cons:s -> nil:cons:s -> nil:cons:s hole_c:c11_8 :: c:c1 hole_nil:cons:s2_8 :: nil:cons:s hole_c23_8 :: c2 hole_c3:c4:c5:c64_8 :: c3:c4:c5:c6 hole_c75_8 :: c7 gen_c:c16_8 :: Nat -> c:c1 gen_nil:cons:s7_8 :: Nat -> nil:cons:s gen_c28_8 :: Nat -> c2 gen_c3:c4:c5:c69_8 :: Nat -> c3:c4:c5:c6 gen_c710_8 :: Nat -> c7 Generator Equations: gen_c:c16_8(0) <=> c gen_c:c16_8(+(x, 1)) <=> c1(gen_c:c16_8(x)) gen_nil:cons:s7_8(0) <=> nil gen_nil:cons:s7_8(+(x, 1)) <=> cons(nil, gen_nil:cons:s7_8(x)) gen_c28_8(0) <=> hole_c23_8 gen_c28_8(+(x, 1)) <=> c2(gen_c28_8(x)) gen_c3:c4:c5:c69_8(0) <=> c3 gen_c3:c4:c5:c69_8(+(x, 1)) <=> c6(gen_c3:c4:c5:c69_8(x)) gen_c710_8(0) <=> hole_c75_8 gen_c710_8(+(x, 1)) <=> c7(c3, gen_c710_8(x)) The following defined symbols remain to be analysed: APP, FROM, ZWADR, PREFIX, prefix, app, from, zWadr They will be analysed ascendingly in the following order: APP < ZWADR ZWADR < PREFIX prefix < PREFIX zWadr < prefix app < zWadr ---------------------------------------- (7) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: APP(gen_nil:cons:s7_8(n12_8), gen_nil:cons:s7_8(b)) -> gen_c:c16_8(n12_8), rt in Omega(1 + n12_8) Induction Base: APP(gen_nil:cons:s7_8(0), gen_nil:cons:s7_8(b)) ->_R^Omega(1) c Induction Step: APP(gen_nil:cons:s7_8(+(n12_8, 1)), gen_nil:cons:s7_8(b)) ->_R^Omega(1) c1(APP(gen_nil:cons:s7_8(n12_8), gen_nil:cons:s7_8(b))) ->_IH c1(gen_c:c16_8(c13_8)) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (8) Complex Obligation (BEST) ---------------------------------------- (9) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: APP(nil, z0) -> c APP(cons(z0, z1), z2) -> c1(APP(z1, z2)) FROM(z0) -> c2(FROM(s(z0))) ZWADR(nil, z0) -> c3 ZWADR(z0, nil) -> c4 ZWADR(cons(z0, z1), cons(z2, z3)) -> c5(APP(z2, cons(z0, nil))) ZWADR(cons(z0, z1), cons(z2, z3)) -> c6(ZWADR(z1, z3)) PREFIX(z0) -> c7(ZWADR(z0, prefix(z0)), PREFIX(z0)) app(nil, z0) -> z0 app(cons(z0, z1), z2) -> cons(z0, app(z1, z2)) from(z0) -> cons(z0, from(s(z0))) zWadr(nil, z0) -> nil zWadr(z0, nil) -> nil zWadr(cons(z0, z1), cons(z2, z3)) -> cons(app(z2, cons(z0, nil)), zWadr(z1, z3)) prefix(z0) -> cons(nil, zWadr(z0, prefix(z0))) Types: APP :: nil:cons:s -> nil:cons:s -> c:c1 nil :: nil:cons:s c :: c:c1 cons :: nil:cons:s -> nil:cons:s -> nil:cons:s c1 :: c:c1 -> c:c1 FROM :: nil:cons:s -> c2 c2 :: c2 -> c2 s :: nil:cons:s -> nil:cons:s ZWADR :: nil:cons:s -> nil:cons:s -> c3:c4:c5:c6 c3 :: c3:c4:c5:c6 c4 :: c3:c4:c5:c6 c5 :: c:c1 -> c3:c4:c5:c6 c6 :: c3:c4:c5:c6 -> c3:c4:c5:c6 PREFIX :: nil:cons:s -> c7 c7 :: c3:c4:c5:c6 -> c7 -> c7 prefix :: nil:cons:s -> nil:cons:s app :: nil:cons:s -> nil:cons:s -> nil:cons:s from :: nil:cons:s -> nil:cons:s zWadr :: nil:cons:s -> nil:cons:s -> nil:cons:s hole_c:c11_8 :: c:c1 hole_nil:cons:s2_8 :: nil:cons:s hole_c23_8 :: c2 hole_c3:c4:c5:c64_8 :: c3:c4:c5:c6 hole_c75_8 :: c7 gen_c:c16_8 :: Nat -> c:c1 gen_nil:cons:s7_8 :: Nat -> nil:cons:s gen_c28_8 :: Nat -> c2 gen_c3:c4:c5:c69_8 :: Nat -> c3:c4:c5:c6 gen_c710_8 :: Nat -> c7 Generator Equations: gen_c:c16_8(0) <=> c gen_c:c16_8(+(x, 1)) <=> c1(gen_c:c16_8(x)) gen_nil:cons:s7_8(0) <=> nil gen_nil:cons:s7_8(+(x, 1)) <=> cons(nil, gen_nil:cons:s7_8(x)) gen_c28_8(0) <=> hole_c23_8 gen_c28_8(+(x, 1)) <=> c2(gen_c28_8(x)) gen_c3:c4:c5:c69_8(0) <=> c3 gen_c3:c4:c5:c69_8(+(x, 1)) <=> c6(gen_c3:c4:c5:c69_8(x)) gen_c710_8(0) <=> hole_c75_8 gen_c710_8(+(x, 1)) <=> c7(c3, gen_c710_8(x)) The following defined symbols remain to be analysed: APP, FROM, ZWADR, PREFIX, prefix, app, from, zWadr They will be analysed ascendingly in the following order: APP < ZWADR ZWADR < PREFIX prefix < PREFIX zWadr < prefix app < zWadr ---------------------------------------- (10) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (11) BOUNDS(n^1, INF) ---------------------------------------- (12) Obligation: Innermost TRS: Rules: APP(nil, z0) -> c APP(cons(z0, z1), z2) -> c1(APP(z1, z2)) FROM(z0) -> c2(FROM(s(z0))) ZWADR(nil, z0) -> c3 ZWADR(z0, nil) -> c4 ZWADR(cons(z0, z1), cons(z2, z3)) -> c5(APP(z2, cons(z0, nil))) ZWADR(cons(z0, z1), cons(z2, z3)) -> c6(ZWADR(z1, z3)) PREFIX(z0) -> c7(ZWADR(z0, prefix(z0)), PREFIX(z0)) app(nil, z0) -> z0 app(cons(z0, z1), z2) -> cons(z0, app(z1, z2)) from(z0) -> cons(z0, from(s(z0))) zWadr(nil, z0) -> nil zWadr(z0, nil) -> nil zWadr(cons(z0, z1), cons(z2, z3)) -> cons(app(z2, cons(z0, nil)), zWadr(z1, z3)) prefix(z0) -> cons(nil, zWadr(z0, prefix(z0))) Types: APP :: nil:cons:s -> nil:cons:s -> c:c1 nil :: nil:cons:s c :: c:c1 cons :: nil:cons:s -> nil:cons:s -> nil:cons:s c1 :: c:c1 -> c:c1 FROM :: nil:cons:s -> c2 c2 :: c2 -> c2 s :: nil:cons:s -> nil:cons:s ZWADR :: nil:cons:s -> nil:cons:s -> c3:c4:c5:c6 c3 :: c3:c4:c5:c6 c4 :: c3:c4:c5:c6 c5 :: c:c1 -> c3:c4:c5:c6 c6 :: c3:c4:c5:c6 -> c3:c4:c5:c6 PREFIX :: nil:cons:s -> c7 c7 :: c3:c4:c5:c6 -> c7 -> c7 prefix :: nil:cons:s -> nil:cons:s app :: nil:cons:s -> nil:cons:s -> nil:cons:s from :: nil:cons:s -> nil:cons:s zWadr :: nil:cons:s -> nil:cons:s -> nil:cons:s hole_c:c11_8 :: c:c1 hole_nil:cons:s2_8 :: nil:cons:s hole_c23_8 :: c2 hole_c3:c4:c5:c64_8 :: c3:c4:c5:c6 hole_c75_8 :: c7 gen_c:c16_8 :: Nat -> c:c1 gen_nil:cons:s7_8 :: Nat -> nil:cons:s gen_c28_8 :: Nat -> c2 gen_c3:c4:c5:c69_8 :: Nat -> c3:c4:c5:c6 gen_c710_8 :: Nat -> c7 Lemmas: APP(gen_nil:cons:s7_8(n12_8), gen_nil:cons:s7_8(b)) -> gen_c:c16_8(n12_8), rt in Omega(1 + n12_8) Generator Equations: gen_c:c16_8(0) <=> c gen_c:c16_8(+(x, 1)) <=> c1(gen_c:c16_8(x)) gen_nil:cons:s7_8(0) <=> nil gen_nil:cons:s7_8(+(x, 1)) <=> cons(nil, gen_nil:cons:s7_8(x)) gen_c28_8(0) <=> hole_c23_8 gen_c28_8(+(x, 1)) <=> c2(gen_c28_8(x)) gen_c3:c4:c5:c69_8(0) <=> c3 gen_c3:c4:c5:c69_8(+(x, 1)) <=> c6(gen_c3:c4:c5:c69_8(x)) gen_c710_8(0) <=> hole_c75_8 gen_c710_8(+(x, 1)) <=> c7(c3, gen_c710_8(x)) The following defined symbols remain to be analysed: FROM, ZWADR, PREFIX, prefix, app, from, zWadr They will be analysed ascendingly in the following order: ZWADR < PREFIX prefix < PREFIX zWadr < prefix app < zWadr ---------------------------------------- (13) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: ZWADR(gen_nil:cons:s7_8(n632_8), gen_nil:cons:s7_8(n632_8)) -> gen_c3:c4:c5:c69_8(n632_8), rt in Omega(1 + n632_8) Induction Base: ZWADR(gen_nil:cons:s7_8(0), gen_nil:cons:s7_8(0)) ->_R^Omega(1) c3 Induction Step: ZWADR(gen_nil:cons:s7_8(+(n632_8, 1)), gen_nil:cons:s7_8(+(n632_8, 1))) ->_R^Omega(1) c6(ZWADR(gen_nil:cons:s7_8(n632_8), gen_nil:cons:s7_8(n632_8))) ->_IH c6(gen_c3:c4:c5:c69_8(c633_8)) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (14) Obligation: Innermost TRS: Rules: APP(nil, z0) -> c APP(cons(z0, z1), z2) -> c1(APP(z1, z2)) FROM(z0) -> c2(FROM(s(z0))) ZWADR(nil, z0) -> c3 ZWADR(z0, nil) -> c4 ZWADR(cons(z0, z1), cons(z2, z3)) -> c5(APP(z2, cons(z0, nil))) ZWADR(cons(z0, z1), cons(z2, z3)) -> c6(ZWADR(z1, z3)) PREFIX(z0) -> c7(ZWADR(z0, prefix(z0)), PREFIX(z0)) app(nil, z0) -> z0 app(cons(z0, z1), z2) -> cons(z0, app(z1, z2)) from(z0) -> cons(z0, from(s(z0))) zWadr(nil, z0) -> nil zWadr(z0, nil) -> nil zWadr(cons(z0, z1), cons(z2, z3)) -> cons(app(z2, cons(z0, nil)), zWadr(z1, z3)) prefix(z0) -> cons(nil, zWadr(z0, prefix(z0))) Types: APP :: nil:cons:s -> nil:cons:s -> c:c1 nil :: nil:cons:s c :: c:c1 cons :: nil:cons:s -> nil:cons:s -> nil:cons:s c1 :: c:c1 -> c:c1 FROM :: nil:cons:s -> c2 c2 :: c2 -> c2 s :: nil:cons:s -> nil:cons:s ZWADR :: nil:cons:s -> nil:cons:s -> c3:c4:c5:c6 c3 :: c3:c4:c5:c6 c4 :: c3:c4:c5:c6 c5 :: c:c1 -> c3:c4:c5:c6 c6 :: c3:c4:c5:c6 -> c3:c4:c5:c6 PREFIX :: nil:cons:s -> c7 c7 :: c3:c4:c5:c6 -> c7 -> c7 prefix :: nil:cons:s -> nil:cons:s app :: nil:cons:s -> nil:cons:s -> nil:cons:s from :: nil:cons:s -> nil:cons:s zWadr :: nil:cons:s -> nil:cons:s -> nil:cons:s hole_c:c11_8 :: c:c1 hole_nil:cons:s2_8 :: nil:cons:s hole_c23_8 :: c2 hole_c3:c4:c5:c64_8 :: c3:c4:c5:c6 hole_c75_8 :: c7 gen_c:c16_8 :: Nat -> c:c1 gen_nil:cons:s7_8 :: Nat -> nil:cons:s gen_c28_8 :: Nat -> c2 gen_c3:c4:c5:c69_8 :: Nat -> c3:c4:c5:c6 gen_c710_8 :: Nat -> c7 Lemmas: APP(gen_nil:cons:s7_8(n12_8), gen_nil:cons:s7_8(b)) -> gen_c:c16_8(n12_8), rt in Omega(1 + n12_8) ZWADR(gen_nil:cons:s7_8(n632_8), gen_nil:cons:s7_8(n632_8)) -> gen_c3:c4:c5:c69_8(n632_8), rt in Omega(1 + n632_8) Generator Equations: gen_c:c16_8(0) <=> c gen_c:c16_8(+(x, 1)) <=> c1(gen_c:c16_8(x)) gen_nil:cons:s7_8(0) <=> nil gen_nil:cons:s7_8(+(x, 1)) <=> cons(nil, gen_nil:cons:s7_8(x)) gen_c28_8(0) <=> hole_c23_8 gen_c28_8(+(x, 1)) <=> c2(gen_c28_8(x)) gen_c3:c4:c5:c69_8(0) <=> c3 gen_c3:c4:c5:c69_8(+(x, 1)) <=> c6(gen_c3:c4:c5:c69_8(x)) gen_c710_8(0) <=> hole_c75_8 gen_c710_8(+(x, 1)) <=> c7(c3, gen_c710_8(x)) The following defined symbols remain to be analysed: app, PREFIX, prefix, from, zWadr They will be analysed ascendingly in the following order: prefix < PREFIX zWadr < prefix app < zWadr ---------------------------------------- (15) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: app(gen_nil:cons:s7_8(n1521_8), gen_nil:cons:s7_8(b)) -> gen_nil:cons:s7_8(+(n1521_8, b)), rt in Omega(0) Induction Base: app(gen_nil:cons:s7_8(0), gen_nil:cons:s7_8(b)) ->_R^Omega(0) gen_nil:cons:s7_8(b) Induction Step: app(gen_nil:cons:s7_8(+(n1521_8, 1)), gen_nil:cons:s7_8(b)) ->_R^Omega(0) cons(nil, app(gen_nil:cons:s7_8(n1521_8), gen_nil:cons:s7_8(b))) ->_IH cons(nil, gen_nil:cons:s7_8(+(b, c1522_8))) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (16) Obligation: Innermost TRS: Rules: APP(nil, z0) -> c APP(cons(z0, z1), z2) -> c1(APP(z1, z2)) FROM(z0) -> c2(FROM(s(z0))) ZWADR(nil, z0) -> c3 ZWADR(z0, nil) -> c4 ZWADR(cons(z0, z1), cons(z2, z3)) -> c5(APP(z2, cons(z0, nil))) ZWADR(cons(z0, z1), cons(z2, z3)) -> c6(ZWADR(z1, z3)) PREFIX(z0) -> c7(ZWADR(z0, prefix(z0)), PREFIX(z0)) app(nil, z0) -> z0 app(cons(z0, z1), z2) -> cons(z0, app(z1, z2)) from(z0) -> cons(z0, from(s(z0))) zWadr(nil, z0) -> nil zWadr(z0, nil) -> nil zWadr(cons(z0, z1), cons(z2, z3)) -> cons(app(z2, cons(z0, nil)), zWadr(z1, z3)) prefix(z0) -> cons(nil, zWadr(z0, prefix(z0))) Types: APP :: nil:cons:s -> nil:cons:s -> c:c1 nil :: nil:cons:s c :: c:c1 cons :: nil:cons:s -> nil:cons:s -> nil:cons:s c1 :: c:c1 -> c:c1 FROM :: nil:cons:s -> c2 c2 :: c2 -> c2 s :: nil:cons:s -> nil:cons:s ZWADR :: nil:cons:s -> nil:cons:s -> c3:c4:c5:c6 c3 :: c3:c4:c5:c6 c4 :: c3:c4:c5:c6 c5 :: c:c1 -> c3:c4:c5:c6 c6 :: c3:c4:c5:c6 -> c3:c4:c5:c6 PREFIX :: nil:cons:s -> c7 c7 :: c3:c4:c5:c6 -> c7 -> c7 prefix :: nil:cons:s -> nil:cons:s app :: nil:cons:s -> nil:cons:s -> nil:cons:s from :: nil:cons:s -> nil:cons:s zWadr :: nil:cons:s -> nil:cons:s -> nil:cons:s hole_c:c11_8 :: c:c1 hole_nil:cons:s2_8 :: nil:cons:s hole_c23_8 :: c2 hole_c3:c4:c5:c64_8 :: c3:c4:c5:c6 hole_c75_8 :: c7 gen_c:c16_8 :: Nat -> c:c1 gen_nil:cons:s7_8 :: Nat -> nil:cons:s gen_c28_8 :: Nat -> c2 gen_c3:c4:c5:c69_8 :: Nat -> c3:c4:c5:c6 gen_c710_8 :: Nat -> c7 Lemmas: APP(gen_nil:cons:s7_8(n12_8), gen_nil:cons:s7_8(b)) -> gen_c:c16_8(n12_8), rt in Omega(1 + n12_8) ZWADR(gen_nil:cons:s7_8(n632_8), gen_nil:cons:s7_8(n632_8)) -> gen_c3:c4:c5:c69_8(n632_8), rt in Omega(1 + n632_8) app(gen_nil:cons:s7_8(n1521_8), gen_nil:cons:s7_8(b)) -> gen_nil:cons:s7_8(+(n1521_8, b)), rt in Omega(0) Generator Equations: gen_c:c16_8(0) <=> c gen_c:c16_8(+(x, 1)) <=> c1(gen_c:c16_8(x)) gen_nil:cons:s7_8(0) <=> nil gen_nil:cons:s7_8(+(x, 1)) <=> cons(nil, gen_nil:cons:s7_8(x)) gen_c28_8(0) <=> hole_c23_8 gen_c28_8(+(x, 1)) <=> c2(gen_c28_8(x)) gen_c3:c4:c5:c69_8(0) <=> c3 gen_c3:c4:c5:c69_8(+(x, 1)) <=> c6(gen_c3:c4:c5:c69_8(x)) gen_c710_8(0) <=> hole_c75_8 gen_c710_8(+(x, 1)) <=> c7(c3, gen_c710_8(x)) The following defined symbols remain to be analysed: from, PREFIX, prefix, zWadr They will be analysed ascendingly in the following order: prefix < PREFIX zWadr < prefix ---------------------------------------- (17) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: zWadr(gen_nil:cons:s7_8(n2878_8), gen_nil:cons:s7_8(n2878_8)) -> *11_8, rt in Omega(0) Induction Base: zWadr(gen_nil:cons:s7_8(0), gen_nil:cons:s7_8(0)) Induction Step: zWadr(gen_nil:cons:s7_8(+(n2878_8, 1)), gen_nil:cons:s7_8(+(n2878_8, 1))) ->_R^Omega(0) cons(app(nil, cons(nil, nil)), zWadr(gen_nil:cons:s7_8(n2878_8), gen_nil:cons:s7_8(n2878_8))) ->_L^Omega(0) cons(gen_nil:cons:s7_8(+(0, +(0, 1))), zWadr(gen_nil:cons:s7_8(n2878_8), gen_nil:cons:s7_8(n2878_8))) ->_IH cons(gen_nil:cons:s7_8(1), *11_8) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (18) Obligation: Innermost TRS: Rules: APP(nil, z0) -> c APP(cons(z0, z1), z2) -> c1(APP(z1, z2)) FROM(z0) -> c2(FROM(s(z0))) ZWADR(nil, z0) -> c3 ZWADR(z0, nil) -> c4 ZWADR(cons(z0, z1), cons(z2, z3)) -> c5(APP(z2, cons(z0, nil))) ZWADR(cons(z0, z1), cons(z2, z3)) -> c6(ZWADR(z1, z3)) PREFIX(z0) -> c7(ZWADR(z0, prefix(z0)), PREFIX(z0)) app(nil, z0) -> z0 app(cons(z0, z1), z2) -> cons(z0, app(z1, z2)) from(z0) -> cons(z0, from(s(z0))) zWadr(nil, z0) -> nil zWadr(z0, nil) -> nil zWadr(cons(z0, z1), cons(z2, z3)) -> cons(app(z2, cons(z0, nil)), zWadr(z1, z3)) prefix(z0) -> cons(nil, zWadr(z0, prefix(z0))) Types: APP :: nil:cons:s -> nil:cons:s -> c:c1 nil :: nil:cons:s c :: c:c1 cons :: nil:cons:s -> nil:cons:s -> nil:cons:s c1 :: c:c1 -> c:c1 FROM :: nil:cons:s -> c2 c2 :: c2 -> c2 s :: nil:cons:s -> nil:cons:s ZWADR :: nil:cons:s -> nil:cons:s -> c3:c4:c5:c6 c3 :: c3:c4:c5:c6 c4 :: c3:c4:c5:c6 c5 :: c:c1 -> c3:c4:c5:c6 c6 :: c3:c4:c5:c6 -> c3:c4:c5:c6 PREFIX :: nil:cons:s -> c7 c7 :: c3:c4:c5:c6 -> c7 -> c7 prefix :: nil:cons:s -> nil:cons:s app :: nil:cons:s -> nil:cons:s -> nil:cons:s from :: nil:cons:s -> nil:cons:s zWadr :: nil:cons:s -> nil:cons:s -> nil:cons:s hole_c:c11_8 :: c:c1 hole_nil:cons:s2_8 :: nil:cons:s hole_c23_8 :: c2 hole_c3:c4:c5:c64_8 :: c3:c4:c5:c6 hole_c75_8 :: c7 gen_c:c16_8 :: Nat -> c:c1 gen_nil:cons:s7_8 :: Nat -> nil:cons:s gen_c28_8 :: Nat -> c2 gen_c3:c4:c5:c69_8 :: Nat -> c3:c4:c5:c6 gen_c710_8 :: Nat -> c7 Lemmas: APP(gen_nil:cons:s7_8(n12_8), gen_nil:cons:s7_8(b)) -> gen_c:c16_8(n12_8), rt in Omega(1 + n12_8) ZWADR(gen_nil:cons:s7_8(n632_8), gen_nil:cons:s7_8(n632_8)) -> gen_c3:c4:c5:c69_8(n632_8), rt in Omega(1 + n632_8) app(gen_nil:cons:s7_8(n1521_8), gen_nil:cons:s7_8(b)) -> gen_nil:cons:s7_8(+(n1521_8, b)), rt in Omega(0) zWadr(gen_nil:cons:s7_8(n2878_8), gen_nil:cons:s7_8(n2878_8)) -> *11_8, rt in Omega(0) Generator Equations: gen_c:c16_8(0) <=> c gen_c:c16_8(+(x, 1)) <=> c1(gen_c:c16_8(x)) gen_nil:cons:s7_8(0) <=> nil gen_nil:cons:s7_8(+(x, 1)) <=> cons(nil, gen_nil:cons:s7_8(x)) gen_c28_8(0) <=> hole_c23_8 gen_c28_8(+(x, 1)) <=> c2(gen_c28_8(x)) gen_c3:c4:c5:c69_8(0) <=> c3 gen_c3:c4:c5:c69_8(+(x, 1)) <=> c6(gen_c3:c4:c5:c69_8(x)) gen_c710_8(0) <=> hole_c75_8 gen_c710_8(+(x, 1)) <=> c7(c3, gen_c710_8(x)) The following defined symbols remain to be analysed: prefix, PREFIX They will be analysed ascendingly in the following order: prefix < PREFIX