/export/starexec/sandbox/solver/bin/starexec_run_rcdcRelativeAlsoLower /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), O(n^3)) proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^3). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 164 ms] (4) CpxRelTRS (5) NonCtorToCtorProof [UPPER BOUND(ID), 0 ms] (6) CpxRelTRS (7) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxWeightedTrs (9) CpxWeightedTrsRenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxWeightedTrs (11) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (12) CpxTypedWeightedTrs (13) CompletionProof [UPPER BOUND(ID), 0 ms] (14) CpxTypedWeightedCompleteTrs (15) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (16) CpxTypedWeightedCompleteTrs (17) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (18) CpxRNTS (19) SimplificationProof [BOTH BOUNDS(ID, ID), 2 ms] (20) CpxRNTS (21) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] (22) CpxRNTS (23) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (24) CpxRNTS (25) IntTrsBoundProof [UPPER BOUND(ID), 77 ms] (26) CpxRNTS (27) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (28) CpxRNTS (29) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (30) CpxRNTS (31) IntTrsBoundProof [UPPER BOUND(ID), 211 ms] (32) CpxRNTS (33) IntTrsBoundProof [UPPER BOUND(ID), 16 ms] (34) CpxRNTS (35) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (36) CpxRNTS (37) IntTrsBoundProof [UPPER BOUND(ID), 982 ms] (38) CpxRNTS (39) IntTrsBoundProof [UPPER BOUND(ID), 263 ms] (40) CpxRNTS (41) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (42) CpxRNTS (43) IntTrsBoundProof [UPPER BOUND(ID), 2035 ms] (44) CpxRNTS (45) IntTrsBoundProof [UPPER BOUND(ID), 877 ms] (46) CpxRNTS (47) ResultPropagationProof [UPPER BOUND(ID), 1 ms] (48) CpxRNTS (49) IntTrsBoundProof [UPPER BOUND(ID), 266 ms] (50) CpxRNTS (51) IntTrsBoundProof [UPPER BOUND(ID), 75 ms] (52) CpxRNTS (53) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (54) CpxRNTS (55) IntTrsBoundProof [UPPER BOUND(ID), 1238 ms] (56) CpxRNTS (57) IntTrsBoundProof [UPPER BOUND(ID), 763 ms] (58) CpxRNTS (59) FinalProof [FINISHED, 0 ms] (60) BOUNDS(1, n^3) (61) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (62) CpxRelTRS (63) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (64) typed CpxTrs (65) OrderProof [LOWER BOUND(ID), 0 ms] (66) typed CpxTrs (67) RewriteLemmaProof [LOWER BOUND(ID), 240 ms] (68) proven lower bound (69) LowerBoundPropagationProof [FINISHED, 0 ms] (70) BOUNDS(n^1, INF) ---------------------------------------- (0) Obligation: The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^3). The TRS R consists of the following rules: +(x, 0) -> x +(x, s(y)) -> s(+(x, y)) +(0, s(y)) -> s(y) s(+(0, y)) -> s(y) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (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(0) -> 0 encArg(cons_+(x_1, x_2)) -> +(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encode_+(x_1, x_2) -> +(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^3). The TRS R consists of the following rules: +(x, 0) -> x +(x, s(y)) -> s(+(x, y)) +(0, s(y)) -> s(y) s(+(0, y)) -> s(y) The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(cons_+(x_1, x_2)) -> +(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encode_+(x_1, x_2) -> +(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) Rewrite Strategy: INNERMOST ---------------------------------------- (3) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^3). The TRS R consists of the following rules: +(x, 0) -> x +(x, s(y)) -> s(+(x, y)) +(0, s(y)) -> s(y) s(+(0, y)) -> s(y) The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(cons_+(x_1, x_2)) -> +(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encode_+(x_1, x_2) -> +(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) Rewrite Strategy: INNERMOST ---------------------------------------- (5) NonCtorToCtorProof (UPPER BOUND(ID)) transformed non-ctor to ctor-system ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, n^3). The TRS R consists of the following rules: +(x, 0) -> x +(0, c_s(y)) -> s(y) s(c_+(0, y)) -> s(y) +(x, c_s(y)) -> s(+(x, y)) The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(cons_+(x_1, x_2)) -> +(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encode_+(x_1, x_2) -> +(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) s(x0) -> c_s(x0) +(x0, x1) -> c_+(x0, x1) 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^3). The TRS R consists of the following rules: +(x, 0) -> x [1] +(0, c_s(y)) -> s(y) [1] s(c_+(0, y)) -> s(y) [1] +(x, c_s(y)) -> s(+(x, y)) [1] encArg(0) -> 0 [0] encArg(cons_+(x_1, x_2)) -> +(encArg(x_1), encArg(x_2)) [0] encArg(cons_s(x_1)) -> s(encArg(x_1)) [0] encode_+(x_1, x_2) -> +(encArg(x_1), encArg(x_2)) [0] encode_0 -> 0 [0] encode_s(x_1) -> s(encArg(x_1)) [0] s(x0) -> c_s(x0) [0] +(x0, x1) -> c_+(x0, x1) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (9) CpxWeightedTrsRenamingProof (BOTH BOUNDS(ID, ID)) Renamed defined symbols to avoid conflicts with arithmetic symbols: + => plus ---------------------------------------- (10) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^3). The TRS R consists of the following rules: plus(x, 0) -> x [1] plus(0, c_s(y)) -> s(y) [1] s(c_+(0, y)) -> s(y) [1] plus(x, c_s(y)) -> s(plus(x, y)) [1] encArg(0) -> 0 [0] encArg(cons_+(x_1, x_2)) -> plus(encArg(x_1), encArg(x_2)) [0] encArg(cons_s(x_1)) -> s(encArg(x_1)) [0] encode_+(x_1, x_2) -> plus(encArg(x_1), encArg(x_2)) [0] encode_0 -> 0 [0] encode_s(x_1) -> s(encArg(x_1)) [0] s(x0) -> c_s(x0) [0] plus(x0, x1) -> c_+(x0, x1) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (11) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (12) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: plus(x, 0) -> x [1] plus(0, c_s(y)) -> s(y) [1] s(c_+(0, y)) -> s(y) [1] plus(x, c_s(y)) -> s(plus(x, y)) [1] encArg(0) -> 0 [0] encArg(cons_+(x_1, x_2)) -> plus(encArg(x_1), encArg(x_2)) [0] encArg(cons_s(x_1)) -> s(encArg(x_1)) [0] encode_+(x_1, x_2) -> plus(encArg(x_1), encArg(x_2)) [0] encode_0 -> 0 [0] encode_s(x_1) -> s(encArg(x_1)) [0] s(x0) -> c_s(x0) [0] plus(x0, x1) -> c_+(x0, x1) [0] The TRS has the following type information: plus :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s 0 :: 0:c_s:c_+:cons_+:cons_s c_s :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s s :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s c_+ :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s encArg :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s cons_+ :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s cons_s :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s encode_+ :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s encode_0 :: 0:c_s:c_+:cons_+:cons_s encode_s :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s Rewrite Strategy: INNERMOST ---------------------------------------- (13) 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: encArg_1 encode_+_2 encode_0 encode_s_1 s_1 plus_2 Due to the following rules being added: encArg(v0) -> 0 [0] encode_+(v0, v1) -> 0 [0] encode_0 -> 0 [0] encode_s(v0) -> 0 [0] s(v0) -> 0 [0] plus(v0, v1) -> 0 [0] And the following fresh constants: none ---------------------------------------- (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: plus(x, 0) -> x [1] plus(0, c_s(y)) -> s(y) [1] s(c_+(0, y)) -> s(y) [1] plus(x, c_s(y)) -> s(plus(x, y)) [1] encArg(0) -> 0 [0] encArg(cons_+(x_1, x_2)) -> plus(encArg(x_1), encArg(x_2)) [0] encArg(cons_s(x_1)) -> s(encArg(x_1)) [0] encode_+(x_1, x_2) -> plus(encArg(x_1), encArg(x_2)) [0] encode_0 -> 0 [0] encode_s(x_1) -> s(encArg(x_1)) [0] s(x0) -> c_s(x0) [0] plus(x0, x1) -> c_+(x0, x1) [0] encArg(v0) -> 0 [0] encode_+(v0, v1) -> 0 [0] encode_0 -> 0 [0] encode_s(v0) -> 0 [0] s(v0) -> 0 [0] plus(v0, v1) -> 0 [0] The TRS has the following type information: plus :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s 0 :: 0:c_s:c_+:cons_+:cons_s c_s :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s s :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s c_+ :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s encArg :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s cons_+ :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s cons_s :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s encode_+ :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s encode_0 :: 0:c_s:c_+:cons_+:cons_s encode_s :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s Rewrite Strategy: INNERMOST ---------------------------------------- (15) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (16) 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: plus(x, 0) -> x [1] plus(0, c_s(y)) -> s(y) [1] s(c_+(0, y)) -> s(y) [1] plus(x, c_s(0)) -> s(x) [2] plus(0, c_s(c_s(y'))) -> s(s(y')) [2] plus(x, c_s(c_s(y''))) -> s(s(plus(x, y''))) [2] plus(x, c_s(y)) -> s(c_+(x, y)) [1] plus(x, c_s(y)) -> s(0) [1] encArg(0) -> 0 [0] encArg(cons_+(0, 0)) -> plus(0, 0) [0] encArg(cons_+(0, cons_+(x_11, x_2''))) -> plus(0, plus(encArg(x_11), encArg(x_2''))) [0] encArg(cons_+(0, cons_s(x_12))) -> plus(0, s(encArg(x_12))) [0] encArg(cons_+(0, x_2)) -> plus(0, 0) [0] encArg(cons_+(cons_+(x_1', x_2'), 0)) -> plus(plus(encArg(x_1'), encArg(x_2')), 0) [0] encArg(cons_+(cons_+(x_1', x_2'), cons_+(x_13, x_21))) -> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) [0] encArg(cons_+(cons_+(x_1', x_2'), cons_s(x_14))) -> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) [0] encArg(cons_+(cons_+(x_1', x_2'), x_2)) -> plus(plus(encArg(x_1'), encArg(x_2')), 0) [0] encArg(cons_+(cons_s(x_1''), 0)) -> plus(s(encArg(x_1'')), 0) [0] encArg(cons_+(cons_s(x_1''), cons_+(x_15, x_22))) -> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) [0] encArg(cons_+(cons_s(x_1''), cons_s(x_16))) -> plus(s(encArg(x_1'')), s(encArg(x_16))) [0] encArg(cons_+(cons_s(x_1''), x_2)) -> plus(s(encArg(x_1'')), 0) [0] encArg(cons_+(x_1, 0)) -> plus(0, 0) [0] encArg(cons_+(x_1, cons_+(x_17, x_23))) -> plus(0, plus(encArg(x_17), encArg(x_23))) [0] encArg(cons_+(x_1, cons_s(x_18))) -> plus(0, s(encArg(x_18))) [0] encArg(cons_+(x_1, x_2)) -> plus(0, 0) [0] encArg(cons_s(0)) -> s(0) [0] encArg(cons_s(cons_+(x_19, x_24))) -> s(plus(encArg(x_19), encArg(x_24))) [0] encArg(cons_s(cons_s(x_110))) -> s(s(encArg(x_110))) [0] encArg(cons_s(x_1)) -> s(0) [0] encode_+(0, 0) -> plus(0, 0) [0] encode_+(0, cons_+(x_113, x_26)) -> plus(0, plus(encArg(x_113), encArg(x_26))) [0] encode_+(0, cons_s(x_114)) -> plus(0, s(encArg(x_114))) [0] encode_+(0, x_2) -> plus(0, 0) [0] encode_+(cons_+(x_111, x_25), 0) -> plus(plus(encArg(x_111), encArg(x_25)), 0) [0] encode_+(cons_+(x_111, x_25), cons_+(x_115, x_27)) -> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) [0] encode_+(cons_+(x_111, x_25), cons_s(x_116)) -> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(x_116))) [0] encode_+(cons_+(x_111, x_25), x_2) -> plus(plus(encArg(x_111), encArg(x_25)), 0) [0] encode_+(cons_s(x_112), 0) -> plus(s(encArg(x_112)), 0) [0] encode_+(cons_s(x_112), cons_+(x_117, x_28)) -> plus(s(encArg(x_112)), plus(encArg(x_117), encArg(x_28))) [0] encode_+(cons_s(x_112), cons_s(x_118)) -> plus(s(encArg(x_112)), s(encArg(x_118))) [0] encode_+(cons_s(x_112), x_2) -> plus(s(encArg(x_112)), 0) [0] encode_+(x_1, 0) -> plus(0, 0) [0] encode_+(x_1, cons_+(x_119, x_29)) -> plus(0, plus(encArg(x_119), encArg(x_29))) [0] encode_+(x_1, cons_s(x_120)) -> plus(0, s(encArg(x_120))) [0] encode_+(x_1, x_2) -> plus(0, 0) [0] encode_0 -> 0 [0] encode_s(0) -> s(0) [0] encode_s(cons_+(x_121, x_210)) -> s(plus(encArg(x_121), encArg(x_210))) [0] encode_s(cons_s(x_122)) -> s(s(encArg(x_122))) [0] encode_s(x_1) -> s(0) [0] s(x0) -> c_s(x0) [0] plus(x0, x1) -> c_+(x0, x1) [0] encArg(v0) -> 0 [0] encode_+(v0, v1) -> 0 [0] encode_0 -> 0 [0] encode_s(v0) -> 0 [0] s(v0) -> 0 [0] plus(v0, v1) -> 0 [0] The TRS has the following type information: plus :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s 0 :: 0:c_s:c_+:cons_+:cons_s c_s :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s s :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s c_+ :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s encArg :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s cons_+ :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s cons_s :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s encode_+ :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s encode_0 :: 0:c_s:c_+:cons_+:cons_s encode_s :: 0:c_s:c_+:cons_+:cons_s -> 0:c_s:c_+:cons_+:cons_s Rewrite Strategy: INNERMOST ---------------------------------------- (17) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: 0 => 0 ---------------------------------------- (18) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> s(s(encArg(x_110))) :|: z = 1 + (1 + x_110), x_110 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> s(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> s(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_12))) :|: z = 1 + 0 + (1 + x_12), x_12 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + x_1 + 0, x_1 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_+(z, z') -{ 0 }-> plus(s(encArg(x_112)), s(encArg(x_118))) :|: z = 1 + x_112, z' = 1 + x_118, x_112 >= 0, x_118 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(x_112)), plus(encArg(x_117), encArg(x_28))) :|: z = 1 + x_112, x_117 >= 0, z' = 1 + x_117 + x_28, x_112 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(x_112)), 0) :|: z = 1 + x_112, x_112 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(x_112)), 0) :|: z = 1 + x_112, x_2 >= 0, z' = x_2, x_112 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(x_116))) :|: x_116 >= 0, x_25 >= 0, z' = 1 + x_116, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, x_2 >= 0, z' = x_2, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(x_114))) :|: x_114 >= 0, z = 0, z' = 1 + x_114 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(x_120))) :|: x_1 >= 0, x_120 >= 0, z = x_1, z' = 1 + x_120 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: x_1 >= 0, z = x_1, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z = 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: x_2 >= 0, z' = x_2, z = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = x_1, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_+(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s(s(encArg(x_122))) :|: x_122 >= 0, z = 1 + x_122 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> s(0) :|: z = 0 encode_s(z) -{ 0 }-> s(0) :|: x_1 >= 0, z = x_1 encode_s(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 plus(z, z') -{ 1 }-> x :|: x >= 0, z = x, z' = 0 plus(z, z') -{ 2 }-> s(x) :|: x >= 0, z' = 1 + 0, z = x plus(z, z') -{ 1 }-> s(y) :|: z' = 1 + y, y >= 0, z = 0 plus(z, z') -{ 2 }-> s(s(y')) :|: z' = 1 + (1 + y'), y' >= 0, z = 0 plus(z, z') -{ 2 }-> s(s(plus(x, y''))) :|: z' = 1 + (1 + y''), x >= 0, y'' >= 0, z = x plus(z, z') -{ 1 }-> s(0) :|: z' = 1 + y, x >= 0, y >= 0, z = x plus(z, z') -{ 1 }-> s(1 + x + y) :|: z' = 1 + y, x >= 0, y >= 0, z = x plus(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 plus(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 s(z) -{ 1 }-> s(y) :|: y >= 0, z = 1 + 0 + y s(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 s(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 ---------------------------------------- (19) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> s(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> s(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z = 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z' >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> s(0) :|: z = 0 encode_s(z) -{ 0 }-> s(0) :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 2 }-> s(z) :|: z >= 0, z' = 1 + 0 plus(z, z') -{ 2 }-> s(s(plus(z, z' - 2))) :|: z >= 0, z' - 2 >= 0 plus(z, z') -{ 2 }-> s(s(z' - 2)) :|: z' - 2 >= 0, z = 0 plus(z, z') -{ 1 }-> s(0) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s(z' - 1) :|: z' - 1 >= 0, z = 0 plus(z, z') -{ 1 }-> s(1 + z + (z' - 1)) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ 1 }-> s(z - 1) :|: z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 ---------------------------------------- (21) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { encode_0 } { s } { plus } { encArg } { encode_s } { encode_+ } ---------------------------------------- (22) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> s(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> s(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z = 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z' >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> s(0) :|: z = 0 encode_s(z) -{ 0 }-> s(0) :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 2 }-> s(z) :|: z >= 0, z' = 1 + 0 plus(z, z') -{ 2 }-> s(s(plus(z, z' - 2))) :|: z >= 0, z' - 2 >= 0 plus(z, z') -{ 2 }-> s(s(z' - 2)) :|: z' - 2 >= 0, z = 0 plus(z, z') -{ 1 }-> s(0) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s(z' - 1) :|: z' - 1 >= 0, z = 0 plus(z, z') -{ 1 }-> s(1 + z + (z' - 1)) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ 1 }-> s(z - 1) :|: z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {encode_0}, {s}, {plus}, {encArg}, {encode_s}, {encode_+} ---------------------------------------- (23) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (24) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> s(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> s(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z = 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z' >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> s(0) :|: z = 0 encode_s(z) -{ 0 }-> s(0) :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 2 }-> s(z) :|: z >= 0, z' = 1 + 0 plus(z, z') -{ 2 }-> s(s(plus(z, z' - 2))) :|: z >= 0, z' - 2 >= 0 plus(z, z') -{ 2 }-> s(s(z' - 2)) :|: z' - 2 >= 0, z = 0 plus(z, z') -{ 1 }-> s(0) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s(z' - 1) :|: z' - 1 >= 0, z = 0 plus(z, z') -{ 1 }-> s(1 + z + (z' - 1)) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ 1 }-> s(z - 1) :|: z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {encode_0}, {s}, {plus}, {encArg}, {encode_s}, {encode_+} ---------------------------------------- (25) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_0 after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> s(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> s(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z = 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z' >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> s(0) :|: z = 0 encode_s(z) -{ 0 }-> s(0) :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 2 }-> s(z) :|: z >= 0, z' = 1 + 0 plus(z, z') -{ 2 }-> s(s(plus(z, z' - 2))) :|: z >= 0, z' - 2 >= 0 plus(z, z') -{ 2 }-> s(s(z' - 2)) :|: z' - 2 >= 0, z = 0 plus(z, z') -{ 1 }-> s(0) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s(z' - 1) :|: z' - 1 >= 0, z = 0 plus(z, z') -{ 1 }-> s(1 + z + (z' - 1)) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ 1 }-> s(z - 1) :|: z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {encode_0}, {s}, {plus}, {encArg}, {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: ?, size: O(1) [0] ---------------------------------------- (27) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encode_0 after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> s(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> s(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z = 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z' >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> s(0) :|: z = 0 encode_s(z) -{ 0 }-> s(0) :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 2 }-> s(z) :|: z >= 0, z' = 1 + 0 plus(z, z') -{ 2 }-> s(s(plus(z, z' - 2))) :|: z >= 0, z' - 2 >= 0 plus(z, z') -{ 2 }-> s(s(z' - 2)) :|: z' - 2 >= 0, z = 0 plus(z, z') -{ 1 }-> s(0) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s(z' - 1) :|: z' - 1 >= 0, z = 0 plus(z, z') -{ 1 }-> s(1 + z + (z' - 1)) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ 1 }-> s(z - 1) :|: z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {s}, {plus}, {encArg}, {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] ---------------------------------------- (29) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> s(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> s(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z = 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z' >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> s(0) :|: z = 0 encode_s(z) -{ 0 }-> s(0) :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 2 }-> s(z) :|: z >= 0, z' = 1 + 0 plus(z, z') -{ 2 }-> s(s(plus(z, z' - 2))) :|: z >= 0, z' - 2 >= 0 plus(z, z') -{ 2 }-> s(s(z' - 2)) :|: z' - 2 >= 0, z = 0 plus(z, z') -{ 1 }-> s(0) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s(z' - 1) :|: z' - 1 >= 0, z = 0 plus(z, z') -{ 1 }-> s(1 + z + (z' - 1)) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ 1 }-> s(z - 1) :|: z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {s}, {plus}, {encArg}, {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] ---------------------------------------- (31) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: s after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> s(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> s(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z = 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z' >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> s(0) :|: z = 0 encode_s(z) -{ 0 }-> s(0) :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 2 }-> s(z) :|: z >= 0, z' = 1 + 0 plus(z, z') -{ 2 }-> s(s(plus(z, z' - 2))) :|: z >= 0, z' - 2 >= 0 plus(z, z') -{ 2 }-> s(s(z' - 2)) :|: z' - 2 >= 0, z = 0 plus(z, z') -{ 1 }-> s(0) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s(z' - 1) :|: z' - 1 >= 0, z = 0 plus(z, z') -{ 1 }-> s(1 + z + (z' - 1)) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ 1 }-> s(z - 1) :|: z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {s}, {plus}, {encArg}, {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: ?, size: O(n^1) [1 + z] ---------------------------------------- (33) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: s after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> s(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> s(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z = 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z' >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> s(0) :|: z = 0 encode_s(z) -{ 0 }-> s(0) :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 2 }-> s(z) :|: z >= 0, z' = 1 + 0 plus(z, z') -{ 2 }-> s(s(plus(z, z' - 2))) :|: z >= 0, z' - 2 >= 0 plus(z, z') -{ 2 }-> s(s(z' - 2)) :|: z' - 2 >= 0, z = 0 plus(z, z') -{ 1 }-> s(0) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s(z' - 1) :|: z' - 1 >= 0, z = 0 plus(z, z') -{ 1 }-> s(1 + z + (z' - 1)) :|: z >= 0, z' - 1 >= 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ 1 }-> s(z - 1) :|: z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {plus}, {encArg}, {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] ---------------------------------------- (35) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> s5 :|: s5 >= 0, s5 <= 0 + 1, z = 1 + 0 encArg(z) -{ 0 }-> s6 :|: s6 >= 0, s6 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z = 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z' >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s7 :|: s7 >= 0, s7 <= 0 + 1, z = 0 encode_s(z) -{ 0 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z >= 0 encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ z' }-> s :|: s >= 0, s <= z' - 1 + 1, z' - 1 >= 0, z = 0 plus(z, z') -{ 2 + z }-> s'' :|: s'' >= 0, s'' <= z + 1, z >= 0, z' = 1 + 0 plus(z, z') -{ s1 + z' }-> s2 :|: s1 >= 0, s1 <= z' - 2 + 1, s2 >= 0, s2 <= s1 + 1, z' - 2 >= 0, z = 0 plus(z, z') -{ 1 + z + z' }-> s3 :|: s3 >= 0, s3 <= 1 + z + (z' - 1) + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s4 :|: s4 >= 0, s4 <= 0 + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 2 }-> s(s(plus(z, z' - 2))) :|: z >= 0, z' - 2 >= 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ z }-> s' :|: s' >= 0, s' <= z - 1 + 1, z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {plus}, {encArg}, {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] ---------------------------------------- (37) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: plus after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z + z' ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> s5 :|: s5 >= 0, s5 <= 0 + 1, z = 1 + 0 encArg(z) -{ 0 }-> s6 :|: s6 >= 0, s6 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z = 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z' >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s7 :|: s7 >= 0, s7 <= 0 + 1, z = 0 encode_s(z) -{ 0 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z >= 0 encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ z' }-> s :|: s >= 0, s <= z' - 1 + 1, z' - 1 >= 0, z = 0 plus(z, z') -{ 2 + z }-> s'' :|: s'' >= 0, s'' <= z + 1, z >= 0, z' = 1 + 0 plus(z, z') -{ s1 + z' }-> s2 :|: s1 >= 0, s1 <= z' - 2 + 1, s2 >= 0, s2 <= s1 + 1, z' - 2 >= 0, z = 0 plus(z, z') -{ 1 + z + z' }-> s3 :|: s3 >= 0, s3 <= 1 + z + (z' - 1) + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s4 :|: s4 >= 0, s4 <= 0 + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 2 }-> s(s(plus(z, z' - 2))) :|: z >= 0, z' - 2 >= 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ z }-> s' :|: s' >= 0, s' <= z - 1 + 1, z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {plus}, {encArg}, {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] plus: runtime: ?, size: O(n^1) [1 + z + z'] ---------------------------------------- (39) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: plus after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 5 + 2*z + 2*z*z' + 5*z' + 2*z'^2 ---------------------------------------- (40) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> s5 :|: s5 >= 0, s5 <= 0 + 1, z = 1 + 0 encArg(z) -{ 0 }-> s6 :|: s6 >= 0, s6 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> plus(0, 0) :|: z = 1 + 0 + 0 encArg(z) -{ 0 }-> plus(0, 0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> plus(0, 0) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z = 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z' >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(0, 0) :|: z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s7 :|: s7 >= 0, s7 <= 0 + 1, z = 0 encode_s(z) -{ 0 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z >= 0 encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ z' }-> s :|: s >= 0, s <= z' - 1 + 1, z' - 1 >= 0, z = 0 plus(z, z') -{ 2 + z }-> s'' :|: s'' >= 0, s'' <= z + 1, z >= 0, z' = 1 + 0 plus(z, z') -{ s1 + z' }-> s2 :|: s1 >= 0, s1 <= z' - 2 + 1, s2 >= 0, s2 <= s1 + 1, z' - 2 >= 0, z = 0 plus(z, z') -{ 1 + z + z' }-> s3 :|: s3 >= 0, s3 <= 1 + z + (z' - 1) + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s4 :|: s4 >= 0, s4 <= 0 + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 2 }-> s(s(plus(z, z' - 2))) :|: z >= 0, z' - 2 >= 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ z }-> s' :|: s' >= 0, s' <= z - 1 + 1, z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {encArg}, {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] plus: runtime: O(n^2) [5 + 2*z + 2*z*z' + 5*z' + 2*z'^2], size: O(n^1) [1 + z + z'] ---------------------------------------- (41) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (42) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 5 }-> s12 :|: s12 >= 0, s12 <= 0 + 0 + 1, z = 1 + 0 + 0 encArg(z) -{ 5 }-> s13 :|: s13 >= 0, s13 <= 0 + 0 + 1, z - 1 >= 0 encArg(z) -{ 5 }-> s14 :|: s14 >= 0, s14 <= 0 + 0 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> s5 :|: s5 >= 0, s5 <= 0 + 1, z = 1 + 0 encArg(z) -{ 0 }-> s6 :|: s6 >= 0, s6 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 5 }-> s15 :|: s15 >= 0, s15 <= 0 + 0 + 1, z = 0, z' = 0 encode_+(z, z') -{ 5 }-> s16 :|: s16 >= 0, s16 <= 0 + 0 + 1, z' >= 0, z = 0 encode_+(z, z') -{ 5 }-> s17 :|: s17 >= 0, s17 <= 0 + 0 + 1, z >= 0, z' = 0 encode_+(z, z') -{ 5 }-> s18 :|: s18 >= 0, s18 <= 0 + 0 + 1, z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s7 :|: s7 >= 0, s7 <= 0 + 1, z = 0 encode_s(z) -{ 0 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z >= 0 encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ z' }-> s :|: s >= 0, s <= z' - 1 + 1, z' - 1 >= 0, z = 0 plus(z, z') -{ 2 + z }-> s'' :|: s'' >= 0, s'' <= z + 1, z >= 0, z' = 1 + 0 plus(z, z') -{ 5 + s10 + s9 + -2*z + 2*z*z' + -3*z' + 2*z'^2 }-> s11 :|: s9 >= 0, s9 <= z + (z' - 2) + 1, s10 >= 0, s10 <= s9 + 1, s11 >= 0, s11 <= s10 + 1, z >= 0, z' - 2 >= 0 plus(z, z') -{ s1 + z' }-> s2 :|: s1 >= 0, s1 <= z' - 2 + 1, s2 >= 0, s2 <= s1 + 1, z' - 2 >= 0, z = 0 plus(z, z') -{ 1 + z + z' }-> s3 :|: s3 >= 0, s3 <= 1 + z + (z' - 1) + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s4 :|: s4 >= 0, s4 <= 0 + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ z }-> s' :|: s' >= 0, s' <= z - 1 + 1, z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {encArg}, {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] plus: runtime: O(n^2) [5 + 2*z + 2*z*z' + 5*z' + 2*z'^2], size: O(n^1) [1 + z + z'] ---------------------------------------- (43) 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: 1 + z ---------------------------------------- (44) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 5 }-> s12 :|: s12 >= 0, s12 <= 0 + 0 + 1, z = 1 + 0 + 0 encArg(z) -{ 5 }-> s13 :|: s13 >= 0, s13 <= 0 + 0 + 1, z - 1 >= 0 encArg(z) -{ 5 }-> s14 :|: s14 >= 0, s14 <= 0 + 0 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> s5 :|: s5 >= 0, s5 <= 0 + 1, z = 1 + 0 encArg(z) -{ 0 }-> s6 :|: s6 >= 0, s6 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 5 }-> s15 :|: s15 >= 0, s15 <= 0 + 0 + 1, z = 0, z' = 0 encode_+(z, z') -{ 5 }-> s16 :|: s16 >= 0, s16 <= 0 + 0 + 1, z' >= 0, z = 0 encode_+(z, z') -{ 5 }-> s17 :|: s17 >= 0, s17 <= 0 + 0 + 1, z >= 0, z' = 0 encode_+(z, z') -{ 5 }-> s18 :|: s18 >= 0, s18 <= 0 + 0 + 1, z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s7 :|: s7 >= 0, s7 <= 0 + 1, z = 0 encode_s(z) -{ 0 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z >= 0 encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ z' }-> s :|: s >= 0, s <= z' - 1 + 1, z' - 1 >= 0, z = 0 plus(z, z') -{ 2 + z }-> s'' :|: s'' >= 0, s'' <= z + 1, z >= 0, z' = 1 + 0 plus(z, z') -{ 5 + s10 + s9 + -2*z + 2*z*z' + -3*z' + 2*z'^2 }-> s11 :|: s9 >= 0, s9 <= z + (z' - 2) + 1, s10 >= 0, s10 <= s9 + 1, s11 >= 0, s11 <= s10 + 1, z >= 0, z' - 2 >= 0 plus(z, z') -{ s1 + z' }-> s2 :|: s1 >= 0, s1 <= z' - 2 + 1, s2 >= 0, s2 <= s1 + 1, z' - 2 >= 0, z = 0 plus(z, z') -{ 1 + z + z' }-> s3 :|: s3 >= 0, s3 <= 1 + z + (z' - 1) + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s4 :|: s4 >= 0, s4 <= 0 + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ z }-> s' :|: s' >= 0, s' <= z - 1 + 1, z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {encArg}, {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] plus: runtime: O(n^2) [5 + 2*z + 2*z*z' + 5*z' + 2*z'^2], size: O(n^1) [1 + z + z'] encArg: runtime: ?, size: O(n^1) [1 + z] ---------------------------------------- (45) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encArg after applying outer abstraction to obtain an ITS, resulting in: O(n^3) with polynomial bound: 498 + 1407*z + 916*z^2 + 188*z^3 ---------------------------------------- (46) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 5 }-> s12 :|: s12 >= 0, s12 <= 0 + 0 + 1, z = 1 + 0 + 0 encArg(z) -{ 5 }-> s13 :|: s13 >= 0, s13 <= 0 + 0 + 1, z - 1 >= 0 encArg(z) -{ 5 }-> s14 :|: s14 >= 0, s14 <= 0 + 0 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> s5 :|: s5 >= 0, s5 <= 0 + 1, z = 1 + 0 encArg(z) -{ 0 }-> s6 :|: s6 >= 0, s6 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 0 }-> s(s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> s(plus(encArg(x_19), encArg(x_24))) :|: z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), s(encArg(x_16))) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), plus(encArg(x_15), encArg(x_22))) :|: x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(x_1'')), 0) :|: x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 0 }-> plus(s(encArg(z - 2)), 0) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), s(encArg(x_14))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), plus(encArg(x_13), encArg(x_21))) :|: z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 0 }-> plus(plus(encArg(x_1'), encArg(x_2')), 0) :|: z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(x_18))) :|: x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> plus(0, s(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_11), encArg(x_2''))) :|: z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ 0 }-> plus(0, plus(encArg(x_17), encArg(x_23))) :|: x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 5 }-> s15 :|: s15 >= 0, s15 <= 0 + 0 + 1, z = 0, z' = 0 encode_+(z, z') -{ 5 }-> s16 :|: s16 >= 0, s16 <= 0 + 0 + 1, z' >= 0, z = 0 encode_+(z, z') -{ 5 }-> s17 :|: s17 >= 0, s17 <= 0 + 0 + 1, z >= 0, z' = 0 encode_+(z, z') -{ 5 }-> s18 :|: s18 >= 0, s18 <= 0 + 0 + 1, z >= 0, z' >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), s(encArg(z' - 1))) :|: z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), plus(encArg(x_117), encArg(x_28))) :|: x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z - 1 >= 0, z' = 0 encode_+(z, z') -{ 0 }-> plus(s(encArg(z - 1)), 0) :|: z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), s(encArg(z' - 1))) :|: z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), plus(encArg(x_115), encArg(x_27))) :|: x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(plus(encArg(x_111), encArg(x_25)), 0) :|: x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z' - 1 >= 0, z = 0 encode_+(z, z') -{ 0 }-> plus(0, s(encArg(z' - 1))) :|: z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_113), encArg(x_26))) :|: x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ 0 }-> plus(0, plus(encArg(x_119), encArg(x_29))) :|: z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 0 }-> s7 :|: s7 >= 0, s7 <= 0 + 1, z = 0 encode_s(z) -{ 0 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z >= 0 encode_s(z) -{ 0 }-> s(s(encArg(z - 1))) :|: z - 1 >= 0 encode_s(z) -{ 0 }-> s(plus(encArg(x_121), encArg(x_210))) :|: z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ z' }-> s :|: s >= 0, s <= z' - 1 + 1, z' - 1 >= 0, z = 0 plus(z, z') -{ 2 + z }-> s'' :|: s'' >= 0, s'' <= z + 1, z >= 0, z' = 1 + 0 plus(z, z') -{ 5 + s10 + s9 + -2*z + 2*z*z' + -3*z' + 2*z'^2 }-> s11 :|: s9 >= 0, s9 <= z + (z' - 2) + 1, s10 >= 0, s10 <= s9 + 1, s11 >= 0, s11 <= s10 + 1, z >= 0, z' - 2 >= 0 plus(z, z') -{ s1 + z' }-> s2 :|: s1 >= 0, s1 <= z' - 2 + 1, s2 >= 0, s2 <= s1 + 1, z' - 2 >= 0, z = 0 plus(z, z') -{ 1 + z + z' }-> s3 :|: s3 >= 0, s3 <= 1 + z + (z' - 1) + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s4 :|: s4 >= 0, s4 <= 0 + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ z }-> s' :|: s' >= 0, s' <= z - 1 + 1, z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] plus: runtime: O(n^2) [5 + 2*z + 2*z*z' + 5*z' + 2*z'^2], size: O(n^1) [1 + z + z'] encArg: runtime: O(n^3) [498 + 1407*z + 916*z^2 + 188*z^3], size: O(n^1) [1 + z] ---------------------------------------- (47) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (48) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 5 }-> s12 :|: s12 >= 0, s12 <= 0 + 0 + 1, z = 1 + 0 + 0 encArg(z) -{ 5 }-> s13 :|: s13 >= 0, s13 <= 0 + 0 + 1, z - 1 >= 0 encArg(z) -{ 5 }-> s14 :|: s14 >= 0, s14 <= 0 + 0 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 1006 + 2*s19 + 2*s19*s20 + 5*s20 + 2*s20^2 + 5*s21 + 2*s21^2 + 1407*x_11 + 916*x_11^2 + 188*x_11^3 + 1407*x_2'' + 916*x_2''^2 + 188*x_2''^3 }-> s22 :|: s19 >= 0, s19 <= x_11 + 1, s20 >= 0, s20 <= x_2'' + 1, s21 >= 0, s21 <= s19 + s20 + 1, s22 >= 0, s22 <= 0 + s21 + 1, z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ -151 + s23 + 5*s24 + 2*s24^2 + -1*z + -212*z^2 + 188*z^3 }-> s25 :|: s23 >= 0, s23 <= z - 2 + 1, s24 >= 0, s24 <= s23 + 1, s25 >= 0, s25 <= 0 + s24 + 1, z - 2 >= 0 encArg(z) -{ 1006 + 2*s26 + 2*s26*s27 + 5*s27 + 2*s27^2 + 2*s28 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s29 :|: s26 >= 0, s26 <= x_1' + 1, s27 >= 0, s27 <= x_2' + 1, s28 >= 0, s28 <= s26 + s27 + 1, s29 >= 0, s29 <= s28 + 0 + 1, x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 2007 + 2*s30 + 2*s30*s31 + 5*s31 + 2*s31^2 + 2*s32 + 2*s32*s35 + 2*s33 + 2*s33*s34 + 5*s34 + 2*s34^2 + 5*s35 + 2*s35^2 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_13 + 916*x_13^2 + 188*x_13^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 + 1407*x_21 + 916*x_21^2 + 188*x_21^3 }-> s36 :|: s30 >= 0, s30 <= x_1' + 1, s31 >= 0, s31 <= x_2' + 1, s32 >= 0, s32 <= s30 + s31 + 1, s33 >= 0, s33 <= x_13 + 1, s34 >= 0, s34 <= x_21 + 1, s35 >= 0, s35 <= s33 + s34 + 1, s36 >= 0, s36 <= s32 + s35 + 1, z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 1504 + 2*s37 + 2*s37*s38 + 5*s38 + 2*s38^2 + 2*s39 + 2*s39*s41 + s40 + 5*s41 + 2*s41^2 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_14 + 916*x_14^2 + 188*x_14^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s42 :|: s37 >= 0, s37 <= x_1' + 1, s38 >= 0, s38 <= x_2' + 1, s39 >= 0, s39 <= s37 + s38 + 1, s40 >= 0, s40 <= x_14 + 1, s41 >= 0, s41 <= s40 + 1, s42 >= 0, s42 <= s39 + s41 + 1, z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 1006 + 2*s43 + 2*s43*s44 + 5*s44 + 2*s44^2 + 2*s45 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s46 :|: s43 >= 0, s43 <= x_1' + 1, s44 >= 0, s44 <= x_2' + 1, s45 >= 0, s45 <= s43 + s44 + 1, s46 >= 0, s46 <= s45 + 0 + 1, z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ -151 + s47 + 2*s48 + -1*z + -212*z^2 + 188*z^3 }-> s49 :|: s47 >= 0, s47 <= z - 2 + 1, s48 >= 0, s48 <= s47 + 1, s49 >= 0, s49 <= s48 + 0 + 1, z - 2 >= 0 encArg(z) -{ 0 }-> s5 :|: s5 >= 0, s5 <= 0 + 1, z = 1 + 0 encArg(z) -{ 1504 + s50 + 2*s51 + 2*s51*s54 + 2*s52 + 2*s52*s53 + 5*s53 + 2*s53^2 + 5*s54 + 2*s54^2 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 + 1407*x_15 + 916*x_15^2 + 188*x_15^3 + 1407*x_22 + 916*x_22^2 + 188*x_22^3 }-> s55 :|: s50 >= 0, s50 <= x_1'' + 1, s51 >= 0, s51 <= s50 + 1, s52 >= 0, s52 <= x_15 + 1, s53 >= 0, s53 <= x_22 + 1, s54 >= 0, s54 <= s52 + s53 + 1, s55 >= 0, s55 <= s51 + s54 + 1, x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> s6 :|: s6 >= 0, s6 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 1001 + s56 + 2*s57 + 2*s57*s59 + s58 + 5*s59 + 2*s59^2 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 + 1407*x_16 + 916*x_16^2 + 188*x_16^3 }-> s60 :|: s56 >= 0, s56 <= x_1'' + 1, s57 >= 0, s57 <= s56 + 1, s58 >= 0, s58 <= x_16 + 1, s59 >= 0, s59 <= s58 + 1, s60 >= 0, s60 <= s57 + s59 + 1, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 503 + s61 + 2*s62 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 }-> s63 :|: s61 >= 0, s61 <= x_1'' + 1, s62 >= 0, s62 <= s61 + 1, s63 >= 0, s63 <= s62 + 0 + 1, x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 1006 + 2*s64 + 2*s64*s65 + 5*s65 + 2*s65^2 + 5*s66 + 2*s66^2 + 1407*x_17 + 916*x_17^2 + 188*x_17^3 + 1407*x_23 + 916*x_23^2 + 188*x_23^3 }-> s67 :|: s64 >= 0, s64 <= x_17 + 1, s65 >= 0, s65 <= x_23 + 1, s66 >= 0, s66 <= s64 + s65 + 1, s67 >= 0, s67 <= 0 + s66 + 1, x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 503 + s68 + 5*s69 + 2*s69^2 + 1407*x_18 + 916*x_18^2 + 188*x_18^3 }-> s70 :|: s68 >= 0, s68 <= x_18 + 1, s69 >= 0, s69 <= s68 + 1, s70 >= 0, s70 <= 0 + s69 + 1, x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 1001 + 2*s71 + 2*s71*s72 + 5*s72 + 2*s72^2 + s73 + 1407*x_19 + 916*x_19^2 + 188*x_19^3 + 1407*x_24 + 916*x_24^2 + 188*x_24^3 }-> s74 :|: s71 >= 0, s71 <= x_19 + 1, s72 >= 0, s72 <= x_24 + 1, s73 >= 0, s73 <= s71 + s72 + 1, s74 >= 0, s74 <= s73 + 1, z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ -156 + s75 + s76 + -1*z + -212*z^2 + 188*z^3 }-> s77 :|: s75 >= 0, s75 <= z - 2 + 1, s76 >= 0, s76 <= s75 + 1, s77 >= 0, s77 <= s76 + 1, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 825 + 5*s100 + 2*s100*s98 + 2*s100^2 + 2*s96 + 2*s96*s97 + 5*s97 + 2*s97^2 + 2*s98 + s99 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 + 139*z' + 352*z'^2 + 188*z'^3 }-> s101 :|: s96 >= 0, s96 <= x_111 + 1, s97 >= 0, s97 <= x_25 + 1, s98 >= 0, s98 <= s96 + s97 + 1, s99 >= 0, s99 <= z' - 1 + 1, s100 >= 0, s100 <= s99 + 1, s101 >= 0, s101 <= s98 + s100 + 1, z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 1006 + 2*s102 + 2*s102*s103 + 5*s103 + 2*s103^2 + 2*s104 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 }-> s105 :|: s102 >= 0, s102 <= x_111 + 1, s103 >= 0, s103 <= x_25 + 1, s104 >= 0, s104 <= s102 + s103 + 1, s105 >= 0, s105 <= s104 + 0 + 1, x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ -176 + s106 + 2*s107 + 139*z + 352*z^2 + 188*z^3 }-> s108 :|: s106 >= 0, s106 <= z - 1 + 1, s107 >= 0, s107 <= s106 + 1, s108 >= 0, s108 <= s107 + 0 + 1, z - 1 >= 0, z' = 0 encode_+(z, z') -{ 825 + s109 + 2*s110 + 2*s110*s113 + 2*s111 + 2*s111*s112 + 5*s112 + 2*s112^2 + 5*s113 + 2*s113^2 + 1407*x_117 + 916*x_117^2 + 188*x_117^3 + 1407*x_28 + 916*x_28^2 + 188*x_28^3 + 139*z + 352*z^2 + 188*z^3 }-> s114 :|: s109 >= 0, s109 <= z - 1 + 1, s110 >= 0, s110 <= s109 + 1, s111 >= 0, s111 <= x_117 + 1, s112 >= 0, s112 <= x_28 + 1, s113 >= 0, s113 <= s111 + s112 + 1, s114 >= 0, s114 <= s110 + s113 + 1, x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ -357 + s115 + 2*s116 + 2*s116*s118 + s117 + 5*s118 + 2*s118^2 + 139*z + 352*z^2 + 188*z^3 + 139*z' + 352*z'^2 + 188*z'^3 }-> s119 :|: s115 >= 0, s115 <= z - 1 + 1, s116 >= 0, s116 <= s115 + 1, s117 >= 0, s117 <= z' - 1 + 1, s118 >= 0, s118 <= s117 + 1, s119 >= 0, s119 <= s116 + s118 + 1, z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ -176 + s120 + 2*s121 + 139*z + 352*z^2 + 188*z^3 }-> s122 :|: s120 >= 0, s120 <= z - 1 + 1, s121 >= 0, s121 <= s120 + 1, s122 >= 0, s122 <= s121 + 0 + 1, z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 1006 + 2*s123 + 2*s123*s124 + 5*s124 + 2*s124^2 + 5*s125 + 2*s125^2 + 1407*x_119 + 916*x_119^2 + 188*x_119^3 + 1407*x_29 + 916*x_29^2 + 188*x_29^3 }-> s126 :|: s123 >= 0, s123 <= x_119 + 1, s124 >= 0, s124 <= x_29 + 1, s125 >= 0, s125 <= s123 + s124 + 1, s126 >= 0, s126 <= 0 + s125 + 1, z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ -176 + s127 + 5*s128 + 2*s128^2 + 139*z' + 352*z'^2 + 188*z'^3 }-> s129 :|: s127 >= 0, s127 <= z' - 1 + 1, s128 >= 0, s128 <= s127 + 1, s129 >= 0, s129 <= 0 + s128 + 1, z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 5 }-> s15 :|: s15 >= 0, s15 <= 0 + 0 + 1, z = 0, z' = 0 encode_+(z, z') -{ 5 }-> s16 :|: s16 >= 0, s16 <= 0 + 0 + 1, z' >= 0, z = 0 encode_+(z, z') -{ 5 }-> s17 :|: s17 >= 0, s17 <= 0 + 0 + 1, z >= 0, z' = 0 encode_+(z, z') -{ 5 }-> s18 :|: s18 >= 0, s18 <= 0 + 0 + 1, z >= 0, z' >= 0 encode_+(z, z') -{ 1006 + 2*s78 + 2*s78*s79 + 5*s79 + 2*s79^2 + 5*s80 + 2*s80^2 + 1407*x_113 + 916*x_113^2 + 188*x_113^3 + 1407*x_26 + 916*x_26^2 + 188*x_26^3 }-> s81 :|: s78 >= 0, s78 <= x_113 + 1, s79 >= 0, s79 <= x_26 + 1, s80 >= 0, s80 <= s78 + s79 + 1, s81 >= 0, s81 <= 0 + s80 + 1, x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ -176 + s82 + 5*s83 + 2*s83^2 + 139*z' + 352*z'^2 + 188*z'^3 }-> s84 :|: s82 >= 0, s82 <= z' - 1 + 1, s83 >= 0, s83 <= s82 + 1, s84 >= 0, s84 <= 0 + s83 + 1, z' - 1 >= 0, z = 0 encode_+(z, z') -{ 1006 + 2*s85 + 2*s85*s86 + 5*s86 + 2*s86^2 + 2*s87 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 }-> s88 :|: s85 >= 0, s85 <= x_111 + 1, s86 >= 0, s86 <= x_25 + 1, s87 >= 0, s87 <= s85 + s86 + 1, s88 >= 0, s88 <= s87 + 0 + 1, x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 2007 + 2*s89 + 2*s89*s90 + 5*s90 + 2*s90^2 + 2*s91 + 2*s91*s94 + 2*s92 + 2*s92*s93 + 5*s93 + 2*s93^2 + 5*s94 + 2*s94^2 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_115 + 916*x_115^2 + 188*x_115^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 + 1407*x_27 + 916*x_27^2 + 188*x_27^3 }-> s95 :|: s89 >= 0, s89 <= x_111 + 1, s90 >= 0, s90 <= x_25 + 1, s91 >= 0, s91 <= s89 + s90 + 1, s92 >= 0, s92 <= x_115 + 1, s93 >= 0, s93 <= x_27 + 1, s94 >= 0, s94 <= s92 + s93 + 1, s95 >= 0, s95 <= s91 + s94 + 1, x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 1001 + 2*s130 + 2*s130*s131 + 5*s131 + 2*s131^2 + s132 + 1407*x_121 + 916*x_121^2 + 188*x_121^3 + 1407*x_210 + 916*x_210^2 + 188*x_210^3 }-> s133 :|: s130 >= 0, s130 <= x_121 + 1, s131 >= 0, s131 <= x_210 + 1, s132 >= 0, s132 <= s130 + s131 + 1, s133 >= 0, s133 <= s132 + 1, z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ -181 + s134 + s135 + 139*z + 352*z^2 + 188*z^3 }-> s136 :|: s134 >= 0, s134 <= z - 1 + 1, s135 >= 0, s135 <= s134 + 1, s136 >= 0, s136 <= s135 + 1, z - 1 >= 0 encode_s(z) -{ 0 }-> s7 :|: s7 >= 0, s7 <= 0 + 1, z = 0 encode_s(z) -{ 0 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ z' }-> s :|: s >= 0, s <= z' - 1 + 1, z' - 1 >= 0, z = 0 plus(z, z') -{ 2 + z }-> s'' :|: s'' >= 0, s'' <= z + 1, z >= 0, z' = 1 + 0 plus(z, z') -{ 5 + s10 + s9 + -2*z + 2*z*z' + -3*z' + 2*z'^2 }-> s11 :|: s9 >= 0, s9 <= z + (z' - 2) + 1, s10 >= 0, s10 <= s9 + 1, s11 >= 0, s11 <= s10 + 1, z >= 0, z' - 2 >= 0 plus(z, z') -{ s1 + z' }-> s2 :|: s1 >= 0, s1 <= z' - 2 + 1, s2 >= 0, s2 <= s1 + 1, z' - 2 >= 0, z = 0 plus(z, z') -{ 1 + z + z' }-> s3 :|: s3 >= 0, s3 <= 1 + z + (z' - 1) + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s4 :|: s4 >= 0, s4 <= 0 + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ z }-> s' :|: s' >= 0, s' <= z - 1 + 1, z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] plus: runtime: O(n^2) [5 + 2*z + 2*z*z' + 5*z' + 2*z'^2], size: O(n^1) [1 + z + z'] encArg: runtime: O(n^3) [498 + 1407*z + 916*z^2 + 188*z^3], size: O(n^1) [1 + z] ---------------------------------------- (49) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_s after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 3 + z ---------------------------------------- (50) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 5 }-> s12 :|: s12 >= 0, s12 <= 0 + 0 + 1, z = 1 + 0 + 0 encArg(z) -{ 5 }-> s13 :|: s13 >= 0, s13 <= 0 + 0 + 1, z - 1 >= 0 encArg(z) -{ 5 }-> s14 :|: s14 >= 0, s14 <= 0 + 0 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 1006 + 2*s19 + 2*s19*s20 + 5*s20 + 2*s20^2 + 5*s21 + 2*s21^2 + 1407*x_11 + 916*x_11^2 + 188*x_11^3 + 1407*x_2'' + 916*x_2''^2 + 188*x_2''^3 }-> s22 :|: s19 >= 0, s19 <= x_11 + 1, s20 >= 0, s20 <= x_2'' + 1, s21 >= 0, s21 <= s19 + s20 + 1, s22 >= 0, s22 <= 0 + s21 + 1, z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ -151 + s23 + 5*s24 + 2*s24^2 + -1*z + -212*z^2 + 188*z^3 }-> s25 :|: s23 >= 0, s23 <= z - 2 + 1, s24 >= 0, s24 <= s23 + 1, s25 >= 0, s25 <= 0 + s24 + 1, z - 2 >= 0 encArg(z) -{ 1006 + 2*s26 + 2*s26*s27 + 5*s27 + 2*s27^2 + 2*s28 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s29 :|: s26 >= 0, s26 <= x_1' + 1, s27 >= 0, s27 <= x_2' + 1, s28 >= 0, s28 <= s26 + s27 + 1, s29 >= 0, s29 <= s28 + 0 + 1, x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 2007 + 2*s30 + 2*s30*s31 + 5*s31 + 2*s31^2 + 2*s32 + 2*s32*s35 + 2*s33 + 2*s33*s34 + 5*s34 + 2*s34^2 + 5*s35 + 2*s35^2 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_13 + 916*x_13^2 + 188*x_13^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 + 1407*x_21 + 916*x_21^2 + 188*x_21^3 }-> s36 :|: s30 >= 0, s30 <= x_1' + 1, s31 >= 0, s31 <= x_2' + 1, s32 >= 0, s32 <= s30 + s31 + 1, s33 >= 0, s33 <= x_13 + 1, s34 >= 0, s34 <= x_21 + 1, s35 >= 0, s35 <= s33 + s34 + 1, s36 >= 0, s36 <= s32 + s35 + 1, z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 1504 + 2*s37 + 2*s37*s38 + 5*s38 + 2*s38^2 + 2*s39 + 2*s39*s41 + s40 + 5*s41 + 2*s41^2 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_14 + 916*x_14^2 + 188*x_14^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s42 :|: s37 >= 0, s37 <= x_1' + 1, s38 >= 0, s38 <= x_2' + 1, s39 >= 0, s39 <= s37 + s38 + 1, s40 >= 0, s40 <= x_14 + 1, s41 >= 0, s41 <= s40 + 1, s42 >= 0, s42 <= s39 + s41 + 1, z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 1006 + 2*s43 + 2*s43*s44 + 5*s44 + 2*s44^2 + 2*s45 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s46 :|: s43 >= 0, s43 <= x_1' + 1, s44 >= 0, s44 <= x_2' + 1, s45 >= 0, s45 <= s43 + s44 + 1, s46 >= 0, s46 <= s45 + 0 + 1, z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ -151 + s47 + 2*s48 + -1*z + -212*z^2 + 188*z^3 }-> s49 :|: s47 >= 0, s47 <= z - 2 + 1, s48 >= 0, s48 <= s47 + 1, s49 >= 0, s49 <= s48 + 0 + 1, z - 2 >= 0 encArg(z) -{ 0 }-> s5 :|: s5 >= 0, s5 <= 0 + 1, z = 1 + 0 encArg(z) -{ 1504 + s50 + 2*s51 + 2*s51*s54 + 2*s52 + 2*s52*s53 + 5*s53 + 2*s53^2 + 5*s54 + 2*s54^2 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 + 1407*x_15 + 916*x_15^2 + 188*x_15^3 + 1407*x_22 + 916*x_22^2 + 188*x_22^3 }-> s55 :|: s50 >= 0, s50 <= x_1'' + 1, s51 >= 0, s51 <= s50 + 1, s52 >= 0, s52 <= x_15 + 1, s53 >= 0, s53 <= x_22 + 1, s54 >= 0, s54 <= s52 + s53 + 1, s55 >= 0, s55 <= s51 + s54 + 1, x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> s6 :|: s6 >= 0, s6 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 1001 + s56 + 2*s57 + 2*s57*s59 + s58 + 5*s59 + 2*s59^2 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 + 1407*x_16 + 916*x_16^2 + 188*x_16^3 }-> s60 :|: s56 >= 0, s56 <= x_1'' + 1, s57 >= 0, s57 <= s56 + 1, s58 >= 0, s58 <= x_16 + 1, s59 >= 0, s59 <= s58 + 1, s60 >= 0, s60 <= s57 + s59 + 1, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 503 + s61 + 2*s62 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 }-> s63 :|: s61 >= 0, s61 <= x_1'' + 1, s62 >= 0, s62 <= s61 + 1, s63 >= 0, s63 <= s62 + 0 + 1, x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 1006 + 2*s64 + 2*s64*s65 + 5*s65 + 2*s65^2 + 5*s66 + 2*s66^2 + 1407*x_17 + 916*x_17^2 + 188*x_17^3 + 1407*x_23 + 916*x_23^2 + 188*x_23^3 }-> s67 :|: s64 >= 0, s64 <= x_17 + 1, s65 >= 0, s65 <= x_23 + 1, s66 >= 0, s66 <= s64 + s65 + 1, s67 >= 0, s67 <= 0 + s66 + 1, x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 503 + s68 + 5*s69 + 2*s69^2 + 1407*x_18 + 916*x_18^2 + 188*x_18^3 }-> s70 :|: s68 >= 0, s68 <= x_18 + 1, s69 >= 0, s69 <= s68 + 1, s70 >= 0, s70 <= 0 + s69 + 1, x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 1001 + 2*s71 + 2*s71*s72 + 5*s72 + 2*s72^2 + s73 + 1407*x_19 + 916*x_19^2 + 188*x_19^3 + 1407*x_24 + 916*x_24^2 + 188*x_24^3 }-> s74 :|: s71 >= 0, s71 <= x_19 + 1, s72 >= 0, s72 <= x_24 + 1, s73 >= 0, s73 <= s71 + s72 + 1, s74 >= 0, s74 <= s73 + 1, z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ -156 + s75 + s76 + -1*z + -212*z^2 + 188*z^3 }-> s77 :|: s75 >= 0, s75 <= z - 2 + 1, s76 >= 0, s76 <= s75 + 1, s77 >= 0, s77 <= s76 + 1, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 825 + 5*s100 + 2*s100*s98 + 2*s100^2 + 2*s96 + 2*s96*s97 + 5*s97 + 2*s97^2 + 2*s98 + s99 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 + 139*z' + 352*z'^2 + 188*z'^3 }-> s101 :|: s96 >= 0, s96 <= x_111 + 1, s97 >= 0, s97 <= x_25 + 1, s98 >= 0, s98 <= s96 + s97 + 1, s99 >= 0, s99 <= z' - 1 + 1, s100 >= 0, s100 <= s99 + 1, s101 >= 0, s101 <= s98 + s100 + 1, z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 1006 + 2*s102 + 2*s102*s103 + 5*s103 + 2*s103^2 + 2*s104 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 }-> s105 :|: s102 >= 0, s102 <= x_111 + 1, s103 >= 0, s103 <= x_25 + 1, s104 >= 0, s104 <= s102 + s103 + 1, s105 >= 0, s105 <= s104 + 0 + 1, x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ -176 + s106 + 2*s107 + 139*z + 352*z^2 + 188*z^3 }-> s108 :|: s106 >= 0, s106 <= z - 1 + 1, s107 >= 0, s107 <= s106 + 1, s108 >= 0, s108 <= s107 + 0 + 1, z - 1 >= 0, z' = 0 encode_+(z, z') -{ 825 + s109 + 2*s110 + 2*s110*s113 + 2*s111 + 2*s111*s112 + 5*s112 + 2*s112^2 + 5*s113 + 2*s113^2 + 1407*x_117 + 916*x_117^2 + 188*x_117^3 + 1407*x_28 + 916*x_28^2 + 188*x_28^3 + 139*z + 352*z^2 + 188*z^3 }-> s114 :|: s109 >= 0, s109 <= z - 1 + 1, s110 >= 0, s110 <= s109 + 1, s111 >= 0, s111 <= x_117 + 1, s112 >= 0, s112 <= x_28 + 1, s113 >= 0, s113 <= s111 + s112 + 1, s114 >= 0, s114 <= s110 + s113 + 1, x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ -357 + s115 + 2*s116 + 2*s116*s118 + s117 + 5*s118 + 2*s118^2 + 139*z + 352*z^2 + 188*z^3 + 139*z' + 352*z'^2 + 188*z'^3 }-> s119 :|: s115 >= 0, s115 <= z - 1 + 1, s116 >= 0, s116 <= s115 + 1, s117 >= 0, s117 <= z' - 1 + 1, s118 >= 0, s118 <= s117 + 1, s119 >= 0, s119 <= s116 + s118 + 1, z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ -176 + s120 + 2*s121 + 139*z + 352*z^2 + 188*z^3 }-> s122 :|: s120 >= 0, s120 <= z - 1 + 1, s121 >= 0, s121 <= s120 + 1, s122 >= 0, s122 <= s121 + 0 + 1, z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 1006 + 2*s123 + 2*s123*s124 + 5*s124 + 2*s124^2 + 5*s125 + 2*s125^2 + 1407*x_119 + 916*x_119^2 + 188*x_119^3 + 1407*x_29 + 916*x_29^2 + 188*x_29^3 }-> s126 :|: s123 >= 0, s123 <= x_119 + 1, s124 >= 0, s124 <= x_29 + 1, s125 >= 0, s125 <= s123 + s124 + 1, s126 >= 0, s126 <= 0 + s125 + 1, z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ -176 + s127 + 5*s128 + 2*s128^2 + 139*z' + 352*z'^2 + 188*z'^3 }-> s129 :|: s127 >= 0, s127 <= z' - 1 + 1, s128 >= 0, s128 <= s127 + 1, s129 >= 0, s129 <= 0 + s128 + 1, z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 5 }-> s15 :|: s15 >= 0, s15 <= 0 + 0 + 1, z = 0, z' = 0 encode_+(z, z') -{ 5 }-> s16 :|: s16 >= 0, s16 <= 0 + 0 + 1, z' >= 0, z = 0 encode_+(z, z') -{ 5 }-> s17 :|: s17 >= 0, s17 <= 0 + 0 + 1, z >= 0, z' = 0 encode_+(z, z') -{ 5 }-> s18 :|: s18 >= 0, s18 <= 0 + 0 + 1, z >= 0, z' >= 0 encode_+(z, z') -{ 1006 + 2*s78 + 2*s78*s79 + 5*s79 + 2*s79^2 + 5*s80 + 2*s80^2 + 1407*x_113 + 916*x_113^2 + 188*x_113^3 + 1407*x_26 + 916*x_26^2 + 188*x_26^3 }-> s81 :|: s78 >= 0, s78 <= x_113 + 1, s79 >= 0, s79 <= x_26 + 1, s80 >= 0, s80 <= s78 + s79 + 1, s81 >= 0, s81 <= 0 + s80 + 1, x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ -176 + s82 + 5*s83 + 2*s83^2 + 139*z' + 352*z'^2 + 188*z'^3 }-> s84 :|: s82 >= 0, s82 <= z' - 1 + 1, s83 >= 0, s83 <= s82 + 1, s84 >= 0, s84 <= 0 + s83 + 1, z' - 1 >= 0, z = 0 encode_+(z, z') -{ 1006 + 2*s85 + 2*s85*s86 + 5*s86 + 2*s86^2 + 2*s87 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 }-> s88 :|: s85 >= 0, s85 <= x_111 + 1, s86 >= 0, s86 <= x_25 + 1, s87 >= 0, s87 <= s85 + s86 + 1, s88 >= 0, s88 <= s87 + 0 + 1, x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 2007 + 2*s89 + 2*s89*s90 + 5*s90 + 2*s90^2 + 2*s91 + 2*s91*s94 + 2*s92 + 2*s92*s93 + 5*s93 + 2*s93^2 + 5*s94 + 2*s94^2 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_115 + 916*x_115^2 + 188*x_115^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 + 1407*x_27 + 916*x_27^2 + 188*x_27^3 }-> s95 :|: s89 >= 0, s89 <= x_111 + 1, s90 >= 0, s90 <= x_25 + 1, s91 >= 0, s91 <= s89 + s90 + 1, s92 >= 0, s92 <= x_115 + 1, s93 >= 0, s93 <= x_27 + 1, s94 >= 0, s94 <= s92 + s93 + 1, s95 >= 0, s95 <= s91 + s94 + 1, x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 1001 + 2*s130 + 2*s130*s131 + 5*s131 + 2*s131^2 + s132 + 1407*x_121 + 916*x_121^2 + 188*x_121^3 + 1407*x_210 + 916*x_210^2 + 188*x_210^3 }-> s133 :|: s130 >= 0, s130 <= x_121 + 1, s131 >= 0, s131 <= x_210 + 1, s132 >= 0, s132 <= s130 + s131 + 1, s133 >= 0, s133 <= s132 + 1, z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ -181 + s134 + s135 + 139*z + 352*z^2 + 188*z^3 }-> s136 :|: s134 >= 0, s134 <= z - 1 + 1, s135 >= 0, s135 <= s134 + 1, s136 >= 0, s136 <= s135 + 1, z - 1 >= 0 encode_s(z) -{ 0 }-> s7 :|: s7 >= 0, s7 <= 0 + 1, z = 0 encode_s(z) -{ 0 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ z' }-> s :|: s >= 0, s <= z' - 1 + 1, z' - 1 >= 0, z = 0 plus(z, z') -{ 2 + z }-> s'' :|: s'' >= 0, s'' <= z + 1, z >= 0, z' = 1 + 0 plus(z, z') -{ 5 + s10 + s9 + -2*z + 2*z*z' + -3*z' + 2*z'^2 }-> s11 :|: s9 >= 0, s9 <= z + (z' - 2) + 1, s10 >= 0, s10 <= s9 + 1, s11 >= 0, s11 <= s10 + 1, z >= 0, z' - 2 >= 0 plus(z, z') -{ s1 + z' }-> s2 :|: s1 >= 0, s1 <= z' - 2 + 1, s2 >= 0, s2 <= s1 + 1, z' - 2 >= 0, z = 0 plus(z, z') -{ 1 + z + z' }-> s3 :|: s3 >= 0, s3 <= 1 + z + (z' - 1) + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s4 :|: s4 >= 0, s4 <= 0 + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ z }-> s' :|: s' >= 0, s' <= z - 1 + 1, z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {encode_s}, {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] plus: runtime: O(n^2) [5 + 2*z + 2*z*z' + 5*z' + 2*z'^2], size: O(n^1) [1 + z + z'] encArg: runtime: O(n^3) [498 + 1407*z + 916*z^2 + 188*z^3], size: O(n^1) [1 + z] encode_s: runtime: ?, size: O(n^1) [3 + z] ---------------------------------------- (51) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_s after applying outer abstraction to obtain an ITS, resulting in: O(n^3) with polynomial bound: 1013 + 2972*z + 2188*z^2 + 564*z^3 ---------------------------------------- (52) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 5 }-> s12 :|: s12 >= 0, s12 <= 0 + 0 + 1, z = 1 + 0 + 0 encArg(z) -{ 5 }-> s13 :|: s13 >= 0, s13 <= 0 + 0 + 1, z - 1 >= 0 encArg(z) -{ 5 }-> s14 :|: s14 >= 0, s14 <= 0 + 0 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 1006 + 2*s19 + 2*s19*s20 + 5*s20 + 2*s20^2 + 5*s21 + 2*s21^2 + 1407*x_11 + 916*x_11^2 + 188*x_11^3 + 1407*x_2'' + 916*x_2''^2 + 188*x_2''^3 }-> s22 :|: s19 >= 0, s19 <= x_11 + 1, s20 >= 0, s20 <= x_2'' + 1, s21 >= 0, s21 <= s19 + s20 + 1, s22 >= 0, s22 <= 0 + s21 + 1, z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ -151 + s23 + 5*s24 + 2*s24^2 + -1*z + -212*z^2 + 188*z^3 }-> s25 :|: s23 >= 0, s23 <= z - 2 + 1, s24 >= 0, s24 <= s23 + 1, s25 >= 0, s25 <= 0 + s24 + 1, z - 2 >= 0 encArg(z) -{ 1006 + 2*s26 + 2*s26*s27 + 5*s27 + 2*s27^2 + 2*s28 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s29 :|: s26 >= 0, s26 <= x_1' + 1, s27 >= 0, s27 <= x_2' + 1, s28 >= 0, s28 <= s26 + s27 + 1, s29 >= 0, s29 <= s28 + 0 + 1, x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 2007 + 2*s30 + 2*s30*s31 + 5*s31 + 2*s31^2 + 2*s32 + 2*s32*s35 + 2*s33 + 2*s33*s34 + 5*s34 + 2*s34^2 + 5*s35 + 2*s35^2 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_13 + 916*x_13^2 + 188*x_13^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 + 1407*x_21 + 916*x_21^2 + 188*x_21^3 }-> s36 :|: s30 >= 0, s30 <= x_1' + 1, s31 >= 0, s31 <= x_2' + 1, s32 >= 0, s32 <= s30 + s31 + 1, s33 >= 0, s33 <= x_13 + 1, s34 >= 0, s34 <= x_21 + 1, s35 >= 0, s35 <= s33 + s34 + 1, s36 >= 0, s36 <= s32 + s35 + 1, z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 1504 + 2*s37 + 2*s37*s38 + 5*s38 + 2*s38^2 + 2*s39 + 2*s39*s41 + s40 + 5*s41 + 2*s41^2 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_14 + 916*x_14^2 + 188*x_14^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s42 :|: s37 >= 0, s37 <= x_1' + 1, s38 >= 0, s38 <= x_2' + 1, s39 >= 0, s39 <= s37 + s38 + 1, s40 >= 0, s40 <= x_14 + 1, s41 >= 0, s41 <= s40 + 1, s42 >= 0, s42 <= s39 + s41 + 1, z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 1006 + 2*s43 + 2*s43*s44 + 5*s44 + 2*s44^2 + 2*s45 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s46 :|: s43 >= 0, s43 <= x_1' + 1, s44 >= 0, s44 <= x_2' + 1, s45 >= 0, s45 <= s43 + s44 + 1, s46 >= 0, s46 <= s45 + 0 + 1, z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ -151 + s47 + 2*s48 + -1*z + -212*z^2 + 188*z^3 }-> s49 :|: s47 >= 0, s47 <= z - 2 + 1, s48 >= 0, s48 <= s47 + 1, s49 >= 0, s49 <= s48 + 0 + 1, z - 2 >= 0 encArg(z) -{ 0 }-> s5 :|: s5 >= 0, s5 <= 0 + 1, z = 1 + 0 encArg(z) -{ 1504 + s50 + 2*s51 + 2*s51*s54 + 2*s52 + 2*s52*s53 + 5*s53 + 2*s53^2 + 5*s54 + 2*s54^2 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 + 1407*x_15 + 916*x_15^2 + 188*x_15^3 + 1407*x_22 + 916*x_22^2 + 188*x_22^3 }-> s55 :|: s50 >= 0, s50 <= x_1'' + 1, s51 >= 0, s51 <= s50 + 1, s52 >= 0, s52 <= x_15 + 1, s53 >= 0, s53 <= x_22 + 1, s54 >= 0, s54 <= s52 + s53 + 1, s55 >= 0, s55 <= s51 + s54 + 1, x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> s6 :|: s6 >= 0, s6 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 1001 + s56 + 2*s57 + 2*s57*s59 + s58 + 5*s59 + 2*s59^2 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 + 1407*x_16 + 916*x_16^2 + 188*x_16^3 }-> s60 :|: s56 >= 0, s56 <= x_1'' + 1, s57 >= 0, s57 <= s56 + 1, s58 >= 0, s58 <= x_16 + 1, s59 >= 0, s59 <= s58 + 1, s60 >= 0, s60 <= s57 + s59 + 1, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 503 + s61 + 2*s62 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 }-> s63 :|: s61 >= 0, s61 <= x_1'' + 1, s62 >= 0, s62 <= s61 + 1, s63 >= 0, s63 <= s62 + 0 + 1, x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 1006 + 2*s64 + 2*s64*s65 + 5*s65 + 2*s65^2 + 5*s66 + 2*s66^2 + 1407*x_17 + 916*x_17^2 + 188*x_17^3 + 1407*x_23 + 916*x_23^2 + 188*x_23^3 }-> s67 :|: s64 >= 0, s64 <= x_17 + 1, s65 >= 0, s65 <= x_23 + 1, s66 >= 0, s66 <= s64 + s65 + 1, s67 >= 0, s67 <= 0 + s66 + 1, x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 503 + s68 + 5*s69 + 2*s69^2 + 1407*x_18 + 916*x_18^2 + 188*x_18^3 }-> s70 :|: s68 >= 0, s68 <= x_18 + 1, s69 >= 0, s69 <= s68 + 1, s70 >= 0, s70 <= 0 + s69 + 1, x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 1001 + 2*s71 + 2*s71*s72 + 5*s72 + 2*s72^2 + s73 + 1407*x_19 + 916*x_19^2 + 188*x_19^3 + 1407*x_24 + 916*x_24^2 + 188*x_24^3 }-> s74 :|: s71 >= 0, s71 <= x_19 + 1, s72 >= 0, s72 <= x_24 + 1, s73 >= 0, s73 <= s71 + s72 + 1, s74 >= 0, s74 <= s73 + 1, z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ -156 + s75 + s76 + -1*z + -212*z^2 + 188*z^3 }-> s77 :|: s75 >= 0, s75 <= z - 2 + 1, s76 >= 0, s76 <= s75 + 1, s77 >= 0, s77 <= s76 + 1, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 825 + 5*s100 + 2*s100*s98 + 2*s100^2 + 2*s96 + 2*s96*s97 + 5*s97 + 2*s97^2 + 2*s98 + s99 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 + 139*z' + 352*z'^2 + 188*z'^3 }-> s101 :|: s96 >= 0, s96 <= x_111 + 1, s97 >= 0, s97 <= x_25 + 1, s98 >= 0, s98 <= s96 + s97 + 1, s99 >= 0, s99 <= z' - 1 + 1, s100 >= 0, s100 <= s99 + 1, s101 >= 0, s101 <= s98 + s100 + 1, z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 1006 + 2*s102 + 2*s102*s103 + 5*s103 + 2*s103^2 + 2*s104 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 }-> s105 :|: s102 >= 0, s102 <= x_111 + 1, s103 >= 0, s103 <= x_25 + 1, s104 >= 0, s104 <= s102 + s103 + 1, s105 >= 0, s105 <= s104 + 0 + 1, x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ -176 + s106 + 2*s107 + 139*z + 352*z^2 + 188*z^3 }-> s108 :|: s106 >= 0, s106 <= z - 1 + 1, s107 >= 0, s107 <= s106 + 1, s108 >= 0, s108 <= s107 + 0 + 1, z - 1 >= 0, z' = 0 encode_+(z, z') -{ 825 + s109 + 2*s110 + 2*s110*s113 + 2*s111 + 2*s111*s112 + 5*s112 + 2*s112^2 + 5*s113 + 2*s113^2 + 1407*x_117 + 916*x_117^2 + 188*x_117^3 + 1407*x_28 + 916*x_28^2 + 188*x_28^3 + 139*z + 352*z^2 + 188*z^3 }-> s114 :|: s109 >= 0, s109 <= z - 1 + 1, s110 >= 0, s110 <= s109 + 1, s111 >= 0, s111 <= x_117 + 1, s112 >= 0, s112 <= x_28 + 1, s113 >= 0, s113 <= s111 + s112 + 1, s114 >= 0, s114 <= s110 + s113 + 1, x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ -357 + s115 + 2*s116 + 2*s116*s118 + s117 + 5*s118 + 2*s118^2 + 139*z + 352*z^2 + 188*z^3 + 139*z' + 352*z'^2 + 188*z'^3 }-> s119 :|: s115 >= 0, s115 <= z - 1 + 1, s116 >= 0, s116 <= s115 + 1, s117 >= 0, s117 <= z' - 1 + 1, s118 >= 0, s118 <= s117 + 1, s119 >= 0, s119 <= s116 + s118 + 1, z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ -176 + s120 + 2*s121 + 139*z + 352*z^2 + 188*z^3 }-> s122 :|: s120 >= 0, s120 <= z - 1 + 1, s121 >= 0, s121 <= s120 + 1, s122 >= 0, s122 <= s121 + 0 + 1, z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 1006 + 2*s123 + 2*s123*s124 + 5*s124 + 2*s124^2 + 5*s125 + 2*s125^2 + 1407*x_119 + 916*x_119^2 + 188*x_119^3 + 1407*x_29 + 916*x_29^2 + 188*x_29^3 }-> s126 :|: s123 >= 0, s123 <= x_119 + 1, s124 >= 0, s124 <= x_29 + 1, s125 >= 0, s125 <= s123 + s124 + 1, s126 >= 0, s126 <= 0 + s125 + 1, z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ -176 + s127 + 5*s128 + 2*s128^2 + 139*z' + 352*z'^2 + 188*z'^3 }-> s129 :|: s127 >= 0, s127 <= z' - 1 + 1, s128 >= 0, s128 <= s127 + 1, s129 >= 0, s129 <= 0 + s128 + 1, z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 5 }-> s15 :|: s15 >= 0, s15 <= 0 + 0 + 1, z = 0, z' = 0 encode_+(z, z') -{ 5 }-> s16 :|: s16 >= 0, s16 <= 0 + 0 + 1, z' >= 0, z = 0 encode_+(z, z') -{ 5 }-> s17 :|: s17 >= 0, s17 <= 0 + 0 + 1, z >= 0, z' = 0 encode_+(z, z') -{ 5 }-> s18 :|: s18 >= 0, s18 <= 0 + 0 + 1, z >= 0, z' >= 0 encode_+(z, z') -{ 1006 + 2*s78 + 2*s78*s79 + 5*s79 + 2*s79^2 + 5*s80 + 2*s80^2 + 1407*x_113 + 916*x_113^2 + 188*x_113^3 + 1407*x_26 + 916*x_26^2 + 188*x_26^3 }-> s81 :|: s78 >= 0, s78 <= x_113 + 1, s79 >= 0, s79 <= x_26 + 1, s80 >= 0, s80 <= s78 + s79 + 1, s81 >= 0, s81 <= 0 + s80 + 1, x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ -176 + s82 + 5*s83 + 2*s83^2 + 139*z' + 352*z'^2 + 188*z'^3 }-> s84 :|: s82 >= 0, s82 <= z' - 1 + 1, s83 >= 0, s83 <= s82 + 1, s84 >= 0, s84 <= 0 + s83 + 1, z' - 1 >= 0, z = 0 encode_+(z, z') -{ 1006 + 2*s85 + 2*s85*s86 + 5*s86 + 2*s86^2 + 2*s87 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 }-> s88 :|: s85 >= 0, s85 <= x_111 + 1, s86 >= 0, s86 <= x_25 + 1, s87 >= 0, s87 <= s85 + s86 + 1, s88 >= 0, s88 <= s87 + 0 + 1, x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 2007 + 2*s89 + 2*s89*s90 + 5*s90 + 2*s90^2 + 2*s91 + 2*s91*s94 + 2*s92 + 2*s92*s93 + 5*s93 + 2*s93^2 + 5*s94 + 2*s94^2 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_115 + 916*x_115^2 + 188*x_115^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 + 1407*x_27 + 916*x_27^2 + 188*x_27^3 }-> s95 :|: s89 >= 0, s89 <= x_111 + 1, s90 >= 0, s90 <= x_25 + 1, s91 >= 0, s91 <= s89 + s90 + 1, s92 >= 0, s92 <= x_115 + 1, s93 >= 0, s93 <= x_27 + 1, s94 >= 0, s94 <= s92 + s93 + 1, s95 >= 0, s95 <= s91 + s94 + 1, x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 1001 + 2*s130 + 2*s130*s131 + 5*s131 + 2*s131^2 + s132 + 1407*x_121 + 916*x_121^2 + 188*x_121^3 + 1407*x_210 + 916*x_210^2 + 188*x_210^3 }-> s133 :|: s130 >= 0, s130 <= x_121 + 1, s131 >= 0, s131 <= x_210 + 1, s132 >= 0, s132 <= s130 + s131 + 1, s133 >= 0, s133 <= s132 + 1, z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ -181 + s134 + s135 + 139*z + 352*z^2 + 188*z^3 }-> s136 :|: s134 >= 0, s134 <= z - 1 + 1, s135 >= 0, s135 <= s134 + 1, s136 >= 0, s136 <= s135 + 1, z - 1 >= 0 encode_s(z) -{ 0 }-> s7 :|: s7 >= 0, s7 <= 0 + 1, z = 0 encode_s(z) -{ 0 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ z' }-> s :|: s >= 0, s <= z' - 1 + 1, z' - 1 >= 0, z = 0 plus(z, z') -{ 2 + z }-> s'' :|: s'' >= 0, s'' <= z + 1, z >= 0, z' = 1 + 0 plus(z, z') -{ 5 + s10 + s9 + -2*z + 2*z*z' + -3*z' + 2*z'^2 }-> s11 :|: s9 >= 0, s9 <= z + (z' - 2) + 1, s10 >= 0, s10 <= s9 + 1, s11 >= 0, s11 <= s10 + 1, z >= 0, z' - 2 >= 0 plus(z, z') -{ s1 + z' }-> s2 :|: s1 >= 0, s1 <= z' - 2 + 1, s2 >= 0, s2 <= s1 + 1, z' - 2 >= 0, z = 0 plus(z, z') -{ 1 + z + z' }-> s3 :|: s3 >= 0, s3 <= 1 + z + (z' - 1) + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s4 :|: s4 >= 0, s4 <= 0 + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ z }-> s' :|: s' >= 0, s' <= z - 1 + 1, z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] plus: runtime: O(n^2) [5 + 2*z + 2*z*z' + 5*z' + 2*z'^2], size: O(n^1) [1 + z + z'] encArg: runtime: O(n^3) [498 + 1407*z + 916*z^2 + 188*z^3], size: O(n^1) [1 + z] encode_s: runtime: O(n^3) [1013 + 2972*z + 2188*z^2 + 564*z^3], size: O(n^1) [3 + z] ---------------------------------------- (53) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (54) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 5 }-> s12 :|: s12 >= 0, s12 <= 0 + 0 + 1, z = 1 + 0 + 0 encArg(z) -{ 5 }-> s13 :|: s13 >= 0, s13 <= 0 + 0 + 1, z - 1 >= 0 encArg(z) -{ 5 }-> s14 :|: s14 >= 0, s14 <= 0 + 0 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 1006 + 2*s19 + 2*s19*s20 + 5*s20 + 2*s20^2 + 5*s21 + 2*s21^2 + 1407*x_11 + 916*x_11^2 + 188*x_11^3 + 1407*x_2'' + 916*x_2''^2 + 188*x_2''^3 }-> s22 :|: s19 >= 0, s19 <= x_11 + 1, s20 >= 0, s20 <= x_2'' + 1, s21 >= 0, s21 <= s19 + s20 + 1, s22 >= 0, s22 <= 0 + s21 + 1, z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ -151 + s23 + 5*s24 + 2*s24^2 + -1*z + -212*z^2 + 188*z^3 }-> s25 :|: s23 >= 0, s23 <= z - 2 + 1, s24 >= 0, s24 <= s23 + 1, s25 >= 0, s25 <= 0 + s24 + 1, z - 2 >= 0 encArg(z) -{ 1006 + 2*s26 + 2*s26*s27 + 5*s27 + 2*s27^2 + 2*s28 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s29 :|: s26 >= 0, s26 <= x_1' + 1, s27 >= 0, s27 <= x_2' + 1, s28 >= 0, s28 <= s26 + s27 + 1, s29 >= 0, s29 <= s28 + 0 + 1, x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 2007 + 2*s30 + 2*s30*s31 + 5*s31 + 2*s31^2 + 2*s32 + 2*s32*s35 + 2*s33 + 2*s33*s34 + 5*s34 + 2*s34^2 + 5*s35 + 2*s35^2 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_13 + 916*x_13^2 + 188*x_13^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 + 1407*x_21 + 916*x_21^2 + 188*x_21^3 }-> s36 :|: s30 >= 0, s30 <= x_1' + 1, s31 >= 0, s31 <= x_2' + 1, s32 >= 0, s32 <= s30 + s31 + 1, s33 >= 0, s33 <= x_13 + 1, s34 >= 0, s34 <= x_21 + 1, s35 >= 0, s35 <= s33 + s34 + 1, s36 >= 0, s36 <= s32 + s35 + 1, z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 1504 + 2*s37 + 2*s37*s38 + 5*s38 + 2*s38^2 + 2*s39 + 2*s39*s41 + s40 + 5*s41 + 2*s41^2 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_14 + 916*x_14^2 + 188*x_14^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s42 :|: s37 >= 0, s37 <= x_1' + 1, s38 >= 0, s38 <= x_2' + 1, s39 >= 0, s39 <= s37 + s38 + 1, s40 >= 0, s40 <= x_14 + 1, s41 >= 0, s41 <= s40 + 1, s42 >= 0, s42 <= s39 + s41 + 1, z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 1006 + 2*s43 + 2*s43*s44 + 5*s44 + 2*s44^2 + 2*s45 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s46 :|: s43 >= 0, s43 <= x_1' + 1, s44 >= 0, s44 <= x_2' + 1, s45 >= 0, s45 <= s43 + s44 + 1, s46 >= 0, s46 <= s45 + 0 + 1, z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ -151 + s47 + 2*s48 + -1*z + -212*z^2 + 188*z^3 }-> s49 :|: s47 >= 0, s47 <= z - 2 + 1, s48 >= 0, s48 <= s47 + 1, s49 >= 0, s49 <= s48 + 0 + 1, z - 2 >= 0 encArg(z) -{ 0 }-> s5 :|: s5 >= 0, s5 <= 0 + 1, z = 1 + 0 encArg(z) -{ 1504 + s50 + 2*s51 + 2*s51*s54 + 2*s52 + 2*s52*s53 + 5*s53 + 2*s53^2 + 5*s54 + 2*s54^2 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 + 1407*x_15 + 916*x_15^2 + 188*x_15^3 + 1407*x_22 + 916*x_22^2 + 188*x_22^3 }-> s55 :|: s50 >= 0, s50 <= x_1'' + 1, s51 >= 0, s51 <= s50 + 1, s52 >= 0, s52 <= x_15 + 1, s53 >= 0, s53 <= x_22 + 1, s54 >= 0, s54 <= s52 + s53 + 1, s55 >= 0, s55 <= s51 + s54 + 1, x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> s6 :|: s6 >= 0, s6 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 1001 + s56 + 2*s57 + 2*s57*s59 + s58 + 5*s59 + 2*s59^2 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 + 1407*x_16 + 916*x_16^2 + 188*x_16^3 }-> s60 :|: s56 >= 0, s56 <= x_1'' + 1, s57 >= 0, s57 <= s56 + 1, s58 >= 0, s58 <= x_16 + 1, s59 >= 0, s59 <= s58 + 1, s60 >= 0, s60 <= s57 + s59 + 1, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 503 + s61 + 2*s62 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 }-> s63 :|: s61 >= 0, s61 <= x_1'' + 1, s62 >= 0, s62 <= s61 + 1, s63 >= 0, s63 <= s62 + 0 + 1, x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 1006 + 2*s64 + 2*s64*s65 + 5*s65 + 2*s65^2 + 5*s66 + 2*s66^2 + 1407*x_17 + 916*x_17^2 + 188*x_17^3 + 1407*x_23 + 916*x_23^2 + 188*x_23^3 }-> s67 :|: s64 >= 0, s64 <= x_17 + 1, s65 >= 0, s65 <= x_23 + 1, s66 >= 0, s66 <= s64 + s65 + 1, s67 >= 0, s67 <= 0 + s66 + 1, x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 503 + s68 + 5*s69 + 2*s69^2 + 1407*x_18 + 916*x_18^2 + 188*x_18^3 }-> s70 :|: s68 >= 0, s68 <= x_18 + 1, s69 >= 0, s69 <= s68 + 1, s70 >= 0, s70 <= 0 + s69 + 1, x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 1001 + 2*s71 + 2*s71*s72 + 5*s72 + 2*s72^2 + s73 + 1407*x_19 + 916*x_19^2 + 188*x_19^3 + 1407*x_24 + 916*x_24^2 + 188*x_24^3 }-> s74 :|: s71 >= 0, s71 <= x_19 + 1, s72 >= 0, s72 <= x_24 + 1, s73 >= 0, s73 <= s71 + s72 + 1, s74 >= 0, s74 <= s73 + 1, z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ -156 + s75 + s76 + -1*z + -212*z^2 + 188*z^3 }-> s77 :|: s75 >= 0, s75 <= z - 2 + 1, s76 >= 0, s76 <= s75 + 1, s77 >= 0, s77 <= s76 + 1, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 825 + 5*s100 + 2*s100*s98 + 2*s100^2 + 2*s96 + 2*s96*s97 + 5*s97 + 2*s97^2 + 2*s98 + s99 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 + 139*z' + 352*z'^2 + 188*z'^3 }-> s101 :|: s96 >= 0, s96 <= x_111 + 1, s97 >= 0, s97 <= x_25 + 1, s98 >= 0, s98 <= s96 + s97 + 1, s99 >= 0, s99 <= z' - 1 + 1, s100 >= 0, s100 <= s99 + 1, s101 >= 0, s101 <= s98 + s100 + 1, z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 1006 + 2*s102 + 2*s102*s103 + 5*s103 + 2*s103^2 + 2*s104 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 }-> s105 :|: s102 >= 0, s102 <= x_111 + 1, s103 >= 0, s103 <= x_25 + 1, s104 >= 0, s104 <= s102 + s103 + 1, s105 >= 0, s105 <= s104 + 0 + 1, x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ -176 + s106 + 2*s107 + 139*z + 352*z^2 + 188*z^3 }-> s108 :|: s106 >= 0, s106 <= z - 1 + 1, s107 >= 0, s107 <= s106 + 1, s108 >= 0, s108 <= s107 + 0 + 1, z - 1 >= 0, z' = 0 encode_+(z, z') -{ 825 + s109 + 2*s110 + 2*s110*s113 + 2*s111 + 2*s111*s112 + 5*s112 + 2*s112^2 + 5*s113 + 2*s113^2 + 1407*x_117 + 916*x_117^2 + 188*x_117^3 + 1407*x_28 + 916*x_28^2 + 188*x_28^3 + 139*z + 352*z^2 + 188*z^3 }-> s114 :|: s109 >= 0, s109 <= z - 1 + 1, s110 >= 0, s110 <= s109 + 1, s111 >= 0, s111 <= x_117 + 1, s112 >= 0, s112 <= x_28 + 1, s113 >= 0, s113 <= s111 + s112 + 1, s114 >= 0, s114 <= s110 + s113 + 1, x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ -357 + s115 + 2*s116 + 2*s116*s118 + s117 + 5*s118 + 2*s118^2 + 139*z + 352*z^2 + 188*z^3 + 139*z' + 352*z'^2 + 188*z'^3 }-> s119 :|: s115 >= 0, s115 <= z - 1 + 1, s116 >= 0, s116 <= s115 + 1, s117 >= 0, s117 <= z' - 1 + 1, s118 >= 0, s118 <= s117 + 1, s119 >= 0, s119 <= s116 + s118 + 1, z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ -176 + s120 + 2*s121 + 139*z + 352*z^2 + 188*z^3 }-> s122 :|: s120 >= 0, s120 <= z - 1 + 1, s121 >= 0, s121 <= s120 + 1, s122 >= 0, s122 <= s121 + 0 + 1, z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 1006 + 2*s123 + 2*s123*s124 + 5*s124 + 2*s124^2 + 5*s125 + 2*s125^2 + 1407*x_119 + 916*x_119^2 + 188*x_119^3 + 1407*x_29 + 916*x_29^2 + 188*x_29^3 }-> s126 :|: s123 >= 0, s123 <= x_119 + 1, s124 >= 0, s124 <= x_29 + 1, s125 >= 0, s125 <= s123 + s124 + 1, s126 >= 0, s126 <= 0 + s125 + 1, z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ -176 + s127 + 5*s128 + 2*s128^2 + 139*z' + 352*z'^2 + 188*z'^3 }-> s129 :|: s127 >= 0, s127 <= z' - 1 + 1, s128 >= 0, s128 <= s127 + 1, s129 >= 0, s129 <= 0 + s128 + 1, z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 5 }-> s15 :|: s15 >= 0, s15 <= 0 + 0 + 1, z = 0, z' = 0 encode_+(z, z') -{ 5 }-> s16 :|: s16 >= 0, s16 <= 0 + 0 + 1, z' >= 0, z = 0 encode_+(z, z') -{ 5 }-> s17 :|: s17 >= 0, s17 <= 0 + 0 + 1, z >= 0, z' = 0 encode_+(z, z') -{ 5 }-> s18 :|: s18 >= 0, s18 <= 0 + 0 + 1, z >= 0, z' >= 0 encode_+(z, z') -{ 1006 + 2*s78 + 2*s78*s79 + 5*s79 + 2*s79^2 + 5*s80 + 2*s80^2 + 1407*x_113 + 916*x_113^2 + 188*x_113^3 + 1407*x_26 + 916*x_26^2 + 188*x_26^3 }-> s81 :|: s78 >= 0, s78 <= x_113 + 1, s79 >= 0, s79 <= x_26 + 1, s80 >= 0, s80 <= s78 + s79 + 1, s81 >= 0, s81 <= 0 + s80 + 1, x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ -176 + s82 + 5*s83 + 2*s83^2 + 139*z' + 352*z'^2 + 188*z'^3 }-> s84 :|: s82 >= 0, s82 <= z' - 1 + 1, s83 >= 0, s83 <= s82 + 1, s84 >= 0, s84 <= 0 + s83 + 1, z' - 1 >= 0, z = 0 encode_+(z, z') -{ 1006 + 2*s85 + 2*s85*s86 + 5*s86 + 2*s86^2 + 2*s87 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 }-> s88 :|: s85 >= 0, s85 <= x_111 + 1, s86 >= 0, s86 <= x_25 + 1, s87 >= 0, s87 <= s85 + s86 + 1, s88 >= 0, s88 <= s87 + 0 + 1, x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 2007 + 2*s89 + 2*s89*s90 + 5*s90 + 2*s90^2 + 2*s91 + 2*s91*s94 + 2*s92 + 2*s92*s93 + 5*s93 + 2*s93^2 + 5*s94 + 2*s94^2 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_115 + 916*x_115^2 + 188*x_115^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 + 1407*x_27 + 916*x_27^2 + 188*x_27^3 }-> s95 :|: s89 >= 0, s89 <= x_111 + 1, s90 >= 0, s90 <= x_25 + 1, s91 >= 0, s91 <= s89 + s90 + 1, s92 >= 0, s92 <= x_115 + 1, s93 >= 0, s93 <= x_27 + 1, s94 >= 0, s94 <= s92 + s93 + 1, s95 >= 0, s95 <= s91 + s94 + 1, x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 1001 + 2*s130 + 2*s130*s131 + 5*s131 + 2*s131^2 + s132 + 1407*x_121 + 916*x_121^2 + 188*x_121^3 + 1407*x_210 + 916*x_210^2 + 188*x_210^3 }-> s133 :|: s130 >= 0, s130 <= x_121 + 1, s131 >= 0, s131 <= x_210 + 1, s132 >= 0, s132 <= s130 + s131 + 1, s133 >= 0, s133 <= s132 + 1, z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ -181 + s134 + s135 + 139*z + 352*z^2 + 188*z^3 }-> s136 :|: s134 >= 0, s134 <= z - 1 + 1, s135 >= 0, s135 <= s134 + 1, s136 >= 0, s136 <= s135 + 1, z - 1 >= 0 encode_s(z) -{ 0 }-> s7 :|: s7 >= 0, s7 <= 0 + 1, z = 0 encode_s(z) -{ 0 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ z' }-> s :|: s >= 0, s <= z' - 1 + 1, z' - 1 >= 0, z = 0 plus(z, z') -{ 2 + z }-> s'' :|: s'' >= 0, s'' <= z + 1, z >= 0, z' = 1 + 0 plus(z, z') -{ 5 + s10 + s9 + -2*z + 2*z*z' + -3*z' + 2*z'^2 }-> s11 :|: s9 >= 0, s9 <= z + (z' - 2) + 1, s10 >= 0, s10 <= s9 + 1, s11 >= 0, s11 <= s10 + 1, z >= 0, z' - 2 >= 0 plus(z, z') -{ s1 + z' }-> s2 :|: s1 >= 0, s1 <= z' - 2 + 1, s2 >= 0, s2 <= s1 + 1, z' - 2 >= 0, z = 0 plus(z, z') -{ 1 + z + z' }-> s3 :|: s3 >= 0, s3 <= 1 + z + (z' - 1) + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s4 :|: s4 >= 0, s4 <= 0 + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ z }-> s' :|: s' >= 0, s' <= z - 1 + 1, z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] plus: runtime: O(n^2) [5 + 2*z + 2*z*z' + 5*z' + 2*z'^2], size: O(n^1) [1 + z + z'] encArg: runtime: O(n^3) [498 + 1407*z + 916*z^2 + 188*z^3], size: O(n^1) [1 + z] encode_s: runtime: O(n^3) [1013 + 2972*z + 2188*z^2 + 564*z^3], size: O(n^1) [3 + z] ---------------------------------------- (55) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_+ after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 5 + z + z' ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 5 }-> s12 :|: s12 >= 0, s12 <= 0 + 0 + 1, z = 1 + 0 + 0 encArg(z) -{ 5 }-> s13 :|: s13 >= 0, s13 <= 0 + 0 + 1, z - 1 >= 0 encArg(z) -{ 5 }-> s14 :|: s14 >= 0, s14 <= 0 + 0 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 1006 + 2*s19 + 2*s19*s20 + 5*s20 + 2*s20^2 + 5*s21 + 2*s21^2 + 1407*x_11 + 916*x_11^2 + 188*x_11^3 + 1407*x_2'' + 916*x_2''^2 + 188*x_2''^3 }-> s22 :|: s19 >= 0, s19 <= x_11 + 1, s20 >= 0, s20 <= x_2'' + 1, s21 >= 0, s21 <= s19 + s20 + 1, s22 >= 0, s22 <= 0 + s21 + 1, z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ -151 + s23 + 5*s24 + 2*s24^2 + -1*z + -212*z^2 + 188*z^3 }-> s25 :|: s23 >= 0, s23 <= z - 2 + 1, s24 >= 0, s24 <= s23 + 1, s25 >= 0, s25 <= 0 + s24 + 1, z - 2 >= 0 encArg(z) -{ 1006 + 2*s26 + 2*s26*s27 + 5*s27 + 2*s27^2 + 2*s28 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s29 :|: s26 >= 0, s26 <= x_1' + 1, s27 >= 0, s27 <= x_2' + 1, s28 >= 0, s28 <= s26 + s27 + 1, s29 >= 0, s29 <= s28 + 0 + 1, x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 2007 + 2*s30 + 2*s30*s31 + 5*s31 + 2*s31^2 + 2*s32 + 2*s32*s35 + 2*s33 + 2*s33*s34 + 5*s34 + 2*s34^2 + 5*s35 + 2*s35^2 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_13 + 916*x_13^2 + 188*x_13^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 + 1407*x_21 + 916*x_21^2 + 188*x_21^3 }-> s36 :|: s30 >= 0, s30 <= x_1' + 1, s31 >= 0, s31 <= x_2' + 1, s32 >= 0, s32 <= s30 + s31 + 1, s33 >= 0, s33 <= x_13 + 1, s34 >= 0, s34 <= x_21 + 1, s35 >= 0, s35 <= s33 + s34 + 1, s36 >= 0, s36 <= s32 + s35 + 1, z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 1504 + 2*s37 + 2*s37*s38 + 5*s38 + 2*s38^2 + 2*s39 + 2*s39*s41 + s40 + 5*s41 + 2*s41^2 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_14 + 916*x_14^2 + 188*x_14^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s42 :|: s37 >= 0, s37 <= x_1' + 1, s38 >= 0, s38 <= x_2' + 1, s39 >= 0, s39 <= s37 + s38 + 1, s40 >= 0, s40 <= x_14 + 1, s41 >= 0, s41 <= s40 + 1, s42 >= 0, s42 <= s39 + s41 + 1, z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 1006 + 2*s43 + 2*s43*s44 + 5*s44 + 2*s44^2 + 2*s45 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s46 :|: s43 >= 0, s43 <= x_1' + 1, s44 >= 0, s44 <= x_2' + 1, s45 >= 0, s45 <= s43 + s44 + 1, s46 >= 0, s46 <= s45 + 0 + 1, z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ -151 + s47 + 2*s48 + -1*z + -212*z^2 + 188*z^3 }-> s49 :|: s47 >= 0, s47 <= z - 2 + 1, s48 >= 0, s48 <= s47 + 1, s49 >= 0, s49 <= s48 + 0 + 1, z - 2 >= 0 encArg(z) -{ 0 }-> s5 :|: s5 >= 0, s5 <= 0 + 1, z = 1 + 0 encArg(z) -{ 1504 + s50 + 2*s51 + 2*s51*s54 + 2*s52 + 2*s52*s53 + 5*s53 + 2*s53^2 + 5*s54 + 2*s54^2 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 + 1407*x_15 + 916*x_15^2 + 188*x_15^3 + 1407*x_22 + 916*x_22^2 + 188*x_22^3 }-> s55 :|: s50 >= 0, s50 <= x_1'' + 1, s51 >= 0, s51 <= s50 + 1, s52 >= 0, s52 <= x_15 + 1, s53 >= 0, s53 <= x_22 + 1, s54 >= 0, s54 <= s52 + s53 + 1, s55 >= 0, s55 <= s51 + s54 + 1, x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> s6 :|: s6 >= 0, s6 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 1001 + s56 + 2*s57 + 2*s57*s59 + s58 + 5*s59 + 2*s59^2 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 + 1407*x_16 + 916*x_16^2 + 188*x_16^3 }-> s60 :|: s56 >= 0, s56 <= x_1'' + 1, s57 >= 0, s57 <= s56 + 1, s58 >= 0, s58 <= x_16 + 1, s59 >= 0, s59 <= s58 + 1, s60 >= 0, s60 <= s57 + s59 + 1, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 503 + s61 + 2*s62 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 }-> s63 :|: s61 >= 0, s61 <= x_1'' + 1, s62 >= 0, s62 <= s61 + 1, s63 >= 0, s63 <= s62 + 0 + 1, x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 1006 + 2*s64 + 2*s64*s65 + 5*s65 + 2*s65^2 + 5*s66 + 2*s66^2 + 1407*x_17 + 916*x_17^2 + 188*x_17^3 + 1407*x_23 + 916*x_23^2 + 188*x_23^3 }-> s67 :|: s64 >= 0, s64 <= x_17 + 1, s65 >= 0, s65 <= x_23 + 1, s66 >= 0, s66 <= s64 + s65 + 1, s67 >= 0, s67 <= 0 + s66 + 1, x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 503 + s68 + 5*s69 + 2*s69^2 + 1407*x_18 + 916*x_18^2 + 188*x_18^3 }-> s70 :|: s68 >= 0, s68 <= x_18 + 1, s69 >= 0, s69 <= s68 + 1, s70 >= 0, s70 <= 0 + s69 + 1, x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 1001 + 2*s71 + 2*s71*s72 + 5*s72 + 2*s72^2 + s73 + 1407*x_19 + 916*x_19^2 + 188*x_19^3 + 1407*x_24 + 916*x_24^2 + 188*x_24^3 }-> s74 :|: s71 >= 0, s71 <= x_19 + 1, s72 >= 0, s72 <= x_24 + 1, s73 >= 0, s73 <= s71 + s72 + 1, s74 >= 0, s74 <= s73 + 1, z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ -156 + s75 + s76 + -1*z + -212*z^2 + 188*z^3 }-> s77 :|: s75 >= 0, s75 <= z - 2 + 1, s76 >= 0, s76 <= s75 + 1, s77 >= 0, s77 <= s76 + 1, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 825 + 5*s100 + 2*s100*s98 + 2*s100^2 + 2*s96 + 2*s96*s97 + 5*s97 + 2*s97^2 + 2*s98 + s99 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 + 139*z' + 352*z'^2 + 188*z'^3 }-> s101 :|: s96 >= 0, s96 <= x_111 + 1, s97 >= 0, s97 <= x_25 + 1, s98 >= 0, s98 <= s96 + s97 + 1, s99 >= 0, s99 <= z' - 1 + 1, s100 >= 0, s100 <= s99 + 1, s101 >= 0, s101 <= s98 + s100 + 1, z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 1006 + 2*s102 + 2*s102*s103 + 5*s103 + 2*s103^2 + 2*s104 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 }-> s105 :|: s102 >= 0, s102 <= x_111 + 1, s103 >= 0, s103 <= x_25 + 1, s104 >= 0, s104 <= s102 + s103 + 1, s105 >= 0, s105 <= s104 + 0 + 1, x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ -176 + s106 + 2*s107 + 139*z + 352*z^2 + 188*z^3 }-> s108 :|: s106 >= 0, s106 <= z - 1 + 1, s107 >= 0, s107 <= s106 + 1, s108 >= 0, s108 <= s107 + 0 + 1, z - 1 >= 0, z' = 0 encode_+(z, z') -{ 825 + s109 + 2*s110 + 2*s110*s113 + 2*s111 + 2*s111*s112 + 5*s112 + 2*s112^2 + 5*s113 + 2*s113^2 + 1407*x_117 + 916*x_117^2 + 188*x_117^3 + 1407*x_28 + 916*x_28^2 + 188*x_28^3 + 139*z + 352*z^2 + 188*z^3 }-> s114 :|: s109 >= 0, s109 <= z - 1 + 1, s110 >= 0, s110 <= s109 + 1, s111 >= 0, s111 <= x_117 + 1, s112 >= 0, s112 <= x_28 + 1, s113 >= 0, s113 <= s111 + s112 + 1, s114 >= 0, s114 <= s110 + s113 + 1, x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ -357 + s115 + 2*s116 + 2*s116*s118 + s117 + 5*s118 + 2*s118^2 + 139*z + 352*z^2 + 188*z^3 + 139*z' + 352*z'^2 + 188*z'^3 }-> s119 :|: s115 >= 0, s115 <= z - 1 + 1, s116 >= 0, s116 <= s115 + 1, s117 >= 0, s117 <= z' - 1 + 1, s118 >= 0, s118 <= s117 + 1, s119 >= 0, s119 <= s116 + s118 + 1, z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ -176 + s120 + 2*s121 + 139*z + 352*z^2 + 188*z^3 }-> s122 :|: s120 >= 0, s120 <= z - 1 + 1, s121 >= 0, s121 <= s120 + 1, s122 >= 0, s122 <= s121 + 0 + 1, z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 1006 + 2*s123 + 2*s123*s124 + 5*s124 + 2*s124^2 + 5*s125 + 2*s125^2 + 1407*x_119 + 916*x_119^2 + 188*x_119^3 + 1407*x_29 + 916*x_29^2 + 188*x_29^3 }-> s126 :|: s123 >= 0, s123 <= x_119 + 1, s124 >= 0, s124 <= x_29 + 1, s125 >= 0, s125 <= s123 + s124 + 1, s126 >= 0, s126 <= 0 + s125 + 1, z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ -176 + s127 + 5*s128 + 2*s128^2 + 139*z' + 352*z'^2 + 188*z'^3 }-> s129 :|: s127 >= 0, s127 <= z' - 1 + 1, s128 >= 0, s128 <= s127 + 1, s129 >= 0, s129 <= 0 + s128 + 1, z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 5 }-> s15 :|: s15 >= 0, s15 <= 0 + 0 + 1, z = 0, z' = 0 encode_+(z, z') -{ 5 }-> s16 :|: s16 >= 0, s16 <= 0 + 0 + 1, z' >= 0, z = 0 encode_+(z, z') -{ 5 }-> s17 :|: s17 >= 0, s17 <= 0 + 0 + 1, z >= 0, z' = 0 encode_+(z, z') -{ 5 }-> s18 :|: s18 >= 0, s18 <= 0 + 0 + 1, z >= 0, z' >= 0 encode_+(z, z') -{ 1006 + 2*s78 + 2*s78*s79 + 5*s79 + 2*s79^2 + 5*s80 + 2*s80^2 + 1407*x_113 + 916*x_113^2 + 188*x_113^3 + 1407*x_26 + 916*x_26^2 + 188*x_26^3 }-> s81 :|: s78 >= 0, s78 <= x_113 + 1, s79 >= 0, s79 <= x_26 + 1, s80 >= 0, s80 <= s78 + s79 + 1, s81 >= 0, s81 <= 0 + s80 + 1, x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ -176 + s82 + 5*s83 + 2*s83^2 + 139*z' + 352*z'^2 + 188*z'^3 }-> s84 :|: s82 >= 0, s82 <= z' - 1 + 1, s83 >= 0, s83 <= s82 + 1, s84 >= 0, s84 <= 0 + s83 + 1, z' - 1 >= 0, z = 0 encode_+(z, z') -{ 1006 + 2*s85 + 2*s85*s86 + 5*s86 + 2*s86^2 + 2*s87 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 }-> s88 :|: s85 >= 0, s85 <= x_111 + 1, s86 >= 0, s86 <= x_25 + 1, s87 >= 0, s87 <= s85 + s86 + 1, s88 >= 0, s88 <= s87 + 0 + 1, x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 2007 + 2*s89 + 2*s89*s90 + 5*s90 + 2*s90^2 + 2*s91 + 2*s91*s94 + 2*s92 + 2*s92*s93 + 5*s93 + 2*s93^2 + 5*s94 + 2*s94^2 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_115 + 916*x_115^2 + 188*x_115^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 + 1407*x_27 + 916*x_27^2 + 188*x_27^3 }-> s95 :|: s89 >= 0, s89 <= x_111 + 1, s90 >= 0, s90 <= x_25 + 1, s91 >= 0, s91 <= s89 + s90 + 1, s92 >= 0, s92 <= x_115 + 1, s93 >= 0, s93 <= x_27 + 1, s94 >= 0, s94 <= s92 + s93 + 1, s95 >= 0, s95 <= s91 + s94 + 1, x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 1001 + 2*s130 + 2*s130*s131 + 5*s131 + 2*s131^2 + s132 + 1407*x_121 + 916*x_121^2 + 188*x_121^3 + 1407*x_210 + 916*x_210^2 + 188*x_210^3 }-> s133 :|: s130 >= 0, s130 <= x_121 + 1, s131 >= 0, s131 <= x_210 + 1, s132 >= 0, s132 <= s130 + s131 + 1, s133 >= 0, s133 <= s132 + 1, z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ -181 + s134 + s135 + 139*z + 352*z^2 + 188*z^3 }-> s136 :|: s134 >= 0, s134 <= z - 1 + 1, s135 >= 0, s135 <= s134 + 1, s136 >= 0, s136 <= s135 + 1, z - 1 >= 0 encode_s(z) -{ 0 }-> s7 :|: s7 >= 0, s7 <= 0 + 1, z = 0 encode_s(z) -{ 0 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ z' }-> s :|: s >= 0, s <= z' - 1 + 1, z' - 1 >= 0, z = 0 plus(z, z') -{ 2 + z }-> s'' :|: s'' >= 0, s'' <= z + 1, z >= 0, z' = 1 + 0 plus(z, z') -{ 5 + s10 + s9 + -2*z + 2*z*z' + -3*z' + 2*z'^2 }-> s11 :|: s9 >= 0, s9 <= z + (z' - 2) + 1, s10 >= 0, s10 <= s9 + 1, s11 >= 0, s11 <= s10 + 1, z >= 0, z' - 2 >= 0 plus(z, z') -{ s1 + z' }-> s2 :|: s1 >= 0, s1 <= z' - 2 + 1, s2 >= 0, s2 <= s1 + 1, z' - 2 >= 0, z = 0 plus(z, z') -{ 1 + z + z' }-> s3 :|: s3 >= 0, s3 <= 1 + z + (z' - 1) + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s4 :|: s4 >= 0, s4 <= 0 + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ z }-> s' :|: s' >= 0, s' <= z - 1 + 1, z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: {encode_+} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] plus: runtime: O(n^2) [5 + 2*z + 2*z*z' + 5*z' + 2*z'^2], size: O(n^1) [1 + z + z'] encArg: runtime: O(n^3) [498 + 1407*z + 916*z^2 + 188*z^3], size: O(n^1) [1 + z] encode_s: runtime: O(n^3) [1013 + 2972*z + 2188*z^2 + 564*z^3], size: O(n^1) [3 + z] encode_+: runtime: ?, size: O(n^1) [5 + z + z'] ---------------------------------------- (57) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_+ after applying outer abstraction to obtain an ITS, resulting in: O(n^3) with polynomial bound: 7840 + 11912*z + 18*z*z' + 8752*z^2 + 2256*z^3 + 11996*z' + 8792*z'^2 + 2256*z'^3 ---------------------------------------- (58) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 5 }-> s12 :|: s12 >= 0, s12 <= 0 + 0 + 1, z = 1 + 0 + 0 encArg(z) -{ 5 }-> s13 :|: s13 >= 0, s13 <= 0 + 0 + 1, z - 1 >= 0 encArg(z) -{ 5 }-> s14 :|: s14 >= 0, s14 <= 0 + 0 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 1006 + 2*s19 + 2*s19*s20 + 5*s20 + 2*s20^2 + 5*s21 + 2*s21^2 + 1407*x_11 + 916*x_11^2 + 188*x_11^3 + 1407*x_2'' + 916*x_2''^2 + 188*x_2''^3 }-> s22 :|: s19 >= 0, s19 <= x_11 + 1, s20 >= 0, s20 <= x_2'' + 1, s21 >= 0, s21 <= s19 + s20 + 1, s22 >= 0, s22 <= 0 + s21 + 1, z = 1 + 0 + (1 + x_11 + x_2''), x_11 >= 0, x_2'' >= 0 encArg(z) -{ -151 + s23 + 5*s24 + 2*s24^2 + -1*z + -212*z^2 + 188*z^3 }-> s25 :|: s23 >= 0, s23 <= z - 2 + 1, s24 >= 0, s24 <= s23 + 1, s25 >= 0, s25 <= 0 + s24 + 1, z - 2 >= 0 encArg(z) -{ 1006 + 2*s26 + 2*s26*s27 + 5*s27 + 2*s27^2 + 2*s28 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s29 :|: s26 >= 0, s26 <= x_1' + 1, s27 >= 0, s27 <= x_2' + 1, s28 >= 0, s28 <= s26 + s27 + 1, s29 >= 0, s29 <= s28 + 0 + 1, x_2' >= 0, x_1' >= 0, z = 1 + (1 + x_1' + x_2') + 0 encArg(z) -{ 2007 + 2*s30 + 2*s30*s31 + 5*s31 + 2*s31^2 + 2*s32 + 2*s32*s35 + 2*s33 + 2*s33*s34 + 5*s34 + 2*s34^2 + 5*s35 + 2*s35^2 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_13 + 916*x_13^2 + 188*x_13^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 + 1407*x_21 + 916*x_21^2 + 188*x_21^3 }-> s36 :|: s30 >= 0, s30 <= x_1' + 1, s31 >= 0, s31 <= x_2' + 1, s32 >= 0, s32 <= s30 + s31 + 1, s33 >= 0, s33 <= x_13 + 1, s34 >= 0, s34 <= x_21 + 1, s35 >= 0, s35 <= s33 + s34 + 1, s36 >= 0, s36 <= s32 + s35 + 1, z = 1 + (1 + x_1' + x_2') + (1 + x_13 + x_21), x_2' >= 0, x_13 >= 0, x_1' >= 0, x_21 >= 0 encArg(z) -{ 1504 + 2*s37 + 2*s37*s38 + 5*s38 + 2*s38^2 + 2*s39 + 2*s39*s41 + s40 + 5*s41 + 2*s41^2 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_14 + 916*x_14^2 + 188*x_14^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s42 :|: s37 >= 0, s37 <= x_1' + 1, s38 >= 0, s38 <= x_2' + 1, s39 >= 0, s39 <= s37 + s38 + 1, s40 >= 0, s40 <= x_14 + 1, s41 >= 0, s41 <= s40 + 1, s42 >= 0, s42 <= s39 + s41 + 1, z = 1 + (1 + x_1' + x_2') + (1 + x_14), x_14 >= 0, x_2' >= 0, x_1' >= 0 encArg(z) -{ 1006 + 2*s43 + 2*s43*s44 + 5*s44 + 2*s44^2 + 2*s45 + 1407*x_1' + 916*x_1'^2 + 188*x_1'^3 + 1407*x_2' + 916*x_2'^2 + 188*x_2'^3 }-> s46 :|: s43 >= 0, s43 <= x_1' + 1, s44 >= 0, s44 <= x_2' + 1, s45 >= 0, s45 <= s43 + s44 + 1, s46 >= 0, s46 <= s45 + 0 + 1, z = 1 + (1 + x_1' + x_2') + x_2, x_2' >= 0, x_1' >= 0, x_2 >= 0 encArg(z) -{ -151 + s47 + 2*s48 + -1*z + -212*z^2 + 188*z^3 }-> s49 :|: s47 >= 0, s47 <= z - 2 + 1, s48 >= 0, s48 <= s47 + 1, s49 >= 0, s49 <= s48 + 0 + 1, z - 2 >= 0 encArg(z) -{ 0 }-> s5 :|: s5 >= 0, s5 <= 0 + 1, z = 1 + 0 encArg(z) -{ 1504 + s50 + 2*s51 + 2*s51*s54 + 2*s52 + 2*s52*s53 + 5*s53 + 2*s53^2 + 5*s54 + 2*s54^2 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 + 1407*x_15 + 916*x_15^2 + 188*x_15^3 + 1407*x_22 + 916*x_22^2 + 188*x_22^3 }-> s55 :|: s50 >= 0, s50 <= x_1'' + 1, s51 >= 0, s51 <= s50 + 1, s52 >= 0, s52 <= x_15 + 1, s53 >= 0, s53 <= x_22 + 1, s54 >= 0, s54 <= s52 + s53 + 1, s55 >= 0, s55 <= s51 + s54 + 1, x_15 >= 0, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> s6 :|: s6 >= 0, s6 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 1001 + s56 + 2*s57 + 2*s57*s59 + s58 + 5*s59 + 2*s59^2 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 + 1407*x_16 + 916*x_16^2 + 188*x_16^3 }-> s60 :|: s56 >= 0, s56 <= x_1'' + 1, s57 >= 0, s57 <= s56 + 1, s58 >= 0, s58 <= x_16 + 1, s59 >= 0, s59 <= s58 + 1, s60 >= 0, s60 <= s57 + s59 + 1, x_1'' >= 0, z = 1 + (1 + x_1'') + (1 + x_16), x_16 >= 0 encArg(z) -{ 503 + s61 + 2*s62 + 1407*x_1'' + 916*x_1''^2 + 188*x_1''^3 }-> s63 :|: s61 >= 0, s61 <= x_1'' + 1, s62 >= 0, s62 <= s61 + 1, s63 >= 0, s63 <= s62 + 0 + 1, x_1'' >= 0, z = 1 + (1 + x_1'') + x_2, x_2 >= 0 encArg(z) -{ 1006 + 2*s64 + 2*s64*s65 + 5*s65 + 2*s65^2 + 5*s66 + 2*s66^2 + 1407*x_17 + 916*x_17^2 + 188*x_17^3 + 1407*x_23 + 916*x_23^2 + 188*x_23^3 }-> s67 :|: s64 >= 0, s64 <= x_17 + 1, s65 >= 0, s65 <= x_23 + 1, s66 >= 0, s66 <= s64 + s65 + 1, s67 >= 0, s67 <= 0 + s66 + 1, x_1 >= 0, x_17 >= 0, x_23 >= 0, z = 1 + x_1 + (1 + x_17 + x_23) encArg(z) -{ 503 + s68 + 5*s69 + 2*s69^2 + 1407*x_18 + 916*x_18^2 + 188*x_18^3 }-> s70 :|: s68 >= 0, s68 <= x_18 + 1, s69 >= 0, s69 <= s68 + 1, s70 >= 0, s70 <= 0 + s69 + 1, x_1 >= 0, z = 1 + x_1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 1001 + 2*s71 + 2*s71*s72 + 5*s72 + 2*s72^2 + s73 + 1407*x_19 + 916*x_19^2 + 188*x_19^3 + 1407*x_24 + 916*x_24^2 + 188*x_24^3 }-> s74 :|: s71 >= 0, s71 <= x_19 + 1, s72 >= 0, s72 <= x_24 + 1, s73 >= 0, s73 <= s71 + s72 + 1, s74 >= 0, s74 <= s73 + 1, z = 1 + (1 + x_19 + x_24), x_24 >= 0, x_19 >= 0 encArg(z) -{ -156 + s75 + s76 + -1*z + -212*z^2 + 188*z^3 }-> s77 :|: s75 >= 0, s75 <= z - 2 + 1, s76 >= 0, s76 <= s75 + 1, s77 >= 0, s77 <= s76 + 1, z - 2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encode_+(z, z') -{ 825 + 5*s100 + 2*s100*s98 + 2*s100^2 + 2*s96 + 2*s96*s97 + 5*s97 + 2*s97^2 + 2*s98 + s99 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 + 139*z' + 352*z'^2 + 188*z'^3 }-> s101 :|: s96 >= 0, s96 <= x_111 + 1, s97 >= 0, s97 <= x_25 + 1, s98 >= 0, s98 <= s96 + s97 + 1, s99 >= 0, s99 <= z' - 1 + 1, s100 >= 0, s100 <= s99 + 1, s101 >= 0, s101 <= s98 + s100 + 1, z' - 1 >= 0, x_25 >= 0, z = 1 + x_111 + x_25, x_111 >= 0 encode_+(z, z') -{ 1006 + 2*s102 + 2*s102*s103 + 5*s103 + 2*s103^2 + 2*s104 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 }-> s105 :|: s102 >= 0, s102 <= x_111 + 1, s103 >= 0, s103 <= x_25 + 1, s104 >= 0, s104 <= s102 + s103 + 1, s105 >= 0, s105 <= s104 + 0 + 1, x_25 >= 0, z = 1 + x_111 + x_25, z' >= 0, x_111 >= 0 encode_+(z, z') -{ -176 + s106 + 2*s107 + 139*z + 352*z^2 + 188*z^3 }-> s108 :|: s106 >= 0, s106 <= z - 1 + 1, s107 >= 0, s107 <= s106 + 1, s108 >= 0, s108 <= s107 + 0 + 1, z - 1 >= 0, z' = 0 encode_+(z, z') -{ 825 + s109 + 2*s110 + 2*s110*s113 + 2*s111 + 2*s111*s112 + 5*s112 + 2*s112^2 + 5*s113 + 2*s113^2 + 1407*x_117 + 916*x_117^2 + 188*x_117^3 + 1407*x_28 + 916*x_28^2 + 188*x_28^3 + 139*z + 352*z^2 + 188*z^3 }-> s114 :|: s109 >= 0, s109 <= z - 1 + 1, s110 >= 0, s110 <= s109 + 1, s111 >= 0, s111 <= x_117 + 1, s112 >= 0, s112 <= x_28 + 1, s113 >= 0, s113 <= s111 + s112 + 1, s114 >= 0, s114 <= s110 + s113 + 1, x_117 >= 0, z' = 1 + x_117 + x_28, z - 1 >= 0, x_28 >= 0 encode_+(z, z') -{ -357 + s115 + 2*s116 + 2*s116*s118 + s117 + 5*s118 + 2*s118^2 + 139*z + 352*z^2 + 188*z^3 + 139*z' + 352*z'^2 + 188*z'^3 }-> s119 :|: s115 >= 0, s115 <= z - 1 + 1, s116 >= 0, s116 <= s115 + 1, s117 >= 0, s117 <= z' - 1 + 1, s118 >= 0, s118 <= s117 + 1, s119 >= 0, s119 <= s116 + s118 + 1, z - 1 >= 0, z' - 1 >= 0 encode_+(z, z') -{ -176 + s120 + 2*s121 + 139*z + 352*z^2 + 188*z^3 }-> s122 :|: s120 >= 0, s120 <= z - 1 + 1, s121 >= 0, s121 <= s120 + 1, s122 >= 0, s122 <= s121 + 0 + 1, z' >= 0, z - 1 >= 0 encode_+(z, z') -{ 1006 + 2*s123 + 2*s123*s124 + 5*s124 + 2*s124^2 + 5*s125 + 2*s125^2 + 1407*x_119 + 916*x_119^2 + 188*x_119^3 + 1407*x_29 + 916*x_29^2 + 188*x_29^3 }-> s126 :|: s123 >= 0, s123 <= x_119 + 1, s124 >= 0, s124 <= x_29 + 1, s125 >= 0, s125 <= s123 + s124 + 1, s126 >= 0, s126 <= 0 + s125 + 1, z >= 0, z' = 1 + x_119 + x_29, x_119 >= 0, x_29 >= 0 encode_+(z, z') -{ -176 + s127 + 5*s128 + 2*s128^2 + 139*z' + 352*z'^2 + 188*z'^3 }-> s129 :|: s127 >= 0, s127 <= z' - 1 + 1, s128 >= 0, s128 <= s127 + 1, s129 >= 0, s129 <= 0 + s128 + 1, z >= 0, z' - 1 >= 0 encode_+(z, z') -{ 5 }-> s15 :|: s15 >= 0, s15 <= 0 + 0 + 1, z = 0, z' = 0 encode_+(z, z') -{ 5 }-> s16 :|: s16 >= 0, s16 <= 0 + 0 + 1, z' >= 0, z = 0 encode_+(z, z') -{ 5 }-> s17 :|: s17 >= 0, s17 <= 0 + 0 + 1, z >= 0, z' = 0 encode_+(z, z') -{ 5 }-> s18 :|: s18 >= 0, s18 <= 0 + 0 + 1, z >= 0, z' >= 0 encode_+(z, z') -{ 1006 + 2*s78 + 2*s78*s79 + 5*s79 + 2*s79^2 + 5*s80 + 2*s80^2 + 1407*x_113 + 916*x_113^2 + 188*x_113^3 + 1407*x_26 + 916*x_26^2 + 188*x_26^3 }-> s81 :|: s78 >= 0, s78 <= x_113 + 1, s79 >= 0, s79 <= x_26 + 1, s80 >= 0, s80 <= s78 + s79 + 1, s81 >= 0, s81 <= 0 + s80 + 1, x_113 >= 0, x_26 >= 0, z' = 1 + x_113 + x_26, z = 0 encode_+(z, z') -{ -176 + s82 + 5*s83 + 2*s83^2 + 139*z' + 352*z'^2 + 188*z'^3 }-> s84 :|: s82 >= 0, s82 <= z' - 1 + 1, s83 >= 0, s83 <= s82 + 1, s84 >= 0, s84 <= 0 + s83 + 1, z' - 1 >= 0, z = 0 encode_+(z, z') -{ 1006 + 2*s85 + 2*s85*s86 + 5*s86 + 2*s86^2 + 2*s87 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 }-> s88 :|: s85 >= 0, s85 <= x_111 + 1, s86 >= 0, s86 <= x_25 + 1, s87 >= 0, s87 <= s85 + s86 + 1, s88 >= 0, s88 <= s87 + 0 + 1, x_25 >= 0, z = 1 + x_111 + x_25, z' = 0, x_111 >= 0 encode_+(z, z') -{ 2007 + 2*s89 + 2*s89*s90 + 5*s90 + 2*s90^2 + 2*s91 + 2*s91*s94 + 2*s92 + 2*s92*s93 + 5*s93 + 2*s93^2 + 5*s94 + 2*s94^2 + 1407*x_111 + 916*x_111^2 + 188*x_111^3 + 1407*x_115 + 916*x_115^2 + 188*x_115^3 + 1407*x_25 + 916*x_25^2 + 188*x_25^3 + 1407*x_27 + 916*x_27^2 + 188*x_27^3 }-> s95 :|: s89 >= 0, s89 <= x_111 + 1, s90 >= 0, s90 <= x_25 + 1, s91 >= 0, s91 <= s89 + s90 + 1, s92 >= 0, s92 <= x_115 + 1, s93 >= 0, s93 <= x_27 + 1, s94 >= 0, s94 <= s92 + s93 + 1, s95 >= 0, s95 <= s91 + s94 + 1, x_25 >= 0, x_115 >= 0, z = 1 + x_111 + x_25, z' = 1 + x_115 + x_27, x_27 >= 0, x_111 >= 0 encode_+(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_s(z) -{ 1001 + 2*s130 + 2*s130*s131 + 5*s131 + 2*s131^2 + s132 + 1407*x_121 + 916*x_121^2 + 188*x_121^3 + 1407*x_210 + 916*x_210^2 + 188*x_210^3 }-> s133 :|: s130 >= 0, s130 <= x_121 + 1, s131 >= 0, s131 <= x_210 + 1, s132 >= 0, s132 <= s130 + s131 + 1, s133 >= 0, s133 <= s132 + 1, z = 1 + x_121 + x_210, x_121 >= 0, x_210 >= 0 encode_s(z) -{ -181 + s134 + s135 + 139*z + 352*z^2 + 188*z^3 }-> s136 :|: s134 >= 0, s134 <= z - 1 + 1, s135 >= 0, s135 <= s134 + 1, s136 >= 0, s136 <= s135 + 1, z - 1 >= 0 encode_s(z) -{ 0 }-> s7 :|: s7 >= 0, s7 <= 0 + 1, z = 0 encode_s(z) -{ 0 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 plus(z, z') -{ z' }-> s :|: s >= 0, s <= z' - 1 + 1, z' - 1 >= 0, z = 0 plus(z, z') -{ 2 + z }-> s'' :|: s'' >= 0, s'' <= z + 1, z >= 0, z' = 1 + 0 plus(z, z') -{ 5 + s10 + s9 + -2*z + 2*z*z' + -3*z' + 2*z'^2 }-> s11 :|: s9 >= 0, s9 <= z + (z' - 2) + 1, s10 >= 0, s10 <= s9 + 1, s11 >= 0, s11 <= s10 + 1, z >= 0, z' - 2 >= 0 plus(z, z') -{ s1 + z' }-> s2 :|: s1 >= 0, s1 <= z' - 2 + 1, s2 >= 0, s2 <= s1 + 1, z' - 2 >= 0, z = 0 plus(z, z') -{ 1 + z + z' }-> s3 :|: s3 >= 0, s3 <= 1 + z + (z' - 1) + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> s4 :|: s4 >= 0, s4 <= 0 + 1, z >= 0, z' - 1 >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 plus(z, z') -{ 0 }-> 1 + z + z' :|: z >= 0, z' >= 0 s(z) -{ z }-> s' :|: s' >= 0, s' <= z - 1 + 1, z - 1 >= 0 s(z) -{ 0 }-> 0 :|: z >= 0 s(z) -{ 0 }-> 1 + z :|: z >= 0 Function symbols to be analyzed: Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] s: runtime: O(n^1) [z], size: O(n^1) [1 + z] plus: runtime: O(n^2) [5 + 2*z + 2*z*z' + 5*z' + 2*z'^2], size: O(n^1) [1 + z + z'] encArg: runtime: O(n^3) [498 + 1407*z + 916*z^2 + 188*z^3], size: O(n^1) [1 + z] encode_s: runtime: O(n^3) [1013 + 2972*z + 2188*z^2 + 564*z^3], size: O(n^1) [3 + z] encode_+: runtime: O(n^3) [7840 + 11912*z + 18*z*z' + 8752*z^2 + 2256*z^3 + 11996*z' + 8792*z'^2 + 2256*z'^3], size: O(n^1) [5 + z + z'] ---------------------------------------- (59) FinalProof (FINISHED) Computed overall runtime complexity ---------------------------------------- (60) BOUNDS(1, n^3) ---------------------------------------- (61) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (62) 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: +'(x, 0') -> x +'(x, s(y)) -> s(+'(x, y)) +'(0', s(y)) -> s(y) s(+'(0', y)) -> s(y) The (relative) TRS S consists of the following rules: encArg(0') -> 0' encArg(cons_+(x_1, x_2)) -> +'(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encode_+(x_1, x_2) -> +'(encArg(x_1), encArg(x_2)) encode_0 -> 0' encode_s(x_1) -> s(encArg(x_1)) Rewrite Strategy: INNERMOST ---------------------------------------- (63) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (64) Obligation: Innermost TRS: Rules: +'(x, 0') -> x +'(x, s(y)) -> s(+'(x, y)) +'(0', s(y)) -> s(y) s(+'(0', y)) -> s(y) encArg(0') -> 0' encArg(cons_+(x_1, x_2)) -> +'(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encode_+(x_1, x_2) -> +'(encArg(x_1), encArg(x_2)) encode_0 -> 0' encode_s(x_1) -> s(encArg(x_1)) Types: +' :: 0':cons_+:cons_s -> 0':cons_+:cons_s -> 0':cons_+:cons_s 0' :: 0':cons_+:cons_s s :: 0':cons_+:cons_s -> 0':cons_+:cons_s encArg :: 0':cons_+:cons_s -> 0':cons_+:cons_s cons_+ :: 0':cons_+:cons_s -> 0':cons_+:cons_s -> 0':cons_+:cons_s cons_s :: 0':cons_+:cons_s -> 0':cons_+:cons_s encode_+ :: 0':cons_+:cons_s -> 0':cons_+:cons_s -> 0':cons_+:cons_s encode_0 :: 0':cons_+:cons_s encode_s :: 0':cons_+:cons_s -> 0':cons_+:cons_s hole_0':cons_+:cons_s1_3 :: 0':cons_+:cons_s gen_0':cons_+:cons_s2_3 :: Nat -> 0':cons_+:cons_s ---------------------------------------- (65) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: +', s, encArg They will be analysed ascendingly in the following order: s < +' +' < encArg s < encArg ---------------------------------------- (66) Obligation: Innermost TRS: Rules: +'(x, 0') -> x +'(x, s(y)) -> s(+'(x, y)) +'(0', s(y)) -> s(y) s(+'(0', y)) -> s(y) encArg(0') -> 0' encArg(cons_+(x_1, x_2)) -> +'(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encode_+(x_1, x_2) -> +'(encArg(x_1), encArg(x_2)) encode_0 -> 0' encode_s(x_1) -> s(encArg(x_1)) Types: +' :: 0':cons_+:cons_s -> 0':cons_+:cons_s -> 0':cons_+:cons_s 0' :: 0':cons_+:cons_s s :: 0':cons_+:cons_s -> 0':cons_+:cons_s encArg :: 0':cons_+:cons_s -> 0':cons_+:cons_s cons_+ :: 0':cons_+:cons_s -> 0':cons_+:cons_s -> 0':cons_+:cons_s cons_s :: 0':cons_+:cons_s -> 0':cons_+:cons_s encode_+ :: 0':cons_+:cons_s -> 0':cons_+:cons_s -> 0':cons_+:cons_s encode_0 :: 0':cons_+:cons_s encode_s :: 0':cons_+:cons_s -> 0':cons_+:cons_s hole_0':cons_+:cons_s1_3 :: 0':cons_+:cons_s gen_0':cons_+:cons_s2_3 :: Nat -> 0':cons_+:cons_s Generator Equations: gen_0':cons_+:cons_s2_3(0) <=> 0' gen_0':cons_+:cons_s2_3(+(x, 1)) <=> cons_+(0', gen_0':cons_+:cons_s2_3(x)) The following defined symbols remain to be analysed: s, +', encArg They will be analysed ascendingly in the following order: s < +' +' < encArg s < encArg ---------------------------------------- (67) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: encArg(gen_0':cons_+:cons_s2_3(n21_3)) -> gen_0':cons_+:cons_s2_3(0), rt in Omega(n21_3) Induction Base: encArg(gen_0':cons_+:cons_s2_3(0)) ->_R^Omega(0) 0' Induction Step: encArg(gen_0':cons_+:cons_s2_3(+(n21_3, 1))) ->_R^Omega(0) +'(encArg(0'), encArg(gen_0':cons_+:cons_s2_3(n21_3))) ->_R^Omega(0) +'(0', encArg(gen_0':cons_+:cons_s2_3(n21_3))) ->_IH +'(0', gen_0':cons_+:cons_s2_3(0)) ->_R^Omega(1) 0' We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (68) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: +'(x, 0') -> x +'(x, s(y)) -> s(+'(x, y)) +'(0', s(y)) -> s(y) s(+'(0', y)) -> s(y) encArg(0') -> 0' encArg(cons_+(x_1, x_2)) -> +'(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encode_+(x_1, x_2) -> +'(encArg(x_1), encArg(x_2)) encode_0 -> 0' encode_s(x_1) -> s(encArg(x_1)) Types: +' :: 0':cons_+:cons_s -> 0':cons_+:cons_s -> 0':cons_+:cons_s 0' :: 0':cons_+:cons_s s :: 0':cons_+:cons_s -> 0':cons_+:cons_s encArg :: 0':cons_+:cons_s -> 0':cons_+:cons_s cons_+ :: 0':cons_+:cons_s -> 0':cons_+:cons_s -> 0':cons_+:cons_s cons_s :: 0':cons_+:cons_s -> 0':cons_+:cons_s encode_+ :: 0':cons_+:cons_s -> 0':cons_+:cons_s -> 0':cons_+:cons_s encode_0 :: 0':cons_+:cons_s encode_s :: 0':cons_+:cons_s -> 0':cons_+:cons_s hole_0':cons_+:cons_s1_3 :: 0':cons_+:cons_s gen_0':cons_+:cons_s2_3 :: Nat -> 0':cons_+:cons_s Generator Equations: gen_0':cons_+:cons_s2_3(0) <=> 0' gen_0':cons_+:cons_s2_3(+(x, 1)) <=> cons_+(0', gen_0':cons_+:cons_s2_3(x)) The following defined symbols remain to be analysed: encArg ---------------------------------------- (69) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (70) BOUNDS(n^1, INF)