1140.10/291.55 WORST_CASE(Omega(n^1), O(n^3)) 1140.36/291.56 proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml 1140.36/291.56 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 1140.36/291.56 1140.36/291.56 1140.36/291.56 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^3). 1140.36/291.56 1140.36/291.56 (0) CpxTRS 1140.36/291.56 (1) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] 1140.36/291.56 (2) CpxWeightedTrs 1140.36/291.56 (3) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 1140.36/291.56 (4) CpxTypedWeightedTrs 1140.36/291.56 (5) CompletionProof [UPPER BOUND(ID), 8 ms] 1140.36/291.56 (6) CpxTypedWeightedCompleteTrs 1140.36/291.56 (7) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] 1140.36/291.56 (8) CpxRNTS 1140.36/291.56 (9) CompleteCoflocoProof [FINISHED, 1595 ms] 1140.36/291.56 (10) BOUNDS(1, n^3) 1140.36/291.56 (11) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 1140.36/291.56 (12) TRS for Loop Detection 1140.36/291.56 (13) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 1140.36/291.56 (14) BEST 1140.36/291.56 (15) proven lower bound 1140.36/291.56 (16) LowerBoundPropagationProof [FINISHED, 0 ms] 1140.36/291.56 (17) BOUNDS(n^1, INF) 1140.36/291.56 (18) TRS for Loop Detection 1140.36/291.56 1140.36/291.56 1140.36/291.56 ---------------------------------------- 1140.36/291.56 1140.36/291.56 (0) 1140.36/291.56 Obligation: 1140.36/291.56 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^3). 1140.36/291.56 1140.36/291.56 1140.36/291.56 The TRS R consists of the following rules: 1140.36/291.56 1140.36/291.56 minus(s(x), y) -> if(gt(s(x), y), x, y) 1140.36/291.56 if(true, x, y) -> s(minus(x, y)) 1140.36/291.56 if(false, x, y) -> 0 1140.36/291.56 gcd(x, y) -> if1(ge(x, y), x, y) 1140.36/291.56 if1(true, x, y) -> if2(gt(y, 0), x, y) 1140.36/291.56 if1(false, x, y) -> gcd(y, x) 1140.36/291.56 if2(true, x, y) -> gcd(minus(x, y), y) 1140.36/291.56 if2(false, x, y) -> x 1140.36/291.56 gt(0, y) -> false 1140.36/291.56 gt(s(x), 0) -> true 1140.36/291.56 gt(s(x), s(y)) -> gt(x, y) 1140.36/291.56 ge(x, 0) -> true 1140.36/291.56 ge(0, s(x)) -> false 1140.36/291.56 ge(s(x), s(y)) -> ge(x, y) 1140.36/291.56 1140.36/291.56 S is empty. 1140.36/291.56 Rewrite Strategy: INNERMOST 1140.36/291.56 ---------------------------------------- 1140.36/291.56 1140.36/291.56 (1) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) 1140.36/291.56 Transformed relative TRS to weighted TRS 1140.36/291.56 ---------------------------------------- 1140.36/291.56 1140.36/291.56 (2) 1140.36/291.56 Obligation: 1140.36/291.56 The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^3). 1140.36/291.56 1140.36/291.56 1140.36/291.56 The TRS R consists of the following rules: 1140.36/291.56 1140.36/291.56 minus(s(x), y) -> if(gt(s(x), y), x, y) [1] 1140.36/291.56 if(true, x, y) -> s(minus(x, y)) [1] 1140.36/291.56 if(false, x, y) -> 0 [1] 1140.36/291.56 gcd(x, y) -> if1(ge(x, y), x, y) [1] 1140.36/291.56 if1(true, x, y) -> if2(gt(y, 0), x, y) [1] 1140.36/291.56 if1(false, x, y) -> gcd(y, x) [1] 1140.36/291.56 if2(true, x, y) -> gcd(minus(x, y), y) [1] 1140.36/291.56 if2(false, x, y) -> x [1] 1140.36/291.56 gt(0, y) -> false [1] 1140.36/291.56 gt(s(x), 0) -> true [1] 1140.36/291.56 gt(s(x), s(y)) -> gt(x, y) [1] 1140.36/291.56 ge(x, 0) -> true [1] 1140.36/291.56 ge(0, s(x)) -> false [1] 1140.36/291.56 ge(s(x), s(y)) -> ge(x, y) [1] 1140.36/291.56 1140.36/291.56 Rewrite Strategy: INNERMOST 1140.36/291.56 ---------------------------------------- 1140.36/291.56 1140.36/291.56 (3) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 1140.36/291.56 Infered types. 1140.36/291.56 ---------------------------------------- 1140.36/291.56 1140.36/291.56 (4) 1140.36/291.56 Obligation: 1140.36/291.56 Runtime Complexity Weighted TRS with Types. 1140.36/291.56 The TRS R consists of the following rules: 1140.36/291.56 1140.36/291.56 minus(s(x), y) -> if(gt(s(x), y), x, y) [1] 1140.36/291.56 if(true, x, y) -> s(minus(x, y)) [1] 1140.36/291.56 if(false, x, y) -> 0 [1] 1140.36/291.56 gcd(x, y) -> if1(ge(x, y), x, y) [1] 1140.36/291.56 if1(true, x, y) -> if2(gt(y, 0), x, y) [1] 1140.36/291.56 if1(false, x, y) -> gcd(y, x) [1] 1140.36/291.56 if2(true, x, y) -> gcd(minus(x, y), y) [1] 1140.36/291.56 if2(false, x, y) -> x [1] 1140.36/291.56 gt(0, y) -> false [1] 1140.36/291.56 gt(s(x), 0) -> true [1] 1140.36/291.56 gt(s(x), s(y)) -> gt(x, y) [1] 1140.36/291.56 ge(x, 0) -> true [1] 1140.36/291.56 ge(0, s(x)) -> false [1] 1140.36/291.56 ge(s(x), s(y)) -> ge(x, y) [1] 1140.36/291.56 1140.36/291.56 The TRS has the following type information: 1140.36/291.56 minus :: s:0 -> s:0 -> s:0 1140.36/291.56 s :: s:0 -> s:0 1140.36/291.56 if :: true:false -> s:0 -> s:0 -> s:0 1140.36/291.56 gt :: s:0 -> s:0 -> true:false 1140.36/291.56 true :: true:false 1140.36/291.56 false :: true:false 1140.36/291.56 0 :: s:0 1140.36/291.56 gcd :: s:0 -> s:0 -> s:0 1140.36/291.56 if1 :: true:false -> s:0 -> s:0 -> s:0 1140.36/291.56 ge :: s:0 -> s:0 -> true:false 1140.36/291.56 if2 :: true:false -> s:0 -> s:0 -> s:0 1140.36/291.56 1140.36/291.56 Rewrite Strategy: INNERMOST 1140.36/291.56 ---------------------------------------- 1140.36/291.56 1140.36/291.56 (5) CompletionProof (UPPER BOUND(ID)) 1140.36/291.56 The TRS is a completely defined constructor system, as every type has a constant constructor and the following rules were added: 1140.36/291.56 1140.36/291.56 minus(v0, v1) -> null_minus [0] 1140.36/291.56 gt(v0, v1) -> null_gt [0] 1140.36/291.56 ge(v0, v1) -> null_ge [0] 1140.36/291.56 if(v0, v1, v2) -> null_if [0] 1140.36/291.56 if1(v0, v1, v2) -> null_if1 [0] 1140.36/291.56 if2(v0, v1, v2) -> null_if2 [0] 1140.36/291.56 1140.36/291.56 And the following fresh constants: null_minus, null_gt, null_ge, null_if, null_if1, null_if2 1140.36/291.56 1140.36/291.56 ---------------------------------------- 1140.36/291.56 1140.36/291.56 (6) 1140.36/291.56 Obligation: 1140.36/291.56 Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: 1140.36/291.56 1140.36/291.56 Runtime Complexity Weighted TRS with Types. 1140.36/291.56 The TRS R consists of the following rules: 1140.36/291.56 1140.36/291.56 minus(s(x), y) -> if(gt(s(x), y), x, y) [1] 1140.36/291.56 if(true, x, y) -> s(minus(x, y)) [1] 1140.36/291.56 if(false, x, y) -> 0 [1] 1140.36/291.56 gcd(x, y) -> if1(ge(x, y), x, y) [1] 1140.36/291.56 if1(true, x, y) -> if2(gt(y, 0), x, y) [1] 1140.36/291.56 if1(false, x, y) -> gcd(y, x) [1] 1140.36/291.56 if2(true, x, y) -> gcd(minus(x, y), y) [1] 1140.36/291.56 if2(false, x, y) -> x [1] 1140.36/291.56 gt(0, y) -> false [1] 1140.36/291.56 gt(s(x), 0) -> true [1] 1140.36/291.56 gt(s(x), s(y)) -> gt(x, y) [1] 1140.36/291.56 ge(x, 0) -> true [1] 1140.36/291.56 ge(0, s(x)) -> false [1] 1140.36/291.56 ge(s(x), s(y)) -> ge(x, y) [1] 1140.36/291.56 minus(v0, v1) -> null_minus [0] 1140.36/291.56 gt(v0, v1) -> null_gt [0] 1140.36/291.56 ge(v0, v1) -> null_ge [0] 1140.36/291.56 if(v0, v1, v2) -> null_if [0] 1140.36/291.56 if1(v0, v1, v2) -> null_if1 [0] 1140.36/291.56 if2(v0, v1, v2) -> null_if2 [0] 1140.36/291.56 1140.36/291.56 The TRS has the following type information: 1140.36/291.56 minus :: s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 1140.36/291.56 s :: s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 1140.36/291.56 if :: true:false:null_gt:null_ge -> s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 1140.36/291.56 gt :: s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 -> true:false:null_gt:null_ge 1140.36/291.56 true :: true:false:null_gt:null_ge 1140.36/291.56 false :: true:false:null_gt:null_ge 1140.36/291.56 0 :: s:0:null_minus:null_if:null_if1:null_if2 1140.36/291.56 gcd :: s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 1140.36/291.56 if1 :: true:false:null_gt:null_ge -> s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 1140.36/291.56 ge :: s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 -> true:false:null_gt:null_ge 1140.36/291.56 if2 :: true:false:null_gt:null_ge -> s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 -> s:0:null_minus:null_if:null_if1:null_if2 1140.36/291.56 null_minus :: s:0:null_minus:null_if:null_if1:null_if2 1140.36/291.56 null_gt :: true:false:null_gt:null_ge 1140.36/291.56 null_ge :: true:false:null_gt:null_ge 1140.36/291.56 null_if :: s:0:null_minus:null_if:null_if1:null_if2 1140.36/291.56 null_if1 :: s:0:null_minus:null_if:null_if1:null_if2 1140.36/291.56 null_if2 :: s:0:null_minus:null_if:null_if1:null_if2 1140.36/291.56 1140.36/291.56 Rewrite Strategy: INNERMOST 1140.36/291.56 ---------------------------------------- 1140.36/291.56 1140.36/291.56 (7) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) 1140.36/291.56 Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. 1140.36/291.56 The constant constructors are abstracted as follows: 1140.36/291.56 1140.36/291.56 true => 2 1140.36/291.56 false => 1 1140.36/291.56 0 => 0 1140.36/291.56 null_minus => 0 1140.36/291.56 null_gt => 0 1140.36/291.56 null_ge => 0 1140.36/291.56 null_if => 0 1140.36/291.56 null_if1 => 0 1140.36/291.56 null_if2 => 0 1140.36/291.56 1140.36/291.56 ---------------------------------------- 1140.36/291.56 1140.36/291.56 (8) 1140.36/291.56 Obligation: 1140.36/291.56 Complexity RNTS consisting of the following rules: 1140.36/291.56 1140.36/291.56 gcd(z, z') -{ 1 }-> if1(ge(x, y), x, y) :|: x >= 0, y >= 0, z = x, z' = y 1140.36/291.56 ge(z, z') -{ 1 }-> ge(x, y) :|: z' = 1 + y, x >= 0, y >= 0, z = 1 + x 1140.36/291.56 ge(z, z') -{ 1 }-> 2 :|: x >= 0, z = x, z' = 0 1140.36/291.56 ge(z, z') -{ 1 }-> 1 :|: z' = 1 + x, x >= 0, z = 0 1140.36/291.56 ge(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 1140.36/291.56 gt(z, z') -{ 1 }-> gt(x, y) :|: z' = 1 + y, x >= 0, y >= 0, z = 1 + x 1140.36/291.56 gt(z, z') -{ 1 }-> 2 :|: x >= 0, z = 1 + x, z' = 0 1140.36/291.56 gt(z, z') -{ 1 }-> 1 :|: y >= 0, z = 0, z' = y 1140.36/291.56 gt(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 1140.36/291.56 if(z, z', z'') -{ 1 }-> 0 :|: z' = x, z'' = y, z = 1, x >= 0, y >= 0 1140.36/291.56 if(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 1140.36/291.56 if(z, z', z'') -{ 1 }-> 1 + minus(x, y) :|: z = 2, z' = x, z'' = y, x >= 0, y >= 0 1140.36/291.56 if1(z, z', z'') -{ 1 }-> if2(gt(y, 0), x, y) :|: z = 2, z' = x, z'' = y, x >= 0, y >= 0 1140.36/291.56 if1(z, z', z'') -{ 1 }-> gcd(y, x) :|: z' = x, z'' = y, z = 1, x >= 0, y >= 0 1140.36/291.56 if1(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 1140.36/291.56 if2(z, z', z'') -{ 1 }-> x :|: z' = x, z'' = y, z = 1, x >= 0, y >= 0 1140.36/291.56 if2(z, z', z'') -{ 1 }-> gcd(minus(x, y), y) :|: z = 2, z' = x, z'' = y, x >= 0, y >= 0 1140.36/291.56 if2(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 1140.36/291.56 minus(z, z') -{ 1 }-> if(gt(1 + x, y), x, y) :|: x >= 0, y >= 0, z = 1 + x, z' = y 1140.36/291.56 minus(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 1140.36/291.56 1140.36/291.56 Only complete derivations are relevant for the runtime complexity. 1140.36/291.56 1140.36/291.56 ---------------------------------------- 1140.36/291.56 1140.36/291.56 (9) CompleteCoflocoProof (FINISHED) 1140.36/291.56 Transformed the RNTS (where only complete derivations are relevant) into cost relations for CoFloCo: 1140.36/291.56 1140.36/291.56 eq(start(V1, V, V5),0,[minus(V1, V, Out)],[V1 >= 0,V >= 0]). 1140.36/291.56 eq(start(V1, V, V5),0,[if(V1, V, V5, Out)],[V1 >= 0,V >= 0,V5 >= 0]). 1140.36/291.56 eq(start(V1, V, V5),0,[gcd(V1, V, Out)],[V1 >= 0,V >= 0]). 1140.36/291.56 eq(start(V1, V, V5),0,[if1(V1, V, V5, Out)],[V1 >= 0,V >= 0,V5 >= 0]). 1140.36/291.56 eq(start(V1, V, V5),0,[if2(V1, V, V5, Out)],[V1 >= 0,V >= 0,V5 >= 0]). 1140.36/291.56 eq(start(V1, V, V5),0,[gt(V1, V, Out)],[V1 >= 0,V >= 0]). 1140.36/291.56 eq(start(V1, V, V5),0,[ge(V1, V, Out)],[V1 >= 0,V >= 0]). 1140.36/291.56 eq(minus(V1, V, Out),1,[gt(1 + V3, V2, Ret0),if(Ret0, V3, V2, Ret)],[Out = Ret,V3 >= 0,V2 >= 0,V1 = 1 + V3,V = V2]). 1140.36/291.56 eq(if(V1, V, V5, Out),1,[minus(V4, V6, Ret1)],[Out = 1 + Ret1,V1 = 2,V = V4,V5 = V6,V4 >= 0,V6 >= 0]). 1140.36/291.56 eq(if(V1, V, V5, Out),1,[],[Out = 0,V = V8,V5 = V7,V1 = 1,V8 >= 0,V7 >= 0]). 1140.36/291.56 eq(gcd(V1, V, Out),1,[ge(V9, V10, Ret01),if1(Ret01, V9, V10, Ret2)],[Out = Ret2,V9 >= 0,V10 >= 0,V1 = V9,V = V10]). 1140.36/291.56 eq(if1(V1, V, V5, Out),1,[gt(V11, 0, Ret02),if2(Ret02, V12, V11, Ret3)],[Out = Ret3,V1 = 2,V = V12,V5 = V11,V12 >= 0,V11 >= 0]). 1140.36/291.56 eq(if1(V1, V, V5, Out),1,[gcd(V13, V14, Ret4)],[Out = Ret4,V = V14,V5 = V13,V1 = 1,V14 >= 0,V13 >= 0]). 1140.36/291.56 eq(if2(V1, V, V5, Out),1,[minus(V16, V15, Ret03),gcd(Ret03, V15, Ret5)],[Out = Ret5,V1 = 2,V = V16,V5 = V15,V16 >= 0,V15 >= 0]). 1140.36/291.56 eq(if2(V1, V, V5, Out),1,[],[Out = V17,V = V17,V5 = V18,V1 = 1,V17 >= 0,V18 >= 0]). 1140.36/291.56 eq(gt(V1, V, Out),1,[],[Out = 1,V19 >= 0,V1 = 0,V = V19]). 1140.36/291.56 eq(gt(V1, V, Out),1,[],[Out = 2,V20 >= 0,V1 = 1 + V20,V = 0]). 1140.36/291.56 eq(gt(V1, V, Out),1,[gt(V21, V22, Ret6)],[Out = Ret6,V = 1 + V22,V21 >= 0,V22 >= 0,V1 = 1 + V21]). 1140.36/291.56 eq(ge(V1, V, Out),1,[],[Out = 2,V23 >= 0,V1 = V23,V = 0]). 1140.36/291.56 eq(ge(V1, V, Out),1,[],[Out = 1,V = 1 + V24,V24 >= 0,V1 = 0]). 1140.36/291.56 eq(ge(V1, V, Out),1,[ge(V25, V26, Ret7)],[Out = Ret7,V = 1 + V26,V25 >= 0,V26 >= 0,V1 = 1 + V25]). 1140.36/291.56 eq(minus(V1, V, Out),0,[],[Out = 0,V28 >= 0,V27 >= 0,V1 = V28,V = V27]). 1140.36/291.56 eq(gt(V1, V, Out),0,[],[Out = 0,V30 >= 0,V29 >= 0,V1 = V30,V = V29]). 1140.36/291.56 eq(ge(V1, V, Out),0,[],[Out = 0,V32 >= 0,V31 >= 0,V1 = V32,V = V31]). 1140.36/291.56 eq(if(V1, V, V5, Out),0,[],[Out = 0,V33 >= 0,V5 = V35,V34 >= 0,V1 = V33,V = V34,V35 >= 0]). 1140.36/291.56 eq(if1(V1, V, V5, Out),0,[],[Out = 0,V37 >= 0,V5 = V38,V36 >= 0,V1 = V37,V = V36,V38 >= 0]). 1140.36/291.56 eq(if2(V1, V, V5, Out),0,[],[Out = 0,V40 >= 0,V5 = V41,V39 >= 0,V1 = V40,V = V39,V41 >= 0]). 1140.36/291.56 input_output_vars(minus(V1,V,Out),[V1,V],[Out]). 1140.36/291.56 input_output_vars(if(V1,V,V5,Out),[V1,V,V5],[Out]). 1140.36/291.56 input_output_vars(gcd(V1,V,Out),[V1,V],[Out]). 1140.36/291.56 input_output_vars(if1(V1,V,V5,Out),[V1,V,V5],[Out]). 1140.36/291.56 input_output_vars(if2(V1,V,V5,Out),[V1,V,V5],[Out]). 1140.36/291.56 input_output_vars(gt(V1,V,Out),[V1,V],[Out]). 1140.36/291.56 input_output_vars(ge(V1,V,Out),[V1,V],[Out]). 1140.36/291.56 1140.36/291.56 1140.36/291.56 CoFloCo proof output: 1140.36/291.56 Preprocessing Cost Relations 1140.36/291.56 ===================================== 1140.36/291.56 1140.36/291.56 #### Computed strongly connected components 1140.36/291.56 0. recursive : [ge/3] 1140.36/291.56 1. recursive : [gt/3] 1140.36/291.56 2. recursive : [if/4,minus/3] 1140.36/291.56 3. recursive : [gcd/3,if1/4,if2/4] 1140.36/291.56 4. non_recursive : [start/3] 1140.36/291.56 1140.36/291.56 #### Obtained direct recursion through partial evaluation 1140.36/291.56 0. SCC is partially evaluated into ge/3 1140.36/291.56 1. SCC is partially evaluated into gt/3 1140.36/291.56 2. SCC is partially evaluated into minus/3 1140.36/291.56 3. SCC is partially evaluated into gcd/3 1140.36/291.56 4. SCC is partially evaluated into start/3 1140.36/291.56 1140.36/291.56 Control-Flow Refinement of Cost Relations 1140.36/291.56 ===================================== 1140.36/291.56 1140.36/291.56 ### Specialization of cost equations ge/3 1140.36/291.56 * CE 29 is refined into CE [30] 1140.36/291.56 * CE 26 is refined into CE [31] 1140.36/291.56 * CE 27 is refined into CE [32] 1140.36/291.56 * CE 28 is refined into CE [33] 1140.36/291.56 1140.36/291.56 1140.36/291.56 ### Cost equations --> "Loop" of ge/3 1140.36/291.56 * CEs [33] --> Loop 17 1140.36/291.56 * CEs [30] --> Loop 18 1140.36/291.56 * CEs [31] --> Loop 19 1140.36/291.56 * CEs [32] --> Loop 20 1140.36/291.56 1140.36/291.56 ### Ranking functions of CR ge(V1,V,Out) 1140.36/291.56 * RF of phase [17]: [V,V1] 1140.36/291.56 1140.36/291.56 #### Partial ranking functions of CR ge(V1,V,Out) 1140.36/291.56 * Partial RF of phase [17]: 1140.36/291.56 - RF of loop [17:1]: 1140.36/291.56 V 1140.36/291.56 V1 1140.36/291.56 1140.36/291.56 1140.36/291.56 ### Specialization of cost equations gt/3 1140.36/291.56 * CE 16 is refined into CE [34] 1140.36/291.56 * CE 14 is refined into CE [35] 1140.36/291.56 * CE 13 is refined into CE [36] 1140.36/291.56 * CE 15 is refined into CE [37] 1140.36/291.56 1140.36/291.56 1140.36/291.56 ### Cost equations --> "Loop" of gt/3 1140.36/291.56 * CEs [37] --> Loop 21 1140.36/291.56 * CEs [34] --> Loop 22 1140.36/291.56 * CEs [35] --> Loop 23 1140.36/291.56 * CEs [36] --> Loop 24 1140.36/291.56 1140.36/291.56 ### Ranking functions of CR gt(V1,V,Out) 1140.36/291.56 * RF of phase [21]: [V,V1] 1140.36/291.56 1140.36/291.56 #### Partial ranking functions of CR gt(V1,V,Out) 1140.36/291.56 * Partial RF of phase [21]: 1140.36/291.56 - RF of loop [21:1]: 1140.36/291.56 V 1140.36/291.56 V1 1140.36/291.56 1140.36/291.56 1140.36/291.56 ### Specialization of cost equations minus/3 1140.36/291.56 * CE 17 is refined into CE [38,39,40,41] 1140.36/291.56 * CE 18 is refined into CE [42] 1140.36/291.56 * CE 20 is refined into CE [43] 1140.36/291.56 * CE 19 is refined into CE [44,45] 1140.36/291.56 1140.36/291.56 1140.36/291.56 ### Cost equations --> "Loop" of minus/3 1140.36/291.56 * CEs [45] --> Loop 25 1140.36/291.56 * CEs [44] --> Loop 26 1140.36/291.56 * CEs [38,39,40,41,42,43] --> Loop 27 1140.36/291.56 1140.36/291.56 ### Ranking functions of CR minus(V1,V,Out) 1140.36/291.56 * RF of phase [25]: [V1-1,V1-V] 1140.36/291.56 * RF of phase [26]: [V1] 1140.36/291.56 1140.36/291.56 #### Partial ranking functions of CR minus(V1,V,Out) 1140.36/291.56 * Partial RF of phase [25]: 1140.36/291.56 - RF of loop [25:1]: 1140.36/291.56 V1-1 1140.36/291.56 V1-V 1140.36/291.56 * Partial RF of phase [26]: 1140.36/291.56 - RF of loop [26:1]: 1140.36/291.56 V1 1140.36/291.56 1140.36/291.56 1140.36/291.56 ### Specialization of cost equations gcd/3 1140.36/291.56 * CE 23 is refined into CE [46,47] 1140.36/291.56 * CE 25 is refined into CE [48,49] 1140.36/291.56 * CE 22 is refined into CE [50] 1140.36/291.56 * CE 21 is refined into CE [51,52,53,54] 1140.36/291.56 * CE 24 is refined into CE [55,56,57,58,59] 1140.36/291.56 1140.36/291.56 1140.36/291.56 ### Cost equations --> "Loop" of gcd/3 1140.36/291.56 * CEs [50] --> Loop 28 1140.36/291.56 * CEs [51,52,56] --> Loop 29 1140.36/291.56 * CEs [53,54,55,57,58,59] --> Loop 30 1140.36/291.56 * CEs [47] --> Loop 31 1140.36/291.56 * CEs [49] --> Loop 32 1140.36/291.56 * CEs [46] --> Loop 33 1140.36/291.56 * CEs [48] --> Loop 34 1140.36/291.56 1140.36/291.56 ### Ranking functions of CR gcd(V1,V,Out) 1140.36/291.56 * RF of phase [31,32]: [V1+2*V-3] 1140.36/291.56 1140.36/291.56 #### Partial ranking functions of CR gcd(V1,V,Out) 1140.36/291.56 * Partial RF of phase [31,32]: 1140.36/291.56 - RF of loop [31:1]: 1140.36/291.56 V1-1 depends on loops [32:1] 1140.36/291.56 V1-V depends on loops [32:1] 1140.36/291.56 - RF of loop [32:1]: 1140.36/291.56 V-1 1140.36/291.56 -V1/2+V/2 depends on loops [31:1] 1140.36/291.56 1140.36/291.56 1140.36/291.56 ### Specialization of cost equations start/3 1140.36/291.56 * CE 1 is refined into CE [60,61,62] 1140.36/291.56 * CE 3 is refined into CE [63] 1140.36/291.56 * CE 5 is refined into CE [64,65,66,67,68] 1140.36/291.56 * CE 6 is refined into CE [69,70,71,72,73,74,75,76,77,78] 1140.36/291.56 * CE 8 is refined into CE [79,80,81] 1140.36/291.56 * CE 2 is refined into CE [82] 1140.36/291.56 * CE 4 is refined into CE [83] 1140.36/291.56 * CE 7 is refined into CE [84,85,86,87,88,89] 1140.36/291.56 * CE 9 is refined into CE [90,91,92] 1140.36/291.56 * CE 10 is refined into CE [93,94,95,96,97,98] 1140.36/291.56 * CE 11 is refined into CE [99,100,101,102,103] 1140.36/291.56 * CE 12 is refined into CE [104,105,106,107,108] 1140.36/291.56 1140.36/291.56 1140.36/291.56 ### Cost equations --> "Loop" of start/3 1140.36/291.56 * CEs [90,95,96,100,105] --> Loop 35 1140.36/291.56 * CEs [60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81] --> Loop 36 1140.36/291.56 * CEs [85] --> Loop 37 1140.36/291.56 * CEs [83,84,86,87,88,89] --> Loop 38 1140.36/291.56 * CEs [82,91,92,93,94,97,98,99,101,102,103,104,106,107,108] --> Loop 39 1140.36/291.56 1140.36/291.56 ### Ranking functions of CR start(V1,V,V5) 1140.36/291.56 1140.36/291.56 #### Partial ranking functions of CR start(V1,V,V5) 1140.36/291.56 1140.36/291.56 1140.36/291.56 Computing Bounds 1140.36/291.56 ===================================== 1140.36/291.56 1140.36/291.56 #### Cost of chains of ge(V1,V,Out): 1140.36/291.56 * Chain [[17],20]: 1*it(17)+1 1140.36/291.56 Such that:it(17) =< V1 1140.36/291.56 1140.36/291.56 with precondition: [Out=1,V1>=1,V>=V1+1] 1140.36/291.56 1140.36/291.56 * Chain [[17],19]: 1*it(17)+1 1140.36/291.56 Such that:it(17) =< V 1140.36/291.56 1140.36/291.56 with precondition: [Out=2,V>=1,V1>=V] 1140.36/291.56 1140.36/291.56 * Chain [[17],18]: 1*it(17)+0 1140.36/291.56 Such that:it(17) =< V 1140.36/291.56 1140.36/291.56 with precondition: [Out=0,V1>=1,V>=1] 1140.36/291.56 1140.36/291.56 * Chain [20]: 1 1140.36/291.56 with precondition: [V1=0,Out=1,V>=1] 1140.36/291.56 1140.36/291.56 * Chain [19]: 1 1140.36/291.56 with precondition: [V=0,Out=2,V1>=0] 1140.36/291.56 1140.36/291.56 * Chain [18]: 0 1140.36/291.56 with precondition: [Out=0,V1>=0,V>=0] 1140.36/291.56 1140.36/291.56 1140.36/291.56 #### Cost of chains of gt(V1,V,Out): 1140.36/291.56 * Chain [[21],24]: 1*it(21)+1 1140.36/291.56 Such that:it(21) =< V1 1140.36/291.56 1140.36/291.56 with precondition: [Out=1,V1>=1,V>=V1] 1140.36/291.56 1140.36/291.56 * Chain [[21],23]: 1*it(21)+1 1140.36/291.56 Such that:it(21) =< V 1140.36/291.56 1140.36/291.56 with precondition: [Out=2,V>=1,V1>=V+1] 1140.36/291.56 1140.36/291.56 * Chain [[21],22]: 1*it(21)+0 1140.36/291.56 Such that:it(21) =< V 1140.36/291.56 1140.36/291.56 with precondition: [Out=0,V1>=1,V>=1] 1140.36/291.56 1140.36/291.56 * Chain [24]: 1 1140.36/291.56 with precondition: [V1=0,Out=1,V>=0] 1140.36/291.56 1140.36/291.56 * Chain [23]: 1 1140.36/291.56 with precondition: [V=0,Out=2,V1>=1] 1140.36/291.56 1140.36/291.56 * Chain [22]: 0 1140.36/291.56 with precondition: [Out=0,V1>=0,V>=0] 1140.36/291.56 1140.36/291.56 1140.36/291.56 #### Cost of chains of minus(V1,V,Out): 1140.36/291.56 * Chain [[26],27]: 3*it(26)+2*s(4)+3 1140.36/291.56 Such that:aux(1) =< V1-Out 1140.36/291.56 it(26) =< Out 1140.36/291.56 s(4) =< aux(1) 1140.36/291.56 1140.36/291.56 with precondition: [V=0,Out>=1,V1>=Out] 1140.36/291.56 1140.36/291.56 * Chain [[25],27]: 3*it(25)+2*s(3)+2*s(4)+1*s(9)+3 1140.36/291.56 Such that:aux(1) =< V1-Out 1140.36/291.56 it(25) =< Out 1140.36/291.56 aux(4) =< V 1140.36/291.56 s(4) =< aux(1) 1140.36/291.56 s(3) =< aux(4) 1140.36/291.56 s(9) =< it(25)*aux(4) 1140.36/291.56 1140.36/291.56 with precondition: [V>=1,Out>=1,V1>=Out+V] 1140.36/291.56 1140.36/291.56 * Chain [27]: 2*s(3)+2*s(4)+3 1140.36/291.56 Such that:aux(1) =< V1 1140.36/291.56 aux(2) =< V 1140.36/291.56 s(4) =< aux(1) 1140.36/291.56 s(3) =< aux(2) 1140.36/291.56 1140.36/291.56 with precondition: [Out=0,V1>=0,V>=0] 1140.36/291.56 1140.36/291.56 1140.36/291.56 #### Cost of chains of gcd(V1,V,Out): 1140.36/291.56 * Chain [[31,32],33,34,30]: 8*it(31)+3*it(32)+6*s(14)+3*s(36)+3*s(37)+2*s(38)+1*s(39)+1*s(42)+15 1140.36/291.56 Such that:aux(36) =< -V1+V 1140.36/291.56 aux(12) =< V1-V 1140.36/291.56 aux(25) =< -V1/2+V/2 1140.36/291.56 aux(42) =< V1/2+V/2 1140.36/291.56 aux(45) =< V1 1140.36/291.56 aux(46) =< V1+V 1140.36/291.56 aux(47) =< V1+2*V 1140.36/291.56 aux(48) =< V 1140.36/291.56 it(32) =< aux(48) 1140.36/291.56 s(14) =< aux(47) 1140.36/291.56 it(31) =< aux(47) 1140.36/291.56 it(32) =< aux(47) 1140.36/291.56 aux(24) =< aux(42) 1140.36/291.56 aux(24) =< aux(46) 1140.36/291.56 aux(23) =< aux(48) 1140.36/291.56 aux(26) =< aux(46)+1 1140.36/291.56 aux(27) =< aux(24)*2 1140.36/291.56 it(32) =< aux(24)+aux(25) 1140.36/291.56 aux(9) =< aux(27)+aux(36) 1140.36/291.56 aux(9) =< it(32)*aux(23) 1140.36/291.56 aux(11) =< aux(27)+aux(36) 1140.36/291.56 aux(11) =< it(32)*aux(48) 1140.36/291.56 s(42) =< it(32)*aux(26) 1140.36/291.56 s(41) =< aux(9)+aux(45) 1140.36/291.56 it(31) =< aux(11)+aux(12) 1140.36/291.56 it(31) =< aux(9)+aux(45) 1140.36/291.56 s(40) =< aux(9)+aux(45) 1140.36/291.56 s(41) =< it(31)*aux(23) 1140.36/291.56 s(37) =< it(31)*aux(46) 1140.36/291.56 s(40) =< it(31)*aux(46) 1140.36/291.56 s(36) =< s(41) 1140.36/291.56 s(38) =< s(40) 1140.36/291.56 s(39) =< s(37)*aux(48) 1140.36/291.56 1140.36/291.56 with precondition: [Out=0,V1>=1,V>=1,V+V1>=3] 1140.36/291.56 1140.36/291.56 * Chain [[31,32],33,34,29]: 8*it(31)+3*it(32)+5*s(16)+3*s(36)+3*s(37)+2*s(38)+1*s(39)+1*s(42)+15 1140.36/291.56 Such that:aux(36) =< -V1+V 1140.36/291.56 aux(12) =< V1-V 1140.36/291.56 aux(25) =< -V1/2+V/2 1140.36/291.56 aux(42) =< V1/2+V/2 1140.36/291.56 aux(49) =< V1 1140.36/291.56 aux(50) =< V1+V 1140.36/291.56 aux(51) =< V1+2*V 1140.36/291.56 aux(52) =< V 1140.36/291.56 it(32) =< aux(52) 1140.36/291.56 s(16) =< aux(51) 1140.36/291.56 it(31) =< aux(51) 1140.36/291.56 it(32) =< aux(51) 1140.36/291.56 aux(24) =< aux(42) 1140.36/291.56 aux(24) =< aux(50) 1140.36/291.56 aux(23) =< aux(52) 1140.36/291.56 aux(26) =< aux(50)+1 1140.36/291.56 aux(27) =< aux(24)*2 1140.36/291.56 it(32) =< aux(24)+aux(25) 1140.36/291.56 aux(9) =< aux(27)+aux(36) 1140.36/291.56 aux(9) =< it(32)*aux(23) 1140.36/291.56 aux(11) =< aux(27)+aux(36) 1140.36/291.56 aux(11) =< it(32)*aux(52) 1140.36/291.56 s(42) =< it(32)*aux(26) 1140.36/291.56 s(41) =< aux(9)+aux(49) 1140.36/291.56 it(31) =< aux(11)+aux(12) 1140.36/291.56 it(31) =< aux(9)+aux(49) 1140.36/291.56 s(40) =< aux(9)+aux(49) 1140.36/291.56 s(41) =< it(31)*aux(23) 1140.36/291.56 s(37) =< it(31)*aux(50) 1140.36/291.56 s(40) =< it(31)*aux(50) 1140.36/291.56 s(36) =< s(41) 1140.36/291.56 s(38) =< s(40) 1140.36/291.56 s(39) =< s(37)*aux(52) 1140.36/291.56 1140.36/291.56 with precondition: [Out=0,V1>=1,V>=1,V+V1>=3] 1140.36/291.56 1140.36/291.56 * Chain [[31,32],33,34,28]: 8*it(31)+3*it(32)+3*s(16)+2*s(19)+3*s(36)+3*s(37)+2*s(38)+1*s(39)+1*s(42)+16 1140.36/291.56 Such that:aux(36) =< -V1+V 1140.36/291.56 aux(37) =< V1 1140.36/291.56 aux(12) =< V1-V 1140.36/291.56 aux(38) =< V1+V 1140.36/291.56 aux(39) =< V1+2*V 1140.36/291.56 aux(40) =< V1+2*V-2*Out 1140.36/291.56 aux(41) =< V1-Out 1140.36/291.56 aux(25) =< -V1/2+V/2 1140.36/291.56 aux(42) =< V1/2+V/2 1140.36/291.56 aux(44) =< V 1140.36/291.56 it(32) =< V-Out 1140.36/291.56 aux(6) =< Out 1140.36/291.56 aux(53) =< V1+V-Out 1140.36/291.56 s(16) =< aux(6) 1140.36/291.56 s(19) =< aux(53) 1140.36/291.56 it(31) =< aux(39) 1140.36/291.56 it(32) =< aux(39) 1140.36/291.56 it(31) =< aux(40) 1140.36/291.56 it(32) =< aux(40) 1140.36/291.56 aux(24) =< aux(42) 1140.36/291.56 aux(24) =< aux(53) 1140.36/291.56 it(32) =< aux(44) 1140.36/291.56 aux(23) =< aux(44) 1140.36/291.56 aux(26) =< aux(38)+1 1140.36/291.56 aux(27) =< aux(24)*2 1140.36/291.56 it(32) =< aux(24)+aux(25) 1140.36/291.56 aux(9) =< aux(27)+aux(36) 1140.36/291.56 aux(9) =< it(32)*aux(23) 1140.36/291.56 aux(11) =< aux(27)+aux(36) 1140.36/291.56 aux(11) =< it(32)*aux(44) 1140.36/291.56 s(42) =< it(32)*aux(26) 1140.36/291.56 s(41) =< aux(9)+aux(37) 1140.36/291.56 it(31) =< aux(11)+aux(12) 1140.36/291.56 it(31) =< aux(9)+aux(37) 1140.36/291.56 s(41) =< aux(9)+aux(41) 1140.36/291.56 s(40) =< aux(9)+aux(41) 1140.36/291.56 s(40) =< aux(9)+aux(37) 1140.36/291.56 it(31) =< aux(9)+aux(41) 1140.36/291.56 s(41) =< it(31)*aux(23) 1140.36/291.56 s(37) =< it(31)*aux(38) 1140.36/291.56 s(40) =< it(31)*aux(38) 1140.36/291.56 s(36) =< s(41) 1140.36/291.56 s(38) =< s(40) 1140.36/291.56 s(39) =< s(37)*aux(44) 1140.36/291.56 1140.36/291.56 with precondition: [Out>=1,V1>=Out,V>=Out,V+V1>=2*Out+1] 1140.36/291.56 1140.36/291.56 * Chain [[31,32],33,30]: 8*it(31)+3*it(32)+9*s(10)+3*s(36)+3*s(37)+2*s(38)+1*s(39)+1*s(42)+12 1140.36/291.56 Such that:aux(36) =< -V1+V 1140.36/291.56 aux(12) =< V1-V 1140.36/291.56 aux(25) =< -V1/2+V/2 1140.36/291.56 aux(42) =< V1/2+V/2 1140.36/291.56 aux(55) =< V1 1140.36/291.56 aux(56) =< V1+V 1140.36/291.56 aux(57) =< V1+2*V 1140.36/291.56 aux(58) =< V 1140.36/291.56 it(32) =< aux(58) 1140.36/291.56 s(10) =< aux(56) 1140.36/291.56 it(31) =< aux(57) 1140.36/291.56 it(32) =< aux(57) 1140.36/291.56 aux(24) =< aux(42) 1140.36/291.56 aux(24) =< aux(56) 1140.36/291.56 aux(23) =< aux(58) 1140.36/291.56 aux(26) =< aux(56)+1 1140.36/291.56 aux(27) =< aux(24)*2 1140.36/291.56 it(32) =< aux(24)+aux(25) 1140.36/291.56 aux(9) =< aux(27)+aux(36) 1140.36/291.56 aux(9) =< it(32)*aux(23) 1140.36/291.56 aux(11) =< aux(27)+aux(36) 1140.36/291.56 aux(11) =< it(32)*aux(58) 1140.36/291.56 s(42) =< it(32)*aux(26) 1140.36/291.56 s(41) =< aux(9)+aux(55) 1140.36/291.56 it(31) =< aux(11)+aux(12) 1140.36/291.56 it(31) =< aux(9)+aux(55) 1140.36/291.56 s(40) =< aux(9)+aux(55) 1140.36/291.56 s(41) =< it(31)*aux(23) 1140.36/291.56 s(37) =< it(31)*aux(56) 1140.36/291.56 s(40) =< it(31)*aux(56) 1140.36/291.56 s(36) =< s(41) 1140.36/291.56 s(38) =< s(40) 1140.36/291.56 s(39) =< s(37)*aux(58) 1140.36/291.56 1140.36/291.56 with precondition: [Out=0,V1>=1,V>=1,V+V1>=3] 1140.36/291.56 1140.36/291.56 * Chain [[31,32],30]: 8*it(31)+3*it(32)+5*s(10)+3*s(36)+3*s(37)+2*s(38)+1*s(39)+1*s(42)+4 1140.36/291.56 Such that:aux(36) =< -V1+V 1140.36/291.56 aux(12) =< V1-V 1140.36/291.56 aux(25) =< -V1/2+V/2 1140.36/291.56 aux(42) =< V1/2+V/2 1140.36/291.56 aux(59) =< V1 1140.36/291.56 aux(60) =< V1+V 1140.36/291.56 aux(61) =< V1+2*V 1140.36/291.56 aux(62) =< V 1140.36/291.56 s(10) =< aux(60) 1140.36/291.56 it(32) =< aux(62) 1140.36/291.56 it(31) =< aux(61) 1140.36/291.56 it(32) =< aux(61) 1140.36/291.56 aux(24) =< aux(42) 1140.36/291.56 aux(24) =< aux(60) 1140.36/291.56 aux(23) =< aux(62) 1140.36/291.56 aux(26) =< aux(60)+1 1140.36/291.56 aux(27) =< aux(24)*2 1140.36/291.56 it(32) =< aux(24)+aux(25) 1140.36/291.56 aux(9) =< aux(27)+aux(36) 1140.36/291.56 aux(9) =< it(32)*aux(23) 1140.36/291.56 aux(11) =< aux(27)+aux(36) 1140.36/291.56 aux(11) =< it(32)*aux(62) 1140.36/291.56 s(42) =< it(32)*aux(26) 1140.36/291.56 s(41) =< aux(9)+aux(59) 1140.36/291.56 it(31) =< aux(11)+aux(12) 1140.36/291.56 it(31) =< aux(9)+aux(59) 1140.36/291.56 s(40) =< aux(9)+aux(59) 1140.36/291.56 s(41) =< it(31)*aux(23) 1140.36/291.56 s(37) =< it(31)*aux(60) 1140.36/291.56 s(40) =< it(31)*aux(60) 1140.36/291.56 s(36) =< s(41) 1140.36/291.56 s(38) =< s(40) 1140.36/291.56 s(39) =< s(37)*aux(62) 1140.36/291.56 1140.36/291.56 with precondition: [Out=0,V1>=1,V>=1,V+V1>=3] 1140.36/291.56 1140.36/291.56 * Chain [34,30]: 1*s(14)+7 1140.36/291.56 Such that:s(14) =< V 1140.36/291.56 1140.36/291.56 with precondition: [V1=0,Out=0,V>=1] 1140.36/291.56 1140.36/291.56 * Chain [34,29]: 7 1140.36/291.56 with precondition: [V1=0,Out=0,V>=1] 1140.36/291.56 1140.36/291.56 * Chain [34,28]: 8 1140.36/291.56 with precondition: [V1=0,V=Out,V>=1] 1140.36/291.56 1140.36/291.56 * Chain [33,34,30]: 4*s(14)+2*s(19)+15 1140.36/291.56 Such that:s(17) =< V1 1140.36/291.56 aux(7) =< V 1140.36/291.56 s(14) =< aux(7) 1140.36/291.56 s(19) =< s(17) 1140.36/291.56 1140.36/291.56 with precondition: [Out=0,V>=1,V1>=V] 1140.36/291.56 1140.36/291.56 * Chain [33,34,29]: 3*s(16)+2*s(19)+15 1140.36/291.56 Such that:s(17) =< V1 1140.36/291.56 aux(6) =< V 1140.36/291.56 s(16) =< aux(6) 1140.36/291.56 s(19) =< s(17) 1140.36/291.56 1140.36/291.56 with precondition: [Out=0,V>=1,V1>=V] 1140.36/291.56 1140.36/291.56 * Chain [33,34,28]: 3*s(16)+2*s(19)+16 1140.36/291.56 Such that:s(17) =< V1 1140.36/291.56 aux(6) =< Out 1140.36/291.56 s(16) =< aux(6) 1140.36/291.56 s(19) =< s(17) 1140.36/291.56 1140.36/291.56 with precondition: [V=Out,V>=1,V1>=V] 1140.36/291.56 1140.36/291.56 * Chain [33,30]: 7*s(10)+2*s(19)+12 1140.36/291.56 Such that:s(17) =< V1 1140.36/291.56 aux(54) =< V 1140.36/291.56 s(10) =< aux(54) 1140.36/291.56 s(19) =< s(17) 1140.36/291.56 1140.36/291.56 with precondition: [Out=0,V>=1,V1>=V] 1140.36/291.56 1140.36/291.56 * Chain [30]: 4*s(10)+1*s(14)+4 1140.36/291.56 Such that:s(14) =< V1 1140.36/291.56 aux(5) =< V 1140.36/291.56 s(10) =< aux(5) 1140.36/291.56 1140.36/291.56 with precondition: [Out=0,V1>=0,V>=0] 1140.36/291.56 1140.36/291.56 * Chain [29]: 4 1140.36/291.56 with precondition: [V=0,Out=0,V1>=0] 1140.36/291.56 1140.36/291.56 * Chain [28]: 5 1140.36/291.56 with precondition: [V=0,V1=Out,V1>=0] 1140.36/291.56 1140.36/291.56 1140.36/291.56 #### Cost of chains of start(V1,V,V5): 1140.36/291.56 * Chain [39]: 18*s(158)+30*s(159)+1*s(165)+19*s(176)+15*s(177)+40*s(178)+5*s(185)+15*s(188)+15*s(189)+10*s(190)+5*s(191)+11*s(192)+16 1140.36/291.56 Such that:aux(76) =< -V1+V 1140.36/291.56 aux(77) =< V1 1140.36/291.56 aux(78) =< V1-V 1140.36/291.56 aux(79) =< V1+V 1140.36/291.56 aux(80) =< V1+2*V 1140.36/291.56 aux(81) =< -V1/2+V/2 1140.36/291.56 aux(82) =< V1/2+V/2 1140.36/291.56 aux(83) =< V 1140.36/291.56 s(158) =< aux(77) 1140.36/291.56 s(159) =< aux(83) 1140.36/291.56 s(176) =< aux(79) 1140.36/291.56 s(177) =< aux(83) 1140.36/291.56 s(178) =< aux(80) 1140.36/291.56 s(177) =< aux(80) 1140.36/291.56 s(179) =< aux(82) 1140.36/291.56 s(179) =< aux(79) 1140.36/291.56 s(180) =< aux(83) 1140.36/291.56 s(181) =< aux(79)+1 1140.36/291.56 s(182) =< s(179)*2 1140.36/291.56 s(177) =< s(179)+aux(81) 1140.36/291.56 s(183) =< s(182)+aux(76) 1140.36/291.56 s(183) =< s(177)*s(180) 1140.36/291.56 s(184) =< s(182)+aux(76) 1140.36/291.56 s(184) =< s(177)*aux(83) 1140.36/291.56 s(185) =< s(177)*s(181) 1140.36/291.56 s(186) =< s(183)+aux(77) 1140.36/291.56 s(178) =< s(184)+aux(78) 1140.36/291.56 s(178) =< s(183)+aux(77) 1140.36/291.56 s(187) =< s(183)+aux(77) 1140.36/291.56 s(186) =< s(178)*s(180) 1140.36/291.56 s(188) =< s(178)*aux(79) 1140.36/291.56 s(187) =< s(178)*aux(79) 1140.36/291.56 s(189) =< s(186) 1140.36/291.56 s(190) =< s(187) 1140.36/291.56 s(191) =< s(188)*aux(83) 1140.36/291.56 s(192) =< aux(80) 1140.36/291.56 s(165) =< s(158)*aux(83) 1140.36/291.56 1140.36/291.56 with precondition: [V1>=0,V>=0] 1140.36/291.56 1140.36/291.56 * Chain [38]: 9*s(240)+22*s(241)+19*s(242)+15*s(243)+40*s(244)+5*s(251)+15*s(254)+15*s(255)+10*s(256)+5*s(257)+11*s(258)+17 1140.36/291.56 Such that:aux(88) =< -V+V5 1140.36/291.56 aux(89) =< V 1140.36/291.56 aux(90) =< V-V5 1140.36/291.56 aux(91) =< V+V5 1140.36/291.56 aux(92) =< 2*V+V5 1140.36/291.56 aux(93) =< V/2-V5/2 1140.36/291.56 aux(94) =< V/2+V5/2 1140.36/291.56 aux(95) =< V5 1140.36/291.56 s(240) =< aux(95) 1140.36/291.56 s(241) =< aux(89) 1140.36/291.56 s(242) =< aux(91) 1140.36/291.56 s(243) =< aux(89) 1140.36/291.56 s(244) =< aux(92) 1140.36/291.56 s(243) =< aux(92) 1140.36/291.56 s(245) =< aux(94) 1140.36/291.56 s(245) =< aux(91) 1140.36/291.56 s(246) =< aux(89) 1140.36/291.56 s(247) =< aux(91)+1 1140.36/291.56 s(248) =< s(245)*2 1140.36/291.56 s(243) =< s(245)+aux(93) 1140.36/291.56 s(249) =< s(248)+aux(90) 1140.36/291.56 s(249) =< s(243)*s(246) 1140.36/291.56 s(250) =< s(248)+aux(90) 1140.36/291.56 s(250) =< s(243)*aux(89) 1140.36/291.56 s(251) =< s(243)*s(247) 1140.36/291.56 s(252) =< s(249)+aux(95) 1140.36/291.56 s(244) =< s(250)+aux(88) 1140.36/291.56 s(244) =< s(249)+aux(95) 1140.36/291.56 s(253) =< s(249)+aux(95) 1140.36/291.56 s(252) =< s(244)*s(246) 1140.36/291.56 s(254) =< s(244)*aux(91) 1140.36/291.56 s(253) =< s(244)*aux(91) 1140.36/291.56 s(255) =< s(252) 1140.36/291.56 s(256) =< s(253) 1140.36/291.56 s(257) =< s(254)*aux(89) 1140.36/291.56 s(258) =< aux(92) 1140.36/291.56 1140.36/291.56 with precondition: [V1=1,V>=0,V5>=0] 1140.36/291.56 1140.36/291.56 * Chain [37]: 9 1140.36/291.56 with precondition: [V1=1,V5=0,V>=1] 1140.36/291.56 1140.36/291.56 * Chain [36]: 147*s(295)+134*s(296)+24*s(308)+64*s(309)+8*s(316)+24*s(319)+24*s(320)+16*s(321)+8*s(322)+22*s(323)+7*s(333)+42*s(344)+24*s(345)+64*s(346)+8*s(353)+24*s(356)+24*s(357)+16*s(358)+8*s(359)+22*s(360)+6*s(387)+16*s(392)+2*s(399)+6*s(402)+6*s(403)+4*s(404)+2*s(405)+12*s(431)+8*s(433)+22 1140.36/291.56 Such that:aux(124) =< V 1140.36/291.56 aux(125) =< V-2*V5 1140.36/291.56 aux(126) =< V+V5 1140.36/291.56 aux(127) =< V+2*V5 1140.36/291.56 aux(128) =< -V5 1140.36/291.56 aux(129) =< V5 1140.36/291.56 aux(130) =< 2*V5 1140.36/291.56 aux(131) =< V5/2 1140.36/291.56 s(295) =< aux(124) 1140.36/291.56 s(296) =< aux(129) 1140.36/291.56 s(333) =< s(295)*aux(129) 1140.36/291.56 s(430) =< aux(124) 1140.36/291.56 s(431) =< s(295)*aux(124) 1140.36/291.56 s(430) =< s(295)*aux(124) 1140.36/291.56 s(433) =< s(430) 1140.36/291.56 s(308) =< aux(129) 1140.36/291.56 s(309) =< aux(130) 1140.36/291.56 s(308) =< aux(130) 1140.36/291.56 s(310) =< aux(131) 1140.36/291.56 s(310) =< aux(129) 1140.36/291.56 s(311) =< aux(129) 1140.36/291.56 s(312) =< aux(129)+1 1140.36/291.56 s(313) =< s(310)*2 1140.36/291.56 s(308) =< s(310)+aux(131) 1140.36/291.56 s(314) =< s(313)+aux(129) 1140.36/291.56 s(314) =< s(308)*s(311) 1140.36/291.56 s(315) =< s(313)+aux(129) 1140.36/291.56 s(315) =< s(308)*aux(129) 1140.36/291.56 s(316) =< s(308)*s(312) 1140.36/291.56 s(317) =< s(314) 1140.36/291.56 s(309) =< s(315)+aux(128) 1140.36/291.56 s(309) =< s(314) 1140.36/291.56 s(318) =< s(314) 1140.36/291.56 s(317) =< s(309)*s(311) 1140.36/291.56 s(319) =< s(309)*aux(129) 1140.36/291.56 s(318) =< s(309)*aux(129) 1140.36/291.56 s(320) =< s(317) 1140.36/291.56 s(321) =< s(318) 1140.36/291.56 s(322) =< s(319)*aux(129) 1140.36/291.56 s(323) =< aux(130) 1140.36/291.56 s(344) =< aux(126) 1140.36/291.56 s(345) =< aux(129) 1140.36/291.56 s(346) =< aux(127) 1140.36/291.56 s(345) =< aux(127) 1140.36/291.56 s(349) =< aux(126)+1 1140.36/291.56 s(350) =< aux(126)*2 1140.36/291.56 s(345) =< aux(126)+aux(131) 1140.36/291.56 s(351) =< s(350)+aux(129) 1140.36/291.56 s(351) =< s(345)*s(311) 1140.36/291.56 s(352) =< s(350)+aux(129) 1140.36/291.56 s(352) =< s(345)*aux(129) 1140.36/291.56 s(353) =< s(345)*s(349) 1140.36/291.56 s(354) =< s(351)+aux(124) 1140.36/291.56 s(346) =< s(352)+aux(125) 1140.36/291.56 s(346) =< s(351)+aux(124) 1140.36/291.56 s(355) =< s(351)+aux(124) 1140.36/291.56 s(354) =< s(346)*s(311) 1140.36/291.56 s(356) =< s(346)*aux(126) 1140.36/291.56 s(355) =< s(346)*aux(126) 1140.36/291.56 s(357) =< s(354) 1140.36/291.56 s(358) =< s(355) 1140.36/291.56 s(359) =< s(356)*aux(129) 1140.36/291.56 s(360) =< aux(127) 1140.36/291.56 s(387) =< aux(129) 1140.36/291.56 s(392) =< aux(127) 1140.36/291.56 s(387) =< aux(127) 1140.36/291.56 s(387) =< aux(126)+aux(129) 1140.36/291.56 s(397) =< s(350)+aux(129) 1140.36/291.56 s(397) =< s(387)*s(311) 1140.36/291.56 s(398) =< s(350)+aux(129) 1140.36/291.56 s(398) =< s(387)*aux(129) 1140.36/291.56 s(399) =< s(387)*s(349) 1140.36/291.56 s(400) =< s(397)+aux(124) 1140.36/291.56 s(392) =< s(398)+aux(125) 1140.36/291.56 s(392) =< s(397)+aux(124) 1140.36/291.56 s(401) =< s(397)+aux(124) 1140.36/291.56 s(400) =< s(392)*s(311) 1140.36/291.56 s(402) =< s(392)*aux(126) 1140.36/291.56 s(401) =< s(392)*aux(126) 1140.36/291.56 s(403) =< s(400) 1140.36/291.56 s(404) =< s(401) 1140.36/291.56 s(405) =< s(402)*aux(129) 1140.36/291.56 1140.36/291.56 with precondition: [V1=2,V>=0,V5>=0] 1140.36/291.56 1140.36/291.56 * Chain [35]: 5*s(577)+5 1140.36/291.56 Such that:aux(132) =< V1 1140.36/291.56 s(577) =< aux(132) 1140.36/291.56 1140.36/291.56 with precondition: [V=0,V1>=0] 1140.36/291.56 1140.36/291.56 1140.36/291.56 Closed-form bounds of start(V1,V,V5): 1140.36/291.56 ------------------------------------- 1140.36/291.56 * Chain [39] with precondition: [V1>=0,V>=0] 1140.36/291.56 - Upper bound: 43*V1+16+V*V1+50*V+(V1+V)*(5*V)+(V1+2*V)*((V1+V)*(5*V))+(19*V1+19*V)+(15*V1+15*V)*(V1+2*V)+(51*V1+102*V)+nat(-V1+V)*25+(25*V1+25*V) 1140.36/291.56 - Complexity: n^3 1140.36/291.56 * Chain [38] with precondition: [V1=1,V>=0,V5>=0] 1140.36/291.56 - Upper bound: 42*V+17+(V+V5)*(5*V)+(2*V+V5)*((V+V5)*(5*V))+34*V5+(19*V+19*V5)+(15*V+15*V5)*(2*V+V5)+(102*V+51*V5)+(25*V+25*V5)+nat(V-V5)*25 1140.36/291.56 - Complexity: n^3 1140.36/291.56 * Chain [37] with precondition: [V1=1,V5=0,V>=1] 1140.36/291.56 - Upper bound: 9 1140.36/291.56 - Complexity: constant 1140.36/291.56 * Chain [36] with precondition: [V1=2,V>=0,V5>=0] 1140.36/291.56 - Upper bound: 205*V+22+12*V*V+7*V*V5+296*V5+8*V5*V5+8*V5*V5*(2*V5)+24*V5*(2*V5)+(V+V5)*(10*V5)+(V+2*V5)*((V+V5)*(10*V5))+172*V5+(142*V+142*V5)+(30*V+30*V5)*(V+2*V5)+(102*V+204*V5)+40*V5 1140.36/291.56 - Complexity: n^3 1140.36/291.56 * Chain [35] with precondition: [V=0,V1>=0] 1140.43/291.56 - Upper bound: 5*V1+5 1140.43/291.56 - Complexity: n 1140.43/291.56 1140.43/291.56 ### Maximum cost of start(V1,V,V5): max([max([5*V1,4]),42*V+11+max([8*V+max([43*V1+V*V1+(V1+V)*(5*V)+(V1+2*V)*((V1+V)*(5*V))+(19*V1+19*V)+(15*V1+15*V)*(V1+2*V)+(51*V1+102*V)+nat(-V1+V)*25+(25*V1+25*V),155*V+6+12*V*V+7*V*nat(V5)+nat(V5)*296+nat(V5)*8*nat(V5)+nat(V5)*8*nat(V5)*nat(2*V5)+nat(V5)*24*nat(2*V5)+nat(V5)*10*nat(V+V5)+nat(V5)*10*nat(V+V5)*nat(V+2*V5)+nat(2*V5)*86+nat(V+V5)*142+nat(V+V5)*30*nat(V+2*V5)+nat(V+2*V5)*102+nat(V5/2)*80]),5*V*nat(V+V5)+1+5*V*nat(V+V5)*nat(2*V+V5)+nat(V5)*34+nat(V+V5)*19+nat(V+V5)*15*nat(2*V+V5)+nat(2*V+V5)*51+nat(V/2+V5/2)*50+nat(V-V5)*25])])+5 1140.43/291.56 Asymptotic class: n^3 1140.43/291.56 * Total analysis performed in 1363 ms. 1140.43/291.56 1140.43/291.56 1140.43/291.56 ---------------------------------------- 1140.43/291.56 1140.43/291.56 (10) 1140.43/291.56 BOUNDS(1, n^3) 1140.43/291.56 1140.43/291.56 ---------------------------------------- 1140.43/291.56 1140.43/291.56 (11) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 1140.43/291.56 Transformed a relative TRS into a decreasing-loop problem. 1140.43/291.56 ---------------------------------------- 1140.43/291.56 1140.43/291.56 (12) 1140.43/291.56 Obligation: 1140.43/291.56 Analyzing the following TRS for decreasing loops: 1140.43/291.56 1140.43/291.56 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^3). 1140.43/291.56 1140.43/291.56 1140.43/291.56 The TRS R consists of the following rules: 1140.43/291.56 1140.43/291.56 minus(s(x), y) -> if(gt(s(x), y), x, y) 1140.43/291.56 if(true, x, y) -> s(minus(x, y)) 1140.43/291.56 if(false, x, y) -> 0 1140.43/291.56 gcd(x, y) -> if1(ge(x, y), x, y) 1140.43/291.56 if1(true, x, y) -> if2(gt(y, 0), x, y) 1140.43/291.56 if1(false, x, y) -> gcd(y, x) 1140.43/291.56 if2(true, x, y) -> gcd(minus(x, y), y) 1140.43/291.56 if2(false, x, y) -> x 1140.43/291.56 gt(0, y) -> false 1140.43/291.56 gt(s(x), 0) -> true 1140.43/291.56 gt(s(x), s(y)) -> gt(x, y) 1140.43/291.56 ge(x, 0) -> true 1140.43/291.56 ge(0, s(x)) -> false 1140.43/291.56 ge(s(x), s(y)) -> ge(x, y) 1140.43/291.56 1140.43/291.56 S is empty. 1140.43/291.56 Rewrite Strategy: INNERMOST 1140.43/291.56 ---------------------------------------- 1140.43/291.56 1140.43/291.56 (13) DecreasingLoopProof (LOWER BOUND(ID)) 1140.43/291.56 The following loop(s) give(s) rise to the lower bound Omega(n^1): 1140.43/291.56 1140.43/291.56 The rewrite sequence 1140.43/291.56 1140.43/291.56 gt(s(x), s(y)) ->^+ gt(x, y) 1140.43/291.56 1140.43/291.56 gives rise to a decreasing loop by considering the right hand sides subterm at position []. 1140.43/291.56 1140.43/291.56 The pumping substitution is [x / s(x), y / s(y)]. 1140.43/291.56 1140.43/291.56 The result substitution is [ ]. 1140.43/291.56 1140.43/291.56 1140.43/291.56 1140.43/291.56 1140.43/291.56 ---------------------------------------- 1140.43/291.56 1140.43/291.56 (14) 1140.43/291.56 Complex Obligation (BEST) 1140.43/291.56 1140.43/291.56 ---------------------------------------- 1140.43/291.56 1140.43/291.56 (15) 1140.43/291.56 Obligation: 1140.43/291.56 Proved the lower bound n^1 for the following obligation: 1140.43/291.56 1140.43/291.56 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^3). 1140.43/291.56 1140.43/291.56 1140.43/291.56 The TRS R consists of the following rules: 1140.43/291.56 1140.43/291.56 minus(s(x), y) -> if(gt(s(x), y), x, y) 1140.43/291.56 if(true, x, y) -> s(minus(x, y)) 1140.43/291.56 if(false, x, y) -> 0 1140.43/291.56 gcd(x, y) -> if1(ge(x, y), x, y) 1140.43/291.56 if1(true, x, y) -> if2(gt(y, 0), x, y) 1140.43/291.56 if1(false, x, y) -> gcd(y, x) 1140.43/291.56 if2(true, x, y) -> gcd(minus(x, y), y) 1140.43/291.56 if2(false, x, y) -> x 1140.43/291.56 gt(0, y) -> false 1140.43/291.56 gt(s(x), 0) -> true 1140.43/291.56 gt(s(x), s(y)) -> gt(x, y) 1140.43/291.56 ge(x, 0) -> true 1140.43/291.56 ge(0, s(x)) -> false 1140.43/291.56 ge(s(x), s(y)) -> ge(x, y) 1140.43/291.56 1140.43/291.56 S is empty. 1140.43/291.56 Rewrite Strategy: INNERMOST 1140.43/291.56 ---------------------------------------- 1140.43/291.56 1140.43/291.56 (16) LowerBoundPropagationProof (FINISHED) 1140.43/291.56 Propagated lower bound. 1140.43/291.56 ---------------------------------------- 1140.43/291.56 1140.43/291.56 (17) 1140.43/291.56 BOUNDS(n^1, INF) 1140.43/291.56 1140.43/291.56 ---------------------------------------- 1140.43/291.56 1140.43/291.56 (18) 1140.43/291.56 Obligation: 1140.43/291.56 Analyzing the following TRS for decreasing loops: 1140.43/291.56 1140.43/291.56 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^3). 1140.43/291.56 1140.43/291.56 1140.43/291.56 The TRS R consists of the following rules: 1140.43/291.56 1140.43/291.56 minus(s(x), y) -> if(gt(s(x), y), x, y) 1140.43/291.56 if(true, x, y) -> s(minus(x, y)) 1140.43/291.56 if(false, x, y) -> 0 1140.43/291.56 gcd(x, y) -> if1(ge(x, y), x, y) 1140.43/291.56 if1(true, x, y) -> if2(gt(y, 0), x, y) 1140.43/291.56 if1(false, x, y) -> gcd(y, x) 1140.43/291.56 if2(true, x, y) -> gcd(minus(x, y), y) 1140.43/291.56 if2(false, x, y) -> x 1140.43/291.56 gt(0, y) -> false 1140.43/291.56 gt(s(x), 0) -> true 1140.43/291.56 gt(s(x), s(y)) -> gt(x, y) 1140.43/291.56 ge(x, 0) -> true 1140.43/291.56 ge(0, s(x)) -> false 1140.43/291.56 ge(s(x), s(y)) -> ge(x, y) 1140.43/291.56 1140.43/291.56 S is empty. 1140.43/291.56 Rewrite Strategy: INNERMOST 1140.48/291.65 EOF