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), 18 ms] (6) typed CpxTrs (7) RewriteLemmaProof [LOWER BOUND(ID), 1193 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), 18.3 s] (14) 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: ZEROS -> c ZEROS -> c1 AND(tt, z0) -> c2(ACTIVATE(z0)) LENGTH(nil) -> c3 LENGTH(cons(z0, z1)) -> c4(LENGTH(activate(z1)), ACTIVATE(z1)) TAKE(0, z0) -> c5 TAKE(s(z0), cons(z1, z2)) -> c6(ACTIVATE(z2)) TAKE(z0, z1) -> c7 ACTIVATE(n__zeros) -> c8(ZEROS) ACTIVATE(n__take(z0, z1)) -> c9(TAKE(activate(z0), activate(z1)), ACTIVATE(z0)) ACTIVATE(n__take(z0, z1)) -> c10(TAKE(activate(z0), activate(z1)), ACTIVATE(z1)) ACTIVATE(z0) -> c11 The (relative) TRS S consists of the following rules: zeros -> cons(0, n__zeros) zeros -> n__zeros and(tt, z0) -> activate(z0) length(nil) -> 0 length(cons(z0, z1)) -> s(length(activate(z1))) take(0, z0) -> nil take(s(z0), cons(z1, z2)) -> cons(z1, n__take(z0, activate(z2))) take(z0, z1) -> n__take(z0, z1) activate(n__zeros) -> zeros activate(n__take(z0, z1)) -> take(activate(z0), activate(z1)) activate(z0) -> 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: ZEROS -> c ZEROS -> c1 AND(tt, z0) -> c2(ACTIVATE(z0)) LENGTH(nil) -> c3 LENGTH(cons(z0, z1)) -> c4(LENGTH(activate(z1)), ACTIVATE(z1)) TAKE(0', z0) -> c5 TAKE(s(z0), cons(z1, z2)) -> c6(ACTIVATE(z2)) TAKE(z0, z1) -> c7 ACTIVATE(n__zeros) -> c8(ZEROS) ACTIVATE(n__take(z0, z1)) -> c9(TAKE(activate(z0), activate(z1)), ACTIVATE(z0)) ACTIVATE(n__take(z0, z1)) -> c10(TAKE(activate(z0), activate(z1)), ACTIVATE(z1)) ACTIVATE(z0) -> c11 The (relative) TRS S consists of the following rules: zeros -> cons(0', n__zeros) zeros -> n__zeros and(tt, z0) -> activate(z0) length(nil) -> 0' length(cons(z0, z1)) -> s(length(activate(z1))) take(0', z0) -> nil take(s(z0), cons(z1, z2)) -> cons(z1, n__take(z0, activate(z2))) take(z0, z1) -> n__take(z0, z1) activate(n__zeros) -> zeros activate(n__take(z0, z1)) -> take(activate(z0), activate(z1)) activate(z0) -> z0 Rewrite Strategy: INNERMOST ---------------------------------------- (3) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (4) Obligation: Innermost TRS: Rules: ZEROS -> c ZEROS -> c1 AND(tt, z0) -> c2(ACTIVATE(z0)) LENGTH(nil) -> c3 LENGTH(cons(z0, z1)) -> c4(LENGTH(activate(z1)), ACTIVATE(z1)) TAKE(0', z0) -> c5 TAKE(s(z0), cons(z1, z2)) -> c6(ACTIVATE(z2)) TAKE(z0, z1) -> c7 ACTIVATE(n__zeros) -> c8(ZEROS) ACTIVATE(n__take(z0, z1)) -> c9(TAKE(activate(z0), activate(z1)), ACTIVATE(z0)) ACTIVATE(n__take(z0, z1)) -> c10(TAKE(activate(z0), activate(z1)), ACTIVATE(z1)) ACTIVATE(z0) -> c11 zeros -> cons(0', n__zeros) zeros -> n__zeros and(tt, z0) -> activate(z0) length(nil) -> 0' length(cons(z0, z1)) -> s(length(activate(z1))) take(0', z0) -> nil take(s(z0), cons(z1, z2)) -> cons(z1, n__take(z0, activate(z2))) take(z0, z1) -> n__take(z0, z1) activate(n__zeros) -> zeros activate(n__take(z0, z1)) -> take(activate(z0), activate(z1)) activate(z0) -> z0 Types: ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 AND :: tt -> nil:cons:0':s:n__zeros:n__take -> c2 tt :: tt c2 :: c8:c9:c10:c11 -> c2 ACTIVATE :: nil:cons:0':s:n__zeros:n__take -> c8:c9:c10:c11 LENGTH :: nil:cons:0':s:n__zeros:n__take -> c3:c4 nil :: nil:cons:0':s:n__zeros:n__take c3 :: c3:c4 cons :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take c4 :: c3:c4 -> c8:c9:c10:c11 -> c3:c4 activate :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take TAKE :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> c5:c6:c7 0' :: nil:cons:0':s:n__zeros:n__take c5 :: c5:c6:c7 s :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take c6 :: c8:c9:c10:c11 -> c5:c6:c7 c7 :: c5:c6:c7 n__zeros :: nil:cons:0':s:n__zeros:n__take c8 :: c:c1 -> c8:c9:c10:c11 n__take :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take c9 :: c5:c6:c7 -> c8:c9:c10:c11 -> c8:c9:c10:c11 c10 :: c5:c6:c7 -> c8:c9:c10:c11 -> c8:c9:c10:c11 c11 :: c8:c9:c10:c11 zeros :: nil:cons:0':s:n__zeros:n__take and :: tt -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take length :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take take :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take hole_c:c11_12 :: c:c1 hole_c22_12 :: c2 hole_tt3_12 :: tt hole_nil:cons:0':s:n__zeros:n__take4_12 :: nil:cons:0':s:n__zeros:n__take hole_c8:c9:c10:c115_12 :: c8:c9:c10:c11 hole_c3:c46_12 :: c3:c4 hole_c5:c6:c77_12 :: c5:c6:c7 gen_nil:cons:0':s:n__zeros:n__take8_12 :: Nat -> nil:cons:0':s:n__zeros:n__take gen_c8:c9:c10:c119_12 :: Nat -> c8:c9:c10:c11 gen_c3:c410_12 :: Nat -> c3:c4 ---------------------------------------- (5) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: ACTIVATE, LENGTH, activate, length They will be analysed ascendingly in the following order: ACTIVATE < LENGTH activate < ACTIVATE activate < LENGTH activate < length ---------------------------------------- (6) Obligation: Innermost TRS: Rules: ZEROS -> c ZEROS -> c1 AND(tt, z0) -> c2(ACTIVATE(z0)) LENGTH(nil) -> c3 LENGTH(cons(z0, z1)) -> c4(LENGTH(activate(z1)), ACTIVATE(z1)) TAKE(0', z0) -> c5 TAKE(s(z0), cons(z1, z2)) -> c6(ACTIVATE(z2)) TAKE(z0, z1) -> c7 ACTIVATE(n__zeros) -> c8(ZEROS) ACTIVATE(n__take(z0, z1)) -> c9(TAKE(activate(z0), activate(z1)), ACTIVATE(z0)) ACTIVATE(n__take(z0, z1)) -> c10(TAKE(activate(z0), activate(z1)), ACTIVATE(z1)) ACTIVATE(z0) -> c11 zeros -> cons(0', n__zeros) zeros -> n__zeros and(tt, z0) -> activate(z0) length(nil) -> 0' length(cons(z0, z1)) -> s(length(activate(z1))) take(0', z0) -> nil take(s(z0), cons(z1, z2)) -> cons(z1, n__take(z0, activate(z2))) take(z0, z1) -> n__take(z0, z1) activate(n__zeros) -> zeros activate(n__take(z0, z1)) -> take(activate(z0), activate(z1)) activate(z0) -> z0 Types: ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 AND :: tt -> nil:cons:0':s:n__zeros:n__take -> c2 tt :: tt c2 :: c8:c9:c10:c11 -> c2 ACTIVATE :: nil:cons:0':s:n__zeros:n__take -> c8:c9:c10:c11 LENGTH :: nil:cons:0':s:n__zeros:n__take -> c3:c4 nil :: nil:cons:0':s:n__zeros:n__take c3 :: c3:c4 cons :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take c4 :: c3:c4 -> c8:c9:c10:c11 -> c3:c4 activate :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take TAKE :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> c5:c6:c7 0' :: nil:cons:0':s:n__zeros:n__take c5 :: c5:c6:c7 s :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take c6 :: c8:c9:c10:c11 -> c5:c6:c7 c7 :: c5:c6:c7 n__zeros :: nil:cons:0':s:n__zeros:n__take c8 :: c:c1 -> c8:c9:c10:c11 n__take :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take c9 :: c5:c6:c7 -> c8:c9:c10:c11 -> c8:c9:c10:c11 c10 :: c5:c6:c7 -> c8:c9:c10:c11 -> c8:c9:c10:c11 c11 :: c8:c9:c10:c11 zeros :: nil:cons:0':s:n__zeros:n__take and :: tt -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take length :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take take :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take hole_c:c11_12 :: c:c1 hole_c22_12 :: c2 hole_tt3_12 :: tt hole_nil:cons:0':s:n__zeros:n__take4_12 :: nil:cons:0':s:n__zeros:n__take hole_c8:c9:c10:c115_12 :: c8:c9:c10:c11 hole_c3:c46_12 :: c3:c4 hole_c5:c6:c77_12 :: c5:c6:c7 gen_nil:cons:0':s:n__zeros:n__take8_12 :: Nat -> nil:cons:0':s:n__zeros:n__take gen_c8:c9:c10:c119_12 :: Nat -> c8:c9:c10:c11 gen_c3:c410_12 :: Nat -> c3:c4 Generator Equations: gen_nil:cons:0':s:n__zeros:n__take8_12(0) <=> nil gen_nil:cons:0':s:n__zeros:n__take8_12(+(x, 1)) <=> cons(nil, gen_nil:cons:0':s:n__zeros:n__take8_12(x)) gen_c8:c9:c10:c119_12(0) <=> c8(c) gen_c8:c9:c10:c119_12(+(x, 1)) <=> c9(c5, gen_c8:c9:c10:c119_12(x)) gen_c3:c410_12(0) <=> c3 gen_c3:c410_12(+(x, 1)) <=> c4(gen_c3:c410_12(x), c8(c)) The following defined symbols remain to be analysed: activate, ACTIVATE, LENGTH, length They will be analysed ascendingly in the following order: ACTIVATE < LENGTH activate < ACTIVATE activate < LENGTH activate < length ---------------------------------------- (7) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: LENGTH(gen_nil:cons:0':s:n__zeros:n__take8_12(n49_12)) -> *11_12, rt in Omega(n49_12) Induction Base: LENGTH(gen_nil:cons:0':s:n__zeros:n__take8_12(0)) Induction Step: LENGTH(gen_nil:cons:0':s:n__zeros:n__take8_12(+(n49_12, 1))) ->_R^Omega(1) c4(LENGTH(activate(gen_nil:cons:0':s:n__zeros:n__take8_12(n49_12))), ACTIVATE(gen_nil:cons:0':s:n__zeros:n__take8_12(n49_12))) ->_R^Omega(0) c4(LENGTH(gen_nil:cons:0':s:n__zeros:n__take8_12(n49_12)), ACTIVATE(gen_nil:cons:0':s:n__zeros:n__take8_12(n49_12))) ->_IH c4(*11_12, ACTIVATE(gen_nil:cons:0':s:n__zeros:n__take8_12(n49_12))) ->_R^Omega(1) c4(*11_12, c11) 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: ZEROS -> c ZEROS -> c1 AND(tt, z0) -> c2(ACTIVATE(z0)) LENGTH(nil) -> c3 LENGTH(cons(z0, z1)) -> c4(LENGTH(activate(z1)), ACTIVATE(z1)) TAKE(0', z0) -> c5 TAKE(s(z0), cons(z1, z2)) -> c6(ACTIVATE(z2)) TAKE(z0, z1) -> c7 ACTIVATE(n__zeros) -> c8(ZEROS) ACTIVATE(n__take(z0, z1)) -> c9(TAKE(activate(z0), activate(z1)), ACTIVATE(z0)) ACTIVATE(n__take(z0, z1)) -> c10(TAKE(activate(z0), activate(z1)), ACTIVATE(z1)) ACTIVATE(z0) -> c11 zeros -> cons(0', n__zeros) zeros -> n__zeros and(tt, z0) -> activate(z0) length(nil) -> 0' length(cons(z0, z1)) -> s(length(activate(z1))) take(0', z0) -> nil take(s(z0), cons(z1, z2)) -> cons(z1, n__take(z0, activate(z2))) take(z0, z1) -> n__take(z0, z1) activate(n__zeros) -> zeros activate(n__take(z0, z1)) -> take(activate(z0), activate(z1)) activate(z0) -> z0 Types: ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 AND :: tt -> nil:cons:0':s:n__zeros:n__take -> c2 tt :: tt c2 :: c8:c9:c10:c11 -> c2 ACTIVATE :: nil:cons:0':s:n__zeros:n__take -> c8:c9:c10:c11 LENGTH :: nil:cons:0':s:n__zeros:n__take -> c3:c4 nil :: nil:cons:0':s:n__zeros:n__take c3 :: c3:c4 cons :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take c4 :: c3:c4 -> c8:c9:c10:c11 -> c3:c4 activate :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take TAKE :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> c5:c6:c7 0' :: nil:cons:0':s:n__zeros:n__take c5 :: c5:c6:c7 s :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take c6 :: c8:c9:c10:c11 -> c5:c6:c7 c7 :: c5:c6:c7 n__zeros :: nil:cons:0':s:n__zeros:n__take c8 :: c:c1 -> c8:c9:c10:c11 n__take :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take c9 :: c5:c6:c7 -> c8:c9:c10:c11 -> c8:c9:c10:c11 c10 :: c5:c6:c7 -> c8:c9:c10:c11 -> c8:c9:c10:c11 c11 :: c8:c9:c10:c11 zeros :: nil:cons:0':s:n__zeros:n__take and :: tt -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take length :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take take :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take hole_c:c11_12 :: c:c1 hole_c22_12 :: c2 hole_tt3_12 :: tt hole_nil:cons:0':s:n__zeros:n__take4_12 :: nil:cons:0':s:n__zeros:n__take hole_c8:c9:c10:c115_12 :: c8:c9:c10:c11 hole_c3:c46_12 :: c3:c4 hole_c5:c6:c77_12 :: c5:c6:c7 gen_nil:cons:0':s:n__zeros:n__take8_12 :: Nat -> nil:cons:0':s:n__zeros:n__take gen_c8:c9:c10:c119_12 :: Nat -> c8:c9:c10:c11 gen_c3:c410_12 :: Nat -> c3:c4 Generator Equations: gen_nil:cons:0':s:n__zeros:n__take8_12(0) <=> nil gen_nil:cons:0':s:n__zeros:n__take8_12(+(x, 1)) <=> cons(nil, gen_nil:cons:0':s:n__zeros:n__take8_12(x)) gen_c8:c9:c10:c119_12(0) <=> c8(c) gen_c8:c9:c10:c119_12(+(x, 1)) <=> c9(c5, gen_c8:c9:c10:c119_12(x)) gen_c3:c410_12(0) <=> c3 gen_c3:c410_12(+(x, 1)) <=> c4(gen_c3:c410_12(x), c8(c)) The following defined symbols remain to be analysed: LENGTH, length ---------------------------------------- (10) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (11) BOUNDS(n^1, INF) ---------------------------------------- (12) Obligation: Innermost TRS: Rules: ZEROS -> c ZEROS -> c1 AND(tt, z0) -> c2(ACTIVATE(z0)) LENGTH(nil) -> c3 LENGTH(cons(z0, z1)) -> c4(LENGTH(activate(z1)), ACTIVATE(z1)) TAKE(0', z0) -> c5 TAKE(s(z0), cons(z1, z2)) -> c6(ACTIVATE(z2)) TAKE(z0, z1) -> c7 ACTIVATE(n__zeros) -> c8(ZEROS) ACTIVATE(n__take(z0, z1)) -> c9(TAKE(activate(z0), activate(z1)), ACTIVATE(z0)) ACTIVATE(n__take(z0, z1)) -> c10(TAKE(activate(z0), activate(z1)), ACTIVATE(z1)) ACTIVATE(z0) -> c11 zeros -> cons(0', n__zeros) zeros -> n__zeros and(tt, z0) -> activate(z0) length(nil) -> 0' length(cons(z0, z1)) -> s(length(activate(z1))) take(0', z0) -> nil take(s(z0), cons(z1, z2)) -> cons(z1, n__take(z0, activate(z2))) take(z0, z1) -> n__take(z0, z1) activate(n__zeros) -> zeros activate(n__take(z0, z1)) -> take(activate(z0), activate(z1)) activate(z0) -> z0 Types: ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 AND :: tt -> nil:cons:0':s:n__zeros:n__take -> c2 tt :: tt c2 :: c8:c9:c10:c11 -> c2 ACTIVATE :: nil:cons:0':s:n__zeros:n__take -> c8:c9:c10:c11 LENGTH :: nil:cons:0':s:n__zeros:n__take -> c3:c4 nil :: nil:cons:0':s:n__zeros:n__take c3 :: c3:c4 cons :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take c4 :: c3:c4 -> c8:c9:c10:c11 -> c3:c4 activate :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take TAKE :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> c5:c6:c7 0' :: nil:cons:0':s:n__zeros:n__take c5 :: c5:c6:c7 s :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take c6 :: c8:c9:c10:c11 -> c5:c6:c7 c7 :: c5:c6:c7 n__zeros :: nil:cons:0':s:n__zeros:n__take c8 :: c:c1 -> c8:c9:c10:c11 n__take :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take c9 :: c5:c6:c7 -> c8:c9:c10:c11 -> c8:c9:c10:c11 c10 :: c5:c6:c7 -> c8:c9:c10:c11 -> c8:c9:c10:c11 c11 :: c8:c9:c10:c11 zeros :: nil:cons:0':s:n__zeros:n__take and :: tt -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take length :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take take :: nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take -> nil:cons:0':s:n__zeros:n__take hole_c:c11_12 :: c:c1 hole_c22_12 :: c2 hole_tt3_12 :: tt hole_nil:cons:0':s:n__zeros:n__take4_12 :: nil:cons:0':s:n__zeros:n__take hole_c8:c9:c10:c115_12 :: c8:c9:c10:c11 hole_c3:c46_12 :: c3:c4 hole_c5:c6:c77_12 :: c5:c6:c7 gen_nil:cons:0':s:n__zeros:n__take8_12 :: Nat -> nil:cons:0':s:n__zeros:n__take gen_c8:c9:c10:c119_12 :: Nat -> c8:c9:c10:c11 gen_c3:c410_12 :: Nat -> c3:c4 Lemmas: LENGTH(gen_nil:cons:0':s:n__zeros:n__take8_12(n49_12)) -> *11_12, rt in Omega(n49_12) Generator Equations: gen_nil:cons:0':s:n__zeros:n__take8_12(0) <=> nil gen_nil:cons:0':s:n__zeros:n__take8_12(+(x, 1)) <=> cons(nil, gen_nil:cons:0':s:n__zeros:n__take8_12(x)) gen_c8:c9:c10:c119_12(0) <=> c8(c) gen_c8:c9:c10:c119_12(+(x, 1)) <=> c9(c5, gen_c8:c9:c10:c119_12(x)) gen_c3:c410_12(0) <=> c3 gen_c3:c410_12(+(x, 1)) <=> c4(gen_c3:c410_12(x), c8(c)) The following defined symbols remain to be analysed: length ---------------------------------------- (13) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: length(gen_nil:cons:0':s:n__zeros:n__take8_12(n5730_12)) -> *11_12, rt in Omega(0) Induction Base: length(gen_nil:cons:0':s:n__zeros:n__take8_12(0)) Induction Step: length(gen_nil:cons:0':s:n__zeros:n__take8_12(+(n5730_12, 1))) ->_R^Omega(0) s(length(activate(gen_nil:cons:0':s:n__zeros:n__take8_12(n5730_12)))) ->_R^Omega(0) s(length(gen_nil:cons:0':s:n__zeros:n__take8_12(n5730_12))) ->_IH s(*11_12) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (14) BOUNDS(1, INF)