WORST_CASE(Omega(n^1),?) proof of input_kOSPO8WC2P.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), 4 ms] (10) typed CpxTrs (11) RewriteLemmaProof [LOWER BOUND(ID), 1866 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), 445 ms] (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: fib(0) -> 0 fib(s(0)) -> s(0) fib(s(s(x))) -> +(fib(s(x)), fib(x)) +(x, 0) -> x +(x, s(y)) -> s(+(x, y)) 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: fib(0) -> 0 fib(s(0)) -> s(0) fib(s(s(z0))) -> +(fib(s(z0)), fib(z0)) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: FIB(0) -> c FIB(s(0)) -> c1 FIB(s(s(z0))) -> c2(+'(fib(s(z0)), fib(z0)), FIB(s(z0))) FIB(s(s(z0))) -> c3(+'(fib(s(z0)), fib(z0)), FIB(z0)) +'(z0, 0) -> c4 +'(z0, s(z1)) -> c5(+'(z0, z1)) S tuples: FIB(0) -> c FIB(s(0)) -> c1 FIB(s(s(z0))) -> c2(+'(fib(s(z0)), fib(z0)), FIB(s(z0))) FIB(s(s(z0))) -> c3(+'(fib(s(z0)), fib(z0)), FIB(z0)) +'(z0, 0) -> c4 +'(z0, s(z1)) -> c5(+'(z0, z1)) K tuples:none Defined Rule Symbols: fib_1, +_2 Defined Pair Symbols: FIB_1, +'_2 Compound Symbols: c, c1, c2_2, 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: FIB(0) -> c FIB(s(0)) -> c1 FIB(s(s(z0))) -> c2(+'(fib(s(z0)), fib(z0)), FIB(s(z0))) FIB(s(s(z0))) -> c3(+'(fib(s(z0)), fib(z0)), FIB(z0)) +'(z0, 0) -> c4 +'(z0, s(z1)) -> c5(+'(z0, z1)) The (relative) TRS S consists of the following rules: fib(0) -> 0 fib(s(0)) -> s(0) fib(s(s(z0))) -> +(fib(s(z0)), fib(z0)) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) 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: FIB(0') -> c FIB(s(0')) -> c1 FIB(s(s(z0))) -> c2(+'(fib(s(z0)), fib(z0)), FIB(s(z0))) FIB(s(s(z0))) -> c3(+'(fib(s(z0)), fib(z0)), FIB(z0)) +'(z0, 0') -> c4 +'(z0, s(z1)) -> c5(+'(z0, z1)) The (relative) TRS S consists of the following rules: fib(0') -> 0' fib(s(0')) -> s(0') fib(s(s(z0))) -> +'(fib(s(z0)), fib(z0)) +'(z0, 0') -> z0 +'(z0, s(z1)) -> s(+'(z0, z1)) Rewrite Strategy: INNERMOST ---------------------------------------- (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (8) Obligation: Innermost TRS: Rules: FIB(0') -> c FIB(s(0')) -> c1 FIB(s(s(z0))) -> c2(+'(fib(s(z0)), fib(z0)), FIB(s(z0))) FIB(s(s(z0))) -> c3(+'(fib(s(z0)), fib(z0)), FIB(z0)) +'(z0, 0') -> c4 +'(z0, s(z1)) -> c5(+'(z0, z1)) fib(0') -> 0' fib(s(0')) -> s(0') fib(s(s(z0))) -> +'(fib(s(z0)), fib(z0)) +'(z0, 0') -> z0 +'(z0, s(z1)) -> s(+'(z0, z1)) Types: FIB :: 0':s:c4:c5 -> c:c1:c2:c3 0' :: 0':s:c4:c5 c :: c:c1:c2:c3 s :: 0':s:c4:c5 -> 0':s:c4:c5 c1 :: c:c1:c2:c3 c2 :: 0':s:c4:c5 -> c:c1:c2:c3 -> c:c1:c2:c3 +' :: 0':s:c4:c5 -> 0':s:c4:c5 -> 0':s:c4:c5 fib :: 0':s:c4:c5 -> 0':s:c4:c5 c3 :: 0':s:c4:c5 -> c:c1:c2:c3 -> c:c1:c2:c3 c4 :: 0':s:c4:c5 c5 :: 0':s:c4:c5 -> 0':s:c4:c5 hole_c:c1:c2:c31_6 :: c:c1:c2:c3 hole_0':s:c4:c52_6 :: 0':s:c4:c5 gen_c:c1:c2:c33_6 :: Nat -> c:c1:c2:c3 gen_0':s:c4:c54_6 :: Nat -> 0':s:c4:c5 ---------------------------------------- (9) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: FIB, +', fib They will be analysed ascendingly in the following order: +' < FIB fib < FIB +' < fib ---------------------------------------- (10) Obligation: Innermost TRS: Rules: FIB(0') -> c FIB(s(0')) -> c1 FIB(s(s(z0))) -> c2(+'(fib(s(z0)), fib(z0)), FIB(s(z0))) FIB(s(s(z0))) -> c3(+'(fib(s(z0)), fib(z0)), FIB(z0)) +'(z0, 0') -> c4 +'(z0, s(z1)) -> c5(+'(z0, z1)) fib(0') -> 0' fib(s(0')) -> s(0') fib(s(s(z0))) -> +'(fib(s(z0)), fib(z0)) +'(z0, 0') -> z0 +'(z0, s(z1)) -> s(+'(z0, z1)) Types: FIB :: 0':s:c4:c5 -> c:c1:c2:c3 0' :: 0':s:c4:c5 c :: c:c1:c2:c3 s :: 0':s:c4:c5 -> 0':s:c4:c5 c1 :: c:c1:c2:c3 c2 :: 0':s:c4:c5 -> c:c1:c2:c3 -> c:c1:c2:c3 +' :: 0':s:c4:c5 -> 0':s:c4:c5 -> 0':s:c4:c5 fib :: 0':s:c4:c5 -> 0':s:c4:c5 c3 :: 0':s:c4:c5 -> c:c1:c2:c3 -> c:c1:c2:c3 c4 :: 0':s:c4:c5 c5 :: 0':s:c4:c5 -> 0':s:c4:c5 hole_c:c1:c2:c31_6 :: c:c1:c2:c3 hole_0':s:c4:c52_6 :: 0':s:c4:c5 gen_c:c1:c2:c33_6 :: Nat -> c:c1:c2:c3 gen_0':s:c4:c54_6 :: Nat -> 0':s:c4:c5 Generator Equations: gen_c:c1:c2:c33_6(0) <=> c gen_c:c1:c2:c33_6(+(x, 1)) <=> c2(0', gen_c:c1:c2:c33_6(x)) gen_0':s:c4:c54_6(0) <=> 0' gen_0':s:c4:c54_6(+(x, 1)) <=> s(gen_0':s:c4:c54_6(x)) The following defined symbols remain to be analysed: +', FIB, fib They will be analysed ascendingly in the following order: +' < FIB fib < FIB +' < fib ---------------------------------------- (11) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: +'(gen_0':s:c4:c54_6(a), gen_0':s:c4:c54_6(+(1, n6_6))) -> *5_6, rt in Omega(n6_6) Induction Base: +'(gen_0':s:c4:c54_6(a), gen_0':s:c4:c54_6(+(1, 0))) Induction Step: +'(gen_0':s:c4:c54_6(a), gen_0':s:c4:c54_6(+(1, +(n6_6, 1)))) ->_R^Omega(1) c5(+'(gen_0':s:c4:c54_6(a), gen_0':s:c4:c54_6(+(1, n6_6)))) ->_IH c5(*5_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: FIB(0') -> c FIB(s(0')) -> c1 FIB(s(s(z0))) -> c2(+'(fib(s(z0)), fib(z0)), FIB(s(z0))) FIB(s(s(z0))) -> c3(+'(fib(s(z0)), fib(z0)), FIB(z0)) +'(z0, 0') -> c4 +'(z0, s(z1)) -> c5(+'(z0, z1)) fib(0') -> 0' fib(s(0')) -> s(0') fib(s(s(z0))) -> +'(fib(s(z0)), fib(z0)) +'(z0, 0') -> z0 +'(z0, s(z1)) -> s(+'(z0, z1)) Types: FIB :: 0':s:c4:c5 -> c:c1:c2:c3 0' :: 0':s:c4:c5 c :: c:c1:c2:c3 s :: 0':s:c4:c5 -> 0':s:c4:c5 c1 :: c:c1:c2:c3 c2 :: 0':s:c4:c5 -> c:c1:c2:c3 -> c:c1:c2:c3 +' :: 0':s:c4:c5 -> 0':s:c4:c5 -> 0':s:c4:c5 fib :: 0':s:c4:c5 -> 0':s:c4:c5 c3 :: 0':s:c4:c5 -> c:c1:c2:c3 -> c:c1:c2:c3 c4 :: 0':s:c4:c5 c5 :: 0':s:c4:c5 -> 0':s:c4:c5 hole_c:c1:c2:c31_6 :: c:c1:c2:c3 hole_0':s:c4:c52_6 :: 0':s:c4:c5 gen_c:c1:c2:c33_6 :: Nat -> c:c1:c2:c3 gen_0':s:c4:c54_6 :: Nat -> 0':s:c4:c5 Generator Equations: gen_c:c1:c2:c33_6(0) <=> c gen_c:c1:c2:c33_6(+(x, 1)) <=> c2(0', gen_c:c1:c2:c33_6(x)) gen_0':s:c4:c54_6(0) <=> 0' gen_0':s:c4:c54_6(+(x, 1)) <=> s(gen_0':s:c4:c54_6(x)) The following defined symbols remain to be analysed: +', FIB, fib They will be analysed ascendingly in the following order: +' < FIB fib < FIB +' < fib ---------------------------------------- (14) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (15) BOUNDS(n^1, INF) ---------------------------------------- (16) Obligation: Innermost TRS: Rules: FIB(0') -> c FIB(s(0')) -> c1 FIB(s(s(z0))) -> c2(+'(fib(s(z0)), fib(z0)), FIB(s(z0))) FIB(s(s(z0))) -> c3(+'(fib(s(z0)), fib(z0)), FIB(z0)) +'(z0, 0') -> c4 +'(z0, s(z1)) -> c5(+'(z0, z1)) fib(0') -> 0' fib(s(0')) -> s(0') fib(s(s(z0))) -> +'(fib(s(z0)), fib(z0)) +'(z0, 0') -> z0 +'(z0, s(z1)) -> s(+'(z0, z1)) Types: FIB :: 0':s:c4:c5 -> c:c1:c2:c3 0' :: 0':s:c4:c5 c :: c:c1:c2:c3 s :: 0':s:c4:c5 -> 0':s:c4:c5 c1 :: c:c1:c2:c3 c2 :: 0':s:c4:c5 -> c:c1:c2:c3 -> c:c1:c2:c3 +' :: 0':s:c4:c5 -> 0':s:c4:c5 -> 0':s:c4:c5 fib :: 0':s:c4:c5 -> 0':s:c4:c5 c3 :: 0':s:c4:c5 -> c:c1:c2:c3 -> c:c1:c2:c3 c4 :: 0':s:c4:c5 c5 :: 0':s:c4:c5 -> 0':s:c4:c5 hole_c:c1:c2:c31_6 :: c:c1:c2:c3 hole_0':s:c4:c52_6 :: 0':s:c4:c5 gen_c:c1:c2:c33_6 :: Nat -> c:c1:c2:c3 gen_0':s:c4:c54_6 :: Nat -> 0':s:c4:c5 Lemmas: +'(gen_0':s:c4:c54_6(a), gen_0':s:c4:c54_6(+(1, n6_6))) -> *5_6, rt in Omega(n6_6) Generator Equations: gen_c:c1:c2:c33_6(0) <=> c gen_c:c1:c2:c33_6(+(x, 1)) <=> c2(0', gen_c:c1:c2:c33_6(x)) gen_0':s:c4:c54_6(0) <=> 0' gen_0':s:c4:c54_6(+(x, 1)) <=> s(gen_0':s:c4:c54_6(x)) The following defined symbols remain to be analysed: fib, FIB They will be analysed ascendingly in the following order: fib < FIB ---------------------------------------- (17) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: fib(gen_0':s:c4:c54_6(+(2, n1700_6))) -> *5_6, rt in Omega(0) Induction Base: fib(gen_0':s:c4:c54_6(+(2, 0))) Induction Step: fib(gen_0':s:c4:c54_6(+(2, +(n1700_6, 1)))) ->_R^Omega(0) +'(fib(s(gen_0':s:c4:c54_6(+(1, n1700_6)))), fib(gen_0':s:c4:c54_6(+(1, n1700_6)))) ->_IH +'(*5_6, fib(gen_0':s:c4:c54_6(+(1, n1700_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: FIB(0') -> c FIB(s(0')) -> c1 FIB(s(s(z0))) -> c2(+'(fib(s(z0)), fib(z0)), FIB(s(z0))) FIB(s(s(z0))) -> c3(+'(fib(s(z0)), fib(z0)), FIB(z0)) +'(z0, 0') -> c4 +'(z0, s(z1)) -> c5(+'(z0, z1)) fib(0') -> 0' fib(s(0')) -> s(0') fib(s(s(z0))) -> +'(fib(s(z0)), fib(z0)) +'(z0, 0') -> z0 +'(z0, s(z1)) -> s(+'(z0, z1)) Types: FIB :: 0':s:c4:c5 -> c:c1:c2:c3 0' :: 0':s:c4:c5 c :: c:c1:c2:c3 s :: 0':s:c4:c5 -> 0':s:c4:c5 c1 :: c:c1:c2:c3 c2 :: 0':s:c4:c5 -> c:c1:c2:c3 -> c:c1:c2:c3 +' :: 0':s:c4:c5 -> 0':s:c4:c5 -> 0':s:c4:c5 fib :: 0':s:c4:c5 -> 0':s:c4:c5 c3 :: 0':s:c4:c5 -> c:c1:c2:c3 -> c:c1:c2:c3 c4 :: 0':s:c4:c5 c5 :: 0':s:c4:c5 -> 0':s:c4:c5 hole_c:c1:c2:c31_6 :: c:c1:c2:c3 hole_0':s:c4:c52_6 :: 0':s:c4:c5 gen_c:c1:c2:c33_6 :: Nat -> c:c1:c2:c3 gen_0':s:c4:c54_6 :: Nat -> 0':s:c4:c5 Lemmas: +'(gen_0':s:c4:c54_6(a), gen_0':s:c4:c54_6(+(1, n6_6))) -> *5_6, rt in Omega(n6_6) fib(gen_0':s:c4:c54_6(+(2, n1700_6))) -> *5_6, rt in Omega(0) Generator Equations: gen_c:c1:c2:c33_6(0) <=> c gen_c:c1:c2:c33_6(+(x, 1)) <=> c2(0', gen_c:c1:c2:c33_6(x)) gen_0':s:c4:c54_6(0) <=> 0' gen_0':s:c4:c54_6(+(x, 1)) <=> s(gen_0':s:c4:c54_6(x)) The following defined symbols remain to be analysed: FIB