/export/starexec/sandbox2/solver/bin/starexec_run_Transition /export/starexec/sandbox2/benchmark/theBenchmark.smt2 /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE DP problem for innermost termination. P = f19#(x1, x2, x3) -> f18#(x1, x2, x3) f18#(I0, I1, I2) -> f1#(I0, I1, I2) f16#(I6, I7, I8) -> f1#(I6, I7, I8) f1#(I9, I10, I11) -> f16#(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15#(I12, I13, I14) -> f1#(I12, I13, I14) f14#(I15, I16, I17) -> f15#(I15, I16, I17) [3 <= I16] f14#(I18, I19, I20) -> f15#(I18, I19, I20) [1 + I19 <= 2] f1#(I21, I22, I23) -> f14#(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13#(I24, I25, I26) -> f1#(I24, I25, I26) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11#(I30, I31, I32) -> f12#(I30, I31, I32) [3 <= I32] f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10#(I39, I40, I41) -> f1#(I39, I40, I41) f9#(I42, I43, I44) -> f10#(I42, I43, I44) [3 <= I43] f9#(I45, I46, I47) -> f10#(I45, I46, I47) [1 + I46 <= 2] f8#(I48, I49, I50) -> f9#(I48, I49, I50) [3 <= I50] f8#(I51, I52, I53) -> f9#(I51, I52, I53) [1 + I53 <= 2] f1#(I54, I55, I56) -> f8#(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7#(I57, I58, I59) -> f1#(I57, I58, I59) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] f5#(I66, I67, I68) -> f6#(I66, I67, I68) [1 + I68 <= 2] f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4#(I72, I73, I74) -> f1#(I72, I73, I74) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] f2#(I84, I85, I86) -> f3#(I84, I85, I86) [1 + I86 <= 2] f1#(I87, I88, I89) -> f2#(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] R = f19(x1, x2, x3) -> f18(x1, x2, x3) f18(I0, I1, I2) -> f1(I0, I1, I2) f1(I3, I4, I5) -> f17(rnd1, I4, I5) [rnd1 = rnd1 /\ 3 - I4 <= 0 /\ 2 - I5 <= 0] f16(I6, I7, I8) -> f1(I6, I7, I8) f1(I9, I10, I11) -> f16(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15(I12, I13, I14) -> f1(I12, I13, I14) f14(I15, I16, I17) -> f15(I15, I16, I17) [3 <= I16] f14(I18, I19, I20) -> f15(I18, I19, I20) [1 + I19 <= 2] f1(I21, I22, I23) -> f14(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13(I24, I25, I26) -> f1(I24, I25, I26) f12(I27, I28, I29) -> f13(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11(I30, I31, I32) -> f12(I30, I31, I32) [3 <= I32] f11(I33, I34, I35) -> f12(I33, I34, I35) [1 + I35 <= 2] f1(I36, I37, I38) -> f11(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10(I39, I40, I41) -> f1(I39, I40, I41) f9(I42, I43, I44) -> f10(I42, I43, I44) [3 <= I43] f9(I45, I46, I47) -> f10(I45, I46, I47) [1 + I46 <= 2] f8(I48, I49, I50) -> f9(I48, I49, I50) [3 <= I50] f8(I51, I52, I53) -> f9(I51, I52, I53) [1 + I53 <= 2] f1(I54, I55, I56) -> f8(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7(I57, I58, I59) -> f1(I57, I58, I59) f6(I60, I61, I62) -> f7(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5(I63, I64, I65) -> f6(I63, I64, I65) [3 <= I65] f5(I66, I67, I68) -> f6(I66, I67, I68) [1 + I68 <= 2] f1(I69, I70, I71) -> f5(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4(I72, I73, I74) -> f1(I72, I73, I74) f3(I75, I76, I77) -> f4(I75, I76, I77) [3 <= I76] f3(I78, I79, I80) -> f4(I78, I79, I80) [1 + I79 <= 2] f2(I81, I82, I83) -> f3(I81, I82, I83) [3 <= I83] f2(I84, I85, I86) -> f3(I84, I85, I86) [1 + I86 <= 2] f1(I87, I88, I89) -> f2(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] The dependency graph for this problem is: 0 -> 1 1 -> 3, 7, 12, 18, 23, 29 2 -> 3, 7, 12, 18, 23, 29 3 -> 2 4 -> 3, 7, 12, 18, 23, 29 5 -> 4 6 -> 4 7 -> 5, 6 8 -> 3, 7, 12, 18, 23, 29 9 -> 8 10 -> 9 11 -> 9 12 -> 11 13 -> 3, 7, 12, 18, 23, 29 14 -> 13 15 -> 13 16 -> 14, 15 17 -> 14, 15 18 -> 17 19 -> 3, 7, 12, 18, 23, 29 20 -> 19 21 -> 20 22 -> 20 23 -> 21 24 -> 3, 7, 12, 18, 23, 29 25 -> 24 26 -> 24 27 -> 25, 26 28 -> 25, 26 29 -> 27 Where: 0) f19#(x1, x2, x3) -> f18#(x1, x2, x3) 1) f18#(I0, I1, I2) -> f1#(I0, I1, I2) 2) f16#(I6, I7, I8) -> f1#(I6, I7, I8) 3) f1#(I9, I10, I11) -> f16#(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] 4) f15#(I12, I13, I14) -> f1#(I12, I13, I14) 5) f14#(I15, I16, I17) -> f15#(I15, I16, I17) [3 <= I16] 6) f14#(I18, I19, I20) -> f15#(I18, I19, I20) [1 + I19 <= 2] 7) f1#(I21, I22, I23) -> f14#(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] 8) f13#(I24, I25, I26) -> f1#(I24, I25, I26) 9) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] 10) f11#(I30, I31, I32) -> f12#(I30, I31, I32) [3 <= I32] 11) f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] 12) f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] 13) f10#(I39, I40, I41) -> f1#(I39, I40, I41) 14) f9#(I42, I43, I44) -> f10#(I42, I43, I44) [3 <= I43] 15) f9#(I45, I46, I47) -> f10#(I45, I46, I47) [1 + I46 <= 2] 16) f8#(I48, I49, I50) -> f9#(I48, I49, I50) [3 <= I50] 17) f8#(I51, I52, I53) -> f9#(I51, I52, I53) [1 + I53 <= 2] 18) f1#(I54, I55, I56) -> f8#(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] 19) f7#(I57, I58, I59) -> f1#(I57, I58, I59) 20) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] 21) f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] 22) f5#(I66, I67, I68) -> f6#(I66, I67, I68) [1 + I68 <= 2] 23) f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] 24) f4#(I72, I73, I74) -> f1#(I72, I73, I74) 25) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] 26) f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] 27) f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] 28) f2#(I84, I85, I86) -> f3#(I84, I85, I86) [1 + I86 <= 2] 29) f1#(I87, I88, I89) -> f2#(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] We have the following SCCs. { 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 29 } DP problem for innermost termination. P = f16#(I6, I7, I8) -> f1#(I6, I7, I8) f1#(I9, I10, I11) -> f16#(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15#(I12, I13, I14) -> f1#(I12, I13, I14) f14#(I15, I16, I17) -> f15#(I15, I16, I17) [3 <= I16] f14#(I18, I19, I20) -> f15#(I18, I19, I20) [1 + I19 <= 2] f1#(I21, I22, I23) -> f14#(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13#(I24, I25, I26) -> f1#(I24, I25, I26) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10#(I39, I40, I41) -> f1#(I39, I40, I41) f9#(I42, I43, I44) -> f10#(I42, I43, I44) [3 <= I43] f9#(I45, I46, I47) -> f10#(I45, I46, I47) [1 + I46 <= 2] f8#(I51, I52, I53) -> f9#(I51, I52, I53) [1 + I53 <= 2] f1#(I54, I55, I56) -> f8#(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7#(I57, I58, I59) -> f1#(I57, I58, I59) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4#(I72, I73, I74) -> f1#(I72, I73, I74) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] f1#(I87, I88, I89) -> f2#(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] R = f19(x1, x2, x3) -> f18(x1, x2, x3) f18(I0, I1, I2) -> f1(I0, I1, I2) f1(I3, I4, I5) -> f17(rnd1, I4, I5) [rnd1 = rnd1 /\ 3 - I4 <= 0 /\ 2 - I5 <= 0] f16(I6, I7, I8) -> f1(I6, I7, I8) f1(I9, I10, I11) -> f16(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15(I12, I13, I14) -> f1(I12, I13, I14) f14(I15, I16, I17) -> f15(I15, I16, I17) [3 <= I16] f14(I18, I19, I20) -> f15(I18, I19, I20) [1 + I19 <= 2] f1(I21, I22, I23) -> f14(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13(I24, I25, I26) -> f1(I24, I25, I26) f12(I27, I28, I29) -> f13(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11(I30, I31, I32) -> f12(I30, I31, I32) [3 <= I32] f11(I33, I34, I35) -> f12(I33, I34, I35) [1 + I35 <= 2] f1(I36, I37, I38) -> f11(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10(I39, I40, I41) -> f1(I39, I40, I41) f9(I42, I43, I44) -> f10(I42, I43, I44) [3 <= I43] f9(I45, I46, I47) -> f10(I45, I46, I47) [1 + I46 <= 2] f8(I48, I49, I50) -> f9(I48, I49, I50) [3 <= I50] f8(I51, I52, I53) -> f9(I51, I52, I53) [1 + I53 <= 2] f1(I54, I55, I56) -> f8(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7(I57, I58, I59) -> f1(I57, I58, I59) f6(I60, I61, I62) -> f7(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5(I63, I64, I65) -> f6(I63, I64, I65) [3 <= I65] f5(I66, I67, I68) -> f6(I66, I67, I68) [1 + I68 <= 2] f1(I69, I70, I71) -> f5(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4(I72, I73, I74) -> f1(I72, I73, I74) f3(I75, I76, I77) -> f4(I75, I76, I77) [3 <= I76] f3(I78, I79, I80) -> f4(I78, I79, I80) [1 + I79 <= 2] f2(I81, I82, I83) -> f3(I81, I82, I83) [3 <= I83] f2(I84, I85, I86) -> f3(I84, I85, I86) [1 + I86 <= 2] f1(I87, I88, I89) -> f2(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] We use the extended value criterion with the projection function NU: NU[f2#(x0,x1,x2)] = -x2 + 2 NU[f3#(x0,x1,x2)] = -x2 + 2 NU[f4#(x0,x1,x2)] = -x2 + 2 NU[f5#(x0,x1,x2)] = x1 - x2 NU[f6#(x0,x1,x2)] = x1 - x2 NU[f7#(x0,x1,x2)] = -x2 + 2 NU[f8#(x0,x1,x2)] = -x2 + 3 NU[f9#(x0,x1,x2)] = -x2 + 3 NU[f10#(x0,x1,x2)] = -x2 + 3 NU[f11#(x0,x1,x2)] = -x2 + 3 NU[f12#(x0,x1,x2)] = -x2 + 3 NU[f13#(x0,x1,x2)] = -x2 + 3 NU[f14#(x0,x1,x2)] = -x2 + 2 NU[f15#(x0,x1,x2)] = -x2 + 2 NU[f1#(x0,x1,x2)] = -x2 + 2 NU[f16#(x0,x1,x2)] = -x2 + 3 This gives the following inequalities: ==> -I8 + 3 >= -I8 + 2 0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1 ==> -I11 + 2 >= -(1 + I11) + 3 ==> -I14 + 2 >= -I14 + 2 3 <= I16 ==> -I17 + 2 >= -I17 + 2 1 + I19 <= 2 ==> -I20 + 2 >= -I20 + 2 2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23 ==> -I23 + 2 > -(1 + I23) + 2 with -I23 + 2 >= 0 ==> -I26 + 3 >= -I26 + 2 2 <= I28 /\ I28 <= 2 ==> -I29 + 3 >= -I29 + 3 1 + I35 <= 2 ==> -I35 + 3 >= -I35 + 3 0 <= 1 - I38 ==> -I38 + 2 >= -(1 + I38) + 3 ==> -I41 + 3 >= -I41 + 2 3 <= I43 ==> -I44 + 3 >= -I44 + 3 1 + I46 <= 2 ==> -I47 + 3 >= -I47 + 3 1 + I53 <= 2 ==> -I53 + 3 >= -I53 + 3 0 <= 1 - I56 ==> -I56 + 2 >= -(1 + I56) + 3 ==> -I59 + 2 >= -I59 + 2 2 <= I61 /\ I61 <= 2 ==> I61 - I62 >= -I62 + 2 3 <= I65 ==> I64 - I65 >= I64 - I65 0 <= 2 - I70 /\ 2 - I71 <= 0 ==> -I71 + 2 >= (1 + I70) - (1 + I71) ==> -I74 + 2 >= -I74 + 2 3 <= I76 ==> -I77 + 2 >= -I77 + 2 1 + I79 <= 2 ==> -I80 + 2 >= -I80 + 2 3 <= I83 ==> -I83 + 2 >= -I83 + 2 0 <= 2 - I88 /\ 2 - I89 <= 0 ==> -I89 + 2 >= -(1 + I89) + 2 We remove all the strictly oriented dependency pairs. DP problem for innermost termination. P = f16#(I6, I7, I8) -> f1#(I6, I7, I8) f1#(I9, I10, I11) -> f16#(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15#(I12, I13, I14) -> f1#(I12, I13, I14) f14#(I15, I16, I17) -> f15#(I15, I16, I17) [3 <= I16] f14#(I18, I19, I20) -> f15#(I18, I19, I20) [1 + I19 <= 2] f13#(I24, I25, I26) -> f1#(I24, I25, I26) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10#(I39, I40, I41) -> f1#(I39, I40, I41) f9#(I42, I43, I44) -> f10#(I42, I43, I44) [3 <= I43] f9#(I45, I46, I47) -> f10#(I45, I46, I47) [1 + I46 <= 2] f8#(I51, I52, I53) -> f9#(I51, I52, I53) [1 + I53 <= 2] f1#(I54, I55, I56) -> f8#(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7#(I57, I58, I59) -> f1#(I57, I58, I59) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4#(I72, I73, I74) -> f1#(I72, I73, I74) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] f1#(I87, I88, I89) -> f2#(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] R = f19(x1, x2, x3) -> f18(x1, x2, x3) f18(I0, I1, I2) -> f1(I0, I1, I2) f1(I3, I4, I5) -> f17(rnd1, I4, I5) [rnd1 = rnd1 /\ 3 - I4 <= 0 /\ 2 - I5 <= 0] f16(I6, I7, I8) -> f1(I6, I7, I8) f1(I9, I10, I11) -> f16(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15(I12, I13, I14) -> f1(I12, I13, I14) f14(I15, I16, I17) -> f15(I15, I16, I17) [3 <= I16] f14(I18, I19, I20) -> f15(I18, I19, I20) [1 + I19 <= 2] f1(I21, I22, I23) -> f14(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13(I24, I25, I26) -> f1(I24, I25, I26) f12(I27, I28, I29) -> f13(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11(I30, I31, I32) -> f12(I30, I31, I32) [3 <= I32] f11(I33, I34, I35) -> f12(I33, I34, I35) [1 + I35 <= 2] f1(I36, I37, I38) -> f11(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10(I39, I40, I41) -> f1(I39, I40, I41) f9(I42, I43, I44) -> f10(I42, I43, I44) [3 <= I43] f9(I45, I46, I47) -> f10(I45, I46, I47) [1 + I46 <= 2] f8(I48, I49, I50) -> f9(I48, I49, I50) [3 <= I50] f8(I51, I52, I53) -> f9(I51, I52, I53) [1 + I53 <= 2] f1(I54, I55, I56) -> f8(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7(I57, I58, I59) -> f1(I57, I58, I59) f6(I60, I61, I62) -> f7(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5(I63, I64, I65) -> f6(I63, I64, I65) [3 <= I65] f5(I66, I67, I68) -> f6(I66, I67, I68) [1 + I68 <= 2] f1(I69, I70, I71) -> f5(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4(I72, I73, I74) -> f1(I72, I73, I74) f3(I75, I76, I77) -> f4(I75, I76, I77) [3 <= I76] f3(I78, I79, I80) -> f4(I78, I79, I80) [1 + I79 <= 2] f2(I81, I82, I83) -> f3(I81, I82, I83) [3 <= I83] f2(I84, I85, I86) -> f3(I84, I85, I86) [1 + I86 <= 2] f1(I87, I88, I89) -> f2(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] The dependency graph for this problem is: 2 -> 3, 12, 18, 23, 29 3 -> 2 4 -> 3, 12, 18, 23, 29 5 -> 4 6 -> 4 8 -> 3, 12, 18, 23, 29 9 -> 8 11 -> 9 12 -> 11 13 -> 3, 12, 18, 23, 29 14 -> 13 15 -> 13 17 -> 14, 15 18 -> 17 19 -> 3, 12, 18, 23, 29 20 -> 19 21 -> 20 23 -> 21 24 -> 3, 12, 18, 23, 29 25 -> 24 26 -> 24 27 -> 25, 26 29 -> 27 Where: 2) f16#(I6, I7, I8) -> f1#(I6, I7, I8) 3) f1#(I9, I10, I11) -> f16#(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] 4) f15#(I12, I13, I14) -> f1#(I12, I13, I14) 5) f14#(I15, I16, I17) -> f15#(I15, I16, I17) [3 <= I16] 6) f14#(I18, I19, I20) -> f15#(I18, I19, I20) [1 + I19 <= 2] 8) f13#(I24, I25, I26) -> f1#(I24, I25, I26) 9) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] 11) f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] 12) f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] 13) f10#(I39, I40, I41) -> f1#(I39, I40, I41) 14) f9#(I42, I43, I44) -> f10#(I42, I43, I44) [3 <= I43] 15) f9#(I45, I46, I47) -> f10#(I45, I46, I47) [1 + I46 <= 2] 17) f8#(I51, I52, I53) -> f9#(I51, I52, I53) [1 + I53 <= 2] 18) f1#(I54, I55, I56) -> f8#(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] 19) f7#(I57, I58, I59) -> f1#(I57, I58, I59) 20) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] 21) f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] 23) f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] 24) f4#(I72, I73, I74) -> f1#(I72, I73, I74) 25) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] 26) f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] 27) f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] 29) f1#(I87, I88, I89) -> f2#(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] We have the following SCCs. { 2, 3, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 29 } DP problem for innermost termination. P = f16#(I6, I7, I8) -> f1#(I6, I7, I8) f1#(I9, I10, I11) -> f16#(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f13#(I24, I25, I26) -> f1#(I24, I25, I26) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10#(I39, I40, I41) -> f1#(I39, I40, I41) f9#(I42, I43, I44) -> f10#(I42, I43, I44) [3 <= I43] f9#(I45, I46, I47) -> f10#(I45, I46, I47) [1 + I46 <= 2] f8#(I51, I52, I53) -> f9#(I51, I52, I53) [1 + I53 <= 2] f1#(I54, I55, I56) -> f8#(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7#(I57, I58, I59) -> f1#(I57, I58, I59) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4#(I72, I73, I74) -> f1#(I72, I73, I74) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] f1#(I87, I88, I89) -> f2#(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] R = f19(x1, x2, x3) -> f18(x1, x2, x3) f18(I0, I1, I2) -> f1(I0, I1, I2) f1(I3, I4, I5) -> f17(rnd1, I4, I5) [rnd1 = rnd1 /\ 3 - I4 <= 0 /\ 2 - I5 <= 0] f16(I6, I7, I8) -> f1(I6, I7, I8) f1(I9, I10, I11) -> f16(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15(I12, I13, I14) -> f1(I12, I13, I14) f14(I15, I16, I17) -> f15(I15, I16, I17) [3 <= I16] f14(I18, I19, I20) -> f15(I18, I19, I20) [1 + I19 <= 2] f1(I21, I22, I23) -> f14(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13(I24, I25, I26) -> f1(I24, I25, I26) f12(I27, I28, I29) -> f13(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11(I30, I31, I32) -> f12(I30, I31, I32) [3 <= I32] f11(I33, I34, I35) -> f12(I33, I34, I35) [1 + I35 <= 2] f1(I36, I37, I38) -> f11(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10(I39, I40, I41) -> f1(I39, I40, I41) f9(I42, I43, I44) -> f10(I42, I43, I44) [3 <= I43] f9(I45, I46, I47) -> f10(I45, I46, I47) [1 + I46 <= 2] f8(I48, I49, I50) -> f9(I48, I49, I50) [3 <= I50] f8(I51, I52, I53) -> f9(I51, I52, I53) [1 + I53 <= 2] f1(I54, I55, I56) -> f8(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7(I57, I58, I59) -> f1(I57, I58, I59) f6(I60, I61, I62) -> f7(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5(I63, I64, I65) -> f6(I63, I64, I65) [3 <= I65] f5(I66, I67, I68) -> f6(I66, I67, I68) [1 + I68 <= 2] f1(I69, I70, I71) -> f5(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4(I72, I73, I74) -> f1(I72, I73, I74) f3(I75, I76, I77) -> f4(I75, I76, I77) [3 <= I76] f3(I78, I79, I80) -> f4(I78, I79, I80) [1 + I79 <= 2] f2(I81, I82, I83) -> f3(I81, I82, I83) [3 <= I83] f2(I84, I85, I86) -> f3(I84, I85, I86) [1 + I86 <= 2] f1(I87, I88, I89) -> f2(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] We use the extended value criterion with the projection function NU: NU[f2#(x0,x1,x2)] = -x2 + 2 NU[f3#(x0,x1,x2)] = -x2 + 1 NU[f4#(x0,x1,x2)] = -x2 + 1 NU[f5#(x0,x1,x2)] = x1 - x2 - 1 NU[f6#(x0,x1,x2)] = x1 - x2 - 1 NU[f7#(x0,x1,x2)] = -x2 + 1 NU[f8#(x0,x1,x2)] = -x2 + 2 NU[f9#(x0,x1,x2)] = -x2 + 2 NU[f10#(x0,x1,x2)] = -x2 + 1 NU[f11#(x0,x1,x2)] = -x2 + 1 NU[f12#(x0,x1,x2)] = -x2 + 1 NU[f13#(x0,x1,x2)] = -x2 + 1 NU[f1#(x0,x1,x2)] = -x2 + 1 NU[f16#(x0,x1,x2)] = -x2 + 1 This gives the following inequalities: ==> -I8 + 1 >= -I8 + 1 0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1 ==> -I11 + 1 > -(1 + I11) + 1 with -I11 + 1 >= 0 ==> -I26 + 1 >= -I26 + 1 2 <= I28 /\ I28 <= 2 ==> -I29 + 1 >= -I29 + 1 1 + I35 <= 2 ==> -I35 + 1 >= -I35 + 1 0 <= 1 - I38 ==> -I38 + 1 >= -(1 + I38) + 1 ==> -I41 + 1 >= -I41 + 1 3 <= I43 ==> -I44 + 2 >= -I44 + 1 1 + I46 <= 2 ==> -I47 + 2 >= -I47 + 1 1 + I53 <= 2 ==> -I53 + 2 >= -I53 + 2 0 <= 1 - I56 ==> -I56 + 1 >= -(1 + I56) + 2 ==> -I59 + 1 >= -I59 + 1 2 <= I61 /\ I61 <= 2 ==> I61 - I62 - 1 >= -I62 + 1 3 <= I65 ==> I64 - I65 - 1 >= I64 - I65 - 1 0 <= 2 - I70 /\ 2 - I71 <= 0 ==> -I71 + 1 >= (1 + I70) - (1 + I71) - 1 ==> -I74 + 1 >= -I74 + 1 3 <= I76 ==> -I77 + 1 >= -I77 + 1 1 + I79 <= 2 ==> -I80 + 1 >= -I80 + 1 3 <= I83 ==> -I83 + 2 >= -I83 + 1 0 <= 2 - I88 /\ 2 - I89 <= 0 ==> -I89 + 1 >= -(1 + I89) + 2 We remove all the strictly oriented dependency pairs. DP problem for innermost termination. P = f16#(I6, I7, I8) -> f1#(I6, I7, I8) f13#(I24, I25, I26) -> f1#(I24, I25, I26) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10#(I39, I40, I41) -> f1#(I39, I40, I41) f9#(I42, I43, I44) -> f10#(I42, I43, I44) [3 <= I43] f9#(I45, I46, I47) -> f10#(I45, I46, I47) [1 + I46 <= 2] f8#(I51, I52, I53) -> f9#(I51, I52, I53) [1 + I53 <= 2] f1#(I54, I55, I56) -> f8#(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7#(I57, I58, I59) -> f1#(I57, I58, I59) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4#(I72, I73, I74) -> f1#(I72, I73, I74) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] f1#(I87, I88, I89) -> f2#(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] R = f19(x1, x2, x3) -> f18(x1, x2, x3) f18(I0, I1, I2) -> f1(I0, I1, I2) f1(I3, I4, I5) -> f17(rnd1, I4, I5) [rnd1 = rnd1 /\ 3 - I4 <= 0 /\ 2 - I5 <= 0] f16(I6, I7, I8) -> f1(I6, I7, I8) f1(I9, I10, I11) -> f16(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15(I12, I13, I14) -> f1(I12, I13, I14) f14(I15, I16, I17) -> f15(I15, I16, I17) [3 <= I16] f14(I18, I19, I20) -> f15(I18, I19, I20) [1 + I19 <= 2] f1(I21, I22, I23) -> f14(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13(I24, I25, I26) -> f1(I24, I25, I26) f12(I27, I28, I29) -> f13(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11(I30, I31, I32) -> f12(I30, I31, I32) [3 <= I32] f11(I33, I34, I35) -> f12(I33, I34, I35) [1 + I35 <= 2] f1(I36, I37, I38) -> f11(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10(I39, I40, I41) -> f1(I39, I40, I41) f9(I42, I43, I44) -> f10(I42, I43, I44) [3 <= I43] f9(I45, I46, I47) -> f10(I45, I46, I47) [1 + I46 <= 2] f8(I48, I49, I50) -> f9(I48, I49, I50) [3 <= I50] f8(I51, I52, I53) -> f9(I51, I52, I53) [1 + I53 <= 2] f1(I54, I55, I56) -> f8(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7(I57, I58, I59) -> f1(I57, I58, I59) f6(I60, I61, I62) -> f7(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5(I63, I64, I65) -> f6(I63, I64, I65) [3 <= I65] f5(I66, I67, I68) -> f6(I66, I67, I68) [1 + I68 <= 2] f1(I69, I70, I71) -> f5(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4(I72, I73, I74) -> f1(I72, I73, I74) f3(I75, I76, I77) -> f4(I75, I76, I77) [3 <= I76] f3(I78, I79, I80) -> f4(I78, I79, I80) [1 + I79 <= 2] f2(I81, I82, I83) -> f3(I81, I82, I83) [3 <= I83] f2(I84, I85, I86) -> f3(I84, I85, I86) [1 + I86 <= 2] f1(I87, I88, I89) -> f2(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] The dependency graph for this problem is: 2 -> 12, 18, 23, 29 8 -> 12, 18, 23, 29 9 -> 8 11 -> 9 12 -> 11 13 -> 12, 18, 23, 29 14 -> 13 15 -> 13 17 -> 14, 15 18 -> 17 19 -> 12, 18, 23, 29 20 -> 19 21 -> 20 23 -> 21 24 -> 12, 18, 23, 29 25 -> 24 26 -> 24 27 -> 25, 26 29 -> 27 Where: 2) f16#(I6, I7, I8) -> f1#(I6, I7, I8) 8) f13#(I24, I25, I26) -> f1#(I24, I25, I26) 9) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] 11) f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] 12) f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] 13) f10#(I39, I40, I41) -> f1#(I39, I40, I41) 14) f9#(I42, I43, I44) -> f10#(I42, I43, I44) [3 <= I43] 15) f9#(I45, I46, I47) -> f10#(I45, I46, I47) [1 + I46 <= 2] 17) f8#(I51, I52, I53) -> f9#(I51, I52, I53) [1 + I53 <= 2] 18) f1#(I54, I55, I56) -> f8#(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] 19) f7#(I57, I58, I59) -> f1#(I57, I58, I59) 20) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] 21) f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] 23) f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] 24) f4#(I72, I73, I74) -> f1#(I72, I73, I74) 25) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] 26) f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] 27) f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] 29) f1#(I87, I88, I89) -> f2#(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] We have the following SCCs. { 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 29 } DP problem for innermost termination. P = f13#(I24, I25, I26) -> f1#(I24, I25, I26) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10#(I39, I40, I41) -> f1#(I39, I40, I41) f9#(I42, I43, I44) -> f10#(I42, I43, I44) [3 <= I43] f9#(I45, I46, I47) -> f10#(I45, I46, I47) [1 + I46 <= 2] f8#(I51, I52, I53) -> f9#(I51, I52, I53) [1 + I53 <= 2] f1#(I54, I55, I56) -> f8#(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7#(I57, I58, I59) -> f1#(I57, I58, I59) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4#(I72, I73, I74) -> f1#(I72, I73, I74) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] f1#(I87, I88, I89) -> f2#(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] R = f19(x1, x2, x3) -> f18(x1, x2, x3) f18(I0, I1, I2) -> f1(I0, I1, I2) f1(I3, I4, I5) -> f17(rnd1, I4, I5) [rnd1 = rnd1 /\ 3 - I4 <= 0 /\ 2 - I5 <= 0] f16(I6, I7, I8) -> f1(I6, I7, I8) f1(I9, I10, I11) -> f16(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15(I12, I13, I14) -> f1(I12, I13, I14) f14(I15, I16, I17) -> f15(I15, I16, I17) [3 <= I16] f14(I18, I19, I20) -> f15(I18, I19, I20) [1 + I19 <= 2] f1(I21, I22, I23) -> f14(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13(I24, I25, I26) -> f1(I24, I25, I26) f12(I27, I28, I29) -> f13(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11(I30, I31, I32) -> f12(I30, I31, I32) [3 <= I32] f11(I33, I34, I35) -> f12(I33, I34, I35) [1 + I35 <= 2] f1(I36, I37, I38) -> f11(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10(I39, I40, I41) -> f1(I39, I40, I41) f9(I42, I43, I44) -> f10(I42, I43, I44) [3 <= I43] f9(I45, I46, I47) -> f10(I45, I46, I47) [1 + I46 <= 2] f8(I48, I49, I50) -> f9(I48, I49, I50) [3 <= I50] f8(I51, I52, I53) -> f9(I51, I52, I53) [1 + I53 <= 2] f1(I54, I55, I56) -> f8(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7(I57, I58, I59) -> f1(I57, I58, I59) f6(I60, I61, I62) -> f7(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5(I63, I64, I65) -> f6(I63, I64, I65) [3 <= I65] f5(I66, I67, I68) -> f6(I66, I67, I68) [1 + I68 <= 2] f1(I69, I70, I71) -> f5(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4(I72, I73, I74) -> f1(I72, I73, I74) f3(I75, I76, I77) -> f4(I75, I76, I77) [3 <= I76] f3(I78, I79, I80) -> f4(I78, I79, I80) [1 + I79 <= 2] f2(I81, I82, I83) -> f3(I81, I82, I83) [3 <= I83] f2(I84, I85, I86) -> f3(I84, I85, I86) [1 + I86 <= 2] f1(I87, I88, I89) -> f2(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] We use the extended value criterion with the projection function NU: NU[f2#(x0,x1,x2)] = -x2 NU[f3#(x0,x1,x2)] = -x2 NU[f4#(x0,x1,x2)] = -x2 NU[f5#(x0,x1,x2)] = -x2 NU[f6#(x0,x1,x2)] = -x2 NU[f7#(x0,x1,x2)] = -x2 NU[f8#(x0,x1,x2)] = -x2 + 1 NU[f9#(x0,x1,x2)] = -x2 NU[f10#(x0,x1,x2)] = -x2 NU[f11#(x0,x1,x2)] = -x2 NU[f12#(x0,x1,x2)] = -x2 NU[f1#(x0,x1,x2)] = -x2 NU[f13#(x0,x1,x2)] = -x2 This gives the following inequalities: ==> -I26 >= -I26 2 <= I28 /\ I28 <= 2 ==> -I29 >= -I29 1 + I35 <= 2 ==> -I35 >= -I35 0 <= 1 - I38 ==> -I38 >= -(1 + I38) ==> -I41 >= -I41 3 <= I43 ==> -I44 >= -I44 1 + I46 <= 2 ==> -I47 >= -I47 1 + I53 <= 2 ==> -I53 + 1 > -I53 with -I53 + 1 >= 0 0 <= 1 - I56 ==> -I56 >= -(1 + I56) + 1 ==> -I59 >= -I59 2 <= I61 /\ I61 <= 2 ==> -I62 >= -I62 3 <= I65 ==> -I65 >= -I65 0 <= 2 - I70 /\ 2 - I71 <= 0 ==> -I71 >= -(1 + I71) ==> -I74 >= -I74 3 <= I76 ==> -I77 >= -I77 1 + I79 <= 2 ==> -I80 >= -I80 3 <= I83 ==> -I83 >= -I83 0 <= 2 - I88 /\ 2 - I89 <= 0 ==> -I89 >= -(1 + I89) We remove all the strictly oriented dependency pairs. DP problem for innermost termination. P = f13#(I24, I25, I26) -> f1#(I24, I25, I26) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10#(I39, I40, I41) -> f1#(I39, I40, I41) f9#(I42, I43, I44) -> f10#(I42, I43, I44) [3 <= I43] f9#(I45, I46, I47) -> f10#(I45, I46, I47) [1 + I46 <= 2] f1#(I54, I55, I56) -> f8#(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7#(I57, I58, I59) -> f1#(I57, I58, I59) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4#(I72, I73, I74) -> f1#(I72, I73, I74) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] f1#(I87, I88, I89) -> f2#(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] R = f19(x1, x2, x3) -> f18(x1, x2, x3) f18(I0, I1, I2) -> f1(I0, I1, I2) f1(I3, I4, I5) -> f17(rnd1, I4, I5) [rnd1 = rnd1 /\ 3 - I4 <= 0 /\ 2 - I5 <= 0] f16(I6, I7, I8) -> f1(I6, I7, I8) f1(I9, I10, I11) -> f16(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15(I12, I13, I14) -> f1(I12, I13, I14) f14(I15, I16, I17) -> f15(I15, I16, I17) [3 <= I16] f14(I18, I19, I20) -> f15(I18, I19, I20) [1 + I19 <= 2] f1(I21, I22, I23) -> f14(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13(I24, I25, I26) -> f1(I24, I25, I26) f12(I27, I28, I29) -> f13(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11(I30, I31, I32) -> f12(I30, I31, I32) [3 <= I32] f11(I33, I34, I35) -> f12(I33, I34, I35) [1 + I35 <= 2] f1(I36, I37, I38) -> f11(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10(I39, I40, I41) -> f1(I39, I40, I41) f9(I42, I43, I44) -> f10(I42, I43, I44) [3 <= I43] f9(I45, I46, I47) -> f10(I45, I46, I47) [1 + I46 <= 2] f8(I48, I49, I50) -> f9(I48, I49, I50) [3 <= I50] f8(I51, I52, I53) -> f9(I51, I52, I53) [1 + I53 <= 2] f1(I54, I55, I56) -> f8(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7(I57, I58, I59) -> f1(I57, I58, I59) f6(I60, I61, I62) -> f7(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5(I63, I64, I65) -> f6(I63, I64, I65) [3 <= I65] f5(I66, I67, I68) -> f6(I66, I67, I68) [1 + I68 <= 2] f1(I69, I70, I71) -> f5(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4(I72, I73, I74) -> f1(I72, I73, I74) f3(I75, I76, I77) -> f4(I75, I76, I77) [3 <= I76] f3(I78, I79, I80) -> f4(I78, I79, I80) [1 + I79 <= 2] f2(I81, I82, I83) -> f3(I81, I82, I83) [3 <= I83] f2(I84, I85, I86) -> f3(I84, I85, I86) [1 + I86 <= 2] f1(I87, I88, I89) -> f2(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] The dependency graph for this problem is: 8 -> 12, 18, 23, 29 9 -> 8 11 -> 9 12 -> 11 13 -> 12, 18, 23, 29 14 -> 13 15 -> 13 18 -> 19 -> 12, 18, 23, 29 20 -> 19 21 -> 20 23 -> 21 24 -> 12, 18, 23, 29 25 -> 24 26 -> 24 27 -> 25, 26 29 -> 27 Where: 8) f13#(I24, I25, I26) -> f1#(I24, I25, I26) 9) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] 11) f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] 12) f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] 13) f10#(I39, I40, I41) -> f1#(I39, I40, I41) 14) f9#(I42, I43, I44) -> f10#(I42, I43, I44) [3 <= I43] 15) f9#(I45, I46, I47) -> f10#(I45, I46, I47) [1 + I46 <= 2] 18) f1#(I54, I55, I56) -> f8#(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] 19) f7#(I57, I58, I59) -> f1#(I57, I58, I59) 20) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] 21) f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] 23) f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] 24) f4#(I72, I73, I74) -> f1#(I72, I73, I74) 25) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] 26) f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] 27) f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] 29) f1#(I87, I88, I89) -> f2#(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] We have the following SCCs. { 8, 9, 11, 12, 19, 20, 21, 23, 24, 25, 26, 27, 29 } DP problem for innermost termination. P = f13#(I24, I25, I26) -> f1#(I24, I25, I26) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f7#(I57, I58, I59) -> f1#(I57, I58, I59) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4#(I72, I73, I74) -> f1#(I72, I73, I74) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] f1#(I87, I88, I89) -> f2#(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] R = f19(x1, x2, x3) -> f18(x1, x2, x3) f18(I0, I1, I2) -> f1(I0, I1, I2) f1(I3, I4, I5) -> f17(rnd1, I4, I5) [rnd1 = rnd1 /\ 3 - I4 <= 0 /\ 2 - I5 <= 0] f16(I6, I7, I8) -> f1(I6, I7, I8) f1(I9, I10, I11) -> f16(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15(I12, I13, I14) -> f1(I12, I13, I14) f14(I15, I16, I17) -> f15(I15, I16, I17) [3 <= I16] f14(I18, I19, I20) -> f15(I18, I19, I20) [1 + I19 <= 2] f1(I21, I22, I23) -> f14(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13(I24, I25, I26) -> f1(I24, I25, I26) f12(I27, I28, I29) -> f13(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11(I30, I31, I32) -> f12(I30, I31, I32) [3 <= I32] f11(I33, I34, I35) -> f12(I33, I34, I35) [1 + I35 <= 2] f1(I36, I37, I38) -> f11(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10(I39, I40, I41) -> f1(I39, I40, I41) f9(I42, I43, I44) -> f10(I42, I43, I44) [3 <= I43] f9(I45, I46, I47) -> f10(I45, I46, I47) [1 + I46 <= 2] f8(I48, I49, I50) -> f9(I48, I49, I50) [3 <= I50] f8(I51, I52, I53) -> f9(I51, I52, I53) [1 + I53 <= 2] f1(I54, I55, I56) -> f8(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7(I57, I58, I59) -> f1(I57, I58, I59) f6(I60, I61, I62) -> f7(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5(I63, I64, I65) -> f6(I63, I64, I65) [3 <= I65] f5(I66, I67, I68) -> f6(I66, I67, I68) [1 + I68 <= 2] f1(I69, I70, I71) -> f5(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4(I72, I73, I74) -> f1(I72, I73, I74) f3(I75, I76, I77) -> f4(I75, I76, I77) [3 <= I76] f3(I78, I79, I80) -> f4(I78, I79, I80) [1 + I79 <= 2] f2(I81, I82, I83) -> f3(I81, I82, I83) [3 <= I83] f2(I84, I85, I86) -> f3(I84, I85, I86) [1 + I86 <= 2] f1(I87, I88, I89) -> f2(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] We use the extended value criterion with the projection function NU: NU[f2#(x0,x1,x2)] = -x1 + 2 NU[f3#(x0,x1,x2)] = -x1 + 2 NU[f4#(x0,x1,x2)] = -x1 + 2 NU[f5#(x0,x1,x2)] = -x1 + 3 NU[f6#(x0,x1,x2)] = -x1 + 3 NU[f7#(x0,x1,x2)] = -x1 + 2 NU[f11#(x0,x1,x2)] = -x1 + 3 NU[f12#(x0,x1,x2)] = -x1 + 3 NU[f1#(x0,x1,x2)] = -x1 + 2 NU[f13#(x0,x1,x2)] = -x1 + 2 This gives the following inequalities: ==> -I25 + 2 >= -I25 + 2 2 <= I28 /\ I28 <= 2 ==> -I28 + 3 >= -1 + 2 1 + I35 <= 2 ==> -I34 + 3 >= -I34 + 3 0 <= 1 - I38 ==> -I37 + 2 >= -(1 + I37) + 3 ==> -I58 + 2 >= -I58 + 2 2 <= I61 /\ I61 <= 2 ==> -I61 + 3 >= -1 + 2 3 <= I65 ==> -I64 + 3 >= -I64 + 3 0 <= 2 - I70 /\ 2 - I71 <= 0 ==> -I70 + 2 >= -(1 + I70) + 3 ==> -I73 + 2 >= -I73 + 2 3 <= I76 ==> -I76 + 2 >= -I76 + 2 1 + I79 <= 2 ==> -I79 + 2 >= -I79 + 2 3 <= I83 ==> -I82 + 2 >= -I82 + 2 0 <= 2 - I88 /\ 2 - I89 <= 0 ==> -I88 + 2 > -(1 + I88) + 2 with -I88 + 2 >= 0 We remove all the strictly oriented dependency pairs. DP problem for innermost termination. P = f13#(I24, I25, I26) -> f1#(I24, I25, I26) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f7#(I57, I58, I59) -> f1#(I57, I58, I59) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4#(I72, I73, I74) -> f1#(I72, I73, I74) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] R = f19(x1, x2, x3) -> f18(x1, x2, x3) f18(I0, I1, I2) -> f1(I0, I1, I2) f1(I3, I4, I5) -> f17(rnd1, I4, I5) [rnd1 = rnd1 /\ 3 - I4 <= 0 /\ 2 - I5 <= 0] f16(I6, I7, I8) -> f1(I6, I7, I8) f1(I9, I10, I11) -> f16(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15(I12, I13, I14) -> f1(I12, I13, I14) f14(I15, I16, I17) -> f15(I15, I16, I17) [3 <= I16] f14(I18, I19, I20) -> f15(I18, I19, I20) [1 + I19 <= 2] f1(I21, I22, I23) -> f14(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13(I24, I25, I26) -> f1(I24, I25, I26) f12(I27, I28, I29) -> f13(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11(I30, I31, I32) -> f12(I30, I31, I32) [3 <= I32] f11(I33, I34, I35) -> f12(I33, I34, I35) [1 + I35 <= 2] f1(I36, I37, I38) -> f11(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10(I39, I40, I41) -> f1(I39, I40, I41) f9(I42, I43, I44) -> f10(I42, I43, I44) [3 <= I43] f9(I45, I46, I47) -> f10(I45, I46, I47) [1 + I46 <= 2] f8(I48, I49, I50) -> f9(I48, I49, I50) [3 <= I50] f8(I51, I52, I53) -> f9(I51, I52, I53) [1 + I53 <= 2] f1(I54, I55, I56) -> f8(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7(I57, I58, I59) -> f1(I57, I58, I59) f6(I60, I61, I62) -> f7(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5(I63, I64, I65) -> f6(I63, I64, I65) [3 <= I65] f5(I66, I67, I68) -> f6(I66, I67, I68) [1 + I68 <= 2] f1(I69, I70, I71) -> f5(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4(I72, I73, I74) -> f1(I72, I73, I74) f3(I75, I76, I77) -> f4(I75, I76, I77) [3 <= I76] f3(I78, I79, I80) -> f4(I78, I79, I80) [1 + I79 <= 2] f2(I81, I82, I83) -> f3(I81, I82, I83) [3 <= I83] f2(I84, I85, I86) -> f3(I84, I85, I86) [1 + I86 <= 2] f1(I87, I88, I89) -> f2(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] The dependency graph for this problem is: 8 -> 12, 23 9 -> 8 11 -> 9 12 -> 11 19 -> 12, 23 20 -> 19 21 -> 20 23 -> 21 24 -> 12, 23 25 -> 24 26 -> 24 27 -> 25, 26 Where: 8) f13#(I24, I25, I26) -> f1#(I24, I25, I26) 9) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] 11) f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] 12) f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] 19) f7#(I57, I58, I59) -> f1#(I57, I58, I59) 20) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] 21) f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] 23) f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] 24) f4#(I72, I73, I74) -> f1#(I72, I73, I74) 25) f3#(I75, I76, I77) -> f4#(I75, I76, I77) [3 <= I76] 26) f3#(I78, I79, I80) -> f4#(I78, I79, I80) [1 + I79 <= 2] 27) f2#(I81, I82, I83) -> f3#(I81, I82, I83) [3 <= I83] We have the following SCCs. { 8, 9, 11, 12, 19, 20, 21, 23 } DP problem for innermost termination. P = f13#(I24, I25, I26) -> f1#(I24, I25, I26) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11#(I33, I34, I35) -> f12#(I33, I34, I35) [1 + I35 <= 2] f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f7#(I57, I58, I59) -> f1#(I57, I58, I59) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] R = f19(x1, x2, x3) -> f18(x1, x2, x3) f18(I0, I1, I2) -> f1(I0, I1, I2) f1(I3, I4, I5) -> f17(rnd1, I4, I5) [rnd1 = rnd1 /\ 3 - I4 <= 0 /\ 2 - I5 <= 0] f16(I6, I7, I8) -> f1(I6, I7, I8) f1(I9, I10, I11) -> f16(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15(I12, I13, I14) -> f1(I12, I13, I14) f14(I15, I16, I17) -> f15(I15, I16, I17) [3 <= I16] f14(I18, I19, I20) -> f15(I18, I19, I20) [1 + I19 <= 2] f1(I21, I22, I23) -> f14(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13(I24, I25, I26) -> f1(I24, I25, I26) f12(I27, I28, I29) -> f13(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11(I30, I31, I32) -> f12(I30, I31, I32) [3 <= I32] f11(I33, I34, I35) -> f12(I33, I34, I35) [1 + I35 <= 2] f1(I36, I37, I38) -> f11(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10(I39, I40, I41) -> f1(I39, I40, I41) f9(I42, I43, I44) -> f10(I42, I43, I44) [3 <= I43] f9(I45, I46, I47) -> f10(I45, I46, I47) [1 + I46 <= 2] f8(I48, I49, I50) -> f9(I48, I49, I50) [3 <= I50] f8(I51, I52, I53) -> f9(I51, I52, I53) [1 + I53 <= 2] f1(I54, I55, I56) -> f8(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7(I57, I58, I59) -> f1(I57, I58, I59) f6(I60, I61, I62) -> f7(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5(I63, I64, I65) -> f6(I63, I64, I65) [3 <= I65] f5(I66, I67, I68) -> f6(I66, I67, I68) [1 + I68 <= 2] f1(I69, I70, I71) -> f5(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4(I72, I73, I74) -> f1(I72, I73, I74) f3(I75, I76, I77) -> f4(I75, I76, I77) [3 <= I76] f3(I78, I79, I80) -> f4(I78, I79, I80) [1 + I79 <= 2] f2(I81, I82, I83) -> f3(I81, I82, I83) [3 <= I83] f2(I84, I85, I86) -> f3(I84, I85, I86) [1 + I86 <= 2] f1(I87, I88, I89) -> f2(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] We use the extended value criterion with the projection function NU: NU[f5#(x0,x1,x2)] = -x2 + 1 NU[f6#(x0,x1,x2)] = -x2 + 1 NU[f7#(x0,x1,x2)] = -x2 NU[f11#(x0,x1,x2)] = -x2 + 1 NU[f12#(x0,x1,x2)] = -x2 NU[f1#(x0,x1,x2)] = -x2 NU[f13#(x0,x1,x2)] = -x2 This gives the following inequalities: ==> -I26 >= -I26 2 <= I28 /\ I28 <= 2 ==> -I29 >= -I29 1 + I35 <= 2 ==> -I35 + 1 > -I35 with -I35 + 1 >= 0 0 <= 1 - I38 ==> -I38 >= -(1 + I38) + 1 ==> -I59 >= -I59 2 <= I61 /\ I61 <= 2 ==> -I62 + 1 >= -I62 3 <= I65 ==> -I65 + 1 >= -I65 + 1 0 <= 2 - I70 /\ 2 - I71 <= 0 ==> -I71 >= -(1 + I71) + 1 We remove all the strictly oriented dependency pairs. DP problem for innermost termination. P = f13#(I24, I25, I26) -> f1#(I24, I25, I26) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f7#(I57, I58, I59) -> f1#(I57, I58, I59) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] R = f19(x1, x2, x3) -> f18(x1, x2, x3) f18(I0, I1, I2) -> f1(I0, I1, I2) f1(I3, I4, I5) -> f17(rnd1, I4, I5) [rnd1 = rnd1 /\ 3 - I4 <= 0 /\ 2 - I5 <= 0] f16(I6, I7, I8) -> f1(I6, I7, I8) f1(I9, I10, I11) -> f16(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15(I12, I13, I14) -> f1(I12, I13, I14) f14(I15, I16, I17) -> f15(I15, I16, I17) [3 <= I16] f14(I18, I19, I20) -> f15(I18, I19, I20) [1 + I19 <= 2] f1(I21, I22, I23) -> f14(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13(I24, I25, I26) -> f1(I24, I25, I26) f12(I27, I28, I29) -> f13(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11(I30, I31, I32) -> f12(I30, I31, I32) [3 <= I32] f11(I33, I34, I35) -> f12(I33, I34, I35) [1 + I35 <= 2] f1(I36, I37, I38) -> f11(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10(I39, I40, I41) -> f1(I39, I40, I41) f9(I42, I43, I44) -> f10(I42, I43, I44) [3 <= I43] f9(I45, I46, I47) -> f10(I45, I46, I47) [1 + I46 <= 2] f8(I48, I49, I50) -> f9(I48, I49, I50) [3 <= I50] f8(I51, I52, I53) -> f9(I51, I52, I53) [1 + I53 <= 2] f1(I54, I55, I56) -> f8(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7(I57, I58, I59) -> f1(I57, I58, I59) f6(I60, I61, I62) -> f7(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5(I63, I64, I65) -> f6(I63, I64, I65) [3 <= I65] f5(I66, I67, I68) -> f6(I66, I67, I68) [1 + I68 <= 2] f1(I69, I70, I71) -> f5(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4(I72, I73, I74) -> f1(I72, I73, I74) f3(I75, I76, I77) -> f4(I75, I76, I77) [3 <= I76] f3(I78, I79, I80) -> f4(I78, I79, I80) [1 + I79 <= 2] f2(I81, I82, I83) -> f3(I81, I82, I83) [3 <= I83] f2(I84, I85, I86) -> f3(I84, I85, I86) [1 + I86 <= 2] f1(I87, I88, I89) -> f2(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0] The dependency graph for this problem is: 8 -> 12, 23 9 -> 8 12 -> 19 -> 12, 23 20 -> 19 21 -> 20 23 -> 21 Where: 8) f13#(I24, I25, I26) -> f1#(I24, I25, I26) 9) f12#(I27, I28, I29) -> f13#(I27, 1, I29) [2 <= I28 /\ I28 <= 2] 12) f1#(I36, I37, I38) -> f11#(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] 19) f7#(I57, I58, I59) -> f1#(I57, I58, I59) 20) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] 21) f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] 23) f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] We have the following SCCs. { 19, 20, 21, 23 } DP problem for innermost termination. P = f7#(I57, I58, I59) -> f1#(I57, I58, I59) f6#(I60, I61, I62) -> f7#(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5#(I63, I64, I65) -> f6#(I63, I64, I65) [3 <= I65] f1#(I69, I70, I71) -> f5#(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] R = f19(x1, x2, x3) -> f18(x1, x2, x3) f18(I0, I1, I2) -> f1(I0, I1, I2) f1(I3, I4, I5) -> f17(rnd1, I4, I5) [rnd1 = rnd1 /\ 3 - I4 <= 0 /\ 2 - I5 <= 0] f16(I6, I7, I8) -> f1(I6, I7, I8) f1(I9, I10, I11) -> f16(I9, 1, 1 + I11) [0 <= 1 - I11 /\ y1 = 1 + I10 /\ 1 + I11 <= 2 /\ 2 <= 1 + I11 /\ y1 <= 2 /\ 2 <= y1] f15(I12, I13, I14) -> f1(I12, I13, I14) f14(I15, I16, I17) -> f15(I15, I16, I17) [3 <= I16] f14(I18, I19, I20) -> f15(I18, I19, I20) [1 + I19 <= 2] f1(I21, I22, I23) -> f14(I21, 1 + I22, 1 + I23) [2 <= 1 + I23 /\ 1 + I23 <= 2 /\ 0 <= 1 - I23] f13(I24, I25, I26) -> f1(I24, I25, I26) f12(I27, I28, I29) -> f13(I27, 1, I29) [2 <= I28 /\ I28 <= 2] f11(I30, I31, I32) -> f12(I30, I31, I32) [3 <= I32] f11(I33, I34, I35) -> f12(I33, I34, I35) [1 + I35 <= 2] f1(I36, I37, I38) -> f11(I36, 1 + I37, 1 + I38) [0 <= 1 - I38] f10(I39, I40, I41) -> f1(I39, I40, I41) f9(I42, I43, I44) -> f10(I42, I43, I44) [3 <= I43] f9(I45, I46, I47) -> f10(I45, I46, I47) [1 + I46 <= 2] f8(I48, I49, I50) -> f9(I48, I49, I50) [3 <= I50] f8(I51, I52, I53) -> f9(I51, I52, I53) [1 + I53 <= 2] f1(I54, I55, I56) -> f8(I54, 1 + I55, 1 + I56) [0 <= 1 - I56] f7(I57, I58, I59) -> f1(I57, I58, I59) f6(I60, I61, I62) -> f7(I60, 1, I62) [2 <= I61 /\ I61 <= 2] f5(I63, I64, I65) -> f6(I63, I64, I65) [3 <= I65] f5(I66, I67, I68) -> f6(I66, I67, I68) [1 + I68 <= 2] f1(I69, I70, I71) -> f5(I69, 1 + I70, 1 + I71) [0 <= 2 - I70 /\ 2 - I71 <= 0] f4(I72, I73, I74) -> f1(I72, I73, I74) f3(I75, I76, I77) -> f4(I75, I76, I77) [3 <= I76] f3(I78, I79, I80) -> f4(I78, I79, I80) [1 + I79 <= 2] f2(I81, I82, I83) -> f3(I81, I82, I83) [3 <= I83] f2(I84, I85, I86) -> f3(I84, I85, I86) [1 + I86 <= 2] f1(I87, I88, I89) -> f2(I87, 1 + I88, 1 + I89) [0 <= 2 - I88 /\ 2 - I89 <= 0]