/export/starexec/sandbox2/solver/bin/starexec_run_rcdcRelativeAlsoLower /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), O(n^2)) proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Derivational Complexity (full) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^2). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 36 ms] (4) CpxRelTRS (5) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxRelTRS (7) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxWeightedTrs (9) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxTypedWeightedTrs (11) CompletionProof [UPPER BOUND(ID), 0 ms] (12) CpxTypedWeightedCompleteTrs (13) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (14) CpxTypedWeightedCompleteTrs (15) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 1 ms] (16) CpxRNTS (17) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (18) CpxRNTS (19) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CpxRNTS (21) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (22) CpxRNTS (23) IntTrsBoundProof [UPPER BOUND(ID), 253 ms] (24) CpxRNTS (25) IntTrsBoundProof [UPPER BOUND(ID), 68 ms] (26) CpxRNTS (27) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (28) CpxRNTS (29) IntTrsBoundProof [UPPER BOUND(ID), 252 ms] (30) CpxRNTS (31) IntTrsBoundProof [UPPER BOUND(ID), 179 ms] (32) CpxRNTS (33) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (34) CpxRNTS (35) IntTrsBoundProof [UPPER BOUND(ID), 191 ms] (36) CpxRNTS (37) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (38) CpxRNTS (39) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (40) CpxRNTS (41) IntTrsBoundProof [UPPER BOUND(ID), 139 ms] (42) CpxRNTS (43) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (44) CpxRNTS (45) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (46) CpxRNTS (47) IntTrsBoundProof [UPPER BOUND(ID), 259 ms] (48) CpxRNTS (49) IntTrsBoundProof [UPPER BOUND(ID), 55 ms] (50) CpxRNTS (51) FinalProof [FINISHED, 0 ms] (52) BOUNDS(1, n^2) (53) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (54) TRS for Loop Detection (55) DecreasingLoopProof [LOWER BOUND(ID), 3 ms] (56) BEST (57) proven lower bound (58) LowerBoundPropagationProof [FINISHED, 0 ms] (59) BOUNDS(n^1, INF) (60) TRS for Loop Detection ---------------------------------------- (0) Obligation: The Derivational Complexity (full) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: a(b(x)) -> b(a(x)) a(c(x)) -> x S is empty. Rewrite Strategy: FULL ---------------------------------------- (1) DerivationalComplexityToRuntimeComplexityProof (BOTH BOUNDS(ID, ID)) The following rules have been added to S to convert the given derivational complexity problem to a runtime complexity problem: encArg(b(x_1)) -> b(encArg(x_1)) encArg(c(x_1)) -> c(encArg(x_1)) encArg(cons_a(x_1)) -> a(encArg(x_1)) encode_a(x_1) -> a(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) encode_c(x_1) -> c(encArg(x_1)) ---------------------------------------- (2) Obligation: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: a(b(x)) -> b(a(x)) a(c(x)) -> x The (relative) TRS S consists of the following rules: encArg(b(x_1)) -> b(encArg(x_1)) encArg(c(x_1)) -> c(encArg(x_1)) encArg(cons_a(x_1)) -> a(encArg(x_1)) encode_a(x_1) -> a(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) encode_c(x_1) -> c(encArg(x_1)) Rewrite Strategy: FULL ---------------------------------------- (3) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (4) Obligation: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: a(b(x)) -> b(a(x)) a(c(x)) -> x The (relative) TRS S consists of the following rules: encArg(b(x_1)) -> b(encArg(x_1)) encArg(c(x_1)) -> c(encArg(x_1)) encArg(cons_a(x_1)) -> a(encArg(x_1)) encode_a(x_1) -> a(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) encode_c(x_1) -> c(encArg(x_1)) Rewrite Strategy: FULL ---------------------------------------- (5) RcToIrcProof (BOTH BOUNDS(ID, ID)) Converted rc-obligation to irc-obligation. As the TRS is a non-duplicating overlay system, we have rc = irc. ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, n^2). The TRS R consists of the following rules: a(b(x)) -> b(a(x)) a(c(x)) -> x The (relative) TRS S consists of the following rules: encArg(b(x_1)) -> b(encArg(x_1)) encArg(c(x_1)) -> c(encArg(x_1)) encArg(cons_a(x_1)) -> a(encArg(x_1)) encode_a(x_1) -> a(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) encode_c(x_1) -> c(encArg(x_1)) Rewrite Strategy: INNERMOST ---------------------------------------- (7) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^2). The TRS R consists of the following rules: a(b(x)) -> b(a(x)) [1] a(c(x)) -> x [1] encArg(b(x_1)) -> b(encArg(x_1)) [0] encArg(c(x_1)) -> c(encArg(x_1)) [0] encArg(cons_a(x_1)) -> a(encArg(x_1)) [0] encode_a(x_1) -> a(encArg(x_1)) [0] encode_b(x_1) -> b(encArg(x_1)) [0] encode_c(x_1) -> c(encArg(x_1)) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (9) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (10) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a(b(x)) -> b(a(x)) [1] a(c(x)) -> x [1] encArg(b(x_1)) -> b(encArg(x_1)) [0] encArg(c(x_1)) -> c(encArg(x_1)) [0] encArg(cons_a(x_1)) -> a(encArg(x_1)) [0] encode_a(x_1) -> a(encArg(x_1)) [0] encode_b(x_1) -> b(encArg(x_1)) [0] encode_c(x_1) -> c(encArg(x_1)) [0] The TRS has the following type information: a :: b:c:cons_a -> b:c:cons_a b :: b:c:cons_a -> b:c:cons_a c :: b:c:cons_a -> b:c:cons_a encArg :: b:c:cons_a -> b:c:cons_a cons_a :: b:c:cons_a -> b:c:cons_a encode_a :: b:c:cons_a -> b:c:cons_a encode_b :: b:c:cons_a -> b:c:cons_a encode_c :: b:c:cons_a -> b:c:cons_a Rewrite Strategy: INNERMOST ---------------------------------------- (11) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: none (c) The following functions are completely defined: a_1 encArg_1 encode_a_1 encode_b_1 encode_c_1 Due to the following rules being added: encArg(v0) -> const [0] encode_a(v0) -> const [0] encode_b(v0) -> const [0] encode_c(v0) -> const [0] a(v0) -> const [0] And the following fresh constants: const ---------------------------------------- (12) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a(b(x)) -> b(a(x)) [1] a(c(x)) -> x [1] encArg(b(x_1)) -> b(encArg(x_1)) [0] encArg(c(x_1)) -> c(encArg(x_1)) [0] encArg(cons_a(x_1)) -> a(encArg(x_1)) [0] encode_a(x_1) -> a(encArg(x_1)) [0] encode_b(x_1) -> b(encArg(x_1)) [0] encode_c(x_1) -> c(encArg(x_1)) [0] encArg(v0) -> const [0] encode_a(v0) -> const [0] encode_b(v0) -> const [0] encode_c(v0) -> const [0] a(v0) -> const [0] The TRS has the following type information: a :: b:c:cons_a:const -> b:c:cons_a:const b :: b:c:cons_a:const -> b:c:cons_a:const c :: b:c:cons_a:const -> b:c:cons_a:const encArg :: b:c:cons_a:const -> b:c:cons_a:const cons_a :: b:c:cons_a:const -> b:c:cons_a:const encode_a :: b:c:cons_a:const -> b:c:cons_a:const encode_b :: b:c:cons_a:const -> b:c:cons_a:const encode_c :: b:c:cons_a:const -> b:c:cons_a:const const :: b:c:cons_a:const Rewrite Strategy: INNERMOST ---------------------------------------- (13) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (14) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a(b(x)) -> b(a(x)) [1] a(c(x)) -> x [1] encArg(b(x_1)) -> b(encArg(x_1)) [0] encArg(c(x_1)) -> c(encArg(x_1)) [0] encArg(cons_a(b(x_1'))) -> a(b(encArg(x_1'))) [0] encArg(cons_a(c(x_1''))) -> a(c(encArg(x_1''))) [0] encArg(cons_a(cons_a(x_11))) -> a(a(encArg(x_11))) [0] encArg(cons_a(x_1)) -> a(const) [0] encode_a(b(x_12)) -> a(b(encArg(x_12))) [0] encode_a(c(x_13)) -> a(c(encArg(x_13))) [0] encode_a(cons_a(x_14)) -> a(a(encArg(x_14))) [0] encode_a(x_1) -> a(const) [0] encode_b(x_1) -> b(encArg(x_1)) [0] encode_c(x_1) -> c(encArg(x_1)) [0] encArg(v0) -> const [0] encode_a(v0) -> const [0] encode_b(v0) -> const [0] encode_c(v0) -> const [0] a(v0) -> const [0] The TRS has the following type information: a :: b:c:cons_a:const -> b:c:cons_a:const b :: b:c:cons_a:const -> b:c:cons_a:const c :: b:c:cons_a:const -> b:c:cons_a:const encArg :: b:c:cons_a:const -> b:c:cons_a:const cons_a :: b:c:cons_a:const -> b:c:cons_a:const encode_a :: b:c:cons_a:const -> b:c:cons_a:const encode_b :: b:c:cons_a:const -> b:c:cons_a:const encode_c :: b:c:cons_a:const -> b:c:cons_a:const const :: b:c:cons_a:const Rewrite Strategy: INNERMOST ---------------------------------------- (15) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: const => 0 ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 1 }-> x :|: x >= 0, z = 1 + x a(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a(z) -{ 1 }-> 1 + a(x) :|: x >= 0, z = 1 + x encArg(z) -{ 0 }-> a(a(encArg(x_11))) :|: x_11 >= 0, z = 1 + (1 + x_11) encArg(z) -{ 0 }-> a(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> a(1 + encArg(x_1')) :|: z = 1 + (1 + x_1'), x_1' >= 0 encArg(z) -{ 0 }-> a(1 + encArg(x_1'')) :|: z = 1 + (1 + x_1''), x_1'' >= 0 encArg(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) :|: z = 1 + x_1, x_1 >= 0 encode_a(z) -{ 0 }-> a(a(encArg(x_14))) :|: x_14 >= 0, z = 1 + x_14 encode_a(z) -{ 0 }-> a(0) :|: x_1 >= 0, z = x_1 encode_a(z) -{ 0 }-> a(1 + encArg(x_12)) :|: z = 1 + x_12, x_12 >= 0 encode_a(z) -{ 0 }-> a(1 + encArg(x_13)) :|: z = 1 + x_13, x_13 >= 0 encode_a(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_b(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_b(z) -{ 0 }-> 1 + encArg(x_1) :|: x_1 >= 0, z = x_1 encode_c(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_c(z) -{ 0 }-> 1 + encArg(x_1) :|: x_1 >= 0, z = x_1 ---------------------------------------- (17) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (18) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 }-> 1 + a(z - 1) :|: z - 1 >= 0 encArg(z) -{ 0 }-> a(a(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> a(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> a(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(a(encArg(z - 1))) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(0) :|: z >= 0 encode_a(z) -{ 0 }-> a(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 ---------------------------------------- (19) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { a } { encArg } { encode_c } { encode_b } { encode_a } ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 }-> 1 + a(z - 1) :|: z - 1 >= 0 encArg(z) -{ 0 }-> a(a(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> a(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> a(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(a(encArg(z - 1))) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(0) :|: z >= 0 encode_a(z) -{ 0 }-> a(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 Function symbols to be analyzed: {a}, {encArg}, {encode_c}, {encode_b}, {encode_a} ---------------------------------------- (21) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (22) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 }-> 1 + a(z - 1) :|: z - 1 >= 0 encArg(z) -{ 0 }-> a(a(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> a(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> a(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(a(encArg(z - 1))) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(0) :|: z >= 0 encode_a(z) -{ 0 }-> a(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 Function symbols to be analyzed: {a}, {encArg}, {encode_c}, {encode_b}, {encode_a} ---------------------------------------- (23) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: a after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (24) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 }-> 1 + a(z - 1) :|: z - 1 >= 0 encArg(z) -{ 0 }-> a(a(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> a(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> a(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(a(encArg(z - 1))) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(0) :|: z >= 0 encode_a(z) -{ 0 }-> a(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 Function symbols to be analyzed: {a}, {encArg}, {encode_c}, {encode_b}, {encode_a} Previous analysis results are: a: runtime: ?, size: O(n^1) [z] ---------------------------------------- (25) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: a after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 }-> 1 + a(z - 1) :|: z - 1 >= 0 encArg(z) -{ 0 }-> a(a(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> a(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> a(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(a(encArg(z - 1))) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(0) :|: z >= 0 encode_a(z) -{ 0 }-> a(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 Function symbols to be analyzed: {encArg}, {encode_c}, {encode_b}, {encode_a} Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] ---------------------------------------- (27) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 + z }-> 1 + s :|: s >= 0, s <= z - 1, z - 1 >= 0 encArg(z) -{ 1 }-> s' :|: s' >= 0, s' <= 0, z - 1 >= 0 encArg(z) -{ 0 }-> a(a(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> a(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_a(z) -{ 1 }-> s'' :|: s'' >= 0, s'' <= 0, z >= 0 encode_a(z) -{ 0 }-> a(a(encArg(z - 1))) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 Function symbols to be analyzed: {encArg}, {encode_c}, {encode_b}, {encode_a} Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] ---------------------------------------- (29) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encArg after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 + z }-> 1 + s :|: s >= 0, s <= z - 1, z - 1 >= 0 encArg(z) -{ 1 }-> s' :|: s' >= 0, s' <= 0, z - 1 >= 0 encArg(z) -{ 0 }-> a(a(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> a(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_a(z) -{ 1 }-> s'' :|: s'' >= 0, s'' <= 0, z >= 0 encode_a(z) -{ 0 }-> a(a(encArg(z - 1))) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 Function symbols to be analyzed: {encArg}, {encode_c}, {encode_b}, {encode_a} Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] encArg: runtime: ?, size: O(n^1) [z] ---------------------------------------- (31) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encArg after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 1 + 3*z^2 ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 + z }-> 1 + s :|: s >= 0, s <= z - 1, z - 1 >= 0 encArg(z) -{ 1 }-> s' :|: s' >= 0, s' <= 0, z - 1 >= 0 encArg(z) -{ 0 }-> a(a(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> a(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_a(z) -{ 1 }-> s'' :|: s'' >= 0, s'' <= 0, z >= 0 encode_a(z) -{ 0 }-> a(a(encArg(z - 1))) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> a(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 Function symbols to be analyzed: {encode_c}, {encode_b}, {encode_a} Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [z] ---------------------------------------- (33) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 + z }-> 1 + s :|: s >= 0, s <= z - 1, z - 1 >= 0 encArg(z) -{ 1 }-> s' :|: s' >= 0, s' <= 0, z - 1 >= 0 encArg(z) -{ 15 + s2 + -12*z + 3*z^2 }-> s3 :|: s2 >= 0, s2 <= z - 2, s3 >= 0, s3 <= 1 + s2, z - 2 >= 0 encArg(z) -{ 15 + s4 + s5 + -12*z + 3*z^2 }-> s6 :|: s4 >= 0, s4 <= z - 2, s5 >= 0, s5 <= s4, s6 >= 0, s6 <= s5, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + -6*z + 3*z^2 }-> 1 + s1 :|: s1 >= 0, s1 <= z - 1, z - 1 >= 0 encode_a(z) -{ 1 }-> s'' :|: s'' >= 0, s'' <= 0, z >= 0 encode_a(z) -{ 6 + s10 + s9 + -6*z + 3*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 1, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 1 >= 0 encode_a(z) -{ 6 + s7 + -6*z + 3*z^2 }-> s8 :|: s7 >= 0, s7 <= z - 1, s8 >= 0, s8 <= 1 + s7, z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 1 + 3*z^2 }-> 1 + s12 :|: s12 >= 0, s12 <= z, z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 1 + 3*z^2 }-> 1 + s13 :|: s13 >= 0, s13 <= z, z >= 0 Function symbols to be analyzed: {encode_c}, {encode_b}, {encode_a} Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [z] ---------------------------------------- (35) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_c after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 + z }-> 1 + s :|: s >= 0, s <= z - 1, z - 1 >= 0 encArg(z) -{ 1 }-> s' :|: s' >= 0, s' <= 0, z - 1 >= 0 encArg(z) -{ 15 + s2 + -12*z + 3*z^2 }-> s3 :|: s2 >= 0, s2 <= z - 2, s3 >= 0, s3 <= 1 + s2, z - 2 >= 0 encArg(z) -{ 15 + s4 + s5 + -12*z + 3*z^2 }-> s6 :|: s4 >= 0, s4 <= z - 2, s5 >= 0, s5 <= s4, s6 >= 0, s6 <= s5, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + -6*z + 3*z^2 }-> 1 + s1 :|: s1 >= 0, s1 <= z - 1, z - 1 >= 0 encode_a(z) -{ 1 }-> s'' :|: s'' >= 0, s'' <= 0, z >= 0 encode_a(z) -{ 6 + s10 + s9 + -6*z + 3*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 1, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 1 >= 0 encode_a(z) -{ 6 + s7 + -6*z + 3*z^2 }-> s8 :|: s7 >= 0, s7 <= z - 1, s8 >= 0, s8 <= 1 + s7, z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 1 + 3*z^2 }-> 1 + s12 :|: s12 >= 0, s12 <= z, z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 1 + 3*z^2 }-> 1 + s13 :|: s13 >= 0, s13 <= z, z >= 0 Function symbols to be analyzed: {encode_c}, {encode_b}, {encode_a} Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [z] encode_c: runtime: ?, size: O(n^1) [1 + z] ---------------------------------------- (37) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_c after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 1 + 3*z^2 ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 + z }-> 1 + s :|: s >= 0, s <= z - 1, z - 1 >= 0 encArg(z) -{ 1 }-> s' :|: s' >= 0, s' <= 0, z - 1 >= 0 encArg(z) -{ 15 + s2 + -12*z + 3*z^2 }-> s3 :|: s2 >= 0, s2 <= z - 2, s3 >= 0, s3 <= 1 + s2, z - 2 >= 0 encArg(z) -{ 15 + s4 + s5 + -12*z + 3*z^2 }-> s6 :|: s4 >= 0, s4 <= z - 2, s5 >= 0, s5 <= s4, s6 >= 0, s6 <= s5, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + -6*z + 3*z^2 }-> 1 + s1 :|: s1 >= 0, s1 <= z - 1, z - 1 >= 0 encode_a(z) -{ 1 }-> s'' :|: s'' >= 0, s'' <= 0, z >= 0 encode_a(z) -{ 6 + s10 + s9 + -6*z + 3*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 1, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 1 >= 0 encode_a(z) -{ 6 + s7 + -6*z + 3*z^2 }-> s8 :|: s7 >= 0, s7 <= z - 1, s8 >= 0, s8 <= 1 + s7, z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 1 + 3*z^2 }-> 1 + s12 :|: s12 >= 0, s12 <= z, z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 1 + 3*z^2 }-> 1 + s13 :|: s13 >= 0, s13 <= z, z >= 0 Function symbols to be analyzed: {encode_b}, {encode_a} Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [z] encode_c: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [1 + z] ---------------------------------------- (39) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (40) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 + z }-> 1 + s :|: s >= 0, s <= z - 1, z - 1 >= 0 encArg(z) -{ 1 }-> s' :|: s' >= 0, s' <= 0, z - 1 >= 0 encArg(z) -{ 15 + s2 + -12*z + 3*z^2 }-> s3 :|: s2 >= 0, s2 <= z - 2, s3 >= 0, s3 <= 1 + s2, z - 2 >= 0 encArg(z) -{ 15 + s4 + s5 + -12*z + 3*z^2 }-> s6 :|: s4 >= 0, s4 <= z - 2, s5 >= 0, s5 <= s4, s6 >= 0, s6 <= s5, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + -6*z + 3*z^2 }-> 1 + s1 :|: s1 >= 0, s1 <= z - 1, z - 1 >= 0 encode_a(z) -{ 1 }-> s'' :|: s'' >= 0, s'' <= 0, z >= 0 encode_a(z) -{ 6 + s10 + s9 + -6*z + 3*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 1, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 1 >= 0 encode_a(z) -{ 6 + s7 + -6*z + 3*z^2 }-> s8 :|: s7 >= 0, s7 <= z - 1, s8 >= 0, s8 <= 1 + s7, z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 1 + 3*z^2 }-> 1 + s12 :|: s12 >= 0, s12 <= z, z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 1 + 3*z^2 }-> 1 + s13 :|: s13 >= 0, s13 <= z, z >= 0 Function symbols to be analyzed: {encode_b}, {encode_a} Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [z] encode_c: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [1 + z] ---------------------------------------- (41) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_b after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (42) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 + z }-> 1 + s :|: s >= 0, s <= z - 1, z - 1 >= 0 encArg(z) -{ 1 }-> s' :|: s' >= 0, s' <= 0, z - 1 >= 0 encArg(z) -{ 15 + s2 + -12*z + 3*z^2 }-> s3 :|: s2 >= 0, s2 <= z - 2, s3 >= 0, s3 <= 1 + s2, z - 2 >= 0 encArg(z) -{ 15 + s4 + s5 + -12*z + 3*z^2 }-> s6 :|: s4 >= 0, s4 <= z - 2, s5 >= 0, s5 <= s4, s6 >= 0, s6 <= s5, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + -6*z + 3*z^2 }-> 1 + s1 :|: s1 >= 0, s1 <= z - 1, z - 1 >= 0 encode_a(z) -{ 1 }-> s'' :|: s'' >= 0, s'' <= 0, z >= 0 encode_a(z) -{ 6 + s10 + s9 + -6*z + 3*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 1, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 1 >= 0 encode_a(z) -{ 6 + s7 + -6*z + 3*z^2 }-> s8 :|: s7 >= 0, s7 <= z - 1, s8 >= 0, s8 <= 1 + s7, z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 1 + 3*z^2 }-> 1 + s12 :|: s12 >= 0, s12 <= z, z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 1 + 3*z^2 }-> 1 + s13 :|: s13 >= 0, s13 <= z, z >= 0 Function symbols to be analyzed: {encode_b}, {encode_a} Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [z] encode_c: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [1 + z] encode_b: runtime: ?, size: O(n^1) [1 + z] ---------------------------------------- (43) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_b after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 1 + 3*z^2 ---------------------------------------- (44) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 + z }-> 1 + s :|: s >= 0, s <= z - 1, z - 1 >= 0 encArg(z) -{ 1 }-> s' :|: s' >= 0, s' <= 0, z - 1 >= 0 encArg(z) -{ 15 + s2 + -12*z + 3*z^2 }-> s3 :|: s2 >= 0, s2 <= z - 2, s3 >= 0, s3 <= 1 + s2, z - 2 >= 0 encArg(z) -{ 15 + s4 + s5 + -12*z + 3*z^2 }-> s6 :|: s4 >= 0, s4 <= z - 2, s5 >= 0, s5 <= s4, s6 >= 0, s6 <= s5, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + -6*z + 3*z^2 }-> 1 + s1 :|: s1 >= 0, s1 <= z - 1, z - 1 >= 0 encode_a(z) -{ 1 }-> s'' :|: s'' >= 0, s'' <= 0, z >= 0 encode_a(z) -{ 6 + s10 + s9 + -6*z + 3*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 1, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 1 >= 0 encode_a(z) -{ 6 + s7 + -6*z + 3*z^2 }-> s8 :|: s7 >= 0, s7 <= z - 1, s8 >= 0, s8 <= 1 + s7, z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 1 + 3*z^2 }-> 1 + s12 :|: s12 >= 0, s12 <= z, z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 1 + 3*z^2 }-> 1 + s13 :|: s13 >= 0, s13 <= z, z >= 0 Function symbols to be analyzed: {encode_a} Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [z] encode_c: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [1 + z] encode_b: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [1 + z] ---------------------------------------- (45) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (46) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 + z }-> 1 + s :|: s >= 0, s <= z - 1, z - 1 >= 0 encArg(z) -{ 1 }-> s' :|: s' >= 0, s' <= 0, z - 1 >= 0 encArg(z) -{ 15 + s2 + -12*z + 3*z^2 }-> s3 :|: s2 >= 0, s2 <= z - 2, s3 >= 0, s3 <= 1 + s2, z - 2 >= 0 encArg(z) -{ 15 + s4 + s5 + -12*z + 3*z^2 }-> s6 :|: s4 >= 0, s4 <= z - 2, s5 >= 0, s5 <= s4, s6 >= 0, s6 <= s5, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + -6*z + 3*z^2 }-> 1 + s1 :|: s1 >= 0, s1 <= z - 1, z - 1 >= 0 encode_a(z) -{ 1 }-> s'' :|: s'' >= 0, s'' <= 0, z >= 0 encode_a(z) -{ 6 + s10 + s9 + -6*z + 3*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 1, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 1 >= 0 encode_a(z) -{ 6 + s7 + -6*z + 3*z^2 }-> s8 :|: s7 >= 0, s7 <= z - 1, s8 >= 0, s8 <= 1 + s7, z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 1 + 3*z^2 }-> 1 + s12 :|: s12 >= 0, s12 <= z, z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 1 + 3*z^2 }-> 1 + s13 :|: s13 >= 0, s13 <= z, z >= 0 Function symbols to be analyzed: {encode_a} Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [z] encode_c: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [1 + z] encode_b: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [1 + z] ---------------------------------------- (47) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_a after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (48) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 + z }-> 1 + s :|: s >= 0, s <= z - 1, z - 1 >= 0 encArg(z) -{ 1 }-> s' :|: s' >= 0, s' <= 0, z - 1 >= 0 encArg(z) -{ 15 + s2 + -12*z + 3*z^2 }-> s3 :|: s2 >= 0, s2 <= z - 2, s3 >= 0, s3 <= 1 + s2, z - 2 >= 0 encArg(z) -{ 15 + s4 + s5 + -12*z + 3*z^2 }-> s6 :|: s4 >= 0, s4 <= z - 2, s5 >= 0, s5 <= s4, s6 >= 0, s6 <= s5, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + -6*z + 3*z^2 }-> 1 + s1 :|: s1 >= 0, s1 <= z - 1, z - 1 >= 0 encode_a(z) -{ 1 }-> s'' :|: s'' >= 0, s'' <= 0, z >= 0 encode_a(z) -{ 6 + s10 + s9 + -6*z + 3*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 1, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 1 >= 0 encode_a(z) -{ 6 + s7 + -6*z + 3*z^2 }-> s8 :|: s7 >= 0, s7 <= z - 1, s8 >= 0, s8 <= 1 + s7, z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 1 + 3*z^2 }-> 1 + s12 :|: s12 >= 0, s12 <= z, z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 1 + 3*z^2 }-> 1 + s13 :|: s13 >= 0, s13 <= z, z >= 0 Function symbols to be analyzed: {encode_a} Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [z] encode_c: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [1 + z] encode_b: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [1 + z] encode_a: runtime: ?, size: O(n^1) [z] ---------------------------------------- (49) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_a after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 13 + 6*z^2 ---------------------------------------- (50) Obligation: Complexity RNTS consisting of the following rules: a(z) -{ 0 }-> 0 :|: z >= 0 a(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 a(z) -{ 1 + z }-> 1 + s :|: s >= 0, s <= z - 1, z - 1 >= 0 encArg(z) -{ 1 }-> s' :|: s' >= 0, s' <= 0, z - 1 >= 0 encArg(z) -{ 15 + s2 + -12*z + 3*z^2 }-> s3 :|: s2 >= 0, s2 <= z - 2, s3 >= 0, s3 <= 1 + s2, z - 2 >= 0 encArg(z) -{ 15 + s4 + s5 + -12*z + 3*z^2 }-> s6 :|: s4 >= 0, s4 <= z - 2, s5 >= 0, s5 <= s4, s6 >= 0, s6 <= s5, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + -6*z + 3*z^2 }-> 1 + s1 :|: s1 >= 0, s1 <= z - 1, z - 1 >= 0 encode_a(z) -{ 1 }-> s'' :|: s'' >= 0, s'' <= 0, z >= 0 encode_a(z) -{ 6 + s10 + s9 + -6*z + 3*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 1, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 1 >= 0 encode_a(z) -{ 6 + s7 + -6*z + 3*z^2 }-> s8 :|: s7 >= 0, s7 <= z - 1, s8 >= 0, s8 <= 1 + s7, z - 1 >= 0 encode_a(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 0 }-> 0 :|: z >= 0 encode_b(z) -{ 1 + 3*z^2 }-> 1 + s12 :|: s12 >= 0, s12 <= z, z >= 0 encode_c(z) -{ 0 }-> 0 :|: z >= 0 encode_c(z) -{ 1 + 3*z^2 }-> 1 + s13 :|: s13 >= 0, s13 <= z, z >= 0 Function symbols to be analyzed: Previous analysis results are: a: runtime: O(n^1) [1 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [z] encode_c: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [1 + z] encode_b: runtime: O(n^2) [1 + 3*z^2], size: O(n^1) [1 + z] encode_a: runtime: O(n^2) [13 + 6*z^2], size: O(n^1) [z] ---------------------------------------- (51) FinalProof (FINISHED) Computed overall runtime complexity ---------------------------------------- (52) BOUNDS(1, n^2) ---------------------------------------- (53) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (54) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: a(b(x)) -> b(a(x)) a(c(x)) -> x The (relative) TRS S consists of the following rules: encArg(b(x_1)) -> b(encArg(x_1)) encArg(c(x_1)) -> c(encArg(x_1)) encArg(cons_a(x_1)) -> a(encArg(x_1)) encode_a(x_1) -> a(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) encode_c(x_1) -> c(encArg(x_1)) Rewrite Strategy: FULL ---------------------------------------- (55) DecreasingLoopProof (LOWER BOUND(ID)) The following loop(s) give(s) rise to the lower bound Omega(n^1): The rewrite sequence a(b(x)) ->^+ b(a(x)) gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. The pumping substitution is [x / b(x)]. The result substitution is [ ]. ---------------------------------------- (56) Complex Obligation (BEST) ---------------------------------------- (57) Obligation: Proved the lower bound n^1 for the following obligation: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: a(b(x)) -> b(a(x)) a(c(x)) -> x The (relative) TRS S consists of the following rules: encArg(b(x_1)) -> b(encArg(x_1)) encArg(c(x_1)) -> c(encArg(x_1)) encArg(cons_a(x_1)) -> a(encArg(x_1)) encode_a(x_1) -> a(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) encode_c(x_1) -> c(encArg(x_1)) Rewrite Strategy: FULL ---------------------------------------- (58) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (59) BOUNDS(n^1, INF) ---------------------------------------- (60) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: a(b(x)) -> b(a(x)) a(c(x)) -> x The (relative) TRS S consists of the following rules: encArg(b(x_1)) -> b(encArg(x_1)) encArg(c(x_1)) -> c(encArg(x_1)) encArg(cons_a(x_1)) -> a(encArg(x_1)) encode_a(x_1) -> a(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) encode_c(x_1) -> c(encArg(x_1)) Rewrite Strategy: FULL