/export/starexec/sandbox2/solver/bin/starexec_run_complexity /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), O(n^2)) proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^2). (0) CpxTRS (1) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxTRS (3) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxWeightedTrs (5) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxTypedWeightedTrs (7) CompletionProof [UPPER BOUND(ID), 0 ms] (8) CpxTypedWeightedCompleteTrs (9) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (10) CpxRNTS (11) CompleteCoflocoProof [FINISHED, 1991 ms] (12) BOUNDS(1, n^2) (13) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (14) CpxTRS (15) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (16) typed CpxTrs (17) OrderProof [LOWER BOUND(ID), 0 ms] (18) typed CpxTrs (19) RewriteLemmaProof [LOWER BOUND(ID), 283 ms] (20) BEST (21) proven lower bound (22) LowerBoundPropagationProof [FINISHED, 0 ms] (23) BOUNDS(n^1, INF) (24) typed CpxTrs ---------------------------------------- (0) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, s(y), z) f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, y, s(z)) gt(0, v) -> false gt(s(u), 0) -> true gt(s(u), s(v)) -> gt(u, v) and(x, true) -> x and(x, false) -> false S is empty. Rewrite Strategy: FULL ---------------------------------------- (1) RcToIrcProof (BOTH BOUNDS(ID, ID)) Converted rc-obligation to irc-obligation. The duplicating contexts are: f(true, [], y, z) f(true, x, [], z) f(true, x, y, []) The defined contexts are: f([], x1, s(x2), x3) and([], x1) and(x0, []) f([], x1, x2, s(x3)) [] just represents basic- or constructor-terms in the following defined contexts: and([], x1) and(x0, []) As the TRS is an overlay system and the defined contexts and the duplicating contexts don't overlap, we have rc = irc. ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^2). The TRS R consists of the following rules: f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, s(y), z) f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, y, s(z)) gt(0, v) -> false gt(s(u), 0) -> true gt(s(u), s(v)) -> gt(u, v) and(x, true) -> x and(x, false) -> false S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (3) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^2). The TRS R consists of the following rules: f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, s(y), z) [1] f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, y, s(z)) [1] gt(0, v) -> false [1] gt(s(u), 0) -> true [1] gt(s(u), s(v)) -> gt(u, v) [1] and(x, true) -> x [1] and(x, false) -> false [1] Rewrite Strategy: INNERMOST ---------------------------------------- (5) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (6) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, s(y), z) [1] f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, y, s(z)) [1] gt(0, v) -> false [1] gt(s(u), 0) -> true [1] gt(s(u), s(v)) -> gt(u, v) [1] and(x, true) -> x [1] and(x, false) -> false [1] The TRS has the following type information: f :: true:false -> s:0 -> s:0 -> s:0 -> f true :: true:false and :: true:false -> true:false -> true:false gt :: s:0 -> s:0 -> true:false s :: s:0 -> s:0 0 :: s:0 false :: true:false Rewrite Strategy: INNERMOST ---------------------------------------- (7) 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: f(v0, v1, v2, v3) -> null_f [0] And the following fresh constants: null_f ---------------------------------------- (8) 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: f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, s(y), z) [1] f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, y, s(z)) [1] gt(0, v) -> false [1] gt(s(u), 0) -> true [1] gt(s(u), s(v)) -> gt(u, v) [1] and(x, true) -> x [1] and(x, false) -> false [1] f(v0, v1, v2, v3) -> null_f [0] The TRS has the following type information: f :: true:false -> s:0 -> s:0 -> s:0 -> null_f true :: true:false and :: true:false -> true:false -> true:false gt :: s:0 -> s:0 -> true:false s :: s:0 -> s:0 0 :: s:0 false :: true:false null_f :: null_f Rewrite Strategy: INNERMOST ---------------------------------------- (9) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: true => 1 0 => 0 false => 0 null_f => 0 ---------------------------------------- (10) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> x :|: z' = x, x >= 0, z'' = 1 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' = x, x >= 0 f(z', z'', z1, z2) -{ 1 }-> f(and(gt(x, y), gt(x, z)), x, y, 1 + z) :|: z1 = y, z >= 0, z2 = z, x >= 0, y >= 0, z'' = x, z' = 1 f(z', z'', z1, z2) -{ 1 }-> f(and(gt(x, y), gt(x, z)), x, 1 + y, z) :|: z1 = y, z >= 0, z2 = z, x >= 0, y >= 0, z'' = x, z' = 1 f(z', z'', z1, z2) -{ 0 }-> 0 :|: z2 = v3, v0 >= 0, z1 = v2, v1 >= 0, z'' = v1, v2 >= 0, v3 >= 0, z' = v0 gt(z', z'') -{ 1 }-> gt(u, v) :|: v >= 0, z' = 1 + u, z'' = 1 + v, u >= 0 gt(z', z'') -{ 1 }-> 1 :|: z'' = 0, z' = 1 + u, u >= 0 gt(z', z'') -{ 1 }-> 0 :|: z'' = v, v >= 0, z' = 0 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (11) CompleteCoflocoProof (FINISHED) Transformed the RNTS (where only complete derivations are relevant) into cost relations for CoFloCo: eq(start(V, V1, V6, V2),0,[f(V, V1, V6, V2, Out)],[V >= 0,V1 >= 0,V6 >= 0,V2 >= 0]). eq(start(V, V1, V6, V2),0,[gt(V, V1, Out)],[V >= 0,V1 >= 0]). eq(start(V, V1, V6, V2),0,[and(V, V1, Out)],[V >= 0,V1 >= 0]). eq(f(V, V1, V6, V2, Out),1,[gt(V4, V3, Ret00),gt(V4, V5, Ret01),and(Ret00, Ret01, Ret0),f(Ret0, V4, 1 + V3, V5, Ret)],[Out = Ret,V6 = V3,V5 >= 0,V2 = V5,V4 >= 0,V3 >= 0,V1 = V4,V = 1]). eq(f(V, V1, V6, V2, Out),1,[gt(V7, V9, Ret001),gt(V7, V8, Ret011),and(Ret001, Ret011, Ret02),f(Ret02, V7, V9, 1 + V8, Ret1)],[Out = Ret1,V6 = V9,V8 >= 0,V2 = V8,V7 >= 0,V9 >= 0,V1 = V7,V = 1]). eq(gt(V, V1, Out),1,[],[Out = 0,V1 = V10,V10 >= 0,V = 0]). eq(gt(V, V1, Out),1,[],[Out = 1,V1 = 0,V = 1 + V11,V11 >= 0]). eq(gt(V, V1, Out),1,[gt(V12, V13, Ret2)],[Out = Ret2,V13 >= 0,V = 1 + V12,V1 = 1 + V13,V12 >= 0]). eq(and(V, V1, Out),1,[],[Out = V14,V = V14,V14 >= 0,V1 = 1]). eq(and(V, V1, Out),1,[],[Out = 0,V1 = 0,V = V15,V15 >= 0]). eq(f(V, V1, V6, V2, Out),0,[],[Out = 0,V2 = V18,V17 >= 0,V6 = V19,V16 >= 0,V1 = V16,V19 >= 0,V18 >= 0,V = V17]). input_output_vars(f(V,V1,V6,V2,Out),[V,V1,V6,V2],[Out]). input_output_vars(gt(V,V1,Out),[V,V1],[Out]). input_output_vars(and(V,V1,Out),[V,V1],[Out]). CoFloCo proof output: Preprocessing Cost Relations ===================================== #### Computed strongly connected components 0. non_recursive : [and/3] 1. recursive : [gt/3] 2. recursive : [f/5] 3. non_recursive : [start/4] #### Obtained direct recursion through partial evaluation 0. SCC is partially evaluated into and/3 1. SCC is partially evaluated into gt/3 2. SCC is partially evaluated into f/5 3. SCC is partially evaluated into start/4 Control-Flow Refinement of Cost Relations ===================================== ### Specialization of cost equations and/3 * CE 10 is refined into CE [12] * CE 11 is refined into CE [13] ### Cost equations --> "Loop" of and/3 * CEs [12] --> Loop 10 * CEs [13] --> Loop 11 ### Ranking functions of CR and(V,V1,Out) #### Partial ranking functions of CR and(V,V1,Out) ### Specialization of cost equations gt/3 * CE 9 is refined into CE [14] * CE 8 is refined into CE [15] * CE 7 is refined into CE [16] ### Cost equations --> "Loop" of gt/3 * CEs [15] --> Loop 12 * CEs [16] --> Loop 13 * CEs [14] --> Loop 14 ### Ranking functions of CR gt(V,V1,Out) * RF of phase [14]: [V,V1] #### Partial ranking functions of CR gt(V,V1,Out) * Partial RF of phase [14]: - RF of loop [14:1]: V V1 ### Specialization of cost equations f/5 * CE 6 is refined into CE [17] * CE 5 is refined into CE [18,19,20,21,22,23,24,25,26,27] * CE 4 is refined into CE [28,29,30,31,32,33,34,35,36,37] ### Cost equations --> "Loop" of f/5 * CEs [27] --> Loop 15 * CEs [37] --> Loop 16 * CEs [24] --> Loop 17 * CEs [26] --> Loop 18 * CEs [23] --> Loop 19 * CEs [34] --> Loop 20 * CEs [36] --> Loop 21 * CEs [33] --> Loop 22 * CEs [25] --> Loop 23 * CEs [35] --> Loop 24 * CEs [22] --> Loop 25 * CEs [32] --> Loop 26 * CEs [31] --> Loop 27 * CEs [21] --> Loop 28 * CEs [30] --> Loop 29 * CEs [20] --> Loop 30 * CEs [29] --> Loop 31 * CEs [19] --> Loop 32 * CEs [18] --> Loop 33 * CEs [28] --> Loop 34 * CEs [17] --> Loop 35 ### Ranking functions of CR f(V,V1,V6,V2,Out) * RF of phase [15,16]: [2*V1-V6-V2-1] * RF of phase [24]: [V1-V6] * RF of phase [28]: [V1-V2] #### Partial ranking functions of CR f(V,V1,V6,V2,Out) * Partial RF of phase [15,16]: - RF of loop [15:1]: V1-V2 - RF of loop [16:1]: V1-V6 * Partial RF of phase [24]: - RF of loop [24:1]: V1-V6 * Partial RF of phase [28]: - RF of loop [28:1]: V1-V2 ### Specialization of cost equations start/4 * CE 1 is refined into CE [38,39,40,41,42,43,44,45,46,47] * CE 2 is refined into CE [48,49,50,51] * CE 3 is refined into CE [52,53] ### Cost equations --> "Loop" of start/4 * CEs [51] --> Loop 36 * CEs [53] --> Loop 37 * CEs [49,52] --> Loop 38 * CEs [47] --> Loop 39 * CEs [46] --> Loop 40 * CEs [45] --> Loop 41 * CEs [44] --> Loop 42 * CEs [43] --> Loop 43 * CEs [42] --> Loop 44 * CEs [41] --> Loop 45 * CEs [40,50] --> Loop 46 * CEs [38,39] --> Loop 47 * CEs [48] --> Loop 48 ### Ranking functions of CR start(V,V1,V6,V2) #### Partial ranking functions of CR start(V,V1,V6,V2) Computing Bounds ===================================== #### Cost of chains of and(V,V1,Out): * Chain [11]: 1 with precondition: [V1=0,Out=0,V>=0] * Chain [10]: 1 with precondition: [V1=1,V=Out,V>=0] #### Cost of chains of gt(V,V1,Out): * Chain [[14],13]: 1*it(14)+1 Such that:it(14) =< V with precondition: [Out=0,V>=1,V1>=V] * Chain [[14],12]: 1*it(14)+1 Such that:it(14) =< V1 with precondition: [Out=1,V1>=1,V>=V1+1] * Chain [13]: 1 with precondition: [V=0,Out=0,V1>=0] * Chain [12]: 1 with precondition: [V1=0,Out=1,V>=1] #### Cost of chains of f(V,V1,V6,V2,Out): * Chain [[28],35]: 4*it(28)+1*s(3)+0 Such that:aux(1) =< V1 it(28) =< V1-V2 s(3) =< it(28)*aux(1) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+1] * Chain [[28],30,35]: 4*it(28)+1*s(3)+1*s(4)+4 Such that:it(28) =< V1-V2 aux(2) =< V1 s(4) =< aux(2) s(3) =< it(28)*aux(2) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+1] * Chain [[28],29,35]: 4*it(28)+1*s(3)+1*s(5)+4 Such that:it(28) =< V1-V2 aux(3) =< V1 s(5) =< aux(3) s(3) =< it(28)*aux(3) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+1] * Chain [[28],27,[15,16],35]: 9*it(15)+4*it(28)+1*s(3)+2*s(14)+1*s(16)+1*s(17)+4 Such that:it(28) =< 2*V1-V2 aux(12) =< V1 aux(13) =< 2*V1 it(15) =< aux(13) aux(7) =< aux(12)-1 aux(6) =< aux(12)+1 s(14) =< it(15)*aux(12) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(3) =< it(28)*aux(12) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+2] * Chain [[28],27,[15,16],21,35]: 8*it(15)+4*it(28)+1*s(3)+2*s(14)+1*s(16)+1*s(17)+3*s(18)+8 Such that:aux(15) =< 2*V1 it(28) =< 2*V1-V2 aux(17) =< V1 it(15) =< aux(17) s(18) =< aux(17) it(15) =< aux(15) aux(7) =< aux(17)-1 aux(6) =< aux(17)+1 s(14) =< it(15)*aux(17) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(3) =< it(28)*aux(17) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+2] * Chain [[28],27,[15,16],20,35]: 8*it(15)+4*it(28)+1*s(3)+2*s(14)+1*s(16)+1*s(17)+3*s(18)+8 Such that:aux(19) =< 2*V1 it(28) =< 2*V1-V2 aux(21) =< V1 it(15) =< aux(21) s(18) =< aux(21) it(15) =< aux(19) aux(7) =< aux(21)-1 aux(6) =< aux(21)+1 s(14) =< it(15)*aux(21) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(3) =< it(28)*aux(21) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+2] * Chain [[28],27,[15,16],18,35]: 8*it(15)+4*it(28)+1*s(3)+2*s(14)+1*s(16)+1*s(17)+3*s(18)+8 Such that:aux(23) =< 2*V1 it(28) =< 2*V1-V2 aux(25) =< V1 it(15) =< aux(25) s(18) =< aux(25) it(15) =< aux(23) aux(7) =< aux(25)-1 aux(6) =< aux(25)+1 s(14) =< it(15)*aux(25) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(3) =< it(28)*aux(25) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+2] * Chain [[28],27,[15,16],17,35]: 8*it(15)+4*it(28)+1*s(3)+2*s(14)+1*s(16)+1*s(17)+3*s(18)+8 Such that:aux(27) =< 2*V1 it(28) =< 2*V1-V2 aux(29) =< V1 it(15) =< aux(29) s(18) =< aux(29) it(15) =< aux(27) aux(7) =< aux(29)-1 aux(6) =< aux(29)+1 s(14) =< it(15)*aux(29) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(3) =< it(28)*aux(29) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+2] * Chain [[28],27,35]: 4*it(28)+1*s(3)+1*s(18)+4 Such that:it(28) =< V1-V2 aux(30) =< V1 s(18) =< aux(30) s(3) =< it(28)*aux(30) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+2] * Chain [[24],35]: 4*it(24)+1*s(29)+0 Such that:aux(31) =< V1 it(24) =< V1-V6 s(29) =< it(24)*aux(31) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+1] * Chain [[24],26,35]: 4*it(24)+1*s(29)+1*s(30)+4 Such that:it(24) =< V1-V6 aux(32) =< V1 s(30) =< aux(32) s(29) =< it(24)*aux(32) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+1] * Chain [[24],25,35]: 4*it(24)+1*s(29)+1*s(31)+4 Such that:it(24) =< V1-V6 aux(33) =< V1 s(31) =< aux(33) s(29) =< it(24)*aux(33) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+1] * Chain [[24],23,[15,16],35]: 9*it(15)+4*it(24)+2*s(14)+1*s(16)+1*s(17)+1*s(29)+4 Such that:it(24) =< 2*V1-V6 aux(34) =< V1 aux(35) =< 2*V1 it(15) =< aux(35) aux(7) =< aux(34)-1 aux(6) =< aux(34)+1 s(14) =< it(15)*aux(34) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(29) =< it(24)*aux(34) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+2] * Chain [[24],23,[15,16],21,35]: 8*it(15)+4*it(24)+2*s(14)+1*s(16)+1*s(17)+3*s(19)+1*s(29)+8 Such that:aux(15) =< 2*V1 it(24) =< 2*V1-V6 aux(37) =< V1 it(15) =< aux(37) s(19) =< aux(37) it(15) =< aux(15) aux(7) =< aux(37)-1 aux(6) =< aux(37)+1 s(14) =< it(15)*aux(37) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(29) =< it(24)*aux(37) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+2] * Chain [[24],23,[15,16],20,35]: 8*it(15)+4*it(24)+2*s(14)+1*s(16)+1*s(17)+3*s(21)+1*s(29)+8 Such that:aux(19) =< 2*V1 it(24) =< 2*V1-V6 aux(39) =< V1 it(15) =< aux(39) s(21) =< aux(39) it(15) =< aux(19) aux(7) =< aux(39)-1 aux(6) =< aux(39)+1 s(14) =< it(15)*aux(39) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(29) =< it(24)*aux(39) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+2] * Chain [[24],23,[15,16],18,35]: 8*it(15)+4*it(24)+2*s(14)+1*s(16)+1*s(17)+3*s(23)+1*s(29)+8 Such that:aux(23) =< 2*V1 it(24) =< 2*V1-V6 aux(41) =< V1 it(15) =< aux(41) s(23) =< aux(41) it(15) =< aux(23) aux(7) =< aux(41)-1 aux(6) =< aux(41)+1 s(14) =< it(15)*aux(41) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(29) =< it(24)*aux(41) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+2] * Chain [[24],23,[15,16],17,35]: 8*it(15)+4*it(24)+2*s(14)+1*s(16)+1*s(17)+3*s(25)+1*s(29)+8 Such that:aux(27) =< 2*V1 it(24) =< 2*V1-V6 aux(43) =< V1 it(15) =< aux(43) s(25) =< aux(43) it(15) =< aux(27) aux(7) =< aux(43)-1 aux(6) =< aux(43)+1 s(14) =< it(15)*aux(43) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(29) =< it(24)*aux(43) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+2] * Chain [[24],23,35]: 4*it(24)+1*s(29)+1*s(32)+4 Such that:it(24) =< V1-V6 aux(44) =< V1 s(32) =< aux(44) s(29) =< it(24)*aux(44) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+2] * Chain [[15,16],35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+0 Such that:aux(8) =< V1 aux(11) =< 2*V1-V6-V2 it(15) =< aux(11) aux(7) =< aux(8)-1 aux(6) =< aux(8)+1 s(14) =< it(15)*aux(8) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,Out=0,V6>=1,V2>=1,V1>=V6+1,V1>=V2+1] * Chain [[15,16],21,35]: 4*it(15)+4*it(16)+2*s(14)+1*s(16)+1*s(17)+2*s(19)+4 Such that:it(16) =< V1-V6 it(15) =< V1-V2 aux(14) =< V1 aux(15) =< 2*V1-V6-V2 s(19) =< aux(14) it(15) =< aux(15) it(16) =< aux(15) aux(7) =< aux(14)-1 aux(6) =< aux(14)+1 s(14) =< it(15)*aux(14) s(17) =< it(16)*aux(7) s(16) =< it(16)*aux(6) with precondition: [V=1,Out=0,V6>=1,V2>=1,V1>=V6+1,V1>=V2+1] * Chain [[15,16],20,35]: 4*it(15)+4*it(16)+2*s(14)+1*s(16)+1*s(17)+2*s(21)+4 Such that:it(16) =< V1-V6 it(15) =< V1-V2 aux(18) =< V1 aux(19) =< 2*V1-V6-V2 s(21) =< aux(18) it(15) =< aux(19) it(16) =< aux(19) aux(7) =< aux(18)-1 aux(6) =< aux(18)+1 s(14) =< it(15)*aux(18) s(17) =< it(16)*aux(7) s(16) =< it(16)*aux(6) with precondition: [V=1,Out=0,V6>=1,V2>=1,V1>=V6+1,V1>=V2+1] * Chain [[15,16],18,35]: 4*it(15)+4*it(16)+2*s(14)+1*s(16)+1*s(17)+2*s(23)+4 Such that:it(16) =< V1-V6 it(15) =< V1-V2 aux(22) =< V1 aux(23) =< 2*V1-V6-V2 s(23) =< aux(22) it(15) =< aux(23) it(16) =< aux(23) aux(7) =< aux(22)-1 aux(6) =< aux(22)+1 s(14) =< it(15)*aux(22) s(17) =< it(16)*aux(7) s(16) =< it(16)*aux(6) with precondition: [V=1,Out=0,V6>=1,V2>=1,V1>=V6+1,V1>=V2+1] * Chain [[15,16],17,35]: 4*it(15)+4*it(16)+2*s(14)+1*s(16)+1*s(17)+2*s(25)+4 Such that:it(16) =< V1-V6 it(15) =< V1-V2 aux(26) =< V1 aux(27) =< 2*V1-V6-V2 s(25) =< aux(26) it(15) =< aux(27) it(16) =< aux(27) aux(7) =< aux(26)-1 aux(6) =< aux(26)+1 s(14) =< it(15)*aux(26) s(17) =< it(16)*aux(7) s(16) =< it(16)*aux(6) with precondition: [V=1,Out=0,V6>=1,V2>=1,V1>=V6+1,V1>=V2+1] * Chain [35]: 0 with precondition: [Out=0,V>=0,V1>=0,V6>=0,V2>=0] * Chain [34,35]: 4 with precondition: [V=1,V1=0,Out=0,V6>=0,V2>=0] * Chain [33,35]: 4 with precondition: [V=1,V1=0,Out=0,V6>=0,V2>=0] * Chain [32,[28],35]: 4*it(28)+1*s(3)+4 Such that:aux(45) =< V1 it(28) =< aux(45) s(3) =< it(28)*aux(45) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [32,[28],30,35]: 5*it(28)+1*s(3)+8 Such that:aux(46) =< V1 it(28) =< aux(46) s(3) =< it(28)*aux(46) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [32,[28],29,35]: 5*it(28)+1*s(3)+8 Such that:aux(47) =< V1 it(28) =< aux(47) s(3) =< it(28)*aux(47) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [32,[28],27,[15,16],35]: 13*it(15)+3*s(3)+1*s(16)+1*s(17)+8 Such that:aux(12) =< V1 aux(48) =< 2*V1 it(15) =< aux(48) aux(7) =< aux(12)-1 aux(6) =< aux(12)+1 s(3) =< it(15)*aux(12) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=3] * Chain [32,[28],27,[15,16],21,35]: 8*it(15)+4*it(28)+1*s(3)+2*s(14)+1*s(16)+1*s(17)+3*s(18)+12 Such that:aux(17) =< V1 aux(49) =< 2*V1 it(28) =< aux(49) it(15) =< aux(17) s(18) =< aux(17) it(15) =< aux(49) aux(7) =< aux(17)-1 aux(6) =< aux(17)+1 s(14) =< it(15)*aux(17) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(3) =< it(28)*aux(17) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=3] * Chain [32,[28],27,[15,16],20,35]: 8*it(15)+4*it(28)+1*s(3)+2*s(14)+1*s(16)+1*s(17)+3*s(18)+12 Such that:aux(21) =< V1 aux(50) =< 2*V1 it(28) =< aux(50) it(15) =< aux(21) s(18) =< aux(21) it(15) =< aux(50) aux(7) =< aux(21)-1 aux(6) =< aux(21)+1 s(14) =< it(15)*aux(21) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(3) =< it(28)*aux(21) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=3] * Chain [32,[28],27,[15,16],18,35]: 8*it(15)+4*it(28)+1*s(3)+2*s(14)+1*s(16)+1*s(17)+3*s(18)+12 Such that:aux(25) =< V1 aux(51) =< 2*V1 it(28) =< aux(51) it(15) =< aux(25) s(18) =< aux(25) it(15) =< aux(51) aux(7) =< aux(25)-1 aux(6) =< aux(25)+1 s(14) =< it(15)*aux(25) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(3) =< it(28)*aux(25) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=3] * Chain [32,[28],27,[15,16],17,35]: 8*it(15)+4*it(28)+1*s(3)+2*s(14)+1*s(16)+1*s(17)+3*s(18)+12 Such that:aux(29) =< V1 aux(52) =< 2*V1 it(28) =< aux(52) it(15) =< aux(29) s(18) =< aux(29) it(15) =< aux(52) aux(7) =< aux(29)-1 aux(6) =< aux(29)+1 s(14) =< it(15)*aux(29) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(3) =< it(28)*aux(29) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=3] * Chain [32,[28],27,35]: 5*it(28)+1*s(3)+8 Such that:aux(53) =< V1 it(28) =< aux(53) s(3) =< it(28)*aux(53) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=3] * Chain [32,35]: 4 with precondition: [V=1,V6=0,V2=0,Out=0,V1>=1] * Chain [32,30,35]: 1*s(4)+8 Such that:s(4) =< 1 with precondition: [V=1,V1=1,V6=0,V2=0,Out=0] * Chain [32,29,35]: 1*s(5)+8 Such that:s(5) =< 1 with precondition: [V=1,V1=1,V6=0,V2=0,Out=0] * Chain [32,27,[15,16],35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+1*s(18)+8 Such that:s(18) =< 1 aux(8) =< V1 aux(11) =< 2*V1 it(15) =< aux(11) aux(7) =< aux(8)-1 aux(6) =< aux(8)+1 s(14) =< it(15)*aux(8) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [32,27,[15,16],21,35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+1*s(18)+2*s(19)+12 Such that:s(18) =< 1 aux(15) =< 2*V1 aux(54) =< V1 it(15) =< aux(54) s(19) =< aux(54) it(15) =< aux(15) aux(7) =< aux(54)-1 aux(6) =< aux(54)+1 s(14) =< it(15)*aux(54) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [32,27,[15,16],20,35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+1*s(18)+2*s(21)+12 Such that:s(18) =< 1 aux(19) =< 2*V1 aux(55) =< V1 it(15) =< aux(55) s(21) =< aux(55) it(15) =< aux(19) aux(7) =< aux(55)-1 aux(6) =< aux(55)+1 s(14) =< it(15)*aux(55) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [32,27,[15,16],18,35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+1*s(18)+2*s(23)+12 Such that:s(18) =< 1 aux(23) =< 2*V1 aux(56) =< V1 it(15) =< aux(56) s(23) =< aux(56) it(15) =< aux(23) aux(7) =< aux(56)-1 aux(6) =< aux(56)+1 s(14) =< it(15)*aux(56) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [32,27,[15,16],17,35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+1*s(18)+2*s(25)+12 Such that:s(18) =< 1 aux(27) =< 2*V1 aux(57) =< V1 it(15) =< aux(57) s(25) =< aux(57) it(15) =< aux(27) aux(7) =< aux(57)-1 aux(6) =< aux(57)+1 s(14) =< it(15)*aux(57) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [32,27,35]: 1*s(18)+8 Such that:s(18) =< 1 with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [31,[24],35]: 4*it(24)+1*s(29)+4 Such that:aux(58) =< V1 it(24) =< aux(58) s(29) =< it(24)*aux(58) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [31,[24],26,35]: 5*it(24)+1*s(29)+8 Such that:aux(59) =< V1 it(24) =< aux(59) s(29) =< it(24)*aux(59) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [31,[24],25,35]: 5*it(24)+1*s(29)+8 Such that:aux(60) =< V1 it(24) =< aux(60) s(29) =< it(24)*aux(60) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [31,[24],23,[15,16],35]: 13*it(15)+3*s(14)+1*s(16)+1*s(17)+8 Such that:aux(34) =< V1 aux(61) =< 2*V1 it(15) =< aux(61) aux(7) =< aux(34)-1 aux(6) =< aux(34)+1 s(14) =< it(15)*aux(34) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=3] * Chain [31,[24],23,[15,16],21,35]: 8*it(15)+4*it(24)+2*s(14)+1*s(16)+1*s(17)+3*s(19)+1*s(29)+12 Such that:aux(37) =< V1 aux(62) =< 2*V1 it(24) =< aux(62) it(15) =< aux(37) s(19) =< aux(37) it(15) =< aux(62) aux(7) =< aux(37)-1 aux(6) =< aux(37)+1 s(14) =< it(15)*aux(37) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(29) =< it(24)*aux(37) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=3] * Chain [31,[24],23,[15,16],20,35]: 8*it(15)+4*it(24)+2*s(14)+1*s(16)+1*s(17)+3*s(21)+1*s(29)+12 Such that:aux(39) =< V1 aux(63) =< 2*V1 it(24) =< aux(63) it(15) =< aux(39) s(21) =< aux(39) it(15) =< aux(63) aux(7) =< aux(39)-1 aux(6) =< aux(39)+1 s(14) =< it(15)*aux(39) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(29) =< it(24)*aux(39) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=3] * Chain [31,[24],23,[15,16],18,35]: 8*it(15)+4*it(24)+2*s(14)+1*s(16)+1*s(17)+3*s(23)+1*s(29)+12 Such that:aux(41) =< V1 aux(64) =< 2*V1 it(24) =< aux(64) it(15) =< aux(41) s(23) =< aux(41) it(15) =< aux(64) aux(7) =< aux(41)-1 aux(6) =< aux(41)+1 s(14) =< it(15)*aux(41) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(29) =< it(24)*aux(41) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=3] * Chain [31,[24],23,[15,16],17,35]: 8*it(15)+4*it(24)+2*s(14)+1*s(16)+1*s(17)+3*s(25)+1*s(29)+12 Such that:aux(43) =< V1 aux(65) =< 2*V1 it(24) =< aux(65) it(15) =< aux(43) s(25) =< aux(43) it(15) =< aux(65) aux(7) =< aux(43)-1 aux(6) =< aux(43)+1 s(14) =< it(15)*aux(43) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) s(29) =< it(24)*aux(43) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=3] * Chain [31,[24],23,35]: 5*it(24)+1*s(29)+8 Such that:aux(66) =< V1 it(24) =< aux(66) s(29) =< it(24)*aux(66) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=3] * Chain [31,35]: 4 with precondition: [V=1,V6=0,V2=0,Out=0,V1>=1] * Chain [31,26,35]: 1*s(30)+8 Such that:s(30) =< 1 with precondition: [V=1,V1=1,V6=0,V2=0,Out=0] * Chain [31,25,35]: 1*s(31)+8 Such that:s(31) =< 1 with precondition: [V=1,V1=1,V6=0,V2=0,Out=0] * Chain [31,23,[15,16],35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+1*s(32)+8 Such that:s(32) =< 1 aux(8) =< V1 aux(11) =< 2*V1 it(15) =< aux(11) aux(7) =< aux(8)-1 aux(6) =< aux(8)+1 s(14) =< it(15)*aux(8) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [31,23,[15,16],21,35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+2*s(19)+1*s(32)+12 Such that:s(32) =< 1 aux(15) =< 2*V1 aux(67) =< V1 it(15) =< aux(67) s(19) =< aux(67) it(15) =< aux(15) aux(7) =< aux(67)-1 aux(6) =< aux(67)+1 s(14) =< it(15)*aux(67) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [31,23,[15,16],20,35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+2*s(21)+1*s(32)+12 Such that:s(32) =< 1 aux(19) =< 2*V1 aux(68) =< V1 it(15) =< aux(68) s(21) =< aux(68) it(15) =< aux(19) aux(7) =< aux(68)-1 aux(6) =< aux(68)+1 s(14) =< it(15)*aux(68) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [31,23,[15,16],18,35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+2*s(23)+1*s(32)+12 Such that:s(32) =< 1 aux(23) =< 2*V1 aux(69) =< V1 it(15) =< aux(69) s(23) =< aux(69) it(15) =< aux(23) aux(7) =< aux(69)-1 aux(6) =< aux(69)+1 s(14) =< it(15)*aux(69) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [31,23,[15,16],17,35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+2*s(25)+1*s(32)+12 Such that:s(32) =< 1 aux(27) =< 2*V1 aux(70) =< V1 it(15) =< aux(70) s(25) =< aux(70) it(15) =< aux(27) aux(7) =< aux(70)-1 aux(6) =< aux(70)+1 s(14) =< it(15)*aux(70) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [31,23,35]: 1*s(32)+8 Such that:s(32) =< 1 with precondition: [V=1,V6=0,V2=0,Out=0,V1>=2] * Chain [30,35]: 1*s(4)+4 Such that:s(4) =< V1 with precondition: [V=1,V6=0,Out=0,V1>=1,V2>=V1] * Chain [29,35]: 1*s(5)+4 Such that:s(5) =< V1 with precondition: [V=1,V6=0,Out=0,V1>=1,V2>=V1] * Chain [27,[15,16],35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+1*s(18)+4 Such that:aux(8) =< V1 aux(11) =< 2*V1-V2 s(18) =< V2 it(15) =< aux(11) aux(7) =< aux(8)-1 aux(6) =< aux(8)+1 s(14) =< it(15)*aux(8) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+1] * Chain [27,[15,16],21,35]: 4*it(15)+4*it(16)+2*s(14)+1*s(16)+1*s(17)+1*s(18)+2*s(19)+8 Such that:it(15) =< V1-V2 aux(15) =< 2*V1-V2 s(18) =< V2 aux(16) =< V1 it(16) =< aux(16) s(19) =< aux(16) it(15) =< aux(15) it(16) =< aux(15) aux(7) =< aux(16)-1 aux(6) =< aux(16)+1 s(14) =< it(15)*aux(16) s(17) =< it(16)*aux(7) s(16) =< it(16)*aux(6) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+1] * Chain [27,[15,16],20,35]: 4*it(15)+4*it(16)+2*s(14)+1*s(16)+1*s(17)+1*s(18)+2*s(21)+8 Such that:it(15) =< V1-V2 aux(19) =< 2*V1-V2 s(18) =< V2 aux(20) =< V1 it(16) =< aux(20) s(21) =< aux(20) it(15) =< aux(19) it(16) =< aux(19) aux(7) =< aux(20)-1 aux(6) =< aux(20)+1 s(14) =< it(15)*aux(20) s(17) =< it(16)*aux(7) s(16) =< it(16)*aux(6) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+1] * Chain [27,[15,16],18,35]: 4*it(15)+4*it(16)+2*s(14)+1*s(16)+1*s(17)+1*s(18)+2*s(23)+8 Such that:it(15) =< V1-V2 aux(23) =< 2*V1-V2 s(18) =< V2 aux(24) =< V1 it(16) =< aux(24) s(23) =< aux(24) it(15) =< aux(23) it(16) =< aux(23) aux(7) =< aux(24)-1 aux(6) =< aux(24)+1 s(14) =< it(15)*aux(24) s(17) =< it(16)*aux(7) s(16) =< it(16)*aux(6) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+1] * Chain [27,[15,16],17,35]: 4*it(15)+4*it(16)+2*s(14)+1*s(16)+1*s(17)+1*s(18)+2*s(25)+8 Such that:it(15) =< V1-V2 aux(27) =< 2*V1-V2 s(18) =< V2 aux(28) =< V1 it(16) =< aux(28) s(25) =< aux(28) it(15) =< aux(27) it(16) =< aux(27) aux(7) =< aux(28)-1 aux(6) =< aux(28)+1 s(14) =< it(15)*aux(28) s(17) =< it(16)*aux(7) s(16) =< it(16)*aux(6) with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+1] * Chain [27,35]: 1*s(18)+4 Such that:s(18) =< V2 with precondition: [V=1,V6=0,Out=0,V2>=1,V1>=V2+1] * Chain [26,35]: 1*s(30)+4 Such that:s(30) =< V1 with precondition: [V=1,V2=0,Out=0,V1>=1,V6>=V1] * Chain [25,35]: 1*s(31)+4 Such that:s(31) =< V1 with precondition: [V=1,V2=0,Out=0,V1>=1,V6>=V1] * Chain [23,[15,16],35]: 8*it(15)+2*s(14)+1*s(16)+1*s(17)+1*s(32)+4 Such that:aux(8) =< V1 aux(11) =< 2*V1-V6 s(32) =< V6 it(15) =< aux(11) aux(7) =< aux(8)-1 aux(6) =< aux(8)+1 s(14) =< it(15)*aux(8) s(17) =< it(15)*aux(7) s(16) =< it(15)*aux(6) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+1] * Chain [23,[15,16],21,35]: 4*it(15)+4*it(16)+2*s(14)+1*s(16)+1*s(17)+2*s(19)+1*s(32)+8 Such that:it(16) =< V1-V6 aux(15) =< 2*V1-V6 s(32) =< V6 aux(36) =< V1 it(15) =< aux(36) s(19) =< aux(36) it(15) =< aux(15) it(16) =< aux(15) aux(7) =< aux(36)-1 aux(6) =< aux(36)+1 s(14) =< it(15)*aux(36) s(17) =< it(16)*aux(7) s(16) =< it(16)*aux(6) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+1] * Chain [23,[15,16],20,35]: 4*it(15)+4*it(16)+2*s(14)+1*s(16)+1*s(17)+2*s(21)+1*s(32)+8 Such that:it(16) =< V1-V6 aux(19) =< 2*V1-V6 s(32) =< V6 aux(38) =< V1 it(15) =< aux(38) s(21) =< aux(38) it(15) =< aux(19) it(16) =< aux(19) aux(7) =< aux(38)-1 aux(6) =< aux(38)+1 s(14) =< it(15)*aux(38) s(17) =< it(16)*aux(7) s(16) =< it(16)*aux(6) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+1] * Chain [23,[15,16],18,35]: 4*it(15)+4*it(16)+2*s(14)+1*s(16)+1*s(17)+2*s(23)+1*s(32)+8 Such that:it(16) =< V1-V6 aux(23) =< 2*V1-V6 s(32) =< V6 aux(40) =< V1 it(15) =< aux(40) s(23) =< aux(40) it(15) =< aux(23) it(16) =< aux(23) aux(7) =< aux(40)-1 aux(6) =< aux(40)+1 s(14) =< it(15)*aux(40) s(17) =< it(16)*aux(7) s(16) =< it(16)*aux(6) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+1] * Chain [23,[15,16],17,35]: 4*it(15)+4*it(16)+2*s(14)+1*s(16)+1*s(17)+2*s(25)+1*s(32)+8 Such that:it(16) =< V1-V6 aux(27) =< 2*V1-V6 s(32) =< V6 aux(42) =< V1 it(15) =< aux(42) s(25) =< aux(42) it(15) =< aux(27) it(16) =< aux(27) aux(7) =< aux(42)-1 aux(6) =< aux(42)+1 s(14) =< it(15)*aux(42) s(17) =< it(16)*aux(7) s(16) =< it(16)*aux(6) with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+1] * Chain [23,35]: 1*s(32)+4 Such that:s(32) =< V6 with precondition: [V=1,V2=0,Out=0,V6>=1,V1>=V6+1] * Chain [22,35]: 2*s(33)+4 Such that:aux(71) =< V1 s(33) =< aux(71) with precondition: [V=1,Out=0,V1>=1,V6>=V1,V2>=V1] * Chain [21,35]: 1*s(19)+1*s(20)+4 Such that:s(20) =< V1 s(19) =< V6+1 with precondition: [V=1,Out=0,V6>=1,V2>=V1,V1>=V6+1] * Chain [20,35]: 1*s(21)+1*s(22)+4 Such that:s(21) =< V1 s(22) =< V2 with precondition: [V=1,Out=0,V2>=1,V6>=V1,V1>=V2+1] * Chain [19,35]: 2*s(35)+4 Such that:aux(72) =< V1 s(35) =< aux(72) with precondition: [V=1,Out=0,V1>=1,V6>=V1,V2>=V1] * Chain [18,35]: 1*s(23)+1*s(24)+4 Such that:s(24) =< V1 s(23) =< V6 with precondition: [V=1,Out=0,V6>=1,V2>=V1,V1>=V6+1] * Chain [17,35]: 1*s(25)+1*s(26)+4 Such that:s(25) =< V1 s(26) =< V2+1 with precondition: [V=1,Out=0,V2>=1,V6>=V1,V1>=V2+1] #### Cost of chains of start(V,V1,V6,V2): * Chain [48]: 1 with precondition: [V=0,V1>=0] * Chain [47]: 16*s(582)+128*s(583)+78*s(584)+32*s(587)+16*s(588)+16*s(589)+74*s(590)+18*s(591)+4*s(592)+4*s(593)+8*s(594)+12 Such that:s(579) =< 1 s(580) =< V1 s(581) =< 2*V1 s(582) =< s(579) s(583) =< s(580) s(584) =< s(580) s(583) =< s(581) s(585) =< s(580)-1 s(586) =< s(580)+1 s(587) =< s(583)*s(580) s(588) =< s(583)*s(585) s(589) =< s(583)*s(586) s(590) =< s(581) s(591) =< s(590)*s(580) s(592) =< s(590)*s(585) s(593) =< s(590)*s(586) s(594) =< s(584)*s(580) with precondition: [V>=0,V1>=0,V6>=0,V2>=0] * Chain [46]: 2*s(596)+1*s(597)+4 Such that:s(597) =< V s(595) =< V1 s(596) =< s(595) with precondition: [V>=1,V1>=V] * Chain [45]: 16*s(603)+16*s(604)+28*s(605)+6*s(606)+7*s(609)+1*s(610)+1*s(611)+4*s(612)+16*s(613)+23*s(614)+8*s(615)+4*s(616)+4*s(617)+32*s(618)+8*s(619)+4*s(620)+4*s(621)+9*s(622)+2*s(623)+1*s(624)+1*s(625)+8 Such that:s(598) =< V1 s(599) =< V1-V2 s(600) =< 2*V1 s(601) =< 2*V1-V2 s(602) =< V2 s(603) =< s(599) s(604) =< s(599) s(605) =< s(601) s(606) =< s(602) s(607) =< s(598)-1 s(608) =< s(598)+1 s(609) =< s(605)*s(598) s(610) =< s(605)*s(607) s(611) =< s(605)*s(608) s(612) =< s(604)*s(598) s(613) =< s(598) s(614) =< s(598) s(603) =< s(601) s(613) =< s(601) s(615) =< s(603)*s(598) s(616) =< s(613)*s(607) s(617) =< s(613)*s(608) s(618) =< s(598) s(618) =< s(600) s(619) =< s(618)*s(598) s(620) =< s(618)*s(607) s(621) =< s(618)*s(608) s(622) =< s(600) s(623) =< s(622)*s(598) s(624) =< s(622)*s(607) s(625) =< s(622)*s(608) with precondition: [V=1,V6=0,V2>=1,V1>=V2+1] * Chain [44]: 2*s(627)+4 Such that:s(626) =< V1 s(627) =< s(626) with precondition: [V=1,V2=0,V1>=1,V6>=V1] * Chain [43]: 16*s(633)+16*s(634)+28*s(635)+6*s(636)+7*s(639)+1*s(640)+1*s(641)+4*s(642)+16*s(643)+23*s(644)+8*s(645)+4*s(646)+4*s(647)+32*s(648)+8*s(649)+4*s(650)+4*s(651)+9*s(652)+2*s(653)+1*s(654)+1*s(655)+8 Such that:s(628) =< V1 s(629) =< V1-V6 s(630) =< 2*V1 s(631) =< 2*V1-V6 s(632) =< V6 s(633) =< s(629) s(634) =< s(629) s(635) =< s(631) s(636) =< s(632) s(637) =< s(628)-1 s(638) =< s(628)+1 s(639) =< s(635)*s(628) s(640) =< s(635)*s(637) s(641) =< s(635)*s(638) s(642) =< s(634)*s(628) s(643) =< s(628) s(644) =< s(628) s(643) =< s(631) s(633) =< s(631) s(645) =< s(643)*s(628) s(646) =< s(633)*s(637) s(647) =< s(633)*s(638) s(648) =< s(628) s(648) =< s(630) s(649) =< s(648)*s(628) s(650) =< s(648)*s(637) s(651) =< s(648)*s(638) s(652) =< s(630) s(653) =< s(652)*s(628) s(654) =< s(652)*s(637) s(655) =< s(652)*s(638) with precondition: [V=1,V2=0,V6>=1,V1>=V6+1] * Chain [42]: 4*s(657)+4 Such that:s(656) =< V1 s(657) =< s(656) with precondition: [V=1,V1>=1,V6>=V1,V2>=V1] * Chain [41]: 16*s(662)+16*s(663)+8*s(664)+2*s(667)+1*s(668)+1*s(669)+8*s(670)+8*s(671)+4*s(672)+4*s(673)+4 Such that:s(658) =< V1 s(659) =< V1-V6 s(660) =< V1-V2 s(661) =< 2*V1-V6-V2 s(662) =< s(659) s(663) =< s(660) s(664) =< s(661) s(665) =< s(658)-1 s(666) =< s(658)+1 s(667) =< s(664)*s(658) s(668) =< s(664)*s(665) s(669) =< s(664)*s(666) s(670) =< s(658) s(663) =< s(661) s(662) =< s(661) s(671) =< s(663)*s(658) s(672) =< s(662)*s(665) s(673) =< s(662)*s(666) with precondition: [V=1,V6>=1,V2>=1,V1>=V6+1,V1>=V2+1] * Chain [40]: 1*s(674)+1*s(675)+2*s(677)+4 Such that:s(676) =< V1 s(674) =< V6 s(675) =< V6+1 s(677) =< s(676) with precondition: [V=1,V6>=1,V2>=V1,V1>=V6+1] * Chain [39]: 1*s(678)+1*s(679)+2*s(681)+4 Such that:s(680) =< V1 s(678) =< V2 s(679) =< V2+1 s(681) =< s(680) with precondition: [V=1,V2>=1,V6>=V1,V1>=V2+1] * Chain [38]: 1 with precondition: [V1=0,V>=0] * Chain [37]: 1 with precondition: [V1=1,V>=0] * Chain [36]: 1*s(682)+1 Such that:s(682) =< V1 with precondition: [V1>=1,V>=V1+1] Closed-form bounds of start(V,V1,V6,V2): ------------------------------------- * Chain [48] with precondition: [V=0,V1>=0] - Upper bound: 1 - Complexity: constant * Chain [47] with precondition: [V>=0,V1>=0,V6>=0,V2>=0] - Upper bound: 222*V1+28+56*V1*V1+16*V1*nat(V1-1)+22*V1*(2*V1)+nat(V1-1)*4*(2*V1)+156*V1 - Complexity: n^2 * Chain [46] with precondition: [V>=1,V1>=V] - Upper bound: V+2*V1+4 - Complexity: n * Chain [45] with precondition: [V=1,V6=0,V2>=1,V1>=V2+1] - Upper bound: 58*V1-29*V2+(32*V1-32*V2+(79*V1+8+16*V1*V1+(V1-1)*(8*V1)+3*V1*(2*V1)+(V1-V2)*(12*V1)+(2*V1-V2)*(8*V1)+6*V2+(V1-1)*(2*V1)+(2*V1-V2)*(V1-1)+20*V1)) - Complexity: n^2 * Chain [44] with precondition: [V=1,V2=0,V1>=1,V6>=V1] - Upper bound: 2*V1+4 - Complexity: n * Chain [43] with precondition: [V=1,V2=0,V6>=1,V1>=V6+1] - Upper bound: 58*V1-29*V6+(36*V1-36*V6+(75*V1+8+20*V1*V1+(V1-1)*(4*V1)+3*V1*(2*V1)+(V1-V6)*(8*V1)+(2*V1-V6)*(8*V1)+6*V6+(V1-1)*(2*V1)+(4*V1-4)*(V1-V6)+(2*V1-V6)*(V1-1)+20*V1)) - Complexity: n^2 * Chain [42] with precondition: [V=1,V1>=1,V6>=V1,V2>=V1] - Upper bound: 4*V1+4 - Complexity: n * Chain [41] with precondition: [V=1,V6>=1,V2>=1,V1>=V6+1,V1>=V2+1] - Upper bound: 18*V1-9*V6-9*V2+(16*V1-16*V2+(20*V1-20*V6+(8*V1+4+(V1-V6)*(4*V1)+(V1-V2)*(8*V1)+(2*V1-V6-V2)*(3*V1)+(4*V1-4)*(V1-V6)+(2*V1-V6-V2)*(V1-1)))) - Complexity: n^2 * Chain [40] with precondition: [V=1,V6>=1,V2>=V1,V1>=V6+1] - Upper bound: 2*V1+2*V6+5 - Complexity: n * Chain [39] with precondition: [V=1,V2>=1,V6>=V1,V1>=V2+1] - Upper bound: 2*V1+2*V2+5 - Complexity: n * Chain [38] with precondition: [V1=0,V>=0] - Upper bound: 1 - Complexity: constant * Chain [37] with precondition: [V1=1,V>=0] - Upper bound: 1 - Complexity: constant * Chain [36] with precondition: [V1>=1,V>=V1+1] - Upper bound: V1+1 - Complexity: n ### Maximum cost of start(V,V1,V6,V2): V1+3+max([max([V,nat(V6+1)+nat(V6),nat(V2+1)+nat(V2)]),4*V1+max([67*V1+4+16*V1*V1+4*V1*nat(V1-1)+3*V1*(2*V1)+2*V1*nat(V1-1)+20*V1+max([4*V1*nat(V1-1)+4*V1+max([12*V1*nat(V1-V2)+8*V1*nat(2*V1-V2)+nat(V2)*6+nat(2*V1-V2)*nat(V1-1)+nat(V1-V2)*32+nat(2*V1-V2)*29,143*V1+20+40*V1*V1+8*V1*nat(V1-1)+19*V1*(2*V1)+nat(V1-1)*3*(2*V1)+136*V1]),8*V1*nat(V1-V6)+4*V1*V1+8*V1*nat(2*V1-V6)+nat(V6)*6+nat(V1-1)*4*nat(V1-V6)+nat(2*V1-V6)*nat(V1-1)+nat(V1-V6)*36+nat(2*V1-V6)*29]),8*V1*nat(V1-V2)+4*V1*nat(V1-V6)+3*V1*nat(2*V1-V6-V2)+nat(V1-1)*4*nat(V1-V6)+nat(2*V1-V6-V2)*nat(V1-1)+nat(V1-V6)*20+nat(V1-V2)*16+nat(2*V1-V6-V2)*9])+2*V1])+V1+1 Asymptotic class: n^2 * Total analysis performed in 1833 ms. ---------------------------------------- (12) BOUNDS(1, n^2) ---------------------------------------- (13) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (14) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, s(y), z) f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, y, s(z)) gt(0', v) -> false gt(s(u), 0') -> true gt(s(u), s(v)) -> gt(u, v) and(x, true) -> x and(x, false) -> false S is empty. Rewrite Strategy: FULL ---------------------------------------- (15) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (16) Obligation: TRS: Rules: f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, s(y), z) f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, y, s(z)) gt(0', v) -> false gt(s(u), 0') -> true gt(s(u), s(v)) -> gt(u, v) and(x, true) -> x and(x, false) -> false Types: f :: true:false -> s:0' -> s:0' -> s:0' -> f true :: true:false and :: true:false -> true:false -> true:false gt :: s:0' -> s:0' -> true:false s :: s:0' -> s:0' 0' :: s:0' false :: true:false hole_f1_0 :: f hole_true:false2_0 :: true:false hole_s:0'3_0 :: s:0' gen_s:0'4_0 :: Nat -> s:0' ---------------------------------------- (17) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: f, gt They will be analysed ascendingly in the following order: gt < f ---------------------------------------- (18) Obligation: TRS: Rules: f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, s(y), z) f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, y, s(z)) gt(0', v) -> false gt(s(u), 0') -> true gt(s(u), s(v)) -> gt(u, v) and(x, true) -> x and(x, false) -> false Types: f :: true:false -> s:0' -> s:0' -> s:0' -> f true :: true:false and :: true:false -> true:false -> true:false gt :: s:0' -> s:0' -> true:false s :: s:0' -> s:0' 0' :: s:0' false :: true:false hole_f1_0 :: f hole_true:false2_0 :: true:false hole_s:0'3_0 :: s:0' gen_s:0'4_0 :: Nat -> s:0' Generator Equations: gen_s:0'4_0(0) <=> 0' gen_s:0'4_0(+(x, 1)) <=> s(gen_s:0'4_0(x)) The following defined symbols remain to be analysed: gt, f They will be analysed ascendingly in the following order: gt < f ---------------------------------------- (19) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: gt(gen_s:0'4_0(n6_0), gen_s:0'4_0(n6_0)) -> false, rt in Omega(1 + n6_0) Induction Base: gt(gen_s:0'4_0(0), gen_s:0'4_0(0)) ->_R^Omega(1) false Induction Step: gt(gen_s:0'4_0(+(n6_0, 1)), gen_s:0'4_0(+(n6_0, 1))) ->_R^Omega(1) gt(gen_s:0'4_0(n6_0), gen_s:0'4_0(n6_0)) ->_IH false We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (20) Complex Obligation (BEST) ---------------------------------------- (21) Obligation: Proved the lower bound n^1 for the following obligation: TRS: Rules: f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, s(y), z) f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, y, s(z)) gt(0', v) -> false gt(s(u), 0') -> true gt(s(u), s(v)) -> gt(u, v) and(x, true) -> x and(x, false) -> false Types: f :: true:false -> s:0' -> s:0' -> s:0' -> f true :: true:false and :: true:false -> true:false -> true:false gt :: s:0' -> s:0' -> true:false s :: s:0' -> s:0' 0' :: s:0' false :: true:false hole_f1_0 :: f hole_true:false2_0 :: true:false hole_s:0'3_0 :: s:0' gen_s:0'4_0 :: Nat -> s:0' Generator Equations: gen_s:0'4_0(0) <=> 0' gen_s:0'4_0(+(x, 1)) <=> s(gen_s:0'4_0(x)) The following defined symbols remain to be analysed: gt, f They will be analysed ascendingly in the following order: gt < f ---------------------------------------- (22) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (23) BOUNDS(n^1, INF) ---------------------------------------- (24) Obligation: TRS: Rules: f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, s(y), z) f(true, x, y, z) -> f(and(gt(x, y), gt(x, z)), x, y, s(z)) gt(0', v) -> false gt(s(u), 0') -> true gt(s(u), s(v)) -> gt(u, v) and(x, true) -> x and(x, false) -> false Types: f :: true:false -> s:0' -> s:0' -> s:0' -> f true :: true:false and :: true:false -> true:false -> true:false gt :: s:0' -> s:0' -> true:false s :: s:0' -> s:0' 0' :: s:0' false :: true:false hole_f1_0 :: f hole_true:false2_0 :: true:false hole_s:0'3_0 :: s:0' gen_s:0'4_0 :: Nat -> s:0' Lemmas: gt(gen_s:0'4_0(n6_0), gen_s:0'4_0(n6_0)) -> false, rt in Omega(1 + n6_0) Generator Equations: gen_s:0'4_0(0) <=> 0' gen_s:0'4_0(+(x, 1)) <=> s(gen_s:0'4_0(x)) The following defined symbols remain to be analysed: f