WORST_CASE(Omega(n^1),O(n^3)) proof of input_xGGTWvsH02.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^3). (0) CpxTRS (1) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (2) CdtProblem (3) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CdtProblem (5) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CdtProblem (7) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CdtProblem (9) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxRelTRS (11) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (12) CpxWeightedTrs (13) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (14) CpxTypedWeightedTrs (15) CompletionProof [UPPER BOUND(ID), 0 ms] (16) CpxTypedWeightedCompleteTrs (17) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (18) CpxRNTS (19) CompleteCoflocoProof [FINISHED, 6414 ms] (20) BOUNDS(1, n^3) (21) CpxTrsToCdtProof [BOTH BOUNDS(ID, ID), 0 ms] (22) CdtProblem (23) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (24) CpxRelTRS (25) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (26) CpxRelTRS (27) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (28) typed CpxTrs (29) OrderProof [LOWER BOUND(ID), 3 ms] (30) typed CpxTrs (31) RewriteLemmaProof [LOWER BOUND(ID), 335 ms] (32) typed CpxTrs (33) RewriteLemmaProof [LOWER BOUND(ID), 153 ms] (34) BEST (35) proven lower bound (36) LowerBoundPropagationProof [FINISHED, 0 ms] (37) BOUNDS(n^1, INF) (38) typed CpxTrs (39) RewriteLemmaProof [LOWER BOUND(ID), 85 ms] (40) typed CpxTrs (41) RewriteLemmaProof [LOWER BOUND(ID), 35 ms] (42) typed CpxTrs ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^3). The TRS R consists of the following rules: minus(s(x), y) -> if(gt(s(x), y), x, y) if(true, x, y) -> s(minus(x, y)) if(false, x, y) -> 0 gcd(x, y) -> if1(ge(x, y), x, y) if1(true, x, y) -> if2(gt(y, 0), x, y) if1(false, x, y) -> if3(gt(x, 0), x, y) if2(true, x, y) -> gcd(minus(x, y), y) if2(false, x, y) -> x if3(true, x, y) -> gcd(x, minus(y, x)) if3(false, x, y) -> y gt(0, y) -> false gt(s(x), 0) -> true gt(s(x), s(y)) -> gt(x, y) ge(x, 0) -> true ge(0, s(x)) -> false ge(s(x), s(y)) -> ge(x, y) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (2) Obligation: Complexity Dependency Tuples Problem Rules: minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0 gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0, z0) -> false gt(s(z0), 0) -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0) -> true ge(0, s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Tuples: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1), GT(z1, 0)) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1), GT(z0, 0)) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0, z0) -> c10 GT(s(z0), 0) -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0) -> c13 GE(0, s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) S tuples: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1), GT(z1, 0)) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1), GT(z0, 0)) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0, z0) -> c10 GT(s(z0), 0) -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0) -> c13 GE(0, s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) K tuples:none Defined Rule Symbols: minus_2, if_3, gcd_2, if1_3, if2_3, if3_3, gt_2, ge_2 Defined Pair Symbols: MINUS_2, IF_3, GCD_2, IF1_3, IF2_3, IF3_3, GT_2, GE_2 Compound Symbols: c_2, c1_1, c2, c3_2, c4_2, c5_2, c6_2, c7, c8_2, c9, c10, c11, c12_1, c13, c14, c15_1 ---------------------------------------- (3) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 7 trailing nodes: GE(0, s(z0)) -> c14 GE(z0, 0) -> c13 GT(s(z0), 0) -> c11 IF2(false, z0, z1) -> c7 GT(0, z0) -> c10 IF(false, z0, z1) -> c2 IF3(false, z0, z1) -> c9 ---------------------------------------- (4) Obligation: Complexity Dependency Tuples Problem Rules: minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0 gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0, z0) -> false gt(s(z0), 0) -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0) -> true ge(0, s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Tuples: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1), GT(z1, 0)) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1), GT(z0, 0)) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(s(z0), s(z1)) -> c15(GE(z0, z1)) S tuples: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1), GT(z1, 0)) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1), GT(z0, 0)) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(s(z0), s(z1)) -> c15(GE(z0, z1)) K tuples:none Defined Rule Symbols: minus_2, if_3, gcd_2, if1_3, if2_3, if3_3, gt_2, ge_2 Defined Pair Symbols: MINUS_2, IF_3, GCD_2, IF1_3, IF2_3, IF3_3, GT_2, GE_2 Compound Symbols: c_2, c1_1, c3_2, c4_2, c5_2, c6_2, c8_2, c12_1, c15_1 ---------------------------------------- (5) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (6) Obligation: Complexity Dependency Tuples Problem Rules: minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0 gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0, z0) -> false gt(s(z0), 0) -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0) -> true ge(0, s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Tuples: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(s(z0), s(z1)) -> c15(GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1)) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1)) S tuples: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(s(z0), s(z1)) -> c15(GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1)) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1)) K tuples:none Defined Rule Symbols: minus_2, if_3, gcd_2, if1_3, if2_3, if3_3, gt_2, ge_2 Defined Pair Symbols: MINUS_2, IF_3, GCD_2, IF2_3, IF3_3, GT_2, GE_2, IF1_3 Compound Symbols: c_2, c1_1, c3_2, c6_2, c8_2, c12_1, c15_1, c4_1, c5_1 ---------------------------------------- (7) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 ---------------------------------------- (8) Obligation: Complexity Dependency Tuples Problem Rules: gt(s(z0), 0) -> true gt(s(z0), s(z1)) -> gt(z0, z1) gt(0, z0) -> false ge(z0, 0) -> true ge(0, s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0 Tuples: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(s(z0), s(z1)) -> c15(GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1)) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1)) S tuples: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(s(z0), s(z1)) -> c15(GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1)) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1)) K tuples:none Defined Rule Symbols: gt_2, ge_2, minus_2, if_3 Defined Pair Symbols: MINUS_2, IF_3, GCD_2, IF2_3, IF3_3, GT_2, GE_2, IF1_3 Compound Symbols: c_2, c1_1, c3_2, c6_2, c8_2, c12_1, c15_1, c4_1, c5_1 ---------------------------------------- (9) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (10) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, n^3). The TRS R consists of the following rules: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(s(z0), s(z1)) -> c15(GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1)) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1)) The (relative) TRS S consists of the following rules: gt(s(z0), 0) -> true gt(s(z0), s(z1)) -> gt(z0, z1) gt(0, z0) -> false ge(z0, 0) -> true ge(0, s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0 Rewrite Strategy: INNERMOST ---------------------------------------- (11) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (12) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^3). The TRS R consists of the following rules: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) [1] IF(true, z0, z1) -> c1(MINUS(z0, z1)) [1] GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) [1] IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) [1] IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) [1] GT(s(z0), s(z1)) -> c12(GT(z0, z1)) [1] GE(s(z0), s(z1)) -> c15(GE(z0, z1)) [1] IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1)) [1] IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1)) [1] gt(s(z0), 0) -> true [0] gt(s(z0), s(z1)) -> gt(z0, z1) [0] gt(0, z0) -> false [0] ge(z0, 0) -> true [0] ge(0, s(z0)) -> false [0] ge(s(z0), s(z1)) -> ge(z0, z1) [0] minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) [0] if(true, z0, z1) -> s(minus(z0, z1)) [0] if(false, z0, z1) -> 0 [0] Rewrite Strategy: INNERMOST ---------------------------------------- (13) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (14) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) [1] IF(true, z0, z1) -> c1(MINUS(z0, z1)) [1] GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) [1] IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) [1] IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) [1] GT(s(z0), s(z1)) -> c12(GT(z0, z1)) [1] GE(s(z0), s(z1)) -> c15(GE(z0, z1)) [1] IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1)) [1] IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1)) [1] gt(s(z0), 0) -> true [0] gt(s(z0), s(z1)) -> gt(z0, z1) [0] gt(0, z0) -> false [0] ge(z0, 0) -> true [0] ge(0, s(z0)) -> false [0] ge(s(z0), s(z1)) -> ge(z0, z1) [0] minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) [0] if(true, z0, z1) -> s(minus(z0, z1)) [0] if(false, z0, z1) -> 0 [0] The TRS has the following type information: MINUS :: s:0 -> s:0 -> c s :: s:0 -> s:0 c :: c1 -> c12 -> c IF :: true:false -> s:0 -> s:0 -> c1 gt :: s:0 -> s:0 -> true:false GT :: s:0 -> s:0 -> c12 true :: true:false c1 :: c -> c1 GCD :: s:0 -> s:0 -> c3 c3 :: c4:c5 -> c15 -> c3 IF1 :: true:false -> s:0 -> s:0 -> c4:c5 ge :: s:0 -> s:0 -> true:false GE :: s:0 -> s:0 -> c15 IF2 :: true:false -> s:0 -> s:0 -> c6 c6 :: c3 -> c -> c6 minus :: s:0 -> s:0 -> s:0 IF3 :: true:false -> s:0 -> s:0 -> c8 c8 :: c3 -> c -> c8 c12 :: c12 -> c12 c15 :: c15 -> c15 c4 :: c6 -> c4:c5 0 :: s:0 false :: true:false c5 :: c8 -> c4:c5 if :: true:false -> s:0 -> s:0 -> s:0 Rewrite Strategy: INNERMOST ---------------------------------------- (15) 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: gt(v0, v1) -> null_gt [0] ge(v0, v1) -> null_ge [0] minus(v0, v1) -> null_minus [0] if(v0, v1, v2) -> null_if [0] MINUS(v0, v1) -> null_MINUS [0] IF(v0, v1, v2) -> null_IF [0] IF2(v0, v1, v2) -> null_IF2 [0] IF3(v0, v1, v2) -> null_IF3 [0] GT(v0, v1) -> null_GT [0] GE(v0, v1) -> null_GE [0] IF1(v0, v1, v2) -> null_IF1 [0] And the following fresh constants: null_gt, null_ge, null_minus, null_if, null_MINUS, null_IF, null_IF2, null_IF3, null_GT, null_GE, null_IF1, const ---------------------------------------- (16) 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(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) [1] IF(true, z0, z1) -> c1(MINUS(z0, z1)) [1] GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) [1] IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) [1] IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) [1] GT(s(z0), s(z1)) -> c12(GT(z0, z1)) [1] GE(s(z0), s(z1)) -> c15(GE(z0, z1)) [1] IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1)) [1] IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1)) [1] gt(s(z0), 0) -> true [0] gt(s(z0), s(z1)) -> gt(z0, z1) [0] gt(0, z0) -> false [0] ge(z0, 0) -> true [0] ge(0, s(z0)) -> false [0] ge(s(z0), s(z1)) -> ge(z0, z1) [0] minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) [0] if(true, z0, z1) -> s(minus(z0, z1)) [0] if(false, z0, z1) -> 0 [0] gt(v0, v1) -> null_gt [0] ge(v0, v1) -> null_ge [0] minus(v0, v1) -> null_minus [0] if(v0, v1, v2) -> null_if [0] MINUS(v0, v1) -> null_MINUS [0] IF(v0, v1, v2) -> null_IF [0] IF2(v0, v1, v2) -> null_IF2 [0] IF3(v0, v1, v2) -> null_IF3 [0] GT(v0, v1) -> null_GT [0] GE(v0, v1) -> null_GE [0] IF1(v0, v1, v2) -> null_IF1 [0] The TRS has the following type information: MINUS :: s:0:null_minus:null_if -> s:0:null_minus:null_if -> c:null_MINUS s :: s:0:null_minus:null_if -> s:0:null_minus:null_if c :: c1:null_IF -> c12:null_GT -> c:null_MINUS IF :: true:false:null_gt:null_ge -> s:0:null_minus:null_if -> s:0:null_minus:null_if -> c1:null_IF gt :: s:0:null_minus:null_if -> s:0:null_minus:null_if -> true:false:null_gt:null_ge GT :: s:0:null_minus:null_if -> s:0:null_minus:null_if -> c12:null_GT true :: true:false:null_gt:null_ge c1 :: c:null_MINUS -> c1:null_IF GCD :: s:0:null_minus:null_if -> s:0:null_minus:null_if -> c3 c3 :: c4:c5:null_IF1 -> c15:null_GE -> c3 IF1 :: true:false:null_gt:null_ge -> s:0:null_minus:null_if -> s:0:null_minus:null_if -> c4:c5:null_IF1 ge :: s:0:null_minus:null_if -> s:0:null_minus:null_if -> true:false:null_gt:null_ge GE :: s:0:null_minus:null_if -> s:0:null_minus:null_if -> c15:null_GE IF2 :: true:false:null_gt:null_ge -> s:0:null_minus:null_if -> s:0:null_minus:null_if -> c6:null_IF2 c6 :: c3 -> c:null_MINUS -> c6:null_IF2 minus :: s:0:null_minus:null_if -> s:0:null_minus:null_if -> s:0:null_minus:null_if IF3 :: true:false:null_gt:null_ge -> s:0:null_minus:null_if -> s:0:null_minus:null_if -> c8:null_IF3 c8 :: c3 -> c:null_MINUS -> c8:null_IF3 c12 :: c12:null_GT -> c12:null_GT c15 :: c15:null_GE -> c15:null_GE c4 :: c6:null_IF2 -> c4:c5:null_IF1 0 :: s:0:null_minus:null_if false :: true:false:null_gt:null_ge c5 :: c8:null_IF3 -> c4:c5:null_IF1 if :: true:false:null_gt:null_ge -> s:0:null_minus:null_if -> s:0:null_minus:null_if -> s:0:null_minus:null_if null_gt :: true:false:null_gt:null_ge null_ge :: true:false:null_gt:null_ge null_minus :: s:0:null_minus:null_if null_if :: s:0:null_minus:null_if null_MINUS :: c:null_MINUS null_IF :: c1:null_IF null_IF2 :: c6:null_IF2 null_IF3 :: c8:null_IF3 null_GT :: c12:null_GT null_GE :: c15:null_GE null_IF1 :: c4:c5:null_IF1 const :: c3 Rewrite Strategy: INNERMOST ---------------------------------------- (17) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: true => 2 0 => 0 false => 1 null_gt => 0 null_ge => 0 null_minus => 0 null_if => 0 null_MINUS => 0 null_IF => 0 null_IF2 => 0 null_IF3 => 0 null_GT => 0 null_GE => 0 null_IF1 => 0 const => 0 ---------------------------------------- (18) Obligation: Complexity RNTS consisting of the following rules: GCD(z, z') -{ 1 }-> 1 + IF1(ge(z0, z1), z0, z1) + GE(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 GE(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 GE(z, z') -{ 1 }-> 1 + GE(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 GT(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 GT(z, z') -{ 1 }-> 1 + GT(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 IF(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 IF(z, z', z'') -{ 1 }-> 1 + MINUS(z0, z1) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z'' = z1 IF1(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 IF1(z, z', z'') -{ 1 }-> 1 + IF3(gt(z0, 0), z0, z1) :|: z1 >= 0, z = 1, z0 >= 0, z' = z0, z'' = z1 IF1(z, z', z'') -{ 1 }-> 1 + IF2(gt(z1, 0), z0, z1) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z'' = z1 IF2(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 IF2(z, z', z'') -{ 1 }-> 1 + GCD(minus(z0, z1), z1) + MINUS(z0, z1) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z'' = z1 IF3(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 IF3(z, z', z'') -{ 1 }-> 1 + GCD(z0, minus(z1, z0)) + MINUS(z1, z0) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z'' = z1 MINUS(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 MINUS(z, z') -{ 1 }-> 1 + IF(gt(1 + z0, z1), z0, z1) + GT(1 + z0, z1) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 ge(z, z') -{ 0 }-> ge(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 ge(z, z') -{ 0 }-> 2 :|: z = z0, z0 >= 0, z' = 0 ge(z, z') -{ 0 }-> 1 :|: z0 >= 0, z' = 1 + z0, z = 0 ge(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 gt(z, z') -{ 0 }-> gt(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 gt(z, z') -{ 0 }-> 2 :|: z = 1 + z0, z0 >= 0, z' = 0 gt(z, z') -{ 0 }-> 1 :|: z0 >= 0, z = 0, z' = z0 gt(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 if(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z = 1, z0 >= 0, z' = z0, z'' = z1 if(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 if(z, z', z'') -{ 0 }-> 1 + minus(z0, z1) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z'' = z1 minus(z, z') -{ 0 }-> if(gt(1 + z0, z1), z0, z1) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 minus(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (19) CompleteCoflocoProof (FINISHED) Transformed the RNTS (where only complete derivations are relevant) into cost relations for CoFloCo: eq(start(V1, V, V4),0,[fun(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V4),0,[fun1(V1, V, V4, Out)],[V1 >= 0,V >= 0,V4 >= 0]). eq(start(V1, V, V4),0,[fun3(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V4),0,[fun6(V1, V, V4, Out)],[V1 >= 0,V >= 0,V4 >= 0]). eq(start(V1, V, V4),0,[fun7(V1, V, V4, Out)],[V1 >= 0,V >= 0,V4 >= 0]). eq(start(V1, V, V4),0,[fun2(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V4),0,[fun5(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V4),0,[fun4(V1, V, V4, Out)],[V1 >= 0,V >= 0,V4 >= 0]). eq(start(V1, V, V4),0,[gt(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V4),0,[ge(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V4),0,[minus(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V4),0,[if(V1, V, V4, Out)],[V1 >= 0,V >= 0,V4 >= 0]). eq(fun(V1, V, Out),1,[gt(1 + V3, V2, Ret010),fun1(Ret010, V3, V2, Ret01),fun2(1 + V3, V2, Ret1)],[Out = 1 + Ret01 + Ret1,V2 >= 0,V1 = 1 + V3,V = V2,V3 >= 0]). eq(fun1(V1, V, V4, Out),1,[fun(V6, V5, Ret11)],[Out = 1 + Ret11,V1 = 2,V5 >= 0,V6 >= 0,V = V6,V4 = V5]). eq(fun3(V1, V, Out),1,[ge(V8, V7, Ret0101),fun4(Ret0101, V8, V7, Ret011),fun5(V8, V7, Ret12)],[Out = 1 + Ret011 + Ret12,V1 = V8,V7 >= 0,V = V7,V8 >= 0]). eq(fun6(V1, V, V4, Out),1,[minus(V9, V10, Ret0102),fun3(Ret0102, V10, Ret012),fun(V9, V10, Ret13)],[Out = 1 + Ret012 + Ret13,V1 = 2,V10 >= 0,V9 >= 0,V = V9,V4 = V10]). eq(fun7(V1, V, V4, Out),1,[minus(V11, V12, Ret0111),fun3(V12, Ret0111, Ret013),fun(V11, V12, Ret14)],[Out = 1 + Ret013 + Ret14,V1 = 2,V11 >= 0,V12 >= 0,V = V12,V4 = V11]). eq(fun2(V1, V, Out),1,[fun2(V14, V13, Ret15)],[Out = 1 + Ret15,V13 >= 0,V1 = 1 + V14,V14 >= 0,V = 1 + V13]). eq(fun5(V1, V, Out),1,[fun5(V16, V15, Ret16)],[Out = 1 + Ret16,V15 >= 0,V1 = 1 + V16,V16 >= 0,V = 1 + V15]). eq(fun4(V1, V, V4, Out),1,[gt(V17, 0, Ret10),fun6(Ret10, V18, V17, Ret17)],[Out = 1 + Ret17,V1 = 2,V17 >= 0,V18 >= 0,V = V18,V4 = V17]). eq(fun4(V1, V, V4, Out),1,[gt(V20, 0, Ret101),fun7(Ret101, V20, V19, Ret18)],[Out = 1 + Ret18,V19 >= 0,V1 = 1,V20 >= 0,V = V20,V4 = V19]). eq(gt(V1, V, Out),0,[],[Out = 2,V1 = 1 + V21,V21 >= 0,V = 0]). eq(gt(V1, V, Out),0,[gt(V22, V23, Ret)],[Out = Ret,V23 >= 0,V1 = 1 + V22,V22 >= 0,V = 1 + V23]). eq(gt(V1, V, Out),0,[],[Out = 1,V24 >= 0,V1 = 0,V = V24]). eq(ge(V1, V, Out),0,[],[Out = 2,V1 = V25,V25 >= 0,V = 0]). eq(ge(V1, V, Out),0,[],[Out = 1,V26 >= 0,V = 1 + V26,V1 = 0]). eq(ge(V1, V, Out),0,[ge(V28, V27, Ret2)],[Out = Ret2,V27 >= 0,V1 = 1 + V28,V28 >= 0,V = 1 + V27]). eq(minus(V1, V, Out),0,[gt(1 + V30, V29, Ret0),if(Ret0, V30, V29, Ret3)],[Out = Ret3,V29 >= 0,V1 = 1 + V30,V = V29,V30 >= 0]). eq(if(V1, V, V4, Out),0,[minus(V32, V31, Ret19)],[Out = 1 + Ret19,V1 = 2,V31 >= 0,V32 >= 0,V = V32,V4 = V31]). eq(if(V1, V, V4, Out),0,[],[Out = 0,V34 >= 0,V1 = 1,V33 >= 0,V = V33,V4 = V34]). eq(gt(V1, V, Out),0,[],[Out = 0,V36 >= 0,V35 >= 0,V1 = V36,V = V35]). eq(ge(V1, V, Out),0,[],[Out = 0,V38 >= 0,V37 >= 0,V1 = V38,V = V37]). eq(minus(V1, V, Out),0,[],[Out = 0,V40 >= 0,V39 >= 0,V1 = V40,V = V39]). eq(if(V1, V, V4, Out),0,[],[Out = 0,V41 >= 0,V4 = V43,V42 >= 0,V1 = V41,V = V42,V43 >= 0]). eq(fun(V1, V, Out),0,[],[Out = 0,V45 >= 0,V44 >= 0,V1 = V45,V = V44]). eq(fun1(V1, V, V4, Out),0,[],[Out = 0,V47 >= 0,V4 = V48,V46 >= 0,V1 = V47,V = V46,V48 >= 0]). eq(fun6(V1, V, V4, Out),0,[],[Out = 0,V50 >= 0,V4 = V51,V49 >= 0,V1 = V50,V = V49,V51 >= 0]). eq(fun7(V1, V, V4, Out),0,[],[Out = 0,V52 >= 0,V4 = V54,V53 >= 0,V1 = V52,V = V53,V54 >= 0]). eq(fun2(V1, V, Out),0,[],[Out = 0,V56 >= 0,V55 >= 0,V1 = V56,V = V55]). eq(fun5(V1, V, Out),0,[],[Out = 0,V57 >= 0,V58 >= 0,V1 = V57,V = V58]). eq(fun4(V1, V, V4, Out),0,[],[Out = 0,V59 >= 0,V4 = V61,V60 >= 0,V1 = V59,V = V60,V61 >= 0]). input_output_vars(fun(V1,V,Out),[V1,V],[Out]). input_output_vars(fun1(V1,V,V4,Out),[V1,V,V4],[Out]). input_output_vars(fun3(V1,V,Out),[V1,V],[Out]). input_output_vars(fun6(V1,V,V4,Out),[V1,V,V4],[Out]). input_output_vars(fun7(V1,V,V4,Out),[V1,V,V4],[Out]). input_output_vars(fun2(V1,V,Out),[V1,V],[Out]). input_output_vars(fun5(V1,V,Out),[V1,V],[Out]). input_output_vars(fun4(V1,V,V4,Out),[V1,V,V4],[Out]). input_output_vars(gt(V1,V,Out),[V1,V],[Out]). input_output_vars(ge(V1,V,Out),[V1,V],[Out]). input_output_vars(minus(V1,V,Out),[V1,V],[Out]). input_output_vars(if(V1,V,V4,Out),[V1,V,V4],[Out]). CoFloCo proof output: Preprocessing Cost Relations ===================================== #### Computed strongly connected components 0. recursive : [fun2/3] 1. recursive : [gt/3] 2. recursive [non_tail] : [fun/3,fun1/4] 3. recursive : [if/4,minus/3] 4. recursive : [fun5/3] 5. recursive : [ge/3] 6. recursive [non_tail] : [fun3/3,fun4/4,fun6/4,fun7/4] 7. non_recursive : [start/3] #### Obtained direct recursion through partial evaluation 0. SCC is partially evaluated into fun2/3 1. SCC is partially evaluated into gt/3 2. SCC is partially evaluated into fun/3 3. SCC is partially evaluated into minus/3 4. SCC is partially evaluated into fun5/3 5. SCC is partially evaluated into ge/3 6. SCC is partially evaluated into fun3/3 7. SCC is partially evaluated into start/3 Control-Flow Refinement of Cost Relations ===================================== ### Specialization of cost equations fun2/3 * CE 33 is refined into CE [40] * CE 32 is refined into CE [41] ### Cost equations --> "Loop" of fun2/3 * CEs [41] --> Loop 23 * CEs [40] --> Loop 24 ### Ranking functions of CR fun2(V1,V,Out) * RF of phase [23]: [V,V1] #### Partial ranking functions of CR fun2(V1,V,Out) * Partial RF of phase [23]: - RF of loop [23:1]: V V1 ### Specialization of cost equations gt/3 * CE 20 is refined into CE [42] * CE 17 is refined into CE [43] * CE 19 is refined into CE [44] * CE 18 is refined into CE [45] ### Cost equations --> "Loop" of gt/3 * CEs [45] --> Loop 25 * CEs [42] --> Loop 26 * CEs [43] --> Loop 27 * CEs [44] --> Loop 28 ### Ranking functions of CR gt(V1,V,Out) * RF of phase [25]: [V,V1] #### Partial ranking functions of CR gt(V1,V,Out) * Partial RF of phase [25]: - RF of loop [25:1]: V V1 ### Specialization of cost equations fun/3 * CE 29 is refined into CE [46,47,48,49,50,51,52] * CE 31 is refined into CE [53] * CE 30 is refined into CE [54,55,56] ### Cost equations --> "Loop" of fun/3 * CEs [56] --> Loop 29 * CEs [55] --> Loop 30 * CEs [54] --> Loop 31 * CEs [52] --> Loop 32 * CEs [48,50] --> Loop 33 * CEs [53] --> Loop 34 * CEs [46,47,49,51] --> Loop 35 ### Ranking functions of CR fun(V1,V,Out) * RF of phase [29,30]: [V1-1,V1-V] * RF of phase [31]: [V1] #### Partial ranking functions of CR fun(V1,V,Out) * Partial RF of phase [29,30]: - RF of loop [29:1,30:1]: V1-1 V1-V * Partial RF of phase [31]: - RF of loop [31:1]: V1 ### Specialization of cost equations minus/3 * CE 21 is refined into CE [57,58,59,60] * CE 23 is refined into CE [61] * CE 22 is refined into CE [62,63] ### Cost equations --> "Loop" of minus/3 * CEs [63] --> Loop 36 * CEs [62] --> Loop 37 * CEs [57,58,59,60,61] --> Loop 38 ### Ranking functions of CR minus(V1,V,Out) * RF of phase [36]: [V1-1,V1-V] * RF of phase [37]: [V1] #### Partial ranking functions of CR minus(V1,V,Out) * Partial RF of phase [36]: - RF of loop [36:1]: V1-1 V1-V * Partial RF of phase [37]: - RF of loop [37:1]: V1 ### Specialization of cost equations fun5/3 * CE 35 is refined into CE [64] * CE 34 is refined into CE [65] ### Cost equations --> "Loop" of fun5/3 * CEs [65] --> Loop 39 * CEs [64] --> Loop 40 ### Ranking functions of CR fun5(V1,V,Out) * RF of phase [39]: [V,V1] #### Partial ranking functions of CR fun5(V1,V,Out) * Partial RF of phase [39]: - RF of loop [39:1]: V V1 ### Specialization of cost equations ge/3 * CE 39 is refined into CE [66] * CE 36 is refined into CE [67] * CE 37 is refined into CE [68] * CE 38 is refined into CE [69] ### Cost equations --> "Loop" of ge/3 * CEs [69] --> Loop 41 * CEs [66] --> Loop 42 * CEs [67] --> Loop 43 * CEs [68] --> Loop 44 ### Ranking functions of CR ge(V1,V,Out) * RF of phase [41]: [V,V1] #### Partial ranking functions of CR ge(V1,V,Out) * Partial RF of phase [41]: - RF of loop [41:1]: V V1 ### Specialization of cost equations fun3/3 * CE 24 is refined into CE [70,71,72,73,74,75,76,77] * CE 26 is refined into CE [78,79,80,81,82,83] * CE 28 is refined into CE [84,85,86,87,88,89] * CE 27 is refined into CE [90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105] * CE 25 is refined into CE [106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121] ### Cost equations --> "Loop" of fun3/3 * CEs [101,102,103,104,105] --> Loop 45 * CEs [99,100] --> Loop 46 * CEs [98] --> Loop 47 * CEs [117,118,119,120,121] --> Loop 48 * CEs [115,116] --> Loop 49 * CEs [114] --> Loop 50 * CEs [109,110,111,112,113] --> Loop 51 * CEs [107,108] --> Loop 52 * CEs [106] --> Loop 53 * CEs [97] --> Loop 54 * CEs [93,96] --> Loop 55 * CEs [94,95] --> Loop 56 * CEs [91,92] --> Loop 57 * CEs [90] --> Loop 58 * CEs [87,89] --> Loop 59 * CEs [81,83] --> Loop 60 * CEs [77,86,88] --> Loop 61 * CEs [73,75,80,82] --> Loop 62 * CEs [84,85] --> Loop 63 * CEs [71] --> Loop 64 * CEs [78,79] --> Loop 65 * CEs [70,72,74,76] --> Loop 66 ### Ranking functions of CR fun3(V1,V,Out) * RF of phase [45,46,47,48,49,50]: [V1+V-2] #### Partial ranking functions of CR fun3(V1,V,Out) * Partial RF of phase [45,46,47,48,49,50]: - RF of loop [45:1,46:1,47:1]: V1-1 V1-V depends on loops [48:1,49:1,50:1] - RF of loop [48:1,49:1,50:1]: V-1 -V1+V depends on loops [45:1,46:1,47:1] ### Specialization of cost equations start/3 * CE 4 is refined into CE [122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,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] * CE 5 is refined into CE [174,175,176] * CE 6 is refined into CE [177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,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,236,237,238] * CE 7 is refined into CE [239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298] * CE 8 is refined into CE [299,300,301] * CE 9 is refined into CE [302,303,304,305,306] * CE 1 is refined into CE [307] * CE 2 is refined into CE [308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359] * CE 3 is refined into CE [360,361,362] * CE 10 is refined into CE [363,364,365,366,367] * CE 11 is refined into CE [368,369,370,371,372,373,374,375,376,377,378,379,380] * CE 12 is refined into CE [381,382] * CE 13 is refined into CE [383,384] * CE 14 is refined into CE [385,386,387,388,389] * CE 15 is refined into CE [390,391,392,393,394] * CE 16 is refined into CE [395,396,397] ### Cost equations --> "Loop" of start/3 * CEs [363,370,386,391,395] --> Loop 67 * CEs [174,177,178,179,180,181,182,187,192,193,194,299,302] --> Loop 68 * CEs [122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,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,175,176,183,184,185,186,188,189,190,191,195,196,197,198,199,200,201,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,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,300,301,303,304,305,306] --> Loop 69 * CEs [308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362] --> Loop 70 * CEs [307,364,365,366,367,368,369,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,387,388,389,390,392,393,394,396,397] --> Loop 71 ### Ranking functions of CR start(V1,V,V4) #### Partial ranking functions of CR start(V1,V,V4) Computing Bounds ===================================== #### Cost of chains of fun2(V1,V,Out): * Chain [[23],24]: 1*it(23)+0 Such that:it(23) =< Out with precondition: [Out>=1,V1>=Out,V>=Out] * Chain [24]: 0 with precondition: [Out=0,V1>=0,V>=0] #### Cost of chains of gt(V1,V,Out): * Chain [[25],28]: 0 with precondition: [Out=1,V1>=1,V>=V1] * Chain [[25],27]: 0 with precondition: [Out=2,V>=1,V1>=V+1] * Chain [[25],26]: 0 with precondition: [Out=0,V1>=1,V>=1] * Chain [28]: 0 with precondition: [V1=0,Out=1,V>=0] * Chain [27]: 0 with precondition: [V=0,Out=2,V1>=1] * Chain [26]: 0 with precondition: [Out=0,V1>=0,V>=0] #### Cost of chains of fun(V1,V,Out): * Chain [[31],35]: 2*it(31)+1 Such that:it(31) =< Out/2 with precondition: [V=0,Out>=3,2*V1>=Out+1] * Chain [[31],34]: 2*it(31)+0 Such that:it(31) =< Out/2 with precondition: [V=0,Out>=2,2*V1>=Out] * Chain [[29,30],35]: 4*it(29)+1*s(3)+1 Such that:aux(2) =< V1 aux(1) =< V aux(6) =< V1-V it(29) =< aux(2) it(29) =< aux(6) s(3) =< it(29)*aux(1) with precondition: [V>=1,Out>=3,V1>=V+1] * Chain [[29,30],34]: 4*it(29)+1*s(3)+0 Such that:aux(2) =< V1 aux(1) =< V aux(7) =< V1-V it(29) =< aux(2) it(29) =< aux(7) s(3) =< it(29)*aux(1) with precondition: [V>=1,Out>=2,V1>=V+1] * Chain [[29,30],33]: 4*it(29)+1*s(3)+1*s(4)+1*s(5)+1 Such that:aux(3) =< V1-V aux(8) =< V1 aux(9) =< V s(5) =< aux(8) s(4) =< aux(9) it(29) =< aux(8) it(29) =< aux(3) s(3) =< it(29)*aux(9) with precondition: [V>=1,Out>=4,V1>=V+1] * Chain [[29,30],32]: 4*it(29)+1*s(3)+1*s(6)+1 Such that:aux(2) =< V1 aux(10) =< V1-V aux(11) =< V s(6) =< aux(11) it(29) =< aux(2) it(29) =< aux(10) s(3) =< it(29)*aux(11) with precondition: [V>=1,Out>=4,V1>=V+2] * Chain [35]: 1 with precondition: [Out=1,V1>=1,V>=0] * Chain [34]: 0 with precondition: [Out=0,V1>=0,V>=0] * Chain [33]: 1*s(4)+1*s(5)+1 Such that:s(5) =< V1 s(4) =< V with precondition: [Out>=2,V1+1>=Out,V+1>=Out] * Chain [32]: 1*s(6)+1 Such that:s(6) =< V with precondition: [Out>=2,V1>=V+1,V+1>=Out] #### Cost of chains of minus(V1,V,Out): * Chain [[37],38]: 0 with precondition: [V=0,Out>=1,V1>=Out] * Chain [[36],38]: 0 with precondition: [V>=1,Out>=1,V1>=Out+V] * Chain [38]: 0 with precondition: [Out=0,V1>=0,V>=0] #### Cost of chains of fun5(V1,V,Out): * Chain [[39],40]: 1*it(39)+0 Such that:it(39) =< Out with precondition: [Out>=1,V1>=Out,V>=Out] * Chain [40]: 0 with precondition: [Out=0,V1>=0,V>=0] #### Cost of chains of ge(V1,V,Out): * Chain [[41],44]: 0 with precondition: [Out=1,V1>=1,V>=V1+1] * Chain [[41],43]: 0 with precondition: [Out=2,V>=1,V1>=V] * Chain [[41],42]: 0 with precondition: [Out=0,V1>=1,V>=1] * Chain [44]: 0 with precondition: [V1=0,Out=1,V>=1] * Chain [43]: 0 with precondition: [V=0,Out=2,V1>=0] * Chain [42]: 0 with precondition: [Out=0,V1>=0,V>=0] #### Cost of chains of fun3(V1,V,Out): * Chain [[45,46,47,48,49,50],66]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+1 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(51) =< V1 aux(52) =< V1+V aux(53) =< V it(45) =< aux(51) s(95) =< aux(51) it(45) =< aux(52) it(48) =< aux(52) it(48) =< aux(53) s(103) =< aux(53) aux(39) =< aux(53) aux(31) =< aux(51) it(48) =< aux(51)+aux(51)+aux(51)+aux(43) it(45) =< aux(53)+aux(53)+aux(53)+aux(45) s(108) =< it(48)*aux(53) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(51) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(51) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(53) with precondition: [V1>=1,V>=1,Out>=4,V+V1>=3] * Chain [[45,46,47,48,49,50],62]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+2*s(113)+2 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(54) =< V1 aux(55) =< V1+V aux(56) =< V s(113) =< aux(55) it(45) =< aux(54) s(95) =< aux(54) it(45) =< aux(55) it(48) =< aux(55) it(48) =< aux(56) s(103) =< aux(56) aux(39) =< aux(56) aux(31) =< aux(54) it(48) =< aux(54)+aux(54)+aux(54)+aux(43) it(45) =< aux(56)+aux(56)+aux(56)+aux(45) s(108) =< it(48)*aux(56) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(54) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(54) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(56) with precondition: [V1>=1,V>=1,Out>=5,V+V1>=3] * Chain [[45,46,47,48,49,50],61]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+13*s(103)+32*s(104)+8*s(105)+4*s(106)+2 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(57) =< V1 aux(58) =< V1+V aux(59) =< V s(103) =< aux(59) it(45) =< aux(57) s(95) =< aux(57) it(45) =< aux(58) it(48) =< aux(58) it(48) =< aux(59) aux(39) =< aux(59) aux(31) =< aux(57) it(48) =< aux(57)+aux(57)+aux(57)+aux(43) it(45) =< aux(59)+aux(59)+aux(59)+aux(45) s(108) =< it(48)*aux(59) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(57) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(57) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(59) with precondition: [V1>=1,V>=1,Out>=5,V+V1>=3] * Chain [[45,46,47,48,49,50],60]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+14*s(103)+32*s(104)+8*s(105)+4*s(106)+2 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(61) =< V1 aux(62) =< V1+V aux(63) =< V s(103) =< aux(63) it(45) =< aux(61) s(95) =< aux(61) it(45) =< aux(62) it(48) =< aux(62) it(48) =< aux(63) aux(39) =< aux(63) aux(31) =< aux(61) it(48) =< aux(61)+aux(61)+aux(61)+aux(43) it(45) =< aux(63)+aux(63)+aux(63)+aux(45) s(108) =< it(48)*aux(63) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(61) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(61) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(63) with precondition: [V1>=1,V>=2,Out>=6,V1+2*V>=7] * Chain [[45,46,47,48,49,50],59]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+14*s(103)+32*s(104)+8*s(105)+4*s(106)+2 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(65) =< V1 aux(66) =< V1+V aux(67) =< V s(103) =< aux(67) it(45) =< aux(65) s(95) =< aux(65) it(45) =< aux(66) it(48) =< aux(66) it(48) =< aux(67) aux(39) =< aux(67) aux(31) =< aux(65) it(48) =< aux(65)+aux(65)+aux(65)+aux(43) it(45) =< aux(67)+aux(67)+aux(67)+aux(45) s(108) =< it(48)*aux(67) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(65) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(65) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(67) with precondition: [V1>=1,V>=1,Out>=6,V+V1>=3] * Chain [[45,46,47,48,49,50],58,66]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+4 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(68) =< V1 aux(69) =< V1+V aux(70) =< V it(45) =< aux(68) s(95) =< aux(68) it(45) =< aux(69) it(48) =< aux(69) it(48) =< aux(70) s(103) =< aux(70) aux(39) =< aux(70) aux(31) =< aux(68) it(48) =< aux(68)+aux(68)+aux(68)+aux(43) it(45) =< aux(70)+aux(70)+aux(70)+aux(45) s(108) =< it(48)*aux(70) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(68) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(68) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(70) with precondition: [V1>=1,V>=1,Out>=7,V+V1>=3] * Chain [[45,46,47,48,49,50],58,65]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+5 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(71) =< V1 aux(72) =< V1+V aux(73) =< V it(45) =< aux(71) s(95) =< aux(71) it(45) =< aux(72) it(48) =< aux(72) it(48) =< aux(73) s(103) =< aux(73) aux(39) =< aux(73) aux(31) =< aux(71) it(48) =< aux(71)+aux(71)+aux(71)+aux(43) it(45) =< aux(73)+aux(73)+aux(73)+aux(45) s(108) =< it(48)*aux(73) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(71) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(71) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(73) with precondition: [V1>=1,V>=1,Out>=8,V+V1>=3] * Chain [[45,46,47,48,49,50],57,66]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+13*s(103)+32*s(104)+8*s(105)+4*s(106)+5 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(74) =< V1 aux(75) =< V1+V aux(76) =< V s(103) =< aux(76) it(45) =< aux(74) s(95) =< aux(74) it(45) =< aux(75) it(48) =< aux(75) it(48) =< aux(76) aux(39) =< aux(76) aux(31) =< aux(74) it(48) =< aux(74)+aux(74)+aux(74)+aux(43) it(45) =< aux(76)+aux(76)+aux(76)+aux(45) s(108) =< it(48)*aux(76) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(74) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(74) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(76) with precondition: [V1>=1,V>=1,Out>=8,V+V1>=3] * Chain [[45,46,47,48,49,50],57,65]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+13*s(103)+32*s(104)+8*s(105)+4*s(106)+6 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(77) =< V1 aux(78) =< V1+V aux(79) =< V s(103) =< aux(79) it(45) =< aux(77) s(95) =< aux(77) it(45) =< aux(78) it(48) =< aux(78) it(48) =< aux(79) aux(39) =< aux(79) aux(31) =< aux(77) it(48) =< aux(77)+aux(77)+aux(77)+aux(43) it(45) =< aux(79)+aux(79)+aux(79)+aux(45) s(108) =< it(48)*aux(79) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(77) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(77) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(79) with precondition: [V1>=1,V>=1,Out>=9,V+V1>=3] * Chain [[45,46,47,48,49,50],56,66]: 11*it(45)+11*it(48)+19*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+32*s(125)+8*s(126)+2*s(127)+5 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(84) =< V1 aux(85) =< V1+V aux(86) =< V s(95) =< aux(84) s(125) =< aux(85) s(125) =< aux(84) s(126) =< s(125)*aux(84) s(127) =< aux(85) it(45) =< aux(84) it(45) =< aux(85) it(48) =< aux(85) it(48) =< aux(86) s(103) =< aux(86) aux(39) =< aux(86) aux(31) =< aux(84) it(48) =< aux(84)+aux(84)+aux(84)+aux(43) it(45) =< aux(86)+aux(86)+aux(86)+aux(45) s(108) =< it(48)*aux(86) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(84) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(84) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(86) with precondition: [V1>=2,V>=1,Out>=9,V+2*V1>=7] * Chain [[45,46,47,48,49,50],56,65]: 11*it(45)+11*it(48)+19*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+32*s(125)+8*s(126)+2*s(127)+6 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(87) =< V1 aux(88) =< V1+V aux(89) =< V s(95) =< aux(87) s(125) =< aux(88) s(125) =< aux(87) s(126) =< s(125)*aux(87) s(127) =< aux(88) it(45) =< aux(87) it(45) =< aux(88) it(48) =< aux(88) it(48) =< aux(89) s(103) =< aux(89) aux(39) =< aux(89) aux(31) =< aux(87) it(48) =< aux(87)+aux(87)+aux(87)+aux(43) it(45) =< aux(89)+aux(89)+aux(89)+aux(45) s(108) =< it(48)*aux(89) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(87) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(87) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(89) with precondition: [V1>=2,V>=1,Out>=10,V+2*V1>=7] * Chain [[45,46,47,48,49,50],55,66]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+3*s(136)+5 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(91) =< V1 aux(92) =< V1+V aux(93) =< V s(136) =< aux(92) it(45) =< aux(91) s(95) =< aux(91) it(45) =< aux(92) it(48) =< aux(92) it(48) =< aux(93) s(103) =< aux(93) aux(39) =< aux(93) aux(31) =< aux(91) it(48) =< aux(91)+aux(91)+aux(91)+aux(43) it(45) =< aux(93)+aux(93)+aux(93)+aux(45) s(108) =< it(48)*aux(93) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(91) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(91) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(93) with precondition: [V1>=1,V>=1,Out>=9,V+V1>=3] * Chain [[45,46,47,48,49,50],55,65]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+3*s(136)+6 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(94) =< V1 aux(95) =< V1+V aux(96) =< V s(136) =< aux(95) it(45) =< aux(94) s(95) =< aux(94) it(45) =< aux(95) it(48) =< aux(95) it(48) =< aux(96) s(103) =< aux(96) aux(39) =< aux(96) aux(31) =< aux(94) it(48) =< aux(94)+aux(94)+aux(94)+aux(43) it(45) =< aux(96)+aux(96)+aux(96)+aux(45) s(108) =< it(48)*aux(96) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(94) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(94) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(96) with precondition: [V1>=1,V>=1,Out>=10,V+V1>=3] * Chain [[45,46,47,48,49,50],54,66]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+3*s(139)+5 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(98) =< V1 aux(99) =< V1+V aux(100) =< V s(139) =< aux(99) it(45) =< aux(98) s(95) =< aux(98) it(45) =< aux(99) it(48) =< aux(99) it(48) =< aux(100) s(103) =< aux(100) aux(39) =< aux(100) aux(31) =< aux(98) it(48) =< aux(98)+aux(98)+aux(98)+aux(43) it(45) =< aux(100)+aux(100)+aux(100)+aux(45) s(108) =< it(48)*aux(100) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(98) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(98) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(100) with precondition: [V1>=1,V>=1,Out>=10,V+V1>=3] * Chain [[45,46,47,48,49,50],54,65]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+3*s(139)+6 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(101) =< V1 aux(102) =< V1+V aux(103) =< V s(139) =< aux(102) it(45) =< aux(101) s(95) =< aux(101) it(45) =< aux(102) it(48) =< aux(102) it(48) =< aux(103) s(103) =< aux(103) aux(39) =< aux(103) aux(31) =< aux(101) it(48) =< aux(101)+aux(101)+aux(101)+aux(43) it(45) =< aux(103)+aux(103)+aux(103)+aux(45) s(108) =< it(48)*aux(103) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(101) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(101) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(103) with precondition: [V1>=1,V>=1,Out>=11,V+V1>=3] * Chain [[45,46,47,48,49,50],53,66]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+4 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(104) =< V1 aux(105) =< V1+V aux(106) =< V it(45) =< aux(104) s(95) =< aux(104) it(45) =< aux(105) it(48) =< aux(105) it(48) =< aux(106) s(103) =< aux(106) aux(39) =< aux(106) aux(31) =< aux(104) it(48) =< aux(104)+aux(104)+aux(104)+aux(43) it(45) =< aux(106)+aux(106)+aux(106)+aux(45) s(108) =< it(48)*aux(106) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(104) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(104) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(106) with precondition: [V1>=1,V>=2,Out>=7,V1+2*V>=7] * Chain [[45,46,47,48,49,50],53,64]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+4 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(107) =< V1 aux(108) =< V1+V aux(109) =< V it(45) =< aux(107) s(95) =< aux(107) it(45) =< aux(108) it(48) =< aux(108) it(48) =< aux(109) s(103) =< aux(109) aux(39) =< aux(109) aux(31) =< aux(107) it(48) =< aux(107)+aux(107)+aux(107)+aux(43) it(45) =< aux(109)+aux(109)+aux(109)+aux(45) s(108) =< it(48)*aux(109) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(107) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(107) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(109) with precondition: [V1>=1,V>=2,Out>=7,V1+2*V>=7] * Chain [[45,46,47,48,49,50],53,63]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+12*s(103)+32*s(104)+8*s(105)+4*s(106)+5 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(110) =< V1 aux(111) =< V1+V aux(112) =< V it(45) =< aux(110) s(95) =< aux(110) it(45) =< aux(111) it(48) =< aux(111) it(48) =< aux(112) s(103) =< aux(112) aux(39) =< aux(112) aux(31) =< aux(110) it(48) =< aux(110)+aux(110)+aux(110)+aux(43) it(45) =< aux(112)+aux(112)+aux(112)+aux(45) s(108) =< it(48)*aux(112) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(110) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(110) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(112) with precondition: [V1>=1,V>=2,Out>=8,V1+2*V>=7] * Chain [[45,46,47,48,49,50],52,66]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+13*s(103)+32*s(104)+8*s(105)+4*s(106)+5 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(113) =< V1 aux(114) =< V1+V aux(115) =< V s(103) =< aux(115) it(45) =< aux(113) s(95) =< aux(113) it(45) =< aux(114) it(48) =< aux(114) it(48) =< aux(115) aux(39) =< aux(115) aux(31) =< aux(113) it(48) =< aux(113)+aux(113)+aux(113)+aux(43) it(45) =< aux(115)+aux(115)+aux(115)+aux(45) s(108) =< it(48)*aux(115) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(113) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(113) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(115) with precondition: [V1>=1,V>=2,Out>=8,V1+2*V>=7] * Chain [[45,46,47,48,49,50],52,64]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+13*s(103)+32*s(104)+8*s(105)+4*s(106)+5 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(116) =< V1 aux(117) =< V1+V aux(118) =< V s(103) =< aux(118) it(45) =< aux(116) s(95) =< aux(116) it(45) =< aux(117) it(48) =< aux(117) it(48) =< aux(118) aux(39) =< aux(118) aux(31) =< aux(116) it(48) =< aux(116)+aux(116)+aux(116)+aux(43) it(45) =< aux(118)+aux(118)+aux(118)+aux(45) s(108) =< it(48)*aux(118) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(116) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(116) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(118) with precondition: [V1>=1,V>=2,Out>=8,V1+2*V>=7] * Chain [[45,46,47,48,49,50],52,63]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+13*s(103)+32*s(104)+8*s(105)+4*s(106)+6 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(119) =< V1 aux(120) =< V1+V aux(121) =< V s(103) =< aux(121) it(45) =< aux(119) s(95) =< aux(119) it(45) =< aux(120) it(48) =< aux(120) it(48) =< aux(121) aux(39) =< aux(121) aux(31) =< aux(119) it(48) =< aux(119)+aux(119)+aux(119)+aux(43) it(45) =< aux(121)+aux(121)+aux(121)+aux(45) s(108) =< it(48)*aux(121) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(119) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(119) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(121) with precondition: [V1>=1,V>=2,Out>=9,V1+2*V>=7] * Chain [[45,46,47,48,49,50],51,66]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+23*s(103)+32*s(104)+8*s(105)+4*s(106)+32*s(148)+8*s(149)+4*s(150)+5 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(128) =< V1 aux(129) =< V1+V aux(130) =< V s(103) =< aux(130) s(150) =< aux(129) s(148) =< aux(129) s(148) =< aux(130) s(149) =< s(148)*aux(130) it(45) =< aux(128) s(95) =< aux(128) it(45) =< aux(129) it(48) =< aux(129) it(48) =< aux(130) aux(39) =< aux(130) aux(31) =< aux(128) it(48) =< aux(128)+aux(128)+aux(128)+aux(43) it(45) =< aux(130)+aux(130)+aux(130)+aux(45) s(108) =< it(48)*aux(130) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(128) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(128) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(130) with precondition: [V1>=1,V>=2,Out>=9,V1+2*V>=7] * Chain [[45,46,47,48,49,50],51,64]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+23*s(103)+32*s(104)+8*s(105)+4*s(106)+32*s(148)+8*s(149)+4*s(150)+5 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(132) =< V1 aux(133) =< V1+V aux(134) =< V s(103) =< aux(134) s(150) =< aux(133) s(148) =< aux(133) s(148) =< aux(134) s(149) =< s(148)*aux(134) it(45) =< aux(132) s(95) =< aux(132) it(45) =< aux(133) it(48) =< aux(133) it(48) =< aux(134) aux(39) =< aux(134) aux(31) =< aux(132) it(48) =< aux(132)+aux(132)+aux(132)+aux(43) it(45) =< aux(134)+aux(134)+aux(134)+aux(45) s(108) =< it(48)*aux(134) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(132) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(132) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(134) with precondition: [V1>=1,V>=2,Out>=9,V1+2*V>=7] * Chain [[45,46,47,48,49,50],51,63]: 11*it(45)+11*it(48)+12*s(95)+32*s(96)+8*s(97)+4*s(98)+23*s(103)+32*s(104)+8*s(105)+4*s(106)+32*s(148)+8*s(149)+4*s(150)+6 Such that:aux(43) =< -V1+V aux(45) =< V1-V aux(136) =< V1 aux(137) =< V1+V aux(138) =< V s(103) =< aux(138) s(150) =< aux(137) s(148) =< aux(137) s(148) =< aux(138) s(149) =< s(148)*aux(138) it(45) =< aux(136) s(95) =< aux(136) it(45) =< aux(137) it(48) =< aux(137) it(48) =< aux(138) aux(39) =< aux(138) aux(31) =< aux(136) it(48) =< aux(136)+aux(136)+aux(136)+aux(43) it(45) =< aux(138)+aux(138)+aux(138)+aux(45) s(108) =< it(48)*aux(138) s(109) =< it(48)*aux(39) s(99) =< it(45)*aux(136) s(100) =< it(45)*aux(31) s(106) =< s(109) s(104) =< s(109) s(104) =< s(108) s(105) =< s(104)*aux(136) s(98) =< s(100) s(96) =< s(100) s(96) =< s(99) s(97) =< s(96)*aux(138) with precondition: [V1>=1,V>=2,Out>=10,V1+2*V>=7] * Chain [66]: 1 with precondition: [Out=1,V1>=0,V>=0] * Chain [65]: 2 with precondition: [V1=0,Out=2,V>=1] * Chain [64]: 1 with precondition: [V=0,Out=1,V1>=0] * Chain [63]: 2 with precondition: [V=0,Out=2,V1>=0] * Chain [62]: 1*s(113)+1*s(114)+2 Such that:s(114) =< V1 s(113) =< V with precondition: [Out>=2,V1+1>=Out,V+1>=Out] * Chain [61]: 1*s(115)+2 Such that:s(115) =< V with precondition: [Out>=2,V1>=V,V+1>=Out] * Chain [60]: 2*s(116)+2 Such that:aux(60) =< V1 s(116) =< aux(60) with precondition: [Out>=3,V>=V1+1,V1+2>=Out] * Chain [59]: 2*s(118)+2 Such that:aux(64) =< V s(118) =< aux(64) with precondition: [Out>=3,V1>=V,V+2>=Out] * Chain [58,66]: 4 with precondition: [Out=4,V>=1,V1>=V] * Chain [58,65]: 5 with precondition: [Out=5,V>=1,V1>=V] * Chain [57,66]: 1*s(120)+5 Such that:s(120) =< V with precondition: [Out>=5,V1>=V,V+4>=Out] * Chain [57,65]: 1*s(120)+6 Such that:s(120) =< V with precondition: [Out>=6,V1>=V,V+5>=Out] * Chain [56,66]: 7*s(124)+32*s(125)+8*s(126)+2*s(127)+5 Such that:aux(81) =< V1 aux(82) =< V1-V aux(83) =< V s(124) =< aux(83) s(125) =< aux(81) s(125) =< aux(82) s(126) =< s(125)*aux(83) s(127) =< aux(81) with precondition: [V>=1,Out>=6,V1>=V+1] * Chain [56,65]: 7*s(124)+32*s(125)+8*s(126)+2*s(127)+6 Such that:aux(81) =< V1 aux(82) =< V1-V aux(83) =< V s(124) =< aux(83) s(125) =< aux(81) s(125) =< aux(82) s(126) =< s(125)*aux(83) s(127) =< aux(81) with precondition: [V>=1,Out>=7,V1>=V+1] * Chain [55,66]: 2*s(136)+1*s(137)+5 Such that:s(137) =< V1 aux(90) =< V s(136) =< aux(90) with precondition: [Out>=6,V1>=V,V+5>=Out] * Chain [55,65]: 2*s(136)+1*s(137)+6 Such that:s(137) =< V1 aux(90) =< V s(136) =< aux(90) with precondition: [Out>=7,V1>=V,V+6>=Out] * Chain [54,66]: 1*s(139)+2*s(140)+5 Such that:s(139) =< V1 aux(97) =< V s(140) =< aux(97) with precondition: [Out>=7,V1>=V,2*V+5>=Out] * Chain [54,65]: 1*s(139)+2*s(140)+6 Such that:s(139) =< V1 aux(97) =< V s(140) =< aux(97) with precondition: [Out>=8,V1>=V,2*V+6>=Out] * Chain [53,66]: 4 with precondition: [Out=4,V1>=1,V>=V1+1] * Chain [53,64]: 4 with precondition: [Out=4,V1>=1,V>=V1+1] * Chain [53,63]: 5 with precondition: [Out=5,V1>=1,V>=V1+1] * Chain [52,66]: 1*s(142)+5 Such that:s(142) =< V1 with precondition: [Out>=5,V>=V1+1,V1+4>=Out] * Chain [52,64]: 1*s(142)+5 Such that:s(142) =< V1 with precondition: [Out>=5,V>=V1+1,V1+4>=Out] * Chain [52,63]: 1*s(142)+6 Such that:s(142) =< V1 with precondition: [Out>=6,V>=V1+1,V1+5>=Out] * Chain [51,66]: 11*s(143)+32*s(148)+8*s(149)+4*s(150)+5 Such that:aux(125) =< -V1+V aux(124) =< V aux(127) =< V1 s(143) =< aux(127) s(150) =< aux(124) s(148) =< aux(124) s(148) =< aux(125) s(149) =< s(148)*aux(127) with precondition: [V1>=1,Out>=6,V>=V1+1] * Chain [51,64]: 11*s(143)+32*s(148)+8*s(149)+4*s(150)+5 Such that:aux(125) =< -V1+V aux(124) =< V aux(131) =< V1 s(143) =< aux(131) s(150) =< aux(124) s(148) =< aux(124) s(148) =< aux(125) s(149) =< s(148)*aux(131) with precondition: [V1>=1,Out>=6,V>=V1+1] * Chain [51,63]: 11*s(143)+32*s(148)+8*s(149)+4*s(150)+6 Such that:aux(125) =< -V1+V aux(124) =< V aux(135) =< V1 s(143) =< aux(135) s(150) =< aux(124) s(148) =< aux(124) s(148) =< aux(125) s(149) =< s(148)*aux(135) with precondition: [V1>=1,Out>=7,V>=V1+1] #### Cost of chains of start(V1,V,V4): * Chain [71]: 377*s(743)+80*s(744)+20*s(745)+351*s(746)+96*s(756)+24*s(757)+30*s(758)+96*s(759)+24*s(760)+264*s(761)+264*s(762)+96*s(769)+768*s(770)+192*s(771)+96*s(772)+768*s(773)+192*s(774)+64*s(775)+16*s(776)+6 Such that:s(749) =< -V1+V s(752) =< V1+V aux(148) =< V1 aux(149) =< V1-V aux(150) =< V s(746) =< aux(148) s(743) =< aux(150) s(756) =< aux(150) s(756) =< s(749) s(757) =< s(756)*aux(148) s(758) =< s(752) s(759) =< s(752) s(759) =< aux(150) s(760) =< s(759)*aux(150) s(761) =< aux(148) s(761) =< s(752) s(762) =< s(752) s(762) =< aux(150) s(763) =< aux(150) s(764) =< aux(148) s(762) =< aux(148)+aux(148)+aux(148)+s(749) s(761) =< aux(150)+aux(150)+aux(150)+aux(149) s(765) =< s(762)*aux(150) s(766) =< s(762)*s(763) s(767) =< s(761)*aux(148) s(768) =< s(761)*s(764) s(769) =< s(766) s(770) =< s(766) s(770) =< s(765) s(771) =< s(770)*aux(148) s(772) =< s(768) s(773) =< s(768) s(773) =< s(767) s(774) =< s(773)*aux(150) s(775) =< s(752) s(775) =< aux(148) s(776) =< s(775)*aux(148) s(744) =< aux(148) s(744) =< aux(149) s(745) =< s(744)*aux(150) with precondition: [V1>=0,V>=0] * Chain [70]: 1731*s(802)+592*s(803)+52*s(804)+146*s(805)+1457*s(832)+384*s(833)+96*s(834)+96*s(837)+1056*s(838)+1056*s(839)+384*s(846)+3072*s(847)+768*s(848)+384*s(849)+3072*s(850)+768*s(851)+256*s(852)+64*s(853)+64*s(855)+9 Such that:aux(180) =< -2*V+V4 aux(181) =< -V+V4 aux(182) =< V aux(183) =< V4 s(832) =< aux(181) s(802) =< aux(182) s(805) =< aux(183) s(833) =< aux(181) s(833) =< aux(180) s(834) =< s(833)*aux(182) s(803) =< aux(183) s(803) =< aux(181) s(837) =< s(803)*aux(181) s(838) =< aux(182) s(838) =< aux(183) s(839) =< aux(183) s(839) =< aux(181) s(840) =< aux(181) s(841) =< aux(182) s(839) =< aux(182)+aux(182)+aux(182)+aux(180) s(838) =< aux(181)+aux(181)+aux(181)+aux(182) s(842) =< s(839)*aux(181) s(843) =< s(839)*s(840) s(844) =< s(838)*aux(182) s(845) =< s(838)*s(841) s(846) =< s(843) s(847) =< s(843) s(847) =< s(842) s(848) =< s(847)*aux(182) s(849) =< s(845) s(850) =< s(845) s(850) =< s(844) s(851) =< s(850)*aux(181) s(852) =< aux(183) s(852) =< aux(182) s(853) =< s(852)*aux(182) s(855) =< s(802)*aux(181) s(804) =< s(803)*aux(182) with precondition: [V1=1,V>=0,V4>=0] * Chain [69]: 4006*s(1111)+944*s(1112)+108*s(1113)+2025*s(1114)+2792*s(1140)+192*s(1143)+1024*s(1145)+192*s(1146)+2112*s(1147)+2112*s(1148)+768*s(1155)+6144*s(1156)+1536*s(1157)+768*s(1158)+6144*s(1159)+1536*s(1160)+128*s(1162)+512*s(1163)+128*s(1164)+592*s(1736)+52*s(1737)+1457*s(1767)+384*s(1768)+96*s(1769)+96*s(1772)+1056*s(1773)+1056*s(1774)+384*s(1781)+3072*s(1782)+768*s(1783)+384*s(1784)+3072*s(1785)+768*s(1786)+64*s(1788)+64*s(1790)+9 Such that:aux(261) =< -2*V+V4 aux(262) =< -V+V4 aux(263) =< V aux(264) =< V-2*V4 aux(265) =< V-V4 aux(266) =< V4 s(1767) =< aux(262) s(1114) =< aux(263) s(1140) =< aux(265) s(1111) =< aux(266) s(1768) =< aux(262) s(1768) =< aux(261) s(1769) =< s(1768)*aux(263) s(1736) =< aux(266) s(1736) =< aux(262) s(1772) =< s(1736)*aux(262) s(1773) =< aux(263) s(1773) =< aux(266) s(1774) =< aux(266) s(1774) =< aux(262) s(1775) =< aux(262) s(1776) =< aux(263) s(1774) =< aux(263)+aux(263)+aux(263)+aux(261) s(1773) =< aux(262)+aux(262)+aux(262)+aux(263) s(1777) =< s(1774)*aux(262) s(1778) =< s(1774)*s(1775) s(1779) =< s(1773)*aux(263) s(1780) =< s(1773)*s(1776) s(1781) =< s(1778) s(1782) =< s(1778) s(1782) =< s(1777) s(1783) =< s(1782)*aux(263) s(1784) =< s(1780) s(1785) =< s(1780) s(1785) =< s(1779) s(1786) =< s(1785)*aux(262) s(1145) =< aux(266) s(1145) =< aux(263) s(1788) =< s(1145)*aux(263) s(1790) =< s(1114)*aux(262) s(1737) =< s(1736)*aux(263) s(1112) =< aux(263) s(1112) =< aux(265) s(1113) =< s(1112)*aux(266) s(1143) =< s(1111)*aux(265) s(1146) =< s(1145)*aux(266) s(1147) =< aux(265) s(1147) =< aux(263) s(1148) =< aux(263) s(1148) =< aux(266) s(1149) =< aux(266) s(1150) =< aux(265) s(1148) =< aux(265)+aux(265)+aux(265)+aux(266) s(1147) =< aux(266)+aux(266)+aux(266)+aux(264) s(1151) =< s(1148)*aux(266) s(1152) =< s(1148)*s(1149) s(1153) =< s(1147)*aux(265) s(1154) =< s(1147)*s(1150) s(1155) =< s(1152) s(1156) =< s(1152) s(1156) =< s(1151) s(1157) =< s(1156)*aux(265) s(1158) =< s(1154) s(1159) =< s(1154) s(1159) =< s(1153) s(1160) =< s(1159)*aux(266) s(1162) =< s(1112)*aux(265) s(1163) =< aux(265) s(1163) =< aux(264) s(1164) =< s(1163)*aux(266) with precondition: [V1=2,V>=0,V4>=0] * Chain [68]: 20*s(2053)+4 Such that:aux(267) =< V s(2053) =< aux(267) with precondition: [V1=2,V4=0,V>=0] * Chain [67]: 4*s(2063)+2 Such that:s(2062) =< V1 s(2063) =< s(2062) with precondition: [V=0,V1>=0] Closed-form bounds of start(V1,V,V4): ------------------------------------- * Chain [71] with precondition: [V1>=0,V>=0] - Upper bound: 695*V1+6+864*V1*V1+192*V1*V1*V+44*V1*V+(V1+V)*(192*V1*V)+(V1+V)*(16*V1)+473*V+(V1+V)*(888*V)+(454*V1+454*V) - Complexity: n^3 * Chain [70] with precondition: [V1=1,V>=0,V4>=0] - Upper bound: 2787*V+9+3456*V*V+768*V*V*nat(-V+V4)+116*V*V4+768*V*V4*nat(-V+V4)+160*V*nat(-V+V4)+2050*V4+3552*V4*nat(-V+V4)+nat(-V+V4)*1841 - Complexity: n^3 * Chain [69] with precondition: [V1=2,V>=0,V4>=0] - Upper bound: 6137*V+9+3456*V*V+768*V*V*nat(-V+V4)+7136*V*V4+768*V*V4*nat(-V+V4)+1536*V*V4*nat(V-V4)+160*V*nat(-V+V4)+128*V*nat(V-V4)+6678*V4+192*V4*V4+3552*V4*nat(-V+V4)+320*V4*nat(V-V4)+1536*V4*nat(V-V4)*nat(V-V4)+nat(-V+V4)*1841+nat(V-V4)*5416+nat(V-V4)*6912*nat(V-V4) - Complexity: n^3 * Chain [68] with precondition: [V1=2,V4=0,V>=0] - Upper bound: 20*V+4 - Complexity: n * Chain [67] with precondition: [V=0,V1>=0] - Upper bound: 4*V1+2 - Complexity: n ### Maximum cost of start(V1,V,V4): max([4*V1,453*V+2+max([864*V1*V1+695*V1+192*V1*V1*V+44*V1*V+(V1+V)*(192*V1*V)+(V1+V)*(16*V1)+(V1+V)*(888*V)+(454*V1+454*V),7020*V*nat(V4)+3350*V+1536*V*nat(V4)*nat(V-V4)+128*V*nat(V-V4)+nat(V4)*4628+nat(V4)*192*nat(V4)+nat(V4)*320*nat(V-V4)+nat(V4)*1536*nat(V-V4)*nat(V-V4)+nat(V-V4)*5416+nat(V-V4)*6912*nat(V-V4)+(2314*V+3+3456*V*V+768*V*V*nat(-V+V4)+116*V*nat(V4)+768*V*nat(V4)*nat(-V+V4)+160*V*nat(-V+V4)+nat(V4)*2050+nat(V4)*3552*nat(-V+V4)+nat(-V+V4)*1841)])+(20*V+2)])+2 Asymptotic class: n^3 * Total analysis performed in 5686 ms. ---------------------------------------- (20) BOUNDS(1, n^3) ---------------------------------------- (21) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (22) Obligation: Complexity Dependency Tuples Problem Rules: minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0 gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0, z0) -> false gt(s(z0), 0) -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0) -> true ge(0, s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Tuples: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1), GT(z1, 0)) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1), GT(z0, 0)) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0, z0) -> c10 GT(s(z0), 0) -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0) -> c13 GE(0, s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) S tuples: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1), GT(z1, 0)) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1), GT(z0, 0)) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0, z0) -> c10 GT(s(z0), 0) -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0) -> c13 GE(0, s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) K tuples:none Defined Rule Symbols: minus_2, if_3, gcd_2, if1_3, if2_3, if3_3, gt_2, ge_2 Defined Pair Symbols: MINUS_2, IF_3, GCD_2, IF1_3, IF2_3, IF3_3, GT_2, GE_2 Compound Symbols: c_2, c1_1, c2, c3_2, c4_2, c5_2, c6_2, c7, c8_2, c9, c10, c11, c12_1, c13, c14, c15_1 ---------------------------------------- (23) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (24) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0), z0, z1), GT(z1, 0)) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0), z0, z1), GT(z0, 0)) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0, z0) -> c10 GT(s(z0), 0) -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0) -> c13 GE(0, s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) The (relative) TRS S consists of the following rules: minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0 gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0, z0) -> false gt(s(z0), 0) -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0) -> true ge(0, s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Rewrite Strategy: INNERMOST ---------------------------------------- (25) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (26) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0'), z0, z1), GT(z1, 0')) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0'), z0, z1), GT(z0, 0')) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0', z0) -> c10 GT(s(z0), 0') -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0') -> c13 GE(0', s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) The (relative) TRS S consists of the following rules: minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0' gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0'), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0'), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0', z0) -> false gt(s(z0), 0') -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0') -> true ge(0', s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Rewrite Strategy: INNERMOST ---------------------------------------- (27) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (28) Obligation: Innermost TRS: Rules: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0'), z0, z1), GT(z1, 0')) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0'), z0, z1), GT(z0, 0')) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0', z0) -> c10 GT(s(z0), 0') -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0') -> c13 GE(0', s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0' gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0'), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0'), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0', z0) -> false gt(s(z0), 0') -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0') -> true ge(0', s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Types: MINUS :: s:0' -> s:0' -> c s :: s:0' -> s:0' c :: c1:c2 -> c10:c11:c12 -> c IF :: true:false -> s:0' -> s:0' -> c1:c2 gt :: s:0' -> s:0' -> true:false GT :: s:0' -> s:0' -> c10:c11:c12 true :: true:false c1 :: c -> c1:c2 false :: true:false c2 :: c1:c2 GCD :: s:0' -> s:0' -> c3 c3 :: c4:c5 -> c13:c14:c15 -> c3 IF1 :: true:false -> s:0' -> s:0' -> c4:c5 ge :: s:0' -> s:0' -> true:false GE :: s:0' -> s:0' -> c13:c14:c15 c4 :: c6:c7 -> c10:c11:c12 -> c4:c5 IF2 :: true:false -> s:0' -> s:0' -> c6:c7 0' :: s:0' c5 :: c8:c9 -> c10:c11:c12 -> c4:c5 IF3 :: true:false -> s:0' -> s:0' -> c8:c9 c6 :: c3 -> c -> c6:c7 minus :: s:0' -> s:0' -> s:0' c7 :: c6:c7 c8 :: c3 -> c -> c8:c9 c9 :: c8:c9 c10 :: c10:c11:c12 c11 :: c10:c11:c12 c12 :: c10:c11:c12 -> c10:c11:c12 c13 :: c13:c14:c15 c14 :: c13:c14:c15 c15 :: c13:c14:c15 -> c13:c14:c15 if :: true:false -> s:0' -> s:0' -> s:0' gcd :: s:0' -> s:0' -> s:0' if1 :: true:false -> s:0' -> s:0' -> s:0' if2 :: true:false -> s:0' -> s:0' -> s:0' if3 :: true:false -> s:0' -> s:0' -> s:0' hole_c1_16 :: c hole_s:0'2_16 :: s:0' hole_c1:c23_16 :: c1:c2 hole_c10:c11:c124_16 :: c10:c11:c12 hole_true:false5_16 :: true:false hole_c36_16 :: c3 hole_c4:c57_16 :: c4:c5 hole_c13:c14:c158_16 :: c13:c14:c15 hole_c6:c79_16 :: c6:c7 hole_c8:c910_16 :: c8:c9 gen_s:0'11_16 :: Nat -> s:0' gen_c10:c11:c1212_16 :: Nat -> c10:c11:c12 gen_c13:c14:c1513_16 :: Nat -> c13:c14:c15 ---------------------------------------- (29) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: MINUS, gt, GT, GCD, ge, GE, minus, gcd They will be analysed ascendingly in the following order: gt < MINUS GT < MINUS MINUS < GCD gt < GCD gt < minus gt < gcd GT < GCD ge < GCD GE < GCD minus < GCD ge < gcd minus < gcd ---------------------------------------- (30) Obligation: Innermost TRS: Rules: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0'), z0, z1), GT(z1, 0')) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0'), z0, z1), GT(z0, 0')) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0', z0) -> c10 GT(s(z0), 0') -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0') -> c13 GE(0', s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0' gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0'), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0'), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0', z0) -> false gt(s(z0), 0') -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0') -> true ge(0', s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Types: MINUS :: s:0' -> s:0' -> c s :: s:0' -> s:0' c :: c1:c2 -> c10:c11:c12 -> c IF :: true:false -> s:0' -> s:0' -> c1:c2 gt :: s:0' -> s:0' -> true:false GT :: s:0' -> s:0' -> c10:c11:c12 true :: true:false c1 :: c -> c1:c2 false :: true:false c2 :: c1:c2 GCD :: s:0' -> s:0' -> c3 c3 :: c4:c5 -> c13:c14:c15 -> c3 IF1 :: true:false -> s:0' -> s:0' -> c4:c5 ge :: s:0' -> s:0' -> true:false GE :: s:0' -> s:0' -> c13:c14:c15 c4 :: c6:c7 -> c10:c11:c12 -> c4:c5 IF2 :: true:false -> s:0' -> s:0' -> c6:c7 0' :: s:0' c5 :: c8:c9 -> c10:c11:c12 -> c4:c5 IF3 :: true:false -> s:0' -> s:0' -> c8:c9 c6 :: c3 -> c -> c6:c7 minus :: s:0' -> s:0' -> s:0' c7 :: c6:c7 c8 :: c3 -> c -> c8:c9 c9 :: c8:c9 c10 :: c10:c11:c12 c11 :: c10:c11:c12 c12 :: c10:c11:c12 -> c10:c11:c12 c13 :: c13:c14:c15 c14 :: c13:c14:c15 c15 :: c13:c14:c15 -> c13:c14:c15 if :: true:false -> s:0' -> s:0' -> s:0' gcd :: s:0' -> s:0' -> s:0' if1 :: true:false -> s:0' -> s:0' -> s:0' if2 :: true:false -> s:0' -> s:0' -> s:0' if3 :: true:false -> s:0' -> s:0' -> s:0' hole_c1_16 :: c hole_s:0'2_16 :: s:0' hole_c1:c23_16 :: c1:c2 hole_c10:c11:c124_16 :: c10:c11:c12 hole_true:false5_16 :: true:false hole_c36_16 :: c3 hole_c4:c57_16 :: c4:c5 hole_c13:c14:c158_16 :: c13:c14:c15 hole_c6:c79_16 :: c6:c7 hole_c8:c910_16 :: c8:c9 gen_s:0'11_16 :: Nat -> s:0' gen_c10:c11:c1212_16 :: Nat -> c10:c11:c12 gen_c13:c14:c1513_16 :: Nat -> c13:c14:c15 Generator Equations: gen_s:0'11_16(0) <=> 0' gen_s:0'11_16(+(x, 1)) <=> s(gen_s:0'11_16(x)) gen_c10:c11:c1212_16(0) <=> c10 gen_c10:c11:c1212_16(+(x, 1)) <=> c12(gen_c10:c11:c1212_16(x)) gen_c13:c14:c1513_16(0) <=> c13 gen_c13:c14:c1513_16(+(x, 1)) <=> c15(gen_c13:c14:c1513_16(x)) The following defined symbols remain to be analysed: gt, MINUS, GT, GCD, ge, GE, minus, gcd They will be analysed ascendingly in the following order: gt < MINUS GT < MINUS MINUS < GCD gt < GCD gt < minus gt < gcd GT < GCD ge < GCD GE < GCD minus < GCD ge < gcd minus < gcd ---------------------------------------- (31) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: gt(gen_s:0'11_16(n15_16), gen_s:0'11_16(n15_16)) -> false, rt in Omega(0) Induction Base: gt(gen_s:0'11_16(0), gen_s:0'11_16(0)) ->_R^Omega(0) false Induction Step: gt(gen_s:0'11_16(+(n15_16, 1)), gen_s:0'11_16(+(n15_16, 1))) ->_R^Omega(0) gt(gen_s:0'11_16(n15_16), gen_s:0'11_16(n15_16)) ->_IH false We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (32) Obligation: Innermost TRS: Rules: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0'), z0, z1), GT(z1, 0')) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0'), z0, z1), GT(z0, 0')) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0', z0) -> c10 GT(s(z0), 0') -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0') -> c13 GE(0', s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0' gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0'), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0'), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0', z0) -> false gt(s(z0), 0') -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0') -> true ge(0', s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Types: MINUS :: s:0' -> s:0' -> c s :: s:0' -> s:0' c :: c1:c2 -> c10:c11:c12 -> c IF :: true:false -> s:0' -> s:0' -> c1:c2 gt :: s:0' -> s:0' -> true:false GT :: s:0' -> s:0' -> c10:c11:c12 true :: true:false c1 :: c -> c1:c2 false :: true:false c2 :: c1:c2 GCD :: s:0' -> s:0' -> c3 c3 :: c4:c5 -> c13:c14:c15 -> c3 IF1 :: true:false -> s:0' -> s:0' -> c4:c5 ge :: s:0' -> s:0' -> true:false GE :: s:0' -> s:0' -> c13:c14:c15 c4 :: c6:c7 -> c10:c11:c12 -> c4:c5 IF2 :: true:false -> s:0' -> s:0' -> c6:c7 0' :: s:0' c5 :: c8:c9 -> c10:c11:c12 -> c4:c5 IF3 :: true:false -> s:0' -> s:0' -> c8:c9 c6 :: c3 -> c -> c6:c7 minus :: s:0' -> s:0' -> s:0' c7 :: c6:c7 c8 :: c3 -> c -> c8:c9 c9 :: c8:c9 c10 :: c10:c11:c12 c11 :: c10:c11:c12 c12 :: c10:c11:c12 -> c10:c11:c12 c13 :: c13:c14:c15 c14 :: c13:c14:c15 c15 :: c13:c14:c15 -> c13:c14:c15 if :: true:false -> s:0' -> s:0' -> s:0' gcd :: s:0' -> s:0' -> s:0' if1 :: true:false -> s:0' -> s:0' -> s:0' if2 :: true:false -> s:0' -> s:0' -> s:0' if3 :: true:false -> s:0' -> s:0' -> s:0' hole_c1_16 :: c hole_s:0'2_16 :: s:0' hole_c1:c23_16 :: c1:c2 hole_c10:c11:c124_16 :: c10:c11:c12 hole_true:false5_16 :: true:false hole_c36_16 :: c3 hole_c4:c57_16 :: c4:c5 hole_c13:c14:c158_16 :: c13:c14:c15 hole_c6:c79_16 :: c6:c7 hole_c8:c910_16 :: c8:c9 gen_s:0'11_16 :: Nat -> s:0' gen_c10:c11:c1212_16 :: Nat -> c10:c11:c12 gen_c13:c14:c1513_16 :: Nat -> c13:c14:c15 Lemmas: gt(gen_s:0'11_16(n15_16), gen_s:0'11_16(n15_16)) -> false, rt in Omega(0) Generator Equations: gen_s:0'11_16(0) <=> 0' gen_s:0'11_16(+(x, 1)) <=> s(gen_s:0'11_16(x)) gen_c10:c11:c1212_16(0) <=> c10 gen_c10:c11:c1212_16(+(x, 1)) <=> c12(gen_c10:c11:c1212_16(x)) gen_c13:c14:c1513_16(0) <=> c13 gen_c13:c14:c1513_16(+(x, 1)) <=> c15(gen_c13:c14:c1513_16(x)) The following defined symbols remain to be analysed: GT, MINUS, GCD, ge, GE, minus, gcd They will be analysed ascendingly in the following order: GT < MINUS MINUS < GCD GT < GCD ge < GCD GE < GCD minus < GCD ge < gcd minus < gcd ---------------------------------------- (33) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: GT(gen_s:0'11_16(n462_16), gen_s:0'11_16(n462_16)) -> gen_c10:c11:c1212_16(n462_16), rt in Omega(1 + n462_16) Induction Base: GT(gen_s:0'11_16(0), gen_s:0'11_16(0)) ->_R^Omega(1) c10 Induction Step: GT(gen_s:0'11_16(+(n462_16, 1)), gen_s:0'11_16(+(n462_16, 1))) ->_R^Omega(1) c12(GT(gen_s:0'11_16(n462_16), gen_s:0'11_16(n462_16))) ->_IH c12(gen_c10:c11:c1212_16(c463_16)) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (34) Complex Obligation (BEST) ---------------------------------------- (35) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0'), z0, z1), GT(z1, 0')) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0'), z0, z1), GT(z0, 0')) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0', z0) -> c10 GT(s(z0), 0') -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0') -> c13 GE(0', s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0' gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0'), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0'), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0', z0) -> false gt(s(z0), 0') -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0') -> true ge(0', s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Types: MINUS :: s:0' -> s:0' -> c s :: s:0' -> s:0' c :: c1:c2 -> c10:c11:c12 -> c IF :: true:false -> s:0' -> s:0' -> c1:c2 gt :: s:0' -> s:0' -> true:false GT :: s:0' -> s:0' -> c10:c11:c12 true :: true:false c1 :: c -> c1:c2 false :: true:false c2 :: c1:c2 GCD :: s:0' -> s:0' -> c3 c3 :: c4:c5 -> c13:c14:c15 -> c3 IF1 :: true:false -> s:0' -> s:0' -> c4:c5 ge :: s:0' -> s:0' -> true:false GE :: s:0' -> s:0' -> c13:c14:c15 c4 :: c6:c7 -> c10:c11:c12 -> c4:c5 IF2 :: true:false -> s:0' -> s:0' -> c6:c7 0' :: s:0' c5 :: c8:c9 -> c10:c11:c12 -> c4:c5 IF3 :: true:false -> s:0' -> s:0' -> c8:c9 c6 :: c3 -> c -> c6:c7 minus :: s:0' -> s:0' -> s:0' c7 :: c6:c7 c8 :: c3 -> c -> c8:c9 c9 :: c8:c9 c10 :: c10:c11:c12 c11 :: c10:c11:c12 c12 :: c10:c11:c12 -> c10:c11:c12 c13 :: c13:c14:c15 c14 :: c13:c14:c15 c15 :: c13:c14:c15 -> c13:c14:c15 if :: true:false -> s:0' -> s:0' -> s:0' gcd :: s:0' -> s:0' -> s:0' if1 :: true:false -> s:0' -> s:0' -> s:0' if2 :: true:false -> s:0' -> s:0' -> s:0' if3 :: true:false -> s:0' -> s:0' -> s:0' hole_c1_16 :: c hole_s:0'2_16 :: s:0' hole_c1:c23_16 :: c1:c2 hole_c10:c11:c124_16 :: c10:c11:c12 hole_true:false5_16 :: true:false hole_c36_16 :: c3 hole_c4:c57_16 :: c4:c5 hole_c13:c14:c158_16 :: c13:c14:c15 hole_c6:c79_16 :: c6:c7 hole_c8:c910_16 :: c8:c9 gen_s:0'11_16 :: Nat -> s:0' gen_c10:c11:c1212_16 :: Nat -> c10:c11:c12 gen_c13:c14:c1513_16 :: Nat -> c13:c14:c15 Lemmas: gt(gen_s:0'11_16(n15_16), gen_s:0'11_16(n15_16)) -> false, rt in Omega(0) Generator Equations: gen_s:0'11_16(0) <=> 0' gen_s:0'11_16(+(x, 1)) <=> s(gen_s:0'11_16(x)) gen_c10:c11:c1212_16(0) <=> c10 gen_c10:c11:c1212_16(+(x, 1)) <=> c12(gen_c10:c11:c1212_16(x)) gen_c13:c14:c1513_16(0) <=> c13 gen_c13:c14:c1513_16(+(x, 1)) <=> c15(gen_c13:c14:c1513_16(x)) The following defined symbols remain to be analysed: GT, MINUS, GCD, ge, GE, minus, gcd They will be analysed ascendingly in the following order: GT < MINUS MINUS < GCD GT < GCD ge < GCD GE < GCD minus < GCD ge < gcd minus < gcd ---------------------------------------- (36) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (37) BOUNDS(n^1, INF) ---------------------------------------- (38) Obligation: Innermost TRS: Rules: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0'), z0, z1), GT(z1, 0')) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0'), z0, z1), GT(z0, 0')) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0', z0) -> c10 GT(s(z0), 0') -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0') -> c13 GE(0', s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0' gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0'), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0'), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0', z0) -> false gt(s(z0), 0') -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0') -> true ge(0', s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Types: MINUS :: s:0' -> s:0' -> c s :: s:0' -> s:0' c :: c1:c2 -> c10:c11:c12 -> c IF :: true:false -> s:0' -> s:0' -> c1:c2 gt :: s:0' -> s:0' -> true:false GT :: s:0' -> s:0' -> c10:c11:c12 true :: true:false c1 :: c -> c1:c2 false :: true:false c2 :: c1:c2 GCD :: s:0' -> s:0' -> c3 c3 :: c4:c5 -> c13:c14:c15 -> c3 IF1 :: true:false -> s:0' -> s:0' -> c4:c5 ge :: s:0' -> s:0' -> true:false GE :: s:0' -> s:0' -> c13:c14:c15 c4 :: c6:c7 -> c10:c11:c12 -> c4:c5 IF2 :: true:false -> s:0' -> s:0' -> c6:c7 0' :: s:0' c5 :: c8:c9 -> c10:c11:c12 -> c4:c5 IF3 :: true:false -> s:0' -> s:0' -> c8:c9 c6 :: c3 -> c -> c6:c7 minus :: s:0' -> s:0' -> s:0' c7 :: c6:c7 c8 :: c3 -> c -> c8:c9 c9 :: c8:c9 c10 :: c10:c11:c12 c11 :: c10:c11:c12 c12 :: c10:c11:c12 -> c10:c11:c12 c13 :: c13:c14:c15 c14 :: c13:c14:c15 c15 :: c13:c14:c15 -> c13:c14:c15 if :: true:false -> s:0' -> s:0' -> s:0' gcd :: s:0' -> s:0' -> s:0' if1 :: true:false -> s:0' -> s:0' -> s:0' if2 :: true:false -> s:0' -> s:0' -> s:0' if3 :: true:false -> s:0' -> s:0' -> s:0' hole_c1_16 :: c hole_s:0'2_16 :: s:0' hole_c1:c23_16 :: c1:c2 hole_c10:c11:c124_16 :: c10:c11:c12 hole_true:false5_16 :: true:false hole_c36_16 :: c3 hole_c4:c57_16 :: c4:c5 hole_c13:c14:c158_16 :: c13:c14:c15 hole_c6:c79_16 :: c6:c7 hole_c8:c910_16 :: c8:c9 gen_s:0'11_16 :: Nat -> s:0' gen_c10:c11:c1212_16 :: Nat -> c10:c11:c12 gen_c13:c14:c1513_16 :: Nat -> c13:c14:c15 Lemmas: gt(gen_s:0'11_16(n15_16), gen_s:0'11_16(n15_16)) -> false, rt in Omega(0) GT(gen_s:0'11_16(n462_16), gen_s:0'11_16(n462_16)) -> gen_c10:c11:c1212_16(n462_16), rt in Omega(1 + n462_16) Generator Equations: gen_s:0'11_16(0) <=> 0' gen_s:0'11_16(+(x, 1)) <=> s(gen_s:0'11_16(x)) gen_c10:c11:c1212_16(0) <=> c10 gen_c10:c11:c1212_16(+(x, 1)) <=> c12(gen_c10:c11:c1212_16(x)) gen_c13:c14:c1513_16(0) <=> c13 gen_c13:c14:c1513_16(+(x, 1)) <=> c15(gen_c13:c14:c1513_16(x)) The following defined symbols remain to be analysed: MINUS, GCD, ge, GE, minus, gcd They will be analysed ascendingly in the following order: MINUS < GCD ge < GCD GE < GCD minus < GCD ge < gcd minus < gcd ---------------------------------------- (39) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: ge(gen_s:0'11_16(n1584_16), gen_s:0'11_16(n1584_16)) -> true, rt in Omega(0) Induction Base: ge(gen_s:0'11_16(0), gen_s:0'11_16(0)) ->_R^Omega(0) true Induction Step: ge(gen_s:0'11_16(+(n1584_16, 1)), gen_s:0'11_16(+(n1584_16, 1))) ->_R^Omega(0) ge(gen_s:0'11_16(n1584_16), gen_s:0'11_16(n1584_16)) ->_IH true We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (40) Obligation: Innermost TRS: Rules: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0'), z0, z1), GT(z1, 0')) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0'), z0, z1), GT(z0, 0')) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0', z0) -> c10 GT(s(z0), 0') -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0') -> c13 GE(0', s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0' gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0'), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0'), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0', z0) -> false gt(s(z0), 0') -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0') -> true ge(0', s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Types: MINUS :: s:0' -> s:0' -> c s :: s:0' -> s:0' c :: c1:c2 -> c10:c11:c12 -> c IF :: true:false -> s:0' -> s:0' -> c1:c2 gt :: s:0' -> s:0' -> true:false GT :: s:0' -> s:0' -> c10:c11:c12 true :: true:false c1 :: c -> c1:c2 false :: true:false c2 :: c1:c2 GCD :: s:0' -> s:0' -> c3 c3 :: c4:c5 -> c13:c14:c15 -> c3 IF1 :: true:false -> s:0' -> s:0' -> c4:c5 ge :: s:0' -> s:0' -> true:false GE :: s:0' -> s:0' -> c13:c14:c15 c4 :: c6:c7 -> c10:c11:c12 -> c4:c5 IF2 :: true:false -> s:0' -> s:0' -> c6:c7 0' :: s:0' c5 :: c8:c9 -> c10:c11:c12 -> c4:c5 IF3 :: true:false -> s:0' -> s:0' -> c8:c9 c6 :: c3 -> c -> c6:c7 minus :: s:0' -> s:0' -> s:0' c7 :: c6:c7 c8 :: c3 -> c -> c8:c9 c9 :: c8:c9 c10 :: c10:c11:c12 c11 :: c10:c11:c12 c12 :: c10:c11:c12 -> c10:c11:c12 c13 :: c13:c14:c15 c14 :: c13:c14:c15 c15 :: c13:c14:c15 -> c13:c14:c15 if :: true:false -> s:0' -> s:0' -> s:0' gcd :: s:0' -> s:0' -> s:0' if1 :: true:false -> s:0' -> s:0' -> s:0' if2 :: true:false -> s:0' -> s:0' -> s:0' if3 :: true:false -> s:0' -> s:0' -> s:0' hole_c1_16 :: c hole_s:0'2_16 :: s:0' hole_c1:c23_16 :: c1:c2 hole_c10:c11:c124_16 :: c10:c11:c12 hole_true:false5_16 :: true:false hole_c36_16 :: c3 hole_c4:c57_16 :: c4:c5 hole_c13:c14:c158_16 :: c13:c14:c15 hole_c6:c79_16 :: c6:c7 hole_c8:c910_16 :: c8:c9 gen_s:0'11_16 :: Nat -> s:0' gen_c10:c11:c1212_16 :: Nat -> c10:c11:c12 gen_c13:c14:c1513_16 :: Nat -> c13:c14:c15 Lemmas: gt(gen_s:0'11_16(n15_16), gen_s:0'11_16(n15_16)) -> false, rt in Omega(0) GT(gen_s:0'11_16(n462_16), gen_s:0'11_16(n462_16)) -> gen_c10:c11:c1212_16(n462_16), rt in Omega(1 + n462_16) ge(gen_s:0'11_16(n1584_16), gen_s:0'11_16(n1584_16)) -> true, rt in Omega(0) Generator Equations: gen_s:0'11_16(0) <=> 0' gen_s:0'11_16(+(x, 1)) <=> s(gen_s:0'11_16(x)) gen_c10:c11:c1212_16(0) <=> c10 gen_c10:c11:c1212_16(+(x, 1)) <=> c12(gen_c10:c11:c1212_16(x)) gen_c13:c14:c1513_16(0) <=> c13 gen_c13:c14:c1513_16(+(x, 1)) <=> c15(gen_c13:c14:c1513_16(x)) The following defined symbols remain to be analysed: GE, GCD, minus, gcd They will be analysed ascendingly in the following order: GE < GCD minus < GCD minus < gcd ---------------------------------------- (41) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: GE(gen_s:0'11_16(n2042_16), gen_s:0'11_16(n2042_16)) -> gen_c13:c14:c1513_16(n2042_16), rt in Omega(1 + n2042_16) Induction Base: GE(gen_s:0'11_16(0), gen_s:0'11_16(0)) ->_R^Omega(1) c13 Induction Step: GE(gen_s:0'11_16(+(n2042_16, 1)), gen_s:0'11_16(+(n2042_16, 1))) ->_R^Omega(1) c15(GE(gen_s:0'11_16(n2042_16), gen_s:0'11_16(n2042_16))) ->_IH c15(gen_c13:c14:c1513_16(c2043_16)) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (42) Obligation: Innermost TRS: Rules: MINUS(s(z0), z1) -> c(IF(gt(s(z0), z1), z0, z1), GT(s(z0), z1)) IF(true, z0, z1) -> c1(MINUS(z0, z1)) IF(false, z0, z1) -> c2 GCD(z0, z1) -> c3(IF1(ge(z0, z1), z0, z1), GE(z0, z1)) IF1(true, z0, z1) -> c4(IF2(gt(z1, 0'), z0, z1), GT(z1, 0')) IF1(false, z0, z1) -> c5(IF3(gt(z0, 0'), z0, z1), GT(z0, 0')) IF2(true, z0, z1) -> c6(GCD(minus(z0, z1), z1), MINUS(z0, z1)) IF2(false, z0, z1) -> c7 IF3(true, z0, z1) -> c8(GCD(z0, minus(z1, z0)), MINUS(z1, z0)) IF3(false, z0, z1) -> c9 GT(0', z0) -> c10 GT(s(z0), 0') -> c11 GT(s(z0), s(z1)) -> c12(GT(z0, z1)) GE(z0, 0') -> c13 GE(0', s(z0)) -> c14 GE(s(z0), s(z1)) -> c15(GE(z0, z1)) minus(s(z0), z1) -> if(gt(s(z0), z1), z0, z1) if(true, z0, z1) -> s(minus(z0, z1)) if(false, z0, z1) -> 0' gcd(z0, z1) -> if1(ge(z0, z1), z0, z1) if1(true, z0, z1) -> if2(gt(z1, 0'), z0, z1) if1(false, z0, z1) -> if3(gt(z0, 0'), z0, z1) if2(true, z0, z1) -> gcd(minus(z0, z1), z1) if2(false, z0, z1) -> z0 if3(true, z0, z1) -> gcd(z0, minus(z1, z0)) if3(false, z0, z1) -> z1 gt(0', z0) -> false gt(s(z0), 0') -> true gt(s(z0), s(z1)) -> gt(z0, z1) ge(z0, 0') -> true ge(0', s(z0)) -> false ge(s(z0), s(z1)) -> ge(z0, z1) Types: MINUS :: s:0' -> s:0' -> c s :: s:0' -> s:0' c :: c1:c2 -> c10:c11:c12 -> c IF :: true:false -> s:0' -> s:0' -> c1:c2 gt :: s:0' -> s:0' -> true:false GT :: s:0' -> s:0' -> c10:c11:c12 true :: true:false c1 :: c -> c1:c2 false :: true:false c2 :: c1:c2 GCD :: s:0' -> s:0' -> c3 c3 :: c4:c5 -> c13:c14:c15 -> c3 IF1 :: true:false -> s:0' -> s:0' -> c4:c5 ge :: s:0' -> s:0' -> true:false GE :: s:0' -> s:0' -> c13:c14:c15 c4 :: c6:c7 -> c10:c11:c12 -> c4:c5 IF2 :: true:false -> s:0' -> s:0' -> c6:c7 0' :: s:0' c5 :: c8:c9 -> c10:c11:c12 -> c4:c5 IF3 :: true:false -> s:0' -> s:0' -> c8:c9 c6 :: c3 -> c -> c6:c7 minus :: s:0' -> s:0' -> s:0' c7 :: c6:c7 c8 :: c3 -> c -> c8:c9 c9 :: c8:c9 c10 :: c10:c11:c12 c11 :: c10:c11:c12 c12 :: c10:c11:c12 -> c10:c11:c12 c13 :: c13:c14:c15 c14 :: c13:c14:c15 c15 :: c13:c14:c15 -> c13:c14:c15 if :: true:false -> s:0' -> s:0' -> s:0' gcd :: s:0' -> s:0' -> s:0' if1 :: true:false -> s:0' -> s:0' -> s:0' if2 :: true:false -> s:0' -> s:0' -> s:0' if3 :: true:false -> s:0' -> s:0' -> s:0' hole_c1_16 :: c hole_s:0'2_16 :: s:0' hole_c1:c23_16 :: c1:c2 hole_c10:c11:c124_16 :: c10:c11:c12 hole_true:false5_16 :: true:false hole_c36_16 :: c3 hole_c4:c57_16 :: c4:c5 hole_c13:c14:c158_16 :: c13:c14:c15 hole_c6:c79_16 :: c6:c7 hole_c8:c910_16 :: c8:c9 gen_s:0'11_16 :: Nat -> s:0' gen_c10:c11:c1212_16 :: Nat -> c10:c11:c12 gen_c13:c14:c1513_16 :: Nat -> c13:c14:c15 Lemmas: gt(gen_s:0'11_16(n15_16), gen_s:0'11_16(n15_16)) -> false, rt in Omega(0) GT(gen_s:0'11_16(n462_16), gen_s:0'11_16(n462_16)) -> gen_c10:c11:c1212_16(n462_16), rt in Omega(1 + n462_16) ge(gen_s:0'11_16(n1584_16), gen_s:0'11_16(n1584_16)) -> true, rt in Omega(0) GE(gen_s:0'11_16(n2042_16), gen_s:0'11_16(n2042_16)) -> gen_c13:c14:c1513_16(n2042_16), rt in Omega(1 + n2042_16) Generator Equations: gen_s:0'11_16(0) <=> 0' gen_s:0'11_16(+(x, 1)) <=> s(gen_s:0'11_16(x)) gen_c10:c11:c1212_16(0) <=> c10 gen_c10:c11:c1212_16(+(x, 1)) <=> c12(gen_c10:c11:c1212_16(x)) gen_c13:c14:c1513_16(0) <=> c13 gen_c13:c14:c1513_16(+(x, 1)) <=> c15(gen_c13:c14:c1513_16(x)) The following defined symbols remain to be analysed: minus, GCD, gcd They will be analysed ascendingly in the following order: minus < GCD minus < gcd