/export/starexec/sandbox2/solver/bin/starexec_run_rcdcRelativeAlsoLower /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), O(n^2)) proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^2). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 154 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), 2909 ms] (12) CpxTypedWeightedCompleteTrs (13) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 8 ms] (14) CpxRNTS (15) InliningProof [UPPER BOUND(ID), 1009 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), 59 ms] (24) CpxRNTS (25) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (26) CpxRNTS (27) ResultPropagationProof [UPPER BOUND(ID), 5 ms] (28) CpxRNTS (29) IntTrsBoundProof [UPPER BOUND(ID), 140 ms] (30) CpxRNTS (31) IntTrsBoundProof [UPPER BOUND(ID), 43 ms] (32) CpxRNTS (33) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (34) CpxRNTS (35) IntTrsBoundProof [UPPER BOUND(ID), 87 ms] (36) CpxRNTS (37) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (38) CpxRNTS (39) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (40) CpxRNTS (41) IntTrsBoundProof [UPPER BOUND(ID), 157 ms] (42) CpxRNTS (43) IntTrsBoundProof [UPPER BOUND(ID), 42 ms] (44) CpxRNTS (45) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (46) CpxRNTS (47) IntTrsBoundProof [UPPER BOUND(ID), 77 ms] (48) CpxRNTS (49) IntTrsBoundProof [UPPER BOUND(ID), 21 ms] (50) CpxRNTS (51) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (52) CpxRNTS (53) IntTrsBoundProof [UPPER BOUND(ID), 1729 ms] (54) CpxRNTS (55) IntTrsBoundProof [UPPER BOUND(ID), 853 ms] (56) CpxRNTS (57) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (58) CpxRNTS (59) IntTrsBoundProof [UPPER BOUND(ID), 147 ms] (60) CpxRNTS (61) IntTrsBoundProof [UPPER BOUND(ID), 52 ms] (62) CpxRNTS (63) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (64) CpxRNTS (65) IntTrsBoundProof [UPPER BOUND(ID), 148 ms] (66) CpxRNTS (67) IntTrsBoundProof [UPPER BOUND(ID), 53 ms] (68) CpxRNTS (69) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (70) CpxRNTS (71) IntTrsBoundProof [UPPER BOUND(ID), 3432 ms] (72) CpxRNTS (73) IntTrsBoundProof [UPPER BOUND(ID), 2302 ms] (74) CpxRNTS (75) ResultPropagationProof [UPPER BOUND(ID), 9 ms] (76) CpxRNTS (77) IntTrsBoundProof [UPPER BOUND(ID), 943 ms] (78) CpxRNTS (79) IntTrsBoundProof [UPPER BOUND(ID), 38 ms] (80) CpxRNTS (81) ResultPropagationProof [UPPER BOUND(ID), 1 ms] (82) CpxRNTS (83) IntTrsBoundProof [UPPER BOUND(ID), 668 ms] (84) CpxRNTS (85) IntTrsBoundProof [UPPER BOUND(ID), 117 ms] (86) CpxRNTS (87) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (88) CpxRNTS (89) IntTrsBoundProof [UPPER BOUND(ID), 508 ms] (90) CpxRNTS (91) IntTrsBoundProof [UPPER BOUND(ID), 97 ms] (92) CpxRNTS (93) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (94) CpxRNTS (95) IntTrsBoundProof [UPPER BOUND(ID), 211 ms] (96) CpxRNTS (97) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (98) CpxRNTS (99) ResultPropagationProof [UPPER BOUND(ID), 4 ms] (100) CpxRNTS (101) IntTrsBoundProof [UPPER BOUND(ID), 208 ms] (102) CpxRNTS (103) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (104) CpxRNTS (105) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (106) CpxRNTS (107) IntTrsBoundProof [UPPER BOUND(ID), 867 ms] (108) CpxRNTS (109) IntTrsBoundProof [UPPER BOUND(ID), 357 ms] (110) CpxRNTS (111) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (112) CpxRNTS (113) IntTrsBoundProof [UPPER BOUND(ID), 217 ms] (114) CpxRNTS (115) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (116) CpxRNTS (117) FinalProof [FINISHED, 0 ms] (118) BOUNDS(1, n^2) (119) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (120) TRS for Loop Detection (121) DecreasingLoopProof [LOWER BOUND(ID), 70 ms] (122) BEST (123) proven lower bound (124) LowerBoundPropagationProof [FINISHED, 0 ms] (125) BOUNDS(n^1, INF) (126) TRS for Loop Detection ---------------------------------------- (0) Obligation: The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: nonZero(0) -> false nonZero(s(x)) -> true p(0) -> 0 p(s(x)) -> x id_inc(x) -> x id_inc(x) -> s(x) random(x) -> rand(x, 0) rand(x, y) -> if(nonZero(x), x, y) if(false, x, y) -> y if(true, x, y) -> rand(p(x), id_inc(y)) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (1) DerivationalComplexityToRuntimeComplexityProof (BOTH BOUNDS(ID, ID)) The following rules have been added to S to convert the given derivational complexity problem to a runtime complexity problem: encArg(0) -> 0 encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(true) -> true encArg(cons_nonZero(x_1)) -> nonZero(encArg(x_1)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encArg(cons_id_inc(x_1)) -> id_inc(encArg(x_1)) encArg(cons_random(x_1)) -> random(encArg(x_1)) encArg(cons_rand(x_1, x_2)) -> rand(encArg(x_1), encArg(x_2)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_nonZero(x_1) -> nonZero(encArg(x_1)) encode_0 -> 0 encode_false -> false encode_s(x_1) -> s(encArg(x_1)) encode_true -> true encode_p(x_1) -> p(encArg(x_1)) encode_id_inc(x_1) -> id_inc(encArg(x_1)) encode_random(x_1) -> random(encArg(x_1)) encode_rand(x_1, x_2) -> rand(encArg(x_1), encArg(x_2)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: nonZero(0) -> false nonZero(s(x)) -> true p(0) -> 0 p(s(x)) -> x id_inc(x) -> x id_inc(x) -> s(x) random(x) -> rand(x, 0) rand(x, y) -> if(nonZero(x), x, y) if(false, x, y) -> y if(true, x, y) -> rand(p(x), id_inc(y)) The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(true) -> true encArg(cons_nonZero(x_1)) -> nonZero(encArg(x_1)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encArg(cons_id_inc(x_1)) -> id_inc(encArg(x_1)) encArg(cons_random(x_1)) -> random(encArg(x_1)) encArg(cons_rand(x_1, x_2)) -> rand(encArg(x_1), encArg(x_2)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_nonZero(x_1) -> nonZero(encArg(x_1)) encode_0 -> 0 encode_false -> false encode_s(x_1) -> s(encArg(x_1)) encode_true -> true encode_p(x_1) -> p(encArg(x_1)) encode_id_inc(x_1) -> id_inc(encArg(x_1)) encode_random(x_1) -> random(encArg(x_1)) encode_rand(x_1, x_2) -> rand(encArg(x_1), encArg(x_2)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) Rewrite Strategy: INNERMOST ---------------------------------------- (3) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: nonZero(0) -> false nonZero(s(x)) -> true p(0) -> 0 p(s(x)) -> x id_inc(x) -> x id_inc(x) -> s(x) random(x) -> rand(x, 0) rand(x, y) -> if(nonZero(x), x, y) if(false, x, y) -> y if(true, x, y) -> rand(p(x), id_inc(y)) The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(true) -> true encArg(cons_nonZero(x_1)) -> nonZero(encArg(x_1)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encArg(cons_id_inc(x_1)) -> id_inc(encArg(x_1)) encArg(cons_random(x_1)) -> random(encArg(x_1)) encArg(cons_rand(x_1, x_2)) -> rand(encArg(x_1), encArg(x_2)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_nonZero(x_1) -> nonZero(encArg(x_1)) encode_0 -> 0 encode_false -> false encode_s(x_1) -> s(encArg(x_1)) encode_true -> true encode_p(x_1) -> p(encArg(x_1)) encode_id_inc(x_1) -> id_inc(encArg(x_1)) encode_random(x_1) -> random(encArg(x_1)) encode_rand(x_1, x_2) -> rand(encArg(x_1), encArg(x_2)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) Rewrite Strategy: INNERMOST ---------------------------------------- (5) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^2). The TRS R consists of the following rules: nonZero(0) -> false [1] nonZero(s(x)) -> true [1] p(0) -> 0 [1] p(s(x)) -> x [1] id_inc(x) -> x [1] id_inc(x) -> s(x) [1] random(x) -> rand(x, 0) [1] rand(x, y) -> if(nonZero(x), x, y) [1] if(false, x, y) -> y [1] if(true, x, y) -> rand(p(x), id_inc(y)) [1] encArg(0) -> 0 [0] encArg(false) -> false [0] encArg(s(x_1)) -> s(encArg(x_1)) [0] encArg(true) -> true [0] encArg(cons_nonZero(x_1)) -> nonZero(encArg(x_1)) [0] encArg(cons_p(x_1)) -> p(encArg(x_1)) [0] encArg(cons_id_inc(x_1)) -> id_inc(encArg(x_1)) [0] encArg(cons_random(x_1)) -> random(encArg(x_1)) [0] encArg(cons_rand(x_1, x_2)) -> rand(encArg(x_1), encArg(x_2)) [0] encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_nonZero(x_1) -> nonZero(encArg(x_1)) [0] encode_0 -> 0 [0] encode_false -> false [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_true -> true [0] encode_p(x_1) -> p(encArg(x_1)) [0] encode_id_inc(x_1) -> id_inc(encArg(x_1)) [0] encode_random(x_1) -> random(encArg(x_1)) [0] encode_rand(x_1, x_2) -> rand(encArg(x_1), encArg(x_2)) [0] encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [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: nonZero(0) -> false [1] nonZero(s(x)) -> true [1] p(0) -> 0 [1] p(s(x)) -> x [1] id_inc(x) -> x [1] id_inc(x) -> s(x) [1] random(x) -> rand(x, 0) [1] rand(x, y) -> if(nonZero(x), x, y) [1] if(false, x, y) -> y [1] if(true, x, y) -> rand(p(x), id_inc(y)) [1] encArg(0) -> 0 [0] encArg(false) -> false [0] encArg(s(x_1)) -> s(encArg(x_1)) [0] encArg(true) -> true [0] encArg(cons_nonZero(x_1)) -> nonZero(encArg(x_1)) [0] encArg(cons_p(x_1)) -> p(encArg(x_1)) [0] encArg(cons_id_inc(x_1)) -> id_inc(encArg(x_1)) [0] encArg(cons_random(x_1)) -> random(encArg(x_1)) [0] encArg(cons_rand(x_1, x_2)) -> rand(encArg(x_1), encArg(x_2)) [0] encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_nonZero(x_1) -> nonZero(encArg(x_1)) [0] encode_0 -> 0 [0] encode_false -> false [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_true -> true [0] encode_p(x_1) -> p(encArg(x_1)) [0] encode_id_inc(x_1) -> id_inc(encArg(x_1)) [0] encode_random(x_1) -> random(encArg(x_1)) [0] encode_rand(x_1, x_2) -> rand(encArg(x_1), encArg(x_2)) [0] encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] The TRS has the following type information: nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if 0 :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if false :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if s :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if true :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if id_inc :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if random :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if rand :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if encArg :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if cons_nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if cons_p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if cons_id_inc :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if cons_random :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if cons_rand :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if cons_if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if encode_nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if encode_0 :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if encode_false :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if encode_s :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if encode_true :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if encode_p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if encode_id_inc :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if encode_random :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if encode_rand :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if encode_if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if 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: nonZero_1 p_1 id_inc_1 rand_2 if_3 random_1 encArg_1 encode_nonZero_1 encode_0 encode_false encode_s_1 encode_true encode_p_1 encode_id_inc_1 encode_random_1 encode_rand_2 encode_if_3 Due to the following rules being added: encArg(v0) -> null_encArg [0] encode_nonZero(v0) -> null_encode_nonZero [0] encode_0 -> null_encode_0 [0] encode_false -> null_encode_false [0] encode_s(v0) -> null_encode_s [0] encode_true -> null_encode_true [0] encode_p(v0) -> null_encode_p [0] encode_id_inc(v0) -> null_encode_id_inc [0] encode_random(v0) -> null_encode_random [0] encode_rand(v0, v1) -> null_encode_rand [0] encode_if(v0, v1, v2) -> null_encode_if [0] nonZero(v0) -> null_nonZero [0] p(v0) -> null_p [0] if(v0, v1, v2) -> null_if [0] And the following fresh constants: null_encArg, null_encode_nonZero, null_encode_0, null_encode_false, null_encode_s, null_encode_true, null_encode_p, null_encode_id_inc, null_encode_random, null_encode_rand, null_encode_if, null_nonZero, null_p, null_if ---------------------------------------- (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: nonZero(0) -> false [1] nonZero(s(x)) -> true [1] p(0) -> 0 [1] p(s(x)) -> x [1] id_inc(x) -> x [1] id_inc(x) -> s(x) [1] random(x) -> rand(x, 0) [1] rand(x, y) -> if(nonZero(x), x, y) [1] if(false, x, y) -> y [1] if(true, x, y) -> rand(p(x), id_inc(y)) [1] encArg(0) -> 0 [0] encArg(false) -> false [0] encArg(s(x_1)) -> s(encArg(x_1)) [0] encArg(true) -> true [0] encArg(cons_nonZero(x_1)) -> nonZero(encArg(x_1)) [0] encArg(cons_p(x_1)) -> p(encArg(x_1)) [0] encArg(cons_id_inc(x_1)) -> id_inc(encArg(x_1)) [0] encArg(cons_random(x_1)) -> random(encArg(x_1)) [0] encArg(cons_rand(x_1, x_2)) -> rand(encArg(x_1), encArg(x_2)) [0] encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_nonZero(x_1) -> nonZero(encArg(x_1)) [0] encode_0 -> 0 [0] encode_false -> false [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_true -> true [0] encode_p(x_1) -> p(encArg(x_1)) [0] encode_id_inc(x_1) -> id_inc(encArg(x_1)) [0] encode_random(x_1) -> random(encArg(x_1)) [0] encode_rand(x_1, x_2) -> rand(encArg(x_1), encArg(x_2)) [0] encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(v0) -> null_encArg [0] encode_nonZero(v0) -> null_encode_nonZero [0] encode_0 -> null_encode_0 [0] encode_false -> null_encode_false [0] encode_s(v0) -> null_encode_s [0] encode_true -> null_encode_true [0] encode_p(v0) -> null_encode_p [0] encode_id_inc(v0) -> null_encode_id_inc [0] encode_random(v0) -> null_encode_random [0] encode_rand(v0, v1) -> null_encode_rand [0] encode_if(v0, v1, v2) -> null_encode_if [0] nonZero(v0) -> null_nonZero [0] p(v0) -> null_p [0] if(v0, v1, v2) -> null_if [0] The TRS has the following type information: nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if 0 :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if false :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if s :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if true :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if id_inc :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if random :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if rand :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encArg :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if cons_nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if cons_p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if cons_id_inc :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if cons_random :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if cons_rand :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if cons_if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_0 :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_false :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_s :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_true :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_id_inc :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_random :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_rand :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encArg :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_0 :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_false :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_s :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_true :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_id_inc :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_random :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_rand :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if 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: nonZero(0) -> false [1] nonZero(s(x)) -> true [1] p(0) -> 0 [1] p(s(x)) -> x [1] id_inc(x) -> x [1] id_inc(x) -> s(x) [1] random(x) -> rand(x, 0) [1] rand(0, y) -> if(false, 0, y) [2] rand(s(x'), y) -> if(true, s(x'), y) [2] rand(x, y) -> if(null_nonZero, x, y) [1] if(false, x, y) -> y [1] if(true, 0, y) -> rand(0, y) [3] if(true, 0, y) -> rand(0, s(y)) [3] if(true, s(x''), y) -> rand(x'', y) [3] if(true, s(x''), y) -> rand(x'', s(y)) [3] if(true, x, y) -> rand(null_p, y) [2] if(true, x, y) -> rand(null_p, s(y)) [2] encArg(0) -> 0 [0] encArg(false) -> false [0] encArg(s(x_1)) -> s(encArg(x_1)) [0] encArg(true) -> true [0] encArg(cons_nonZero(0)) -> nonZero(0) [0] encArg(cons_nonZero(false)) -> nonZero(false) [0] encArg(cons_nonZero(s(x_1'))) -> nonZero(s(encArg(x_1'))) [0] encArg(cons_nonZero(true)) -> nonZero(true) [0] encArg(cons_nonZero(cons_nonZero(x_1''))) -> nonZero(nonZero(encArg(x_1''))) [0] encArg(cons_nonZero(cons_p(x_11))) -> nonZero(p(encArg(x_11))) [0] encArg(cons_nonZero(cons_id_inc(x_12))) -> nonZero(id_inc(encArg(x_12))) [0] encArg(cons_nonZero(cons_random(x_13))) -> nonZero(random(encArg(x_13))) [0] encArg(cons_nonZero(cons_rand(x_14, x_2'))) -> nonZero(rand(encArg(x_14), encArg(x_2'))) [0] encArg(cons_nonZero(cons_if(x_15, x_2'', x_3'))) -> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) [0] encArg(cons_nonZero(x_1)) -> nonZero(null_encArg) [0] encArg(cons_p(0)) -> p(0) [0] encArg(cons_p(false)) -> p(false) [0] encArg(cons_p(s(x_16))) -> p(s(encArg(x_16))) [0] encArg(cons_p(true)) -> p(true) [0] encArg(cons_p(cons_nonZero(x_17))) -> p(nonZero(encArg(x_17))) [0] encArg(cons_p(cons_p(x_18))) -> p(p(encArg(x_18))) [0] encArg(cons_p(cons_id_inc(x_19))) -> p(id_inc(encArg(x_19))) [0] encArg(cons_p(cons_random(x_110))) -> p(random(encArg(x_110))) [0] encArg(cons_p(cons_rand(x_111, x_21))) -> p(rand(encArg(x_111), encArg(x_21))) [0] encArg(cons_p(cons_if(x_112, x_22, x_3''))) -> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) [0] encArg(cons_p(x_1)) -> p(null_encArg) [0] encArg(cons_id_inc(0)) -> id_inc(0) [0] encArg(cons_id_inc(false)) -> id_inc(false) [0] encArg(cons_id_inc(s(x_113))) -> id_inc(s(encArg(x_113))) [0] encArg(cons_id_inc(true)) -> id_inc(true) [0] encArg(cons_id_inc(cons_nonZero(x_114))) -> id_inc(nonZero(encArg(x_114))) [0] encArg(cons_id_inc(cons_p(x_115))) -> id_inc(p(encArg(x_115))) [0] encArg(cons_id_inc(cons_id_inc(x_116))) -> id_inc(id_inc(encArg(x_116))) [0] encArg(cons_id_inc(cons_random(x_117))) -> id_inc(random(encArg(x_117))) [0] encArg(cons_id_inc(cons_rand(x_118, x_23))) -> id_inc(rand(encArg(x_118), encArg(x_23))) [0] encArg(cons_id_inc(cons_if(x_119, x_24, x_31))) -> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) [0] encArg(cons_id_inc(x_1)) -> id_inc(null_encArg) [0] encArg(cons_random(0)) -> random(0) [0] encArg(cons_random(false)) -> random(false) [0] encArg(cons_random(s(x_120))) -> random(s(encArg(x_120))) [0] encArg(cons_random(true)) -> random(true) [0] encArg(cons_random(cons_nonZero(x_121))) -> random(nonZero(encArg(x_121))) [0] encArg(cons_random(cons_p(x_122))) -> random(p(encArg(x_122))) [0] encArg(cons_random(cons_id_inc(x_123))) -> random(id_inc(encArg(x_123))) [0] encArg(cons_random(cons_random(x_124))) -> random(random(encArg(x_124))) [0] encArg(cons_random(cons_rand(x_125, x_25))) -> random(rand(encArg(x_125), encArg(x_25))) [0] encArg(cons_random(cons_if(x_126, x_26, x_32))) -> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) [0] encArg(cons_random(x_1)) -> random(null_encArg) [0] encArg(cons_rand(x_1, x_2)) -> rand(encArg(x_1), encArg(x_2)) [0] encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_nonZero(0) -> nonZero(0) [0] encode_nonZero(false) -> nonZero(false) [0] encode_nonZero(s(x_11042)) -> nonZero(s(encArg(x_11042))) [0] encode_nonZero(true) -> nonZero(true) [0] encode_nonZero(cons_nonZero(x_11043)) -> nonZero(nonZero(encArg(x_11043))) [0] encode_nonZero(cons_p(x_11044)) -> nonZero(p(encArg(x_11044))) [0] encode_nonZero(cons_id_inc(x_11045)) -> nonZero(id_inc(encArg(x_11045))) [0] encode_nonZero(cons_random(x_11046)) -> nonZero(random(encArg(x_11046))) [0] encode_nonZero(cons_rand(x_11047, x_2297)) -> nonZero(rand(encArg(x_11047), encArg(x_2297))) [0] encode_nonZero(cons_if(x_11048, x_2298, x_3148)) -> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) [0] encode_nonZero(x_1) -> nonZero(null_encArg) [0] encode_0 -> 0 [0] encode_false -> false [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_true -> true [0] encode_p(0) -> p(0) [0] encode_p(false) -> p(false) [0] encode_p(s(x_11049)) -> p(s(encArg(x_11049))) [0] encode_p(true) -> p(true) [0] encode_p(cons_nonZero(x_11050)) -> p(nonZero(encArg(x_11050))) [0] encode_p(cons_p(x_11051)) -> p(p(encArg(x_11051))) [0] encode_p(cons_id_inc(x_11052)) -> p(id_inc(encArg(x_11052))) [0] encode_p(cons_random(x_11053)) -> p(random(encArg(x_11053))) [0] encode_p(cons_rand(x_11054, x_2299)) -> p(rand(encArg(x_11054), encArg(x_2299))) [0] encode_p(cons_if(x_11055, x_2300, x_3149)) -> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) [0] encode_p(x_1) -> p(null_encArg) [0] encode_id_inc(0) -> id_inc(0) [0] encode_id_inc(false) -> id_inc(false) [0] encode_id_inc(s(x_11056)) -> id_inc(s(encArg(x_11056))) [0] encode_id_inc(true) -> id_inc(true) [0] encode_id_inc(cons_nonZero(x_11057)) -> id_inc(nonZero(encArg(x_11057))) [0] encode_id_inc(cons_p(x_11058)) -> id_inc(p(encArg(x_11058))) [0] encode_id_inc(cons_id_inc(x_11059)) -> id_inc(id_inc(encArg(x_11059))) [0] encode_id_inc(cons_random(x_11060)) -> id_inc(random(encArg(x_11060))) [0] encode_id_inc(cons_rand(x_11061, x_2301)) -> id_inc(rand(encArg(x_11061), encArg(x_2301))) [0] encode_id_inc(cons_if(x_11062, x_2302, x_3150)) -> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) [0] encode_id_inc(x_1) -> id_inc(null_encArg) [0] encode_random(0) -> random(0) [0] encode_random(false) -> random(false) [0] encode_random(s(x_11063)) -> random(s(encArg(x_11063))) [0] encode_random(true) -> random(true) [0] encode_random(cons_nonZero(x_11064)) -> random(nonZero(encArg(x_11064))) [0] encode_random(cons_p(x_11065)) -> random(p(encArg(x_11065))) [0] encode_random(cons_id_inc(x_11066)) -> random(id_inc(encArg(x_11066))) [0] encode_random(cons_random(x_11067)) -> random(random(encArg(x_11067))) [0] encode_random(cons_rand(x_11068, x_2303)) -> random(rand(encArg(x_11068), encArg(x_2303))) [0] encode_random(cons_if(x_11069, x_2304, x_3151)) -> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) [0] encode_random(x_1) -> random(null_encArg) [0] encode_rand(x_1, x_2) -> rand(encArg(x_1), encArg(x_2)) [0] encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(v0) -> null_encArg [0] encode_nonZero(v0) -> null_encode_nonZero [0] encode_0 -> null_encode_0 [0] encode_false -> null_encode_false [0] encode_s(v0) -> null_encode_s [0] encode_true -> null_encode_true [0] encode_p(v0) -> null_encode_p [0] encode_id_inc(v0) -> null_encode_id_inc [0] encode_random(v0) -> null_encode_random [0] encode_rand(v0, v1) -> null_encode_rand [0] encode_if(v0, v1, v2) -> null_encode_if [0] nonZero(v0) -> null_nonZero [0] p(v0) -> null_p [0] if(v0, v1, v2) -> null_if [0] The TRS has the following type information: nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if 0 :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if false :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if s :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if true :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if id_inc :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if random :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if rand :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encArg :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if cons_nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if cons_p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if cons_id_inc :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if cons_random :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if cons_rand :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if cons_if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_0 :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_false :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_s :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_true :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_id_inc :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_random :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_rand :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if encode_if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if -> 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encArg :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_0 :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_false :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_s :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_true :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_id_inc :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_random :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_rand :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_encode_if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_nonZero :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_p :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if null_if :: 0:false:s:true:cons_nonZero:cons_p:cons_id_inc:cons_random:cons_rand:cons_if:null_encArg:null_encode_nonZero:null_encode_0:null_encode_false:null_encode_s:null_encode_true:null_encode_p:null_encode_id_inc:null_encode_random:null_encode_rand:null_encode_if:null_nonZero:null_p:null_if 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: 0 => 0 false => 1 true => 2 null_encArg => 0 null_encode_nonZero => 0 null_encode_0 => 0 null_encode_false => 0 null_encode_s => 0 null_encode_true => 0 null_encode_p => 0 null_encode_id_inc => 0 null_encode_random => 0 null_encode_rand => 0 null_encode_if => 0 null_nonZero => 0 null_p => 0 null_if => 0 ---------------------------------------- (14) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 0 }-> random(random(encArg(x_124))) :|: x_124 >= 0, z = 1 + (1 + x_124) encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(x_122))) :|: x_122 >= 0, z = 1 + (1 + x_122) encArg(z) -{ 0 }-> random(nonZero(encArg(x_121))) :|: z = 1 + (1 + x_121), x_121 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(x_123))) :|: x_123 >= 0, z = 1 + (1 + x_123) encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(x_120)) :|: x_120 >= 0, z = 1 + (1 + x_120) encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(x_110))) :|: z = 1 + (1 + x_110), x_110 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(x_18))) :|: z = 1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(x_17))) :|: x_17 >= 0, z = 1 + (1 + x_17) encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(x_19))) :|: z = 1 + (1 + x_19), x_19 >= 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_16)) :|: x_16 >= 0, z = 1 + (1 + x_16) encArg(z) -{ 0 }-> nonZero(random(encArg(x_13))) :|: z = 1 + (1 + x_13), x_13 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(x_11))) :|: x_11 >= 0, z = 1 + (1 + x_11) encArg(z) -{ 0 }-> nonZero(nonZero(encArg(x_1''))) :|: z = 1 + (1 + x_1''), x_1'' >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(x_12))) :|: z = 1 + (1 + x_12), x_12 >= 0 encArg(z) -{ 0 }-> nonZero(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> nonZero(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> nonZero(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> nonZero(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(x_1')) :|: z = 1 + (1 + x_1'), x_1' >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(x_117))) :|: z = 1 + (1 + x_117), x_117 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(x_115))) :|: z = 1 + (1 + x_115), x_115 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(x_114))) :|: z = 1 + (1 + x_114), x_114 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(x_116))) :|: z = 1 + (1 + x_116), x_116 >= 0 encArg(z) -{ 0 }-> id_inc(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> id_inc(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> id_inc(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> id_inc(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(x_113)) :|: x_113 >= 0, z = 1 + (1 + x_113) 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_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(x_11060))) :|: z = 1 + x_11060, x_11060 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(x_11058))) :|: x_11058 >= 0, z = 1 + x_11058 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(x_11057))) :|: z = 1 + x_11057, x_11057 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(x_11059))) :|: z = 1 + x_11059, x_11059 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(2) :|: z = 2 encode_id_inc(z) -{ 0 }-> id_inc(1) :|: z = 1 encode_id_inc(z) -{ 0 }-> id_inc(0) :|: z = 0 encode_id_inc(z) -{ 0 }-> id_inc(0) :|: x_1 >= 0, z = x_1 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(x_11056)) :|: z = 1 + x_11056, x_11056 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_if(z, z', z'') -{ 0 }-> if(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_if(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(x_11046))) :|: z = 1 + x_11046, x_11046 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(x_11044))) :|: x_11044 >= 0, z = 1 + x_11044 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(x_11043))) :|: z = 1 + x_11043, x_11043 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(x_11045))) :|: z = 1 + x_11045, x_11045 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(2) :|: z = 2 encode_nonZero(z) -{ 0 }-> nonZero(1) :|: z = 1 encode_nonZero(z) -{ 0 }-> nonZero(0) :|: z = 0 encode_nonZero(z) -{ 0 }-> nonZero(0) :|: x_1 >= 0, z = x_1 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(x_11042)) :|: z = 1 + x_11042, x_11042 >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_p(z) -{ 0 }-> p(random(encArg(x_11053))) :|: z = 1 + x_11053, x_11053 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(x_11051))) :|: x_11051 >= 0, z = 1 + x_11051 encode_p(z) -{ 0 }-> p(nonZero(encArg(x_11050))) :|: x_11050 >= 0, z = 1 + x_11050 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(x_11052))) :|: z = 1 + x_11052, x_11052 >= 0 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_11049)) :|: x_11049 >= 0, z = 1 + x_11049 encode_p(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_rand(z, z') -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_rand(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_random(z) -{ 0 }-> random(random(encArg(x_11067))) :|: x_11067 >= 0, z = 1 + x_11067 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(x_11065))) :|: x_11065 >= 0, z = 1 + x_11065 encode_random(z) -{ 0 }-> random(nonZero(encArg(x_11064))) :|: x_11064 >= 0, z = 1 + x_11064 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(x_11066))) :|: z = 1 + x_11066, x_11066 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: x_1 >= 0, z = x_1 encode_random(z) -{ 0 }-> random(1 + encArg(x_11063)) :|: x_11063 >= 0, z = 1 + x_11063 encode_random(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 :|: id_inc(z) -{ 1 }-> x :|: x >= 0, z = x id_inc(z) -{ 1 }-> 1 + x :|: x >= 0, z = x if(z, z', z'') -{ 1 }-> y :|: z' = x, z'' = y, z = 1, x >= 0, y >= 0 if(z, z', z'') -{ 3 }-> rand(x'', y) :|: z = 2, z' = 1 + x'', z'' = y, y >= 0, x'' >= 0 if(z, z', z'') -{ 3 }-> rand(x'', 1 + y) :|: z = 2, z' = 1 + x'', z'' = y, y >= 0, x'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, y) :|: z = 2, z'' = y, y >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, y) :|: z = 2, z' = x, z'' = y, x >= 0, y >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + y) :|: z = 2, z'' = y, y >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + y) :|: z = 2, z' = x, z'' = y, x >= 0, y >= 0 if(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 nonZero(z) -{ 1 }-> 2 :|: x >= 0, z = 1 + x nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 p(z) -{ 1 }-> x :|: x >= 0, z = 1 + x p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 rand(z, z') -{ 2 }-> if(2, 1 + x', y) :|: z = 1 + x', x' >= 0, y >= 0, z' = y rand(z, z') -{ 2 }-> if(1, 0, y) :|: y >= 0, z = 0, z' = y rand(z, z') -{ 1 }-> if(0, x, y) :|: x >= 0, y >= 0, z = x, z' = y random(z) -{ 1 }-> rand(x, 0) :|: x >= 0, z = x ---------------------------------------- (15) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: nonZero(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 nonZero(z) -{ 1 }-> 2 :|: x >= 0, z = 1 + x nonZero(z) -{ 1 }-> 1 :|: z = 0 p(z) -{ 1 }-> x :|: x >= 0, z = 1 + x p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 id_inc(z) -{ 1 }-> x :|: x >= 0, z = x id_inc(z) -{ 1 }-> 1 + x :|: x >= 0, z = x ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z = 1 + x_1, x_1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(x_124))) :|: x_124 >= 0, z = 1 + (1 + x_124) encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(x_122))) :|: x_122 >= 0, z = 1 + (1 + x_122) encArg(z) -{ 0 }-> random(nonZero(encArg(x_121))) :|: z = 1 + (1 + x_121), x_121 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(x_123))) :|: x_123 >= 0, z = 1 + (1 + x_123) encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(x_120)) :|: x_120 >= 0, z = 1 + (1 + x_120) encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(x_110))) :|: z = 1 + (1 + x_110), x_110 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(x_18))) :|: z = 1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(x_17))) :|: x_17 >= 0, z = 1 + (1 + x_17) encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(x_19))) :|: z = 1 + (1 + x_19), x_19 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(x_16)) :|: x_16 >= 0, z = 1 + (1 + x_16) encArg(z) -{ 0 }-> nonZero(random(encArg(x_13))) :|: z = 1 + (1 + x_13), x_13 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(x_11))) :|: x_11 >= 0, z = 1 + (1 + x_11) encArg(z) -{ 0 }-> nonZero(nonZero(encArg(x_1''))) :|: z = 1 + (1 + x_1''), x_1'' >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(x_12))) :|: z = 1 + (1 + x_12), x_12 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(x_1')) :|: z = 1 + (1 + x_1'), x_1' >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(x_117))) :|: z = 1 + (1 + x_117), x_117 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(x_115))) :|: z = 1 + (1 + x_115), x_115 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(x_114))) :|: z = 1 + (1 + x_114), x_114 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(x_116))) :|: z = 1 + (1 + x_116), x_116 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(x_113)) :|: x_113 >= 0, z = 1 + (1 + x_113) encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z = 1 + x_1, x_1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + x_1, x_1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z = 1 + x_1, x_1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + x_1, x_1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(x_1) :|: z = 1 + x_1, x_1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: x_1 >= 0, z = x_1, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(x_11060))) :|: z = 1 + x_11060, x_11060 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(x_11058))) :|: x_11058 >= 0, z = 1 + x_11058 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(x_11057))) :|: z = 1 + x_11057, x_11057 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(x_11059))) :|: z = 1 + x_11059, x_11059 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(x_11056)) :|: z = 1 + x_11056, x_11056 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: x_1 >= 0, z = x_1, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(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_if(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(x_11046))) :|: z = 1 + x_11046, x_11046 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(x_11044))) :|: x_11044 >= 0, z = 1 + x_11044 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(x_11043))) :|: z = 1 + x_11043, x_11043 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(x_11045))) :|: z = 1 + x_11045, x_11045 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(x_11042)) :|: z = 1 + x_11042, x_11042 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: x_1 >= 0, z = x_1, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: x_1 >= 0, z = x_1, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(x_11053))) :|: z = 1 + x_11053, x_11053 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(x_11051))) :|: x_11051 >= 0, z = 1 + x_11051 encode_p(z) -{ 0 }-> p(nonZero(encArg(x_11050))) :|: x_11050 >= 0, z = 1 + x_11050 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(x_11052))) :|: z = 1 + x_11052, x_11052 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(x_11049)) :|: x_11049 >= 0, z = 1 + x_11049 encode_p(z) -{ 0 }-> 0 :|: v0 >= 0, z = 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) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = 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_rand(z, z') -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_rand(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_random(z) -{ 0 }-> random(random(encArg(x_11067))) :|: x_11067 >= 0, z = 1 + x_11067 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(x_11065))) :|: x_11065 >= 0, z = 1 + x_11065 encode_random(z) -{ 0 }-> random(nonZero(encArg(x_11064))) :|: x_11064 >= 0, z = 1 + x_11064 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(x_11066))) :|: z = 1 + x_11066, x_11066 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: x_1 >= 0, z = x_1 encode_random(z) -{ 0 }-> random(1 + encArg(x_11063)) :|: x_11063 >= 0, z = 1 + x_11063 encode_random(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 :|: id_inc(z) -{ 1 }-> x :|: x >= 0, z = x id_inc(z) -{ 1 }-> 1 + x :|: x >= 0, z = x if(z, z', z'') -{ 1 }-> y :|: z' = x, z'' = y, z = 1, x >= 0, y >= 0 if(z, z', z'') -{ 3 }-> rand(x'', y) :|: z = 2, z' = 1 + x'', z'' = y, y >= 0, x'' >= 0 if(z, z', z'') -{ 3 }-> rand(x'', 1 + y) :|: z = 2, z' = 1 + x'', z'' = y, y >= 0, x'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, y) :|: z = 2, z'' = y, y >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, y) :|: z = 2, z' = x, z'' = y, x >= 0, y >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + y) :|: z = 2, z'' = y, y >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + y) :|: z = 2, z' = x, z'' = y, x >= 0, y >= 0 if(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 nonZero(z) -{ 1 }-> 2 :|: x >= 0, z = 1 + x nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 p(z) -{ 1 }-> x :|: x >= 0, z = 1 + x p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 rand(z, z') -{ 2 }-> if(2, 1 + x', y) :|: z = 1 + x', x' >= 0, y >= 0, z' = y rand(z, z') -{ 2 }-> if(1, 0, y) :|: y >= 0, z = 0, z' = y rand(z, z') -{ 1 }-> if(0, x, y) :|: x >= 0, y >= 0, z = x, z' = y random(z) -{ 1 }-> rand(x, 0) :|: x >= 0, z = x ---------------------------------------- (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: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 ---------------------------------------- (19) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { encode_0 } { nonZero } { encode_false } { id_inc } { encode_true } { if, rand } { p } { random } { encArg } { encode_id_inc } { encode_p } { encode_nonZero } { encode_if } { encode_rand } { encode_random } { encode_s } ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {encode_0}, {nonZero}, {encode_false}, {id_inc}, {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} ---------------------------------------- (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: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {encode_0}, {nonZero}, {encode_false}, {id_inc}, {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} ---------------------------------------- (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: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {encode_0}, {nonZero}, {encode_false}, {id_inc}, {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} 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: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {nonZero}, {encode_false}, {id_inc}, {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} 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: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {nonZero}, {encode_false}, {id_inc}, {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} 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: nonZero after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {nonZero}, {encode_false}, {id_inc}, {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: ?, size: O(1) [2] ---------------------------------------- (31) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: nonZero after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {encode_false}, {id_inc}, {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] ---------------------------------------- (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: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {encode_false}, {id_inc}, {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] ---------------------------------------- (35) 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 ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {encode_false}, {id_inc}, {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: ?, size: O(1) [1] ---------------------------------------- (37) 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 ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {id_inc}, {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] ---------------------------------------- (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: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {id_inc}, {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] ---------------------------------------- (41) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: id_inc after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (42) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {id_inc}, {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: ?, size: O(n^1) [1 + z] ---------------------------------------- (43) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: id_inc after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (44) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] ---------------------------------------- (45) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (46) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] ---------------------------------------- (47) 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 ---------------------------------------- (48) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {encode_true}, {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: ?, size: O(1) [2] ---------------------------------------- (49) 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 ---------------------------------------- (50) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (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: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (53) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: if after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z' + z'' Computed SIZE bound using CoFloCo for: rand after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z + z' ---------------------------------------- (54) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {if,rand}, {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: ?, size: O(n^1) [1 + z' + z''] rand: runtime: ?, size: O(n^1) [1 + z + z'] ---------------------------------------- (55) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: if after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 11 + 5*z' Computed RUNTIME bound using CoFloCo for: rand after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 13 + 5*z ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(0, 1 + z'') :|: z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 2 }-> rand(0, 1 + z'') :|: z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 3 }-> rand(z' - 1, 1 + z'') :|: z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 2 }-> if(2, 1 + (z - 1), z') :|: z - 1 >= 0, z' >= 0 rand(z, z') -{ 2 }-> if(1, 0, z') :|: z' >= 0, z = 0 rand(z, z') -{ 1 }-> if(0, z, z') :|: z >= 0, z' >= 0 random(z) -{ 1 }-> rand(z, 0) :|: z >= 0 Function symbols to be analyzed: {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] ---------------------------------------- (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: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] ---------------------------------------- (59) 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 ---------------------------------------- (60) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {p}, {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: ?, size: O(n^1) [z] ---------------------------------------- (61) 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 ---------------------------------------- (62) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^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: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] ---------------------------------------- (65) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: random 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: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {random}, {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: ?, size: O(n^1) [1 + z] ---------------------------------------- (67) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: random after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 14 + 5*z ---------------------------------------- (68) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> random(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> random(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> random(0) :|: z - 1 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(2) :|: z = 2 encode_random(z) -{ 0 }-> random(1) :|: z = 1 encode_random(z) -{ 0 }-> random(0) :|: z = 0 encode_random(z) -{ 0 }-> random(0) :|: z >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], 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: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] ---------------------------------------- (71) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encArg after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 3 + 16*z ---------------------------------------- (72) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encArg}, {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: ?, size: O(n^1) [3 + 16*z] ---------------------------------------- (73) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encArg after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 24 + 257*z + 160*z^2 ---------------------------------------- (74) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> random(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(rand(encArg(x_125), encArg(x_25))) :|: x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 0 }-> random(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(if(encArg(x_126), encArg(x_26), encArg(x_32))) :|: x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 0 }-> random(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> random(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> rand(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> p(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(rand(encArg(x_111), encArg(x_21))) :|: z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> p(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(if(encArg(x_112), encArg(x_22), encArg(x_3''))) :|: z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> p(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> p(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(rand(encArg(x_14), encArg(x_2'))) :|: x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 0 }-> nonZero(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(if(encArg(x_15), encArg(x_2''), encArg(x_3'))) :|: x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 0 }-> nonZero(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> nonZero(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> if(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 }-> id_inc(random(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(rand(encArg(x_118), encArg(x_23))) :|: z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 0 }-> id_inc(p(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(nonZero(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(if(encArg(x_119), encArg(x_24), encArg(x_31))) :|: z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 0 }-> id_inc(id_inc(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> id_inc(1 + encArg(z - 2)) :|: z - 2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 1 + encArg(z - 1) :|: z - 1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> id_inc(random(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(rand(encArg(x_11061), encArg(x_2301))) :|: x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 0 }-> id_inc(p(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(if(encArg(x_11062), encArg(x_2302), encArg(x_3150))) :|: x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ 0 }-> id_inc(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> id_inc(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 0 }-> if(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ 0 }-> nonZero(random(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(rand(encArg(x_11047), encArg(x_2297))) :|: x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(p(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(if(encArg(x_11048), encArg(x_2298), encArg(x_3148))) :|: x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 0 }-> nonZero(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_nonZero(z) -{ 0 }-> nonZero(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> p(random(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(rand(encArg(x_11054), encArg(x_2299))) :|: x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 0 }-> p(p(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(if(encArg(x_11055), encArg(x_2300), encArg(x_3149))) :|: x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ 0 }-> p(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> p(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 0 }-> rand(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ 0 }-> random(random(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(rand(encArg(x_11068), encArg(x_2303))) :|: z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 0 }-> random(p(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(nonZero(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(if(encArg(x_11069), encArg(x_2304), encArg(x_3151))) :|: x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ 0 }-> random(id_inc(encArg(z - 1))) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> random(1 + encArg(z - 1)) :|: z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 1 + encArg(z) :|: z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] ---------------------------------------- (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: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] ---------------------------------------- (77) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: encode_id_inc after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + 16*z ---------------------------------------- (78) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_id_inc}, {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: ?, size: O(n^1) [1 + 16*z] ---------------------------------------- (79) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_id_inc after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 180 + 1462*z + 1600*z^2 ---------------------------------------- (80) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*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: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] ---------------------------------------- (83) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: encode_p after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 16*z ---------------------------------------- (84) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_p}, {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: ?, size: O(n^1) [16*z] ---------------------------------------- (85) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_p after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 180 + 1462*z + 1600*z^2 ---------------------------------------- (86) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] ---------------------------------------- (87) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (88) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] ---------------------------------------- (89) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_nonZero after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (90) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_nonZero}, {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: ?, size: O(1) [2] ---------------------------------------- (91) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_nonZero after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 180 + 1462*z + 1600*z^2 ---------------------------------------- (92) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] ---------------------------------------- (93) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (94) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] ---------------------------------------- (95) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_if after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 7 + 16*z' + 16*z'' ---------------------------------------- (96) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_if}, {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] encode_if: runtime: ?, size: O(n^1) [7 + 16*z' + 16*z''] ---------------------------------------- (97) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_if after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 98 + 257*z + 160*z^2 + 337*z' + 160*z'^2 + 257*z'' + 160*z''^2 ---------------------------------------- (98) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] encode_if: runtime: O(n^2) [98 + 257*z + 160*z^2 + 337*z' + 160*z'^2 + 257*z'' + 160*z''^2], size: O(n^1) [7 + 16*z' + 16*z''] ---------------------------------------- (99) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (100) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] encode_if: runtime: O(n^2) [98 + 257*z + 160*z^2 + 337*z' + 160*z'^2 + 257*z'' + 160*z''^2], size: O(n^1) [7 + 16*z' + 16*z''] ---------------------------------------- (101) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_rand after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 7 + 16*z + 16*z' ---------------------------------------- (102) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_rand}, {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] encode_if: runtime: O(n^2) [98 + 257*z + 160*z^2 + 337*z' + 160*z'^2 + 257*z'' + 160*z''^2], size: O(n^1) [7 + 16*z' + 16*z''] encode_rand: runtime: ?, size: O(n^1) [7 + 16*z + 16*z'] ---------------------------------------- (103) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_rand after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 76 + 337*z + 160*z^2 + 257*z' + 160*z'^2 ---------------------------------------- (104) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] encode_if: runtime: O(n^2) [98 + 257*z + 160*z^2 + 337*z' + 160*z'^2 + 257*z'' + 160*z''^2], size: O(n^1) [7 + 16*z' + 16*z''] encode_rand: runtime: O(n^2) [76 + 337*z + 160*z^2 + 257*z' + 160*z'^2], size: O(n^1) [7 + 16*z + 16*z'] ---------------------------------------- (105) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (106) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] encode_if: runtime: O(n^2) [98 + 257*z + 160*z^2 + 337*z' + 160*z'^2 + 257*z'' + 160*z''^2], size: O(n^1) [7 + 16*z' + 16*z''] encode_rand: runtime: O(n^2) [76 + 337*z + 160*z^2 + 257*z' + 160*z'^2], size: O(n^1) [7 + 16*z + 16*z'] ---------------------------------------- (107) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: encode_random after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + 16*z ---------------------------------------- (108) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_random}, {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] encode_if: runtime: O(n^2) [98 + 257*z + 160*z^2 + 337*z' + 160*z'^2 + 257*z'' + 160*z''^2], size: O(n^1) [7 + 16*z' + 16*z''] encode_rand: runtime: O(n^2) [76 + 337*z + 160*z^2 + 257*z' + 160*z'^2], size: O(n^1) [7 + 16*z + 16*z'] encode_random: runtime: ?, size: O(n^1) [1 + 16*z] ---------------------------------------- (109) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_random after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 283 + 1913*z + 1600*z^2 ---------------------------------------- (110) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] encode_if: runtime: O(n^2) [98 + 257*z + 160*z^2 + 337*z' + 160*z'^2 + 257*z'' + 160*z''^2], size: O(n^1) [7 + 16*z' + 16*z''] encode_rand: runtime: O(n^2) [76 + 337*z + 160*z^2 + 257*z' + 160*z'^2], size: O(n^1) [7 + 16*z + 16*z'] encode_random: runtime: O(n^2) [283 + 1913*z + 1600*z^2], size: O(n^1) [1 + 16*z] ---------------------------------------- (111) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (112) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] encode_if: runtime: O(n^2) [98 + 257*z + 160*z^2 + 337*z' + 160*z'^2 + 257*z'' + 160*z''^2], size: O(n^1) [7 + 16*z' + 16*z''] encode_rand: runtime: O(n^2) [76 + 337*z + 160*z^2 + 257*z' + 160*z'^2], size: O(n^1) [7 + 16*z + 16*z'] encode_random: runtime: O(n^2) [283 + 1913*z + 1600*z^2], size: O(n^1) [1 + 16*z] ---------------------------------------- (113) 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: 4 + 16*z ---------------------------------------- (114) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: {encode_s} Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] encode_if: runtime: O(n^2) [98 + 257*z + 160*z^2 + 337*z' + 160*z'^2 + 257*z'' + 160*z''^2], size: O(n^1) [7 + 16*z' + 16*z''] encode_rand: runtime: O(n^2) [76 + 337*z + 160*z^2 + 257*z' + 160*z'^2], size: O(n^1) [7 + 16*z + 16*z'] encode_random: runtime: O(n^2) [283 + 1913*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_s: runtime: ?, size: O(n^1) [4 + 16*z] ---------------------------------------- (115) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_s after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 24 + 257*z + 160*z^2 ---------------------------------------- (116) Obligation: Complexity RNTS consisting of the following rules: encArg(z) -{ 24 }-> s10 :|: s10 >= 0, s10 <= 2 + 1, z = 1 + 2 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s101 :|: s100 >= 0, s100 <= 16 * (z - 2) + 3, s101 >= 0, s101 <= 1 + s100, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s104 :|: s102 >= 0, s102 <= 16 * (z - 2) + 3, s103 >= 0, s103 <= s102, s104 >= 0, s104 <= s103, z - 2 >= 0 encArg(z) -{ 165 + 5*s105 + -383*z + 160*z^2 }-> s107 :|: s105 >= 0, s105 <= 16 * (z - 2) + 3, s106 >= 0, s106 <= s105 + 1, s107 >= 0, s107 <= s106, z - 2 >= 0 encArg(z) -{ 14 }-> s11 :|: s11 >= 0, s11 <= 0 + 1, z - 1 >= 0 encArg(z) -{ 62 + 5*s108 + 257*x_111 + 160*x_111^2 + 257*x_21 + 160*x_21^2 }-> s111 :|: s108 >= 0, s108 <= 16 * x_111 + 3, s109 >= 0, s109 <= 16 * x_21 + 3, s110 >= 0, s110 <= s108 + s109 + 1, s111 >= 0, s111 <= s110, z = 1 + (1 + x_111 + x_21), x_21 >= 0, x_111 >= 0 encArg(z) -{ 84 + 5*s113 + 257*x_112 + 160*x_112^2 + 257*x_22 + 160*x_22^2 + 257*x_3'' + 160*x_3''^2 }-> s116 :|: s112 >= 0, s112 <= 16 * x_112 + 3, s113 >= 0, s113 <= 16 * x_22 + 3, s114 >= 0, s114 <= 16 * x_3'' + 3, s115 >= 0, s115 <= s114 + 1 + s113, s116 >= 0, s116 <= s115, z = 1 + (1 + x_112 + x_22 + x_3''), x_112 >= 0, x_22 >= 0, x_3'' >= 0 encArg(z) -{ 165 + 5*s118 + -383*z + 160*z^2 }-> s119 :|: s117 >= 0, s117 <= 16 * (z - 2) + 3, s118 >= 0, s118 <= s117, s119 >= 0, s119 <= s118 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s142 :|: s140 >= 0, s140 <= 16 * (z - 2) + 3, s141 >= 0, s141 <= s140, s142 >= 0, s142 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s145 :|: s143 >= 0, s143 <= 16 * (z - 2) + 3, s144 >= 0, s144 <= 2, s145 >= 0, s145 <= s144, z - 2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s153 :|: s152 >= 0, s152 <= 16 * (z - 2) + 3, s153 >= 0, s153 <= 1 + s152 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s156 :|: s154 >= 0, s154 <= 16 * (z - 2) + 3, s155 >= 0, s155 <= s154 + 1, s156 >= 0, s156 <= s155 + 1, z - 2 >= 0 encArg(z) -{ 165 + 5*s157 + -383*z + 160*z^2 }-> s159 :|: s157 >= 0, s157 <= 16 * (z - 2) + 3, s158 >= 0, s158 <= s157 + 1, s159 >= 0, s159 <= s158 + 1, z - 2 >= 0 encArg(z) -{ 62 + 5*s160 + 257*x_118 + 160*x_118^2 + 257*x_23 + 160*x_23^2 }-> s163 :|: s160 >= 0, s160 <= 16 * x_118 + 3, s161 >= 0, s161 <= 16 * x_23 + 3, s162 >= 0, s162 <= s160 + s161 + 1, s163 >= 0, s163 <= s162 + 1, z = 1 + (1 + x_118 + x_23), x_23 >= 0, x_118 >= 0 encArg(z) -{ 84 + 5*s165 + 257*x_119 + 160*x_119^2 + 257*x_24 + 160*x_24^2 + 257*x_31 + 160*x_31^2 }-> s168 :|: s164 >= 0, s164 <= 16 * x_119 + 3, s165 >= 0, s165 <= 16 * x_24 + 3, s166 >= 0, s166 <= 16 * x_31 + 3, s167 >= 0, s167 <= s166 + 1 + s165, s168 >= 0, s168 <= s167 + 1, z = 1 + (1 + x_119 + x_24 + x_31), x_24 >= 0, x_31 >= 0, x_119 >= 0 encArg(z) -{ 165 + 5*s170 + -383*z + 160*z^2 }-> s171 :|: s169 >= 0, s169 <= 16 * (z - 2) + 3, s170 >= 0, s170 <= s169 + 1, s171 >= 0, s171 <= s170 + 1, z - 2 >= 0 encArg(z) -{ 169 + 5*s17 + -383*z + 160*z^2 }-> s18 :|: s17 >= 0, s17 <= 16 * (z - 2) + 3, s18 >= 0, s18 <= 1 + s17 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s194 :|: s192 >= 0, s192 <= 16 * (z - 2) + 3, s193 >= 0, s193 <= s192 + 1, s194 >= 0, s194 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s197 :|: s195 >= 0, s195 <= 16 * (z - 2) + 3, s196 >= 0, s196 <= 2, s197 >= 0, s197 <= s196 + 1, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s206 :|: s204 >= 0, s204 <= 16 * (z - 2) + 3, s205 >= 0, s205 <= s204 + 1, s206 >= 0, s206 <= s205, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s209 :|: s207 >= 0, s207 <= 16 * (z - 2) + 3, s208 >= 0, s208 <= s207, s209 >= 0, s209 <= s208 + 1, z - 2 >= 0 encArg(z) -{ 178 + 5*s19 + 5*s20 + -383*z + 160*z^2 }-> s21 :|: s19 >= 0, s19 <= 16 * (z - 2) + 3, s20 >= 0, s20 <= s19 + 1, s21 >= 0, s21 <= s20 + 1, z - 2 >= 0 encArg(z) -{ 75 + 5*s22 + 5*s24 + 257*x_125 + 160*x_125^2 + 257*x_25 + 160*x_25^2 }-> s25 :|: s22 >= 0, s22 <= 16 * x_125 + 3, s23 >= 0, s23 <= 16 * x_25 + 3, s24 >= 0, s24 <= s22 + s23 + 1, s25 >= 0, s25 <= s24 + 1, x_25 >= 0, x_125 >= 0, z = 1 + (1 + x_125 + x_25) encArg(z) -{ 97 + 5*s27 + 5*s29 + 257*x_126 + 160*x_126^2 + 257*x_26 + 160*x_26^2 + 257*x_32 + 160*x_32^2 }-> s30 :|: s26 >= 0, s26 <= 16 * x_126 + 3, s27 >= 0, s27 <= 16 * x_26 + 3, s28 >= 0, s28 <= 16 * x_32 + 3, s29 >= 0, s29 <= s28 + 1 + s27, s30 >= 0, s30 <= s29 + 1, x_32 >= 0, x_26 >= 0, x_126 >= 0, z = 1 + (1 + x_126 + x_26 + x_32) encArg(z) -{ 61 + 5*s31 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 }-> s33 :|: s31 >= 0, s31 <= 16 * x_1 + 3, s32 >= 0, s32 <= 16 * x_2 + 3, s33 >= 0, s33 <= s31 + s32 + 1, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 83 + 5*s35 + 257*x_1 + 160*x_1^2 + 257*x_2 + 160*x_2^2 + 257*x_3 + 160*x_3^2 }-> s37 :|: s34 >= 0, s34 <= 16 * x_1 + 3, s35 >= 0, s35 <= 16 * x_2 + 3, s36 >= 0, s36 <= 16 * x_3 + 3, s37 >= 0, s37 <= s36 + 1 + s35, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 151 + -383*z + 160*z^2 }-> s61 :|: s60 >= 0, s60 <= 16 * (z - 2) + 3, s61 >= 0, s61 <= 2, z - 2 >= 0 encArg(z) -{ 152 + -383*z + 160*z^2 }-> s64 :|: s62 >= 0, s62 <= 16 * (z - 2) + 3, s63 >= 0, s63 <= 2, s64 >= 0, s64 <= 2, z - 2 >= 0 encArg(z) -{ 165 + 5*s65 + -383*z + 160*z^2 }-> s67 :|: s65 >= 0, s65 <= 16 * (z - 2) + 3, s66 >= 0, s66 <= s65 + 1, s67 >= 0, s67 <= 2, z - 2 >= 0 encArg(z) -{ 62 + 5*s68 + 257*x_14 + 160*x_14^2 + 257*x_2' + 160*x_2'^2 }-> s71 :|: s68 >= 0, s68 <= 16 * x_14 + 3, s69 >= 0, s69 <= 16 * x_2' + 3, s70 >= 0, s70 <= s68 + s69 + 1, s71 >= 0, s71 <= 2, x_14 >= 0, x_2' >= 0, z = 1 + (1 + x_14 + x_2') encArg(z) -{ 84 + 5*s73 + 257*x_15 + 160*x_15^2 + 257*x_2'' + 160*x_2''^2 + 257*x_3' + 160*x_3'^2 }-> s76 :|: s72 >= 0, s72 <= 16 * x_15 + 3, s73 >= 0, s73 <= 16 * x_2'' + 3, s74 >= 0, s74 <= 16 * x_3' + 3, s75 >= 0, s75 <= s74 + 1 + s73, s76 >= 0, s76 <= 2, x_15 >= 0, x_3' >= 0, z = 1 + (1 + x_15 + x_2'' + x_3'), x_2'' >= 0 encArg(z) -{ 165 + 5*s78 + -383*z + 160*z^2 }-> s79 :|: s77 >= 0, s77 <= 16 * (z - 2) + 3, s78 >= 0, s78 <= 2, s79 >= 0, s79 <= s78 + 1, z - 2 >= 0 encArg(z) -{ 14 }-> s8 :|: s8 >= 0, s8 <= 0 + 1, z = 1 + 0 encArg(z) -{ 19 }-> s9 :|: s9 >= 0, s9 <= 1 + 1, z = 1 + 1 encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 1 }-> x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> x :|: z - 1 >= 0, x >= 0, 0 = x encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, x >= 0, 1 = 1 + x encArg(z) -{ 1 }-> 2 :|: z = 1 + 2, x >= 0, 2 = 1 + x encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 1 }-> 1 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 1 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 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) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 0, 0 = 0 encArg(z) -{ 1 }-> 0 :|: z - 1 >= 0, 0 = 0 encArg(z) -{ -73 + -63*z + 160*z^2 }-> 1 + s16 :|: s16 >= 0, s16 <= 16 * (z - 1) + 3, z - 1 >= 0 encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 0, x >= 0, 0 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 1, x >= 0, 1 = x encArg(z) -{ 1 }-> 1 + x :|: z = 1 + 2, x >= 0, 2 = x encArg(z) -{ 1 }-> 1 + x :|: z - 1 >= 0, x >= 0, 0 = x encode_0 -{ 0 }-> 0 :|: encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_id_inc(z) -{ -72 + -63*z + 160*z^2 }-> s173 :|: s172 >= 0, s172 <= 16 * (z - 1) + 3, s173 >= 0, s173 <= 1 + s172 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s176 :|: s174 >= 0, s174 <= 16 * (z - 1) + 3, s175 >= 0, s175 <= s174 + 1, s176 >= 0, s176 <= s175 + 1, z - 1 >= 0 encode_id_inc(z) -{ -58 + 5*s177 + -63*z + 160*z^2 }-> s179 :|: s177 >= 0, s177 <= 16 * (z - 1) + 3, s178 >= 0, s178 <= s177 + 1, s179 >= 0, s179 <= s178 + 1, z - 1 >= 0 encode_id_inc(z) -{ 62 + 5*s180 + 257*x_11061 + 160*x_11061^2 + 257*x_2301 + 160*x_2301^2 }-> s183 :|: s180 >= 0, s180 <= 16 * x_11061 + 3, s181 >= 0, s181 <= 16 * x_2301 + 3, s182 >= 0, s182 <= s180 + s181 + 1, s183 >= 0, s183 <= s182 + 1, x_11061 >= 0, x_2301 >= 0, z = 1 + x_11061 + x_2301 encode_id_inc(z) -{ 84 + 5*s185 + 257*x_11062 + 160*x_11062^2 + 257*x_2302 + 160*x_2302^2 + 257*x_3150 + 160*x_3150^2 }-> s188 :|: s184 >= 0, s184 <= 16 * x_11062 + 3, s185 >= 0, s185 <= 16 * x_2302 + 3, s186 >= 0, s186 <= 16 * x_3150 + 3, s187 >= 0, s187 <= s186 + 1 + s185, s188 >= 0, s188 <= s187 + 1, x_3150 >= 0, x_2302 >= 0, x_11062 >= 0, z = 1 + x_11062 + x_2302 + x_3150 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s203 :|: s201 >= 0, s201 <= 16 * (z - 1) + 3, s202 >= 0, s202 <= 2, s203 >= 0, s203 <= s202 + 1, z - 1 >= 0 encode_id_inc(z) -{ -71 + -63*z + 160*z^2 }-> s215 :|: s213 >= 0, s213 <= 16 * (z - 1) + 3, s214 >= 0, s214 <= s213, s215 >= 0, s215 <= s214 + 1, z - 1 >= 0 encode_id_inc(z) -{ 1 }-> x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> x :|: z >= 0, x >= 0, 0 = x encode_id_inc(z) -{ 0 }-> 0 :|: z >= 0 encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 0, x >= 0, 0 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 1, x >= 0, 1 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z = 2, x >= 0, 2 = x encode_id_inc(z) -{ 1 }-> 1 + x :|: z >= 0, x >= 0, 0 = x encode_if(z, z', z'') -{ 83 + 5*s57 + 257*z + 160*z^2 + 257*z' + 160*z'^2 + 257*z'' + 160*z''^2 }-> s59 :|: s56 >= 0, s56 <= 16 * z + 3, s57 >= 0, s57 <= 16 * z' + 3, s58 >= 0, s58 <= 16 * z'' + 3, s59 >= 0, s59 <= s58 + 1 + s57, z >= 0, z'' >= 0, z' >= 0 encode_if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s148 :|: s146 >= 0, s146 <= 16 * (z - 1) + 3, s147 >= 0, s147 <= s146, s148 >= 0, s148 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s200 :|: s198 >= 0, s198 <= 16 * (z - 1) + 3, s199 >= 0, s199 <= s198 + 1, s200 >= 0, s200 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -72 + -63*z + 160*z^2 }-> s81 :|: s80 >= 0, s80 <= 16 * (z - 1) + 3, s81 >= 0, s81 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -71 + -63*z + 160*z^2 }-> s84 :|: s82 >= 0, s82 <= 16 * (z - 1) + 3, s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, z - 1 >= 0 encode_nonZero(z) -{ -58 + 5*s85 + -63*z + 160*z^2 }-> s87 :|: s85 >= 0, s85 <= 16 * (z - 1) + 3, s86 >= 0, s86 <= s85 + 1, s87 >= 0, s87 <= 2, z - 1 >= 0 encode_nonZero(z) -{ 62 + 5*s88 + 257*x_11047 + 160*x_11047^2 + 257*x_2297 + 160*x_2297^2 }-> s91 :|: s88 >= 0, s88 <= 16 * x_11047 + 3, s89 >= 0, s89 <= 16 * x_2297 + 3, s90 >= 0, s90 <= s88 + s89 + 1, s91 >= 0, s91 <= 2, x_2297 >= 0, z = 1 + x_11047 + x_2297, x_11047 >= 0 encode_nonZero(z) -{ 84 + 5*s93 + 257*x_11048 + 160*x_11048^2 + 257*x_2298 + 160*x_2298^2 + 257*x_3148 + 160*x_3148^2 }-> s96 :|: s92 >= 0, s92 <= 16 * x_11048 + 3, s93 >= 0, s93 <= 16 * x_2298 + 3, s94 >= 0, s94 <= 16 * x_3148 + 3, s95 >= 0, s95 <= s94 + 1 + s93, s96 >= 0, s96 <= 2, x_3148 >= 0, x_11048 >= 0, x_2298 >= 0, z = 1 + x_11048 + x_2298 + x_3148 encode_nonZero(z) -{ 1 }-> 2 :|: z = 1, x >= 0, 1 = 1 + x encode_nonZero(z) -{ 1 }-> 2 :|: z = 2, x >= 0, 2 = 1 + x encode_nonZero(z) -{ 1 }-> 1 :|: z = 0, 0 = 0 encode_nonZero(z) -{ 1 }-> 1 :|: z >= 0, 0 = 0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_nonZero(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_p(z) -{ -72 + -63*z + 160*z^2 }-> s121 :|: s120 >= 0, s120 <= 16 * (z - 1) + 3, s121 >= 0, s121 <= 1 + s120, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s124 :|: s122 >= 0, s122 <= 16 * (z - 1) + 3, s123 >= 0, s123 <= s122, s124 >= 0, s124 <= s123, z - 1 >= 0 encode_p(z) -{ -58 + 5*s125 + -63*z + 160*z^2 }-> s127 :|: s125 >= 0, s125 <= 16 * (z - 1) + 3, s126 >= 0, s126 <= s125 + 1, s127 >= 0, s127 <= s126, z - 1 >= 0 encode_p(z) -{ 62 + 5*s128 + 257*x_11054 + 160*x_11054^2 + 257*x_2299 + 160*x_2299^2 }-> s131 :|: s128 >= 0, s128 <= 16 * x_11054 + 3, s129 >= 0, s129 <= 16 * x_2299 + 3, s130 >= 0, s130 <= s128 + s129 + 1, s131 >= 0, s131 <= s130, x_11054 >= 0, x_2299 >= 0, z = 1 + x_11054 + x_2299 encode_p(z) -{ 84 + 5*s133 + 257*x_11055 + 160*x_11055^2 + 257*x_2300 + 160*x_2300^2 + 257*x_3149 + 160*x_3149^2 }-> s136 :|: s132 >= 0, s132 <= 16 * x_11055 + 3, s133 >= 0, s133 <= 16 * x_2300 + 3, s134 >= 0, s134 <= 16 * x_3149 + 3, s135 >= 0, s135 <= s134 + 1 + s133, s136 >= 0, s136 <= s135, x_2300 >= 0, z = 1 + x_11055 + x_2300 + x_3149, x_11055 >= 0, x_3149 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s151 :|: s149 >= 0, s149 <= 16 * (z - 1) + 3, s150 >= 0, s150 <= 2, s151 >= 0, s151 <= s150, z - 1 >= 0 encode_p(z) -{ -71 + -63*z + 160*z^2 }-> s212 :|: s210 >= 0, s210 <= 16 * (z - 1) + 3, s211 >= 0, s211 <= s210 + 1, s212 >= 0, s212 <= s211, z - 1 >= 0 encode_p(z) -{ 1 }-> x :|: z = 1, x >= 0, 1 = 1 + x encode_p(z) -{ 1 }-> x :|: z = 2, x >= 0, 2 = 1 + x encode_p(z) -{ 0 }-> 0 :|: z >= 0 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) -{ 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_rand(z, z') -{ 61 + 5*s53 + 257*z + 160*z^2 + 257*z' + 160*z'^2 }-> s55 :|: s53 >= 0, s53 <= 16 * z + 3, s54 >= 0, s54 <= 16 * z' + 3, s55 >= 0, s55 <= s53 + s54 + 1, z >= 0, z' >= 0 encode_rand(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_random(z) -{ 14 }-> s12 :|: s12 >= 0, s12 <= 0 + 1, z = 0 encode_random(z) -{ 19 }-> s13 :|: s13 >= 0, s13 <= 1 + 1, z = 1 encode_random(z) -{ -58 + 5*s138 + -63*z + 160*z^2 }-> s139 :|: s137 >= 0, s137 <= 16 * (z - 1) + 3, s138 >= 0, s138 <= s137, s139 >= 0, s139 <= s138 + 1, z - 1 >= 0 encode_random(z) -{ 24 }-> s14 :|: s14 >= 0, s14 <= 2 + 1, z = 2 encode_random(z) -{ 14 }-> s15 :|: s15 >= 0, s15 <= 0 + 1, z >= 0 encode_random(z) -{ -58 + 5*s190 + -63*z + 160*z^2 }-> s191 :|: s189 >= 0, s189 <= 16 * (z - 1) + 3, s190 >= 0, s190 <= s189 + 1, s191 >= 0, s191 <= s190 + 1, z - 1 >= 0 encode_random(z) -{ -54 + 5*s39 + -63*z + 160*z^2 }-> s40 :|: s39 >= 0, s39 <= 16 * (z - 1) + 3, s40 >= 0, s40 <= 1 + s39 + 1, z - 1 >= 0 encode_random(z) -{ -45 + 5*s41 + 5*s42 + -63*z + 160*z^2 }-> s43 :|: s41 >= 0, s41 <= 16 * (z - 1) + 3, s42 >= 0, s42 <= s41 + 1, s43 >= 0, s43 <= s42 + 1, z - 1 >= 0 encode_random(z) -{ 75 + 5*s44 + 5*s46 + 257*x_11068 + 160*x_11068^2 + 257*x_2303 + 160*x_2303^2 }-> s47 :|: s44 >= 0, s44 <= 16 * x_11068 + 3, s45 >= 0, s45 <= 16 * x_2303 + 3, s46 >= 0, s46 <= s44 + s45 + 1, s47 >= 0, s47 <= s46 + 1, z = 1 + x_11068 + x_2303, x_11068 >= 0, x_2303 >= 0 encode_random(z) -{ 97 + 5*s49 + 5*s51 + 257*x_11069 + 160*x_11069^2 + 257*x_2304 + 160*x_2304^2 + 257*x_3151 + 160*x_3151^2 }-> s52 :|: s48 >= 0, s48 <= 16 * x_11069 + 3, s49 >= 0, s49 <= 16 * x_2304 + 3, s50 >= 0, s50 <= 16 * x_3151 + 3, s51 >= 0, s51 <= s50 + 1 + s49, s52 >= 0, s52 <= s51 + 1, x_11069 >= 0, z = 1 + x_11069 + x_2304 + x_3151, x_3151 >= 0, x_2304 >= 0 encode_random(z) -{ -58 + 5*s98 + -63*z + 160*z^2 }-> s99 :|: s97 >= 0, s97 <= 16 * (z - 1) + 3, s98 >= 0, s98 <= 2, s99 >= 0, s99 <= s98 + 1, z - 1 >= 0 encode_random(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 0 }-> 0 :|: z >= 0 encode_s(z) -{ 24 + 257*z + 160*z^2 }-> 1 + s38 :|: s38 >= 0, s38 <= 16 * z + 3, z >= 0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: id_inc(z) -{ 1 }-> z :|: z >= 0 id_inc(z) -{ 1 }-> 1 + z :|: z >= 0 if(z, z', z'') -{ 16 }-> s2 :|: s2 >= 0, s2 <= 0 + z'' + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 16 }-> s3 :|: s3 >= 0, s3 <= 0 + (1 + z'') + 1, z = 2, z'' >= 0, z' = 0 if(z, z', z'') -{ 11 + 5*z' }-> s4 :|: s4 >= 0, s4 <= z' - 1 + z'' + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 11 + 5*z' }-> s5 :|: s5 >= 0, s5 <= z' - 1 + (1 + z'') + 1, z = 2, z'' >= 0, z' - 1 >= 0 if(z, z', z'') -{ 15 }-> s6 :|: s6 >= 0, s6 <= 0 + z'' + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 15 }-> s7 :|: s7 >= 0, s7 <= 0 + (1 + z'') + 1, z = 2, z' >= 0, z'' >= 0 if(z, z', z'') -{ 1 }-> z'' :|: z = 1, z' >= 0, z'' >= 0 if(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 nonZero(z) -{ 1 }-> 2 :|: z - 1 >= 0 nonZero(z) -{ 1 }-> 1 :|: z = 0 nonZero(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: z >= 0 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 rand(z, z') -{ 13 }-> s' :|: s' >= 0, s' <= z' + 1 + 0, z' >= 0, z = 0 rand(z, z') -{ 13 + 5*z }-> s'' :|: s'' >= 0, s'' <= z' + 1 + (1 + (z - 1)), z - 1 >= 0, z' >= 0 rand(z, z') -{ 12 + 5*z }-> s1 :|: s1 >= 0, s1 <= z' + 1 + z, z >= 0, z' >= 0 random(z) -{ 14 + 5*z }-> s :|: s >= 0, s <= z + 0 + 1, z >= 0 Function symbols to be analyzed: Previous analysis results are: encode_0: runtime: O(1) [0], size: O(1) [0] nonZero: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [1] id_inc: runtime: O(1) [1], size: O(n^1) [1 + z] encode_true: runtime: O(1) [0], size: O(1) [2] if: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [1 + z' + z''] rand: runtime: O(n^1) [13 + 5*z], size: O(n^1) [1 + z + z'] p: runtime: O(1) [1], size: O(n^1) [z] random: runtime: O(n^1) [14 + 5*z], size: O(n^1) [1 + z] encArg: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [3 + 16*z] encode_id_inc: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_p: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(n^1) [16*z] encode_nonZero: runtime: O(n^2) [180 + 1462*z + 1600*z^2], size: O(1) [2] encode_if: runtime: O(n^2) [98 + 257*z + 160*z^2 + 337*z' + 160*z'^2 + 257*z'' + 160*z''^2], size: O(n^1) [7 + 16*z' + 16*z''] encode_rand: runtime: O(n^2) [76 + 337*z + 160*z^2 + 257*z' + 160*z'^2], size: O(n^1) [7 + 16*z + 16*z'] encode_random: runtime: O(n^2) [283 + 1913*z + 1600*z^2], size: O(n^1) [1 + 16*z] encode_s: runtime: O(n^2) [24 + 257*z + 160*z^2], size: O(n^1) [4 + 16*z] ---------------------------------------- (117) FinalProof (FINISHED) Computed overall runtime complexity ---------------------------------------- (118) BOUNDS(1, n^2) ---------------------------------------- (119) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (120) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: nonZero(0) -> false nonZero(s(x)) -> true p(0) -> 0 p(s(x)) -> x id_inc(x) -> x id_inc(x) -> s(x) random(x) -> rand(x, 0) rand(x, y) -> if(nonZero(x), x, y) if(false, x, y) -> y if(true, x, y) -> rand(p(x), id_inc(y)) The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(true) -> true encArg(cons_nonZero(x_1)) -> nonZero(encArg(x_1)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encArg(cons_id_inc(x_1)) -> id_inc(encArg(x_1)) encArg(cons_random(x_1)) -> random(encArg(x_1)) encArg(cons_rand(x_1, x_2)) -> rand(encArg(x_1), encArg(x_2)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_nonZero(x_1) -> nonZero(encArg(x_1)) encode_0 -> 0 encode_false -> false encode_s(x_1) -> s(encArg(x_1)) encode_true -> true encode_p(x_1) -> p(encArg(x_1)) encode_id_inc(x_1) -> id_inc(encArg(x_1)) encode_random(x_1) -> random(encArg(x_1)) encode_rand(x_1, x_2) -> rand(encArg(x_1), encArg(x_2)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) Rewrite Strategy: INNERMOST ---------------------------------------- (121) DecreasingLoopProof (LOWER BOUND(ID)) The following loop(s) give(s) rise to the lower bound Omega(n^1): The rewrite sequence rand(s(x1_0), y) ->^+ rand(x1_0, id_inc(y)) gives rise to a decreasing loop by considering the right hand sides subterm at position []. The pumping substitution is [x1_0 / s(x1_0)]. The result substitution is [y / id_inc(y)]. ---------------------------------------- (122) Complex Obligation (BEST) ---------------------------------------- (123) Obligation: Proved the lower bound n^1 for the following obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: nonZero(0) -> false nonZero(s(x)) -> true p(0) -> 0 p(s(x)) -> x id_inc(x) -> x id_inc(x) -> s(x) random(x) -> rand(x, 0) rand(x, y) -> if(nonZero(x), x, y) if(false, x, y) -> y if(true, x, y) -> rand(p(x), id_inc(y)) The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(true) -> true encArg(cons_nonZero(x_1)) -> nonZero(encArg(x_1)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encArg(cons_id_inc(x_1)) -> id_inc(encArg(x_1)) encArg(cons_random(x_1)) -> random(encArg(x_1)) encArg(cons_rand(x_1, x_2)) -> rand(encArg(x_1), encArg(x_2)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_nonZero(x_1) -> nonZero(encArg(x_1)) encode_0 -> 0 encode_false -> false encode_s(x_1) -> s(encArg(x_1)) encode_true -> true encode_p(x_1) -> p(encArg(x_1)) encode_id_inc(x_1) -> id_inc(encArg(x_1)) encode_random(x_1) -> random(encArg(x_1)) encode_rand(x_1, x_2) -> rand(encArg(x_1), encArg(x_2)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) Rewrite Strategy: INNERMOST ---------------------------------------- (124) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (125) BOUNDS(n^1, INF) ---------------------------------------- (126) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: nonZero(0) -> false nonZero(s(x)) -> true p(0) -> 0 p(s(x)) -> x id_inc(x) -> x id_inc(x) -> s(x) random(x) -> rand(x, 0) rand(x, y) -> if(nonZero(x), x, y) if(false, x, y) -> y if(true, x, y) -> rand(p(x), id_inc(y)) The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(false) -> false encArg(s(x_1)) -> s(encArg(x_1)) encArg(true) -> true encArg(cons_nonZero(x_1)) -> nonZero(encArg(x_1)) encArg(cons_p(x_1)) -> p(encArg(x_1)) encArg(cons_id_inc(x_1)) -> id_inc(encArg(x_1)) encArg(cons_random(x_1)) -> random(encArg(x_1)) encArg(cons_rand(x_1, x_2)) -> rand(encArg(x_1), encArg(x_2)) encArg(cons_if(x_1, x_2, x_3)) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) encode_nonZero(x_1) -> nonZero(encArg(x_1)) encode_0 -> 0 encode_false -> false encode_s(x_1) -> s(encArg(x_1)) encode_true -> true encode_p(x_1) -> p(encArg(x_1)) encode_id_inc(x_1) -> id_inc(encArg(x_1)) encode_random(x_1) -> random(encArg(x_1)) encode_rand(x_1, x_2) -> rand(encArg(x_1), encArg(x_2)) encode_if(x_1, x_2, x_3) -> if(encArg(x_1), encArg(x_2), encArg(x_3)) Rewrite Strategy: INNERMOST