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), 1000 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), 1 ms] (10) typed CpxTrs (11) RewriteLemmaProof [LOWER BOUND(ID), 13.7 s] (12) typed CpxTrs (13) RewriteLemmaProof [LOWER BOUND(ID), 3895 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__FST(0, z0) -> c A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0, z0) -> c5(MARK(z0)) A__ADD(s(z0), z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0, z1)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0) -> c17 MARK(s(z0)) -> c18 MARK(nil) -> c19 MARK(cons(z0, z1)) -> c20(MARK(z0)) The (relative) TRS S consists of the following rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) 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__FST(0, z0) -> c A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0, z0) -> c5(MARK(z0)) A__ADD(s(z0), z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0, z1)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0) -> c17 MARK(s(z0)) -> c18 MARK(nil) -> c19 MARK(cons(z0, z1)) -> c20(MARK(z0)) The (relative) TRS S consists of the following rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) 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__FST(0', z0) -> c A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0', z0) -> c5(MARK(z0)) A__ADD(s(z0), z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0, z1)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0') -> c17 MARK(s(z0)) -> c18 MARK(nil) -> c19 MARK(cons(z0, z1)) -> c20(MARK(z0)) The (relative) TRS S consists of the following rules: a__fst(0', z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0' a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0') -> 0' mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Rewrite Strategy: INNERMOST ---------------------------------------- (5) SlicingProof (LOWER BOUND(ID)) Sliced the following arguments: s/0 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__FST(0', z0) -> c A__FST(s, cons(z1)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0', z0) -> c5(MARK(z0)) A__ADD(s, z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0') -> c17 MARK(s) -> c18 MARK(nil) -> c19 MARK(cons(z0)) -> c20(MARK(z0)) The (relative) TRS S consists of the following rules: a__fst(0', z0) -> nil a__fst(s, cons(z1)) -> cons(mark(z1)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0)) a__from(z0) -> from(z0) a__add(0', z0) -> mark(z0) a__add(s, z1) -> s a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0' a__len(cons(z0)) -> s a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0') -> 0' mark(s) -> s mark(nil) -> nil mark(cons(z0)) -> cons(mark(z0)) Rewrite Strategy: INNERMOST ---------------------------------------- (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (8) Obligation: Innermost TRS: Rules: A__FST(0', z0) -> c A__FST(s, cons(z1)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0', z0) -> c5(MARK(z0)) A__ADD(s, z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0') -> c17 MARK(s) -> c18 MARK(nil) -> c19 MARK(cons(z0)) -> c20(MARK(z0)) a__fst(0', z0) -> nil a__fst(s, cons(z1)) -> cons(mark(z1)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0)) a__from(z0) -> from(z0) a__add(0', z0) -> mark(z0) a__add(s, z1) -> s a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0' a__len(cons(z0)) -> s a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0') -> 0' mark(s) -> s mark(nil) -> nil mark(cons(z0)) -> cons(mark(z0)) Types: A__FST :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c:c1:c2 0' :: 0':s:cons:nil:fst:from:add:len c :: c:c1:c2 s :: 0':s:cons:nil:fst:from:add:len cons :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c1 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 MARK :: 0':s:cons:nil:fst:from:add:len -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c2 :: c:c1:c2 A__FROM :: 0':s:cons:nil:fst:from:add:len -> c3:c4 c3 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c3:c4 c4 :: c3:c4 A__ADD :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c5:c6:c7 c5 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7 c6 :: c5:c6:c7 c7 :: c5:c6:c7 A__LEN :: 0':s:cons:nil:fst:from:add:len -> c8:c9:c10 nil :: 0':s:cons:nil:fst:from:add:len c8 :: c8:c9:c10 c9 :: c8:c9:c10 c10 :: c8:c9:c10 fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c11 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 mark :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c12 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c13 :: c3:c4 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c14 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c15 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c16 :: c8:c9:c10 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c17 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c18 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c19 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c20 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 a__fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len hole_c:c1:c21_21 :: c:c1:c2 hole_0':s:cons:nil:fst:from:add:len2_21 :: 0':s:cons:nil:fst:from:add:len hole_c11:c12:c13:c14:c15:c16:c17:c18:c19:c203_21 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 hole_c3:c44_21 :: c3:c4 hole_c5:c6:c75_21 :: c5:c6:c7 hole_c8:c9:c106_21 :: c8:c9:c10 gen_0':s:cons:nil:fst:from:add:len7_21 :: Nat -> 0':s:cons:nil:fst:from:add:len gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21 :: Nat -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 ---------------------------------------- (9) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: MARK, A__FROM, mark, a__from They will be analysed ascendingly in the following order: MARK = A__FROM mark < MARK mark = a__from ---------------------------------------- (10) Obligation: Innermost TRS: Rules: A__FST(0', z0) -> c A__FST(s, cons(z1)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0', z0) -> c5(MARK(z0)) A__ADD(s, z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0') -> c17 MARK(s) -> c18 MARK(nil) -> c19 MARK(cons(z0)) -> c20(MARK(z0)) a__fst(0', z0) -> nil a__fst(s, cons(z1)) -> cons(mark(z1)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0)) a__from(z0) -> from(z0) a__add(0', z0) -> mark(z0) a__add(s, z1) -> s a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0' a__len(cons(z0)) -> s a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0') -> 0' mark(s) -> s mark(nil) -> nil mark(cons(z0)) -> cons(mark(z0)) Types: A__FST :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c:c1:c2 0' :: 0':s:cons:nil:fst:from:add:len c :: c:c1:c2 s :: 0':s:cons:nil:fst:from:add:len cons :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c1 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 MARK :: 0':s:cons:nil:fst:from:add:len -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c2 :: c:c1:c2 A__FROM :: 0':s:cons:nil:fst:from:add:len -> c3:c4 c3 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c3:c4 c4 :: c3:c4 A__ADD :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c5:c6:c7 c5 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7 c6 :: c5:c6:c7 c7 :: c5:c6:c7 A__LEN :: 0':s:cons:nil:fst:from:add:len -> c8:c9:c10 nil :: 0':s:cons:nil:fst:from:add:len c8 :: c8:c9:c10 c9 :: c8:c9:c10 c10 :: c8:c9:c10 fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c11 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 mark :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c12 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c13 :: c3:c4 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c14 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c15 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c16 :: c8:c9:c10 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c17 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c18 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c19 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c20 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 a__fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len hole_c:c1:c21_21 :: c:c1:c2 hole_0':s:cons:nil:fst:from:add:len2_21 :: 0':s:cons:nil:fst:from:add:len hole_c11:c12:c13:c14:c15:c16:c17:c18:c19:c203_21 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 hole_c3:c44_21 :: c3:c4 hole_c5:c6:c75_21 :: c5:c6:c7 hole_c8:c9:c106_21 :: c8:c9:c10 gen_0':s:cons:nil:fst:from:add:len7_21 :: Nat -> 0':s:cons:nil:fst:from:add:len gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21 :: Nat -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 Generator Equations: gen_0':s:cons:nil:fst:from:add:len7_21(0) <=> 0' gen_0':s:cons:nil:fst:from:add:len7_21(+(x, 1)) <=> cons(gen_0':s:cons:nil:fst:from:add:len7_21(x)) gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(0) <=> c17 gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(+(x, 1)) <=> c11(c, gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(x)) The following defined symbols remain to be analysed: a__from, MARK, A__FROM, mark They will be analysed ascendingly in the following order: MARK = A__FROM mark < MARK mark = a__from ---------------------------------------- (11) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen_0':s:cons:nil:fst:from:add:len7_21(n27540_21)) -> gen_0':s:cons:nil:fst:from:add:len7_21(n27540_21), rt in Omega(0) Induction Base: mark(gen_0':s:cons:nil:fst:from:add:len7_21(0)) ->_R^Omega(0) 0' Induction Step: mark(gen_0':s:cons:nil:fst:from:add:len7_21(+(n27540_21, 1))) ->_R^Omega(0) cons(mark(gen_0':s:cons:nil:fst:from:add:len7_21(n27540_21))) ->_IH cons(gen_0':s:cons:nil:fst:from:add:len7_21(c27541_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__FST(0', z0) -> c A__FST(s, cons(z1)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0', z0) -> c5(MARK(z0)) A__ADD(s, z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0') -> c17 MARK(s) -> c18 MARK(nil) -> c19 MARK(cons(z0)) -> c20(MARK(z0)) a__fst(0', z0) -> nil a__fst(s, cons(z1)) -> cons(mark(z1)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0)) a__from(z0) -> from(z0) a__add(0', z0) -> mark(z0) a__add(s, z1) -> s a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0' a__len(cons(z0)) -> s a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0') -> 0' mark(s) -> s mark(nil) -> nil mark(cons(z0)) -> cons(mark(z0)) Types: A__FST :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c:c1:c2 0' :: 0':s:cons:nil:fst:from:add:len c :: c:c1:c2 s :: 0':s:cons:nil:fst:from:add:len cons :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c1 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 MARK :: 0':s:cons:nil:fst:from:add:len -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c2 :: c:c1:c2 A__FROM :: 0':s:cons:nil:fst:from:add:len -> c3:c4 c3 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c3:c4 c4 :: c3:c4 A__ADD :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c5:c6:c7 c5 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7 c6 :: c5:c6:c7 c7 :: c5:c6:c7 A__LEN :: 0':s:cons:nil:fst:from:add:len -> c8:c9:c10 nil :: 0':s:cons:nil:fst:from:add:len c8 :: c8:c9:c10 c9 :: c8:c9:c10 c10 :: c8:c9:c10 fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c11 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 mark :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c12 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c13 :: c3:c4 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c14 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c15 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c16 :: c8:c9:c10 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c17 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c18 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c19 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c20 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 a__fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len hole_c:c1:c21_21 :: c:c1:c2 hole_0':s:cons:nil:fst:from:add:len2_21 :: 0':s:cons:nil:fst:from:add:len hole_c11:c12:c13:c14:c15:c16:c17:c18:c19:c203_21 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 hole_c3:c44_21 :: c3:c4 hole_c5:c6:c75_21 :: c5:c6:c7 hole_c8:c9:c106_21 :: c8:c9:c10 gen_0':s:cons:nil:fst:from:add:len7_21 :: Nat -> 0':s:cons:nil:fst:from:add:len gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21 :: Nat -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 Lemmas: mark(gen_0':s:cons:nil:fst:from:add:len7_21(n27540_21)) -> gen_0':s:cons:nil:fst:from:add:len7_21(n27540_21), rt in Omega(0) Generator Equations: gen_0':s:cons:nil:fst:from:add:len7_21(0) <=> 0' gen_0':s:cons:nil:fst:from:add:len7_21(+(x, 1)) <=> cons(gen_0':s:cons:nil:fst:from:add:len7_21(x)) gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(0) <=> c17 gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(+(x, 1)) <=> c11(c, gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(x)) The following defined symbols remain to be analysed: a__from, MARK, A__FROM They will be analysed ascendingly in the following order: MARK = A__FROM mark < MARK mark = a__from ---------------------------------------- (13) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: MARK(gen_0':s:cons:nil:fst:from:add:len7_21(+(1, n91594_21))) -> *9_21, rt in Omega(n91594_21) Induction Base: MARK(gen_0':s:cons:nil:fst:from:add:len7_21(+(1, 0))) Induction Step: MARK(gen_0':s:cons:nil:fst:from:add:len7_21(+(1, +(n91594_21, 1)))) ->_R^Omega(1) c20(MARK(gen_0':s:cons:nil:fst:from:add:len7_21(+(1, n91594_21)))) ->_IH c20(*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__FST(0', z0) -> c A__FST(s, cons(z1)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0', z0) -> c5(MARK(z0)) A__ADD(s, z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0') -> c17 MARK(s) -> c18 MARK(nil) -> c19 MARK(cons(z0)) -> c20(MARK(z0)) a__fst(0', z0) -> nil a__fst(s, cons(z1)) -> cons(mark(z1)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0)) a__from(z0) -> from(z0) a__add(0', z0) -> mark(z0) a__add(s, z1) -> s a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0' a__len(cons(z0)) -> s a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0') -> 0' mark(s) -> s mark(nil) -> nil mark(cons(z0)) -> cons(mark(z0)) Types: A__FST :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c:c1:c2 0' :: 0':s:cons:nil:fst:from:add:len c :: c:c1:c2 s :: 0':s:cons:nil:fst:from:add:len cons :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c1 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 MARK :: 0':s:cons:nil:fst:from:add:len -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c2 :: c:c1:c2 A__FROM :: 0':s:cons:nil:fst:from:add:len -> c3:c4 c3 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c3:c4 c4 :: c3:c4 A__ADD :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c5:c6:c7 c5 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7 c6 :: c5:c6:c7 c7 :: c5:c6:c7 A__LEN :: 0':s:cons:nil:fst:from:add:len -> c8:c9:c10 nil :: 0':s:cons:nil:fst:from:add:len c8 :: c8:c9:c10 c9 :: c8:c9:c10 c10 :: c8:c9:c10 fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c11 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 mark :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c12 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c13 :: c3:c4 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c14 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c15 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c16 :: c8:c9:c10 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c17 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c18 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c19 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c20 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 a__fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len hole_c:c1:c21_21 :: c:c1:c2 hole_0':s:cons:nil:fst:from:add:len2_21 :: 0':s:cons:nil:fst:from:add:len hole_c11:c12:c13:c14:c15:c16:c17:c18:c19:c203_21 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 hole_c3:c44_21 :: c3:c4 hole_c5:c6:c75_21 :: c5:c6:c7 hole_c8:c9:c106_21 :: c8:c9:c10 gen_0':s:cons:nil:fst:from:add:len7_21 :: Nat -> 0':s:cons:nil:fst:from:add:len gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21 :: Nat -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 Lemmas: mark(gen_0':s:cons:nil:fst:from:add:len7_21(n27540_21)) -> gen_0':s:cons:nil:fst:from:add:len7_21(n27540_21), rt in Omega(0) Generator Equations: gen_0':s:cons:nil:fst:from:add:len7_21(0) <=> 0' gen_0':s:cons:nil:fst:from:add:len7_21(+(x, 1)) <=> cons(gen_0':s:cons:nil:fst:from:add:len7_21(x)) gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(0) <=> c17 gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(+(x, 1)) <=> c11(c, gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(x)) The following defined symbols remain to be analysed: MARK They will be analysed ascendingly in the following order: MARK = A__FROM ---------------------------------------- (16) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (17) BOUNDS(n^1, INF) ---------------------------------------- (18) Obligation: Innermost TRS: Rules: A__FST(0', z0) -> c A__FST(s, cons(z1)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0', z0) -> c5(MARK(z0)) A__ADD(s, z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0') -> c17 MARK(s) -> c18 MARK(nil) -> c19 MARK(cons(z0)) -> c20(MARK(z0)) a__fst(0', z0) -> nil a__fst(s, cons(z1)) -> cons(mark(z1)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0)) a__from(z0) -> from(z0) a__add(0', z0) -> mark(z0) a__add(s, z1) -> s a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0' a__len(cons(z0)) -> s a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0') -> 0' mark(s) -> s mark(nil) -> nil mark(cons(z0)) -> cons(mark(z0)) Types: A__FST :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c:c1:c2 0' :: 0':s:cons:nil:fst:from:add:len c :: c:c1:c2 s :: 0':s:cons:nil:fst:from:add:len cons :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c1 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 MARK :: 0':s:cons:nil:fst:from:add:len -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c2 :: c:c1:c2 A__FROM :: 0':s:cons:nil:fst:from:add:len -> c3:c4 c3 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c3:c4 c4 :: c3:c4 A__ADD :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c5:c6:c7 c5 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7 c6 :: c5:c6:c7 c7 :: c5:c6:c7 A__LEN :: 0':s:cons:nil:fst:from:add:len -> c8:c9:c10 nil :: 0':s:cons:nil:fst:from:add:len c8 :: c8:c9:c10 c9 :: c8:c9:c10 c10 :: c8:c9:c10 fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c11 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 mark :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c12 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c13 :: c3:c4 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c14 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c15 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c16 :: c8:c9:c10 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c17 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c18 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c19 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c20 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 a__fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len hole_c:c1:c21_21 :: c:c1:c2 hole_0':s:cons:nil:fst:from:add:len2_21 :: 0':s:cons:nil:fst:from:add:len hole_c11:c12:c13:c14:c15:c16:c17:c18:c19:c203_21 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 hole_c3:c44_21 :: c3:c4 hole_c5:c6:c75_21 :: c5:c6:c7 hole_c8:c9:c106_21 :: c8:c9:c10 gen_0':s:cons:nil:fst:from:add:len7_21 :: Nat -> 0':s:cons:nil:fst:from:add:len gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21 :: Nat -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 Lemmas: mark(gen_0':s:cons:nil:fst:from:add:len7_21(n27540_21)) -> gen_0':s:cons:nil:fst:from:add:len7_21(n27540_21), rt in Omega(0) MARK(gen_0':s:cons:nil:fst:from:add:len7_21(+(1, n91594_21))) -> *9_21, rt in Omega(n91594_21) Generator Equations: gen_0':s:cons:nil:fst:from:add:len7_21(0) <=> 0' gen_0':s:cons:nil:fst:from:add:len7_21(+(x, 1)) <=> cons(gen_0':s:cons:nil:fst:from:add:len7_21(x)) gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(0) <=> c17 gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(+(x, 1)) <=> c11(c, gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(x)) The following defined symbols remain to be analysed: A__FROM They will be analysed ascendingly in the following order: MARK = A__FROM