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), 378 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), 7 ms] (10) typed CpxTrs (11) RewriteLemmaProof [LOWER BOUND(ID), 303 ms] (12) BEST (13) proven lower bound (14) LowerBoundPropagationProof [FINISHED, 0 ms] (15) BOUNDS(n^1, INF) (16) typed CpxTrs (17) RewriteLemmaProof [LOWER BOUND(ID), 80 ms] (18) typed CpxTrs (19) RewriteLemmaProof [LOWER BOUND(ID), 1001 ms] (20) typed CpxTrs (21) RewriteLemmaProof [LOWER BOUND(ID), 7 ms] (22) BOUNDS(1, INF) ---------------------------------------- (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: FROM(z0) -> c FROM(z0) -> c1 SEL(0, cons(z0, z1)) -> c2 SEL(s(z0), cons(z1, z2)) -> c3(SEL(z0, activate(z2)), ACTIVATE(z2)) MINUS(z0, 0) -> c4 MINUS(s(z0), s(z1)) -> c5(MINUS(z0, z1)) QUOT(0, s(z0)) -> c6 QUOT(s(z0), s(z1)) -> c7(QUOT(minus(z0, z1), s(z1)), MINUS(z0, z1)) ZWQUOT(z0, nil) -> c8 ZWQUOT(nil, z0) -> c9 ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c10(QUOT(z0, z2)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c11(ACTIVATE(z1)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c12(ACTIVATE(z3)) ZWQUOT(z0, z1) -> c13 ACTIVATE(n__from(z0)) -> c14(FROM(z0)) ACTIVATE(n__zWquot(z0, z1)) -> c15(ZWQUOT(z0, z1)) ACTIVATE(z0) -> c16 The (relative) TRS S consists of the following rules: from(z0) -> cons(z0, n__from(s(z0))) from(z0) -> n__from(z0) sel(0, cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) minus(z0, 0) -> 0 minus(s(z0), s(z1)) -> minus(z0, z1) quot(0, s(z0)) -> 0 quot(s(z0), s(z1)) -> s(quot(minus(z0, z1), s(z1))) zWquot(z0, nil) -> nil zWquot(nil, z0) -> nil zWquot(cons(z0, z1), cons(z2, z3)) -> cons(quot(z0, z2), n__zWquot(activate(z1), activate(z3))) zWquot(z0, z1) -> n__zWquot(z0, z1) activate(n__from(z0)) -> from(z0) activate(n__zWquot(z0, z1)) -> zWquot(z0, z1) activate(z0) -> 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: FROM(z0) -> c FROM(z0) -> c1 SEL(0, cons(z0, z1)) -> c2 SEL(s(z0), cons(z1, z2)) -> c3(SEL(z0, activate(z2)), ACTIVATE(z2)) MINUS(z0, 0) -> c4 MINUS(s(z0), s(z1)) -> c5(MINUS(z0, z1)) QUOT(0, s(z0)) -> c6 QUOT(s(z0), s(z1)) -> c7(QUOT(minus(z0, z1), s(z1)), MINUS(z0, z1)) ZWQUOT(z0, nil) -> c8 ZWQUOT(nil, z0) -> c9 ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c10(QUOT(z0, z2)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c11(ACTIVATE(z1)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c12(ACTIVATE(z3)) ZWQUOT(z0, z1) -> c13 ACTIVATE(n__from(z0)) -> c14(FROM(z0)) ACTIVATE(n__zWquot(z0, z1)) -> c15(ZWQUOT(z0, z1)) ACTIVATE(z0) -> c16 The (relative) TRS S consists of the following rules: from(z0) -> cons(z0, n__from(s(z0))) from(z0) -> n__from(z0) sel(0, cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) minus(z0, 0) -> 0 minus(s(z0), s(z1)) -> minus(z0, z1) quot(0, s(z0)) -> 0 quot(s(z0), s(z1)) -> s(quot(minus(z0, z1), s(z1))) zWquot(z0, nil) -> nil zWquot(nil, z0) -> nil zWquot(cons(z0, z1), cons(z2, z3)) -> cons(quot(z0, z2), n__zWquot(activate(z1), activate(z3))) zWquot(z0, z1) -> n__zWquot(z0, z1) activate(n__from(z0)) -> from(z0) activate(n__zWquot(z0, z1)) -> zWquot(z0, z1) activate(z0) -> 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: FROM(z0) -> c FROM(z0) -> c1 SEL(0', cons(z0, z1)) -> c2 SEL(s(z0), cons(z1, z2)) -> c3(SEL(z0, activate(z2)), ACTIVATE(z2)) MINUS(z0, 0') -> c4 MINUS(s(z0), s(z1)) -> c5(MINUS(z0, z1)) QUOT(0', s(z0)) -> c6 QUOT(s(z0), s(z1)) -> c7(QUOT(minus(z0, z1), s(z1)), MINUS(z0, z1)) ZWQUOT(z0, nil) -> c8 ZWQUOT(nil, z0) -> c9 ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c10(QUOT(z0, z2)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c11(ACTIVATE(z1)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c12(ACTIVATE(z3)) ZWQUOT(z0, z1) -> c13 ACTIVATE(n__from(z0)) -> c14(FROM(z0)) ACTIVATE(n__zWquot(z0, z1)) -> c15(ZWQUOT(z0, z1)) ACTIVATE(z0) -> c16 The (relative) TRS S consists of the following rules: from(z0) -> cons(z0, n__from(s(z0))) from(z0) -> n__from(z0) sel(0', cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) minus(z0, 0') -> 0' minus(s(z0), s(z1)) -> minus(z0, z1) quot(0', s(z0)) -> 0' quot(s(z0), s(z1)) -> s(quot(minus(z0, z1), s(z1))) zWquot(z0, nil) -> nil zWquot(nil, z0) -> nil zWquot(cons(z0, z1), cons(z2, z3)) -> cons(quot(z0, z2), n__zWquot(activate(z1), activate(z3))) zWquot(z0, z1) -> n__zWquot(z0, z1) activate(n__from(z0)) -> from(z0) activate(n__zWquot(z0, z1)) -> zWquot(z0, z1) activate(z0) -> z0 Rewrite Strategy: INNERMOST ---------------------------------------- (5) SlicingProof (LOWER BOUND(ID)) Sliced the following arguments: FROM/0 ---------------------------------------- (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: FROM -> c FROM -> c1 SEL(0', cons(z0, z1)) -> c2 SEL(s(z0), cons(z1, z2)) -> c3(SEL(z0, activate(z2)), ACTIVATE(z2)) MINUS(z0, 0') -> c4 MINUS(s(z0), s(z1)) -> c5(MINUS(z0, z1)) QUOT(0', s(z0)) -> c6 QUOT(s(z0), s(z1)) -> c7(QUOT(minus(z0, z1), s(z1)), MINUS(z0, z1)) ZWQUOT(z0, nil) -> c8 ZWQUOT(nil, z0) -> c9 ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c10(QUOT(z0, z2)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c11(ACTIVATE(z1)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c12(ACTIVATE(z3)) ZWQUOT(z0, z1) -> c13 ACTIVATE(n__from(z0)) -> c14(FROM) ACTIVATE(n__zWquot(z0, z1)) -> c15(ZWQUOT(z0, z1)) ACTIVATE(z0) -> c16 The (relative) TRS S consists of the following rules: from(z0) -> cons(z0, n__from(s(z0))) from(z0) -> n__from(z0) sel(0', cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) minus(z0, 0') -> 0' minus(s(z0), s(z1)) -> minus(z0, z1) quot(0', s(z0)) -> 0' quot(s(z0), s(z1)) -> s(quot(minus(z0, z1), s(z1))) zWquot(z0, nil) -> nil zWquot(nil, z0) -> nil zWquot(cons(z0, z1), cons(z2, z3)) -> cons(quot(z0, z2), n__zWquot(activate(z1), activate(z3))) zWquot(z0, z1) -> n__zWquot(z0, z1) activate(n__from(z0)) -> from(z0) activate(n__zWquot(z0, z1)) -> zWquot(z0, z1) activate(z0) -> z0 Rewrite Strategy: INNERMOST ---------------------------------------- (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (8) Obligation: Innermost TRS: Rules: FROM -> c FROM -> c1 SEL(0', cons(z0, z1)) -> c2 SEL(s(z0), cons(z1, z2)) -> c3(SEL(z0, activate(z2)), ACTIVATE(z2)) MINUS(z0, 0') -> c4 MINUS(s(z0), s(z1)) -> c5(MINUS(z0, z1)) QUOT(0', s(z0)) -> c6 QUOT(s(z0), s(z1)) -> c7(QUOT(minus(z0, z1), s(z1)), MINUS(z0, z1)) ZWQUOT(z0, nil) -> c8 ZWQUOT(nil, z0) -> c9 ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c10(QUOT(z0, z2)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c11(ACTIVATE(z1)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c12(ACTIVATE(z3)) ZWQUOT(z0, z1) -> c13 ACTIVATE(n__from(z0)) -> c14(FROM) ACTIVATE(n__zWquot(z0, z1)) -> c15(ZWQUOT(z0, z1)) ACTIVATE(z0) -> c16 from(z0) -> cons(z0, n__from(s(z0))) from(z0) -> n__from(z0) sel(0', cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) minus(z0, 0') -> 0' minus(s(z0), s(z1)) -> minus(z0, z1) quot(0', s(z0)) -> 0' quot(s(z0), s(z1)) -> s(quot(minus(z0, z1), s(z1))) zWquot(z0, nil) -> nil zWquot(nil, z0) -> nil zWquot(cons(z0, z1), cons(z2, z3)) -> cons(quot(z0, z2), n__zWquot(activate(z1), activate(z3))) zWquot(z0, z1) -> n__zWquot(z0, z1) activate(n__from(z0)) -> from(z0) activate(n__zWquot(z0, z1)) -> zWquot(z0, z1) activate(z0) -> z0 Types: FROM :: c:c1 c :: c:c1 c1 :: c:c1 SEL :: 0':s -> cons:nil:n__from:n__zWquot -> c2:c3 0' :: 0':s cons :: 0':s -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot c2 :: c2:c3 s :: 0':s -> 0':s c3 :: c2:c3 -> c14:c15:c16 -> c2:c3 activate :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot ACTIVATE :: cons:nil:n__from:n__zWquot -> c14:c15:c16 MINUS :: 0':s -> 0':s -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 -> c4:c5 QUOT :: 0':s -> 0':s -> c6:c7 c6 :: c6:c7 c7 :: c6:c7 -> c4:c5 -> c6:c7 minus :: 0':s -> 0':s -> 0':s ZWQUOT :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> c8:c9:c10:c11:c12:c13 nil :: cons:nil:n__from:n__zWquot c8 :: c8:c9:c10:c11:c12:c13 c9 :: c8:c9:c10:c11:c12:c13 c10 :: c6:c7 -> c8:c9:c10:c11:c12:c13 c11 :: c14:c15:c16 -> c8:c9:c10:c11:c12:c13 c12 :: c14:c15:c16 -> c8:c9:c10:c11:c12:c13 c13 :: c8:c9:c10:c11:c12:c13 n__from :: 0':s -> cons:nil:n__from:n__zWquot c14 :: c:c1 -> c14:c15:c16 n__zWquot :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot c15 :: c8:c9:c10:c11:c12:c13 -> c14:c15:c16 c16 :: c14:c15:c16 from :: 0':s -> cons:nil:n__from:n__zWquot sel :: 0':s -> cons:nil:n__from:n__zWquot -> 0':s quot :: 0':s -> 0':s -> 0':s zWquot :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot hole_c:c11_17 :: c:c1 hole_c2:c32_17 :: c2:c3 hole_0':s3_17 :: 0':s hole_cons:nil:n__from:n__zWquot4_17 :: cons:nil:n__from:n__zWquot hole_c14:c15:c165_17 :: c14:c15:c16 hole_c4:c56_17 :: c4:c5 hole_c6:c77_17 :: c6:c7 hole_c8:c9:c10:c11:c12:c138_17 :: c8:c9:c10:c11:c12:c13 gen_c2:c39_17 :: Nat -> c2:c3 gen_0':s10_17 :: Nat -> 0':s gen_cons:nil:n__from:n__zWquot11_17 :: Nat -> cons:nil:n__from:n__zWquot gen_c4:c512_17 :: Nat -> c4:c5 gen_c6:c713_17 :: Nat -> c6:c7 ---------------------------------------- (9) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: SEL, activate, ACTIVATE, MINUS, QUOT, minus, sel, quot They will be analysed ascendingly in the following order: activate < SEL ACTIVATE < SEL activate < sel quot < activate QUOT < ACTIVATE MINUS < QUOT minus < QUOT minus < quot ---------------------------------------- (10) Obligation: Innermost TRS: Rules: FROM -> c FROM -> c1 SEL(0', cons(z0, z1)) -> c2 SEL(s(z0), cons(z1, z2)) -> c3(SEL(z0, activate(z2)), ACTIVATE(z2)) MINUS(z0, 0') -> c4 MINUS(s(z0), s(z1)) -> c5(MINUS(z0, z1)) QUOT(0', s(z0)) -> c6 QUOT(s(z0), s(z1)) -> c7(QUOT(minus(z0, z1), s(z1)), MINUS(z0, z1)) ZWQUOT(z0, nil) -> c8 ZWQUOT(nil, z0) -> c9 ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c10(QUOT(z0, z2)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c11(ACTIVATE(z1)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c12(ACTIVATE(z3)) ZWQUOT(z0, z1) -> c13 ACTIVATE(n__from(z0)) -> c14(FROM) ACTIVATE(n__zWquot(z0, z1)) -> c15(ZWQUOT(z0, z1)) ACTIVATE(z0) -> c16 from(z0) -> cons(z0, n__from(s(z0))) from(z0) -> n__from(z0) sel(0', cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) minus(z0, 0') -> 0' minus(s(z0), s(z1)) -> minus(z0, z1) quot(0', s(z0)) -> 0' quot(s(z0), s(z1)) -> s(quot(minus(z0, z1), s(z1))) zWquot(z0, nil) -> nil zWquot(nil, z0) -> nil zWquot(cons(z0, z1), cons(z2, z3)) -> cons(quot(z0, z2), n__zWquot(activate(z1), activate(z3))) zWquot(z0, z1) -> n__zWquot(z0, z1) activate(n__from(z0)) -> from(z0) activate(n__zWquot(z0, z1)) -> zWquot(z0, z1) activate(z0) -> z0 Types: FROM :: c:c1 c :: c:c1 c1 :: c:c1 SEL :: 0':s -> cons:nil:n__from:n__zWquot -> c2:c3 0' :: 0':s cons :: 0':s -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot c2 :: c2:c3 s :: 0':s -> 0':s c3 :: c2:c3 -> c14:c15:c16 -> c2:c3 activate :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot ACTIVATE :: cons:nil:n__from:n__zWquot -> c14:c15:c16 MINUS :: 0':s -> 0':s -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 -> c4:c5 QUOT :: 0':s -> 0':s -> c6:c7 c6 :: c6:c7 c7 :: c6:c7 -> c4:c5 -> c6:c7 minus :: 0':s -> 0':s -> 0':s ZWQUOT :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> c8:c9:c10:c11:c12:c13 nil :: cons:nil:n__from:n__zWquot c8 :: c8:c9:c10:c11:c12:c13 c9 :: c8:c9:c10:c11:c12:c13 c10 :: c6:c7 -> c8:c9:c10:c11:c12:c13 c11 :: c14:c15:c16 -> c8:c9:c10:c11:c12:c13 c12 :: c14:c15:c16 -> c8:c9:c10:c11:c12:c13 c13 :: c8:c9:c10:c11:c12:c13 n__from :: 0':s -> cons:nil:n__from:n__zWquot c14 :: c:c1 -> c14:c15:c16 n__zWquot :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot c15 :: c8:c9:c10:c11:c12:c13 -> c14:c15:c16 c16 :: c14:c15:c16 from :: 0':s -> cons:nil:n__from:n__zWquot sel :: 0':s -> cons:nil:n__from:n__zWquot -> 0':s quot :: 0':s -> 0':s -> 0':s zWquot :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot hole_c:c11_17 :: c:c1 hole_c2:c32_17 :: c2:c3 hole_0':s3_17 :: 0':s hole_cons:nil:n__from:n__zWquot4_17 :: cons:nil:n__from:n__zWquot hole_c14:c15:c165_17 :: c14:c15:c16 hole_c4:c56_17 :: c4:c5 hole_c6:c77_17 :: c6:c7 hole_c8:c9:c10:c11:c12:c138_17 :: c8:c9:c10:c11:c12:c13 gen_c2:c39_17 :: Nat -> c2:c3 gen_0':s10_17 :: Nat -> 0':s gen_cons:nil:n__from:n__zWquot11_17 :: Nat -> cons:nil:n__from:n__zWquot gen_c4:c512_17 :: Nat -> c4:c5 gen_c6:c713_17 :: Nat -> c6:c7 Generator Equations: gen_c2:c39_17(0) <=> c2 gen_c2:c39_17(+(x, 1)) <=> c3(gen_c2:c39_17(x), c14(c)) gen_0':s10_17(0) <=> 0' gen_0':s10_17(+(x, 1)) <=> s(gen_0':s10_17(x)) gen_cons:nil:n__from:n__zWquot11_17(0) <=> nil gen_cons:nil:n__from:n__zWquot11_17(+(x, 1)) <=> cons(0', gen_cons:nil:n__from:n__zWquot11_17(x)) gen_c4:c512_17(0) <=> c4 gen_c4:c512_17(+(x, 1)) <=> c5(gen_c4:c512_17(x)) gen_c6:c713_17(0) <=> c6 gen_c6:c713_17(+(x, 1)) <=> c7(gen_c6:c713_17(x), c4) The following defined symbols remain to be analysed: MINUS, SEL, activate, ACTIVATE, QUOT, minus, sel, quot They will be analysed ascendingly in the following order: activate < SEL ACTIVATE < SEL activate < sel quot < activate QUOT < ACTIVATE MINUS < QUOT minus < QUOT minus < quot ---------------------------------------- (11) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: MINUS(gen_0':s10_17(n15_17), gen_0':s10_17(n15_17)) -> gen_c4:c512_17(n15_17), rt in Omega(1 + n15_17) Induction Base: MINUS(gen_0':s10_17(0), gen_0':s10_17(0)) ->_R^Omega(1) c4 Induction Step: MINUS(gen_0':s10_17(+(n15_17, 1)), gen_0':s10_17(+(n15_17, 1))) ->_R^Omega(1) c5(MINUS(gen_0':s10_17(n15_17), gen_0':s10_17(n15_17))) ->_IH c5(gen_c4:c512_17(c16_17)) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (12) Complex Obligation (BEST) ---------------------------------------- (13) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: FROM -> c FROM -> c1 SEL(0', cons(z0, z1)) -> c2 SEL(s(z0), cons(z1, z2)) -> c3(SEL(z0, activate(z2)), ACTIVATE(z2)) MINUS(z0, 0') -> c4 MINUS(s(z0), s(z1)) -> c5(MINUS(z0, z1)) QUOT(0', s(z0)) -> c6 QUOT(s(z0), s(z1)) -> c7(QUOT(minus(z0, z1), s(z1)), MINUS(z0, z1)) ZWQUOT(z0, nil) -> c8 ZWQUOT(nil, z0) -> c9 ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c10(QUOT(z0, z2)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c11(ACTIVATE(z1)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c12(ACTIVATE(z3)) ZWQUOT(z0, z1) -> c13 ACTIVATE(n__from(z0)) -> c14(FROM) ACTIVATE(n__zWquot(z0, z1)) -> c15(ZWQUOT(z0, z1)) ACTIVATE(z0) -> c16 from(z0) -> cons(z0, n__from(s(z0))) from(z0) -> n__from(z0) sel(0', cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) minus(z0, 0') -> 0' minus(s(z0), s(z1)) -> minus(z0, z1) quot(0', s(z0)) -> 0' quot(s(z0), s(z1)) -> s(quot(minus(z0, z1), s(z1))) zWquot(z0, nil) -> nil zWquot(nil, z0) -> nil zWquot(cons(z0, z1), cons(z2, z3)) -> cons(quot(z0, z2), n__zWquot(activate(z1), activate(z3))) zWquot(z0, z1) -> n__zWquot(z0, z1) activate(n__from(z0)) -> from(z0) activate(n__zWquot(z0, z1)) -> zWquot(z0, z1) activate(z0) -> z0 Types: FROM :: c:c1 c :: c:c1 c1 :: c:c1 SEL :: 0':s -> cons:nil:n__from:n__zWquot -> c2:c3 0' :: 0':s cons :: 0':s -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot c2 :: c2:c3 s :: 0':s -> 0':s c3 :: c2:c3 -> c14:c15:c16 -> c2:c3 activate :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot ACTIVATE :: cons:nil:n__from:n__zWquot -> c14:c15:c16 MINUS :: 0':s -> 0':s -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 -> c4:c5 QUOT :: 0':s -> 0':s -> c6:c7 c6 :: c6:c7 c7 :: c6:c7 -> c4:c5 -> c6:c7 minus :: 0':s -> 0':s -> 0':s ZWQUOT :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> c8:c9:c10:c11:c12:c13 nil :: cons:nil:n__from:n__zWquot c8 :: c8:c9:c10:c11:c12:c13 c9 :: c8:c9:c10:c11:c12:c13 c10 :: c6:c7 -> c8:c9:c10:c11:c12:c13 c11 :: c14:c15:c16 -> c8:c9:c10:c11:c12:c13 c12 :: c14:c15:c16 -> c8:c9:c10:c11:c12:c13 c13 :: c8:c9:c10:c11:c12:c13 n__from :: 0':s -> cons:nil:n__from:n__zWquot c14 :: c:c1 -> c14:c15:c16 n__zWquot :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot c15 :: c8:c9:c10:c11:c12:c13 -> c14:c15:c16 c16 :: c14:c15:c16 from :: 0':s -> cons:nil:n__from:n__zWquot sel :: 0':s -> cons:nil:n__from:n__zWquot -> 0':s quot :: 0':s -> 0':s -> 0':s zWquot :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot hole_c:c11_17 :: c:c1 hole_c2:c32_17 :: c2:c3 hole_0':s3_17 :: 0':s hole_cons:nil:n__from:n__zWquot4_17 :: cons:nil:n__from:n__zWquot hole_c14:c15:c165_17 :: c14:c15:c16 hole_c4:c56_17 :: c4:c5 hole_c6:c77_17 :: c6:c7 hole_c8:c9:c10:c11:c12:c138_17 :: c8:c9:c10:c11:c12:c13 gen_c2:c39_17 :: Nat -> c2:c3 gen_0':s10_17 :: Nat -> 0':s gen_cons:nil:n__from:n__zWquot11_17 :: Nat -> cons:nil:n__from:n__zWquot gen_c4:c512_17 :: Nat -> c4:c5 gen_c6:c713_17 :: Nat -> c6:c7 Generator Equations: gen_c2:c39_17(0) <=> c2 gen_c2:c39_17(+(x, 1)) <=> c3(gen_c2:c39_17(x), c14(c)) gen_0':s10_17(0) <=> 0' gen_0':s10_17(+(x, 1)) <=> s(gen_0':s10_17(x)) gen_cons:nil:n__from:n__zWquot11_17(0) <=> nil gen_cons:nil:n__from:n__zWquot11_17(+(x, 1)) <=> cons(0', gen_cons:nil:n__from:n__zWquot11_17(x)) gen_c4:c512_17(0) <=> c4 gen_c4:c512_17(+(x, 1)) <=> c5(gen_c4:c512_17(x)) gen_c6:c713_17(0) <=> c6 gen_c6:c713_17(+(x, 1)) <=> c7(gen_c6:c713_17(x), c4) The following defined symbols remain to be analysed: MINUS, SEL, activate, ACTIVATE, QUOT, minus, sel, quot They will be analysed ascendingly in the following order: activate < SEL ACTIVATE < SEL activate < sel quot < activate QUOT < ACTIVATE MINUS < QUOT minus < QUOT minus < quot ---------------------------------------- (14) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (15) BOUNDS(n^1, INF) ---------------------------------------- (16) Obligation: Innermost TRS: Rules: FROM -> c FROM -> c1 SEL(0', cons(z0, z1)) -> c2 SEL(s(z0), cons(z1, z2)) -> c3(SEL(z0, activate(z2)), ACTIVATE(z2)) MINUS(z0, 0') -> c4 MINUS(s(z0), s(z1)) -> c5(MINUS(z0, z1)) QUOT(0', s(z0)) -> c6 QUOT(s(z0), s(z1)) -> c7(QUOT(minus(z0, z1), s(z1)), MINUS(z0, z1)) ZWQUOT(z0, nil) -> c8 ZWQUOT(nil, z0) -> c9 ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c10(QUOT(z0, z2)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c11(ACTIVATE(z1)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c12(ACTIVATE(z3)) ZWQUOT(z0, z1) -> c13 ACTIVATE(n__from(z0)) -> c14(FROM) ACTIVATE(n__zWquot(z0, z1)) -> c15(ZWQUOT(z0, z1)) ACTIVATE(z0) -> c16 from(z0) -> cons(z0, n__from(s(z0))) from(z0) -> n__from(z0) sel(0', cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) minus(z0, 0') -> 0' minus(s(z0), s(z1)) -> minus(z0, z1) quot(0', s(z0)) -> 0' quot(s(z0), s(z1)) -> s(quot(minus(z0, z1), s(z1))) zWquot(z0, nil) -> nil zWquot(nil, z0) -> nil zWquot(cons(z0, z1), cons(z2, z3)) -> cons(quot(z0, z2), n__zWquot(activate(z1), activate(z3))) zWquot(z0, z1) -> n__zWquot(z0, z1) activate(n__from(z0)) -> from(z0) activate(n__zWquot(z0, z1)) -> zWquot(z0, z1) activate(z0) -> z0 Types: FROM :: c:c1 c :: c:c1 c1 :: c:c1 SEL :: 0':s -> cons:nil:n__from:n__zWquot -> c2:c3 0' :: 0':s cons :: 0':s -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot c2 :: c2:c3 s :: 0':s -> 0':s c3 :: c2:c3 -> c14:c15:c16 -> c2:c3 activate :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot ACTIVATE :: cons:nil:n__from:n__zWquot -> c14:c15:c16 MINUS :: 0':s -> 0':s -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 -> c4:c5 QUOT :: 0':s -> 0':s -> c6:c7 c6 :: c6:c7 c7 :: c6:c7 -> c4:c5 -> c6:c7 minus :: 0':s -> 0':s -> 0':s ZWQUOT :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> c8:c9:c10:c11:c12:c13 nil :: cons:nil:n__from:n__zWquot c8 :: c8:c9:c10:c11:c12:c13 c9 :: c8:c9:c10:c11:c12:c13 c10 :: c6:c7 -> c8:c9:c10:c11:c12:c13 c11 :: c14:c15:c16 -> c8:c9:c10:c11:c12:c13 c12 :: c14:c15:c16 -> c8:c9:c10:c11:c12:c13 c13 :: c8:c9:c10:c11:c12:c13 n__from :: 0':s -> cons:nil:n__from:n__zWquot c14 :: c:c1 -> c14:c15:c16 n__zWquot :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot c15 :: c8:c9:c10:c11:c12:c13 -> c14:c15:c16 c16 :: c14:c15:c16 from :: 0':s -> cons:nil:n__from:n__zWquot sel :: 0':s -> cons:nil:n__from:n__zWquot -> 0':s quot :: 0':s -> 0':s -> 0':s zWquot :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot hole_c:c11_17 :: c:c1 hole_c2:c32_17 :: c2:c3 hole_0':s3_17 :: 0':s hole_cons:nil:n__from:n__zWquot4_17 :: cons:nil:n__from:n__zWquot hole_c14:c15:c165_17 :: c14:c15:c16 hole_c4:c56_17 :: c4:c5 hole_c6:c77_17 :: c6:c7 hole_c8:c9:c10:c11:c12:c138_17 :: c8:c9:c10:c11:c12:c13 gen_c2:c39_17 :: Nat -> c2:c3 gen_0':s10_17 :: Nat -> 0':s gen_cons:nil:n__from:n__zWquot11_17 :: Nat -> cons:nil:n__from:n__zWquot gen_c4:c512_17 :: Nat -> c4:c5 gen_c6:c713_17 :: Nat -> c6:c7 Lemmas: MINUS(gen_0':s10_17(n15_17), gen_0':s10_17(n15_17)) -> gen_c4:c512_17(n15_17), rt in Omega(1 + n15_17) Generator Equations: gen_c2:c39_17(0) <=> c2 gen_c2:c39_17(+(x, 1)) <=> c3(gen_c2:c39_17(x), c14(c)) gen_0':s10_17(0) <=> 0' gen_0':s10_17(+(x, 1)) <=> s(gen_0':s10_17(x)) gen_cons:nil:n__from:n__zWquot11_17(0) <=> nil gen_cons:nil:n__from:n__zWquot11_17(+(x, 1)) <=> cons(0', gen_cons:nil:n__from:n__zWquot11_17(x)) gen_c4:c512_17(0) <=> c4 gen_c4:c512_17(+(x, 1)) <=> c5(gen_c4:c512_17(x)) gen_c6:c713_17(0) <=> c6 gen_c6:c713_17(+(x, 1)) <=> c7(gen_c6:c713_17(x), c4) The following defined symbols remain to be analysed: minus, SEL, activate, ACTIVATE, QUOT, sel, quot They will be analysed ascendingly in the following order: activate < SEL ACTIVATE < SEL activate < sel quot < activate QUOT < ACTIVATE minus < QUOT minus < quot ---------------------------------------- (17) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: minus(gen_0':s10_17(n608_17), gen_0':s10_17(n608_17)) -> gen_0':s10_17(0), rt in Omega(0) Induction Base: minus(gen_0':s10_17(0), gen_0':s10_17(0)) ->_R^Omega(0) 0' Induction Step: minus(gen_0':s10_17(+(n608_17, 1)), gen_0':s10_17(+(n608_17, 1))) ->_R^Omega(0) minus(gen_0':s10_17(n608_17), gen_0':s10_17(n608_17)) ->_IH gen_0':s10_17(0) 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: FROM -> c FROM -> c1 SEL(0', cons(z0, z1)) -> c2 SEL(s(z0), cons(z1, z2)) -> c3(SEL(z0, activate(z2)), ACTIVATE(z2)) MINUS(z0, 0') -> c4 MINUS(s(z0), s(z1)) -> c5(MINUS(z0, z1)) QUOT(0', s(z0)) -> c6 QUOT(s(z0), s(z1)) -> c7(QUOT(minus(z0, z1), s(z1)), MINUS(z0, z1)) ZWQUOT(z0, nil) -> c8 ZWQUOT(nil, z0) -> c9 ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c10(QUOT(z0, z2)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c11(ACTIVATE(z1)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c12(ACTIVATE(z3)) ZWQUOT(z0, z1) -> c13 ACTIVATE(n__from(z0)) -> c14(FROM) ACTIVATE(n__zWquot(z0, z1)) -> c15(ZWQUOT(z0, z1)) ACTIVATE(z0) -> c16 from(z0) -> cons(z0, n__from(s(z0))) from(z0) -> n__from(z0) sel(0', cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) minus(z0, 0') -> 0' minus(s(z0), s(z1)) -> minus(z0, z1) quot(0', s(z0)) -> 0' quot(s(z0), s(z1)) -> s(quot(minus(z0, z1), s(z1))) zWquot(z0, nil) -> nil zWquot(nil, z0) -> nil zWquot(cons(z0, z1), cons(z2, z3)) -> cons(quot(z0, z2), n__zWquot(activate(z1), activate(z3))) zWquot(z0, z1) -> n__zWquot(z0, z1) activate(n__from(z0)) -> from(z0) activate(n__zWquot(z0, z1)) -> zWquot(z0, z1) activate(z0) -> z0 Types: FROM :: c:c1 c :: c:c1 c1 :: c:c1 SEL :: 0':s -> cons:nil:n__from:n__zWquot -> c2:c3 0' :: 0':s cons :: 0':s -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot c2 :: c2:c3 s :: 0':s -> 0':s c3 :: c2:c3 -> c14:c15:c16 -> c2:c3 activate :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot ACTIVATE :: cons:nil:n__from:n__zWquot -> c14:c15:c16 MINUS :: 0':s -> 0':s -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 -> c4:c5 QUOT :: 0':s -> 0':s -> c6:c7 c6 :: c6:c7 c7 :: c6:c7 -> c4:c5 -> c6:c7 minus :: 0':s -> 0':s -> 0':s ZWQUOT :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> c8:c9:c10:c11:c12:c13 nil :: cons:nil:n__from:n__zWquot c8 :: c8:c9:c10:c11:c12:c13 c9 :: c8:c9:c10:c11:c12:c13 c10 :: c6:c7 -> c8:c9:c10:c11:c12:c13 c11 :: c14:c15:c16 -> c8:c9:c10:c11:c12:c13 c12 :: c14:c15:c16 -> c8:c9:c10:c11:c12:c13 c13 :: c8:c9:c10:c11:c12:c13 n__from :: 0':s -> cons:nil:n__from:n__zWquot c14 :: c:c1 -> c14:c15:c16 n__zWquot :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot c15 :: c8:c9:c10:c11:c12:c13 -> c14:c15:c16 c16 :: c14:c15:c16 from :: 0':s -> cons:nil:n__from:n__zWquot sel :: 0':s -> cons:nil:n__from:n__zWquot -> 0':s quot :: 0':s -> 0':s -> 0':s zWquot :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot hole_c:c11_17 :: c:c1 hole_c2:c32_17 :: c2:c3 hole_0':s3_17 :: 0':s hole_cons:nil:n__from:n__zWquot4_17 :: cons:nil:n__from:n__zWquot hole_c14:c15:c165_17 :: c14:c15:c16 hole_c4:c56_17 :: c4:c5 hole_c6:c77_17 :: c6:c7 hole_c8:c9:c10:c11:c12:c138_17 :: c8:c9:c10:c11:c12:c13 gen_c2:c39_17 :: Nat -> c2:c3 gen_0':s10_17 :: Nat -> 0':s gen_cons:nil:n__from:n__zWquot11_17 :: Nat -> cons:nil:n__from:n__zWquot gen_c4:c512_17 :: Nat -> c4:c5 gen_c6:c713_17 :: Nat -> c6:c7 Lemmas: MINUS(gen_0':s10_17(n15_17), gen_0':s10_17(n15_17)) -> gen_c4:c512_17(n15_17), rt in Omega(1 + n15_17) minus(gen_0':s10_17(n608_17), gen_0':s10_17(n608_17)) -> gen_0':s10_17(0), rt in Omega(0) Generator Equations: gen_c2:c39_17(0) <=> c2 gen_c2:c39_17(+(x, 1)) <=> c3(gen_c2:c39_17(x), c14(c)) gen_0':s10_17(0) <=> 0' gen_0':s10_17(+(x, 1)) <=> s(gen_0':s10_17(x)) gen_cons:nil:n__from:n__zWquot11_17(0) <=> nil gen_cons:nil:n__from:n__zWquot11_17(+(x, 1)) <=> cons(0', gen_cons:nil:n__from:n__zWquot11_17(x)) gen_c4:c512_17(0) <=> c4 gen_c4:c512_17(+(x, 1)) <=> c5(gen_c4:c512_17(x)) gen_c6:c713_17(0) <=> c6 gen_c6:c713_17(+(x, 1)) <=> c7(gen_c6:c713_17(x), c4) The following defined symbols remain to be analysed: QUOT, SEL, activate, ACTIVATE, sel, quot They will be analysed ascendingly in the following order: activate < SEL ACTIVATE < SEL activate < sel quot < activate QUOT < ACTIVATE ---------------------------------------- (19) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: SEL(gen_0':s10_17(n2171_17), gen_cons:nil:n__from:n__zWquot11_17(+(1, n2171_17))) -> *14_17, rt in Omega(n2171_17) Induction Base: SEL(gen_0':s10_17(0), gen_cons:nil:n__from:n__zWquot11_17(+(1, 0))) Induction Step: SEL(gen_0':s10_17(+(n2171_17, 1)), gen_cons:nil:n__from:n__zWquot11_17(+(1, +(n2171_17, 1)))) ->_R^Omega(1) c3(SEL(gen_0':s10_17(n2171_17), activate(gen_cons:nil:n__from:n__zWquot11_17(+(1, n2171_17)))), ACTIVATE(gen_cons:nil:n__from:n__zWquot11_17(+(1, n2171_17)))) ->_R^Omega(0) c3(SEL(gen_0':s10_17(n2171_17), gen_cons:nil:n__from:n__zWquot11_17(+(1, n2171_17))), ACTIVATE(gen_cons:nil:n__from:n__zWquot11_17(+(1, n2171_17)))) ->_IH c3(*14_17, ACTIVATE(gen_cons:nil:n__from:n__zWquot11_17(+(1, n2171_17)))) ->_R^Omega(1) c3(*14_17, c16) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (20) Obligation: Innermost TRS: Rules: FROM -> c FROM -> c1 SEL(0', cons(z0, z1)) -> c2 SEL(s(z0), cons(z1, z2)) -> c3(SEL(z0, activate(z2)), ACTIVATE(z2)) MINUS(z0, 0') -> c4 MINUS(s(z0), s(z1)) -> c5(MINUS(z0, z1)) QUOT(0', s(z0)) -> c6 QUOT(s(z0), s(z1)) -> c7(QUOT(minus(z0, z1), s(z1)), MINUS(z0, z1)) ZWQUOT(z0, nil) -> c8 ZWQUOT(nil, z0) -> c9 ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c10(QUOT(z0, z2)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c11(ACTIVATE(z1)) ZWQUOT(cons(z0, z1), cons(z2, z3)) -> c12(ACTIVATE(z3)) ZWQUOT(z0, z1) -> c13 ACTIVATE(n__from(z0)) -> c14(FROM) ACTIVATE(n__zWquot(z0, z1)) -> c15(ZWQUOT(z0, z1)) ACTIVATE(z0) -> c16 from(z0) -> cons(z0, n__from(s(z0))) from(z0) -> n__from(z0) sel(0', cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) minus(z0, 0') -> 0' minus(s(z0), s(z1)) -> minus(z0, z1) quot(0', s(z0)) -> 0' quot(s(z0), s(z1)) -> s(quot(minus(z0, z1), s(z1))) zWquot(z0, nil) -> nil zWquot(nil, z0) -> nil zWquot(cons(z0, z1), cons(z2, z3)) -> cons(quot(z0, z2), n__zWquot(activate(z1), activate(z3))) zWquot(z0, z1) -> n__zWquot(z0, z1) activate(n__from(z0)) -> from(z0) activate(n__zWquot(z0, z1)) -> zWquot(z0, z1) activate(z0) -> z0 Types: FROM :: c:c1 c :: c:c1 c1 :: c:c1 SEL :: 0':s -> cons:nil:n__from:n__zWquot -> c2:c3 0' :: 0':s cons :: 0':s -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot c2 :: c2:c3 s :: 0':s -> 0':s c3 :: c2:c3 -> c14:c15:c16 -> c2:c3 activate :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot ACTIVATE :: cons:nil:n__from:n__zWquot -> c14:c15:c16 MINUS :: 0':s -> 0':s -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 -> c4:c5 QUOT :: 0':s -> 0':s -> c6:c7 c6 :: c6:c7 c7 :: c6:c7 -> c4:c5 -> c6:c7 minus :: 0':s -> 0':s -> 0':s ZWQUOT :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> c8:c9:c10:c11:c12:c13 nil :: cons:nil:n__from:n__zWquot c8 :: c8:c9:c10:c11:c12:c13 c9 :: c8:c9:c10:c11:c12:c13 c10 :: c6:c7 -> c8:c9:c10:c11:c12:c13 c11 :: c14:c15:c16 -> c8:c9:c10:c11:c12:c13 c12 :: c14:c15:c16 -> c8:c9:c10:c11:c12:c13 c13 :: c8:c9:c10:c11:c12:c13 n__from :: 0':s -> cons:nil:n__from:n__zWquot c14 :: c:c1 -> c14:c15:c16 n__zWquot :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot c15 :: c8:c9:c10:c11:c12:c13 -> c14:c15:c16 c16 :: c14:c15:c16 from :: 0':s -> cons:nil:n__from:n__zWquot sel :: 0':s -> cons:nil:n__from:n__zWquot -> 0':s quot :: 0':s -> 0':s -> 0':s zWquot :: cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot -> cons:nil:n__from:n__zWquot hole_c:c11_17 :: c:c1 hole_c2:c32_17 :: c2:c3 hole_0':s3_17 :: 0':s hole_cons:nil:n__from:n__zWquot4_17 :: cons:nil:n__from:n__zWquot hole_c14:c15:c165_17 :: c14:c15:c16 hole_c4:c56_17 :: c4:c5 hole_c6:c77_17 :: c6:c7 hole_c8:c9:c10:c11:c12:c138_17 :: c8:c9:c10:c11:c12:c13 gen_c2:c39_17 :: Nat -> c2:c3 gen_0':s10_17 :: Nat -> 0':s gen_cons:nil:n__from:n__zWquot11_17 :: Nat -> cons:nil:n__from:n__zWquot gen_c4:c512_17 :: Nat -> c4:c5 gen_c6:c713_17 :: Nat -> c6:c7 Lemmas: MINUS(gen_0':s10_17(n15_17), gen_0':s10_17(n15_17)) -> gen_c4:c512_17(n15_17), rt in Omega(1 + n15_17) minus(gen_0':s10_17(n608_17), gen_0':s10_17(n608_17)) -> gen_0':s10_17(0), rt in Omega(0) SEL(gen_0':s10_17(n2171_17), gen_cons:nil:n__from:n__zWquot11_17(+(1, n2171_17))) -> *14_17, rt in Omega(n2171_17) Generator Equations: gen_c2:c39_17(0) <=> c2 gen_c2:c39_17(+(x, 1)) <=> c3(gen_c2:c39_17(x), c14(c)) gen_0':s10_17(0) <=> 0' gen_0':s10_17(+(x, 1)) <=> s(gen_0':s10_17(x)) gen_cons:nil:n__from:n__zWquot11_17(0) <=> nil gen_cons:nil:n__from:n__zWquot11_17(+(x, 1)) <=> cons(0', gen_cons:nil:n__from:n__zWquot11_17(x)) gen_c4:c512_17(0) <=> c4 gen_c4:c512_17(+(x, 1)) <=> c5(gen_c4:c512_17(x)) gen_c6:c713_17(0) <=> c6 gen_c6:c713_17(+(x, 1)) <=> c7(gen_c6:c713_17(x), c4) The following defined symbols remain to be analysed: sel ---------------------------------------- (21) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: sel(gen_0':s10_17(n6565_17), gen_cons:nil:n__from:n__zWquot11_17(+(1, n6565_17))) -> gen_0':s10_17(0), rt in Omega(0) Induction Base: sel(gen_0':s10_17(0), gen_cons:nil:n__from:n__zWquot11_17(+(1, 0))) ->_R^Omega(0) 0' Induction Step: sel(gen_0':s10_17(+(n6565_17, 1)), gen_cons:nil:n__from:n__zWquot11_17(+(1, +(n6565_17, 1)))) ->_R^Omega(0) sel(gen_0':s10_17(n6565_17), activate(gen_cons:nil:n__from:n__zWquot11_17(+(1, n6565_17)))) ->_R^Omega(0) sel(gen_0':s10_17(n6565_17), gen_cons:nil:n__from:n__zWquot11_17(+(1, n6565_17))) ->_IH gen_0':s10_17(0) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (22) BOUNDS(1, INF)