WORST_CASE(Omega(n^1), O(n^3)) proof of /export/starexec/sandbox2/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), 200 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), 559 ms] (12) CpxTypedWeightedCompleteTrs (13) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (14) CpxRNTS (15) InliningProof [UPPER BOUND(ID), 422 ms] (16) CpxRNTS (17) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (18) CpxRNTS (19) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CpxRNTS (21) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (22) CpxRNTS (23) IntTrsBoundProof [UPPER BOUND(ID), 64 ms] (24) CpxRNTS (25) IntTrsBoundProof [UPPER BOUND(ID), 4 ms] (26) CpxRNTS (27) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (28) CpxRNTS (29) IntTrsBoundProof [UPPER BOUND(ID), 48 ms] (30) CpxRNTS (31) IntTrsBoundProof [UPPER BOUND(ID), 22 ms] (32) CpxRNTS (33) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (34) CpxRNTS (35) IntTrsBoundProof [UPPER BOUND(ID), 292 ms] (36) CpxRNTS (37) IntTrsBoundProof [UPPER BOUND(ID), 126 ms] (38) CpxRNTS (39) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (40) CpxRNTS (41) IntTrsBoundProof [UPPER BOUND(ID), 27 ms] (42) CpxRNTS (43) IntTrsBoundProof [UPPER BOUND(ID), 3 ms] (44) CpxRNTS (45) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (46) CpxRNTS (47) IntTrsBoundProof [UPPER BOUND(ID), 127 ms] (48) CpxRNTS (49) IntTrsBoundProof [UPPER BOUND(ID), 62 ms] (50) CpxRNTS (51) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (52) CpxRNTS (53) IntTrsBoundProof [UPPER BOUND(ID), 1726 ms] (54) CpxRNTS (55) IntTrsBoundProof [UPPER BOUND(ID), 1009 ms] (56) CpxRNTS (57) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (58) CpxRNTS (59) IntTrsBoundProof [UPPER BOUND(ID), 799 ms] (60) CpxRNTS (61) IntTrsBoundProof [UPPER BOUND(ID), 309 ms] (62) CpxRNTS (63) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (64) CpxRNTS (65) IntTrsBoundProof [UPPER BOUND(ID), 308 ms] (66) CpxRNTS (67) IntTrsBoundProof [UPPER BOUND(ID), 87 ms] (68) CpxRNTS (69) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (70) CpxRNTS (71) IntTrsBoundProof [UPPER BOUND(ID), 117 ms] (72) CpxRNTS (73) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (74) CpxRNTS (75) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (76) CpxRNTS (77) IntTrsBoundProof [UPPER BOUND(ID), 87 ms] (78) CpxRNTS (79) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (80) CpxRNTS (81) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (82) CpxRNTS (83) IntTrsBoundProof [UPPER BOUND(ID), 167 ms] (84) CpxRNTS (85) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (86) CpxRNTS (87) FinalProof [FINISHED, 0 ms] (88) BOUNDS(1, n^3) (89) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (90) CpxRelTRS (91) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (92) typed CpxTrs (93) OrderProof [LOWER BOUND(ID), 3 ms] (94) typed CpxTrs (95) RewriteLemmaProof [LOWER BOUND(ID), 495 ms] (96) BEST (97) proven lower bound (98) LowerBoundPropagationProof [FINISHED, 0 ms] (99) BOUNDS(n^1, INF) (100) typed CpxTrs (101) RewriteLemmaProof [LOWER BOUND(ID), 49 ms] (102) BOUNDS(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: cond(true, x, y) -> cond(gr(x, y), p(x), y) gr(0, x) -> false gr(s(x), 0) -> true gr(s(x), s(y)) -> gr(x, y) p(0) -> 0 p(s(x)) -> x 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(true) -> true encArg(0) -> 0 encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(cons_cond(x_1, x_2, x_3)) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_gr(x_1, x_2)) -> gr(encArg(x_1), encArg(x_2)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encode_cond(x_1, x_2, x_3) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_gr(x_1, x_2) -> gr(encArg(x_1), encArg(x_2)) encode_p(x_1) -> p(encArg(x_1)) encode_0 -> 0 encode_false -> false 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: cond(true, x, y) -> cond(gr(x, y), p(x), y) gr(0, x) -> false gr(s(x), 0) -> true gr(s(x), s(y)) -> gr(x, y) p(0) -> 0 p(s(x)) -> x The (relative) TRS S consists of the following rules: encArg(true) -> true encArg(0) -> 0 encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(cons_cond(x_1, x_2, x_3)) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_gr(x_1, x_2)) -> gr(encArg(x_1), encArg(x_2)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encode_cond(x_1, x_2, x_3) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_gr(x_1, x_2) -> gr(encArg(x_1), encArg(x_2)) encode_p(x_1) -> p(encArg(x_1)) encode_0 -> 0 encode_false -> false 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: cond(true, x, y) -> cond(gr(x, y), p(x), y) gr(0, x) -> false gr(s(x), 0) -> true gr(s(x), s(y)) -> gr(x, y) p(0) -> 0 p(s(x)) -> x The (relative) TRS S consists of the following rules: encArg(true) -> true encArg(0) -> 0 encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(cons_cond(x_1, x_2, x_3)) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_gr(x_1, x_2)) -> gr(encArg(x_1), encArg(x_2)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encode_cond(x_1, x_2, x_3) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_gr(x_1, x_2) -> gr(encArg(x_1), encArg(x_2)) encode_p(x_1) -> p(encArg(x_1)) encode_0 -> 0 encode_false -> false encode_s(x_1) -> s(encArg(x_1)) 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^3). The TRS R consists of the following rules: cond(true, x, y) -> cond(gr(x, y), p(x), y) [1] gr(0, x) -> false [1] gr(s(x), 0) -> true [1] gr(s(x), s(y)) -> gr(x, y) [1] p(0) -> 0 [1] p(s(x)) -> x [1] encArg(true) -> true [0] encArg(0) -> 0 [0] encArg(false) -> false [0] encArg(s(x_1)) -> s(encArg(x_1)) [0] encArg(cons_cond(x_1, x_2, x_3)) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(cons_gr(x_1, x_2)) -> gr(encArg(x_1), encArg(x_2)) [0] encArg(cons_p(x_1)) -> p(encArg(x_1)) [0] encode_cond(x_1, x_2, x_3) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_true -> true [0] encode_gr(x_1, x_2) -> gr(encArg(x_1), encArg(x_2)) [0] encode_p(x_1) -> p(encArg(x_1)) [0] encode_0 -> 0 [0] encode_false -> false [0] encode_s(x_1) -> s(encArg(x_1)) [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: cond(true, x, y) -> cond(gr(x, y), p(x), y) [1] gr(0, x) -> false [1] gr(s(x), 0) -> true [1] gr(s(x), s(y)) -> gr(x, y) [1] p(0) -> 0 [1] p(s(x)) -> x [1] encArg(true) -> true [0] encArg(0) -> 0 [0] encArg(false) -> false [0] encArg(s(x_1)) -> s(encArg(x_1)) [0] encArg(cons_cond(x_1, x_2, x_3)) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(cons_gr(x_1, x_2)) -> gr(encArg(x_1), encArg(x_2)) [0] encArg(cons_p(x_1)) -> p(encArg(x_1)) [0] encode_cond(x_1, x_2, x_3) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_true -> true [0] encode_gr(x_1, x_2) -> gr(encArg(x_1), encArg(x_2)) [0] encode_p(x_1) -> p(encArg(x_1)) [0] encode_0 -> 0 [0] encode_false -> false [0] encode_s(x_1) -> s(encArg(x_1)) [0] The TRS has the following type information: cond :: true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p true :: true:0:false:s:cons_cond:cons_gr:cons_p gr :: true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p p :: true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p 0 :: true:0:false:s:cons_cond:cons_gr:cons_p false :: true:0:false:s:cons_cond:cons_gr:cons_p s :: true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p encArg :: true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p cons_cond :: true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p cons_gr :: true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p cons_p :: true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p encode_cond :: true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p encode_true :: true:0:false:s:cons_cond:cons_gr:cons_p encode_gr :: true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p encode_p :: true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p encode_0 :: true:0:false:s:cons_cond:cons_gr:cons_p encode_false :: true:0:false:s:cons_cond:cons_gr:cons_p encode_s :: true:0:false:s:cons_cond:cons_gr:cons_p -> true:0:false:s:cons_cond:cons_gr:cons_p 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: gr_2 p_1 cond_3 encArg_1 encode_cond_3 encode_true encode_gr_2 encode_p_1 encode_0 encode_false encode_s_1 Due to the following rules being added: encArg(v0) -> null_encArg [0] encode_cond(v0, v1, v2) -> null_encode_cond [0] encode_true -> null_encode_true [0] encode_gr(v0, v1) -> null_encode_gr [0] encode_p(v0) -> null_encode_p [0] encode_0 -> null_encode_0 [0] encode_false -> null_encode_false [0] encode_s(v0) -> null_encode_s [0] gr(v0, v1) -> null_gr [0] p(v0) -> null_p [0] cond(v0, v1, v2) -> null_cond [0] And the following fresh constants: null_encArg, null_encode_cond, null_encode_true, null_encode_gr, null_encode_p, null_encode_0, null_encode_false, null_encode_s, null_gr, null_p, null_cond ---------------------------------------- (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: cond(true, x, y) -> cond(gr(x, y), p(x), y) [1] gr(0, x) -> false [1] gr(s(x), 0) -> true [1] gr(s(x), s(y)) -> gr(x, y) [1] p(0) -> 0 [1] p(s(x)) -> x [1] encArg(true) -> true [0] encArg(0) -> 0 [0] encArg(false) -> false [0] encArg(s(x_1)) -> s(encArg(x_1)) [0] encArg(cons_cond(x_1, x_2, x_3)) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(cons_gr(x_1, x_2)) -> gr(encArg(x_1), encArg(x_2)) [0] encArg(cons_p(x_1)) -> p(encArg(x_1)) [0] encode_cond(x_1, x_2, x_3) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_true -> true [0] encode_gr(x_1, x_2) -> gr(encArg(x_1), encArg(x_2)) [0] encode_p(x_1) -> p(encArg(x_1)) [0] encode_0 -> 0 [0] encode_false -> false [0] encode_s(x_1) -> s(encArg(x_1)) [0] encArg(v0) -> null_encArg [0] encode_cond(v0, v1, v2) -> null_encode_cond [0] encode_true -> null_encode_true [0] encode_gr(v0, v1) -> null_encode_gr [0] encode_p(v0) -> null_encode_p [0] encode_0 -> null_encode_0 [0] encode_false -> null_encode_false [0] encode_s(v0) -> null_encode_s [0] gr(v0, v1) -> null_gr [0] p(v0) -> null_p [0] cond(v0, v1, v2) -> null_cond [0] The TRS has the following type information: cond :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond true :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond gr :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond p :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond 0 :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond false :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond s :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encArg :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond cons_cond :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond cons_gr :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond cons_p :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_cond :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_true :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_gr :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_p :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_0 :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_false :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_s :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encArg :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_cond :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_true :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_gr :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_p :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_0 :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_false :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_s :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_gr :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_p :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_cond :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond 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: cond(true, 0, y) -> cond(false, 0, y) [3] cond(true, 0, y) -> cond(false, null_p, y) [2] cond(true, s(x'), 0) -> cond(true, x', 0) [3] cond(true, s(x'), 0) -> cond(true, null_p, 0) [2] cond(true, s(x''), s(y')) -> cond(gr(x'', y'), x'', s(y')) [3] cond(true, s(x''), s(y')) -> cond(gr(x'', y'), null_p, s(y')) [2] cond(true, 0, y) -> cond(null_gr, 0, y) [2] cond(true, s(x1), y) -> cond(null_gr, x1, y) [2] cond(true, x, y) -> cond(null_gr, null_p, y) [1] gr(0, x) -> false [1] gr(s(x), 0) -> true [1] gr(s(x), s(y)) -> gr(x, y) [1] p(0) -> 0 [1] p(s(x)) -> x [1] encArg(true) -> true [0] encArg(0) -> 0 [0] encArg(false) -> false [0] encArg(s(x_1)) -> s(encArg(x_1)) [0] encArg(cons_cond(x_1, x_2, x_3)) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(cons_gr(x_1, x_2)) -> gr(encArg(x_1), encArg(x_2)) [0] encArg(cons_p(true)) -> p(true) [0] encArg(cons_p(0)) -> p(0) [0] encArg(cons_p(false)) -> p(false) [0] encArg(cons_p(s(x_1327))) -> p(s(encArg(x_1327))) [0] encArg(cons_p(cons_cond(x_1328, x_2163, x_381))) -> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) [0] encArg(cons_p(cons_gr(x_1329, x_2164))) -> p(gr(encArg(x_1329), encArg(x_2164))) [0] encArg(cons_p(cons_p(x_1330))) -> p(p(encArg(x_1330))) [0] encArg(cons_p(x_1)) -> p(null_encArg) [0] encode_cond(x_1, x_2, x_3) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_true -> true [0] encode_gr(x_1, x_2) -> gr(encArg(x_1), encArg(x_2)) [0] encode_p(true) -> p(true) [0] encode_p(0) -> p(0) [0] encode_p(false) -> p(false) [0] encode_p(s(x_1659)) -> p(s(encArg(x_1659))) [0] encode_p(cons_cond(x_1660, x_2329, x_3164)) -> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) [0] encode_p(cons_gr(x_1661, x_2330)) -> p(gr(encArg(x_1661), encArg(x_2330))) [0] encode_p(cons_p(x_1662)) -> p(p(encArg(x_1662))) [0] encode_p(x_1) -> p(null_encArg) [0] encode_0 -> 0 [0] encode_false -> false [0] encode_s(x_1) -> s(encArg(x_1)) [0] encArg(v0) -> null_encArg [0] encode_cond(v0, v1, v2) -> null_encode_cond [0] encode_true -> null_encode_true [0] encode_gr(v0, v1) -> null_encode_gr [0] encode_p(v0) -> null_encode_p [0] encode_0 -> null_encode_0 [0] encode_false -> null_encode_false [0] encode_s(v0) -> null_encode_s [0] gr(v0, v1) -> null_gr [0] p(v0) -> null_p [0] cond(v0, v1, v2) -> null_cond [0] The TRS has the following type information: cond :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond true :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond gr :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond p :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond 0 :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond false :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond s :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encArg :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond cons_cond :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond cons_gr :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond cons_p :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_cond :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_true :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_gr :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_p :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_0 :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_false :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond encode_s :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond -> true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encArg :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_cond :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_true :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_gr :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_p :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_0 :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_false :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_encode_s :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_gr :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_p :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond null_cond :: true:0:false:s:cons_cond:cons_gr:cons_p:null_encArg:null_encode_cond:null_encode_true:null_encode_gr:null_encode_p:null_encode_0:null_encode_false:null_encode_s:null_gr:null_p:null_cond 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: true => 2 0 => 0 false => 1 null_encArg => 0 null_encode_cond => 0 null_encode_true => 0 null_encode_gr => 0 null_encode_p => 0 null_encode_0 => 0 null_encode_false => 0 null_encode_s => 0 null_gr => 0 null_p => 0 null_cond => 0 ---------------------------------------- (14) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 3 }-> cond(gr(x'', y'), x'', 1 + y') :|: z = 2, z' = 1 + x'', y' >= 0, x'' >= 0, z'' = 1 + y' cond(z, z', z'') -{ 2 }-> cond(gr(x'', y'), 0, 1 + y') :|: z = 2, z' = 1 + x'', y' >= 0, x'' >= 0, z'' = 1 + y' cond(z, z', z'') -{ 3 }-> cond(2, x', 0) :|: z = 2, z'' = 0, z' = 1 + x', x' >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' = 1 + x', x' >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, y) :|: z = 2, z'' = y, y >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, y) :|: z = 2, z'' = y, y >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, x1, y) :|: z = 2, x1 >= 0, z'' = y, y >= 0, z' = 1 + x1 cond(z, z', z'') -{ 2 }-> cond(0, 0, y) :|: z = 2, z'' = y, y >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, y) :|: z = 2, z' = x, z'' = y, x >= 0, y >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 encArg(z) -{ 0 }-> p(p(encArg(x_1330))) :|: z = 1 + (1 + x_1330), x_1330 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> p(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> p(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> p(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(x_1327)) :|: x_1327 >= 0, z = 1 + (1 + x_1327) encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) :|: z = 1 + x_1, x_1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, x_3 >= 0, x_2 >= 0, z = x_1, z' = x_2, z'' = x_3 encode_cond(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_gr(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_p(z) -{ 0 }-> p(p(encArg(x_1662))) :|: x_1662 >= 0, z = 1 + x_1662 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(2) :|: z = 2 encode_p(z) -{ 0 }-> p(1) :|: z = 1 encode_p(z) -{ 0 }-> p(0) :|: z = 0 encode_p(z) -{ 0 }-> p(0) :|: x_1 >= 0, z = x_1 encode_p(z) -{ 0 }-> p(1 + encArg(x_1659)) :|: z = 1 + x_1659, x_1659 >= 0 encode_p(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_s(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_s(z) -{ 0 }-> 1 + encArg(x_1) :|: x_1 >= 0, z = x_1 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(x, y) :|: z' = 1 + y, x >= 0, y >= 0, z = 1 + x gr(z, z') -{ 1 }-> 2 :|: x >= 0, z = 1 + x, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' = x, x >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 p(z) -{ 1 }-> x :|: x >= 0, z = 1 + x p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 ---------------------------------------- (15) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: p(z) -{ 1 }-> x :|: x >= 0, z = 1 + x p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 3 }-> cond(gr(x'', y'), x'', 1 + y') :|: z = 2, z' = 1 + x'', y' >= 0, x'' >= 0, z'' = 1 + y' cond(z, z', z'') -{ 2 }-> cond(gr(x'', y'), 0, 1 + y') :|: z = 2, z' = 1 + x'', y' >= 0, x'' >= 0, z'' = 1 + y' cond(z, z', z'') -{ 3 }-> cond(2, x', 0) :|: z = 2, z'' = 0, z' = 1 + x', x' >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' = 1 + x', x' >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, y) :|: z = 2, z'' = y, y >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, y) :|: z = 2, z'' = y, y >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, x1, y) :|: z = 2, x1 >= 0, z'' = y, y >= 0, z' = 1 + x1 cond(z, z', z'') -{ 2 }-> cond(0, 0, y) :|: z = 2, z'' = y, y >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, y) :|: z = 2, z' = x, z'' = y, x >= 0, y >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(x_1330))) :|: z = 1 + (1 + x_1330), x_1330 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(x_1327)) :|: x_1327 >= 0, z = 1 + (1 + x_1327) encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + x_1, x_1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + x_1, x_1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) :|: z = 1 + x_1, x_1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, x_3 >= 0, x_2 >= 0, z = x_1, z' = x_2, z'' = x_3 encode_cond(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_gr(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(x_1662))) :|: x_1662 >= 0, z = 1 + x_1662 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(x_1659)) :|: z = 1 + x_1659, x_1659 >= 0 encode_p(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: x_1 >= 0, z = x_1, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: x_1 >= 0, z = x_1, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_s(z) -{ 0 }-> 1 + encArg(x_1) :|: x_1 >= 0, z = x_1 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(x, y) :|: z' = 1 + y, x >= 0, y >= 0, z = 1 + x gr(z, z') -{ 1 }-> 2 :|: x >= 0, z = 1 + x, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' = x, x >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 p(z) -{ 1 }-> x :|: x >= 0, z = 1 + x p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 ---------------------------------------- (17) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (18) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 2 }-> cond(gr(z' - 1, z'' - 1), 0, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(gr(z' - 1, z'' - 1), z' - 1, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 ---------------------------------------- (19) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { encode_0 } { encode_false } { gr } { encode_true } { p } { cond } { encArg } { encode_p } { encode_gr } { encode_s } { encode_cond } ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 2 }-> cond(gr(z' - 1, z'' - 1), 0, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(gr(z' - 1, z'' - 1), z' - 1, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_0}, {encode_false}, {gr}, {encode_true}, {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} ---------------------------------------- (21) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (22) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 2 }-> cond(gr(z' - 1, z'' - 1), 0, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(gr(z' - 1, z'' - 1), z' - 1, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_0}, {encode_false}, {gr}, {encode_true}, {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} ---------------------------------------- (23) 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 ---------------------------------------- (24) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 2 }-> cond(gr(z' - 1, z'' - 1), 0, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(gr(z' - 1, z'' - 1), z' - 1, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_0}, {encode_false}, {gr}, {encode_true}, {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: ?, size: O(1) [0] ---------------------------------------- (25) 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 ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 2 }-> cond(gr(z' - 1, z'' - 1), 0, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(gr(z' - 1, z'' - 1), z' - 1, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_false}, {gr}, {encode_true}, {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] ---------------------------------------- (27) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 2 }-> cond(gr(z' - 1, z'' - 1), 0, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(gr(z' - 1, z'' - 1), z' - 1, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_false}, {gr}, {encode_true}, {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] ---------------------------------------- (29) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_false after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 2 }-> cond(gr(z' - 1, z'' - 1), 0, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(gr(z' - 1, z'' - 1), z' - 1, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_false}, {gr}, {encode_true}, {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: ?, size: O(1) [1] ---------------------------------------- (31) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encode_false after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 2 }-> cond(gr(z' - 1, z'' - 1), 0, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(gr(z' - 1, z'' - 1), z' - 1, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {gr}, {encode_true}, {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] ---------------------------------------- (33) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 2 }-> cond(gr(z' - 1, z'' - 1), 0, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(gr(z' - 1, z'' - 1), z' - 1, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {gr}, {encode_true}, {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] ---------------------------------------- (35) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: gr after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 2 }-> cond(gr(z' - 1, z'' - 1), 0, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(gr(z' - 1, z'' - 1), z' - 1, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {gr}, {encode_true}, {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: ?, size: O(1) [2] ---------------------------------------- (37) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: gr after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 2 + z' ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 2 }-> cond(gr(z' - 1, z'' - 1), 0, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(gr(z' - 1, z'' - 1), z' - 1, 1 + (z'' - 1)) :|: z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 1 }-> gr(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_true}, {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] ---------------------------------------- (39) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (40) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 4 + z'' }-> cond(s, z' - 1, 1 + (z'' - 1)) :|: s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 + z'' }-> cond(s', 0, 1 + (z'' - 1)) :|: s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_true}, {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] ---------------------------------------- (41) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_true after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (42) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 4 + z'' }-> cond(s, z' - 1, 1 + (z'' - 1)) :|: s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 + z'' }-> cond(s', 0, 1 + (z'' - 1)) :|: s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_true}, {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: ?, size: O(1) [2] ---------------------------------------- (43) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encode_true after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (44) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 4 + z'' }-> cond(s, z' - 1, 1 + (z'' - 1)) :|: s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 + z'' }-> cond(s', 0, 1 + (z'' - 1)) :|: s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (45) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (46) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 4 + z'' }-> cond(s, z' - 1, 1 + (z'' - 1)) :|: s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 + z'' }-> cond(s', 0, 1 + (z'' - 1)) :|: s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (47) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: p after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (48) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 4 + z'' }-> cond(s, z' - 1, 1 + (z'' - 1)) :|: s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 + z'' }-> cond(s', 0, 1 + (z'' - 1)) :|: s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {p}, {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: ?, size: O(n^1) [z] ---------------------------------------- (49) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: p after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (50) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 4 + z'' }-> cond(s, z' - 1, 1 + (z'' - 1)) :|: s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 + z'' }-> cond(s', 0, 1 + (z'' - 1)) :|: s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] ---------------------------------------- (51) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (52) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 4 + z'' }-> cond(s, z' - 1, 1 + (z'' - 1)) :|: s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 + z'' }-> cond(s', 0, 1 + (z'' - 1)) :|: s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] ---------------------------------------- (53) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: cond after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (54) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 4 + z'' }-> cond(s, z' - 1, 1 + (z'' - 1)) :|: s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 + z'' }-> cond(s', 0, 1 + (z'' - 1)) :|: s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {cond}, {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: ?, size: O(1) [0] ---------------------------------------- (55) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: cond after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 10 + 4*z' + z'*z'' + 2*z'' ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 4 + z'' }-> cond(s, z' - 1, 1 + (z'' - 1)) :|: s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 + z'' }-> cond(s', 0, 1 + (z'' - 1)) :|: s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 2 }-> cond(2, 0, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(2, z' - 1, 0) :|: z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 3 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(1, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 2 }-> cond(0, 0, z'') :|: z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 1 }-> cond(0, 0, z'') :|: z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 2 }-> cond(0, z' - 1, z'') :|: z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] ---------------------------------------- (57) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (58) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] ---------------------------------------- (59) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: encArg after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (60) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encArg}, {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: ?, size: O(n^1) [1 + z] ---------------------------------------- (61) 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: 49 + 165*z + 56*z^2 + 6*z^3 ---------------------------------------- (62) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(gr(encArg(x_1329), encArg(x_2164))) :|: x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ 0 }-> p(cond(encArg(x_1328), encArg(x_2163), encArg(x_381))) :|: x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> gr(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> cond(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 0 }-> cond(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 0 }-> gr(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(gr(encArg(x_1661), encArg(x_2330))) :|: z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ 0 }-> p(cond(encArg(x_1660), encArg(x_2329), encArg(x_3164))) :|: x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] ---------------------------------------- (63) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (64) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 157 + 4*s12 + s12*s13 + 2*s13 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 + 165*x_3 + 56*x_3^2 + 6*x_3^3 }-> s14 :|: s11 >= 0, s11 <= x_1 + 1, s12 >= 0, s12 <= x_2 + 1, s13 >= 0, s13 <= x_3 + 1, s14 >= 0, s14 <= 0, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 100 + s16 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 }-> s17 :|: s15 >= 0, s15 <= x_1 + 1, s16 >= 0, s16 <= x_2 + 1, s17 >= 0, s17 <= 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ -104 + 13*z + 20*z^2 + 6*z^3 }-> s27 :|: s26 >= 0, s26 <= z - 2 + 1, s27 >= 0, s27 <= 1 + s26, z - 2 >= 0 encArg(z) -{ 158 + 4*s29 + s29*s30 + 2*s30 + 165*x_1328 + 56*x_1328^2 + 6*x_1328^3 + 165*x_2163 + 56*x_2163^2 + 6*x_2163^3 + 165*x_381 + 56*x_381^2 + 6*x_381^3 }-> s32 :|: s28 >= 0, s28 <= x_1328 + 1, s29 >= 0, s29 <= x_2163 + 1, s30 >= 0, s30 <= x_381 + 1, s31 >= 0, s31 <= 0, s32 >= 0, s32 <= s31, x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 101 + s34 + 165*x_1329 + 56*x_1329^2 + 6*x_1329^3 + 165*x_2164 + 56*x_2164^2 + 6*x_2164^3 }-> s36 :|: s33 >= 0, s33 <= x_1329 + 1, s34 >= 0, s34 <= x_2164 + 1, s35 >= 0, s35 <= 2, s36 >= 0, s36 <= s35, x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ -103 + 13*z + 20*z^2 + 6*z^3 }-> s39 :|: s37 >= 0, s37 <= z - 2 + 1, s38 >= 0, s38 <= s37, s39 >= 0, s39 <= s38, z - 2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ -66 + 71*z + 38*z^2 + 6*z^3 }-> 1 + s10 :|: s10 >= 0, s10 <= z - 1 + 1, z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 157 + 4*s19 + s19*s20 + 2*s20 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 + 165*z'' + 56*z''^2 + 6*z''^3 }-> s21 :|: s18 >= 0, s18 <= z + 1, s19 >= 0, s19 <= z' + 1, s20 >= 0, s20 <= z'' + 1, s21 >= 0, s21 <= 0, z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 100 + s23 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 }-> s24 :|: s22 >= 0, s22 <= z + 1, s23 >= 0, s23 <= z' + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ -65 + 71*z + 38*z^2 + 6*z^3 }-> s41 :|: s40 >= 0, s40 <= z - 1 + 1, s41 >= 0, s41 <= 1 + s40, z - 1 >= 0 encode_p(z) -{ 158 + 4*s43 + s43*s44 + 2*s44 + 165*x_1660 + 56*x_1660^2 + 6*x_1660^3 + 165*x_2329 + 56*x_2329^2 + 6*x_2329^3 + 165*x_3164 + 56*x_3164^2 + 6*x_3164^3 }-> s46 :|: s42 >= 0, s42 <= x_1660 + 1, s43 >= 0, s43 <= x_2329 + 1, s44 >= 0, s44 <= x_3164 + 1, s45 >= 0, s45 <= 0, s46 >= 0, s46 <= s45, x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 101 + s48 + 165*x_1661 + 56*x_1661^2 + 6*x_1661^3 + 165*x_2330 + 56*x_2330^2 + 6*x_2330^3 }-> s50 :|: s47 >= 0, s47 <= x_1661 + 1, s48 >= 0, s48 <= x_2330 + 1, s49 >= 0, s49 <= 2, s50 >= 0, s50 <= s49, z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ -64 + 71*z + 38*z^2 + 6*z^3 }-> s53 :|: s51 >= 0, s51 <= z - 1 + 1, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 49 + 165*z + 56*z^2 + 6*z^3 }-> 1 + s25 :|: s25 >= 0, s25 <= z + 1, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] ---------------------------------------- (65) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_p after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (66) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 157 + 4*s12 + s12*s13 + 2*s13 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 + 165*x_3 + 56*x_3^2 + 6*x_3^3 }-> s14 :|: s11 >= 0, s11 <= x_1 + 1, s12 >= 0, s12 <= x_2 + 1, s13 >= 0, s13 <= x_3 + 1, s14 >= 0, s14 <= 0, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 100 + s16 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 }-> s17 :|: s15 >= 0, s15 <= x_1 + 1, s16 >= 0, s16 <= x_2 + 1, s17 >= 0, s17 <= 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ -104 + 13*z + 20*z^2 + 6*z^3 }-> s27 :|: s26 >= 0, s26 <= z - 2 + 1, s27 >= 0, s27 <= 1 + s26, z - 2 >= 0 encArg(z) -{ 158 + 4*s29 + s29*s30 + 2*s30 + 165*x_1328 + 56*x_1328^2 + 6*x_1328^3 + 165*x_2163 + 56*x_2163^2 + 6*x_2163^3 + 165*x_381 + 56*x_381^2 + 6*x_381^3 }-> s32 :|: s28 >= 0, s28 <= x_1328 + 1, s29 >= 0, s29 <= x_2163 + 1, s30 >= 0, s30 <= x_381 + 1, s31 >= 0, s31 <= 0, s32 >= 0, s32 <= s31, x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 101 + s34 + 165*x_1329 + 56*x_1329^2 + 6*x_1329^3 + 165*x_2164 + 56*x_2164^2 + 6*x_2164^3 }-> s36 :|: s33 >= 0, s33 <= x_1329 + 1, s34 >= 0, s34 <= x_2164 + 1, s35 >= 0, s35 <= 2, s36 >= 0, s36 <= s35, x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ -103 + 13*z + 20*z^2 + 6*z^3 }-> s39 :|: s37 >= 0, s37 <= z - 2 + 1, s38 >= 0, s38 <= s37, s39 >= 0, s39 <= s38, z - 2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ -66 + 71*z + 38*z^2 + 6*z^3 }-> 1 + s10 :|: s10 >= 0, s10 <= z - 1 + 1, z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 157 + 4*s19 + s19*s20 + 2*s20 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 + 165*z'' + 56*z''^2 + 6*z''^3 }-> s21 :|: s18 >= 0, s18 <= z + 1, s19 >= 0, s19 <= z' + 1, s20 >= 0, s20 <= z'' + 1, s21 >= 0, s21 <= 0, z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 100 + s23 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 }-> s24 :|: s22 >= 0, s22 <= z + 1, s23 >= 0, s23 <= z' + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ -65 + 71*z + 38*z^2 + 6*z^3 }-> s41 :|: s40 >= 0, s40 <= z - 1 + 1, s41 >= 0, s41 <= 1 + s40, z - 1 >= 0 encode_p(z) -{ 158 + 4*s43 + s43*s44 + 2*s44 + 165*x_1660 + 56*x_1660^2 + 6*x_1660^3 + 165*x_2329 + 56*x_2329^2 + 6*x_2329^3 + 165*x_3164 + 56*x_3164^2 + 6*x_3164^3 }-> s46 :|: s42 >= 0, s42 <= x_1660 + 1, s43 >= 0, s43 <= x_2329 + 1, s44 >= 0, s44 <= x_3164 + 1, s45 >= 0, s45 <= 0, s46 >= 0, s46 <= s45, x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 101 + s48 + 165*x_1661 + 56*x_1661^2 + 6*x_1661^3 + 165*x_2330 + 56*x_2330^2 + 6*x_2330^3 }-> s50 :|: s47 >= 0, s47 <= x_1661 + 1, s48 >= 0, s48 <= x_2330 + 1, s49 >= 0, s49 <= 2, s50 >= 0, s50 <= s49, z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ -64 + 71*z + 38*z^2 + 6*z^3 }-> s53 :|: s51 >= 0, s51 <= z - 1 + 1, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 49 + 165*z + 56*z^2 + 6*z^3 }-> 1 + s25 :|: s25 >= 0, s25 <= z + 1, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_p}, {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] encode_p: runtime: ?, size: O(n^1) [1 + z] ---------------------------------------- (67) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_p after applying outer abstraction to obtain an ITS, resulting in: O(n^3) with polynomial bound: 271 + 976*z + 357*z^2 + 42*z^3 ---------------------------------------- (68) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 157 + 4*s12 + s12*s13 + 2*s13 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 + 165*x_3 + 56*x_3^2 + 6*x_3^3 }-> s14 :|: s11 >= 0, s11 <= x_1 + 1, s12 >= 0, s12 <= x_2 + 1, s13 >= 0, s13 <= x_3 + 1, s14 >= 0, s14 <= 0, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 100 + s16 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 }-> s17 :|: s15 >= 0, s15 <= x_1 + 1, s16 >= 0, s16 <= x_2 + 1, s17 >= 0, s17 <= 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ -104 + 13*z + 20*z^2 + 6*z^3 }-> s27 :|: s26 >= 0, s26 <= z - 2 + 1, s27 >= 0, s27 <= 1 + s26, z - 2 >= 0 encArg(z) -{ 158 + 4*s29 + s29*s30 + 2*s30 + 165*x_1328 + 56*x_1328^2 + 6*x_1328^3 + 165*x_2163 + 56*x_2163^2 + 6*x_2163^3 + 165*x_381 + 56*x_381^2 + 6*x_381^3 }-> s32 :|: s28 >= 0, s28 <= x_1328 + 1, s29 >= 0, s29 <= x_2163 + 1, s30 >= 0, s30 <= x_381 + 1, s31 >= 0, s31 <= 0, s32 >= 0, s32 <= s31, x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 101 + s34 + 165*x_1329 + 56*x_1329^2 + 6*x_1329^3 + 165*x_2164 + 56*x_2164^2 + 6*x_2164^3 }-> s36 :|: s33 >= 0, s33 <= x_1329 + 1, s34 >= 0, s34 <= x_2164 + 1, s35 >= 0, s35 <= 2, s36 >= 0, s36 <= s35, x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ -103 + 13*z + 20*z^2 + 6*z^3 }-> s39 :|: s37 >= 0, s37 <= z - 2 + 1, s38 >= 0, s38 <= s37, s39 >= 0, s39 <= s38, z - 2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ -66 + 71*z + 38*z^2 + 6*z^3 }-> 1 + s10 :|: s10 >= 0, s10 <= z - 1 + 1, z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 157 + 4*s19 + s19*s20 + 2*s20 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 + 165*z'' + 56*z''^2 + 6*z''^3 }-> s21 :|: s18 >= 0, s18 <= z + 1, s19 >= 0, s19 <= z' + 1, s20 >= 0, s20 <= z'' + 1, s21 >= 0, s21 <= 0, z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 100 + s23 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 }-> s24 :|: s22 >= 0, s22 <= z + 1, s23 >= 0, s23 <= z' + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ -65 + 71*z + 38*z^2 + 6*z^3 }-> s41 :|: s40 >= 0, s40 <= z - 1 + 1, s41 >= 0, s41 <= 1 + s40, z - 1 >= 0 encode_p(z) -{ 158 + 4*s43 + s43*s44 + 2*s44 + 165*x_1660 + 56*x_1660^2 + 6*x_1660^3 + 165*x_2329 + 56*x_2329^2 + 6*x_2329^3 + 165*x_3164 + 56*x_3164^2 + 6*x_3164^3 }-> s46 :|: s42 >= 0, s42 <= x_1660 + 1, s43 >= 0, s43 <= x_2329 + 1, s44 >= 0, s44 <= x_3164 + 1, s45 >= 0, s45 <= 0, s46 >= 0, s46 <= s45, x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 101 + s48 + 165*x_1661 + 56*x_1661^2 + 6*x_1661^3 + 165*x_2330 + 56*x_2330^2 + 6*x_2330^3 }-> s50 :|: s47 >= 0, s47 <= x_1661 + 1, s48 >= 0, s48 <= x_2330 + 1, s49 >= 0, s49 <= 2, s50 >= 0, s50 <= s49, z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ -64 + 71*z + 38*z^2 + 6*z^3 }-> s53 :|: s51 >= 0, s51 <= z - 1 + 1, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 49 + 165*z + 56*z^2 + 6*z^3 }-> 1 + s25 :|: s25 >= 0, s25 <= z + 1, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] encode_p: runtime: O(n^3) [271 + 976*z + 357*z^2 + 42*z^3], size: O(n^1) [1 + z] ---------------------------------------- (69) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (70) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 157 + 4*s12 + s12*s13 + 2*s13 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 + 165*x_3 + 56*x_3^2 + 6*x_3^3 }-> s14 :|: s11 >= 0, s11 <= x_1 + 1, s12 >= 0, s12 <= x_2 + 1, s13 >= 0, s13 <= x_3 + 1, s14 >= 0, s14 <= 0, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 100 + s16 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 }-> s17 :|: s15 >= 0, s15 <= x_1 + 1, s16 >= 0, s16 <= x_2 + 1, s17 >= 0, s17 <= 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ -104 + 13*z + 20*z^2 + 6*z^3 }-> s27 :|: s26 >= 0, s26 <= z - 2 + 1, s27 >= 0, s27 <= 1 + s26, z - 2 >= 0 encArg(z) -{ 158 + 4*s29 + s29*s30 + 2*s30 + 165*x_1328 + 56*x_1328^2 + 6*x_1328^3 + 165*x_2163 + 56*x_2163^2 + 6*x_2163^3 + 165*x_381 + 56*x_381^2 + 6*x_381^3 }-> s32 :|: s28 >= 0, s28 <= x_1328 + 1, s29 >= 0, s29 <= x_2163 + 1, s30 >= 0, s30 <= x_381 + 1, s31 >= 0, s31 <= 0, s32 >= 0, s32 <= s31, x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 101 + s34 + 165*x_1329 + 56*x_1329^2 + 6*x_1329^3 + 165*x_2164 + 56*x_2164^2 + 6*x_2164^3 }-> s36 :|: s33 >= 0, s33 <= x_1329 + 1, s34 >= 0, s34 <= x_2164 + 1, s35 >= 0, s35 <= 2, s36 >= 0, s36 <= s35, x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ -103 + 13*z + 20*z^2 + 6*z^3 }-> s39 :|: s37 >= 0, s37 <= z - 2 + 1, s38 >= 0, s38 <= s37, s39 >= 0, s39 <= s38, z - 2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ -66 + 71*z + 38*z^2 + 6*z^3 }-> 1 + s10 :|: s10 >= 0, s10 <= z - 1 + 1, z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 157 + 4*s19 + s19*s20 + 2*s20 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 + 165*z'' + 56*z''^2 + 6*z''^3 }-> s21 :|: s18 >= 0, s18 <= z + 1, s19 >= 0, s19 <= z' + 1, s20 >= 0, s20 <= z'' + 1, s21 >= 0, s21 <= 0, z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 100 + s23 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 }-> s24 :|: s22 >= 0, s22 <= z + 1, s23 >= 0, s23 <= z' + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ -65 + 71*z + 38*z^2 + 6*z^3 }-> s41 :|: s40 >= 0, s40 <= z - 1 + 1, s41 >= 0, s41 <= 1 + s40, z - 1 >= 0 encode_p(z) -{ 158 + 4*s43 + s43*s44 + 2*s44 + 165*x_1660 + 56*x_1660^2 + 6*x_1660^3 + 165*x_2329 + 56*x_2329^2 + 6*x_2329^3 + 165*x_3164 + 56*x_3164^2 + 6*x_3164^3 }-> s46 :|: s42 >= 0, s42 <= x_1660 + 1, s43 >= 0, s43 <= x_2329 + 1, s44 >= 0, s44 <= x_3164 + 1, s45 >= 0, s45 <= 0, s46 >= 0, s46 <= s45, x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 101 + s48 + 165*x_1661 + 56*x_1661^2 + 6*x_1661^3 + 165*x_2330 + 56*x_2330^2 + 6*x_2330^3 }-> s50 :|: s47 >= 0, s47 <= x_1661 + 1, s48 >= 0, s48 <= x_2330 + 1, s49 >= 0, s49 <= 2, s50 >= 0, s50 <= s49, z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ -64 + 71*z + 38*z^2 + 6*z^3 }-> s53 :|: s51 >= 0, s51 <= z - 1 + 1, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 49 + 165*z + 56*z^2 + 6*z^3 }-> 1 + s25 :|: s25 >= 0, s25 <= z + 1, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] encode_p: runtime: O(n^3) [271 + 976*z + 357*z^2 + 42*z^3], size: O(n^1) [1 + z] ---------------------------------------- (71) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_gr after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (72) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 157 + 4*s12 + s12*s13 + 2*s13 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 + 165*x_3 + 56*x_3^2 + 6*x_3^3 }-> s14 :|: s11 >= 0, s11 <= x_1 + 1, s12 >= 0, s12 <= x_2 + 1, s13 >= 0, s13 <= x_3 + 1, s14 >= 0, s14 <= 0, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 100 + s16 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 }-> s17 :|: s15 >= 0, s15 <= x_1 + 1, s16 >= 0, s16 <= x_2 + 1, s17 >= 0, s17 <= 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ -104 + 13*z + 20*z^2 + 6*z^3 }-> s27 :|: s26 >= 0, s26 <= z - 2 + 1, s27 >= 0, s27 <= 1 + s26, z - 2 >= 0 encArg(z) -{ 158 + 4*s29 + s29*s30 + 2*s30 + 165*x_1328 + 56*x_1328^2 + 6*x_1328^3 + 165*x_2163 + 56*x_2163^2 + 6*x_2163^3 + 165*x_381 + 56*x_381^2 + 6*x_381^3 }-> s32 :|: s28 >= 0, s28 <= x_1328 + 1, s29 >= 0, s29 <= x_2163 + 1, s30 >= 0, s30 <= x_381 + 1, s31 >= 0, s31 <= 0, s32 >= 0, s32 <= s31, x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 101 + s34 + 165*x_1329 + 56*x_1329^2 + 6*x_1329^3 + 165*x_2164 + 56*x_2164^2 + 6*x_2164^3 }-> s36 :|: s33 >= 0, s33 <= x_1329 + 1, s34 >= 0, s34 <= x_2164 + 1, s35 >= 0, s35 <= 2, s36 >= 0, s36 <= s35, x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ -103 + 13*z + 20*z^2 + 6*z^3 }-> s39 :|: s37 >= 0, s37 <= z - 2 + 1, s38 >= 0, s38 <= s37, s39 >= 0, s39 <= s38, z - 2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ -66 + 71*z + 38*z^2 + 6*z^3 }-> 1 + s10 :|: s10 >= 0, s10 <= z - 1 + 1, z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 157 + 4*s19 + s19*s20 + 2*s20 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 + 165*z'' + 56*z''^2 + 6*z''^3 }-> s21 :|: s18 >= 0, s18 <= z + 1, s19 >= 0, s19 <= z' + 1, s20 >= 0, s20 <= z'' + 1, s21 >= 0, s21 <= 0, z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 100 + s23 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 }-> s24 :|: s22 >= 0, s22 <= z + 1, s23 >= 0, s23 <= z' + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ -65 + 71*z + 38*z^2 + 6*z^3 }-> s41 :|: s40 >= 0, s40 <= z - 1 + 1, s41 >= 0, s41 <= 1 + s40, z - 1 >= 0 encode_p(z) -{ 158 + 4*s43 + s43*s44 + 2*s44 + 165*x_1660 + 56*x_1660^2 + 6*x_1660^3 + 165*x_2329 + 56*x_2329^2 + 6*x_2329^3 + 165*x_3164 + 56*x_3164^2 + 6*x_3164^3 }-> s46 :|: s42 >= 0, s42 <= x_1660 + 1, s43 >= 0, s43 <= x_2329 + 1, s44 >= 0, s44 <= x_3164 + 1, s45 >= 0, s45 <= 0, s46 >= 0, s46 <= s45, x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 101 + s48 + 165*x_1661 + 56*x_1661^2 + 6*x_1661^3 + 165*x_2330 + 56*x_2330^2 + 6*x_2330^3 }-> s50 :|: s47 >= 0, s47 <= x_1661 + 1, s48 >= 0, s48 <= x_2330 + 1, s49 >= 0, s49 <= 2, s50 >= 0, s50 <= s49, z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ -64 + 71*z + 38*z^2 + 6*z^3 }-> s53 :|: s51 >= 0, s51 <= z - 1 + 1, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 49 + 165*z + 56*z^2 + 6*z^3 }-> 1 + s25 :|: s25 >= 0, s25 <= z + 1, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_gr}, {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] encode_p: runtime: O(n^3) [271 + 976*z + 357*z^2 + 42*z^3], size: O(n^1) [1 + z] encode_gr: runtime: ?, size: O(1) [2] ---------------------------------------- (73) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_gr after applying outer abstraction to obtain an ITS, resulting in: O(n^3) with polynomial bound: 101 + 165*z + 56*z^2 + 6*z^3 + 166*z' + 56*z'^2 + 6*z'^3 ---------------------------------------- (74) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 157 + 4*s12 + s12*s13 + 2*s13 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 + 165*x_3 + 56*x_3^2 + 6*x_3^3 }-> s14 :|: s11 >= 0, s11 <= x_1 + 1, s12 >= 0, s12 <= x_2 + 1, s13 >= 0, s13 <= x_3 + 1, s14 >= 0, s14 <= 0, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 100 + s16 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 }-> s17 :|: s15 >= 0, s15 <= x_1 + 1, s16 >= 0, s16 <= x_2 + 1, s17 >= 0, s17 <= 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ -104 + 13*z + 20*z^2 + 6*z^3 }-> s27 :|: s26 >= 0, s26 <= z - 2 + 1, s27 >= 0, s27 <= 1 + s26, z - 2 >= 0 encArg(z) -{ 158 + 4*s29 + s29*s30 + 2*s30 + 165*x_1328 + 56*x_1328^2 + 6*x_1328^3 + 165*x_2163 + 56*x_2163^2 + 6*x_2163^3 + 165*x_381 + 56*x_381^2 + 6*x_381^3 }-> s32 :|: s28 >= 0, s28 <= x_1328 + 1, s29 >= 0, s29 <= x_2163 + 1, s30 >= 0, s30 <= x_381 + 1, s31 >= 0, s31 <= 0, s32 >= 0, s32 <= s31, x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 101 + s34 + 165*x_1329 + 56*x_1329^2 + 6*x_1329^3 + 165*x_2164 + 56*x_2164^2 + 6*x_2164^3 }-> s36 :|: s33 >= 0, s33 <= x_1329 + 1, s34 >= 0, s34 <= x_2164 + 1, s35 >= 0, s35 <= 2, s36 >= 0, s36 <= s35, x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ -103 + 13*z + 20*z^2 + 6*z^3 }-> s39 :|: s37 >= 0, s37 <= z - 2 + 1, s38 >= 0, s38 <= s37, s39 >= 0, s39 <= s38, z - 2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ -66 + 71*z + 38*z^2 + 6*z^3 }-> 1 + s10 :|: s10 >= 0, s10 <= z - 1 + 1, z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 157 + 4*s19 + s19*s20 + 2*s20 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 + 165*z'' + 56*z''^2 + 6*z''^3 }-> s21 :|: s18 >= 0, s18 <= z + 1, s19 >= 0, s19 <= z' + 1, s20 >= 0, s20 <= z'' + 1, s21 >= 0, s21 <= 0, z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 100 + s23 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 }-> s24 :|: s22 >= 0, s22 <= z + 1, s23 >= 0, s23 <= z' + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ -65 + 71*z + 38*z^2 + 6*z^3 }-> s41 :|: s40 >= 0, s40 <= z - 1 + 1, s41 >= 0, s41 <= 1 + s40, z - 1 >= 0 encode_p(z) -{ 158 + 4*s43 + s43*s44 + 2*s44 + 165*x_1660 + 56*x_1660^2 + 6*x_1660^3 + 165*x_2329 + 56*x_2329^2 + 6*x_2329^3 + 165*x_3164 + 56*x_3164^2 + 6*x_3164^3 }-> s46 :|: s42 >= 0, s42 <= x_1660 + 1, s43 >= 0, s43 <= x_2329 + 1, s44 >= 0, s44 <= x_3164 + 1, s45 >= 0, s45 <= 0, s46 >= 0, s46 <= s45, x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 101 + s48 + 165*x_1661 + 56*x_1661^2 + 6*x_1661^3 + 165*x_2330 + 56*x_2330^2 + 6*x_2330^3 }-> s50 :|: s47 >= 0, s47 <= x_1661 + 1, s48 >= 0, s48 <= x_2330 + 1, s49 >= 0, s49 <= 2, s50 >= 0, s50 <= s49, z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ -64 + 71*z + 38*z^2 + 6*z^3 }-> s53 :|: s51 >= 0, s51 <= z - 1 + 1, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 49 + 165*z + 56*z^2 + 6*z^3 }-> 1 + s25 :|: s25 >= 0, s25 <= z + 1, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] encode_p: runtime: O(n^3) [271 + 976*z + 357*z^2 + 42*z^3], size: O(n^1) [1 + z] encode_gr: runtime: O(n^3) [101 + 165*z + 56*z^2 + 6*z^3 + 166*z' + 56*z'^2 + 6*z'^3], size: O(1) [2] ---------------------------------------- (75) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (76) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 157 + 4*s12 + s12*s13 + 2*s13 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 + 165*x_3 + 56*x_3^2 + 6*x_3^3 }-> s14 :|: s11 >= 0, s11 <= x_1 + 1, s12 >= 0, s12 <= x_2 + 1, s13 >= 0, s13 <= x_3 + 1, s14 >= 0, s14 <= 0, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 100 + s16 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 }-> s17 :|: s15 >= 0, s15 <= x_1 + 1, s16 >= 0, s16 <= x_2 + 1, s17 >= 0, s17 <= 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ -104 + 13*z + 20*z^2 + 6*z^3 }-> s27 :|: s26 >= 0, s26 <= z - 2 + 1, s27 >= 0, s27 <= 1 + s26, z - 2 >= 0 encArg(z) -{ 158 + 4*s29 + s29*s30 + 2*s30 + 165*x_1328 + 56*x_1328^2 + 6*x_1328^3 + 165*x_2163 + 56*x_2163^2 + 6*x_2163^3 + 165*x_381 + 56*x_381^2 + 6*x_381^3 }-> s32 :|: s28 >= 0, s28 <= x_1328 + 1, s29 >= 0, s29 <= x_2163 + 1, s30 >= 0, s30 <= x_381 + 1, s31 >= 0, s31 <= 0, s32 >= 0, s32 <= s31, x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 101 + s34 + 165*x_1329 + 56*x_1329^2 + 6*x_1329^3 + 165*x_2164 + 56*x_2164^2 + 6*x_2164^3 }-> s36 :|: s33 >= 0, s33 <= x_1329 + 1, s34 >= 0, s34 <= x_2164 + 1, s35 >= 0, s35 <= 2, s36 >= 0, s36 <= s35, x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ -103 + 13*z + 20*z^2 + 6*z^3 }-> s39 :|: s37 >= 0, s37 <= z - 2 + 1, s38 >= 0, s38 <= s37, s39 >= 0, s39 <= s38, z - 2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ -66 + 71*z + 38*z^2 + 6*z^3 }-> 1 + s10 :|: s10 >= 0, s10 <= z - 1 + 1, z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 157 + 4*s19 + s19*s20 + 2*s20 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 + 165*z'' + 56*z''^2 + 6*z''^3 }-> s21 :|: s18 >= 0, s18 <= z + 1, s19 >= 0, s19 <= z' + 1, s20 >= 0, s20 <= z'' + 1, s21 >= 0, s21 <= 0, z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 100 + s23 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 }-> s24 :|: s22 >= 0, s22 <= z + 1, s23 >= 0, s23 <= z' + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ -65 + 71*z + 38*z^2 + 6*z^3 }-> s41 :|: s40 >= 0, s40 <= z - 1 + 1, s41 >= 0, s41 <= 1 + s40, z - 1 >= 0 encode_p(z) -{ 158 + 4*s43 + s43*s44 + 2*s44 + 165*x_1660 + 56*x_1660^2 + 6*x_1660^3 + 165*x_2329 + 56*x_2329^2 + 6*x_2329^3 + 165*x_3164 + 56*x_3164^2 + 6*x_3164^3 }-> s46 :|: s42 >= 0, s42 <= x_1660 + 1, s43 >= 0, s43 <= x_2329 + 1, s44 >= 0, s44 <= x_3164 + 1, s45 >= 0, s45 <= 0, s46 >= 0, s46 <= s45, x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 101 + s48 + 165*x_1661 + 56*x_1661^2 + 6*x_1661^3 + 165*x_2330 + 56*x_2330^2 + 6*x_2330^3 }-> s50 :|: s47 >= 0, s47 <= x_1661 + 1, s48 >= 0, s48 <= x_2330 + 1, s49 >= 0, s49 <= 2, s50 >= 0, s50 <= s49, z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ -64 + 71*z + 38*z^2 + 6*z^3 }-> s53 :|: s51 >= 0, s51 <= z - 1 + 1, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 49 + 165*z + 56*z^2 + 6*z^3 }-> 1 + s25 :|: s25 >= 0, s25 <= z + 1, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] encode_p: runtime: O(n^3) [271 + 976*z + 357*z^2 + 42*z^3], size: O(n^1) [1 + z] encode_gr: runtime: O(n^3) [101 + 165*z + 56*z^2 + 6*z^3 + 166*z' + 56*z'^2 + 6*z'^3], size: O(1) [2] ---------------------------------------- (77) 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: 2 + z ---------------------------------------- (78) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 157 + 4*s12 + s12*s13 + 2*s13 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 + 165*x_3 + 56*x_3^2 + 6*x_3^3 }-> s14 :|: s11 >= 0, s11 <= x_1 + 1, s12 >= 0, s12 <= x_2 + 1, s13 >= 0, s13 <= x_3 + 1, s14 >= 0, s14 <= 0, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 100 + s16 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 }-> s17 :|: s15 >= 0, s15 <= x_1 + 1, s16 >= 0, s16 <= x_2 + 1, s17 >= 0, s17 <= 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ -104 + 13*z + 20*z^2 + 6*z^3 }-> s27 :|: s26 >= 0, s26 <= z - 2 + 1, s27 >= 0, s27 <= 1 + s26, z - 2 >= 0 encArg(z) -{ 158 + 4*s29 + s29*s30 + 2*s30 + 165*x_1328 + 56*x_1328^2 + 6*x_1328^3 + 165*x_2163 + 56*x_2163^2 + 6*x_2163^3 + 165*x_381 + 56*x_381^2 + 6*x_381^3 }-> s32 :|: s28 >= 0, s28 <= x_1328 + 1, s29 >= 0, s29 <= x_2163 + 1, s30 >= 0, s30 <= x_381 + 1, s31 >= 0, s31 <= 0, s32 >= 0, s32 <= s31, x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 101 + s34 + 165*x_1329 + 56*x_1329^2 + 6*x_1329^3 + 165*x_2164 + 56*x_2164^2 + 6*x_2164^3 }-> s36 :|: s33 >= 0, s33 <= x_1329 + 1, s34 >= 0, s34 <= x_2164 + 1, s35 >= 0, s35 <= 2, s36 >= 0, s36 <= s35, x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ -103 + 13*z + 20*z^2 + 6*z^3 }-> s39 :|: s37 >= 0, s37 <= z - 2 + 1, s38 >= 0, s38 <= s37, s39 >= 0, s39 <= s38, z - 2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ -66 + 71*z + 38*z^2 + 6*z^3 }-> 1 + s10 :|: s10 >= 0, s10 <= z - 1 + 1, z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 157 + 4*s19 + s19*s20 + 2*s20 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 + 165*z'' + 56*z''^2 + 6*z''^3 }-> s21 :|: s18 >= 0, s18 <= z + 1, s19 >= 0, s19 <= z' + 1, s20 >= 0, s20 <= z'' + 1, s21 >= 0, s21 <= 0, z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 100 + s23 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 }-> s24 :|: s22 >= 0, s22 <= z + 1, s23 >= 0, s23 <= z' + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ -65 + 71*z + 38*z^2 + 6*z^3 }-> s41 :|: s40 >= 0, s40 <= z - 1 + 1, s41 >= 0, s41 <= 1 + s40, z - 1 >= 0 encode_p(z) -{ 158 + 4*s43 + s43*s44 + 2*s44 + 165*x_1660 + 56*x_1660^2 + 6*x_1660^3 + 165*x_2329 + 56*x_2329^2 + 6*x_2329^3 + 165*x_3164 + 56*x_3164^2 + 6*x_3164^3 }-> s46 :|: s42 >= 0, s42 <= x_1660 + 1, s43 >= 0, s43 <= x_2329 + 1, s44 >= 0, s44 <= x_3164 + 1, s45 >= 0, s45 <= 0, s46 >= 0, s46 <= s45, x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 101 + s48 + 165*x_1661 + 56*x_1661^2 + 6*x_1661^3 + 165*x_2330 + 56*x_2330^2 + 6*x_2330^3 }-> s50 :|: s47 >= 0, s47 <= x_1661 + 1, s48 >= 0, s48 <= x_2330 + 1, s49 >= 0, s49 <= 2, s50 >= 0, s50 <= s49, z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ -64 + 71*z + 38*z^2 + 6*z^3 }-> s53 :|: s51 >= 0, s51 <= z - 1 + 1, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 49 + 165*z + 56*z^2 + 6*z^3 }-> 1 + s25 :|: s25 >= 0, s25 <= z + 1, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_s}, {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] encode_p: runtime: O(n^3) [271 + 976*z + 357*z^2 + 42*z^3], size: O(n^1) [1 + z] encode_gr: runtime: O(n^3) [101 + 165*z + 56*z^2 + 6*z^3 + 166*z' + 56*z'^2 + 6*z'^3], size: O(1) [2] encode_s: runtime: ?, size: O(n^1) [2 + z] ---------------------------------------- (79) 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: 49 + 165*z + 56*z^2 + 6*z^3 ---------------------------------------- (80) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 157 + 4*s12 + s12*s13 + 2*s13 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 + 165*x_3 + 56*x_3^2 + 6*x_3^3 }-> s14 :|: s11 >= 0, s11 <= x_1 + 1, s12 >= 0, s12 <= x_2 + 1, s13 >= 0, s13 <= x_3 + 1, s14 >= 0, s14 <= 0, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 100 + s16 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 }-> s17 :|: s15 >= 0, s15 <= x_1 + 1, s16 >= 0, s16 <= x_2 + 1, s17 >= 0, s17 <= 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ -104 + 13*z + 20*z^2 + 6*z^3 }-> s27 :|: s26 >= 0, s26 <= z - 2 + 1, s27 >= 0, s27 <= 1 + s26, z - 2 >= 0 encArg(z) -{ 158 + 4*s29 + s29*s30 + 2*s30 + 165*x_1328 + 56*x_1328^2 + 6*x_1328^3 + 165*x_2163 + 56*x_2163^2 + 6*x_2163^3 + 165*x_381 + 56*x_381^2 + 6*x_381^3 }-> s32 :|: s28 >= 0, s28 <= x_1328 + 1, s29 >= 0, s29 <= x_2163 + 1, s30 >= 0, s30 <= x_381 + 1, s31 >= 0, s31 <= 0, s32 >= 0, s32 <= s31, x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 101 + s34 + 165*x_1329 + 56*x_1329^2 + 6*x_1329^3 + 165*x_2164 + 56*x_2164^2 + 6*x_2164^3 }-> s36 :|: s33 >= 0, s33 <= x_1329 + 1, s34 >= 0, s34 <= x_2164 + 1, s35 >= 0, s35 <= 2, s36 >= 0, s36 <= s35, x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ -103 + 13*z + 20*z^2 + 6*z^3 }-> s39 :|: s37 >= 0, s37 <= z - 2 + 1, s38 >= 0, s38 <= s37, s39 >= 0, s39 <= s38, z - 2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ -66 + 71*z + 38*z^2 + 6*z^3 }-> 1 + s10 :|: s10 >= 0, s10 <= z - 1 + 1, z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 157 + 4*s19 + s19*s20 + 2*s20 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 + 165*z'' + 56*z''^2 + 6*z''^3 }-> s21 :|: s18 >= 0, s18 <= z + 1, s19 >= 0, s19 <= z' + 1, s20 >= 0, s20 <= z'' + 1, s21 >= 0, s21 <= 0, z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 100 + s23 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 }-> s24 :|: s22 >= 0, s22 <= z + 1, s23 >= 0, s23 <= z' + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ -65 + 71*z + 38*z^2 + 6*z^3 }-> s41 :|: s40 >= 0, s40 <= z - 1 + 1, s41 >= 0, s41 <= 1 + s40, z - 1 >= 0 encode_p(z) -{ 158 + 4*s43 + s43*s44 + 2*s44 + 165*x_1660 + 56*x_1660^2 + 6*x_1660^3 + 165*x_2329 + 56*x_2329^2 + 6*x_2329^3 + 165*x_3164 + 56*x_3164^2 + 6*x_3164^3 }-> s46 :|: s42 >= 0, s42 <= x_1660 + 1, s43 >= 0, s43 <= x_2329 + 1, s44 >= 0, s44 <= x_3164 + 1, s45 >= 0, s45 <= 0, s46 >= 0, s46 <= s45, x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 101 + s48 + 165*x_1661 + 56*x_1661^2 + 6*x_1661^3 + 165*x_2330 + 56*x_2330^2 + 6*x_2330^3 }-> s50 :|: s47 >= 0, s47 <= x_1661 + 1, s48 >= 0, s48 <= x_2330 + 1, s49 >= 0, s49 <= 2, s50 >= 0, s50 <= s49, z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ -64 + 71*z + 38*z^2 + 6*z^3 }-> s53 :|: s51 >= 0, s51 <= z - 1 + 1, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 49 + 165*z + 56*z^2 + 6*z^3 }-> 1 + s25 :|: s25 >= 0, s25 <= z + 1, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] encode_p: runtime: O(n^3) [271 + 976*z + 357*z^2 + 42*z^3], size: O(n^1) [1 + z] encode_gr: runtime: O(n^3) [101 + 165*z + 56*z^2 + 6*z^3 + 166*z' + 56*z'^2 + 6*z'^3], size: O(1) [2] encode_s: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [2 + z] ---------------------------------------- (81) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (82) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 157 + 4*s12 + s12*s13 + 2*s13 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 + 165*x_3 + 56*x_3^2 + 6*x_3^3 }-> s14 :|: s11 >= 0, s11 <= x_1 + 1, s12 >= 0, s12 <= x_2 + 1, s13 >= 0, s13 <= x_3 + 1, s14 >= 0, s14 <= 0, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 100 + s16 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 }-> s17 :|: s15 >= 0, s15 <= x_1 + 1, s16 >= 0, s16 <= x_2 + 1, s17 >= 0, s17 <= 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ -104 + 13*z + 20*z^2 + 6*z^3 }-> s27 :|: s26 >= 0, s26 <= z - 2 + 1, s27 >= 0, s27 <= 1 + s26, z - 2 >= 0 encArg(z) -{ 158 + 4*s29 + s29*s30 + 2*s30 + 165*x_1328 + 56*x_1328^2 + 6*x_1328^3 + 165*x_2163 + 56*x_2163^2 + 6*x_2163^3 + 165*x_381 + 56*x_381^2 + 6*x_381^3 }-> s32 :|: s28 >= 0, s28 <= x_1328 + 1, s29 >= 0, s29 <= x_2163 + 1, s30 >= 0, s30 <= x_381 + 1, s31 >= 0, s31 <= 0, s32 >= 0, s32 <= s31, x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 101 + s34 + 165*x_1329 + 56*x_1329^2 + 6*x_1329^3 + 165*x_2164 + 56*x_2164^2 + 6*x_2164^3 }-> s36 :|: s33 >= 0, s33 <= x_1329 + 1, s34 >= 0, s34 <= x_2164 + 1, s35 >= 0, s35 <= 2, s36 >= 0, s36 <= s35, x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ -103 + 13*z + 20*z^2 + 6*z^3 }-> s39 :|: s37 >= 0, s37 <= z - 2 + 1, s38 >= 0, s38 <= s37, s39 >= 0, s39 <= s38, z - 2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ -66 + 71*z + 38*z^2 + 6*z^3 }-> 1 + s10 :|: s10 >= 0, s10 <= z - 1 + 1, z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 157 + 4*s19 + s19*s20 + 2*s20 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 + 165*z'' + 56*z''^2 + 6*z''^3 }-> s21 :|: s18 >= 0, s18 <= z + 1, s19 >= 0, s19 <= z' + 1, s20 >= 0, s20 <= z'' + 1, s21 >= 0, s21 <= 0, z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 100 + s23 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 }-> s24 :|: s22 >= 0, s22 <= z + 1, s23 >= 0, s23 <= z' + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ -65 + 71*z + 38*z^2 + 6*z^3 }-> s41 :|: s40 >= 0, s40 <= z - 1 + 1, s41 >= 0, s41 <= 1 + s40, z - 1 >= 0 encode_p(z) -{ 158 + 4*s43 + s43*s44 + 2*s44 + 165*x_1660 + 56*x_1660^2 + 6*x_1660^3 + 165*x_2329 + 56*x_2329^2 + 6*x_2329^3 + 165*x_3164 + 56*x_3164^2 + 6*x_3164^3 }-> s46 :|: s42 >= 0, s42 <= x_1660 + 1, s43 >= 0, s43 <= x_2329 + 1, s44 >= 0, s44 <= x_3164 + 1, s45 >= 0, s45 <= 0, s46 >= 0, s46 <= s45, x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 101 + s48 + 165*x_1661 + 56*x_1661^2 + 6*x_1661^3 + 165*x_2330 + 56*x_2330^2 + 6*x_2330^3 }-> s50 :|: s47 >= 0, s47 <= x_1661 + 1, s48 >= 0, s48 <= x_2330 + 1, s49 >= 0, s49 <= 2, s50 >= 0, s50 <= s49, z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ -64 + 71*z + 38*z^2 + 6*z^3 }-> s53 :|: s51 >= 0, s51 <= z - 1 + 1, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 49 + 165*z + 56*z^2 + 6*z^3 }-> 1 + s25 :|: s25 >= 0, s25 <= z + 1, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] encode_p: runtime: O(n^3) [271 + 976*z + 357*z^2 + 42*z^3], size: O(n^1) [1 + z] encode_gr: runtime: O(n^3) [101 + 165*z + 56*z^2 + 6*z^3 + 166*z' + 56*z'^2 + 6*z'^3], size: O(1) [2] encode_s: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [2 + z] ---------------------------------------- (83) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_cond after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (84) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 157 + 4*s12 + s12*s13 + 2*s13 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 + 165*x_3 + 56*x_3^2 + 6*x_3^3 }-> s14 :|: s11 >= 0, s11 <= x_1 + 1, s12 >= 0, s12 <= x_2 + 1, s13 >= 0, s13 <= x_3 + 1, s14 >= 0, s14 <= 0, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 100 + s16 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 }-> s17 :|: s15 >= 0, s15 <= x_1 + 1, s16 >= 0, s16 <= x_2 + 1, s17 >= 0, s17 <= 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ -104 + 13*z + 20*z^2 + 6*z^3 }-> s27 :|: s26 >= 0, s26 <= z - 2 + 1, s27 >= 0, s27 <= 1 + s26, z - 2 >= 0 encArg(z) -{ 158 + 4*s29 + s29*s30 + 2*s30 + 165*x_1328 + 56*x_1328^2 + 6*x_1328^3 + 165*x_2163 + 56*x_2163^2 + 6*x_2163^3 + 165*x_381 + 56*x_381^2 + 6*x_381^3 }-> s32 :|: s28 >= 0, s28 <= x_1328 + 1, s29 >= 0, s29 <= x_2163 + 1, s30 >= 0, s30 <= x_381 + 1, s31 >= 0, s31 <= 0, s32 >= 0, s32 <= s31, x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 101 + s34 + 165*x_1329 + 56*x_1329^2 + 6*x_1329^3 + 165*x_2164 + 56*x_2164^2 + 6*x_2164^3 }-> s36 :|: s33 >= 0, s33 <= x_1329 + 1, s34 >= 0, s34 <= x_2164 + 1, s35 >= 0, s35 <= 2, s36 >= 0, s36 <= s35, x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ -103 + 13*z + 20*z^2 + 6*z^3 }-> s39 :|: s37 >= 0, s37 <= z - 2 + 1, s38 >= 0, s38 <= s37, s39 >= 0, s39 <= s38, z - 2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ -66 + 71*z + 38*z^2 + 6*z^3 }-> 1 + s10 :|: s10 >= 0, s10 <= z - 1 + 1, z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 157 + 4*s19 + s19*s20 + 2*s20 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 + 165*z'' + 56*z''^2 + 6*z''^3 }-> s21 :|: s18 >= 0, s18 <= z + 1, s19 >= 0, s19 <= z' + 1, s20 >= 0, s20 <= z'' + 1, s21 >= 0, s21 <= 0, z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 100 + s23 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 }-> s24 :|: s22 >= 0, s22 <= z + 1, s23 >= 0, s23 <= z' + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ -65 + 71*z + 38*z^2 + 6*z^3 }-> s41 :|: s40 >= 0, s40 <= z - 1 + 1, s41 >= 0, s41 <= 1 + s40, z - 1 >= 0 encode_p(z) -{ 158 + 4*s43 + s43*s44 + 2*s44 + 165*x_1660 + 56*x_1660^2 + 6*x_1660^3 + 165*x_2329 + 56*x_2329^2 + 6*x_2329^3 + 165*x_3164 + 56*x_3164^2 + 6*x_3164^3 }-> s46 :|: s42 >= 0, s42 <= x_1660 + 1, s43 >= 0, s43 <= x_2329 + 1, s44 >= 0, s44 <= x_3164 + 1, s45 >= 0, s45 <= 0, s46 >= 0, s46 <= s45, x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 101 + s48 + 165*x_1661 + 56*x_1661^2 + 6*x_1661^3 + 165*x_2330 + 56*x_2330^2 + 6*x_2330^3 }-> s50 :|: s47 >= 0, s47 <= x_1661 + 1, s48 >= 0, s48 <= x_2330 + 1, s49 >= 0, s49 <= 2, s50 >= 0, s50 <= s49, z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ -64 + 71*z + 38*z^2 + 6*z^3 }-> s53 :|: s51 >= 0, s51 <= z - 1 + 1, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 49 + 165*z + 56*z^2 + 6*z^3 }-> 1 + s25 :|: s25 >= 0, s25 <= z + 1, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: {encode_cond} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] encode_p: runtime: O(n^3) [271 + 976*z + 357*z^2 + 42*z^3], size: O(n^1) [1 + z] encode_gr: runtime: O(n^3) [101 + 165*z + 56*z^2 + 6*z^3 + 166*z' + 56*z'^2 + 6*z'^3], size: O(1) [2] encode_s: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [2 + z] encode_cond: runtime: ?, size: O(1) [0] ---------------------------------------- (85) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_cond after applying outer abstraction to obtain an ITS, resulting in: O(n^3) with polynomial bound: 164 + 165*z + 56*z^2 + 6*z^3 + 170*z' + z'*z'' + 56*z'^2 + 6*z'^3 + 168*z'' + 56*z''^2 + 6*z''^3 ---------------------------------------- (86) Obligation: Complexity RNTS consisting of the following rules: cond(z, z', z'') -{ 13 + 2*z'' }-> s1 :|: s1 >= 0, s1 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s2 :|: s2 >= 0, s2 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 9 + 4*z' }-> s3 :|: s3 >= 0, s3 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 }-> s4 :|: s4 >= 0, s4 <= 0, z = 2, z'' = 0, z' - 1 >= 0 cond(z, z', z'') -{ 10 + 4*z' + z'*z'' + 2*z'' }-> s5 :|: s5 >= 0, s5 <= 0, s >= 0, s <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 13 + 3*z'' }-> s6 :|: s6 >= 0, s6 <= 0, s' >= 0, s' <= 2, z = 2, z'' - 1 >= 0, z' - 1 >= 0 cond(z, z', z'') -{ 12 + 2*z'' }-> s7 :|: s7 >= 0, s7 <= 0, z = 2, z'' >= 0, z' = 0 cond(z, z', z'') -{ 8 + 4*z' + z'*z'' + z'' }-> s8 :|: s8 >= 0, s8 <= 0, z = 2, z' - 1 >= 0, z'' >= 0 cond(z, z', z'') -{ 11 + 2*z'' }-> s9 :|: s9 >= 0, s9 <= 0, z = 2, z' >= 0, z'' >= 0 cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encArg(z) -{ 157 + 4*s12 + s12*s13 + 2*s13 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 + 165*x_3 + 56*x_3^2 + 6*x_3^3 }-> s14 :|: s11 >= 0, s11 <= x_1 + 1, s12 >= 0, s12 <= x_2 + 1, s13 >= 0, s13 <= x_3 + 1, s14 >= 0, s14 <= 0, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 100 + s16 + 165*x_1 + 56*x_1^2 + 6*x_1^3 + 165*x_2 + 56*x_2^2 + 6*x_2^3 }-> s17 :|: s15 >= 0, s15 <= x_1 + 1, s16 >= 0, s16 <= x_2 + 1, s17 >= 0, s17 <= 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ -104 + 13*z + 20*z^2 + 6*z^3 }-> s27 :|: s26 >= 0, s26 <= z - 2 + 1, s27 >= 0, s27 <= 1 + s26, z - 2 >= 0 encArg(z) -{ 158 + 4*s29 + s29*s30 + 2*s30 + 165*x_1328 + 56*x_1328^2 + 6*x_1328^3 + 165*x_2163 + 56*x_2163^2 + 6*x_2163^3 + 165*x_381 + 56*x_381^2 + 6*x_381^3 }-> s32 :|: s28 >= 0, s28 <= x_1328 + 1, s29 >= 0, s29 <= x_2163 + 1, s30 >= 0, s30 <= x_381 + 1, s31 >= 0, s31 <= 0, s32 >= 0, s32 <= s31, x_1328 >= 0, x_381 >= 0, z = 1 + (1 + x_1328 + x_2163 + x_381), x_2163 >= 0 encArg(z) -{ 101 + s34 + 165*x_1329 + 56*x_1329^2 + 6*x_1329^3 + 165*x_2164 + 56*x_2164^2 + 6*x_2164^3 }-> s36 :|: s33 >= 0, s33 <= x_1329 + 1, s34 >= 0, s34 <= x_2164 + 1, s35 >= 0, s35 <= 2, s36 >= 0, s36 <= s35, x_2164 >= 0, z = 1 + (1 + x_1329 + x_2164), x_1329 >= 0 encArg(z) -{ -103 + 13*z + 20*z^2 + 6*z^3 }-> s39 :|: s37 >= 0, s37 <= z - 2 + 1, s38 >= 0, s38 <= s37, s39 >= 0, s39 <= s38, z - 2 >= 0 encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ -66 + 71*z + 38*z^2 + 6*z^3 }-> 1 + s10 :|: s10 >= 0, s10 <= z - 1 + 1, z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_cond(z, z', z'') -{ 157 + 4*s19 + s19*s20 + 2*s20 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 + 165*z'' + 56*z''^2 + 6*z''^3 }-> s21 :|: s18 >= 0, s18 <= z + 1, s19 >= 0, s19 <= z' + 1, s20 >= 0, s20 <= z'' + 1, s21 >= 0, s21 <= 0, z >= 0, z'' >= 0, z' >= 0 encode_cond(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_gr(z, z') -{ 100 + s23 + 165*z + 56*z^2 + 6*z^3 + 165*z' + 56*z'^2 + 6*z'^3 }-> s24 :|: s22 >= 0, s22 <= z + 1, s23 >= 0, s23 <= z' + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0 encode_gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_p(z) -{ -65 + 71*z + 38*z^2 + 6*z^3 }-> s41 :|: s40 >= 0, s40 <= z - 1 + 1, s41 >= 0, s41 <= 1 + s40, z - 1 >= 0 encode_p(z) -{ 158 + 4*s43 + s43*s44 + 2*s44 + 165*x_1660 + 56*x_1660^2 + 6*x_1660^3 + 165*x_2329 + 56*x_2329^2 + 6*x_2329^3 + 165*x_3164 + 56*x_3164^2 + 6*x_3164^3 }-> s46 :|: s42 >= 0, s42 <= x_1660 + 1, s43 >= 0, s43 <= x_2329 + 1, s44 >= 0, s44 <= x_3164 + 1, s45 >= 0, s45 <= 0, s46 >= 0, s46 <= s45, x_3164 >= 0, x_1660 >= 0, x_2329 >= 0, z = 1 + x_1660 + x_2329 + x_3164 encode_p(z) -{ 101 + s48 + 165*x_1661 + 56*x_1661^2 + 6*x_1661^3 + 165*x_2330 + 56*x_2330^2 + 6*x_2330^3 }-> s50 :|: s47 >= 0, s47 <= x_1661 + 1, s48 >= 0, s48 <= x_2330 + 1, s49 >= 0, s49 <= 2, s50 >= 0, s50 <= s49, z = 1 + x_1661 + x_2330, x_2330 >= 0, x_1661 >= 0 encode_p(z) -{ -64 + 71*z + 38*z^2 + 6*z^3 }-> s53 :|: s51 >= 0, s51 <= z - 1 + 1, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 encode_p(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_p(z) -{ 1 }-> 0 :|: z = 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_p(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_p(z) -{ 1 }-> 0 :|: z >= 0, 0 = 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 49 + 165*z + 56*z^2 + 6*z^3 }-> 1 + s25 :|: s25 >= 0, s25 <= z + 1, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: gr(z, z') -{ 2 + z' }-> s'' :|: s'' >= 0, s'' <= 2, z - 1 >= 0, z' - 1 >= 0 gr(z, z') -{ 1 }-> 2 :|: z - 1 >= 0, z' = 0 gr(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 gr(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 Function symbols to be analyzed: Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] encode_false: runtime: O(1) [0], size: O(1) [1] gr: runtime: O(n^1) [2 + z'], size: O(1) [2] encode_true: runtime: O(1) [0], size: O(1) [2] p: runtime: O(1) [1], size: O(n^1) [z] cond: runtime: O(n^2) [10 + 4*z' + z'*z'' + 2*z''], size: O(1) [0] encArg: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [1 + z] encode_p: runtime: O(n^3) [271 + 976*z + 357*z^2 + 42*z^3], size: O(n^1) [1 + z] encode_gr: runtime: O(n^3) [101 + 165*z + 56*z^2 + 6*z^3 + 166*z' + 56*z'^2 + 6*z'^3], size: O(1) [2] encode_s: runtime: O(n^3) [49 + 165*z + 56*z^2 + 6*z^3], size: O(n^1) [2 + z] encode_cond: runtime: O(n^3) [164 + 165*z + 56*z^2 + 6*z^3 + 170*z' + z'*z'' + 56*z'^2 + 6*z'^3 + 168*z'' + 56*z''^2 + 6*z''^3], size: O(1) [0] ---------------------------------------- (87) FinalProof (FINISHED) Computed overall runtime complexity ---------------------------------------- (88) BOUNDS(1, n^3) ---------------------------------------- (89) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (90) 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: cond(true, x, y) -> cond(gr(x, y), p(x), y) gr(0', x) -> false gr(s(x), 0') -> true gr(s(x), s(y)) -> gr(x, y) p(0') -> 0' p(s(x)) -> x The (relative) TRS S consists of the following rules: encArg(true) -> true encArg(0') -> 0' encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(cons_cond(x_1, x_2, x_3)) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_gr(x_1, x_2)) -> gr(encArg(x_1), encArg(x_2)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encode_cond(x_1, x_2, x_3) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_gr(x_1, x_2) -> gr(encArg(x_1), encArg(x_2)) encode_p(x_1) -> p(encArg(x_1)) encode_0 -> 0' encode_false -> false encode_s(x_1) -> s(encArg(x_1)) Rewrite Strategy: INNERMOST ---------------------------------------- (91) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (92) Obligation: Innermost TRS: Rules: cond(true, x, y) -> cond(gr(x, y), p(x), y) gr(0', x) -> false gr(s(x), 0') -> true gr(s(x), s(y)) -> gr(x, y) p(0') -> 0' p(s(x)) -> x encArg(true) -> true encArg(0') -> 0' encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(cons_cond(x_1, x_2, x_3)) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_gr(x_1, x_2)) -> gr(encArg(x_1), encArg(x_2)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encode_cond(x_1, x_2, x_3) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_gr(x_1, x_2) -> gr(encArg(x_1), encArg(x_2)) encode_p(x_1) -> p(encArg(x_1)) encode_0 -> 0' encode_false -> false encode_s(x_1) -> s(encArg(x_1)) Types: cond :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p true :: true:0':false:s:cons_cond:cons_gr:cons_p gr :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p p :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p 0' :: true:0':false:s:cons_cond:cons_gr:cons_p false :: true:0':false:s:cons_cond:cons_gr:cons_p s :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encArg :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p cons_cond :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p cons_gr :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p cons_p :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_cond :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_true :: true:0':false:s:cons_cond:cons_gr:cons_p encode_gr :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_p :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_0 :: true:0':false:s:cons_cond:cons_gr:cons_p encode_false :: true:0':false:s:cons_cond:cons_gr:cons_p encode_s :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p hole_true:0':false:s:cons_cond:cons_gr:cons_p1_4 :: true:0':false:s:cons_cond:cons_gr:cons_p gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4 :: Nat -> true:0':false:s:cons_cond:cons_gr:cons_p ---------------------------------------- (93) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: cond, gr, encArg They will be analysed ascendingly in the following order: gr < cond cond < encArg gr < encArg ---------------------------------------- (94) Obligation: Innermost TRS: Rules: cond(true, x, y) -> cond(gr(x, y), p(x), y) gr(0', x) -> false gr(s(x), 0') -> true gr(s(x), s(y)) -> gr(x, y) p(0') -> 0' p(s(x)) -> x encArg(true) -> true encArg(0') -> 0' encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(cons_cond(x_1, x_2, x_3)) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_gr(x_1, x_2)) -> gr(encArg(x_1), encArg(x_2)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encode_cond(x_1, x_2, x_3) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_gr(x_1, x_2) -> gr(encArg(x_1), encArg(x_2)) encode_p(x_1) -> p(encArg(x_1)) encode_0 -> 0' encode_false -> false encode_s(x_1) -> s(encArg(x_1)) Types: cond :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p true :: true:0':false:s:cons_cond:cons_gr:cons_p gr :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p p :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p 0' :: true:0':false:s:cons_cond:cons_gr:cons_p false :: true:0':false:s:cons_cond:cons_gr:cons_p s :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encArg :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p cons_cond :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p cons_gr :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p cons_p :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_cond :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_true :: true:0':false:s:cons_cond:cons_gr:cons_p encode_gr :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_p :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_0 :: true:0':false:s:cons_cond:cons_gr:cons_p encode_false :: true:0':false:s:cons_cond:cons_gr:cons_p encode_s :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p hole_true:0':false:s:cons_cond:cons_gr:cons_p1_4 :: true:0':false:s:cons_cond:cons_gr:cons_p gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4 :: Nat -> true:0':false:s:cons_cond:cons_gr:cons_p Generator Equations: gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(0) <=> true gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(x, 1)) <=> s(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(x)) The following defined symbols remain to be analysed: gr, cond, encArg They will be analysed ascendingly in the following order: gr < cond cond < encArg gr < encArg ---------------------------------------- (95) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: gr(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(1, n4_4)), gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(1, n4_4))) -> *3_4, rt in Omega(n4_4) Induction Base: gr(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(1, 0)), gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(1, 0))) Induction Step: gr(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(1, +(n4_4, 1))), gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(1, +(n4_4, 1)))) ->_R^Omega(1) gr(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(1, n4_4)), gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(1, n4_4))) ->_IH *3_4 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (96) Complex Obligation (BEST) ---------------------------------------- (97) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: cond(true, x, y) -> cond(gr(x, y), p(x), y) gr(0', x) -> false gr(s(x), 0') -> true gr(s(x), s(y)) -> gr(x, y) p(0') -> 0' p(s(x)) -> x encArg(true) -> true encArg(0') -> 0' encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(cons_cond(x_1, x_2, x_3)) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_gr(x_1, x_2)) -> gr(encArg(x_1), encArg(x_2)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encode_cond(x_1, x_2, x_3) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_gr(x_1, x_2) -> gr(encArg(x_1), encArg(x_2)) encode_p(x_1) -> p(encArg(x_1)) encode_0 -> 0' encode_false -> false encode_s(x_1) -> s(encArg(x_1)) Types: cond :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p true :: true:0':false:s:cons_cond:cons_gr:cons_p gr :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p p :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p 0' :: true:0':false:s:cons_cond:cons_gr:cons_p false :: true:0':false:s:cons_cond:cons_gr:cons_p s :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encArg :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p cons_cond :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p cons_gr :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p cons_p :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_cond :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_true :: true:0':false:s:cons_cond:cons_gr:cons_p encode_gr :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_p :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_0 :: true:0':false:s:cons_cond:cons_gr:cons_p encode_false :: true:0':false:s:cons_cond:cons_gr:cons_p encode_s :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p hole_true:0':false:s:cons_cond:cons_gr:cons_p1_4 :: true:0':false:s:cons_cond:cons_gr:cons_p gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4 :: Nat -> true:0':false:s:cons_cond:cons_gr:cons_p Generator Equations: gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(0) <=> true gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(x, 1)) <=> s(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(x)) The following defined symbols remain to be analysed: gr, cond, encArg They will be analysed ascendingly in the following order: gr < cond cond < encArg gr < encArg ---------------------------------------- (98) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (99) BOUNDS(n^1, INF) ---------------------------------------- (100) Obligation: Innermost TRS: Rules: cond(true, x, y) -> cond(gr(x, y), p(x), y) gr(0', x) -> false gr(s(x), 0') -> true gr(s(x), s(y)) -> gr(x, y) p(0') -> 0' p(s(x)) -> x encArg(true) -> true encArg(0') -> 0' encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(cons_cond(x_1, x_2, x_3)) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_gr(x_1, x_2)) -> gr(encArg(x_1), encArg(x_2)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encode_cond(x_1, x_2, x_3) -> cond(encArg(x_1), encArg(x_2), encArg(x_3)) encode_true -> true encode_gr(x_1, x_2) -> gr(encArg(x_1), encArg(x_2)) encode_p(x_1) -> p(encArg(x_1)) encode_0 -> 0' encode_false -> false encode_s(x_1) -> s(encArg(x_1)) Types: cond :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p true :: true:0':false:s:cons_cond:cons_gr:cons_p gr :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p p :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p 0' :: true:0':false:s:cons_cond:cons_gr:cons_p false :: true:0':false:s:cons_cond:cons_gr:cons_p s :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encArg :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p cons_cond :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p cons_gr :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p cons_p :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_cond :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_true :: true:0':false:s:cons_cond:cons_gr:cons_p encode_gr :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_p :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p encode_0 :: true:0':false:s:cons_cond:cons_gr:cons_p encode_false :: true:0':false:s:cons_cond:cons_gr:cons_p encode_s :: true:0':false:s:cons_cond:cons_gr:cons_p -> true:0':false:s:cons_cond:cons_gr:cons_p hole_true:0':false:s:cons_cond:cons_gr:cons_p1_4 :: true:0':false:s:cons_cond:cons_gr:cons_p gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4 :: Nat -> true:0':false:s:cons_cond:cons_gr:cons_p Lemmas: gr(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(1, n4_4)), gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(1, n4_4))) -> *3_4, rt in Omega(n4_4) Generator Equations: gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(0) <=> true gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(x, 1)) <=> s(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(x)) The following defined symbols remain to be analysed: cond, encArg They will be analysed ascendingly in the following order: cond < encArg ---------------------------------------- (101) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: encArg(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(n2271_4)) -> gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(n2271_4), rt in Omega(0) Induction Base: encArg(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(0)) ->_R^Omega(0) true Induction Step: encArg(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(+(n2271_4, 1))) ->_R^Omega(0) s(encArg(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(n2271_4))) ->_IH s(gen_true:0':false:s:cons_cond:cons_gr:cons_p2_4(c2272_4)) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (102) BOUNDS(1, INF)