6.15/6.15 YES 6.15/6.15 6.15/6.15 DP problem for innermost termination. 6.15/6.15 P = 6.15/6.15 init#(x1, x2, x3, x4) -> f1#(rnd1, rnd2, rnd3, rnd4) 6.15/6.15 f6#(I0, I1, I2, I3) -> f2#(I0, I1 - 1, I4, I5) [1 = I2 /\ I1 - 1 <= I1 - 1 /\ 1 <= I1 - 1] 6.15/6.15 f7#(I6, I7, I8, I9) -> f2#(I6, I10, I11, I12) [0 = I8 /\ 0 <= I7 - 2 * I10 /\ I7 - 2 * I10 <= 1 /\ 0 <= I10 - 1 /\ I10 <= I7 - 1 /\ 1 <= I7 - 1] 6.15/6.15 f6#(I13, I14, I15, I16) -> f7#(I13, I14, 0, I16) [1 <= I14 - 1 /\ 0 <= y1 - 1 /\ y1 <= I14 - 1 /\ 0 = I15] 6.15/6.15 f5#(I17, I18, I19, I20) -> f6#(I17, I18, I21, I22) [1 <= I18 - 1 /\ 2 <= I17 - 1 /\ I18 - 2 * I23 <= 1 /\ 0 <= I18 - 2 * I23 /\ I18 - 2 * I23 = I21] 6.15/6.15 f2#(I24, I25, I26, I27) -> f5#(I24, I25, I28, I29) [1 <= I25 - 1 /\ 2 <= I24 - 1] 6.15/6.15 f5#(I30, I31, I32, I33) -> f6#(I30, I31, I34, I35) [1 <= I31 - 1 /\ I30 <= 1 /\ I31 - 2 * I36 <= 1 /\ 0 <= I31 - 2 * I36 /\ I31 - 2 * I36 = I34] 6.15/6.15 f2#(I37, I38, I39, I40) -> f5#(I37, I38, I41, I42) [1 <= I38 - 1 /\ I37 <= 1] 6.15/6.15 f4#(I43, I44, I45, I46) -> f2#(I44, I45, I47, I48) [0 <= I43 - 1 /\ 1 <= I49 - 1] 6.15/6.15 f3#(I50, I51, I52, I53) -> f4#(I54, I51, I55, I56) [1 <= I57 - 1 /\ -1 <= I55 - 1 /\ I54 <= I50 /\ 0 <= I50 - 1 /\ 0 <= I54 - 1] 6.15/6.15 f3#(I58, I59, I60, I61) -> f4#(I62, I59, 0, I63) [I62 <= I58 /\ 1 <= I64 - 1 /\ 0 <= I58 - 1 /\ 0 <= I62 - 1] 6.15/6.15 f3#(I65, I66, I67, I68) -> f2#(I66, 0, I69, I70) [0 <= I65 - 1] 6.15/6.15 f1#(I71, I72, I73, I74) -> f3#(I75, I76, I77, I78) [0 <= I75 - 1 /\ 0 <= I71 - 1 /\ I75 <= I71 /\ 0 <= I72 - 1 /\ -1 <= I76 - 1] 6.15/6.15 f1#(I79, I80, I81, I82) -> f3#(I83, 0, I84, I85) [0 <= I83 - 1 /\ 0 <= I79 - 1 /\ 0 <= I80 - 1 /\ I83 <= I79] 6.15/6.15 f1#(I86, I87, I88, I89) -> f2#(0, 0, I90, I91) [0 = I87 /\ 0 <= I86 - 1] 6.15/6.15 R = 6.15/6.15 init(x1, x2, x3, x4) -> f1(rnd1, rnd2, rnd3, rnd4) 6.15/6.15 f6(I0, I1, I2, I3) -> f2(I0, I1 - 1, I4, I5) [1 = I2 /\ I1 - 1 <= I1 - 1 /\ 1 <= I1 - 1] 6.15/6.15 f7(I6, I7, I8, I9) -> f2(I6, I10, I11, I12) [0 = I8 /\ 0 <= I7 - 2 * I10 /\ I7 - 2 * I10 <= 1 /\ 0 <= I10 - 1 /\ I10 <= I7 - 1 /\ 1 <= I7 - 1] 6.15/6.15 f6(I13, I14, I15, I16) -> f7(I13, I14, 0, I16) [1 <= I14 - 1 /\ 0 <= y1 - 1 /\ y1 <= I14 - 1 /\ 0 = I15] 6.15/6.15 f5(I17, I18, I19, I20) -> f6(I17, I18, I21, I22) [1 <= I18 - 1 /\ 2 <= I17 - 1 /\ I18 - 2 * I23 <= 1 /\ 0 <= I18 - 2 * I23 /\ I18 - 2 * I23 = I21] 6.15/6.15 f2(I24, I25, I26, I27) -> f5(I24, I25, I28, I29) [1 <= I25 - 1 /\ 2 <= I24 - 1] 6.15/6.15 f5(I30, I31, I32, I33) -> f6(I30, I31, I34, I35) [1 <= I31 - 1 /\ I30 <= 1 /\ I31 - 2 * I36 <= 1 /\ 0 <= I31 - 2 * I36 /\ I31 - 2 * I36 = I34] 6.15/6.15 f2(I37, I38, I39, I40) -> f5(I37, I38, I41, I42) [1 <= I38 - 1 /\ I37 <= 1] 6.15/6.15 f4(I43, I44, I45, I46) -> f2(I44, I45, I47, I48) [0 <= I43 - 1 /\ 1 <= I49 - 1] 6.15/6.15 f3(I50, I51, I52, I53) -> f4(I54, I51, I55, I56) [1 <= I57 - 1 /\ -1 <= I55 - 1 /\ I54 <= I50 /\ 0 <= I50 - 1 /\ 0 <= I54 - 1] 6.15/6.15 f3(I58, I59, I60, I61) -> f4(I62, I59, 0, I63) [I62 <= I58 /\ 1 <= I64 - 1 /\ 0 <= I58 - 1 /\ 0 <= I62 - 1] 6.15/6.15 f3(I65, I66, I67, I68) -> f2(I66, 0, I69, I70) [0 <= I65 - 1] 6.15/6.15 f1(I71, I72, I73, I74) -> f3(I75, I76, I77, I78) [0 <= I75 - 1 /\ 0 <= I71 - 1 /\ I75 <= I71 /\ 0 <= I72 - 1 /\ -1 <= I76 - 1] 6.15/6.15 f1(I79, I80, I81, I82) -> f3(I83, 0, I84, I85) [0 <= I83 - 1 /\ 0 <= I79 - 1 /\ 0 <= I80 - 1 /\ I83 <= I79] 6.15/6.15 f1(I86, I87, I88, I89) -> f2(0, 0, I90, I91) [0 = I87 /\ 0 <= I86 - 1] 6.15/6.15 6.15/6.15 The dependency graph for this problem is: 6.15/6.15 0 -> 12, 13, 14 6.15/6.15 1 -> 5, 7 6.15/6.15 2 -> 5, 7 6.15/6.15 3 -> 2 6.15/6.15 4 -> 1, 3 6.15/6.15 5 -> 4 6.15/6.15 6 -> 1, 3 6.15/6.15 7 -> 6 6.15/6.15 8 -> 5, 7 6.15/6.15 9 -> 8 6.15/6.15 10 -> 8 6.15/6.15 11 -> 6.15/6.15 12 -> 9, 10, 11 6.15/6.15 13 -> 9, 10, 11 6.15/6.15 14 -> 6.15/6.15 Where: 6.15/6.15 0) init#(x1, x2, x3, x4) -> f1#(rnd1, rnd2, rnd3, rnd4) 6.15/6.15 1) f6#(I0, I1, I2, I3) -> f2#(I0, I1 - 1, I4, I5) [1 = I2 /\ I1 - 1 <= I1 - 1 /\ 1 <= I1 - 1] 6.15/6.15 2) f7#(I6, I7, I8, I9) -> f2#(I6, I10, I11, I12) [0 = I8 /\ 0 <= I7 - 2 * I10 /\ I7 - 2 * I10 <= 1 /\ 0 <= I10 - 1 /\ I10 <= I7 - 1 /\ 1 <= I7 - 1] 6.15/6.15 3) f6#(I13, I14, I15, I16) -> f7#(I13, I14, 0, I16) [1 <= I14 - 1 /\ 0 <= y1 - 1 /\ y1 <= I14 - 1 /\ 0 = I15] 6.15/6.15 4) f5#(I17, I18, I19, I20) -> f6#(I17, I18, I21, I22) [1 <= I18 - 1 /\ 2 <= I17 - 1 /\ I18 - 2 * I23 <= 1 /\ 0 <= I18 - 2 * I23 /\ I18 - 2 * I23 = I21] 6.15/6.15 5) f2#(I24, I25, I26, I27) -> f5#(I24, I25, I28, I29) [1 <= I25 - 1 /\ 2 <= I24 - 1] 6.15/6.15 6) f5#(I30, I31, I32, I33) -> f6#(I30, I31, I34, I35) [1 <= I31 - 1 /\ I30 <= 1 /\ I31 - 2 * I36 <= 1 /\ 0 <= I31 - 2 * I36 /\ I31 - 2 * I36 = I34] 6.15/6.15 7) f2#(I37, I38, I39, I40) -> f5#(I37, I38, I41, I42) [1 <= I38 - 1 /\ I37 <= 1] 6.15/6.15 8) f4#(I43, I44, I45, I46) -> f2#(I44, I45, I47, I48) [0 <= I43 - 1 /\ 1 <= I49 - 1] 6.15/6.15 9) f3#(I50, I51, I52, I53) -> f4#(I54, I51, I55, I56) [1 <= I57 - 1 /\ -1 <= I55 - 1 /\ I54 <= I50 /\ 0 <= I50 - 1 /\ 0 <= I54 - 1] 6.15/6.15 10) f3#(I58, I59, I60, I61) -> f4#(I62, I59, 0, I63) [I62 <= I58 /\ 1 <= I64 - 1 /\ 0 <= I58 - 1 /\ 0 <= I62 - 1] 6.15/6.15 11) f3#(I65, I66, I67, I68) -> f2#(I66, 0, I69, I70) [0 <= I65 - 1] 6.15/6.15 12) f1#(I71, I72, I73, I74) -> f3#(I75, I76, I77, I78) [0 <= I75 - 1 /\ 0 <= I71 - 1 /\ I75 <= I71 /\ 0 <= I72 - 1 /\ -1 <= I76 - 1] 6.15/6.15 13) f1#(I79, I80, I81, I82) -> f3#(I83, 0, I84, I85) [0 <= I83 - 1 /\ 0 <= I79 - 1 /\ 0 <= I80 - 1 /\ I83 <= I79] 6.15/6.15 14) f1#(I86, I87, I88, I89) -> f2#(0, 0, I90, I91) [0 = I87 /\ 0 <= I86 - 1] 6.15/6.15 6.15/6.15 We have the following SCCs. 6.15/6.15 { 1, 2, 3, 4, 5, 6, 7 } 6.15/6.15 6.15/6.15 DP problem for innermost termination. 6.15/6.15 P = 6.15/6.15 f6#(I0, I1, I2, I3) -> f2#(I0, I1 - 1, I4, I5) [1 = I2 /\ I1 - 1 <= I1 - 1 /\ 1 <= I1 - 1] 6.15/6.15 f7#(I6, I7, I8, I9) -> f2#(I6, I10, I11, I12) [0 = I8 /\ 0 <= I7 - 2 * I10 /\ I7 - 2 * I10 <= 1 /\ 0 <= I10 - 1 /\ I10 <= I7 - 1 /\ 1 <= I7 - 1] 6.15/6.15 f6#(I13, I14, I15, I16) -> f7#(I13, I14, 0, I16) [1 <= I14 - 1 /\ 0 <= y1 - 1 /\ y1 <= I14 - 1 /\ 0 = I15] 6.15/6.15 f5#(I17, I18, I19, I20) -> f6#(I17, I18, I21, I22) [1 <= I18 - 1 /\ 2 <= I17 - 1 /\ I18 - 2 * I23 <= 1 /\ 0 <= I18 - 2 * I23 /\ I18 - 2 * I23 = I21] 6.15/6.15 f2#(I24, I25, I26, I27) -> f5#(I24, I25, I28, I29) [1 <= I25 - 1 /\ 2 <= I24 - 1] 6.15/6.15 f5#(I30, I31, I32, I33) -> f6#(I30, I31, I34, I35) [1 <= I31 - 1 /\ I30 <= 1 /\ I31 - 2 * I36 <= 1 /\ 0 <= I31 - 2 * I36 /\ I31 - 2 * I36 = I34] 6.15/6.15 f2#(I37, I38, I39, I40) -> f5#(I37, I38, I41, I42) [1 <= I38 - 1 /\ I37 <= 1] 6.15/6.15 R = 6.15/6.15 init(x1, x2, x3, x4) -> f1(rnd1, rnd2, rnd3, rnd4) 6.15/6.15 f6(I0, I1, I2, I3) -> f2(I0, I1 - 1, I4, I5) [1 = I2 /\ I1 - 1 <= I1 - 1 /\ 1 <= I1 - 1] 6.15/6.15 f7(I6, I7, I8, I9) -> f2(I6, I10, I11, I12) [0 = I8 /\ 0 <= I7 - 2 * I10 /\ I7 - 2 * I10 <= 1 /\ 0 <= I10 - 1 /\ I10 <= I7 - 1 /\ 1 <= I7 - 1] 6.15/6.15 f6(I13, I14, I15, I16) -> f7(I13, I14, 0, I16) [1 <= I14 - 1 /\ 0 <= y1 - 1 /\ y1 <= I14 - 1 /\ 0 = I15] 6.15/6.15 f5(I17, I18, I19, I20) -> f6(I17, I18, I21, I22) [1 <= I18 - 1 /\ 2 <= I17 - 1 /\ I18 - 2 * I23 <= 1 /\ 0 <= I18 - 2 * I23 /\ I18 - 2 * I23 = I21] 6.15/6.15 f2(I24, I25, I26, I27) -> f5(I24, I25, I28, I29) [1 <= I25 - 1 /\ 2 <= I24 - 1] 6.15/6.15 f5(I30, I31, I32, I33) -> f6(I30, I31, I34, I35) [1 <= I31 - 1 /\ I30 <= 1 /\ I31 - 2 * I36 <= 1 /\ 0 <= I31 - 2 * I36 /\ I31 - 2 * I36 = I34] 6.15/6.15 f2(I37, I38, I39, I40) -> f5(I37, I38, I41, I42) [1 <= I38 - 1 /\ I37 <= 1] 6.15/6.15 f4(I43, I44, I45, I46) -> f2(I44, I45, I47, I48) [0 <= I43 - 1 /\ 1 <= I49 - 1] 6.15/6.15 f3(I50, I51, I52, I53) -> f4(I54, I51, I55, I56) [1 <= I57 - 1 /\ -1 <= I55 - 1 /\ I54 <= I50 /\ 0 <= I50 - 1 /\ 0 <= I54 - 1] 6.15/6.15 f3(I58, I59, I60, I61) -> f4(I62, I59, 0, I63) [I62 <= I58 /\ 1 <= I64 - 1 /\ 0 <= I58 - 1 /\ 0 <= I62 - 1] 6.15/6.15 f3(I65, I66, I67, I68) -> f2(I66, 0, I69, I70) [0 <= I65 - 1] 6.15/6.15 f1(I71, I72, I73, I74) -> f3(I75, I76, I77, I78) [0 <= I75 - 1 /\ 0 <= I71 - 1 /\ I75 <= I71 /\ 0 <= I72 - 1 /\ -1 <= I76 - 1] 6.15/6.15 f1(I79, I80, I81, I82) -> f3(I83, 0, I84, I85) [0 <= I83 - 1 /\ 0 <= I79 - 1 /\ 0 <= I80 - 1 /\ I83 <= I79] 6.15/6.15 f1(I86, I87, I88, I89) -> f2(0, 0, I90, I91) [0 = I87 /\ 0 <= I86 - 1] 6.15/6.15 6.15/6.15 We use the basic value criterion with the projection function NU: 6.15/6.15 NU[f5#(z1,z2,z3,z4)] = z2 6.15/6.15 NU[f7#(z1,z2,z3,z4)] = z2 6.15/6.15 NU[f2#(z1,z2,z3,z4)] = z2 6.15/6.15 NU[f6#(z1,z2,z3,z4)] = z2 6.15/6.15 6.15/6.15 This gives the following inequalities: 6.15/6.15 1 = I2 /\ I1 - 1 <= I1 - 1 /\ 1 <= I1 - 1 ==> I1 >! I1 - 1 6.15/6.15 0 = I8 /\ 0 <= I7 - 2 * I10 /\ I7 - 2 * I10 <= 1 /\ 0 <= I10 - 1 /\ I10 <= I7 - 1 /\ 1 <= I7 - 1 ==> I7 >! I10 6.15/6.15 1 <= I14 - 1 /\ 0 <= y1 - 1 /\ y1 <= I14 - 1 /\ 0 = I15 ==> I14 (>! \union =) I14 6.15/6.15 1 <= I18 - 1 /\ 2 <= I17 - 1 /\ I18 - 2 * I23 <= 1 /\ 0 <= I18 - 2 * I23 /\ I18 - 2 * I23 = I21 ==> I18 (>! \union =) I18 6.15/6.15 1 <= I25 - 1 /\ 2 <= I24 - 1 ==> I25 (>! \union =) I25 6.15/6.15 1 <= I31 - 1 /\ I30 <= 1 /\ I31 - 2 * I36 <= 1 /\ 0 <= I31 - 2 * I36 /\ I31 - 2 * I36 = I34 ==> I31 (>! \union =) I31 6.15/6.15 1 <= I38 - 1 /\ I37 <= 1 ==> I38 (>! \union =) I38 6.15/6.15 6.15/6.15 We remove all the strictly oriented dependency pairs. 6.15/6.15 6.15/6.15 DP problem for innermost termination. 6.15/6.15 P = 6.15/6.15 f6#(I13, I14, I15, I16) -> f7#(I13, I14, 0, I16) [1 <= I14 - 1 /\ 0 <= y1 - 1 /\ y1 <= I14 - 1 /\ 0 = I15] 6.15/6.15 f5#(I17, I18, I19, I20) -> f6#(I17, I18, I21, I22) [1 <= I18 - 1 /\ 2 <= I17 - 1 /\ I18 - 2 * I23 <= 1 /\ 0 <= I18 - 2 * I23 /\ I18 - 2 * I23 = I21] 6.15/6.15 f2#(I24, I25, I26, I27) -> f5#(I24, I25, I28, I29) [1 <= I25 - 1 /\ 2 <= I24 - 1] 6.15/6.15 f5#(I30, I31, I32, I33) -> f6#(I30, I31, I34, I35) [1 <= I31 - 1 /\ I30 <= 1 /\ I31 - 2 * I36 <= 1 /\ 0 <= I31 - 2 * I36 /\ I31 - 2 * I36 = I34] 6.15/6.15 f2#(I37, I38, I39, I40) -> f5#(I37, I38, I41, I42) [1 <= I38 - 1 /\ I37 <= 1] 6.15/6.15 R = 6.15/6.15 init(x1, x2, x3, x4) -> f1(rnd1, rnd2, rnd3, rnd4) 6.15/6.15 f6(I0, I1, I2, I3) -> f2(I0, I1 - 1, I4, I5) [1 = I2 /\ I1 - 1 <= I1 - 1 /\ 1 <= I1 - 1] 6.15/6.15 f7(I6, I7, I8, I9) -> f2(I6, I10, I11, I12) [0 = I8 /\ 0 <= I7 - 2 * I10 /\ I7 - 2 * I10 <= 1 /\ 0 <= I10 - 1 /\ I10 <= I7 - 1 /\ 1 <= I7 - 1] 6.15/6.15 f6(I13, I14, I15, I16) -> f7(I13, I14, 0, I16) [1 <= I14 - 1 /\ 0 <= y1 - 1 /\ y1 <= I14 - 1 /\ 0 = I15] 6.15/6.15 f5(I17, I18, I19, I20) -> f6(I17, I18, I21, I22) [1 <= I18 - 1 /\ 2 <= I17 - 1 /\ I18 - 2 * I23 <= 1 /\ 0 <= I18 - 2 * I23 /\ I18 - 2 * I23 = I21] 6.15/6.15 f2(I24, I25, I26, I27) -> f5(I24, I25, I28, I29) [1 <= I25 - 1 /\ 2 <= I24 - 1] 6.15/6.15 f5(I30, I31, I32, I33) -> f6(I30, I31, I34, I35) [1 <= I31 - 1 /\ I30 <= 1 /\ I31 - 2 * I36 <= 1 /\ 0 <= I31 - 2 * I36 /\ I31 - 2 * I36 = I34] 6.15/6.15 f2(I37, I38, I39, I40) -> f5(I37, I38, I41, I42) [1 <= I38 - 1 /\ I37 <= 1] 6.15/6.15 f4(I43, I44, I45, I46) -> f2(I44, I45, I47, I48) [0 <= I43 - 1 /\ 1 <= I49 - 1] 6.15/6.15 f3(I50, I51, I52, I53) -> f4(I54, I51, I55, I56) [1 <= I57 - 1 /\ -1 <= I55 - 1 /\ I54 <= I50 /\ 0 <= I50 - 1 /\ 0 <= I54 - 1] 6.15/6.15 f3(I58, I59, I60, I61) -> f4(I62, I59, 0, I63) [I62 <= I58 /\ 1 <= I64 - 1 /\ 0 <= I58 - 1 /\ 0 <= I62 - 1] 6.15/6.15 f3(I65, I66, I67, I68) -> f2(I66, 0, I69, I70) [0 <= I65 - 1] 6.15/6.15 f1(I71, I72, I73, I74) -> f3(I75, I76, I77, I78) [0 <= I75 - 1 /\ 0 <= I71 - 1 /\ I75 <= I71 /\ 0 <= I72 - 1 /\ -1 <= I76 - 1] 6.15/6.15 f1(I79, I80, I81, I82) -> f3(I83, 0, I84, I85) [0 <= I83 - 1 /\ 0 <= I79 - 1 /\ 0 <= I80 - 1 /\ I83 <= I79] 6.15/6.15 f1(I86, I87, I88, I89) -> f2(0, 0, I90, I91) [0 = I87 /\ 0 <= I86 - 1] 6.15/6.15 6.15/6.15 The dependency graph for this problem is: 6.15/6.15 3 -> 6.15/6.15 4 -> 3 6.15/6.15 5 -> 4 6.15/6.15 6 -> 3 6.15/6.15 7 -> 6 6.15/6.15 Where: 6.15/6.15 3) f6#(I13, I14, I15, I16) -> f7#(I13, I14, 0, I16) [1 <= I14 - 1 /\ 0 <= y1 - 1 /\ y1 <= I14 - 1 /\ 0 = I15] 6.15/6.15 4) f5#(I17, I18, I19, I20) -> f6#(I17, I18, I21, I22) [1 <= I18 - 1 /\ 2 <= I17 - 1 /\ I18 - 2 * I23 <= 1 /\ 0 <= I18 - 2 * I23 /\ I18 - 2 * I23 = I21] 6.15/6.15 5) f2#(I24, I25, I26, I27) -> f5#(I24, I25, I28, I29) [1 <= I25 - 1 /\ 2 <= I24 - 1] 6.15/6.15 6) f5#(I30, I31, I32, I33) -> f6#(I30, I31, I34, I35) [1 <= I31 - 1 /\ I30 <= 1 /\ I31 - 2 * I36 <= 1 /\ 0 <= I31 - 2 * I36 /\ I31 - 2 * I36 = I34] 6.15/6.15 7) f2#(I37, I38, I39, I40) -> f5#(I37, I38, I41, I42) [1 <= I38 - 1 /\ I37 <= 1] 6.15/6.15 6.15/6.15 We have the following SCCs. 6.15/6.15 6.15/9.13 EOF