WORST_CASE(Omega(n^1),O(n^1)) proof of input_e4TBzSgODr.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, n^1). (0) CpxTRS (1) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (2) CpxTRS (3) CpxTrsMatchBoundsTAProof [FINISHED, 86 ms] (4) BOUNDS(1, n^1) (5) CpxTrsToCdtProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CdtProblem (7) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxRelTRS (9) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxRelTRS (11) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (12) typed CpxTrs (13) OrderProof [LOWER BOUND(ID), 14 ms] (14) typed CpxTrs (15) RewriteLemmaProof [LOWER BOUND(ID), 2230 ms] (16) BEST (17) proven lower bound (18) LowerBoundPropagationProof [FINISHED, 0 ms] (19) BOUNDS(n^1, INF) (20) typed CpxTrs ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). The TRS R consists of the following rules: f(a, a) -> f(a, b) f(a, b) -> f(s(a), c) f(s(X), c) -> f(X, c) f(c, c) -> f(a, a) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (2) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: f(a, a) -> f(a, b) f(a, b) -> f(s(a), c) f(s(X), c) -> f(X, c) f(c, c) -> f(a, a) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (3) CpxTrsMatchBoundsTAProof (FINISHED) A linear upper bound on the runtime complexity of the TRS R could be shown with a Match-Bound[TAB_LEFTLINEAR,TAB_NONLEFTLINEAR] (for contructor-based start-terms) of 4. The compatible tree automaton used to show the Match-Boundedness (for constructor-based start-terms) is represented by: final states : [1] transitions: a0() -> 0 b0() -> 0 s0(0) -> 0 c0() -> 0 f0(0, 0) -> 1 a1() -> 2 b1() -> 3 f1(2, 3) -> 1 a1() -> 5 s1(5) -> 4 c1() -> 6 f1(4, 6) -> 1 f1(0, 6) -> 1 a1() -> 7 f1(2, 7) -> 1 a2() -> 8 b2() -> 9 f2(8, 9) -> 1 a2() -> 11 s2(11) -> 10 c2() -> 12 f2(10, 12) -> 1 f2(5, 12) -> 1 a3() -> 14 s3(14) -> 13 c3() -> 15 f3(13, 15) -> 1 f3(11, 15) -> 1 c4() -> 16 f4(14, 16) -> 1 ---------------------------------------- (4) BOUNDS(1, n^1) ---------------------------------------- (5) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (6) Obligation: Complexity Dependency Tuples Problem Rules: f(a, a) -> f(a, b) f(a, b) -> f(s(a), c) f(s(z0), c) -> f(z0, c) f(c, c) -> f(a, a) Tuples: F(a, a) -> c1(F(a, b)) F(a, b) -> c2(F(s(a), c)) F(s(z0), c) -> c3(F(z0, c)) F(c, c) -> c4(F(a, a)) S tuples: F(a, a) -> c1(F(a, b)) F(a, b) -> c2(F(s(a), c)) F(s(z0), c) -> c3(F(z0, c)) F(c, c) -> c4(F(a, a)) K tuples:none Defined Rule Symbols: f_2 Defined Pair Symbols: F_2 Compound Symbols: c1_1, c2_1, c3_1, c4_1 ---------------------------------------- (7) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (8) 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: F(a, a) -> c1(F(a, b)) F(a, b) -> c2(F(s(a), c)) F(s(z0), c) -> c3(F(z0, c)) F(c, c) -> c4(F(a, a)) The (relative) TRS S consists of the following rules: f(a, a) -> f(a, b) f(a, b) -> f(s(a), c) f(s(z0), c) -> f(z0, c) f(c, c) -> f(a, a) Rewrite Strategy: INNERMOST ---------------------------------------- (9) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (10) 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: F(a, a) -> c1(F(a, b)) F(a, b) -> c2(F(s(a), c)) F(s(z0), c) -> c3(F(z0, c)) F(c, c) -> c4(F(a, a)) The (relative) TRS S consists of the following rules: f(a, a) -> f(a, b) f(a, b) -> f(s(a), c) f(s(z0), c) -> f(z0, c) f(c, c) -> f(a, a) Rewrite Strategy: INNERMOST ---------------------------------------- (11) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (12) Obligation: Innermost TRS: Rules: F(a, a) -> c1(F(a, b)) F(a, b) -> c2(F(s(a), c)) F(s(z0), c) -> c3(F(z0, c)) F(c, c) -> c4(F(a, a)) f(a, a) -> f(a, b) f(a, b) -> f(s(a), c) f(s(z0), c) -> f(z0, c) f(c, c) -> f(a, a) Types: F :: a:b:s:c -> a:b:s:c -> c1:c2:c3:c4 a :: a:b:s:c c1 :: c1:c2:c3:c4 -> c1:c2:c3:c4 b :: a:b:s:c c2 :: c1:c2:c3:c4 -> c1:c2:c3:c4 s :: a:b:s:c -> a:b:s:c c :: a:b:s:c c3 :: c1:c2:c3:c4 -> c1:c2:c3:c4 c4 :: c1:c2:c3:c4 -> c1:c2:c3:c4 f :: a:b:s:c -> a:b:s:c -> f hole_c1:c2:c3:c41_5 :: c1:c2:c3:c4 hole_a:b:s:c2_5 :: a:b:s:c hole_f3_5 :: f gen_c1:c2:c3:c44_5 :: Nat -> c1:c2:c3:c4 gen_a:b:s:c5_5 :: Nat -> a:b:s:c ---------------------------------------- (13) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: F, f ---------------------------------------- (14) Obligation: Innermost TRS: Rules: F(a, a) -> c1(F(a, b)) F(a, b) -> c2(F(s(a), c)) F(s(z0), c) -> c3(F(z0, c)) F(c, c) -> c4(F(a, a)) f(a, a) -> f(a, b) f(a, b) -> f(s(a), c) f(s(z0), c) -> f(z0, c) f(c, c) -> f(a, a) Types: F :: a:b:s:c -> a:b:s:c -> c1:c2:c3:c4 a :: a:b:s:c c1 :: c1:c2:c3:c4 -> c1:c2:c3:c4 b :: a:b:s:c c2 :: c1:c2:c3:c4 -> c1:c2:c3:c4 s :: a:b:s:c -> a:b:s:c c :: a:b:s:c c3 :: c1:c2:c3:c4 -> c1:c2:c3:c4 c4 :: c1:c2:c3:c4 -> c1:c2:c3:c4 f :: a:b:s:c -> a:b:s:c -> f hole_c1:c2:c3:c41_5 :: c1:c2:c3:c4 hole_a:b:s:c2_5 :: a:b:s:c hole_f3_5 :: f gen_c1:c2:c3:c44_5 :: Nat -> c1:c2:c3:c4 gen_a:b:s:c5_5 :: Nat -> a:b:s:c Generator Equations: gen_c1:c2:c3:c44_5(0) <=> hole_c1:c2:c3:c41_5 gen_c1:c2:c3:c44_5(+(x, 1)) <=> c1(gen_c1:c2:c3:c44_5(x)) gen_a:b:s:c5_5(0) <=> c gen_a:b:s:c5_5(+(x, 1)) <=> s(gen_a:b:s:c5_5(x)) The following defined symbols remain to be analysed: F, f ---------------------------------------- (15) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: F(gen_a:b:s:c5_5(+(1, n7_5)), gen_a:b:s:c5_5(0)) -> *6_5, rt in Omega(n7_5) Induction Base: F(gen_a:b:s:c5_5(+(1, 0)), gen_a:b:s:c5_5(0)) Induction Step: F(gen_a:b:s:c5_5(+(1, +(n7_5, 1))), gen_a:b:s:c5_5(0)) ->_R^Omega(1) c3(F(gen_a:b:s:c5_5(+(1, n7_5)), c)) ->_IH c3(*6_5) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (16) Complex Obligation (BEST) ---------------------------------------- (17) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: F(a, a) -> c1(F(a, b)) F(a, b) -> c2(F(s(a), c)) F(s(z0), c) -> c3(F(z0, c)) F(c, c) -> c4(F(a, a)) f(a, a) -> f(a, b) f(a, b) -> f(s(a), c) f(s(z0), c) -> f(z0, c) f(c, c) -> f(a, a) Types: F :: a:b:s:c -> a:b:s:c -> c1:c2:c3:c4 a :: a:b:s:c c1 :: c1:c2:c3:c4 -> c1:c2:c3:c4 b :: a:b:s:c c2 :: c1:c2:c3:c4 -> c1:c2:c3:c4 s :: a:b:s:c -> a:b:s:c c :: a:b:s:c c3 :: c1:c2:c3:c4 -> c1:c2:c3:c4 c4 :: c1:c2:c3:c4 -> c1:c2:c3:c4 f :: a:b:s:c -> a:b:s:c -> f hole_c1:c2:c3:c41_5 :: c1:c2:c3:c4 hole_a:b:s:c2_5 :: a:b:s:c hole_f3_5 :: f gen_c1:c2:c3:c44_5 :: Nat -> c1:c2:c3:c4 gen_a:b:s:c5_5 :: Nat -> a:b:s:c Generator Equations: gen_c1:c2:c3:c44_5(0) <=> hole_c1:c2:c3:c41_5 gen_c1:c2:c3:c44_5(+(x, 1)) <=> c1(gen_c1:c2:c3:c44_5(x)) gen_a:b:s:c5_5(0) <=> c gen_a:b:s:c5_5(+(x, 1)) <=> s(gen_a:b:s:c5_5(x)) The following defined symbols remain to be analysed: F, f ---------------------------------------- (18) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (19) BOUNDS(n^1, INF) ---------------------------------------- (20) Obligation: Innermost TRS: Rules: F(a, a) -> c1(F(a, b)) F(a, b) -> c2(F(s(a), c)) F(s(z0), c) -> c3(F(z0, c)) F(c, c) -> c4(F(a, a)) f(a, a) -> f(a, b) f(a, b) -> f(s(a), c) f(s(z0), c) -> f(z0, c) f(c, c) -> f(a, a) Types: F :: a:b:s:c -> a:b:s:c -> c1:c2:c3:c4 a :: a:b:s:c c1 :: c1:c2:c3:c4 -> c1:c2:c3:c4 b :: a:b:s:c c2 :: c1:c2:c3:c4 -> c1:c2:c3:c4 s :: a:b:s:c -> a:b:s:c c :: a:b:s:c c3 :: c1:c2:c3:c4 -> c1:c2:c3:c4 c4 :: c1:c2:c3:c4 -> c1:c2:c3:c4 f :: a:b:s:c -> a:b:s:c -> f hole_c1:c2:c3:c41_5 :: c1:c2:c3:c4 hole_a:b:s:c2_5 :: a:b:s:c hole_f3_5 :: f gen_c1:c2:c3:c44_5 :: Nat -> c1:c2:c3:c4 gen_a:b:s:c5_5 :: Nat -> a:b:s:c Lemmas: F(gen_a:b:s:c5_5(+(1, n7_5)), gen_a:b:s:c5_5(0)) -> *6_5, rt in Omega(n7_5) Generator Equations: gen_c1:c2:c3:c44_5(0) <=> hole_c1:c2:c3:c41_5 gen_c1:c2:c3:c44_5(+(x, 1)) <=> c1(gen_c1:c2:c3:c44_5(x)) gen_a:b:s:c5_5(0) <=> c gen_a:b:s:c5_5(+(x, 1)) <=> s(gen_a:b:s:c5_5(x)) The following defined symbols remain to be analysed: f