/export/starexec/sandbox/solver/bin/starexec_run_Transition /export/starexec/sandbox/benchmark/theBenchmark.smt2 /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE DP problem for innermost termination. P = init#(x1, x2, x3) -> f1#(rnd1, rnd2, rnd3) f2#(I0, I1, I2) -> f2#(-1, 1, 0) [1 = I2 /\ I1 <= 1 /\ 5 <= I0 - 1] f2#(I3, I4, I5) -> f2#(I3 + 1, 0 - (I3 + 1), I5 - 1) [I5 <= I3 + 1 - 1 /\ 1 <= I5 - 1 /\ 5 <= I3 + I5 /\ 5 <= I3 - I5 /\ I4 <= I5 /\ I5 <= I3] f2#(I6, I7, I8) -> f2#(I6 + 1, 0 - (I6 + 1), I8 - 1) [I8 <= I6 + 1 - 1 /\ I8 <= 0 /\ 5 <= I6 + I8 /\ 5 <= I6 - I8 /\ I7 <= I8 /\ I8 <= I6] f3#(I9, I10, I11) -> f2#(I11, 0 - I11, I10) [I9 <= I11] f2#(I12, I13, I14) -> f3#(I14, -1 * I14, I12) [I12 + I14 <= 4 /\ 5 <= I12 - I14 /\ I13 <= I14 /\ I14 <= I12] f2#(I15, I16, I17) -> f3#(I17, -1 * I17, I15) [I16 <= I17 /\ I17 <= I15 /\ I15 - I17 <= 4] f1#(I18, I19, I20) -> f2#(20, -20, I19) [-1 <= I19 - 1 /\ 0 <= I18 - 1] R = init(x1, x2, x3) -> f1(rnd1, rnd2, rnd3) f2(I0, I1, I2) -> f2(-1, 1, 0) [1 = I2 /\ I1 <= 1 /\ 5 <= I0 - 1] f2(I3, I4, I5) -> f2(I3 + 1, 0 - (I3 + 1), I5 - 1) [I5 <= I3 + 1 - 1 /\ 1 <= I5 - 1 /\ 5 <= I3 + I5 /\ 5 <= I3 - I5 /\ I4 <= I5 /\ I5 <= I3] f2(I6, I7, I8) -> f2(I6 + 1, 0 - (I6 + 1), I8 - 1) [I8 <= I6 + 1 - 1 /\ I8 <= 0 /\ 5 <= I6 + I8 /\ 5 <= I6 - I8 /\ I7 <= I8 /\ I8 <= I6] f3(I9, I10, I11) -> f2(I11, 0 - I11, I10) [I9 <= I11] f2(I12, I13, I14) -> f3(I14, -1 * I14, I12) [I12 + I14 <= 4 /\ 5 <= I12 - I14 /\ I13 <= I14 /\ I14 <= I12] f2(I15, I16, I17) -> f3(I17, -1 * I17, I15) [I16 <= I17 /\ I17 <= I15 /\ I15 - I17 <= 4] f1(I18, I19, I20) -> f2(20, -20, I19) [-1 <= I19 - 1 /\ 0 <= I18 - 1] The dependency graph for this problem is: 0 -> 7 1 -> 2 -> 1, 2 3 -> 3 4 -> 1, 2, 3, 5, 6 5 -> 4 6 -> 4 7 -> 1, 2, 3, 6 Where: 0) init#(x1, x2, x3) -> f1#(rnd1, rnd2, rnd3) 1) f2#(I0, I1, I2) -> f2#(-1, 1, 0) [1 = I2 /\ I1 <= 1 /\ 5 <= I0 - 1] 2) f2#(I3, I4, I5) -> f2#(I3 + 1, 0 - (I3 + 1), I5 - 1) [I5 <= I3 + 1 - 1 /\ 1 <= I5 - 1 /\ 5 <= I3 + I5 /\ 5 <= I3 - I5 /\ I4 <= I5 /\ I5 <= I3] 3) f2#(I6, I7, I8) -> f2#(I6 + 1, 0 - (I6 + 1), I8 - 1) [I8 <= I6 + 1 - 1 /\ I8 <= 0 /\ 5 <= I6 + I8 /\ 5 <= I6 - I8 /\ I7 <= I8 /\ I8 <= I6] 4) f3#(I9, I10, I11) -> f2#(I11, 0 - I11, I10) [I9 <= I11] 5) f2#(I12, I13, I14) -> f3#(I14, -1 * I14, I12) [I12 + I14 <= 4 /\ 5 <= I12 - I14 /\ I13 <= I14 /\ I14 <= I12] 6) f2#(I15, I16, I17) -> f3#(I17, -1 * I17, I15) [I16 <= I17 /\ I17 <= I15 /\ I15 - I17 <= 4] 7) f1#(I18, I19, I20) -> f2#(20, -20, I19) [-1 <= I19 - 1 /\ 0 <= I18 - 1] We have the following SCCs. { 4, 5, 6 } { 3 } { 2 } DP problem for innermost termination. P = f2#(I3, I4, I5) -> f2#(I3 + 1, 0 - (I3 + 1), I5 - 1) [I5 <= I3 + 1 - 1 /\ 1 <= I5 - 1 /\ 5 <= I3 + I5 /\ 5 <= I3 - I5 /\ I4 <= I5 /\ I5 <= I3] R = init(x1, x2, x3) -> f1(rnd1, rnd2, rnd3) f2(I0, I1, I2) -> f2(-1, 1, 0) [1 = I2 /\ I1 <= 1 /\ 5 <= I0 - 1] f2(I3, I4, I5) -> f2(I3 + 1, 0 - (I3 + 1), I5 - 1) [I5 <= I3 + 1 - 1 /\ 1 <= I5 - 1 /\ 5 <= I3 + I5 /\ 5 <= I3 - I5 /\ I4 <= I5 /\ I5 <= I3] f2(I6, I7, I8) -> f2(I6 + 1, 0 - (I6 + 1), I8 - 1) [I8 <= I6 + 1 - 1 /\ I8 <= 0 /\ 5 <= I6 + I8 /\ 5 <= I6 - I8 /\ I7 <= I8 /\ I8 <= I6] f3(I9, I10, I11) -> f2(I11, 0 - I11, I10) [I9 <= I11] f2(I12, I13, I14) -> f3(I14, -1 * I14, I12) [I12 + I14 <= 4 /\ 5 <= I12 - I14 /\ I13 <= I14 /\ I14 <= I12] f2(I15, I16, I17) -> f3(I17, -1 * I17, I15) [I16 <= I17 /\ I17 <= I15 /\ I15 - I17 <= 4] f1(I18, I19, I20) -> f2(20, -20, I19) [-1 <= I19 - 1 /\ 0 <= I18 - 1] We use the basic value criterion with the projection function NU: NU[f2#(z1,z2,z3)] = z3 This gives the following inequalities: I5 <= I3 + 1 - 1 /\ 1 <= I5 - 1 /\ 5 <= I3 + I5 /\ 5 <= I3 - I5 /\ I4 <= I5 /\ I5 <= I3 ==> I5 >! I5 - 1 All dependency pairs are strictly oriented, so the entire dependency pair problem may be removed. DP problem for innermost termination. P = f2#(I6, I7, I8) -> f2#(I6 + 1, 0 - (I6 + 1), I8 - 1) [I8 <= I6 + 1 - 1 /\ I8 <= 0 /\ 5 <= I6 + I8 /\ 5 <= I6 - I8 /\ I7 <= I8 /\ I8 <= I6] R = init(x1, x2, x3) -> f1(rnd1, rnd2, rnd3) f2(I0, I1, I2) -> f2(-1, 1, 0) [1 = I2 /\ I1 <= 1 /\ 5 <= I0 - 1] f2(I3, I4, I5) -> f2(I3 + 1, 0 - (I3 + 1), I5 - 1) [I5 <= I3 + 1 - 1 /\ 1 <= I5 - 1 /\ 5 <= I3 + I5 /\ 5 <= I3 - I5 /\ I4 <= I5 /\ I5 <= I3] f2(I6, I7, I8) -> f2(I6 + 1, 0 - (I6 + 1), I8 - 1) [I8 <= I6 + 1 - 1 /\ I8 <= 0 /\ 5 <= I6 + I8 /\ 5 <= I6 - I8 /\ I7 <= I8 /\ I8 <= I6] f3(I9, I10, I11) -> f2(I11, 0 - I11, I10) [I9 <= I11] f2(I12, I13, I14) -> f3(I14, -1 * I14, I12) [I12 + I14 <= 4 /\ 5 <= I12 - I14 /\ I13 <= I14 /\ I14 <= I12] f2(I15, I16, I17) -> f3(I17, -1 * I17, I15) [I16 <= I17 /\ I17 <= I15 /\ I15 - I17 <= 4] f1(I18, I19, I20) -> f2(20, -20, I19) [-1 <= I19 - 1 /\ 0 <= I18 - 1]