/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^2)) 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^2). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 157 ms] (4) CpxRelTRS (5) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxWeightedTrs (7) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxTypedWeightedTrs (9) CompletionProof [UPPER BOUND(ID), 0 ms] (10) CpxTypedWeightedCompleteTrs (11) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (12) CpxTypedWeightedCompleteTrs (13) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (14) CpxRNTS (15) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (16) CpxRNTS (17) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] (18) CpxRNTS (19) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (20) CpxRNTS (21) IntTrsBoundProof [UPPER BOUND(ID), 359 ms] (22) CpxRNTS (23) IntTrsBoundProof [UPPER BOUND(ID), 97 ms] (24) CpxRNTS (25) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (26) CpxRNTS (27) IntTrsBoundProof [UPPER BOUND(ID), 76 ms] (28) CpxRNTS (29) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (30) CpxRNTS (31) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (32) CpxRNTS (33) IntTrsBoundProof [UPPER BOUND(ID), 129 ms] (34) CpxRNTS (35) IntTrsBoundProof [UPPER BOUND(ID), 53 ms] (36) CpxRNTS (37) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (38) CpxRNTS (39) IntTrsBoundProof [UPPER BOUND(ID), 780 ms] (40) CpxRNTS (41) IntTrsBoundProof [UPPER BOUND(ID), 401 ms] (42) CpxRNTS (43) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (44) CpxRNTS (45) IntTrsBoundProof [UPPER BOUND(ID), 150 ms] (46) CpxRNTS (47) IntTrsBoundProof [UPPER BOUND(ID), 4 ms] (48) CpxRNTS (49) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (50) CpxRNTS (51) IntTrsBoundProof [UPPER BOUND(ID), 248 ms] (52) CpxRNTS (53) IntTrsBoundProof [UPPER BOUND(ID), 108 ms] (54) CpxRNTS (55) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (56) CpxRNTS (57) IntTrsBoundProof [UPPER BOUND(ID), 201 ms] (58) CpxRNTS (59) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (60) CpxRNTS (61) FinalProof [FINISHED, 0 ms] (62) BOUNDS(1, n^2) (63) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (64) CpxRelTRS (65) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (66) typed CpxTrs (67) OrderProof [LOWER BOUND(ID), 0 ms] (68) typed CpxTrs (69) RewriteLemmaProof [LOWER BOUND(ID), 303 ms] (70) BEST (71) proven lower bound (72) LowerBoundPropagationProof [FINISHED, 0 ms] (73) BOUNDS(n^1, INF) (74) typed CpxTrs (75) RewriteLemmaProof [LOWER BOUND(ID), 48 ms] (76) BOUNDS(1, INF) ---------------------------------------- (0) Obligation: The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: rev(ls) -> r1(ls, empty) r1(empty, a) -> a r1(cons(x, k), a) -> r1(k, cons(x, a)) 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(empty) -> empty encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_rev(x_1)) -> rev(encArg(x_1)) encArg(cons_r1(x_1, x_2)) -> r1(encArg(x_1), encArg(x_2)) encode_rev(x_1) -> rev(encArg(x_1)) encode_r1(x_1, x_2) -> r1(encArg(x_1), encArg(x_2)) encode_empty -> empty encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: rev(ls) -> r1(ls, empty) r1(empty, a) -> a r1(cons(x, k), a) -> r1(k, cons(x, a)) The (relative) TRS S consists of the following rules: encArg(empty) -> empty encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_rev(x_1)) -> rev(encArg(x_1)) encArg(cons_r1(x_1, x_2)) -> r1(encArg(x_1), encArg(x_2)) encode_rev(x_1) -> rev(encArg(x_1)) encode_r1(x_1, x_2) -> r1(encArg(x_1), encArg(x_2)) encode_empty -> empty encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) 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^2). The TRS R consists of the following rules: rev(ls) -> r1(ls, empty) r1(empty, a) -> a r1(cons(x, k), a) -> r1(k, cons(x, a)) The (relative) TRS S consists of the following rules: encArg(empty) -> empty encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_rev(x_1)) -> rev(encArg(x_1)) encArg(cons_r1(x_1, x_2)) -> r1(encArg(x_1), encArg(x_2)) encode_rev(x_1) -> rev(encArg(x_1)) encode_r1(x_1, x_2) -> r1(encArg(x_1), encArg(x_2)) encode_empty -> empty encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) Rewrite Strategy: INNERMOST ---------------------------------------- (5) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^2). The TRS R consists of the following rules: rev(ls) -> r1(ls, empty) [1] r1(empty, a) -> a [1] r1(cons(x, k), a) -> r1(k, cons(x, a)) [1] encArg(empty) -> empty [0] encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_rev(x_1)) -> rev(encArg(x_1)) [0] encArg(cons_r1(x_1, x_2)) -> r1(encArg(x_1), encArg(x_2)) [0] encode_rev(x_1) -> rev(encArg(x_1)) [0] encode_r1(x_1, x_2) -> r1(encArg(x_1), encArg(x_2)) [0] encode_empty -> empty [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (8) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: rev(ls) -> r1(ls, empty) [1] r1(empty, a) -> a [1] r1(cons(x, k), a) -> r1(k, cons(x, a)) [1] encArg(empty) -> empty [0] encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_rev(x_1)) -> rev(encArg(x_1)) [0] encArg(cons_r1(x_1, x_2)) -> r1(encArg(x_1), encArg(x_2)) [0] encode_rev(x_1) -> rev(encArg(x_1)) [0] encode_r1(x_1, x_2) -> r1(encArg(x_1), encArg(x_2)) [0] encode_empty -> empty [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] The TRS has the following type information: rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 empty :: empty:cons:cons_rev:cons_r1 cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encArg :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_empty :: empty:cons:cons_rev:cons_r1 encode_cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 Rewrite Strategy: INNERMOST ---------------------------------------- (9) 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: rev_1 r1_2 encArg_1 encode_rev_1 encode_r1_2 encode_empty encode_cons_2 Due to the following rules being added: encArg(v0) -> empty [0] encode_rev(v0) -> empty [0] encode_r1(v0, v1) -> empty [0] encode_empty -> empty [0] encode_cons(v0, v1) -> empty [0] r1(v0, v1) -> empty [0] And the following fresh constants: none ---------------------------------------- (10) 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: rev(ls) -> r1(ls, empty) [1] r1(empty, a) -> a [1] r1(cons(x, k), a) -> r1(k, cons(x, a)) [1] encArg(empty) -> empty [0] encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_rev(x_1)) -> rev(encArg(x_1)) [0] encArg(cons_r1(x_1, x_2)) -> r1(encArg(x_1), encArg(x_2)) [0] encode_rev(x_1) -> rev(encArg(x_1)) [0] encode_r1(x_1, x_2) -> r1(encArg(x_1), encArg(x_2)) [0] encode_empty -> empty [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(v0) -> empty [0] encode_rev(v0) -> empty [0] encode_r1(v0, v1) -> empty [0] encode_empty -> empty [0] encode_cons(v0, v1) -> empty [0] r1(v0, v1) -> empty [0] The TRS has the following type information: rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 empty :: empty:cons:cons_rev:cons_r1 cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encArg :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_empty :: empty:cons:cons_rev:cons_r1 encode_cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 Rewrite Strategy: INNERMOST ---------------------------------------- (11) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (12) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: rev(ls) -> r1(ls, empty) [1] r1(empty, a) -> a [1] r1(cons(x, k), a) -> r1(k, cons(x, a)) [1] encArg(empty) -> empty [0] encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_rev(empty)) -> rev(empty) [0] encArg(cons_rev(cons(x_1', x_2'))) -> rev(cons(encArg(x_1'), encArg(x_2'))) [0] encArg(cons_rev(cons_rev(x_1''))) -> rev(rev(encArg(x_1''))) [0] encArg(cons_rev(cons_r1(x_11, x_2''))) -> rev(r1(encArg(x_11), encArg(x_2''))) [0] encArg(cons_rev(x_1)) -> rev(empty) [0] encArg(cons_r1(x_1, x_2)) -> r1(encArg(x_1), encArg(x_2)) [0] encode_rev(empty) -> rev(empty) [0] encode_rev(cons(x_120, x_213)) -> rev(cons(encArg(x_120), encArg(x_213))) [0] encode_rev(cons_rev(x_121)) -> rev(rev(encArg(x_121))) [0] encode_rev(cons_r1(x_122, x_214)) -> rev(r1(encArg(x_122), encArg(x_214))) [0] encode_rev(x_1) -> rev(empty) [0] encode_r1(x_1, x_2) -> r1(encArg(x_1), encArg(x_2)) [0] encode_empty -> empty [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(v0) -> empty [0] encode_rev(v0) -> empty [0] encode_r1(v0, v1) -> empty [0] encode_empty -> empty [0] encode_cons(v0, v1) -> empty [0] r1(v0, v1) -> empty [0] The TRS has the following type information: rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 empty :: empty:cons:cons_rev:cons_r1 cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encArg :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_empty :: empty:cons:cons_rev:cons_r1 encode_cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 Rewrite Strategy: INNERMOST ---------------------------------------- (13) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: empty => 0 ---------------------------------------- (14) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> rev(rev(encArg(x_1''))) :|: z = 1 + (1 + x_1''), x_1'' >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: 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 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_cons(z, z') -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_r1(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_rev(z) -{ 0 }-> rev(rev(encArg(x_121))) :|: z = 1 + x_121, x_121 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(0) :|: z = 0 encode_rev(z) -{ 0 }-> rev(0) :|: x_1 >= 0, z = x_1 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 r1(z, z') -{ 1 }-> a :|: z' = a, a >= 0, z = 0 r1(z, z') -{ 1 }-> r1(k, 1 + x + a) :|: z' = a, a >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 rev(z) -{ 1 }-> r1(ls, 0) :|: ls >= 0, z = ls ---------------------------------------- (15) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> rev(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(0) :|: z = 0 encode_rev(z) -{ 0 }-> rev(0) :|: z >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 1 }-> r1(k, 1 + x + z') :|: z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 1 }-> r1(z, 0) :|: z >= 0 ---------------------------------------- (17) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { r1 } { encode_empty } { rev } { encArg } { encode_r1 } { encode_rev } { encode_cons } ---------------------------------------- (18) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> rev(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(0) :|: z = 0 encode_rev(z) -{ 0 }-> rev(0) :|: z >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 1 }-> r1(k, 1 + x + z') :|: z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 1 }-> r1(z, 0) :|: z >= 0 Function symbols to be analyzed: {r1}, {encode_empty}, {rev}, {encArg}, {encode_r1}, {encode_rev}, {encode_cons} ---------------------------------------- (19) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> rev(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(0) :|: z = 0 encode_rev(z) -{ 0 }-> rev(0) :|: z >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 1 }-> r1(k, 1 + x + z') :|: z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 1 }-> r1(z, 0) :|: z >= 0 Function symbols to be analyzed: {r1}, {encode_empty}, {rev}, {encArg}, {encode_r1}, {encode_rev}, {encode_cons} ---------------------------------------- (21) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: r1 after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z + z' ---------------------------------------- (22) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> rev(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(0) :|: z = 0 encode_rev(z) -{ 0 }-> rev(0) :|: z >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 1 }-> r1(k, 1 + x + z') :|: z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 1 }-> r1(z, 0) :|: z >= 0 Function symbols to be analyzed: {r1}, {encode_empty}, {rev}, {encArg}, {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: ?, size: O(n^1) [z + z'] ---------------------------------------- (23) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: r1 after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (24) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> rev(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(0) :|: z = 0 encode_rev(z) -{ 0 }-> rev(0) :|: z >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 1 }-> r1(k, 1 + x + z') :|: z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 1 }-> r1(z, 0) :|: z >= 0 Function symbols to be analyzed: {encode_empty}, {rev}, {encArg}, {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] ---------------------------------------- (25) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> rev(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(0) :|: z = 0 encode_rev(z) -{ 0 }-> rev(0) :|: z >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encode_empty}, {rev}, {encArg}, {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] ---------------------------------------- (27) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_empty 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 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> rev(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(0) :|: z = 0 encode_rev(z) -{ 0 }-> rev(0) :|: z >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encode_empty}, {rev}, {encArg}, {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: ?, size: O(1) [0] ---------------------------------------- (29) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encode_empty after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> rev(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(0) :|: z = 0 encode_rev(z) -{ 0 }-> rev(0) :|: z >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {rev}, {encArg}, {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] ---------------------------------------- (31) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> rev(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(0) :|: z = 0 encode_rev(z) -{ 0 }-> rev(0) :|: z >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {rev}, {encArg}, {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] ---------------------------------------- (33) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: rev 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 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> rev(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(0) :|: z = 0 encode_rev(z) -{ 0 }-> rev(0) :|: z >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {rev}, {encArg}, {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: ?, size: O(n^1) [z] ---------------------------------------- (35) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: rev after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 2 + z ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> rev(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(0) :|: z = 0 encode_rev(z) -{ 0 }-> rev(0) :|: z >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encArg}, {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] ---------------------------------------- (37) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 2 }-> s'' :|: s'' >= 0, s'' <= 0, z = 1 + 0 encArg(z) -{ 2 }-> s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 encArg(z) -{ 0 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 2 }-> s2 :|: s2 >= 0, s2 <= 0, z = 0 encode_rev(z) -{ 2 }-> s3 :|: s3 >= 0, s3 <= 0, z >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encArg}, {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] ---------------------------------------- (39) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encArg after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (40) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 2 }-> s'' :|: s'' >= 0, s'' <= 0, z = 1 + 0 encArg(z) -{ 2 }-> s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 encArg(z) -{ 0 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 2 }-> s2 :|: s2 >= 0, s2 <= 0, z = 0 encode_rev(z) -{ 2 }-> s3 :|: s3 >= 0, s3 <= 0, z >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encArg}, {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] encArg: runtime: ?, size: O(n^1) [z] ---------------------------------------- (41) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encArg after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 2 + 2*z + 2*z^2 ---------------------------------------- (42) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 2 }-> s'' :|: s'' >= 0, s'' <= 0, z = 1 + 0 encArg(z) -{ 2 }-> s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 encArg(z) -{ 0 }-> rev(rev(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rev(r1(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 0 }-> rev(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> r1(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 0 }-> r1(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 2 }-> s2 :|: s2 >= 0, s2 <= 0, z = 0 encode_rev(z) -{ 2 }-> s3 :|: s3 >= 0, s3 <= 0, z >= 0 encode_rev(z) -{ 0 }-> rev(rev(encArg(z - 1))) :|: z - 1 >= 0 encode_rev(z) -{ 0 }-> rev(r1(encArg(x_122), encArg(x_214))) :|: z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 0 }-> rev(1 + encArg(x_120) + encArg(x_213)) :|: x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [2 + 2*z + 2*z^2], size: O(n^1) [z] ---------------------------------------- (43) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (44) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 2 }-> s'' :|: s'' >= 0, s'' <= 0, z = 1 + 0 encArg(z) -{ 2 }-> s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 encArg(z) -{ 10 + s10 + s9 + -6*z + 2*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 2, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 2 >= 0 encArg(z) -{ 7 + s12 + s14 + 2*x_11 + 2*x_11^2 + 2*x_2'' + 2*x_2''^2 }-> s15 :|: s12 >= 0, s12 <= x_11, s13 >= 0, s13 <= x_2'', s14 >= 0, s14 <= s12 + s13, s15 >= 0, s15 <= s14, x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 5 + s16 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> s18 :|: s16 >= 0, s16 <= x_1, s17 >= 0, s17 <= x_2, s18 >= 0, s18 <= s16 + s17, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 7 + s6 + s7 + 2*x_1' + 2*x_1'^2 + 2*x_2' + 2*x_2'^2 }-> s8 :|: s6 >= 0, s6 <= x_1', s7 >= 0, s7 <= x_2', s8 >= 0, s8 <= 1 + s6 + s7, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> 1 + s4 + s5 :|: s4 >= 0, s4 <= x_1, s5 >= 0, s5 <= x_2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 4 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> 1 + s32 + s33 :|: s32 >= 0, s32 <= z, s33 >= 0, s33 <= z', z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 5 + s29 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> s31 :|: s29 >= 0, s29 <= z, s30 >= 0, s30 <= z', s31 >= 0, s31 <= s29 + s30, z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 2 }-> s2 :|: s2 >= 0, s2 <= 0, z = 0 encode_rev(z) -{ 7 + s19 + s20 + 2*x_120 + 2*x_120^2 + 2*x_213 + 2*x_213^2 }-> s21 :|: s19 >= 0, s19 <= x_120, s20 >= 0, s20 <= x_213, s21 >= 0, s21 <= 1 + s19 + s20, x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 6 + s22 + s23 + -2*z + 2*z^2 }-> s24 :|: s22 >= 0, s22 <= z - 1, s23 >= 0, s23 <= s22, s24 >= 0, s24 <= s23, z - 1 >= 0 encode_rev(z) -{ 7 + s25 + s27 + 2*x_122 + 2*x_122^2 + 2*x_214 + 2*x_214^2 }-> s28 :|: s25 >= 0, s25 <= x_122, s26 >= 0, s26 <= x_214, s27 >= 0, s27 <= s25 + s26, s28 >= 0, s28 <= s27, z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 2 }-> s3 :|: s3 >= 0, s3 <= 0, z >= 0 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [2 + 2*z + 2*z^2], size: O(n^1) [z] ---------------------------------------- (45) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_r1 after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z + z' ---------------------------------------- (46) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 2 }-> s'' :|: s'' >= 0, s'' <= 0, z = 1 + 0 encArg(z) -{ 2 }-> s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 encArg(z) -{ 10 + s10 + s9 + -6*z + 2*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 2, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 2 >= 0 encArg(z) -{ 7 + s12 + s14 + 2*x_11 + 2*x_11^2 + 2*x_2'' + 2*x_2''^2 }-> s15 :|: s12 >= 0, s12 <= x_11, s13 >= 0, s13 <= x_2'', s14 >= 0, s14 <= s12 + s13, s15 >= 0, s15 <= s14, x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 5 + s16 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> s18 :|: s16 >= 0, s16 <= x_1, s17 >= 0, s17 <= x_2, s18 >= 0, s18 <= s16 + s17, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 7 + s6 + s7 + 2*x_1' + 2*x_1'^2 + 2*x_2' + 2*x_2'^2 }-> s8 :|: s6 >= 0, s6 <= x_1', s7 >= 0, s7 <= x_2', s8 >= 0, s8 <= 1 + s6 + s7, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> 1 + s4 + s5 :|: s4 >= 0, s4 <= x_1, s5 >= 0, s5 <= x_2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 4 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> 1 + s32 + s33 :|: s32 >= 0, s32 <= z, s33 >= 0, s33 <= z', z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 5 + s29 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> s31 :|: s29 >= 0, s29 <= z, s30 >= 0, s30 <= z', s31 >= 0, s31 <= s29 + s30, z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 2 }-> s2 :|: s2 >= 0, s2 <= 0, z = 0 encode_rev(z) -{ 7 + s19 + s20 + 2*x_120 + 2*x_120^2 + 2*x_213 + 2*x_213^2 }-> s21 :|: s19 >= 0, s19 <= x_120, s20 >= 0, s20 <= x_213, s21 >= 0, s21 <= 1 + s19 + s20, x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 6 + s22 + s23 + -2*z + 2*z^2 }-> s24 :|: s22 >= 0, s22 <= z - 1, s23 >= 0, s23 <= s22, s24 >= 0, s24 <= s23, z - 1 >= 0 encode_rev(z) -{ 7 + s25 + s27 + 2*x_122 + 2*x_122^2 + 2*x_214 + 2*x_214^2 }-> s28 :|: s25 >= 0, s25 <= x_122, s26 >= 0, s26 <= x_214, s27 >= 0, s27 <= s25 + s26, s28 >= 0, s28 <= s27, z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 2 }-> s3 :|: s3 >= 0, s3 <= 0, z >= 0 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encode_r1}, {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [2 + 2*z + 2*z^2], size: O(n^1) [z] encode_r1: runtime: ?, size: O(n^1) [z + z'] ---------------------------------------- (47) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_r1 after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 5 + 3*z + 2*z^2 + 2*z' + 2*z'^2 ---------------------------------------- (48) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 2 }-> s'' :|: s'' >= 0, s'' <= 0, z = 1 + 0 encArg(z) -{ 2 }-> s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 encArg(z) -{ 10 + s10 + s9 + -6*z + 2*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 2, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 2 >= 0 encArg(z) -{ 7 + s12 + s14 + 2*x_11 + 2*x_11^2 + 2*x_2'' + 2*x_2''^2 }-> s15 :|: s12 >= 0, s12 <= x_11, s13 >= 0, s13 <= x_2'', s14 >= 0, s14 <= s12 + s13, s15 >= 0, s15 <= s14, x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 5 + s16 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> s18 :|: s16 >= 0, s16 <= x_1, s17 >= 0, s17 <= x_2, s18 >= 0, s18 <= s16 + s17, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 7 + s6 + s7 + 2*x_1' + 2*x_1'^2 + 2*x_2' + 2*x_2'^2 }-> s8 :|: s6 >= 0, s6 <= x_1', s7 >= 0, s7 <= x_2', s8 >= 0, s8 <= 1 + s6 + s7, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> 1 + s4 + s5 :|: s4 >= 0, s4 <= x_1, s5 >= 0, s5 <= x_2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 4 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> 1 + s32 + s33 :|: s32 >= 0, s32 <= z, s33 >= 0, s33 <= z', z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 5 + s29 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> s31 :|: s29 >= 0, s29 <= z, s30 >= 0, s30 <= z', s31 >= 0, s31 <= s29 + s30, z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 2 }-> s2 :|: s2 >= 0, s2 <= 0, z = 0 encode_rev(z) -{ 7 + s19 + s20 + 2*x_120 + 2*x_120^2 + 2*x_213 + 2*x_213^2 }-> s21 :|: s19 >= 0, s19 <= x_120, s20 >= 0, s20 <= x_213, s21 >= 0, s21 <= 1 + s19 + s20, x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 6 + s22 + s23 + -2*z + 2*z^2 }-> s24 :|: s22 >= 0, s22 <= z - 1, s23 >= 0, s23 <= s22, s24 >= 0, s24 <= s23, z - 1 >= 0 encode_rev(z) -{ 7 + s25 + s27 + 2*x_122 + 2*x_122^2 + 2*x_214 + 2*x_214^2 }-> s28 :|: s25 >= 0, s25 <= x_122, s26 >= 0, s26 <= x_214, s27 >= 0, s27 <= s25 + s26, s28 >= 0, s28 <= s27, z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 2 }-> s3 :|: s3 >= 0, s3 <= 0, z >= 0 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [2 + 2*z + 2*z^2], size: O(n^1) [z] encode_r1: runtime: O(n^2) [5 + 3*z + 2*z^2 + 2*z' + 2*z'^2], size: O(n^1) [z + z'] ---------------------------------------- (49) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (50) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 2 }-> s'' :|: s'' >= 0, s'' <= 0, z = 1 + 0 encArg(z) -{ 2 }-> s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 encArg(z) -{ 10 + s10 + s9 + -6*z + 2*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 2, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 2 >= 0 encArg(z) -{ 7 + s12 + s14 + 2*x_11 + 2*x_11^2 + 2*x_2'' + 2*x_2''^2 }-> s15 :|: s12 >= 0, s12 <= x_11, s13 >= 0, s13 <= x_2'', s14 >= 0, s14 <= s12 + s13, s15 >= 0, s15 <= s14, x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 5 + s16 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> s18 :|: s16 >= 0, s16 <= x_1, s17 >= 0, s17 <= x_2, s18 >= 0, s18 <= s16 + s17, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 7 + s6 + s7 + 2*x_1' + 2*x_1'^2 + 2*x_2' + 2*x_2'^2 }-> s8 :|: s6 >= 0, s6 <= x_1', s7 >= 0, s7 <= x_2', s8 >= 0, s8 <= 1 + s6 + s7, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> 1 + s4 + s5 :|: s4 >= 0, s4 <= x_1, s5 >= 0, s5 <= x_2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 4 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> 1 + s32 + s33 :|: s32 >= 0, s32 <= z, s33 >= 0, s33 <= z', z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 5 + s29 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> s31 :|: s29 >= 0, s29 <= z, s30 >= 0, s30 <= z', s31 >= 0, s31 <= s29 + s30, z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 2 }-> s2 :|: s2 >= 0, s2 <= 0, z = 0 encode_rev(z) -{ 7 + s19 + s20 + 2*x_120 + 2*x_120^2 + 2*x_213 + 2*x_213^2 }-> s21 :|: s19 >= 0, s19 <= x_120, s20 >= 0, s20 <= x_213, s21 >= 0, s21 <= 1 + s19 + s20, x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 6 + s22 + s23 + -2*z + 2*z^2 }-> s24 :|: s22 >= 0, s22 <= z - 1, s23 >= 0, s23 <= s22, s24 >= 0, s24 <= s23, z - 1 >= 0 encode_rev(z) -{ 7 + s25 + s27 + 2*x_122 + 2*x_122^2 + 2*x_214 + 2*x_214^2 }-> s28 :|: s25 >= 0, s25 <= x_122, s26 >= 0, s26 <= x_214, s27 >= 0, s27 <= s25 + s26, s28 >= 0, s28 <= s27, z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 2 }-> s3 :|: s3 >= 0, s3 <= 0, z >= 0 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [2 + 2*z + 2*z^2], size: O(n^1) [z] encode_r1: runtime: O(n^2) [5 + 3*z + 2*z^2 + 2*z' + 2*z'^2], size: O(n^1) [z + z'] ---------------------------------------- (51) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_rev after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (52) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 2 }-> s'' :|: s'' >= 0, s'' <= 0, z = 1 + 0 encArg(z) -{ 2 }-> s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 encArg(z) -{ 10 + s10 + s9 + -6*z + 2*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 2, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 2 >= 0 encArg(z) -{ 7 + s12 + s14 + 2*x_11 + 2*x_11^2 + 2*x_2'' + 2*x_2''^2 }-> s15 :|: s12 >= 0, s12 <= x_11, s13 >= 0, s13 <= x_2'', s14 >= 0, s14 <= s12 + s13, s15 >= 0, s15 <= s14, x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 5 + s16 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> s18 :|: s16 >= 0, s16 <= x_1, s17 >= 0, s17 <= x_2, s18 >= 0, s18 <= s16 + s17, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 7 + s6 + s7 + 2*x_1' + 2*x_1'^2 + 2*x_2' + 2*x_2'^2 }-> s8 :|: s6 >= 0, s6 <= x_1', s7 >= 0, s7 <= x_2', s8 >= 0, s8 <= 1 + s6 + s7, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> 1 + s4 + s5 :|: s4 >= 0, s4 <= x_1, s5 >= 0, s5 <= x_2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 4 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> 1 + s32 + s33 :|: s32 >= 0, s32 <= z, s33 >= 0, s33 <= z', z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 5 + s29 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> s31 :|: s29 >= 0, s29 <= z, s30 >= 0, s30 <= z', s31 >= 0, s31 <= s29 + s30, z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 2 }-> s2 :|: s2 >= 0, s2 <= 0, z = 0 encode_rev(z) -{ 7 + s19 + s20 + 2*x_120 + 2*x_120^2 + 2*x_213 + 2*x_213^2 }-> s21 :|: s19 >= 0, s19 <= x_120, s20 >= 0, s20 <= x_213, s21 >= 0, s21 <= 1 + s19 + s20, x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 6 + s22 + s23 + -2*z + 2*z^2 }-> s24 :|: s22 >= 0, s22 <= z - 1, s23 >= 0, s23 <= s22, s24 >= 0, s24 <= s23, z - 1 >= 0 encode_rev(z) -{ 7 + s25 + s27 + 2*x_122 + 2*x_122^2 + 2*x_214 + 2*x_214^2 }-> s28 :|: s25 >= 0, s25 <= x_122, s26 >= 0, s26 <= x_214, s27 >= 0, s27 <= s25 + s26, s28 >= 0, s28 <= s27, z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 2 }-> s3 :|: s3 >= 0, s3 <= 0, z >= 0 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encode_rev}, {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [2 + 2*z + 2*z^2], size: O(n^1) [z] encode_r1: runtime: O(n^2) [5 + 3*z + 2*z^2 + 2*z' + 2*z'^2], size: O(n^1) [z + z'] encode_rev: runtime: ?, size: O(n^1) [z] ---------------------------------------- (53) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_rev after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 24 + 13*z + 10*z^2 ---------------------------------------- (54) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 2 }-> s'' :|: s'' >= 0, s'' <= 0, z = 1 + 0 encArg(z) -{ 2 }-> s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 encArg(z) -{ 10 + s10 + s9 + -6*z + 2*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 2, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 2 >= 0 encArg(z) -{ 7 + s12 + s14 + 2*x_11 + 2*x_11^2 + 2*x_2'' + 2*x_2''^2 }-> s15 :|: s12 >= 0, s12 <= x_11, s13 >= 0, s13 <= x_2'', s14 >= 0, s14 <= s12 + s13, s15 >= 0, s15 <= s14, x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 5 + s16 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> s18 :|: s16 >= 0, s16 <= x_1, s17 >= 0, s17 <= x_2, s18 >= 0, s18 <= s16 + s17, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 7 + s6 + s7 + 2*x_1' + 2*x_1'^2 + 2*x_2' + 2*x_2'^2 }-> s8 :|: s6 >= 0, s6 <= x_1', s7 >= 0, s7 <= x_2', s8 >= 0, s8 <= 1 + s6 + s7, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> 1 + s4 + s5 :|: s4 >= 0, s4 <= x_1, s5 >= 0, s5 <= x_2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 4 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> 1 + s32 + s33 :|: s32 >= 0, s32 <= z, s33 >= 0, s33 <= z', z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 5 + s29 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> s31 :|: s29 >= 0, s29 <= z, s30 >= 0, s30 <= z', s31 >= 0, s31 <= s29 + s30, z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 2 }-> s2 :|: s2 >= 0, s2 <= 0, z = 0 encode_rev(z) -{ 7 + s19 + s20 + 2*x_120 + 2*x_120^2 + 2*x_213 + 2*x_213^2 }-> s21 :|: s19 >= 0, s19 <= x_120, s20 >= 0, s20 <= x_213, s21 >= 0, s21 <= 1 + s19 + s20, x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 6 + s22 + s23 + -2*z + 2*z^2 }-> s24 :|: s22 >= 0, s22 <= z - 1, s23 >= 0, s23 <= s22, s24 >= 0, s24 <= s23, z - 1 >= 0 encode_rev(z) -{ 7 + s25 + s27 + 2*x_122 + 2*x_122^2 + 2*x_214 + 2*x_214^2 }-> s28 :|: s25 >= 0, s25 <= x_122, s26 >= 0, s26 <= x_214, s27 >= 0, s27 <= s25 + s26, s28 >= 0, s28 <= s27, z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 2 }-> s3 :|: s3 >= 0, s3 <= 0, z >= 0 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [2 + 2*z + 2*z^2], size: O(n^1) [z] encode_r1: runtime: O(n^2) [5 + 3*z + 2*z^2 + 2*z' + 2*z'^2], size: O(n^1) [z + z'] encode_rev: runtime: O(n^2) [24 + 13*z + 10*z^2], size: O(n^1) [z] ---------------------------------------- (55) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 2 }-> s'' :|: s'' >= 0, s'' <= 0, z = 1 + 0 encArg(z) -{ 2 }-> s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 encArg(z) -{ 10 + s10 + s9 + -6*z + 2*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 2, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 2 >= 0 encArg(z) -{ 7 + s12 + s14 + 2*x_11 + 2*x_11^2 + 2*x_2'' + 2*x_2''^2 }-> s15 :|: s12 >= 0, s12 <= x_11, s13 >= 0, s13 <= x_2'', s14 >= 0, s14 <= s12 + s13, s15 >= 0, s15 <= s14, x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 5 + s16 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> s18 :|: s16 >= 0, s16 <= x_1, s17 >= 0, s17 <= x_2, s18 >= 0, s18 <= s16 + s17, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 7 + s6 + s7 + 2*x_1' + 2*x_1'^2 + 2*x_2' + 2*x_2'^2 }-> s8 :|: s6 >= 0, s6 <= x_1', s7 >= 0, s7 <= x_2', s8 >= 0, s8 <= 1 + s6 + s7, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> 1 + s4 + s5 :|: s4 >= 0, s4 <= x_1, s5 >= 0, s5 <= x_2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 4 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> 1 + s32 + s33 :|: s32 >= 0, s32 <= z, s33 >= 0, s33 <= z', z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 5 + s29 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> s31 :|: s29 >= 0, s29 <= z, s30 >= 0, s30 <= z', s31 >= 0, s31 <= s29 + s30, z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 2 }-> s2 :|: s2 >= 0, s2 <= 0, z = 0 encode_rev(z) -{ 7 + s19 + s20 + 2*x_120 + 2*x_120^2 + 2*x_213 + 2*x_213^2 }-> s21 :|: s19 >= 0, s19 <= x_120, s20 >= 0, s20 <= x_213, s21 >= 0, s21 <= 1 + s19 + s20, x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 6 + s22 + s23 + -2*z + 2*z^2 }-> s24 :|: s22 >= 0, s22 <= z - 1, s23 >= 0, s23 <= s22, s24 >= 0, s24 <= s23, z - 1 >= 0 encode_rev(z) -{ 7 + s25 + s27 + 2*x_122 + 2*x_122^2 + 2*x_214 + 2*x_214^2 }-> s28 :|: s25 >= 0, s25 <= x_122, s26 >= 0, s26 <= x_214, s27 >= 0, s27 <= s25 + s26, s28 >= 0, s28 <= s27, z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 2 }-> s3 :|: s3 >= 0, s3 <= 0, z >= 0 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [2 + 2*z + 2*z^2], size: O(n^1) [z] encode_r1: runtime: O(n^2) [5 + 3*z + 2*z^2 + 2*z' + 2*z'^2], size: O(n^1) [z + z'] encode_rev: runtime: O(n^2) [24 + 13*z + 10*z^2], size: O(n^1) [z] ---------------------------------------- (57) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_cons after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z + z' ---------------------------------------- (58) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 2 }-> s'' :|: s'' >= 0, s'' <= 0, z = 1 + 0 encArg(z) -{ 2 }-> s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 encArg(z) -{ 10 + s10 + s9 + -6*z + 2*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 2, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 2 >= 0 encArg(z) -{ 7 + s12 + s14 + 2*x_11 + 2*x_11^2 + 2*x_2'' + 2*x_2''^2 }-> s15 :|: s12 >= 0, s12 <= x_11, s13 >= 0, s13 <= x_2'', s14 >= 0, s14 <= s12 + s13, s15 >= 0, s15 <= s14, x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 5 + s16 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> s18 :|: s16 >= 0, s16 <= x_1, s17 >= 0, s17 <= x_2, s18 >= 0, s18 <= s16 + s17, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 7 + s6 + s7 + 2*x_1' + 2*x_1'^2 + 2*x_2' + 2*x_2'^2 }-> s8 :|: s6 >= 0, s6 <= x_1', s7 >= 0, s7 <= x_2', s8 >= 0, s8 <= 1 + s6 + s7, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> 1 + s4 + s5 :|: s4 >= 0, s4 <= x_1, s5 >= 0, s5 <= x_2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 4 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> 1 + s32 + s33 :|: s32 >= 0, s32 <= z, s33 >= 0, s33 <= z', z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 5 + s29 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> s31 :|: s29 >= 0, s29 <= z, s30 >= 0, s30 <= z', s31 >= 0, s31 <= s29 + s30, z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 2 }-> s2 :|: s2 >= 0, s2 <= 0, z = 0 encode_rev(z) -{ 7 + s19 + s20 + 2*x_120 + 2*x_120^2 + 2*x_213 + 2*x_213^2 }-> s21 :|: s19 >= 0, s19 <= x_120, s20 >= 0, s20 <= x_213, s21 >= 0, s21 <= 1 + s19 + s20, x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 6 + s22 + s23 + -2*z + 2*z^2 }-> s24 :|: s22 >= 0, s22 <= z - 1, s23 >= 0, s23 <= s22, s24 >= 0, s24 <= s23, z - 1 >= 0 encode_rev(z) -{ 7 + s25 + s27 + 2*x_122 + 2*x_122^2 + 2*x_214 + 2*x_214^2 }-> s28 :|: s25 >= 0, s25 <= x_122, s26 >= 0, s26 <= x_214, s27 >= 0, s27 <= s25 + s26, s28 >= 0, s28 <= s27, z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 2 }-> s3 :|: s3 >= 0, s3 <= 0, z >= 0 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: {encode_cons} Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [2 + 2*z + 2*z^2], size: O(n^1) [z] encode_r1: runtime: O(n^2) [5 + 3*z + 2*z^2 + 2*z' + 2*z'^2], size: O(n^1) [z + z'] encode_rev: runtime: O(n^2) [24 + 13*z + 10*z^2], size: O(n^1) [z] encode_cons: runtime: ?, size: O(n^1) [1 + z + z'] ---------------------------------------- (59) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_cons after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 4 + 2*z + 2*z^2 + 2*z' + 2*z'^2 ---------------------------------------- (60) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 2 }-> s'' :|: s'' >= 0, s'' <= 0, z = 1 + 0 encArg(z) -{ 2 }-> s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 encArg(z) -{ 10 + s10 + s9 + -6*z + 2*z^2 }-> s11 :|: s9 >= 0, s9 <= z - 2, s10 >= 0, s10 <= s9, s11 >= 0, s11 <= s10, z - 2 >= 0 encArg(z) -{ 7 + s12 + s14 + 2*x_11 + 2*x_11^2 + 2*x_2'' + 2*x_2''^2 }-> s15 :|: s12 >= 0, s12 <= x_11, s13 >= 0, s13 <= x_2'', s14 >= 0, s14 <= s12 + s13, s15 >= 0, s15 <= s14, x_11 >= 0, z = 1 + (1 + x_11 + x_2''), x_2'' >= 0 encArg(z) -{ 5 + s16 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> s18 :|: s16 >= 0, s16 <= x_1, s17 >= 0, s17 <= x_2, s18 >= 0, s18 <= s16 + s17, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 7 + s6 + s7 + 2*x_1' + 2*x_1'^2 + 2*x_2' + 2*x_2'^2 }-> s8 :|: s6 >= 0, s6 <= x_1', s7 >= 0, s7 <= x_2', s8 >= 0, s8 <= 1 + s6 + s7, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 4 + 2*x_1 + 2*x_1^2 + 2*x_2 + 2*x_2^2 }-> 1 + s4 + s5 :|: s4 >= 0, s4 <= x_1, s5 >= 0, s5 <= x_2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 4 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> 1 + s32 + s33 :|: s32 >= 0, s32 <= z, s33 >= 0, s33 <= z', z >= 0, z' >= 0 encode_empty -{ 0 }-> 0 :|: encode_r1(z, z') -{ 5 + s29 + 2*z + 2*z^2 + 2*z' + 2*z'^2 }-> s31 :|: s29 >= 0, s29 <= z, s30 >= 0, s30 <= z', s31 >= 0, s31 <= s29 + s30, z >= 0, z' >= 0 encode_r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_rev(z) -{ 2 }-> s2 :|: s2 >= 0, s2 <= 0, z = 0 encode_rev(z) -{ 7 + s19 + s20 + 2*x_120 + 2*x_120^2 + 2*x_213 + 2*x_213^2 }-> s21 :|: s19 >= 0, s19 <= x_120, s20 >= 0, s20 <= x_213, s21 >= 0, s21 <= 1 + s19 + s20, x_120 >= 0, x_213 >= 0, z = 1 + x_120 + x_213 encode_rev(z) -{ 6 + s22 + s23 + -2*z + 2*z^2 }-> s24 :|: s22 >= 0, s22 <= z - 1, s23 >= 0, s23 <= s22, s24 >= 0, s24 <= s23, z - 1 >= 0 encode_rev(z) -{ 7 + s25 + s27 + 2*x_122 + 2*x_122^2 + 2*x_214 + 2*x_214^2 }-> s28 :|: s25 >= 0, s25 <= x_122, s26 >= 0, s26 <= x_214, s27 >= 0, s27 <= s25 + s26, s28 >= 0, s28 <= s27, z = 1 + x_122 + x_214, x_214 >= 0, x_122 >= 0 encode_rev(z) -{ 2 }-> s3 :|: s3 >= 0, s3 <= 0, z >= 0 encode_rev(z) -{ 0 }-> 0 :|: z >= 0 r1(z, z') -{ 2 + k }-> s' :|: s' >= 0, s' <= k + (1 + x + z'), z' >= 0, x >= 0, k >= 0, z = 1 + x + k r1(z, z') -{ 1 }-> z' :|: z' >= 0, z = 0 r1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 rev(z) -{ 2 + z }-> s :|: s >= 0, s <= z + 0, z >= 0 Function symbols to be analyzed: Previous analysis results are: r1: runtime: O(n^1) [1 + z], size: O(n^1) [z + z'] encode_empty: runtime: O(1) [0], size: O(1) [0] rev: runtime: O(n^1) [2 + z], size: O(n^1) [z] encArg: runtime: O(n^2) [2 + 2*z + 2*z^2], size: O(n^1) [z] encode_r1: runtime: O(n^2) [5 + 3*z + 2*z^2 + 2*z' + 2*z'^2], size: O(n^1) [z + z'] encode_rev: runtime: O(n^2) [24 + 13*z + 10*z^2], size: O(n^1) [z] encode_cons: runtime: O(n^2) [4 + 2*z + 2*z^2 + 2*z' + 2*z'^2], size: O(n^1) [1 + z + z'] ---------------------------------------- (61) FinalProof (FINISHED) Computed overall runtime complexity ---------------------------------------- (62) BOUNDS(1, n^2) ---------------------------------------- (63) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (64) 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: rev(ls) -> r1(ls, empty) r1(empty, a) -> a r1(cons(x, k), a) -> r1(k, cons(x, a)) The (relative) TRS S consists of the following rules: encArg(empty) -> empty encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_rev(x_1)) -> rev(encArg(x_1)) encArg(cons_r1(x_1, x_2)) -> r1(encArg(x_1), encArg(x_2)) encode_rev(x_1) -> rev(encArg(x_1)) encode_r1(x_1, x_2) -> r1(encArg(x_1), encArg(x_2)) encode_empty -> empty encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) Rewrite Strategy: INNERMOST ---------------------------------------- (65) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (66) Obligation: Innermost TRS: Rules: rev(ls) -> r1(ls, empty) r1(empty, a) -> a r1(cons(x, k), a) -> r1(k, cons(x, a)) encArg(empty) -> empty encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_rev(x_1)) -> rev(encArg(x_1)) encArg(cons_r1(x_1, x_2)) -> r1(encArg(x_1), encArg(x_2)) encode_rev(x_1) -> rev(encArg(x_1)) encode_r1(x_1, x_2) -> r1(encArg(x_1), encArg(x_2)) encode_empty -> empty encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) Types: rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 empty :: empty:cons:cons_rev:cons_r1 cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encArg :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_empty :: empty:cons:cons_rev:cons_r1 encode_cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 hole_empty:cons:cons_rev:cons_r11_0 :: empty:cons:cons_rev:cons_r1 gen_empty:cons:cons_rev:cons_r12_0 :: Nat -> empty:cons:cons_rev:cons_r1 ---------------------------------------- (67) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: r1, encArg They will be analysed ascendingly in the following order: r1 < encArg ---------------------------------------- (68) Obligation: Innermost TRS: Rules: rev(ls) -> r1(ls, empty) r1(empty, a) -> a r1(cons(x, k), a) -> r1(k, cons(x, a)) encArg(empty) -> empty encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_rev(x_1)) -> rev(encArg(x_1)) encArg(cons_r1(x_1, x_2)) -> r1(encArg(x_1), encArg(x_2)) encode_rev(x_1) -> rev(encArg(x_1)) encode_r1(x_1, x_2) -> r1(encArg(x_1), encArg(x_2)) encode_empty -> empty encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) Types: rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 empty :: empty:cons:cons_rev:cons_r1 cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encArg :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_empty :: empty:cons:cons_rev:cons_r1 encode_cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 hole_empty:cons:cons_rev:cons_r11_0 :: empty:cons:cons_rev:cons_r1 gen_empty:cons:cons_rev:cons_r12_0 :: Nat -> empty:cons:cons_rev:cons_r1 Generator Equations: gen_empty:cons:cons_rev:cons_r12_0(0) <=> empty gen_empty:cons:cons_rev:cons_r12_0(+(x, 1)) <=> cons(empty, gen_empty:cons:cons_rev:cons_r12_0(x)) The following defined symbols remain to be analysed: r1, encArg They will be analysed ascendingly in the following order: r1 < encArg ---------------------------------------- (69) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: r1(gen_empty:cons:cons_rev:cons_r12_0(n4_0), gen_empty:cons:cons_rev:cons_r12_0(b)) -> gen_empty:cons:cons_rev:cons_r12_0(+(n4_0, b)), rt in Omega(1 + n4_0) Induction Base: r1(gen_empty:cons:cons_rev:cons_r12_0(0), gen_empty:cons:cons_rev:cons_r12_0(b)) ->_R^Omega(1) gen_empty:cons:cons_rev:cons_r12_0(b) Induction Step: r1(gen_empty:cons:cons_rev:cons_r12_0(+(n4_0, 1)), gen_empty:cons:cons_rev:cons_r12_0(b)) ->_R^Omega(1) r1(gen_empty:cons:cons_rev:cons_r12_0(n4_0), cons(empty, gen_empty:cons:cons_rev:cons_r12_0(b))) ->_IH gen_empty:cons:cons_rev:cons_r12_0(+(+(b, 1), c5_0)) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (70) Complex Obligation (BEST) ---------------------------------------- (71) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: rev(ls) -> r1(ls, empty) r1(empty, a) -> a r1(cons(x, k), a) -> r1(k, cons(x, a)) encArg(empty) -> empty encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_rev(x_1)) -> rev(encArg(x_1)) encArg(cons_r1(x_1, x_2)) -> r1(encArg(x_1), encArg(x_2)) encode_rev(x_1) -> rev(encArg(x_1)) encode_r1(x_1, x_2) -> r1(encArg(x_1), encArg(x_2)) encode_empty -> empty encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) Types: rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 empty :: empty:cons:cons_rev:cons_r1 cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encArg :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_empty :: empty:cons:cons_rev:cons_r1 encode_cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 hole_empty:cons:cons_rev:cons_r11_0 :: empty:cons:cons_rev:cons_r1 gen_empty:cons:cons_rev:cons_r12_0 :: Nat -> empty:cons:cons_rev:cons_r1 Generator Equations: gen_empty:cons:cons_rev:cons_r12_0(0) <=> empty gen_empty:cons:cons_rev:cons_r12_0(+(x, 1)) <=> cons(empty, gen_empty:cons:cons_rev:cons_r12_0(x)) The following defined symbols remain to be analysed: r1, encArg They will be analysed ascendingly in the following order: r1 < encArg ---------------------------------------- (72) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (73) BOUNDS(n^1, INF) ---------------------------------------- (74) Obligation: Innermost TRS: Rules: rev(ls) -> r1(ls, empty) r1(empty, a) -> a r1(cons(x, k), a) -> r1(k, cons(x, a)) encArg(empty) -> empty encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_rev(x_1)) -> rev(encArg(x_1)) encArg(cons_r1(x_1, x_2)) -> r1(encArg(x_1), encArg(x_2)) encode_rev(x_1) -> rev(encArg(x_1)) encode_r1(x_1, x_2) -> r1(encArg(x_1), encArg(x_2)) encode_empty -> empty encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) Types: rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 empty :: empty:cons:cons_rev:cons_r1 cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encArg :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 cons_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_rev :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_r1 :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 encode_empty :: empty:cons:cons_rev:cons_r1 encode_cons :: empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 -> empty:cons:cons_rev:cons_r1 hole_empty:cons:cons_rev:cons_r11_0 :: empty:cons:cons_rev:cons_r1 gen_empty:cons:cons_rev:cons_r12_0 :: Nat -> empty:cons:cons_rev:cons_r1 Lemmas: r1(gen_empty:cons:cons_rev:cons_r12_0(n4_0), gen_empty:cons:cons_rev:cons_r12_0(b)) -> gen_empty:cons:cons_rev:cons_r12_0(+(n4_0, b)), rt in Omega(1 + n4_0) Generator Equations: gen_empty:cons:cons_rev:cons_r12_0(0) <=> empty gen_empty:cons:cons_rev:cons_r12_0(+(x, 1)) <=> cons(empty, gen_empty:cons:cons_rev:cons_r12_0(x)) The following defined symbols remain to be analysed: encArg ---------------------------------------- (75) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: encArg(gen_empty:cons:cons_rev:cons_r12_0(n646_0)) -> gen_empty:cons:cons_rev:cons_r12_0(n646_0), rt in Omega(0) Induction Base: encArg(gen_empty:cons:cons_rev:cons_r12_0(0)) ->_R^Omega(0) empty Induction Step: encArg(gen_empty:cons:cons_rev:cons_r12_0(+(n646_0, 1))) ->_R^Omega(0) cons(encArg(empty), encArg(gen_empty:cons:cons_rev:cons_r12_0(n646_0))) ->_R^Omega(0) cons(empty, encArg(gen_empty:cons:cons_rev:cons_r12_0(n646_0))) ->_IH cons(empty, gen_empty:cons:cons_rev:cons_r12_0(c647_0)) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (76) BOUNDS(1, INF)