WORST_CASE(Omega(n^1),?) proof of input_Vts1bnq7cI.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). (0) CpxTRS (1) CpxTrsToCdtProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CdtProblem (3) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxRelTRS (5) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxRelTRS (7) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (8) typed CpxTrs (9) OrderProof [LOWER BOUND(ID), 9 ms] (10) typed CpxTrs (11) RewriteLemmaProof [LOWER BOUND(ID), 305 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), 34.9 s] (18) typed CpxTrs ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: inc(Cons(x, xs)) -> Cons(Cons(Nil, Nil), inc(xs)) nestinc(Nil) -> number17(Nil) nestinc(Cons(x, xs)) -> nestinc(inc(Cons(x, xs))) inc(Nil) -> Cons(Nil, Nil) number17(x) -> Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil))))))))))))))))) goal(x) -> nestinc(x) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (2) Obligation: Complexity Dependency Tuples Problem Rules: inc(Cons(z0, z1)) -> Cons(Cons(Nil, Nil), inc(z1)) inc(Nil) -> Cons(Nil, Nil) nestinc(Nil) -> number17(Nil) nestinc(Cons(z0, z1)) -> nestinc(inc(Cons(z0, z1))) number17(z0) -> Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil))))))))))))))))) goal(z0) -> nestinc(z0) Tuples: INC(Cons(z0, z1)) -> c(INC(z1)) INC(Nil) -> c1 NESTINC(Nil) -> c2(NUMBER17(Nil)) NESTINC(Cons(z0, z1)) -> c3(NESTINC(inc(Cons(z0, z1))), INC(Cons(z0, z1))) NUMBER17(z0) -> c4 GOAL(z0) -> c5(NESTINC(z0)) S tuples: INC(Cons(z0, z1)) -> c(INC(z1)) INC(Nil) -> c1 NESTINC(Nil) -> c2(NUMBER17(Nil)) NESTINC(Cons(z0, z1)) -> c3(NESTINC(inc(Cons(z0, z1))), INC(Cons(z0, z1))) NUMBER17(z0) -> c4 GOAL(z0) -> c5(NESTINC(z0)) K tuples:none Defined Rule Symbols: inc_1, nestinc_1, number17_1, goal_1 Defined Pair Symbols: INC_1, NESTINC_1, NUMBER17_1, GOAL_1 Compound Symbols: c_1, c1, c2_1, c3_2, c4, c5_1 ---------------------------------------- (3) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (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: INC(Cons(z0, z1)) -> c(INC(z1)) INC(Nil) -> c1 NESTINC(Nil) -> c2(NUMBER17(Nil)) NESTINC(Cons(z0, z1)) -> c3(NESTINC(inc(Cons(z0, z1))), INC(Cons(z0, z1))) NUMBER17(z0) -> c4 GOAL(z0) -> c5(NESTINC(z0)) The (relative) TRS S consists of the following rules: inc(Cons(z0, z1)) -> Cons(Cons(Nil, Nil), inc(z1)) inc(Nil) -> Cons(Nil, Nil) nestinc(Nil) -> number17(Nil) nestinc(Cons(z0, z1)) -> nestinc(inc(Cons(z0, z1))) number17(z0) -> Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil))))))))))))))))) goal(z0) -> nestinc(z0) Rewrite Strategy: INNERMOST ---------------------------------------- (5) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (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: INC(Cons(z0, z1)) -> c(INC(z1)) INC(Nil) -> c1 NESTINC(Nil) -> c2(NUMBER17(Nil)) NESTINC(Cons(z0, z1)) -> c3(NESTINC(inc(Cons(z0, z1))), INC(Cons(z0, z1))) NUMBER17(z0) -> c4 GOAL(z0) -> c5(NESTINC(z0)) The (relative) TRS S consists of the following rules: inc(Cons(z0, z1)) -> Cons(Cons(Nil, Nil), inc(z1)) inc(Nil) -> Cons(Nil, Nil) nestinc(Nil) -> number17(Nil) nestinc(Cons(z0, z1)) -> nestinc(inc(Cons(z0, z1))) number17(z0) -> Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil))))))))))))))))) goal(z0) -> nestinc(z0) Rewrite Strategy: INNERMOST ---------------------------------------- (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (8) Obligation: Innermost TRS: Rules: INC(Cons(z0, z1)) -> c(INC(z1)) INC(Nil) -> c1 NESTINC(Nil) -> c2(NUMBER17(Nil)) NESTINC(Cons(z0, z1)) -> c3(NESTINC(inc(Cons(z0, z1))), INC(Cons(z0, z1))) NUMBER17(z0) -> c4 GOAL(z0) -> c5(NESTINC(z0)) inc(Cons(z0, z1)) -> Cons(Cons(Nil, Nil), inc(z1)) inc(Nil) -> Cons(Nil, Nil) nestinc(Nil) -> number17(Nil) nestinc(Cons(z0, z1)) -> nestinc(inc(Cons(z0, z1))) number17(z0) -> Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil))))))))))))))))) goal(z0) -> nestinc(z0) Types: INC :: Cons:Nil -> c:c1 Cons :: Cons:Nil -> Cons:Nil -> Cons:Nil c :: c:c1 -> c:c1 Nil :: Cons:Nil c1 :: c:c1 NESTINC :: Cons:Nil -> c2:c3 c2 :: c4 -> c2:c3 NUMBER17 :: Cons:Nil -> c4 c3 :: c2:c3 -> c:c1 -> c2:c3 inc :: Cons:Nil -> Cons:Nil c4 :: c4 GOAL :: Cons:Nil -> c5 c5 :: c2:c3 -> c5 nestinc :: Cons:Nil -> Cons:Nil number17 :: Cons:Nil -> Cons:Nil goal :: Cons:Nil -> Cons:Nil hole_c:c11_6 :: c:c1 hole_Cons:Nil2_6 :: Cons:Nil hole_c2:c33_6 :: c2:c3 hole_c44_6 :: c4 hole_c55_6 :: c5 gen_c:c16_6 :: Nat -> c:c1 gen_Cons:Nil7_6 :: Nat -> Cons:Nil gen_c2:c38_6 :: Nat -> c2:c3 ---------------------------------------- (9) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: INC, NESTINC, inc, nestinc They will be analysed ascendingly in the following order: INC < NESTINC inc < NESTINC inc < nestinc ---------------------------------------- (10) Obligation: Innermost TRS: Rules: INC(Cons(z0, z1)) -> c(INC(z1)) INC(Nil) -> c1 NESTINC(Nil) -> c2(NUMBER17(Nil)) NESTINC(Cons(z0, z1)) -> c3(NESTINC(inc(Cons(z0, z1))), INC(Cons(z0, z1))) NUMBER17(z0) -> c4 GOAL(z0) -> c5(NESTINC(z0)) inc(Cons(z0, z1)) -> Cons(Cons(Nil, Nil), inc(z1)) inc(Nil) -> Cons(Nil, Nil) nestinc(Nil) -> number17(Nil) nestinc(Cons(z0, z1)) -> nestinc(inc(Cons(z0, z1))) number17(z0) -> Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil))))))))))))))))) goal(z0) -> nestinc(z0) Types: INC :: Cons:Nil -> c:c1 Cons :: Cons:Nil -> Cons:Nil -> Cons:Nil c :: c:c1 -> c:c1 Nil :: Cons:Nil c1 :: c:c1 NESTINC :: Cons:Nil -> c2:c3 c2 :: c4 -> c2:c3 NUMBER17 :: Cons:Nil -> c4 c3 :: c2:c3 -> c:c1 -> c2:c3 inc :: Cons:Nil -> Cons:Nil c4 :: c4 GOAL :: Cons:Nil -> c5 c5 :: c2:c3 -> c5 nestinc :: Cons:Nil -> Cons:Nil number17 :: Cons:Nil -> Cons:Nil goal :: Cons:Nil -> Cons:Nil hole_c:c11_6 :: c:c1 hole_Cons:Nil2_6 :: Cons:Nil hole_c2:c33_6 :: c2:c3 hole_c44_6 :: c4 hole_c55_6 :: c5 gen_c:c16_6 :: Nat -> c:c1 gen_Cons:Nil7_6 :: Nat -> Cons:Nil gen_c2:c38_6 :: Nat -> c2:c3 Generator Equations: gen_c:c16_6(0) <=> c1 gen_c:c16_6(+(x, 1)) <=> c(gen_c:c16_6(x)) gen_Cons:Nil7_6(0) <=> Nil gen_Cons:Nil7_6(+(x, 1)) <=> Cons(Nil, gen_Cons:Nil7_6(x)) gen_c2:c38_6(0) <=> c2(c4) gen_c2:c38_6(+(x, 1)) <=> c3(gen_c2:c38_6(x), c1) The following defined symbols remain to be analysed: INC, NESTINC, inc, nestinc They will be analysed ascendingly in the following order: INC < NESTINC inc < NESTINC inc < nestinc ---------------------------------------- (11) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: INC(gen_Cons:Nil7_6(n10_6)) -> gen_c:c16_6(n10_6), rt in Omega(1 + n10_6) Induction Base: INC(gen_Cons:Nil7_6(0)) ->_R^Omega(1) c1 Induction Step: INC(gen_Cons:Nil7_6(+(n10_6, 1))) ->_R^Omega(1) c(INC(gen_Cons:Nil7_6(n10_6))) ->_IH c(gen_c:c16_6(c11_6)) 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: INC(Cons(z0, z1)) -> c(INC(z1)) INC(Nil) -> c1 NESTINC(Nil) -> c2(NUMBER17(Nil)) NESTINC(Cons(z0, z1)) -> c3(NESTINC(inc(Cons(z0, z1))), INC(Cons(z0, z1))) NUMBER17(z0) -> c4 GOAL(z0) -> c5(NESTINC(z0)) inc(Cons(z0, z1)) -> Cons(Cons(Nil, Nil), inc(z1)) inc(Nil) -> Cons(Nil, Nil) nestinc(Nil) -> number17(Nil) nestinc(Cons(z0, z1)) -> nestinc(inc(Cons(z0, z1))) number17(z0) -> Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil))))))))))))))))) goal(z0) -> nestinc(z0) Types: INC :: Cons:Nil -> c:c1 Cons :: Cons:Nil -> Cons:Nil -> Cons:Nil c :: c:c1 -> c:c1 Nil :: Cons:Nil c1 :: c:c1 NESTINC :: Cons:Nil -> c2:c3 c2 :: c4 -> c2:c3 NUMBER17 :: Cons:Nil -> c4 c3 :: c2:c3 -> c:c1 -> c2:c3 inc :: Cons:Nil -> Cons:Nil c4 :: c4 GOAL :: Cons:Nil -> c5 c5 :: c2:c3 -> c5 nestinc :: Cons:Nil -> Cons:Nil number17 :: Cons:Nil -> Cons:Nil goal :: Cons:Nil -> Cons:Nil hole_c:c11_6 :: c:c1 hole_Cons:Nil2_6 :: Cons:Nil hole_c2:c33_6 :: c2:c3 hole_c44_6 :: c4 hole_c55_6 :: c5 gen_c:c16_6 :: Nat -> c:c1 gen_Cons:Nil7_6 :: Nat -> Cons:Nil gen_c2:c38_6 :: Nat -> c2:c3 Generator Equations: gen_c:c16_6(0) <=> c1 gen_c:c16_6(+(x, 1)) <=> c(gen_c:c16_6(x)) gen_Cons:Nil7_6(0) <=> Nil gen_Cons:Nil7_6(+(x, 1)) <=> Cons(Nil, gen_Cons:Nil7_6(x)) gen_c2:c38_6(0) <=> c2(c4) gen_c2:c38_6(+(x, 1)) <=> c3(gen_c2:c38_6(x), c1) The following defined symbols remain to be analysed: INC, NESTINC, inc, nestinc They will be analysed ascendingly in the following order: INC < NESTINC inc < NESTINC inc < nestinc ---------------------------------------- (14) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (15) BOUNDS(n^1, INF) ---------------------------------------- (16) Obligation: Innermost TRS: Rules: INC(Cons(z0, z1)) -> c(INC(z1)) INC(Nil) -> c1 NESTINC(Nil) -> c2(NUMBER17(Nil)) NESTINC(Cons(z0, z1)) -> c3(NESTINC(inc(Cons(z0, z1))), INC(Cons(z0, z1))) NUMBER17(z0) -> c4 GOAL(z0) -> c5(NESTINC(z0)) inc(Cons(z0, z1)) -> Cons(Cons(Nil, Nil), inc(z1)) inc(Nil) -> Cons(Nil, Nil) nestinc(Nil) -> number17(Nil) nestinc(Cons(z0, z1)) -> nestinc(inc(Cons(z0, z1))) number17(z0) -> Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil))))))))))))))))) goal(z0) -> nestinc(z0) Types: INC :: Cons:Nil -> c:c1 Cons :: Cons:Nil -> Cons:Nil -> Cons:Nil c :: c:c1 -> c:c1 Nil :: Cons:Nil c1 :: c:c1 NESTINC :: Cons:Nil -> c2:c3 c2 :: c4 -> c2:c3 NUMBER17 :: Cons:Nil -> c4 c3 :: c2:c3 -> c:c1 -> c2:c3 inc :: Cons:Nil -> Cons:Nil c4 :: c4 GOAL :: Cons:Nil -> c5 c5 :: c2:c3 -> c5 nestinc :: Cons:Nil -> Cons:Nil number17 :: Cons:Nil -> Cons:Nil goal :: Cons:Nil -> Cons:Nil hole_c:c11_6 :: c:c1 hole_Cons:Nil2_6 :: Cons:Nil hole_c2:c33_6 :: c2:c3 hole_c44_6 :: c4 hole_c55_6 :: c5 gen_c:c16_6 :: Nat -> c:c1 gen_Cons:Nil7_6 :: Nat -> Cons:Nil gen_c2:c38_6 :: Nat -> c2:c3 Lemmas: INC(gen_Cons:Nil7_6(n10_6)) -> gen_c:c16_6(n10_6), rt in Omega(1 + n10_6) Generator Equations: gen_c:c16_6(0) <=> c1 gen_c:c16_6(+(x, 1)) <=> c(gen_c:c16_6(x)) gen_Cons:Nil7_6(0) <=> Nil gen_Cons:Nil7_6(+(x, 1)) <=> Cons(Nil, gen_Cons:Nil7_6(x)) gen_c2:c38_6(0) <=> c2(c4) gen_c2:c38_6(+(x, 1)) <=> c3(gen_c2:c38_6(x), c1) The following defined symbols remain to be analysed: inc, NESTINC, nestinc They will be analysed ascendingly in the following order: inc < NESTINC inc < nestinc ---------------------------------------- (17) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: inc(gen_Cons:Nil7_6(+(1, n240_6))) -> *9_6, rt in Omega(0) Induction Base: inc(gen_Cons:Nil7_6(+(1, 0))) Induction Step: inc(gen_Cons:Nil7_6(+(1, +(n240_6, 1)))) ->_R^Omega(0) Cons(Cons(Nil, Nil), inc(gen_Cons:Nil7_6(+(1, n240_6)))) ->_IH Cons(Cons(Nil, Nil), *9_6) 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: INC(Cons(z0, z1)) -> c(INC(z1)) INC(Nil) -> c1 NESTINC(Nil) -> c2(NUMBER17(Nil)) NESTINC(Cons(z0, z1)) -> c3(NESTINC(inc(Cons(z0, z1))), INC(Cons(z0, z1))) NUMBER17(z0) -> c4 GOAL(z0) -> c5(NESTINC(z0)) inc(Cons(z0, z1)) -> Cons(Cons(Nil, Nil), inc(z1)) inc(Nil) -> Cons(Nil, Nil) nestinc(Nil) -> number17(Nil) nestinc(Cons(z0, z1)) -> nestinc(inc(Cons(z0, z1))) number17(z0) -> Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil))))))))))))))))) goal(z0) -> nestinc(z0) Types: INC :: Cons:Nil -> c:c1 Cons :: Cons:Nil -> Cons:Nil -> Cons:Nil c :: c:c1 -> c:c1 Nil :: Cons:Nil c1 :: c:c1 NESTINC :: Cons:Nil -> c2:c3 c2 :: c4 -> c2:c3 NUMBER17 :: Cons:Nil -> c4 c3 :: c2:c3 -> c:c1 -> c2:c3 inc :: Cons:Nil -> Cons:Nil c4 :: c4 GOAL :: Cons:Nil -> c5 c5 :: c2:c3 -> c5 nestinc :: Cons:Nil -> Cons:Nil number17 :: Cons:Nil -> Cons:Nil goal :: Cons:Nil -> Cons:Nil hole_c:c11_6 :: c:c1 hole_Cons:Nil2_6 :: Cons:Nil hole_c2:c33_6 :: c2:c3 hole_c44_6 :: c4 hole_c55_6 :: c5 gen_c:c16_6 :: Nat -> c:c1 gen_Cons:Nil7_6 :: Nat -> Cons:Nil gen_c2:c38_6 :: Nat -> c2:c3 Lemmas: INC(gen_Cons:Nil7_6(n10_6)) -> gen_c:c16_6(n10_6), rt in Omega(1 + n10_6) inc(gen_Cons:Nil7_6(+(1, n240_6))) -> *9_6, rt in Omega(0) Generator Equations: gen_c:c16_6(0) <=> c1 gen_c:c16_6(+(x, 1)) <=> c(gen_c:c16_6(x)) gen_Cons:Nil7_6(0) <=> Nil gen_Cons:Nil7_6(+(x, 1)) <=> Cons(Nil, gen_Cons:Nil7_6(x)) gen_c2:c38_6(0) <=> c2(c4) gen_c2:c38_6(+(x, 1)) <=> c3(gen_c2:c38_6(x), c1) The following defined symbols remain to be analysed: NESTINC, nestinc