/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), 263 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) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (12) CpxRNTS (13) CompleteCoflocoProof [FINISHED, 10.9 s] (14) BOUNDS(1, n^2) (15) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (16) TRS for Loop Detection (17) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] (18) BEST (19) proven lower bound (20) LowerBoundPropagationProof [FINISHED, 0 ms] (21) BOUNDS(n^1, INF) (22) 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: minus(0, Y) -> 0 minus(s(X), s(Y)) -> minus(X, Y) geq(X, 0) -> true geq(0, s(Y)) -> false geq(s(X), s(Y)) -> geq(X, Y) div(0, s(Y)) -> 0 div(s(X), s(Y)) -> if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0) if(true, X, Y) -> X if(false, X, Y) -> 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(s(x_1)) -> s(encArg(x_1)) encArg(true) -> true encArg(false) -> false encArg(cons_minus(x_1, x_2)) -> minus(encArg(x_1), encArg(x_2)) encArg(cons_geq(x_1, x_2)) -> geq(encArg(x_1), encArg(x_2)) encArg(cons_div(x_1, x_2)) -> div(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_minus(x_1, x_2) -> minus(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) encode_geq(x_1, x_2) -> geq(encArg(x_1), encArg(x_2)) encode_true -> true encode_false -> false encode_div(x_1, x_2) -> div(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: minus(0, Y) -> 0 minus(s(X), s(Y)) -> minus(X, Y) geq(X, 0) -> true geq(0, s(Y)) -> false geq(s(X), s(Y)) -> geq(X, Y) div(0, s(Y)) -> 0 div(s(X), s(Y)) -> if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0) if(true, X, Y) -> X if(false, X, Y) -> Y The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(s(x_1)) -> s(encArg(x_1)) encArg(true) -> true encArg(false) -> false encArg(cons_minus(x_1, x_2)) -> minus(encArg(x_1), encArg(x_2)) encArg(cons_geq(x_1, x_2)) -> geq(encArg(x_1), encArg(x_2)) encArg(cons_div(x_1, x_2)) -> div(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_minus(x_1, x_2) -> minus(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) encode_geq(x_1, x_2) -> geq(encArg(x_1), encArg(x_2)) encode_true -> true encode_false -> false encode_div(x_1, x_2) -> div(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: minus(0, Y) -> 0 minus(s(X), s(Y)) -> minus(X, Y) geq(X, 0) -> true geq(0, s(Y)) -> false geq(s(X), s(Y)) -> geq(X, Y) div(0, s(Y)) -> 0 div(s(X), s(Y)) -> if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0) if(true, X, Y) -> X if(false, X, Y) -> Y The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(s(x_1)) -> s(encArg(x_1)) encArg(true) -> true encArg(false) -> false encArg(cons_minus(x_1, x_2)) -> minus(encArg(x_1), encArg(x_2)) encArg(cons_geq(x_1, x_2)) -> geq(encArg(x_1), encArg(x_2)) encArg(cons_div(x_1, x_2)) -> div(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_minus(x_1, x_2) -> minus(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) encode_geq(x_1, x_2) -> geq(encArg(x_1), encArg(x_2)) encode_true -> true encode_false -> false encode_div(x_1, x_2) -> div(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: minus(0, Y) -> 0 [1] minus(s(X), s(Y)) -> minus(X, Y) [1] geq(X, 0) -> true [1] geq(0, s(Y)) -> false [1] geq(s(X), s(Y)) -> geq(X, Y) [1] div(0, s(Y)) -> 0 [1] div(s(X), s(Y)) -> if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0) [1] if(true, X, Y) -> X [1] if(false, X, Y) -> Y [1] encArg(0) -> 0 [0] encArg(s(x_1)) -> s(encArg(x_1)) [0] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_minus(x_1, x_2)) -> minus(encArg(x_1), encArg(x_2)) [0] encArg(cons_geq(x_1, x_2)) -> geq(encArg(x_1), encArg(x_2)) [0] encArg(cons_div(x_1, x_2)) -> div(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_minus(x_1, x_2) -> minus(encArg(x_1), encArg(x_2)) [0] encode_0 -> 0 [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_geq(x_1, x_2) -> geq(encArg(x_1), encArg(x_2)) [0] encode_true -> true [0] encode_false -> false [0] encode_div(x_1, x_2) -> div(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: minus(0, Y) -> 0 [1] minus(s(X), s(Y)) -> minus(X, Y) [1] geq(X, 0) -> true [1] geq(0, s(Y)) -> false [1] geq(s(X), s(Y)) -> geq(X, Y) [1] div(0, s(Y)) -> 0 [1] div(s(X), s(Y)) -> if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0) [1] if(true, X, Y) -> X [1] if(false, X, Y) -> Y [1] encArg(0) -> 0 [0] encArg(s(x_1)) -> s(encArg(x_1)) [0] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_minus(x_1, x_2)) -> minus(encArg(x_1), encArg(x_2)) [0] encArg(cons_geq(x_1, x_2)) -> geq(encArg(x_1), encArg(x_2)) [0] encArg(cons_div(x_1, x_2)) -> div(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_minus(x_1, x_2) -> minus(encArg(x_1), encArg(x_2)) [0] encode_0 -> 0 [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_geq(x_1, x_2) -> geq(encArg(x_1), encArg(x_2)) [0] encode_true -> true [0] encode_false -> false [0] encode_div(x_1, x_2) -> div(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: minus :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if 0 :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if s :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if geq :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if true :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if false :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if div :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if if :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if encArg :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if cons_minus :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if cons_geq :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if cons_div :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if cons_if :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if encode_minus :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if encode_0 :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if encode_s :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if encode_geq :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if encode_true :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if encode_false :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if encode_div :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if encode_if :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if Rewrite Strategy: INNERMOST ---------------------------------------- (9) CompletionProof (UPPER BOUND(ID)) The TRS is a completely defined constructor system, as every type has a constant constructor and the following rules were added: encArg(v0) -> null_encArg [0] encode_minus(v0, v1) -> null_encode_minus [0] encode_0 -> null_encode_0 [0] encode_s(v0) -> null_encode_s [0] encode_geq(v0, v1) -> null_encode_geq [0] encode_true -> null_encode_true [0] encode_false -> null_encode_false [0] encode_div(v0, v1) -> null_encode_div [0] encode_if(v0, v1, v2) -> null_encode_if [0] minus(v0, v1) -> null_minus [0] geq(v0, v1) -> null_geq [0] div(v0, v1) -> null_div [0] if(v0, v1, v2) -> null_if [0] And the following fresh constants: null_encArg, null_encode_minus, null_encode_0, null_encode_s, null_encode_geq, null_encode_true, null_encode_false, null_encode_div, null_encode_if, null_minus, null_geq, null_div, null_if ---------------------------------------- (10) Obligation: Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: minus(0, Y) -> 0 [1] minus(s(X), s(Y)) -> minus(X, Y) [1] geq(X, 0) -> true [1] geq(0, s(Y)) -> false [1] geq(s(X), s(Y)) -> geq(X, Y) [1] div(0, s(Y)) -> 0 [1] div(s(X), s(Y)) -> if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0) [1] if(true, X, Y) -> X [1] if(false, X, Y) -> Y [1] encArg(0) -> 0 [0] encArg(s(x_1)) -> s(encArg(x_1)) [0] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_minus(x_1, x_2)) -> minus(encArg(x_1), encArg(x_2)) [0] encArg(cons_geq(x_1, x_2)) -> geq(encArg(x_1), encArg(x_2)) [0] encArg(cons_div(x_1, x_2)) -> div(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_minus(x_1, x_2) -> minus(encArg(x_1), encArg(x_2)) [0] encode_0 -> 0 [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_geq(x_1, x_2) -> geq(encArg(x_1), encArg(x_2)) [0] encode_true -> true [0] encode_false -> false [0] encode_div(x_1, x_2) -> div(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_minus(v0, v1) -> null_encode_minus [0] encode_0 -> null_encode_0 [0] encode_s(v0) -> null_encode_s [0] encode_geq(v0, v1) -> null_encode_geq [0] encode_true -> null_encode_true [0] encode_false -> null_encode_false [0] encode_div(v0, v1) -> null_encode_div [0] encode_if(v0, v1, v2) -> null_encode_if [0] minus(v0, v1) -> null_minus [0] geq(v0, v1) -> null_geq [0] div(v0, v1) -> null_div [0] if(v0, v1, v2) -> null_if [0] The TRS has the following type information: minus :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if 0 :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if s :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if geq :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if true :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if false :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if div :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if if :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if encArg :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if cons_minus :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if cons_geq :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if cons_div :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if cons_if :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if encode_minus :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if encode_0 :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if encode_s :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if encode_geq :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if encode_true :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if encode_false :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if encode_div :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if encode_if :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if -> 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_encArg :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_encode_minus :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_encode_0 :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_encode_s :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_encode_geq :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_encode_true :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_encode_false :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_encode_div :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_encode_if :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_minus :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_geq :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_div :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if null_if :: 0:s:true:false:cons_minus:cons_geq:cons_div:cons_if:null_encArg:null_encode_minus:null_encode_0:null_encode_s:null_encode_geq:null_encode_true:null_encode_false:null_encode_div:null_encode_if:null_minus:null_geq:null_div:null_if Rewrite Strategy: INNERMOST ---------------------------------------- (11) 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 true => 2 false => 1 null_encArg => 0 null_encode_minus => 0 null_encode_0 => 0 null_encode_s => 0 null_encode_geq => 0 null_encode_true => 0 null_encode_false => 0 null_encode_div => 0 null_encode_if => 0 null_minus => 0 null_geq => 0 null_div => 0 null_if => 0 ---------------------------------------- (12) Obligation: Complexity RNTS consisting of the following rules: div(z, z') -{ 1 }-> if(geq(X, Y), 1 + div(minus(X, Y), 1 + Y), 0) :|: z = 1 + X, Y >= 0, z' = 1 + Y, X >= 0 div(z, z') -{ 1 }-> 0 :|: Y >= 0, z' = 1 + Y, z = 0 div(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encArg(z) -{ 0 }-> minus(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_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 }-> geq(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> div(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) :|: z = 1 + x_1, x_1 >= 0 encode_0 -{ 0 }-> 0 :|: encode_div(z, z') -{ 0 }-> div(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_div(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_false -{ 0 }-> 1 :|: encode_false -{ 0 }-> 0 :|: encode_geq(z, z') -{ 0 }-> geq(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_geq(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 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_minus(z, z') -{ 0 }-> minus(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_minus(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 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 :|: geq(z, z') -{ 1 }-> geq(X, Y) :|: z = 1 + X, Y >= 0, z' = 1 + Y, X >= 0 geq(z, z') -{ 1 }-> 2 :|: X >= 0, z = X, z' = 0 geq(z, z') -{ 1 }-> 1 :|: Y >= 0, z' = 1 + Y, z = 0 geq(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 if(z, z', z'') -{ 1 }-> X :|: z = 2, z' = X, Y >= 0, z'' = Y, X >= 0 if(z, z', z'') -{ 1 }-> Y :|: z' = X, Y >= 0, z = 1, z'' = Y, X >= 0 if(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 minus(z, z') -{ 1 }-> minus(X, Y) :|: z = 1 + X, Y >= 0, z' = 1 + Y, X >= 0 minus(z, z') -{ 1 }-> 0 :|: z' = Y, Y >= 0, z = 0 minus(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (13) CompleteCoflocoProof (FINISHED) Transformed the RNTS (where only complete derivations are relevant) into cost relations for CoFloCo: eq(start(V1, V, V2),0,[minus(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V2),0,[geq(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V2),0,[div(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V2),0,[if(V1, V, V2, Out)],[V1 >= 0,V >= 0,V2 >= 0]). eq(start(V1, V, V2),0,[encArg(V1, Out)],[V1 >= 0]). eq(start(V1, V, V2),0,[fun(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V2),0,[fun1(Out)],[]). eq(start(V1, V, V2),0,[fun2(V1, Out)],[V1 >= 0]). eq(start(V1, V, V2),0,[fun3(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V2),0,[fun4(Out)],[]). eq(start(V1, V, V2),0,[fun5(Out)],[]). eq(start(V1, V, V2),0,[fun6(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V2),0,[fun7(V1, V, V2, Out)],[V1 >= 0,V >= 0,V2 >= 0]). eq(minus(V1, V, Out),1,[],[Out = 0,V = Y1,Y1 >= 0,V1 = 0]). eq(minus(V1, V, Out),1,[minus(X1, Y2, Ret)],[Out = Ret,V1 = 1 + X1,Y2 >= 0,V = 1 + Y2,X1 >= 0]). eq(geq(V1, V, Out),1,[],[Out = 2,X2 >= 0,V1 = X2,V = 0]). eq(geq(V1, V, Out),1,[],[Out = 1,Y3 >= 0,V = 1 + Y3,V1 = 0]). eq(geq(V1, V, Out),1,[geq(X3, Y4, Ret1)],[Out = Ret1,V1 = 1 + X3,Y4 >= 0,V = 1 + Y4,X3 >= 0]). eq(div(V1, V, Out),1,[],[Out = 0,Y5 >= 0,V = 1 + Y5,V1 = 0]). eq(div(V1, V, Out),1,[geq(X4, Y6, Ret0),minus(X4, Y6, Ret110),div(Ret110, 1 + Y6, Ret11),if(Ret0, 1 + Ret11, 0, Ret2)],[Out = Ret2,V1 = 1 + X4,Y6 >= 0,V = 1 + Y6,X4 >= 0]). eq(if(V1, V, V2, Out),1,[],[Out = X5,V1 = 2,V = X5,Y7 >= 0,V2 = Y7,X5 >= 0]). eq(if(V1, V, V2, Out),1,[],[Out = Y8,V = X6,Y8 >= 0,V1 = 1,V2 = Y8,X6 >= 0]). eq(encArg(V1, Out),0,[],[Out = 0,V1 = 0]). eq(encArg(V1, Out),0,[encArg(V3, Ret12)],[Out = 1 + Ret12,V1 = 1 + V3,V3 >= 0]). eq(encArg(V1, Out),0,[],[Out = 2,V1 = 2]). eq(encArg(V1, Out),0,[],[Out = 1,V1 = 1]). eq(encArg(V1, Out),0,[encArg(V4, Ret01),encArg(V5, Ret13),minus(Ret01, Ret13, Ret3)],[Out = Ret3,V4 >= 0,V1 = 1 + V4 + V5,V5 >= 0]). eq(encArg(V1, Out),0,[encArg(V6, Ret02),encArg(V7, Ret14),geq(Ret02, Ret14, Ret4)],[Out = Ret4,V6 >= 0,V1 = 1 + V6 + V7,V7 >= 0]). eq(encArg(V1, Out),0,[encArg(V9, Ret03),encArg(V8, Ret15),div(Ret03, Ret15, Ret5)],[Out = Ret5,V9 >= 0,V1 = 1 + V8 + V9,V8 >= 0]). eq(encArg(V1, Out),0,[encArg(V12, Ret04),encArg(V11, Ret16),encArg(V10, Ret21),if(Ret04, Ret16, Ret21, Ret6)],[Out = Ret6,V12 >= 0,V1 = 1 + V10 + V11 + V12,V10 >= 0,V11 >= 0]). eq(fun(V1, V, Out),0,[encArg(V13, Ret05),encArg(V14, Ret17),minus(Ret05, Ret17, Ret7)],[Out = Ret7,V13 >= 0,V14 >= 0,V1 = V13,V = V14]). eq(fun1(Out),0,[],[Out = 0]). eq(fun2(V1, Out),0,[encArg(V15, Ret18)],[Out = 1 + Ret18,V15 >= 0,V1 = V15]). eq(fun3(V1, V, Out),0,[encArg(V17, Ret06),encArg(V16, Ret19),geq(Ret06, Ret19, Ret8)],[Out = Ret8,V17 >= 0,V16 >= 0,V1 = V17,V = V16]). eq(fun4(Out),0,[],[Out = 2]). eq(fun5(Out),0,[],[Out = 1]). eq(fun6(V1, V, Out),0,[encArg(V19, Ret07),encArg(V18, Ret111),div(Ret07, Ret111, Ret9)],[Out = Ret9,V19 >= 0,V18 >= 0,V1 = V19,V = V18]). eq(fun7(V1, V, V2, Out),0,[encArg(V20, Ret08),encArg(V22, Ret112),encArg(V21, Ret22),if(Ret08, Ret112, Ret22, Ret10)],[Out = Ret10,V20 >= 0,V21 >= 0,V22 >= 0,V1 = V20,V = V22,V2 = V21]). eq(encArg(V1, Out),0,[],[Out = 0,V23 >= 0,V1 = V23]). eq(fun(V1, V, Out),0,[],[Out = 0,V25 >= 0,V24 >= 0,V1 = V25,V = V24]). eq(fun2(V1, Out),0,[],[Out = 0,V26 >= 0,V1 = V26]). eq(fun3(V1, V, Out),0,[],[Out = 0,V27 >= 0,V28 >= 0,V1 = V27,V = V28]). eq(fun4(Out),0,[],[Out = 0]). eq(fun5(Out),0,[],[Out = 0]). eq(fun6(V1, V, Out),0,[],[Out = 0,V29 >= 0,V30 >= 0,V1 = V29,V = V30]). eq(fun7(V1, V, V2, Out),0,[],[Out = 0,V31 >= 0,V2 = V33,V32 >= 0,V1 = V31,V = V32,V33 >= 0]). eq(minus(V1, V, Out),0,[],[Out = 0,V35 >= 0,V34 >= 0,V1 = V35,V = V34]). eq(geq(V1, V, Out),0,[],[Out = 0,V36 >= 0,V37 >= 0,V1 = V36,V = V37]). eq(div(V1, V, Out),0,[],[Out = 0,V38 >= 0,V39 >= 0,V1 = V38,V = V39]). eq(if(V1, V, V2, Out),0,[],[Out = 0,V40 >= 0,V2 = V42,V41 >= 0,V1 = V40,V = V41,V42 >= 0]). input_output_vars(minus(V1,V,Out),[V1,V],[Out]). input_output_vars(geq(V1,V,Out),[V1,V],[Out]). input_output_vars(div(V1,V,Out),[V1,V],[Out]). input_output_vars(if(V1,V,V2,Out),[V1,V,V2],[Out]). input_output_vars(encArg(V1,Out),[V1],[Out]). input_output_vars(fun(V1,V,Out),[V1,V],[Out]). input_output_vars(fun1(Out),[],[Out]). input_output_vars(fun2(V1,Out),[V1],[Out]). input_output_vars(fun3(V1,V,Out),[V1,V],[Out]). input_output_vars(fun4(Out),[],[Out]). input_output_vars(fun5(Out),[],[Out]). input_output_vars(fun6(V1,V,Out),[V1,V],[Out]). input_output_vars(fun7(V1,V,V2,Out),[V1,V,V2],[Out]). CoFloCo proof output: Preprocessing Cost Relations ===================================== #### Computed strongly connected components 0. recursive : [geq/3] 1. non_recursive : [if/4] 2. recursive : [minus/3] 3. recursive [non_tail] : [(div)/3] 4. recursive [non_tail,multiple] : [encArg/2] 5. non_recursive : [fun/3] 6. non_recursive : [fun1/1] 7. non_recursive : [fun2/2] 8. non_recursive : [fun3/3] 9. non_recursive : [fun4/1] 10. non_recursive : [fun5/1] 11. non_recursive : [fun6/3] 12. non_recursive : [fun7/4] 13. non_recursive : [start/3] #### Obtained direct recursion through partial evaluation 0. SCC is partially evaluated into geq/3 1. SCC is partially evaluated into if/4 2. SCC is partially evaluated into minus/3 3. SCC is partially evaluated into (div)/3 4. SCC is partially evaluated into encArg/2 5. SCC is partially evaluated into fun/3 6. SCC is completely evaluated into other SCCs 7. SCC is partially evaluated into fun2/2 8. SCC is partially evaluated into fun3/3 9. SCC is partially evaluated into fun4/1 10. SCC is partially evaluated into fun5/1 11. SCC is partially evaluated into fun6/3 12. SCC is partially evaluated into fun7/4 13. SCC is partially evaluated into start/3 Control-Flow Refinement of Cost Relations ===================================== ### Specialization of cost equations geq/3 * CE 20 is refined into CE [49] * CE 17 is refined into CE [50] * CE 18 is refined into CE [51] * CE 19 is refined into CE [52] ### Cost equations --> "Loop" of geq/3 * CEs [52] --> Loop 28 * CEs [49] --> Loop 29 * CEs [50] --> Loop 30 * CEs [51] --> Loop 31 ### Ranking functions of CR geq(V1,V,Out) * RF of phase [28]: [V,V1] #### Partial ranking functions of CR geq(V1,V,Out) * Partial RF of phase [28]: - RF of loop [28:1]: V V1 ### Specialization of cost equations if/4 * CE 26 is refined into CE [53] * CE 24 is refined into CE [54] * CE 25 is refined into CE [55] ### Cost equations --> "Loop" of if/4 * CEs [53] --> Loop 32 * CEs [54] --> Loop 33 * CEs [55] --> Loop 34 ### Ranking functions of CR if(V1,V,V2,Out) #### Partial ranking functions of CR if(V1,V,V2,Out) ### Specialization of cost equations minus/3 * CE 14 is refined into CE [56] * CE 16 is refined into CE [57] * CE 15 is refined into CE [58] ### Cost equations --> "Loop" of minus/3 * CEs [58] --> Loop 35 * CEs [56,57] --> Loop 36 ### Ranking functions of CR minus(V1,V,Out) * RF of phase [35]: [V,V1] #### Partial ranking functions of CR minus(V1,V,Out) * Partial RF of phase [35]: - RF of loop [35:1]: V V1 ### Specialization of cost equations (div)/3 * CE 21 is refined into CE [59] * CE 23 is refined into CE [60] * CE 22 is refined into CE [61,62,63,64,65,66,67,68,69] ### Cost equations --> "Loop" of (div)/3 * CEs [68] --> Loop 37 * CEs [69] --> Loop 38 * CEs [63] --> Loop 39 * CEs [64] --> Loop 40 * CEs [61,62,65,66,67] --> Loop 41 * CEs [59,60] --> Loop 42 ### Ranking functions of CR div(V1,V,Out) #### Partial ranking functions of CR div(V1,V,Out) ### Specialization of cost equations encArg/2 * CE 27 is refined into CE [70] * CE 29 is refined into CE [71] * CE 30 is refined into CE [72] * CE 34 is refined into CE [73,74,75] * CE 31 is refined into CE [76] * CE 32 is refined into CE [77,78,79,80,81] * CE 33 is refined into CE [82,83,84] * CE 28 is refined into CE [85] ### Cost equations --> "Loop" of encArg/2 * CEs [85] --> Loop 43 * CEs [81] --> Loop 44 * CEs [78] --> Loop 45 * CEs [84] --> Loop 46 * CEs [80] --> Loop 47 * CEs [83] --> Loop 48 * CEs [77] --> Loop 49 * CEs [76,79,82] --> Loop 50 * CEs [74] --> Loop 51 * CEs [73] --> Loop 52 * CEs [75] --> Loop 53 * CEs [70] --> Loop 54 * CEs [71] --> Loop 55 * CEs [72] --> Loop 56 ### Ranking functions of CR encArg(V1,Out) * RF of phase [43,44,45,46,47,48,49,50,51,52,53]: [V1] #### Partial ranking functions of CR encArg(V1,Out) * Partial RF of phase [43,44,45,46,47,48,49,50,51,52,53]: - RF of loop [43:1,44:1,44:2,45:1,45:2,46:1,46:2,47:1,47:2,48:1,48:2,49:1,49:2,50:1,50:2,51:1,51:2,51:3,52:1,52:2,52:3,53:1,53:2,53:3]: V1 ### Specialization of cost equations fun/3 * CE 35 is refined into CE [86,87,88,89,90,91,92,93,94] * CE 36 is refined into CE [95] ### Cost equations --> "Loop" of fun/3 * CEs [87,93] --> Loop 57 * CEs [86,88,89,90,91,92,94,95] --> Loop 58 ### Ranking functions of CR fun(V1,V,Out) #### Partial ranking functions of CR fun(V1,V,Out) ### Specialization of cost equations fun2/2 * CE 37 is refined into CE [96,97,98] * CE 38 is refined into CE [99] ### Cost equations --> "Loop" of fun2/2 * CEs [98] --> Loop 59 * CEs [99] --> Loop 60 * CEs [96,97] --> Loop 61 ### Ranking functions of CR fun2(V1,Out) #### Partial ranking functions of CR fun2(V1,Out) ### Specialization of cost equations fun3/3 * CE 39 is refined into CE [100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125] * CE 40 is refined into CE [126] ### Cost equations --> "Loop" of fun3/3 * CEs [108] --> Loop 62 * CEs [105,107,122] --> Loop 63 * CEs [106,123] --> Loop 64 * CEs [100,103,113,119] --> Loop 65 * CEs [101,104,109,111,114,116,117,120,124] --> Loop 66 * CEs [102,110,112,115,118,121,125,126] --> Loop 67 ### Ranking functions of CR fun3(V1,V,Out) #### Partial ranking functions of CR fun3(V1,V,Out) ### Specialization of cost equations fun4/1 * CE 41 is refined into CE [127] * CE 42 is refined into CE [128] ### Cost equations --> "Loop" of fun4/1 * CEs [127] --> Loop 68 * CEs [128] --> Loop 69 ### Ranking functions of CR fun4(Out) #### Partial ranking functions of CR fun4(Out) ### Specialization of cost equations fun5/1 * CE 43 is refined into CE [129] * CE 44 is refined into CE [130] ### Cost equations --> "Loop" of fun5/1 * CEs [129] --> Loop 70 * CEs [130] --> Loop 71 ### Ranking functions of CR fun5(Out) #### Partial ranking functions of CR fun5(Out) ### Specialization of cost equations fun6/3 * CE 45 is refined into CE [131,132,133,134,135,136,137,138,139,140,141,142,143,144,145] * CE 46 is refined into CE [146] ### Cost equations --> "Loop" of fun6/3 * CEs [135] --> Loop 72 * CEs [134,144] --> Loop 73 * CEs [132,133,138,139,141] --> Loop 74 * CEs [131,136,137,140,142,143,145,146] --> Loop 75 ### Ranking functions of CR fun6(V1,V,Out) #### Partial ranking functions of CR fun6(V1,V,Out) ### Specialization of cost equations fun7/4 * CE 47 is refined into CE [147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200] * CE 48 is refined into CE [201] ### Cost equations --> "Loop" of fun7/4 * CEs [150,168] --> Loop 76 * CEs [147,156,165] --> Loop 77 * CEs [157,159,160,163] --> Loop 78 * CEs [158,161,162,164,195,196,197] --> Loop 79 * CEs [151,176] --> Loop 80 * CEs [152,169,170,177,188,189,193,199] --> Loop 81 * CEs [148,154,174,178,180,182,184] --> Loop 82 * CEs [149,153,155,166,167,171,172,173,175,179,181,183,185,186,187,190,191,192,194,198,200,201] --> Loop 83 ### Ranking functions of CR fun7(V1,V,V2,Out) #### Partial ranking functions of CR fun7(V1,V,V2,Out) ### Specialization of cost equations start/3 * CE 1 is refined into CE [202] * CE 2 is refined into CE [203,204,205,206,207] * CE 3 is refined into CE [208,209,210] * CE 4 is refined into CE [211,212,213] * CE 5 is refined into CE [214,215,216] * CE 6 is refined into CE [217] * CE 7 is refined into CE [218] * CE 8 is refined into CE [219,220,221] * CE 9 is refined into CE [222,223,224] * CE 10 is refined into CE [225,226] * CE 11 is refined into CE [227,228] * CE 12 is refined into CE [229,230] * CE 13 is refined into CE [231,232,233,234,235] ### Cost equations --> "Loop" of start/3 * CEs [202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235] --> Loop 84 ### Ranking functions of CR start(V1,V,V2) #### Partial ranking functions of CR start(V1,V,V2) Computing Bounds ===================================== #### Cost of chains of geq(V1,V,Out): * Chain [[28],31]: 1*it(28)+1 Such that:it(28) =< V1 with precondition: [Out=1,V1>=1,V>=V1+1] * Chain [[28],30]: 1*it(28)+1 Such that:it(28) =< V with precondition: [Out=2,V>=1,V1>=V] * Chain [[28],29]: 1*it(28)+0 Such that:it(28) =< V with precondition: [Out=0,V1>=1,V>=1] * Chain [31]: 1 with precondition: [V1=0,Out=1,V>=1] * Chain [30]: 1 with precondition: [V=0,Out=2,V1>=0] * Chain [29]: 0 with precondition: [Out=0,V1>=0,V>=0] #### Cost of chains of if(V1,V,V2,Out): * Chain [34]: 1 with precondition: [V1=1,V2=Out,V>=0,V2>=0] * Chain [33]: 1 with precondition: [V1=2,V=Out,V>=0,V2>=0] * Chain [32]: 0 with precondition: [Out=0,V1>=0,V>=0,V2>=0] #### Cost of chains of minus(V1,V,Out): * Chain [[35],36]: 1*it(35)+1 Such that:it(35) =< V with precondition: [Out=0,V1>=1,V>=1] * Chain [36]: 1 with precondition: [Out=0,V1>=0,V>=0] #### Cost of chains of div(V1,V,Out): * Chain [42]: 1 with precondition: [Out=0,V1>=0,V>=0] * Chain [41,42]: 6*s(3)+2*s(7)+5 Such that:aux(2) =< V1 aux(4) =< V s(7) =< aux(2) s(3) =< aux(4) with precondition: [Out=0,V1>=1,V>=1] * Chain [40,42]: 4 with precondition: [V=1,Out=0,V1>=1] * Chain [39,42]: 5 with precondition: [V=1,Out=1,V1>=1] * Chain [38,42]: 2*s(13)+4 Such that:aux(5) =< V s(13) =< aux(5) with precondition: [Out=0,V>=2,V1>=V] * Chain [37,42]: 2*s(15)+5 Such that:aux(6) =< V s(15) =< aux(6) with precondition: [Out=1,V>=2,V1>=V] #### Cost of chains of encArg(V1,Out): * Chain [56]: 0 with precondition: [V1=1,Out=1] * Chain [55]: 0 with precondition: [V1=2,Out=2] * Chain [54]: 0 with precondition: [Out=0,V1>=0] * Chain [multiple([43,44,45,46,47,48,49,50,51,52,53],[[56],[55],[54]])]: 6*it(44)+6*it(45)+5*it(46)+1*it(47)+1*it(49)+1*it(51)+1*it(52)+1*s(43)+2*s(44)+1*s(46)+4*s(47)+8*s(49)+0 Such that:aux(10) =< 2*V1 aux(29) =< V1 aux(30) =< V1/2 aux(31) =< 2/3*V1 aux(32) =< 3/4*V1 aux(33) =< 3/5*V1 aux(34) =< 4/5*V1 aux(35) =< 4/7*V1 it(44) =< aux(29) it(45) =< aux(29) it(46) =< aux(29) it(47) =< aux(29) it(49) =< aux(29) it(51) =< aux(29) it(52) =< aux(29) it(46) =< aux(30) it(44) =< aux(31) it(46) =< aux(31) it(47) =< aux(31) it(51) =< aux(31) it(52) =< aux(32) it(51) =< aux(33) it(49) =< aux(34) it(51) =< aux(34) it(52) =< aux(34) it(47) =< aux(35) aux(18) =< aux(10)+1 aux(17) =< aux(10)+3 aux(14) =< aux(10) aux(12) =< aux(10)-1 s(51) =< it(45)*aux(18) s(50) =< it(45)*aux(17) s(46) =< it(47)*aux(14) s(45) =< it(46)*aux(12) s(43) =< it(44)*aux(10) s(47) =< s(51) s(49) =< s(50) s(44) =< s(45) with precondition: [V1>=1,Out>=0,2*V1>=Out] #### Cost of chains of fun(V1,V,Out): * Chain [58]: 12*s(88)+12*s(89)+10*s(90)+2*s(91)+2*s(92)+2*s(93)+2*s(94)+2*s(101)+2*s(103)+8*s(104)+16*s(105)+4*s(106)+18*s(115)+18*s(116)+15*s(117)+3*s(118)+3*s(119)+3*s(120)+3*s(121)+3*s(128)+3*s(130)+12*s(131)+24*s(132)+6*s(133)+3*s(134)+1*s(191)+1 Such that:s(191) =< 2 aux(39) =< V1 aux(40) =< 2*V1 aux(41) =< V1/2 aux(42) =< 2/3*V1 aux(43) =< 3/4*V1 aux(44) =< 3/5*V1 aux(45) =< 4/5*V1 aux(46) =< 4/7*V1 aux(47) =< V aux(48) =< 2*V aux(49) =< V/2 aux(50) =< 2/3*V aux(51) =< 3/4*V aux(52) =< 3/5*V aux(53) =< 4/5*V aux(54) =< 4/7*V s(134) =< aux(48) s(115) =< aux(47) s(116) =< aux(47) s(117) =< aux(47) s(118) =< aux(47) s(119) =< aux(47) s(120) =< aux(47) s(121) =< aux(47) s(117) =< aux(49) s(115) =< aux(50) s(117) =< aux(50) s(118) =< aux(50) s(120) =< aux(50) s(121) =< aux(51) s(120) =< aux(52) s(119) =< aux(53) s(120) =< aux(53) s(121) =< aux(53) s(118) =< aux(54) s(122) =< aux(48)+1 s(123) =< aux(48)+3 s(124) =< aux(48) s(125) =< aux(48)-1 s(126) =< s(116)*s(122) s(127) =< s(116)*s(123) s(128) =< s(118)*s(124) s(129) =< s(117)*s(125) s(130) =< s(115)*aux(48) s(131) =< s(126) s(132) =< s(127) s(133) =< s(129) s(88) =< aux(39) s(89) =< aux(39) s(90) =< aux(39) s(91) =< aux(39) s(92) =< aux(39) s(93) =< aux(39) s(94) =< aux(39) s(90) =< aux(41) s(88) =< aux(42) s(90) =< aux(42) s(91) =< aux(42) s(93) =< aux(42) s(94) =< aux(43) s(93) =< aux(44) s(92) =< aux(45) s(93) =< aux(45) s(94) =< aux(45) s(91) =< aux(46) s(95) =< aux(40)+1 s(96) =< aux(40)+3 s(97) =< aux(40) s(98) =< aux(40)-1 s(99) =< s(89)*s(95) s(100) =< s(89)*s(96) s(101) =< s(91)*s(97) s(102) =< s(90)*s(98) s(103) =< s(88)*aux(40) s(104) =< s(99) s(105) =< s(100) s(106) =< s(102) with precondition: [Out=0,V1>=0,V>=0] * Chain [57]: 6*s(230)+6*s(231)+5*s(232)+1*s(233)+1*s(234)+1*s(235)+1*s(236)+1*s(243)+1*s(245)+4*s(246)+8*s(247)+2*s(248)+2*s(249)+1 Such that:s(222) =< V1 s(223) =< 2*V1 s(224) =< V1/2 s(225) =< 2/3*V1 s(226) =< 3/4*V1 s(227) =< 3/5*V1 s(228) =< 4/5*V1 s(229) =< 4/7*V1 aux(55) =< 2 s(249) =< aux(55) s(230) =< s(222) s(231) =< s(222) s(232) =< s(222) s(233) =< s(222) s(234) =< s(222) s(235) =< s(222) s(236) =< s(222) s(232) =< s(224) s(230) =< s(225) s(232) =< s(225) s(233) =< s(225) s(235) =< s(225) s(236) =< s(226) s(235) =< s(227) s(234) =< s(228) s(235) =< s(228) s(236) =< s(228) s(233) =< s(229) s(237) =< s(223)+1 s(238) =< s(223)+3 s(239) =< s(223) s(240) =< s(223)-1 s(241) =< s(231)*s(237) s(242) =< s(231)*s(238) s(243) =< s(233)*s(239) s(244) =< s(232)*s(240) s(245) =< s(230)*s(223) s(246) =< s(241) s(247) =< s(242) s(248) =< s(244) with precondition: [V=2,Out=0,V1>=0] #### Cost of chains of fun2(V1,Out): * Chain [61]: 6*s(344)+6*s(345)+5*s(346)+1*s(347)+1*s(348)+1*s(349)+1*s(350)+1*s(357)+1*s(359)+4*s(360)+8*s(361)+2*s(362)+0 Such that:s(336) =< V1 s(337) =< 2*V1 s(338) =< V1/2 s(339) =< 2/3*V1 s(340) =< 3/4*V1 s(341) =< 3/5*V1 s(342) =< 4/5*V1 s(343) =< 4/7*V1 s(344) =< s(336) s(345) =< s(336) s(346) =< s(336) s(347) =< s(336) s(348) =< s(336) s(349) =< s(336) s(350) =< s(336) s(346) =< s(338) s(344) =< s(339) s(346) =< s(339) s(347) =< s(339) s(349) =< s(339) s(350) =< s(340) s(349) =< s(341) s(348) =< s(342) s(349) =< s(342) s(350) =< s(342) s(347) =< s(343) s(351) =< s(337)+1 s(352) =< s(337)+3 s(353) =< s(337) s(354) =< s(337)-1 s(355) =< s(345)*s(351) s(356) =< s(345)*s(352) s(357) =< s(347)*s(353) s(358) =< s(346)*s(354) s(359) =< s(344)*s(337) s(360) =< s(355) s(361) =< s(356) s(362) =< s(358) with precondition: [V1>=1,Out>=1,2*V1+1>=Out] * Chain [60]: 0 with precondition: [Out=0,V1>=0] * Chain [59]: 0 with precondition: [Out=1,V1>=0] #### Cost of chains of fun3(V1,V,Out): * Chain [67]: 12*s(371)+12*s(372)+10*s(373)+2*s(374)+2*s(375)+2*s(376)+2*s(377)+2*s(384)+2*s(386)+8*s(387)+16*s(388)+4*s(389)+18*s(398)+18*s(399)+15*s(400)+3*s(401)+3*s(402)+3*s(403)+3*s(404)+3*s(411)+3*s(413)+12*s(414)+24*s(415)+6*s(416)+3*s(417)+1*s(474)+0 Such that:s(474) =< 2 aux(68) =< V1 aux(69) =< 2*V1 aux(70) =< V1/2 aux(71) =< 2/3*V1 aux(72) =< 3/4*V1 aux(73) =< 3/5*V1 aux(74) =< 4/5*V1 aux(75) =< 4/7*V1 aux(76) =< V aux(77) =< 2*V aux(78) =< V/2 aux(79) =< 2/3*V aux(80) =< 3/4*V aux(81) =< 3/5*V aux(82) =< 4/5*V aux(83) =< 4/7*V s(417) =< aux(77) s(398) =< aux(76) s(399) =< aux(76) s(400) =< aux(76) s(401) =< aux(76) s(402) =< aux(76) s(403) =< aux(76) s(404) =< aux(76) s(400) =< aux(78) s(398) =< aux(79) s(400) =< aux(79) s(401) =< aux(79) s(403) =< aux(79) s(404) =< aux(80) s(403) =< aux(81) s(402) =< aux(82) s(403) =< aux(82) s(404) =< aux(82) s(401) =< aux(83) s(405) =< aux(77)+1 s(406) =< aux(77)+3 s(407) =< aux(77) s(408) =< aux(77)-1 s(409) =< s(399)*s(405) s(410) =< s(399)*s(406) s(411) =< s(401)*s(407) s(412) =< s(400)*s(408) s(413) =< s(398)*aux(77) s(414) =< s(409) s(415) =< s(410) s(416) =< s(412) s(371) =< aux(68) s(372) =< aux(68) s(373) =< aux(68) s(374) =< aux(68) s(375) =< aux(68) s(376) =< aux(68) s(377) =< aux(68) s(373) =< aux(70) s(371) =< aux(71) s(373) =< aux(71) s(374) =< aux(71) s(376) =< aux(71) s(377) =< aux(72) s(376) =< aux(73) s(375) =< aux(74) s(376) =< aux(74) s(377) =< aux(74) s(374) =< aux(75) s(378) =< aux(69)+1 s(379) =< aux(69)+3 s(380) =< aux(69) s(381) =< aux(69)-1 s(382) =< s(372)*s(378) s(383) =< s(372)*s(379) s(384) =< s(374)*s(380) s(385) =< s(373)*s(381) s(386) =< s(371)*aux(69) s(387) =< s(382) s(388) =< s(383) s(389) =< s(385) with precondition: [Out=0,V1>=0,V>=0] * Chain [66]: 18*s(513)+18*s(514)+15*s(515)+3*s(516)+3*s(517)+3*s(518)+3*s(519)+3*s(526)+3*s(528)+12*s(529)+24*s(530)+6*s(531)+30*s(540)+30*s(541)+25*s(542)+5*s(543)+5*s(544)+5*s(545)+5*s(546)+5*s(553)+5*s(555)+20*s(556)+40*s(557)+10*s(558)+1*s(613)+2*s(695)+1 Such that:aux(85) =< 2 aux(86) =< V1 aux(87) =< 2*V1 aux(88) =< V1/2 aux(89) =< 2/3*V1 aux(90) =< 3/4*V1 aux(91) =< 3/5*V1 aux(92) =< 4/5*V1 aux(93) =< 4/7*V1 aux(94) =< V aux(95) =< 2*V aux(96) =< V/2 aux(97) =< 2/3*V aux(98) =< 3/4*V aux(99) =< 3/5*V aux(100) =< 4/5*V aux(101) =< 4/7*V s(695) =< aux(85) s(540) =< aux(94) s(541) =< aux(94) s(542) =< aux(94) s(543) =< aux(94) s(544) =< aux(94) s(545) =< aux(94) s(546) =< aux(94) s(542) =< aux(96) s(540) =< aux(97) s(542) =< aux(97) s(543) =< aux(97) s(545) =< aux(97) s(546) =< aux(98) s(545) =< aux(99) s(544) =< aux(100) s(545) =< aux(100) s(546) =< aux(100) s(543) =< aux(101) s(547) =< aux(95)+1 s(548) =< aux(95)+3 s(549) =< aux(95) s(550) =< aux(95)-1 s(551) =< s(541)*s(547) s(552) =< s(541)*s(548) s(553) =< s(543)*s(549) s(554) =< s(542)*s(550) s(555) =< s(540)*aux(95) s(556) =< s(551) s(557) =< s(552) s(558) =< s(554) s(513) =< aux(86) s(514) =< aux(86) s(515) =< aux(86) s(516) =< aux(86) s(517) =< aux(86) s(518) =< aux(86) s(519) =< aux(86) s(515) =< aux(88) s(513) =< aux(89) s(515) =< aux(89) s(516) =< aux(89) s(518) =< aux(89) s(519) =< aux(90) s(518) =< aux(91) s(517) =< aux(92) s(518) =< aux(92) s(519) =< aux(92) s(516) =< aux(93) s(520) =< aux(87)+1 s(521) =< aux(87)+3 s(522) =< aux(87) s(523) =< aux(87)-1 s(524) =< s(514)*s(520) s(525) =< s(514)*s(521) s(526) =< s(516)*s(522) s(527) =< s(515)*s(523) s(528) =< s(513)*aux(87) s(529) =< s(524) s(530) =< s(525) s(531) =< s(527) s(613) =< aux(95) with precondition: [Out=2,V1>=0,V>=0] * Chain [65]: 12*s(732)+12*s(733)+10*s(734)+2*s(735)+2*s(736)+2*s(737)+2*s(738)+2*s(745)+2*s(747)+8*s(748)+16*s(749)+4*s(750)+24*s(759)+24*s(760)+20*s(761)+4*s(762)+4*s(763)+4*s(764)+4*s(765)+4*s(772)+4*s(774)+16*s(775)+32*s(776)+8*s(777)+1*s(832)+1*s(860)+1 Such that:s(860) =< 2 aux(103) =< V1 aux(104) =< 2*V1 aux(105) =< V1/2 aux(106) =< 2/3*V1 aux(107) =< 3/4*V1 aux(108) =< 3/5*V1 aux(109) =< 4/5*V1 aux(110) =< 4/7*V1 aux(111) =< V aux(112) =< 2*V aux(113) =< V/2 aux(114) =< 2/3*V aux(115) =< 3/4*V aux(116) =< 3/5*V aux(117) =< 4/5*V aux(118) =< 4/7*V s(759) =< aux(111) s(760) =< aux(111) s(761) =< aux(111) s(762) =< aux(111) s(763) =< aux(111) s(764) =< aux(111) s(765) =< aux(111) s(761) =< aux(113) s(759) =< aux(114) s(761) =< aux(114) s(762) =< aux(114) s(764) =< aux(114) s(765) =< aux(115) s(764) =< aux(116) s(763) =< aux(117) s(764) =< aux(117) s(765) =< aux(117) s(762) =< aux(118) s(766) =< aux(112)+1 s(767) =< aux(112)+3 s(768) =< aux(112) s(769) =< aux(112)-1 s(770) =< s(760)*s(766) s(771) =< s(760)*s(767) s(772) =< s(762)*s(768) s(773) =< s(761)*s(769) s(774) =< s(759)*aux(112) s(775) =< s(770) s(776) =< s(771) s(777) =< s(773) s(732) =< aux(103) s(733) =< aux(103) s(734) =< aux(103) s(735) =< aux(103) s(736) =< aux(103) s(737) =< aux(103) s(738) =< aux(103) s(734) =< aux(105) s(732) =< aux(106) s(734) =< aux(106) s(735) =< aux(106) s(737) =< aux(106) s(738) =< aux(107) s(737) =< aux(108) s(736) =< aux(109) s(737) =< aux(109) s(738) =< aux(109) s(735) =< aux(110) s(739) =< aux(104)+1 s(740) =< aux(104)+3 s(741) =< aux(104) s(742) =< aux(104)-1 s(743) =< s(733)*s(739) s(744) =< s(733)*s(740) s(745) =< s(735)*s(741) s(746) =< s(734)*s(742) s(747) =< s(732)*aux(104) s(748) =< s(743) s(749) =< s(744) s(750) =< s(746) s(832) =< aux(112) with precondition: [Out=1,V1>=0,V>=1] * Chain [64]: 6*s(896)+6*s(897)+5*s(898)+1*s(899)+1*s(900)+1*s(901)+1*s(902)+1*s(909)+1*s(911)+4*s(912)+8*s(913)+2*s(914)+2*s(915)+0 Such that:s(888) =< V1 s(889) =< 2*V1 s(890) =< V1/2 s(891) =< 2/3*V1 s(892) =< 3/4*V1 s(893) =< 3/5*V1 s(894) =< 4/5*V1 s(895) =< 4/7*V1 aux(119) =< 2 s(915) =< aux(119) s(896) =< s(888) s(897) =< s(888) s(898) =< s(888) s(899) =< s(888) s(900) =< s(888) s(901) =< s(888) s(902) =< s(888) s(898) =< s(890) s(896) =< s(891) s(898) =< s(891) s(899) =< s(891) s(901) =< s(891) s(902) =< s(892) s(901) =< s(893) s(900) =< s(894) s(901) =< s(894) s(902) =< s(894) s(899) =< s(895) s(903) =< s(889)+1 s(904) =< s(889)+3 s(905) =< s(889) s(906) =< s(889)-1 s(907) =< s(897)*s(903) s(908) =< s(897)*s(904) s(909) =< s(899)*s(905) s(910) =< s(898)*s(906) s(911) =< s(896)*s(889) s(912) =< s(907) s(913) =< s(908) s(914) =< s(910) with precondition: [V=2,Out=0,V1>=0] * Chain [63]: 12*s(925)+12*s(926)+10*s(927)+2*s(928)+2*s(929)+2*s(930)+2*s(931)+2*s(938)+2*s(940)+8*s(941)+16*s(942)+4*s(943)+1*s(971)+1 Such that:s(971) =< 1 aux(120) =< V1 aux(121) =< 2*V1 aux(122) =< V1/2 aux(123) =< 2/3*V1 aux(124) =< 3/4*V1 aux(125) =< 3/5*V1 aux(126) =< 4/5*V1 aux(127) =< 4/7*V1 s(925) =< aux(120) s(926) =< aux(120) s(927) =< aux(120) s(928) =< aux(120) s(929) =< aux(120) s(930) =< aux(120) s(931) =< aux(120) s(927) =< aux(122) s(925) =< aux(123) s(927) =< aux(123) s(928) =< aux(123) s(930) =< aux(123) s(931) =< aux(124) s(930) =< aux(125) s(929) =< aux(126) s(930) =< aux(126) s(931) =< aux(126) s(928) =< aux(127) s(932) =< aux(121)+1 s(933) =< aux(121)+3 s(934) =< aux(121) s(935) =< aux(121)-1 s(936) =< s(926)*s(932) s(937) =< s(926)*s(933) s(938) =< s(928)*s(934) s(939) =< s(927)*s(935) s(940) =< s(925)*aux(121) s(941) =< s(936) s(942) =< s(937) s(943) =< s(939) with precondition: [V=2,Out=1,V1>=0] * Chain [62]: 6*s(980)+6*s(981)+5*s(982)+1*s(983)+1*s(984)+1*s(985)+1*s(986)+1*s(993)+1*s(995)+4*s(996)+8*s(997)+2*s(998)+1*s(999)+1 Such that:s(999) =< 2 s(972) =< V1 s(973) =< 2*V1 s(974) =< V1/2 s(975) =< 2/3*V1 s(976) =< 3/4*V1 s(977) =< 3/5*V1 s(978) =< 4/5*V1 s(979) =< 4/7*V1 s(980) =< s(972) s(981) =< s(972) s(982) =< s(972) s(983) =< s(972) s(984) =< s(972) s(985) =< s(972) s(986) =< s(972) s(982) =< s(974) s(980) =< s(975) s(982) =< s(975) s(983) =< s(975) s(985) =< s(975) s(986) =< s(976) s(985) =< s(977) s(984) =< s(978) s(985) =< s(978) s(986) =< s(978) s(983) =< s(979) s(987) =< s(973)+1 s(988) =< s(973)+3 s(989) =< s(973) s(990) =< s(973)-1 s(991) =< s(981)*s(987) s(992) =< s(981)*s(988) s(993) =< s(983)*s(989) s(994) =< s(982)*s(990) s(995) =< s(980)*s(973) s(996) =< s(991) s(997) =< s(992) s(998) =< s(994) with precondition: [V=2,Out=2,V1>=1] #### Cost of chains of fun4(Out): * Chain [69]: 0 with precondition: [Out=0] * Chain [68]: 0 with precondition: [Out=2] #### Cost of chains of fun5(Out): * Chain [71]: 0 with precondition: [Out=0] * Chain [70]: 0 with precondition: [Out=1] #### Cost of chains of fun6(V1,V,Out): * Chain [75]: 12*s(1262)+12*s(1263)+10*s(1264)+2*s(1265)+2*s(1266)+2*s(1267)+2*s(1268)+2*s(1275)+2*s(1277)+8*s(1278)+16*s(1279)+4*s(1280)+18*s(1289)+18*s(1290)+15*s(1291)+3*s(1292)+3*s(1293)+3*s(1294)+3*s(1295)+3*s(1302)+3*s(1304)+12*s(1305)+24*s(1306)+6*s(1307)+4*s(1310)+24*s(1311)+14*s(1372)+5 Such that:aux(161) =< 2 aux(162) =< V1 aux(163) =< 2*V1 aux(164) =< V1/2 aux(165) =< 2/3*V1 aux(166) =< 3/4*V1 aux(167) =< 3/5*V1 aux(168) =< 4/5*V1 aux(169) =< 4/7*V1 aux(170) =< V aux(171) =< 2*V aux(172) =< V/2 aux(173) =< 2/3*V aux(174) =< 3/4*V aux(175) =< 3/5*V aux(176) =< 4/5*V aux(177) =< 4/7*V s(1372) =< aux(161) s(1311) =< aux(171) s(1289) =< aux(170) s(1290) =< aux(170) s(1291) =< aux(170) s(1292) =< aux(170) s(1293) =< aux(170) s(1294) =< aux(170) s(1295) =< aux(170) s(1291) =< aux(172) s(1289) =< aux(173) s(1291) =< aux(173) s(1292) =< aux(173) s(1294) =< aux(173) s(1295) =< aux(174) s(1294) =< aux(175) s(1293) =< aux(176) s(1294) =< aux(176) s(1295) =< aux(176) s(1292) =< aux(177) s(1296) =< aux(171)+1 s(1297) =< aux(171)+3 s(1298) =< aux(171) s(1299) =< aux(171)-1 s(1300) =< s(1290)*s(1296) s(1301) =< s(1290)*s(1297) s(1302) =< s(1292)*s(1298) s(1303) =< s(1291)*s(1299) s(1304) =< s(1289)*aux(171) s(1305) =< s(1300) s(1306) =< s(1301) s(1307) =< s(1303) s(1310) =< aux(163) s(1262) =< aux(162) s(1263) =< aux(162) s(1264) =< aux(162) s(1265) =< aux(162) s(1266) =< aux(162) s(1267) =< aux(162) s(1268) =< aux(162) s(1264) =< aux(164) s(1262) =< aux(165) s(1264) =< aux(165) s(1265) =< aux(165) s(1267) =< aux(165) s(1268) =< aux(166) s(1267) =< aux(167) s(1266) =< aux(168) s(1267) =< aux(168) s(1268) =< aux(168) s(1265) =< aux(169) s(1269) =< aux(163)+1 s(1270) =< aux(163)+3 s(1271) =< aux(163) s(1272) =< aux(163)-1 s(1273) =< s(1263)*s(1269) s(1274) =< s(1263)*s(1270) s(1275) =< s(1265)*s(1271) s(1276) =< s(1264)*s(1272) s(1277) =< s(1262)*aux(163) s(1278) =< s(1273) s(1279) =< s(1274) s(1280) =< s(1276) with precondition: [Out=0,V1>=0,V>=0] * Chain [74]: 12*s(1425)+12*s(1426)+10*s(1427)+2*s(1428)+2*s(1429)+2*s(1430)+2*s(1431)+2*s(1438)+2*s(1440)+8*s(1441)+16*s(1442)+4*s(1443)+24*s(1452)+24*s(1453)+20*s(1454)+4*s(1455)+4*s(1456)+4*s(1457)+4*s(1458)+4*s(1465)+4*s(1467)+16*s(1468)+32*s(1469)+8*s(1470)+2*s(1526)+4*s(1582)+5 Such that:aux(179) =< 2 aux(180) =< V1 aux(181) =< 2*V1 aux(182) =< V1/2 aux(183) =< 2/3*V1 aux(184) =< 3/4*V1 aux(185) =< 3/5*V1 aux(186) =< 4/5*V1 aux(187) =< 4/7*V1 aux(188) =< V aux(189) =< 2*V aux(190) =< V/2 aux(191) =< 2/3*V aux(192) =< 3/4*V aux(193) =< 3/5*V aux(194) =< 4/5*V aux(195) =< 4/7*V s(1582) =< aux(179) s(1452) =< aux(188) s(1453) =< aux(188) s(1454) =< aux(188) s(1455) =< aux(188) s(1456) =< aux(188) s(1457) =< aux(188) s(1458) =< aux(188) s(1454) =< aux(190) s(1452) =< aux(191) s(1454) =< aux(191) s(1455) =< aux(191) s(1457) =< aux(191) s(1458) =< aux(192) s(1457) =< aux(193) s(1456) =< aux(194) s(1457) =< aux(194) s(1458) =< aux(194) s(1455) =< aux(195) s(1459) =< aux(189)+1 s(1460) =< aux(189)+3 s(1461) =< aux(189) s(1462) =< aux(189)-1 s(1463) =< s(1453)*s(1459) s(1464) =< s(1453)*s(1460) s(1465) =< s(1455)*s(1461) s(1466) =< s(1454)*s(1462) s(1467) =< s(1452)*aux(189) s(1468) =< s(1463) s(1469) =< s(1464) s(1470) =< s(1466) s(1425) =< aux(180) s(1426) =< aux(180) s(1427) =< aux(180) s(1428) =< aux(180) s(1429) =< aux(180) s(1430) =< aux(180) s(1431) =< aux(180) s(1427) =< aux(182) s(1425) =< aux(183) s(1427) =< aux(183) s(1428) =< aux(183) s(1430) =< aux(183) s(1431) =< aux(184) s(1430) =< aux(185) s(1429) =< aux(186) s(1430) =< aux(186) s(1431) =< aux(186) s(1428) =< aux(187) s(1432) =< aux(181)+1 s(1433) =< aux(181)+3 s(1434) =< aux(181) s(1435) =< aux(181)-1 s(1436) =< s(1426)*s(1432) s(1437) =< s(1426)*s(1433) s(1438) =< s(1428)*s(1434) s(1439) =< s(1427)*s(1435) s(1440) =< s(1425)*aux(181) s(1441) =< s(1436) s(1442) =< s(1437) s(1443) =< s(1439) s(1526) =< aux(189) with precondition: [Out=1,V1>=1,V>=1] * Chain [73]: 6*s(1593)+6*s(1594)+5*s(1595)+1*s(1596)+1*s(1597)+1*s(1598)+1*s(1599)+1*s(1606)+1*s(1608)+4*s(1609)+8*s(1610)+2*s(1611)+2*s(1614)+16*s(1615)+5 Such that:s(1585) =< V1 aux(196) =< 2*V1 s(1587) =< V1/2 s(1588) =< 2/3*V1 s(1589) =< 3/4*V1 s(1590) =< 3/5*V1 s(1591) =< 4/5*V1 s(1592) =< 4/7*V1 aux(197) =< 2 s(1614) =< aux(196) s(1615) =< aux(197) s(1593) =< s(1585) s(1594) =< s(1585) s(1595) =< s(1585) s(1596) =< s(1585) s(1597) =< s(1585) s(1598) =< s(1585) s(1599) =< s(1585) s(1595) =< s(1587) s(1593) =< s(1588) s(1595) =< s(1588) s(1596) =< s(1588) s(1598) =< s(1588) s(1599) =< s(1589) s(1598) =< s(1590) s(1597) =< s(1591) s(1598) =< s(1591) s(1599) =< s(1591) s(1596) =< s(1592) s(1600) =< aux(196)+1 s(1601) =< aux(196)+3 s(1602) =< aux(196) s(1603) =< aux(196)-1 s(1604) =< s(1594)*s(1600) s(1605) =< s(1594)*s(1601) s(1606) =< s(1596)*s(1602) s(1607) =< s(1595)*s(1603) s(1608) =< s(1593)*aux(196) s(1609) =< s(1604) s(1610) =< s(1605) s(1611) =< s(1607) with precondition: [V=2,Out=0,V1>=0] * Chain [72]: 6*s(1628)+6*s(1629)+5*s(1630)+1*s(1631)+1*s(1632)+1*s(1633)+1*s(1634)+1*s(1641)+1*s(1643)+4*s(1644)+8*s(1645)+2*s(1646)+2*s(1648)+5 Such that:s(1647) =< 2 s(1620) =< V1 s(1621) =< 2*V1 s(1622) =< V1/2 s(1623) =< 2/3*V1 s(1624) =< 3/4*V1 s(1625) =< 3/5*V1 s(1626) =< 4/5*V1 s(1627) =< 4/7*V1 s(1648) =< s(1647) s(1628) =< s(1620) s(1629) =< s(1620) s(1630) =< s(1620) s(1631) =< s(1620) s(1632) =< s(1620) s(1633) =< s(1620) s(1634) =< s(1620) s(1630) =< s(1622) s(1628) =< s(1623) s(1630) =< s(1623) s(1631) =< s(1623) s(1633) =< s(1623) s(1634) =< s(1624) s(1633) =< s(1625) s(1632) =< s(1626) s(1633) =< s(1626) s(1634) =< s(1626) s(1631) =< s(1627) s(1635) =< s(1621)+1 s(1636) =< s(1621)+3 s(1637) =< s(1621) s(1638) =< s(1621)-1 s(1639) =< s(1629)*s(1635) s(1640) =< s(1629)*s(1636) s(1641) =< s(1631)*s(1637) s(1642) =< s(1630)*s(1638) s(1643) =< s(1628)*s(1621) s(1644) =< s(1639) s(1645) =< s(1640) s(1646) =< s(1642) with precondition: [V=2,Out=1,V1>=1] #### Cost of chains of fun7(V1,V,V2,Out): * Chain [83]: 48*s(1831)+48*s(1832)+40*s(1833)+8*s(1834)+8*s(1835)+8*s(1836)+8*s(1837)+8*s(1844)+8*s(1846)+32*s(1847)+64*s(1848)+16*s(1849)+42*s(1858)+42*s(1859)+35*s(1860)+7*s(1861)+7*s(1862)+7*s(1863)+7*s(1864)+7*s(1871)+7*s(1873)+28*s(1874)+56*s(1875)+14*s(1876)+54*s(1885)+54*s(1886)+45*s(1887)+9*s(1888)+9*s(1889)+9*s(1890)+9*s(1891)+9*s(1898)+9*s(1900)+36*s(1901)+72*s(1902)+18*s(1903)+1 Such that:aux(216) =< V1 aux(217) =< 2*V1 aux(218) =< V1/2 aux(219) =< 2/3*V1 aux(220) =< 3/4*V1 aux(221) =< 3/5*V1 aux(222) =< 4/5*V1 aux(223) =< 4/7*V1 aux(224) =< V aux(225) =< 2*V aux(226) =< V/2 aux(227) =< 2/3*V aux(228) =< 3/4*V aux(229) =< 3/5*V aux(230) =< 4/5*V aux(231) =< 4/7*V aux(232) =< V2 aux(233) =< 2*V2 aux(234) =< V2/2 aux(235) =< 2/3*V2 aux(236) =< 3/4*V2 aux(237) =< 3/5*V2 aux(238) =< 4/5*V2 aux(239) =< 4/7*V2 s(1885) =< aux(232) s(1886) =< aux(232) s(1887) =< aux(232) s(1888) =< aux(232) s(1889) =< aux(232) s(1890) =< aux(232) s(1891) =< aux(232) s(1887) =< aux(234) s(1885) =< aux(235) s(1887) =< aux(235) s(1888) =< aux(235) s(1890) =< aux(235) s(1891) =< aux(236) s(1890) =< aux(237) s(1889) =< aux(238) s(1890) =< aux(238) s(1891) =< aux(238) s(1888) =< aux(239) s(1892) =< aux(233)+1 s(1893) =< aux(233)+3 s(1894) =< aux(233) s(1895) =< aux(233)-1 s(1896) =< s(1886)*s(1892) s(1897) =< s(1886)*s(1893) s(1898) =< s(1888)*s(1894) s(1899) =< s(1887)*s(1895) s(1900) =< s(1885)*aux(233) s(1901) =< s(1896) s(1902) =< s(1897) s(1903) =< s(1899) s(1858) =< aux(224) s(1859) =< aux(224) s(1860) =< aux(224) s(1861) =< aux(224) s(1862) =< aux(224) s(1863) =< aux(224) s(1864) =< aux(224) s(1860) =< aux(226) s(1858) =< aux(227) s(1860) =< aux(227) s(1861) =< aux(227) s(1863) =< aux(227) s(1864) =< aux(228) s(1863) =< aux(229) s(1862) =< aux(230) s(1863) =< aux(230) s(1864) =< aux(230) s(1861) =< aux(231) s(1865) =< aux(225)+1 s(1866) =< aux(225)+3 s(1867) =< aux(225) s(1868) =< aux(225)-1 s(1869) =< s(1859)*s(1865) s(1870) =< s(1859)*s(1866) s(1871) =< s(1861)*s(1867) s(1872) =< s(1860)*s(1868) s(1873) =< s(1858)*aux(225) s(1874) =< s(1869) s(1875) =< s(1870) s(1876) =< s(1872) s(1831) =< aux(216) s(1832) =< aux(216) s(1833) =< aux(216) s(1834) =< aux(216) s(1835) =< aux(216) s(1836) =< aux(216) s(1837) =< aux(216) s(1833) =< aux(218) s(1831) =< aux(219) s(1833) =< aux(219) s(1834) =< aux(219) s(1836) =< aux(219) s(1837) =< aux(220) s(1836) =< aux(221) s(1835) =< aux(222) s(1836) =< aux(222) s(1837) =< aux(222) s(1834) =< aux(223) s(1838) =< aux(217)+1 s(1839) =< aux(217)+3 s(1840) =< aux(217) s(1841) =< aux(217)-1 s(1842) =< s(1832)*s(1838) s(1843) =< s(1832)*s(1839) s(1844) =< s(1834)*s(1840) s(1845) =< s(1833)*s(1841) s(1846) =< s(1831)*aux(217) s(1847) =< s(1842) s(1848) =< s(1843) s(1849) =< s(1845) with precondition: [Out=0,V1>=0,V>=0,V2>=0] * Chain [82]: 12*s(2479)+12*s(2480)+10*s(2481)+2*s(2482)+2*s(2483)+2*s(2484)+2*s(2485)+2*s(2492)+2*s(2494)+8*s(2495)+16*s(2496)+4*s(2497)+24*s(2506)+24*s(2507)+20*s(2508)+4*s(2509)+4*s(2510)+4*s(2511)+4*s(2512)+4*s(2519)+4*s(2521)+16*s(2522)+32*s(2523)+8*s(2524)+18*s(2533)+18*s(2534)+15*s(2535)+3*s(2536)+3*s(2537)+3*s(2538)+3*s(2539)+3*s(2546)+3*s(2548)+12*s(2549)+24*s(2550)+6*s(2551)+1 Such that:aux(240) =< V1 aux(241) =< 2*V1 aux(242) =< V1/2 aux(243) =< 2/3*V1 aux(244) =< 3/4*V1 aux(245) =< 3/5*V1 aux(246) =< 4/5*V1 aux(247) =< 4/7*V1 aux(248) =< V aux(249) =< 2*V aux(250) =< V/2 aux(251) =< 2/3*V aux(252) =< 3/4*V aux(253) =< 3/5*V aux(254) =< 4/5*V aux(255) =< 4/7*V aux(256) =< V2 aux(257) =< 2*V2 aux(258) =< V2/2 aux(259) =< 2/3*V2 aux(260) =< 3/4*V2 aux(261) =< 3/5*V2 aux(262) =< 4/5*V2 aux(263) =< 4/7*V2 s(2533) =< aux(256) s(2534) =< aux(256) s(2535) =< aux(256) s(2536) =< aux(256) s(2537) =< aux(256) s(2538) =< aux(256) s(2539) =< aux(256) s(2535) =< aux(258) s(2533) =< aux(259) s(2535) =< aux(259) s(2536) =< aux(259) s(2538) =< aux(259) s(2539) =< aux(260) s(2538) =< aux(261) s(2537) =< aux(262) s(2538) =< aux(262) s(2539) =< aux(262) s(2536) =< aux(263) s(2540) =< aux(257)+1 s(2541) =< aux(257)+3 s(2542) =< aux(257) s(2543) =< aux(257)-1 s(2544) =< s(2534)*s(2540) s(2545) =< s(2534)*s(2541) s(2546) =< s(2536)*s(2542) s(2547) =< s(2535)*s(2543) s(2548) =< s(2533)*aux(257) s(2549) =< s(2544) s(2550) =< s(2545) s(2551) =< s(2547) s(2506) =< aux(248) s(2507) =< aux(248) s(2508) =< aux(248) s(2509) =< aux(248) s(2510) =< aux(248) s(2511) =< aux(248) s(2512) =< aux(248) s(2508) =< aux(250) s(2506) =< aux(251) s(2508) =< aux(251) s(2509) =< aux(251) s(2511) =< aux(251) s(2512) =< aux(252) s(2511) =< aux(253) s(2510) =< aux(254) s(2511) =< aux(254) s(2512) =< aux(254) s(2509) =< aux(255) s(2513) =< aux(249)+1 s(2514) =< aux(249)+3 s(2515) =< aux(249) s(2516) =< aux(249)-1 s(2517) =< s(2507)*s(2513) s(2518) =< s(2507)*s(2514) s(2519) =< s(2509)*s(2515) s(2520) =< s(2508)*s(2516) s(2521) =< s(2506)*aux(249) s(2522) =< s(2517) s(2523) =< s(2518) s(2524) =< s(2520) s(2479) =< aux(240) s(2480) =< aux(240) s(2481) =< aux(240) s(2482) =< aux(240) s(2483) =< aux(240) s(2484) =< aux(240) s(2485) =< aux(240) s(2481) =< aux(242) s(2479) =< aux(243) s(2481) =< aux(243) s(2482) =< aux(243) s(2484) =< aux(243) s(2485) =< aux(244) s(2484) =< aux(245) s(2483) =< aux(246) s(2484) =< aux(246) s(2485) =< aux(246) s(2482) =< aux(247) s(2486) =< aux(241)+1 s(2487) =< aux(241)+3 s(2488) =< aux(241) s(2489) =< aux(241)-1 s(2490) =< s(2480)*s(2486) s(2491) =< s(2480)*s(2487) s(2492) =< s(2482)*s(2488) s(2493) =< s(2481)*s(2489) s(2494) =< s(2479)*aux(241) s(2495) =< s(2490) s(2496) =< s(2491) s(2497) =< s(2493) with precondition: [V1>=1,V>=1,V2>=0,Out>=0,2*V>=Out] * Chain [81]: 18*s(2722)+18*s(2723)+15*s(2724)+3*s(2725)+3*s(2726)+3*s(2727)+3*s(2728)+3*s(2735)+3*s(2737)+12*s(2738)+24*s(2739)+6*s(2740)+18*s(2749)+18*s(2750)+15*s(2751)+3*s(2752)+3*s(2753)+3*s(2754)+3*s(2755)+3*s(2762)+3*s(2764)+12*s(2765)+24*s(2766)+6*s(2767)+1 Such that:aux(264) =< V1 aux(265) =< 2*V1 aux(266) =< V1/2 aux(267) =< 2/3*V1 aux(268) =< 3/4*V1 aux(269) =< 3/5*V1 aux(270) =< 4/5*V1 aux(271) =< 4/7*V1 aux(272) =< V aux(273) =< 2*V aux(274) =< V/2 aux(275) =< 2/3*V aux(276) =< 3/4*V aux(277) =< 3/5*V aux(278) =< 4/5*V aux(279) =< 4/7*V s(2749) =< aux(272) s(2750) =< aux(272) s(2751) =< aux(272) s(2752) =< aux(272) s(2753) =< aux(272) s(2754) =< aux(272) s(2755) =< aux(272) s(2751) =< aux(274) s(2749) =< aux(275) s(2751) =< aux(275) s(2752) =< aux(275) s(2754) =< aux(275) s(2755) =< aux(276) s(2754) =< aux(277) s(2753) =< aux(278) s(2754) =< aux(278) s(2755) =< aux(278) s(2752) =< aux(279) s(2756) =< aux(273)+1 s(2757) =< aux(273)+3 s(2758) =< aux(273) s(2759) =< aux(273)-1 s(2760) =< s(2750)*s(2756) s(2761) =< s(2750)*s(2757) s(2762) =< s(2752)*s(2758) s(2763) =< s(2751)*s(2759) s(2764) =< s(2749)*aux(273) s(2765) =< s(2760) s(2766) =< s(2761) s(2767) =< s(2763) s(2722) =< aux(264) s(2723) =< aux(264) s(2724) =< aux(264) s(2725) =< aux(264) s(2726) =< aux(264) s(2727) =< aux(264) s(2728) =< aux(264) s(2724) =< aux(266) s(2722) =< aux(267) s(2724) =< aux(267) s(2725) =< aux(267) s(2727) =< aux(267) s(2728) =< aux(268) s(2727) =< aux(269) s(2726) =< aux(270) s(2727) =< aux(270) s(2728) =< aux(270) s(2725) =< aux(271) s(2729) =< aux(265)+1 s(2730) =< aux(265)+3 s(2731) =< aux(265) s(2732) =< aux(265)-1 s(2733) =< s(2723)*s(2729) s(2734) =< s(2723)*s(2730) s(2735) =< s(2725)*s(2731) s(2736) =< s(2724)*s(2732) s(2737) =< s(2722)*aux(265) s(2738) =< s(2733) s(2739) =< s(2734) s(2740) =< s(2736) with precondition: [V2=2,Out=0,V1>=0,V>=0] * Chain [80]: 6*s(2884)+6*s(2885)+5*s(2886)+1*s(2887)+1*s(2888)+1*s(2889)+1*s(2890)+1*s(2897)+1*s(2899)+4*s(2900)+8*s(2901)+2*s(2902)+12*s(2911)+12*s(2912)+10*s(2913)+2*s(2914)+2*s(2915)+2*s(2916)+2*s(2917)+2*s(2924)+2*s(2926)+8*s(2927)+16*s(2928)+4*s(2929)+1 Such that:s(2876) =< V1 s(2877) =< 2*V1 s(2878) =< V1/2 s(2879) =< 2/3*V1 s(2880) =< 3/4*V1 s(2881) =< 3/5*V1 s(2882) =< 4/5*V1 s(2883) =< 4/7*V1 aux(280) =< V aux(281) =< 2*V aux(282) =< V/2 aux(283) =< 2/3*V aux(284) =< 3/4*V aux(285) =< 3/5*V aux(286) =< 4/5*V aux(287) =< 4/7*V s(2911) =< aux(280) s(2912) =< aux(280) s(2913) =< aux(280) s(2914) =< aux(280) s(2915) =< aux(280) s(2916) =< aux(280) s(2917) =< aux(280) s(2913) =< aux(282) s(2911) =< aux(283) s(2913) =< aux(283) s(2914) =< aux(283) s(2916) =< aux(283) s(2917) =< aux(284) s(2916) =< aux(285) s(2915) =< aux(286) s(2916) =< aux(286) s(2917) =< aux(286) s(2914) =< aux(287) s(2918) =< aux(281)+1 s(2919) =< aux(281)+3 s(2920) =< aux(281) s(2921) =< aux(281)-1 s(2922) =< s(2912)*s(2918) s(2923) =< s(2912)*s(2919) s(2924) =< s(2914)*s(2920) s(2925) =< s(2913)*s(2921) s(2926) =< s(2911)*aux(281) s(2927) =< s(2922) s(2928) =< s(2923) s(2929) =< s(2925) s(2884) =< s(2876) s(2885) =< s(2876) s(2886) =< s(2876) s(2887) =< s(2876) s(2888) =< s(2876) s(2889) =< s(2876) s(2890) =< s(2876) s(2886) =< s(2878) s(2884) =< s(2879) s(2886) =< s(2879) s(2887) =< s(2879) s(2889) =< s(2879) s(2890) =< s(2880) s(2889) =< s(2881) s(2888) =< s(2882) s(2889) =< s(2882) s(2890) =< s(2882) s(2887) =< s(2883) s(2891) =< s(2877)+1 s(2892) =< s(2877)+3 s(2893) =< s(2877) s(2894) =< s(2877)-1 s(2895) =< s(2885)*s(2891) s(2896) =< s(2885)*s(2892) s(2897) =< s(2887)*s(2893) s(2898) =< s(2886)*s(2894) s(2899) =< s(2884)*s(2877) s(2900) =< s(2895) s(2901) =< s(2896) s(2902) =< s(2898) with precondition: [V2=2,V1>=1,V>=1,Out>=0,2*V>=Out] * Chain [79]: 24*s(2965)+24*s(2966)+20*s(2967)+4*s(2968)+4*s(2969)+4*s(2970)+4*s(2971)+4*s(2978)+4*s(2980)+16*s(2981)+32*s(2982)+8*s(2983)+12*s(2992)+12*s(2993)+10*s(2994)+2*s(2995)+2*s(2996)+2*s(2997)+2*s(2998)+2*s(3005)+2*s(3007)+8*s(3008)+16*s(3009)+4*s(3010)+1 Such that:aux(288) =< V1 aux(289) =< 2*V1 aux(290) =< V1/2 aux(291) =< 2/3*V1 aux(292) =< 3/4*V1 aux(293) =< 3/5*V1 aux(294) =< 4/5*V1 aux(295) =< 4/7*V1 aux(296) =< V2 aux(297) =< 2*V2 aux(298) =< V2/2 aux(299) =< 2/3*V2 aux(300) =< 3/4*V2 aux(301) =< 3/5*V2 aux(302) =< 4/5*V2 aux(303) =< 4/7*V2 s(2992) =< aux(296) s(2993) =< aux(296) s(2994) =< aux(296) s(2995) =< aux(296) s(2996) =< aux(296) s(2997) =< aux(296) s(2998) =< aux(296) s(2994) =< aux(298) s(2992) =< aux(299) s(2994) =< aux(299) s(2995) =< aux(299) s(2997) =< aux(299) s(2998) =< aux(300) s(2997) =< aux(301) s(2996) =< aux(302) s(2997) =< aux(302) s(2998) =< aux(302) s(2995) =< aux(303) s(2999) =< aux(297)+1 s(3000) =< aux(297)+3 s(3001) =< aux(297) s(3002) =< aux(297)-1 s(3003) =< s(2993)*s(2999) s(3004) =< s(2993)*s(3000) s(3005) =< s(2995)*s(3001) s(3006) =< s(2994)*s(3002) s(3007) =< s(2992)*aux(297) s(3008) =< s(3003) s(3009) =< s(3004) s(3010) =< s(3006) s(2965) =< aux(288) s(2966) =< aux(288) s(2967) =< aux(288) s(2968) =< aux(288) s(2969) =< aux(288) s(2970) =< aux(288) s(2971) =< aux(288) s(2967) =< aux(290) s(2965) =< aux(291) s(2967) =< aux(291) s(2968) =< aux(291) s(2970) =< aux(291) s(2971) =< aux(292) s(2970) =< aux(293) s(2969) =< aux(294) s(2970) =< aux(294) s(2971) =< aux(294) s(2968) =< aux(295) s(2972) =< aux(289)+1 s(2973) =< aux(289)+3 s(2974) =< aux(289) s(2975) =< aux(289)-1 s(2976) =< s(2966)*s(2972) s(2977) =< s(2966)*s(2973) s(2978) =< s(2968)*s(2974) s(2979) =< s(2967)*s(2975) s(2980) =< s(2965)*aux(289) s(2981) =< s(2976) s(2982) =< s(2977) s(2983) =< s(2979) with precondition: [V=2,Out=0,V1>=0,V2>=0] * Chain [78]: 24*s(3127)+24*s(3128)+20*s(3129)+4*s(3130)+4*s(3131)+4*s(3132)+4*s(3133)+4*s(3140)+4*s(3142)+16*s(3143)+32*s(3144)+8*s(3145)+6*s(3154)+6*s(3155)+5*s(3156)+1*s(3157)+1*s(3158)+1*s(3159)+1*s(3160)+1*s(3167)+1*s(3169)+4*s(3170)+8*s(3171)+2*s(3172)+1 Such that:s(3146) =< V2 s(3147) =< 2*V2 s(3148) =< V2/2 s(3149) =< 2/3*V2 s(3150) =< 3/4*V2 s(3151) =< 3/5*V2 s(3152) =< 4/5*V2 s(3153) =< 4/7*V2 aux(304) =< V1 aux(305) =< 2*V1 aux(306) =< V1/2 aux(307) =< 2/3*V1 aux(308) =< 3/4*V1 aux(309) =< 3/5*V1 aux(310) =< 4/5*V1 aux(311) =< 4/7*V1 s(3154) =< s(3146) s(3155) =< s(3146) s(3156) =< s(3146) s(3157) =< s(3146) s(3158) =< s(3146) s(3159) =< s(3146) s(3160) =< s(3146) s(3156) =< s(3148) s(3154) =< s(3149) s(3156) =< s(3149) s(3157) =< s(3149) s(3159) =< s(3149) s(3160) =< s(3150) s(3159) =< s(3151) s(3158) =< s(3152) s(3159) =< s(3152) s(3160) =< s(3152) s(3157) =< s(3153) s(3161) =< s(3147)+1 s(3162) =< s(3147)+3 s(3163) =< s(3147) s(3164) =< s(3147)-1 s(3165) =< s(3155)*s(3161) s(3166) =< s(3155)*s(3162) s(3167) =< s(3157)*s(3163) s(3168) =< s(3156)*s(3164) s(3169) =< s(3154)*s(3147) s(3170) =< s(3165) s(3171) =< s(3166) s(3172) =< s(3168) s(3127) =< aux(304) s(3128) =< aux(304) s(3129) =< aux(304) s(3130) =< aux(304) s(3131) =< aux(304) s(3132) =< aux(304) s(3133) =< aux(304) s(3129) =< aux(306) s(3127) =< aux(307) s(3129) =< aux(307) s(3130) =< aux(307) s(3132) =< aux(307) s(3133) =< aux(308) s(3132) =< aux(309) s(3131) =< aux(310) s(3132) =< aux(310) s(3133) =< aux(310) s(3130) =< aux(311) s(3134) =< aux(305)+1 s(3135) =< aux(305)+3 s(3136) =< aux(305) s(3137) =< aux(305)-1 s(3138) =< s(3128)*s(3134) s(3139) =< s(3128)*s(3135) s(3140) =< s(3130)*s(3136) s(3141) =< s(3129)*s(3137) s(3142) =< s(3127)*aux(305) s(3143) =< s(3138) s(3144) =< s(3139) s(3145) =< s(3141) with precondition: [V=2,Out=2,V1>=1,V2>=0] * Chain [77]: 18*s(3262)+18*s(3263)+15*s(3264)+3*s(3265)+3*s(3266)+3*s(3267)+3*s(3268)+3*s(3275)+3*s(3277)+12*s(3278)+24*s(3279)+6*s(3280)+6*s(3289)+6*s(3290)+5*s(3291)+1*s(3292)+1*s(3293)+1*s(3294)+1*s(3295)+1*s(3302)+1*s(3304)+4*s(3305)+8*s(3306)+2*s(3307)+18*s(3316)+18*s(3317)+15*s(3318)+3*s(3319)+3*s(3320)+3*s(3321)+3*s(3322)+3*s(3329)+3*s(3331)+12*s(3332)+24*s(3333)+6*s(3334)+1 Such that:s(3281) =< V s(3282) =< 2*V s(3283) =< V/2 s(3284) =< 2/3*V s(3285) =< 3/4*V s(3286) =< 3/5*V s(3287) =< 4/5*V s(3288) =< 4/7*V aux(312) =< V1 aux(313) =< 2*V1 aux(314) =< V1/2 aux(315) =< 2/3*V1 aux(316) =< 3/4*V1 aux(317) =< 3/5*V1 aux(318) =< 4/5*V1 aux(319) =< 4/7*V1 aux(320) =< V2 aux(321) =< 2*V2 aux(322) =< V2/2 aux(323) =< 2/3*V2 aux(324) =< 3/4*V2 aux(325) =< 3/5*V2 aux(326) =< 4/5*V2 aux(327) =< 4/7*V2 s(3316) =< aux(320) s(3317) =< aux(320) s(3318) =< aux(320) s(3319) =< aux(320) s(3320) =< aux(320) s(3321) =< aux(320) s(3322) =< aux(320) s(3318) =< aux(322) s(3316) =< aux(323) s(3318) =< aux(323) s(3319) =< aux(323) s(3321) =< aux(323) s(3322) =< aux(324) s(3321) =< aux(325) s(3320) =< aux(326) s(3321) =< aux(326) s(3322) =< aux(326) s(3319) =< aux(327) s(3323) =< aux(321)+1 s(3324) =< aux(321)+3 s(3325) =< aux(321) s(3326) =< aux(321)-1 s(3327) =< s(3317)*s(3323) s(3328) =< s(3317)*s(3324) s(3329) =< s(3319)*s(3325) s(3330) =< s(3318)*s(3326) s(3331) =< s(3316)*aux(321) s(3332) =< s(3327) s(3333) =< s(3328) s(3334) =< s(3330) s(3289) =< s(3281) s(3290) =< s(3281) s(3291) =< s(3281) s(3292) =< s(3281) s(3293) =< s(3281) s(3294) =< s(3281) s(3295) =< s(3281) s(3291) =< s(3283) s(3289) =< s(3284) s(3291) =< s(3284) s(3292) =< s(3284) s(3294) =< s(3284) s(3295) =< s(3285) s(3294) =< s(3286) s(3293) =< s(3287) s(3294) =< s(3287) s(3295) =< s(3287) s(3292) =< s(3288) s(3296) =< s(3282)+1 s(3297) =< s(3282)+3 s(3298) =< s(3282) s(3299) =< s(3282)-1 s(3300) =< s(3290)*s(3296) s(3301) =< s(3290)*s(3297) s(3302) =< s(3292)*s(3298) s(3303) =< s(3291)*s(3299) s(3304) =< s(3289)*s(3282) s(3305) =< s(3300) s(3306) =< s(3301) s(3307) =< s(3303) s(3262) =< aux(312) s(3263) =< aux(312) s(3264) =< aux(312) s(3265) =< aux(312) s(3266) =< aux(312) s(3267) =< aux(312) s(3268) =< aux(312) s(3264) =< aux(314) s(3262) =< aux(315) s(3264) =< aux(315) s(3265) =< aux(315) s(3267) =< aux(315) s(3268) =< aux(316) s(3267) =< aux(317) s(3266) =< aux(318) s(3267) =< aux(318) s(3268) =< aux(318) s(3265) =< aux(319) s(3269) =< aux(313)+1 s(3270) =< aux(313)+3 s(3271) =< aux(313) s(3272) =< aux(313)-1 s(3273) =< s(3263)*s(3269) s(3274) =< s(3263)*s(3270) s(3275) =< s(3265)*s(3271) s(3276) =< s(3264)*s(3272) s(3277) =< s(3262)*aux(313) s(3278) =< s(3273) s(3279) =< s(3274) s(3280) =< s(3276) with precondition: [V1>=1,V>=0,V2>=1,Out>=0,2*V2>=Out] * Chain [76]: 12*s(3451)+12*s(3452)+10*s(3453)+2*s(3454)+2*s(3455)+2*s(3456)+2*s(3457)+2*s(3464)+2*s(3466)+8*s(3467)+16*s(3468)+4*s(3469)+6*s(3478)+6*s(3479)+5*s(3480)+1*s(3481)+1*s(3482)+1*s(3483)+1*s(3484)+1*s(3491)+1*s(3493)+4*s(3494)+8*s(3495)+2*s(3496)+1 Such that:s(3470) =< V s(3471) =< 2*V s(3472) =< V/2 s(3473) =< 2/3*V s(3474) =< 3/4*V s(3475) =< 3/5*V s(3476) =< 4/5*V s(3477) =< 4/7*V aux(328) =< V1 aux(329) =< 2*V1 aux(330) =< V1/2 aux(331) =< 2/3*V1 aux(332) =< 3/4*V1 aux(333) =< 3/5*V1 aux(334) =< 4/5*V1 aux(335) =< 4/7*V1 s(3478) =< s(3470) s(3479) =< s(3470) s(3480) =< s(3470) s(3481) =< s(3470) s(3482) =< s(3470) s(3483) =< s(3470) s(3484) =< s(3470) s(3480) =< s(3472) s(3478) =< s(3473) s(3480) =< s(3473) s(3481) =< s(3473) s(3483) =< s(3473) s(3484) =< s(3474) s(3483) =< s(3475) s(3482) =< s(3476) s(3483) =< s(3476) s(3484) =< s(3476) s(3481) =< s(3477) s(3485) =< s(3471)+1 s(3486) =< s(3471)+3 s(3487) =< s(3471) s(3488) =< s(3471)-1 s(3489) =< s(3479)*s(3485) s(3490) =< s(3479)*s(3486) s(3491) =< s(3481)*s(3487) s(3492) =< s(3480)*s(3488) s(3493) =< s(3478)*s(3471) s(3494) =< s(3489) s(3495) =< s(3490) s(3496) =< s(3492) s(3451) =< aux(328) s(3452) =< aux(328) s(3453) =< aux(328) s(3454) =< aux(328) s(3455) =< aux(328) s(3456) =< aux(328) s(3457) =< aux(328) s(3453) =< aux(330) s(3451) =< aux(331) s(3453) =< aux(331) s(3454) =< aux(331) s(3456) =< aux(331) s(3457) =< aux(332) s(3456) =< aux(333) s(3455) =< aux(334) s(3456) =< aux(334) s(3457) =< aux(334) s(3454) =< aux(335) s(3458) =< aux(329)+1 s(3459) =< aux(329)+3 s(3460) =< aux(329) s(3461) =< aux(329)-1 s(3462) =< s(3452)*s(3458) s(3463) =< s(3452)*s(3459) s(3464) =< s(3454)*s(3460) s(3465) =< s(3453)*s(3461) s(3466) =< s(3451)*aux(329) s(3467) =< s(3462) s(3468) =< s(3463) s(3469) =< s(3465) with precondition: [V2=2,Out=2,V1>=1,V>=0] #### Cost of chains of start(V1,V,V2): * Chain [84]: 253*s(3929)+297*s(3931)+294*s(3947)+245*s(3949)+49*s(3950)+49*s(3951)+49*s(3952)+49*s(3953)+49*s(3960)+49*s(3962)+196*s(3963)+392*s(3964)+98*s(3965)+46*s(3983)+34*s(3984)+240*s(3985)+200*s(3987)+40*s(3988)+40*s(3989)+40*s(3990)+40*s(3991)+40*s(3998)+40*s(4000)+160*s(4001)+320*s(4002)+80*s(4003)+1*s(4107)+6*s(4259)+108*s(4360)+108*s(4361)+90*s(4362)+18*s(4363)+18*s(4364)+18*s(4365)+18*s(4366)+18*s(4373)+18*s(4375)+72*s(4376)+144*s(4377)+36*s(4378)+5 Such that:s(4107) =< 1 aux(384) =< 2 aux(385) =< V1 aux(386) =< 2*V1 aux(387) =< V1/2 aux(388) =< 2/3*V1 aux(389) =< 3/4*V1 aux(390) =< 3/5*V1 aux(391) =< 4/5*V1 aux(392) =< 4/7*V1 aux(393) =< V aux(394) =< 2*V aux(395) =< V/2 aux(396) =< 2/3*V aux(397) =< 3/4*V aux(398) =< 3/5*V aux(399) =< 4/5*V aux(400) =< 4/7*V aux(401) =< V2 aux(402) =< 2*V2 aux(403) =< V2/2 aux(404) =< 2/3*V2 aux(405) =< 3/4*V2 aux(406) =< 3/5*V2 aux(407) =< 4/5*V2 aux(408) =< 4/7*V2 s(3983) =< aux(384) s(3931) =< aux(385) s(3929) =< aux(393) s(3947) =< aux(385) s(3949) =< aux(385) s(3950) =< aux(385) s(3951) =< aux(385) s(3952) =< aux(385) s(3953) =< aux(385) s(3949) =< aux(387) s(3947) =< aux(388) s(3949) =< aux(388) s(3950) =< aux(388) s(3952) =< aux(388) s(3953) =< aux(389) s(3952) =< aux(390) s(3951) =< aux(391) s(3952) =< aux(391) s(3953) =< aux(391) s(3950) =< aux(392) s(3954) =< aux(386)+1 s(3955) =< aux(386)+3 s(3956) =< aux(386) s(3957) =< aux(386)-1 s(3958) =< s(3931)*s(3954) s(3959) =< s(3931)*s(3955) s(3960) =< s(3950)*s(3956) s(3961) =< s(3949)*s(3957) s(3962) =< s(3947)*aux(386) s(3963) =< s(3958) s(3964) =< s(3959) s(3965) =< s(3961) s(3985) =< aux(393) s(3987) =< aux(393) s(3988) =< aux(393) s(3989) =< aux(393) s(3990) =< aux(393) s(3991) =< aux(393) s(3987) =< aux(395) s(3985) =< aux(396) s(3987) =< aux(396) s(3988) =< aux(396) s(3990) =< aux(396) s(3991) =< aux(397) s(3990) =< aux(398) s(3989) =< aux(399) s(3990) =< aux(399) s(3991) =< aux(399) s(3988) =< aux(400) s(3992) =< aux(394)+1 s(3993) =< aux(394)+3 s(3994) =< aux(394) s(3995) =< aux(394)-1 s(3996) =< s(3929)*s(3992) s(3997) =< s(3929)*s(3993) s(3998) =< s(3988)*s(3994) s(3999) =< s(3987)*s(3995) s(4000) =< s(3985)*aux(394) s(4001) =< s(3996) s(4002) =< s(3997) s(4003) =< s(3999) s(3984) =< aux(394) s(4259) =< aux(386) s(4360) =< aux(401) s(4361) =< aux(401) s(4362) =< aux(401) s(4363) =< aux(401) s(4364) =< aux(401) s(4365) =< aux(401) s(4366) =< aux(401) s(4362) =< aux(403) s(4360) =< aux(404) s(4362) =< aux(404) s(4363) =< aux(404) s(4365) =< aux(404) s(4366) =< aux(405) s(4365) =< aux(406) s(4364) =< aux(407) s(4365) =< aux(407) s(4366) =< aux(407) s(4363) =< aux(408) s(4367) =< aux(402)+1 s(4368) =< aux(402)+3 s(4369) =< aux(402) s(4370) =< aux(402)-1 s(4371) =< s(4361)*s(4367) s(4372) =< s(4361)*s(4368) s(4373) =< s(4363)*s(4369) s(4374) =< s(4362)*s(4370) s(4375) =< s(4360)*aux(402) s(4376) =< s(4371) s(4377) =< s(4372) s(4378) =< s(4374) with precondition: [] Closed-form bounds of start(V1,V,V2): ------------------------------------- * Chain [84] with precondition: [] - Upper bound: nat(V1)*2404+98+nat(V1)*98*nat(nat(2*V1)+ -1)+nat(V1)*686*nat(2*V1)+nat(V)*1973+nat(V)*80*nat(nat(2*V)+ -1)+nat(V)*560*nat(2*V)+nat(V2)*882+nat(V2)*36*nat(nat(2*V2)+ -1)+nat(V2)*252*nat(2*V2)+nat(2*V1)*6+nat(2*V)*34 - Complexity: n^2 ### Maximum cost of start(V1,V,V2): nat(V1)*2404+98+nat(V1)*98*nat(nat(2*V1)+ -1)+nat(V1)*686*nat(2*V1)+nat(V)*1973+nat(V)*80*nat(nat(2*V)+ -1)+nat(V)*560*nat(2*V)+nat(V2)*882+nat(V2)*36*nat(nat(2*V2)+ -1)+nat(V2)*252*nat(2*V2)+nat(2*V1)*6+nat(2*V)*34 Asymptotic class: n^2 * Total analysis performed in 9725 ms. ---------------------------------------- (14) BOUNDS(1, n^2) ---------------------------------------- (15) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (16) 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: minus(0, Y) -> 0 minus(s(X), s(Y)) -> minus(X, Y) geq(X, 0) -> true geq(0, s(Y)) -> false geq(s(X), s(Y)) -> geq(X, Y) div(0, s(Y)) -> 0 div(s(X), s(Y)) -> if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0) if(true, X, Y) -> X if(false, X, Y) -> Y The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(s(x_1)) -> s(encArg(x_1)) encArg(true) -> true encArg(false) -> false encArg(cons_minus(x_1, x_2)) -> minus(encArg(x_1), encArg(x_2)) encArg(cons_geq(x_1, x_2)) -> geq(encArg(x_1), encArg(x_2)) encArg(cons_div(x_1, x_2)) -> div(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_minus(x_1, x_2) -> minus(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) encode_geq(x_1, x_2) -> geq(encArg(x_1), encArg(x_2)) encode_true -> true encode_false -> false encode_div(x_1, x_2) -> div(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 ---------------------------------------- (17) DecreasingLoopProof (LOWER BOUND(ID)) The following loop(s) give(s) rise to the lower bound Omega(n^1): The rewrite sequence minus(s(X), s(Y)) ->^+ minus(X, Y) gives rise to a decreasing loop by considering the right hand sides subterm at position []. The pumping substitution is [X / s(X), Y / s(Y)]. The result substitution is [ ]. ---------------------------------------- (18) Complex Obligation (BEST) ---------------------------------------- (19) 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: minus(0, Y) -> 0 minus(s(X), s(Y)) -> minus(X, Y) geq(X, 0) -> true geq(0, s(Y)) -> false geq(s(X), s(Y)) -> geq(X, Y) div(0, s(Y)) -> 0 div(s(X), s(Y)) -> if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0) if(true, X, Y) -> X if(false, X, Y) -> Y The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(s(x_1)) -> s(encArg(x_1)) encArg(true) -> true encArg(false) -> false encArg(cons_minus(x_1, x_2)) -> minus(encArg(x_1), encArg(x_2)) encArg(cons_geq(x_1, x_2)) -> geq(encArg(x_1), encArg(x_2)) encArg(cons_div(x_1, x_2)) -> div(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_minus(x_1, x_2) -> minus(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) encode_geq(x_1, x_2) -> geq(encArg(x_1), encArg(x_2)) encode_true -> true encode_false -> false encode_div(x_1, x_2) -> div(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 ---------------------------------------- (20) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (21) BOUNDS(n^1, INF) ---------------------------------------- (22) 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: minus(0, Y) -> 0 minus(s(X), s(Y)) -> minus(X, Y) geq(X, 0) -> true geq(0, s(Y)) -> false geq(s(X), s(Y)) -> geq(X, Y) div(0, s(Y)) -> 0 div(s(X), s(Y)) -> if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0) if(true, X, Y) -> X if(false, X, Y) -> Y The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(s(x_1)) -> s(encArg(x_1)) encArg(true) -> true encArg(false) -> false encArg(cons_minus(x_1, x_2)) -> minus(encArg(x_1), encArg(x_2)) encArg(cons_geq(x_1, x_2)) -> geq(encArg(x_1), encArg(x_2)) encArg(cons_div(x_1, x_2)) -> div(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_minus(x_1, x_2) -> minus(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) encode_geq(x_1, x_2) -> geq(encArg(x_1), encArg(x_2)) encode_true -> true encode_false -> false encode_div(x_1, x_2) -> div(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