11.12/4.84 YES 12.74/5.22 proof of /export/starexec/sandbox2/benchmark/theBenchmark.itrs 12.74/5.22 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 12.74/5.22 12.74/5.22 12.74/5.22 Termination of the given ITRS could be proven: 12.74/5.22 12.74/5.22 (0) ITRS 12.74/5.22 (1) ITRStoIDPProof [EQUIVALENT, 0 ms] 12.74/5.22 (2) IDP 12.74/5.22 (3) UsableRulesProof [EQUIVALENT, 0 ms] 12.74/5.22 (4) IDP 12.74/5.22 (5) IDPNonInfProof [SOUND, 1624 ms] 12.74/5.22 (6) IDP 12.74/5.22 (7) IDependencyGraphProof [EQUIVALENT, 0 ms] 12.74/5.22 (8) IDP 12.74/5.22 (9) IDPNonInfProof [SOUND, 844 ms] 12.74/5.22 (10) IDP 12.74/5.22 (11) IDependencyGraphProof [EQUIVALENT, 0 ms] 12.74/5.22 (12) TRUE 12.74/5.22 12.74/5.22 12.74/5.22 ---------------------------------------- 12.74/5.22 12.74/5.22 (0) 12.74/5.22 Obligation: 12.74/5.22 ITRS problem: 12.74/5.22 12.74/5.22 The following function symbols are pre-defined: 12.74/5.22 <<< 12.74/5.22 & ~ Bwand: (Integer, Integer) -> Integer 12.74/5.22 >= ~ Ge: (Integer, Integer) -> Boolean 12.74/5.22 | ~ Bwor: (Integer, Integer) -> Integer 12.74/5.22 / ~ Div: (Integer, Integer) -> Integer 12.74/5.22 != ~ Neq: (Integer, Integer) -> Boolean 12.74/5.22 && ~ Land: (Boolean, Boolean) -> Boolean 12.74/5.22 ! ~ Lnot: (Boolean) -> Boolean 12.74/5.22 = ~ Eq: (Integer, Integer) -> Boolean 12.74/5.22 <= ~ Le: (Integer, Integer) -> Boolean 12.74/5.22 ^ ~ Bwxor: (Integer, Integer) -> Integer 12.74/5.22 % ~ Mod: (Integer, Integer) -> Integer 12.74/5.22 + ~ Add: (Integer, Integer) -> Integer 12.74/5.22 > ~ Gt: (Integer, Integer) -> Boolean 12.74/5.22 -1 ~ UnaryMinus: (Integer) -> Integer 12.74/5.22 < ~ Lt: (Integer, Integer) -> Boolean 12.74/5.22 || ~ Lor: (Boolean, Boolean) -> Boolean 12.74/5.22 - ~ Sub: (Integer, Integer) -> Integer 12.74/5.22 ~ ~ Bwnot: (Integer) -> Integer 12.74/5.22 * ~ Mul: (Integer, Integer) -> Integer 12.74/5.22 >>> 12.74/5.22 12.74/5.22 The TRS R consists of the following rules: 12.74/5.22 eval(an, bn, cn, i, j) -> Cond_eval(j < bn && i < an, an, bn, cn, i, j) 12.74/5.22 Cond_eval(TRUE, an, bn, cn, i, j) -> eval(an, bn, cn + 1, i, j + 1) 12.74/5.22 eval(an, bn, cn, i, j) -> Cond_eval1(j < bn && i < an, an, bn, cn, i, j) 12.74/5.22 Cond_eval1(TRUE, an, bn, cn, i, j) -> eval(an, bn, cn + 1, i + 1, j) 12.74/5.22 eval(an, bn, cn, i, j) -> Cond_eval2(j >= bn && i < an, an, bn, cn, i, j) 12.74/5.22 Cond_eval2(TRUE, an, bn, cn, i, j) -> eval(an, bn, cn + 1, i + 1, j) 12.74/5.22 eval(an, bn, cn, i, j) -> Cond_eval3(j < bn && i >= an, an, bn, cn, i, j) 12.74/5.22 Cond_eval3(TRUE, an, bn, cn, i, j) -> eval(an, bn, cn + 1, i, j + 1) 12.74/5.22 The set Q consists of the following terms: 12.74/5.22 eval(x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval1(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval2(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval3(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 12.74/5.22 ---------------------------------------- 12.74/5.22 12.74/5.22 (1) ITRStoIDPProof (EQUIVALENT) 12.74/5.22 Added dependency pairs 12.74/5.22 ---------------------------------------- 12.74/5.22 12.74/5.22 (2) 12.74/5.22 Obligation: 12.74/5.22 IDP problem: 12.74/5.22 The following function symbols are pre-defined: 12.74/5.22 <<< 12.74/5.22 & ~ Bwand: (Integer, Integer) -> Integer 12.74/5.22 >= ~ Ge: (Integer, Integer) -> Boolean 12.74/5.22 | ~ Bwor: (Integer, Integer) -> Integer 12.74/5.22 / ~ Div: (Integer, Integer) -> Integer 12.74/5.22 != ~ Neq: (Integer, Integer) -> Boolean 12.74/5.22 && ~ Land: (Boolean, Boolean) -> Boolean 12.74/5.22 ! ~ Lnot: (Boolean) -> Boolean 12.74/5.22 = ~ Eq: (Integer, Integer) -> Boolean 12.74/5.22 <= ~ Le: (Integer, Integer) -> Boolean 12.74/5.22 ^ ~ Bwxor: (Integer, Integer) -> Integer 12.74/5.22 % ~ Mod: (Integer, Integer) -> Integer 12.74/5.22 + ~ Add: (Integer, Integer) -> Integer 12.74/5.22 > ~ Gt: (Integer, Integer) -> Boolean 12.74/5.22 -1 ~ UnaryMinus: (Integer) -> Integer 12.74/5.22 < ~ Lt: (Integer, Integer) -> Boolean 12.74/5.22 || ~ Lor: (Boolean, Boolean) -> Boolean 12.74/5.22 - ~ Sub: (Integer, Integer) -> Integer 12.74/5.22 ~ ~ Bwnot: (Integer) -> Integer 12.74/5.22 * ~ Mul: (Integer, Integer) -> Integer 12.74/5.22 >>> 12.74/5.22 12.74/5.22 12.74/5.22 The following domains are used: 12.74/5.22 Boolean, Integer 12.74/5.22 12.74/5.22 The ITRS R consists of the following rules: 12.74/5.22 eval(an, bn, cn, i, j) -> Cond_eval(j < bn && i < an, an, bn, cn, i, j) 12.74/5.22 Cond_eval(TRUE, an, bn, cn, i, j) -> eval(an, bn, cn + 1, i, j + 1) 12.74/5.22 eval(an, bn, cn, i, j) -> Cond_eval1(j < bn && i < an, an, bn, cn, i, j) 12.74/5.22 Cond_eval1(TRUE, an, bn, cn, i, j) -> eval(an, bn, cn + 1, i + 1, j) 12.74/5.22 eval(an, bn, cn, i, j) -> Cond_eval2(j >= bn && i < an, an, bn, cn, i, j) 12.74/5.22 Cond_eval2(TRUE, an, bn, cn, i, j) -> eval(an, bn, cn + 1, i + 1, j) 12.74/5.22 eval(an, bn, cn, i, j) -> Cond_eval3(j < bn && i >= an, an, bn, cn, i, j) 12.74/5.22 Cond_eval3(TRUE, an, bn, cn, i, j) -> eval(an, bn, cn + 1, i, j + 1) 12.74/5.22 12.74/5.22 The integer pair graph contains the following rules and edges: 12.74/5.22 (0): EVAL(an[0], bn[0], cn[0], i[0], j[0]) -> COND_EVAL(j[0] < bn[0] && i[0] < an[0], an[0], bn[0], cn[0], i[0], j[0]) 12.74/5.22 (1): COND_EVAL(TRUE, an[1], bn[1], cn[1], i[1], j[1]) -> EVAL(an[1], bn[1], cn[1] + 1, i[1], j[1] + 1) 12.74/5.22 (2): EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(j[2] < bn[2] && i[2] < an[2], an[2], bn[2], cn[2], i[2], j[2]) 12.74/5.22 (3): COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], cn[3] + 1, i[3] + 1, j[3]) 12.74/5.22 (4): EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(j[4] >= bn[4] && i[4] < an[4], an[4], bn[4], cn[4], i[4], j[4]) 12.74/5.22 (5): COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], cn[5] + 1, i[5] + 1, j[5]) 12.74/5.22 (6): EVAL(an[6], bn[6], cn[6], i[6], j[6]) -> COND_EVAL3(j[6] < bn[6] && i[6] >= an[6], an[6], bn[6], cn[6], i[6], j[6]) 12.74/5.22 (7): COND_EVAL3(TRUE, an[7], bn[7], cn[7], i[7], j[7]) -> EVAL(an[7], bn[7], cn[7] + 1, i[7], j[7] + 1) 12.74/5.22 12.74/5.22 (0) -> (1), if (j[0] < bn[0] && i[0] < an[0] & an[0] ->^* an[1] & bn[0] ->^* bn[1] & cn[0] ->^* cn[1] & i[0] ->^* i[1] & j[0] ->^* j[1]) 12.74/5.22 (1) -> (0), if (an[1] ->^* an[0] & bn[1] ->^* bn[0] & cn[1] + 1 ->^* cn[0] & i[1] ->^* i[0] & j[1] + 1 ->^* j[0]) 12.74/5.22 (1) -> (2), if (an[1] ->^* an[2] & bn[1] ->^* bn[2] & cn[1] + 1 ->^* cn[2] & i[1] ->^* i[2] & j[1] + 1 ->^* j[2]) 12.74/5.22 (1) -> (4), if (an[1] ->^* an[4] & bn[1] ->^* bn[4] & cn[1] + 1 ->^* cn[4] & i[1] ->^* i[4] & j[1] + 1 ->^* j[4]) 12.74/5.22 (1) -> (6), if (an[1] ->^* an[6] & bn[1] ->^* bn[6] & cn[1] + 1 ->^* cn[6] & i[1] ->^* i[6] & j[1] + 1 ->^* j[6]) 12.74/5.22 (2) -> (3), if (j[2] < bn[2] && i[2] < an[2] & an[2] ->^* an[3] & bn[2] ->^* bn[3] & cn[2] ->^* cn[3] & i[2] ->^* i[3] & j[2] ->^* j[3]) 12.74/5.22 (3) -> (0), if (an[3] ->^* an[0] & bn[3] ->^* bn[0] & cn[3] + 1 ->^* cn[0] & i[3] + 1 ->^* i[0] & j[3] ->^* j[0]) 12.74/5.22 (3) -> (2), if (an[3] ->^* an[2] & bn[3] ->^* bn[2] & cn[3] + 1 ->^* cn[2] & i[3] + 1 ->^* i[2] & j[3] ->^* j[2]) 12.74/5.22 (3) -> (4), if (an[3] ->^* an[4] & bn[3] ->^* bn[4] & cn[3] + 1 ->^* cn[4] & i[3] + 1 ->^* i[4] & j[3] ->^* j[4]) 12.74/5.22 (3) -> (6), if (an[3] ->^* an[6] & bn[3] ->^* bn[6] & cn[3] + 1 ->^* cn[6] & i[3] + 1 ->^* i[6] & j[3] ->^* j[6]) 12.74/5.22 (4) -> (5), if (j[4] >= bn[4] && i[4] < an[4] & an[4] ->^* an[5] & bn[4] ->^* bn[5] & cn[4] ->^* cn[5] & i[4] ->^* i[5] & j[4] ->^* j[5]) 12.74/5.22 (5) -> (0), if (an[5] ->^* an[0] & bn[5] ->^* bn[0] & cn[5] + 1 ->^* cn[0] & i[5] + 1 ->^* i[0] & j[5] ->^* j[0]) 12.74/5.22 (5) -> (2), if (an[5] ->^* an[2] & bn[5] ->^* bn[2] & cn[5] + 1 ->^* cn[2] & i[5] + 1 ->^* i[2] & j[5] ->^* j[2]) 12.74/5.22 (5) -> (4), if (an[5] ->^* an[4] & bn[5] ->^* bn[4] & cn[5] + 1 ->^* cn[4] & i[5] + 1 ->^* i[4] & j[5] ->^* j[4]) 12.74/5.22 (5) -> (6), if (an[5] ->^* an[6] & bn[5] ->^* bn[6] & cn[5] + 1 ->^* cn[6] & i[5] + 1 ->^* i[6] & j[5] ->^* j[6]) 12.74/5.22 (6) -> (7), if (j[6] < bn[6] && i[6] >= an[6] & an[6] ->^* an[7] & bn[6] ->^* bn[7] & cn[6] ->^* cn[7] & i[6] ->^* i[7] & j[6] ->^* j[7]) 12.74/5.22 (7) -> (0), if (an[7] ->^* an[0] & bn[7] ->^* bn[0] & cn[7] + 1 ->^* cn[0] & i[7] ->^* i[0] & j[7] + 1 ->^* j[0]) 12.74/5.22 (7) -> (2), if (an[7] ->^* an[2] & bn[7] ->^* bn[2] & cn[7] + 1 ->^* cn[2] & i[7] ->^* i[2] & j[7] + 1 ->^* j[2]) 12.74/5.22 (7) -> (4), if (an[7] ->^* an[4] & bn[7] ->^* bn[4] & cn[7] + 1 ->^* cn[4] & i[7] ->^* i[4] & j[7] + 1 ->^* j[4]) 12.74/5.22 (7) -> (6), if (an[7] ->^* an[6] & bn[7] ->^* bn[6] & cn[7] + 1 ->^* cn[6] & i[7] ->^* i[6] & j[7] + 1 ->^* j[6]) 12.74/5.22 12.74/5.22 The set Q consists of the following terms: 12.74/5.22 eval(x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval1(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval2(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval3(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 12.74/5.22 ---------------------------------------- 12.74/5.22 12.74/5.22 (3) UsableRulesProof (EQUIVALENT) 12.74/5.22 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 12.74/5.22 ---------------------------------------- 12.74/5.22 12.74/5.22 (4) 12.74/5.22 Obligation: 12.74/5.22 IDP problem: 12.74/5.22 The following function symbols are pre-defined: 12.74/5.22 <<< 12.74/5.22 & ~ Bwand: (Integer, Integer) -> Integer 12.74/5.22 >= ~ Ge: (Integer, Integer) -> Boolean 12.74/5.22 | ~ Bwor: (Integer, Integer) -> Integer 12.74/5.22 / ~ Div: (Integer, Integer) -> Integer 12.74/5.22 != ~ Neq: (Integer, Integer) -> Boolean 12.74/5.22 && ~ Land: (Boolean, Boolean) -> Boolean 12.74/5.22 ! ~ Lnot: (Boolean) -> Boolean 12.74/5.22 = ~ Eq: (Integer, Integer) -> Boolean 12.74/5.22 <= ~ Le: (Integer, Integer) -> Boolean 12.74/5.22 ^ ~ Bwxor: (Integer, Integer) -> Integer 12.74/5.22 % ~ Mod: (Integer, Integer) -> Integer 12.74/5.22 + ~ Add: (Integer, Integer) -> Integer 12.74/5.22 > ~ Gt: (Integer, Integer) -> Boolean 12.74/5.22 -1 ~ UnaryMinus: (Integer) -> Integer 12.74/5.22 < ~ Lt: (Integer, Integer) -> Boolean 12.74/5.22 || ~ Lor: (Boolean, Boolean) -> Boolean 12.74/5.22 - ~ Sub: (Integer, Integer) -> Integer 12.74/5.22 ~ ~ Bwnot: (Integer) -> Integer 12.74/5.22 * ~ Mul: (Integer, Integer) -> Integer 12.74/5.22 >>> 12.74/5.22 12.74/5.22 12.74/5.22 The following domains are used: 12.74/5.22 Boolean, Integer 12.74/5.22 12.74/5.22 R is empty. 12.74/5.22 12.74/5.22 The integer pair graph contains the following rules and edges: 12.74/5.22 (0): EVAL(an[0], bn[0], cn[0], i[0], j[0]) -> COND_EVAL(j[0] < bn[0] && i[0] < an[0], an[0], bn[0], cn[0], i[0], j[0]) 12.74/5.22 (1): COND_EVAL(TRUE, an[1], bn[1], cn[1], i[1], j[1]) -> EVAL(an[1], bn[1], cn[1] + 1, i[1], j[1] + 1) 12.74/5.22 (2): EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(j[2] < bn[2] && i[2] < an[2], an[2], bn[2], cn[2], i[2], j[2]) 12.74/5.22 (3): COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], cn[3] + 1, i[3] + 1, j[3]) 12.74/5.22 (4): EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(j[4] >= bn[4] && i[4] < an[4], an[4], bn[4], cn[4], i[4], j[4]) 12.74/5.22 (5): COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], cn[5] + 1, i[5] + 1, j[5]) 12.74/5.22 (6): EVAL(an[6], bn[6], cn[6], i[6], j[6]) -> COND_EVAL3(j[6] < bn[6] && i[6] >= an[6], an[6], bn[6], cn[6], i[6], j[6]) 12.74/5.22 (7): COND_EVAL3(TRUE, an[7], bn[7], cn[7], i[7], j[7]) -> EVAL(an[7], bn[7], cn[7] + 1, i[7], j[7] + 1) 12.74/5.22 12.74/5.22 (0) -> (1), if (j[0] < bn[0] && i[0] < an[0] & an[0] ->^* an[1] & bn[0] ->^* bn[1] & cn[0] ->^* cn[1] & i[0] ->^* i[1] & j[0] ->^* j[1]) 12.74/5.22 (1) -> (0), if (an[1] ->^* an[0] & bn[1] ->^* bn[0] & cn[1] + 1 ->^* cn[0] & i[1] ->^* i[0] & j[1] + 1 ->^* j[0]) 12.74/5.22 (1) -> (2), if (an[1] ->^* an[2] & bn[1] ->^* bn[2] & cn[1] + 1 ->^* cn[2] & i[1] ->^* i[2] & j[1] + 1 ->^* j[2]) 12.74/5.22 (1) -> (4), if (an[1] ->^* an[4] & bn[1] ->^* bn[4] & cn[1] + 1 ->^* cn[4] & i[1] ->^* i[4] & j[1] + 1 ->^* j[4]) 12.74/5.22 (1) -> (6), if (an[1] ->^* an[6] & bn[1] ->^* bn[6] & cn[1] + 1 ->^* cn[6] & i[1] ->^* i[6] & j[1] + 1 ->^* j[6]) 12.74/5.22 (2) -> (3), if (j[2] < bn[2] && i[2] < an[2] & an[2] ->^* an[3] & bn[2] ->^* bn[3] & cn[2] ->^* cn[3] & i[2] ->^* i[3] & j[2] ->^* j[3]) 12.74/5.22 (3) -> (0), if (an[3] ->^* an[0] & bn[3] ->^* bn[0] & cn[3] + 1 ->^* cn[0] & i[3] + 1 ->^* i[0] & j[3] ->^* j[0]) 12.74/5.22 (3) -> (2), if (an[3] ->^* an[2] & bn[3] ->^* bn[2] & cn[3] + 1 ->^* cn[2] & i[3] + 1 ->^* i[2] & j[3] ->^* j[2]) 12.74/5.22 (3) -> (4), if (an[3] ->^* an[4] & bn[3] ->^* bn[4] & cn[3] + 1 ->^* cn[4] & i[3] + 1 ->^* i[4] & j[3] ->^* j[4]) 12.74/5.22 (3) -> (6), if (an[3] ->^* an[6] & bn[3] ->^* bn[6] & cn[3] + 1 ->^* cn[6] & i[3] + 1 ->^* i[6] & j[3] ->^* j[6]) 12.74/5.22 (4) -> (5), if (j[4] >= bn[4] && i[4] < an[4] & an[4] ->^* an[5] & bn[4] ->^* bn[5] & cn[4] ->^* cn[5] & i[4] ->^* i[5] & j[4] ->^* j[5]) 12.74/5.22 (5) -> (0), if (an[5] ->^* an[0] & bn[5] ->^* bn[0] & cn[5] + 1 ->^* cn[0] & i[5] + 1 ->^* i[0] & j[5] ->^* j[0]) 12.74/5.22 (5) -> (2), if (an[5] ->^* an[2] & bn[5] ->^* bn[2] & cn[5] + 1 ->^* cn[2] & i[5] + 1 ->^* i[2] & j[5] ->^* j[2]) 12.74/5.22 (5) -> (4), if (an[5] ->^* an[4] & bn[5] ->^* bn[4] & cn[5] + 1 ->^* cn[4] & i[5] + 1 ->^* i[4] & j[5] ->^* j[4]) 12.74/5.22 (5) -> (6), if (an[5] ->^* an[6] & bn[5] ->^* bn[6] & cn[5] + 1 ->^* cn[6] & i[5] + 1 ->^* i[6] & j[5] ->^* j[6]) 12.74/5.22 (6) -> (7), if (j[6] < bn[6] && i[6] >= an[6] & an[6] ->^* an[7] & bn[6] ->^* bn[7] & cn[6] ->^* cn[7] & i[6] ->^* i[7] & j[6] ->^* j[7]) 12.74/5.22 (7) -> (0), if (an[7] ->^* an[0] & bn[7] ->^* bn[0] & cn[7] + 1 ->^* cn[0] & i[7] ->^* i[0] & j[7] + 1 ->^* j[0]) 12.74/5.22 (7) -> (2), if (an[7] ->^* an[2] & bn[7] ->^* bn[2] & cn[7] + 1 ->^* cn[2] & i[7] ->^* i[2] & j[7] + 1 ->^* j[2]) 12.74/5.22 (7) -> (4), if (an[7] ->^* an[4] & bn[7] ->^* bn[4] & cn[7] + 1 ->^* cn[4] & i[7] ->^* i[4] & j[7] + 1 ->^* j[4]) 12.74/5.22 (7) -> (6), if (an[7] ->^* an[6] & bn[7] ->^* bn[6] & cn[7] + 1 ->^* cn[6] & i[7] ->^* i[6] & j[7] + 1 ->^* j[6]) 12.74/5.22 12.74/5.22 The set Q consists of the following terms: 12.74/5.22 eval(x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval1(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval2(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval3(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 12.74/5.22 ---------------------------------------- 12.74/5.22 12.74/5.22 (5) IDPNonInfProof (SOUND) 12.74/5.22 Used the following options for this NonInfProof: 12.74/5.22 12.74/5.22 IDPGPoloSolver: 12.74/5.22 Range: [(-1,2)] 12.74/5.22 IsNat: false 12.74/5.22 Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@72cdaf4d 12.74/5.22 Constraint Generator: NonInfConstraintGenerator: 12.74/5.22 PathGenerator: MetricPathGenerator: 12.74/5.22 Max Left Steps: 1 12.74/5.22 Max Right Steps: 1 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 The constraints were generated the following way: 12.74/5.22 12.74/5.22 The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps: 12.74/5.22 12.74/5.22 Note that final constraints are written in bold face. 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 For Pair EVAL(an, bn, cn, i, j) -> COND_EVAL(&&(<(j, bn), <(i, an)), an, bn, cn, i, j) the following chains were created: 12.74/5.22 *We consider the chain EVAL(an[0], bn[0], cn[0], i[0], j[0]) -> COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0]), COND_EVAL(TRUE, an[1], bn[1], cn[1], i[1], j[1]) -> EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1)) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(<(j[0], bn[0]), <(i[0], an[0]))=TRUE & an[0]=an[1] & bn[0]=bn[1] & cn[0]=cn[1] & i[0]=i[1] & j[0]=j[1] ==> EVAL(an[0], bn[0], cn[0], i[0], j[0])_>=_NonInfC & EVAL(an[0], bn[0], cn[0], i[0], j[0])_>=_COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0]) & (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (<(j[0], bn[0])=TRUE & <(i[0], an[0])=TRUE ==> EVAL(an[0], bn[0], cn[0], i[0], j[0])_>=_NonInfC & EVAL(an[0], bn[0], cn[0], i[0], j[0])_>=_COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0]) & (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (bn[0] + [-1] + [-1]j[0] >= 0 & an[0] + [-1] + [-1]i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & [(-1)bni_40 + (-1)Bound*bni_40] + [(-1)bni_40]j[0] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (bn[0] + [-1] + [-1]j[0] >= 0 & an[0] + [-1] + [-1]i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & [(-1)bni_40 + (-1)Bound*bni_40] + [(-1)bni_40]j[0] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (bn[0] + [-1] + [-1]j[0] >= 0 & an[0] + [-1] + [-1]i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & [(-1)bni_40 + (-1)Bound*bni_40] + [(-1)bni_40]j[0] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (bn[0] + [-1] + [-1]j[0] >= 0 & an[0] + [-1] + [-1]i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)bni_40 + (-1)Bound*bni_40] + [(-1)bni_40]j[0] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (bn[0] >= 0 & an[0] + [-1] + [-1]i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)Bound*bni_40] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (bn[0] >= 0 & an[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)Bound*bni_40] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)Bound*bni_40] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 (10) (bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)Bound*bni_40] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)Bound*bni_40] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 (12) (bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)Bound*bni_40] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)Bound*bni_40] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 (14) (bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)Bound*bni_40] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 For Pair COND_EVAL(TRUE, an, bn, cn, i, j) -> EVAL(an, bn, +(cn, 1), i, +(j, 1)) the following chains were created: 12.74/5.22 *We consider the chain EVAL(an[0], bn[0], cn[0], i[0], j[0]) -> COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0]), COND_EVAL(TRUE, an[1], bn[1], cn[1], i[1], j[1]) -> EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1)) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(<(j[0], bn[0]), <(i[0], an[0]))=TRUE & an[0]=an[1] & bn[0]=bn[1] & cn[0]=cn[1] & i[0]=i[1] & j[0]=j[1] ==> COND_EVAL(TRUE, an[1], bn[1], cn[1], i[1], j[1])_>=_NonInfC & COND_EVAL(TRUE, an[1], bn[1], cn[1], i[1], j[1])_>=_EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1)) & (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (III), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (<(j[0], bn[0])=TRUE & <(i[0], an[0])=TRUE ==> COND_EVAL(TRUE, an[0], bn[0], cn[0], i[0], j[0])_>=_NonInfC & COND_EVAL(TRUE, an[0], bn[0], cn[0], i[0], j[0])_>=_EVAL(an[0], bn[0], +(cn[0], 1), i[0], +(j[0], 1)) & (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (bn[0] + [-1] + [-1]j[0] >= 0 & an[0] + [-1] + [-1]i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & [(-1)bni_42 + (-1)Bound*bni_42] + [(-1)bni_42]j[0] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (bn[0] + [-1] + [-1]j[0] >= 0 & an[0] + [-1] + [-1]i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & [(-1)bni_42 + (-1)Bound*bni_42] + [(-1)bni_42]j[0] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (bn[0] + [-1] + [-1]j[0] >= 0 & an[0] + [-1] + [-1]i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & [(-1)bni_42 + (-1)Bound*bni_42] + [(-1)bni_42]j[0] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (bn[0] + [-1] + [-1]j[0] >= 0 & an[0] + [-1] + [-1]i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)bni_42 + (-1)Bound*bni_42] + [(-1)bni_42]j[0] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (bn[0] >= 0 & an[0] + [-1] + [-1]i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)Bound*bni_42] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (bn[0] >= 0 & an[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)Bound*bni_42] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)Bound*bni_42] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 (10) (bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)Bound*bni_42] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)Bound*bni_42] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 (12) (bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)Bound*bni_42] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)Bound*bni_42] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 (14) (bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)Bound*bni_42] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 For Pair EVAL(an, bn, cn, i, j) -> COND_EVAL1(&&(<(j, bn), <(i, an)), an, bn, cn, i, j) the following chains were created: 12.74/5.22 *We consider the chain EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]), COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(<(j[2], bn[2]), <(i[2], an[2]))=TRUE & an[2]=an[3] & bn[2]=bn[3] & cn[2]=cn[3] & i[2]=i[3] & j[2]=j[3] ==> EVAL(an[2], bn[2], cn[2], i[2], j[2])_>=_NonInfC & EVAL(an[2], bn[2], cn[2], i[2], j[2])_>=_COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]) & (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (<(j[2], bn[2])=TRUE & <(i[2], an[2])=TRUE ==> EVAL(an[2], bn[2], cn[2], i[2], j[2])_>=_NonInfC & EVAL(an[2], bn[2], cn[2], i[2], j[2])_>=_COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]) & (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & [(-1)bni_44 + (-1)Bound*bni_44] + [(-1)bni_44]j[2] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & [(-1)bni_44 + (-1)Bound*bni_44] + [(-1)bni_44]j[2] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & [(-1)bni_44 + (-1)Bound*bni_44] + [(-1)bni_44]j[2] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)bni_44 + (-1)Bound*bni_44] + [(-1)bni_44]j[2] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (bn[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_44] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (bn[2] >= 0 & an[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_44] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_44] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 (10) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_44] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_44] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 (12) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_44] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_44] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 (14) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_44] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 For Pair COND_EVAL1(TRUE, an, bn, cn, i, j) -> EVAL(an, bn, +(cn, 1), +(i, 1), j) the following chains were created: 12.74/5.22 *We consider the chain EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]), COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(<(j[2], bn[2]), <(i[2], an[2]))=TRUE & an[2]=an[3] & bn[2]=bn[3] & cn[2]=cn[3] & i[2]=i[3] & j[2]=j[3] ==> COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3])_>=_NonInfC & COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3])_>=_EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]) & (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (III), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (<(j[2], bn[2])=TRUE & <(i[2], an[2])=TRUE ==> COND_EVAL1(TRUE, an[2], bn[2], cn[2], i[2], j[2])_>=_NonInfC & COND_EVAL1(TRUE, an[2], bn[2], cn[2], i[2], j[2])_>=_EVAL(an[2], bn[2], +(cn[2], 1), +(i[2], 1), j[2]) & (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & [(-1)bni_46 + (-1)Bound*bni_46] + [(-1)bni_46]j[2] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & [(-1)bni_46 + (-1)Bound*bni_46] + [(-1)bni_46]j[2] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & [(-1)bni_46 + (-1)Bound*bni_46] + [(-1)bni_46]j[2] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)bni_46 + (-1)Bound*bni_46] + [(-1)bni_46]j[2] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (bn[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_46] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (bn[2] >= 0 & an[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_46] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_46] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 (10) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_46] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_46] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 (12) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_46] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_46] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 (14) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_46] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 For Pair EVAL(an, bn, cn, i, j) -> COND_EVAL2(&&(>=(j, bn), <(i, an)), an, bn, cn, i, j) the following chains were created: 12.74/5.22 *We consider the chain EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]), COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(>=(j[4], bn[4]), <(i[4], an[4]))=TRUE & an[4]=an[5] & bn[4]=bn[5] & cn[4]=cn[5] & i[4]=i[5] & j[4]=j[5] ==> EVAL(an[4], bn[4], cn[4], i[4], j[4])_>=_NonInfC & EVAL(an[4], bn[4], cn[4], i[4], j[4])_>=_COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]) & (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (>=(j[4], bn[4])=TRUE & <(i[4], an[4])=TRUE ==> EVAL(an[4], bn[4], cn[4], i[4], j[4])_>=_NonInfC & EVAL(an[4], bn[4], cn[4], i[4], j[4])_>=_COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]) & (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] + [bni_48]bn[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] + [bni_48]bn[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] + [bni_48]bn[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] + [bni_48]bn[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (j[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (j[4] >= 0 & an[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 (10) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 (12) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 (14) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 For Pair COND_EVAL2(TRUE, an, bn, cn, i, j) -> EVAL(an, bn, +(cn, 1), +(i, 1), j) the following chains were created: 12.74/5.22 *We consider the chain EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]), COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(>=(j[4], bn[4]), <(i[4], an[4]))=TRUE & an[4]=an[5] & bn[4]=bn[5] & cn[4]=cn[5] & i[4]=i[5] & j[4]=j[5] ==> COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5])_>=_NonInfC & COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5])_>=_EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]) & (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (III), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (>=(j[4], bn[4])=TRUE & <(i[4], an[4])=TRUE ==> COND_EVAL2(TRUE, an[4], bn[4], cn[4], i[4], j[4])_>=_NonInfC & COND_EVAL2(TRUE, an[4], bn[4], cn[4], i[4], j[4])_>=_EVAL(an[4], bn[4], +(cn[4], 1), +(i[4], 1), j[4]) & (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] + [bni_50]bn[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] + [bni_50]bn[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] + [bni_50]bn[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] + [bni_50]bn[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (j[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (j[4] >= 0 & an[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 (10) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 (12) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 (14) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 For Pair EVAL(an, bn, cn, i, j) -> COND_EVAL3(&&(<(j, bn), >=(i, an)), an, bn, cn, i, j) the following chains were created: 12.74/5.22 *We consider the chain EVAL(an[6], bn[6], cn[6], i[6], j[6]) -> COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6]), COND_EVAL3(TRUE, an[7], bn[7], cn[7], i[7], j[7]) -> EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1)) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(<(j[6], bn[6]), >=(i[6], an[6]))=TRUE & an[6]=an[7] & bn[6]=bn[7] & cn[6]=cn[7] & i[6]=i[7] & j[6]=j[7] ==> EVAL(an[6], bn[6], cn[6], i[6], j[6])_>=_NonInfC & EVAL(an[6], bn[6], cn[6], i[6], j[6])_>=_COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6]) & (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (<(j[6], bn[6])=TRUE & >=(i[6], an[6])=TRUE ==> EVAL(an[6], bn[6], cn[6], i[6], j[6])_>=_NonInfC & EVAL(an[6], bn[6], cn[6], i[6], j[6])_>=_COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6]) & (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (bn[6] + [-1] + [-1]j[6] >= 0 & i[6] + [-1]an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & [(-1)bni_52 + (-1)Bound*bni_52] + [(-1)bni_52]j[6] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (bn[6] + [-1] + [-1]j[6] >= 0 & i[6] + [-1]an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & [(-1)bni_52 + (-1)Bound*bni_52] + [(-1)bni_52]j[6] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (bn[6] + [-1] + [-1]j[6] >= 0 & i[6] + [-1]an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & [(-1)bni_52 + (-1)Bound*bni_52] + [(-1)bni_52]j[6] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (bn[6] + [-1] + [-1]j[6] >= 0 & i[6] + [-1]an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)bni_52 + (-1)Bound*bni_52] + [(-1)bni_52]j[6] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (bn[6] >= 0 & i[6] + [-1]an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)Bound*bni_52] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (bn[6] >= 0 & i[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)Bound*bni_52] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)Bound*bni_52] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 (10) (bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)Bound*bni_52] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)Bound*bni_52] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 (12) (bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)Bound*bni_52] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)Bound*bni_52] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 (14) (bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)Bound*bni_52] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 For Pair COND_EVAL3(TRUE, an, bn, cn, i, j) -> EVAL(an, bn, +(cn, 1), i, +(j, 1)) the following chains were created: 12.74/5.22 *We consider the chain EVAL(an[6], bn[6], cn[6], i[6], j[6]) -> COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6]), COND_EVAL3(TRUE, an[7], bn[7], cn[7], i[7], j[7]) -> EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1)) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(<(j[6], bn[6]), >=(i[6], an[6]))=TRUE & an[6]=an[7] & bn[6]=bn[7] & cn[6]=cn[7] & i[6]=i[7] & j[6]=j[7] ==> COND_EVAL3(TRUE, an[7], bn[7], cn[7], i[7], j[7])_>=_NonInfC & COND_EVAL3(TRUE, an[7], bn[7], cn[7], i[7], j[7])_>=_EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1)) & (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (III), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (<(j[6], bn[6])=TRUE & >=(i[6], an[6])=TRUE ==> COND_EVAL3(TRUE, an[6], bn[6], cn[6], i[6], j[6])_>=_NonInfC & COND_EVAL3(TRUE, an[6], bn[6], cn[6], i[6], j[6])_>=_EVAL(an[6], bn[6], +(cn[6], 1), i[6], +(j[6], 1)) & (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (bn[6] + [-1] + [-1]j[6] >= 0 & i[6] + [-1]an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & [(-1)bni_54 + (-1)Bound*bni_54] + [(-1)bni_54]j[6] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (bn[6] + [-1] + [-1]j[6] >= 0 & i[6] + [-1]an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & [(-1)bni_54 + (-1)Bound*bni_54] + [(-1)bni_54]j[6] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (bn[6] + [-1] + [-1]j[6] >= 0 & i[6] + [-1]an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & [(-1)bni_54 + (-1)Bound*bni_54] + [(-1)bni_54]j[6] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (bn[6] + [-1] + [-1]j[6] >= 0 & i[6] + [-1]an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)bni_54 + (-1)Bound*bni_54] + [(-1)bni_54]j[6] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (bn[6] >= 0 & i[6] + [-1]an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)Bound*bni_54] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (bn[6] >= 0 & i[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)Bound*bni_54] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)Bound*bni_54] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 (10) (bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)Bound*bni_54] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)Bound*bni_54] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 (12) (bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)Bound*bni_54] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)Bound*bni_54] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 (14) (bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)Bound*bni_54] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 To summarize, we get the following constraints P__>=_ for the following pairs. 12.74/5.22 12.74/5.22 *EVAL(an, bn, cn, i, j) -> COND_EVAL(&&(<(j, bn), <(i, an)), an, bn, cn, i, j) 12.74/5.22 12.74/5.22 *(bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)Bound*bni_40] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)Bound*bni_40] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)Bound*bni_40] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0])), >=) & 0 = 0 & [(-1)Bound*bni_40] + [bni_40]bn[0] >= 0 & [(-1)bso_41] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 *COND_EVAL(TRUE, an, bn, cn, i, j) -> EVAL(an, bn, +(cn, 1), i, +(j, 1)) 12.74/5.22 12.74/5.22 *(bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)Bound*bni_42] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)Bound*bni_42] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)Bound*bni_42] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[0] >= 0 & an[0] >= 0 & j[0] >= 0 & i[0] >= 0 ==> (U^Increasing(EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1))), >=) & 0 = 0 & [(-1)Bound*bni_42] + [bni_42]bn[0] >= 0 & [1 + (-1)bso_43] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 *EVAL(an, bn, cn, i, j) -> COND_EVAL1(&&(<(j, bn), <(i, an)), an, bn, cn, i, j) 12.74/5.22 12.74/5.22 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_44] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_44] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_44] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_44] + [bni_44]bn[2] >= 0 & [(-1)bso_45] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 *COND_EVAL1(TRUE, an, bn, cn, i, j) -> EVAL(an, bn, +(cn, 1), +(i, 1), j) 12.74/5.22 12.74/5.22 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_46] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_46] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_46] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_46] + [bni_46]bn[2] >= 0 & [(-1)bso_47] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 *EVAL(an, bn, cn, i, j) -> COND_EVAL2(&&(>=(j, bn), <(i, an)), an, bn, cn, i, j) 12.74/5.22 12.74/5.22 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]j[4] >= 0 & [(-1)bso_49] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 *COND_EVAL2(TRUE, an, bn, cn, i, j) -> EVAL(an, bn, +(cn, 1), +(i, 1), j) 12.74/5.22 12.74/5.22 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]j[4] >= 0 & [(-1)bso_51] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 *EVAL(an, bn, cn, i, j) -> COND_EVAL3(&&(<(j, bn), >=(i, an)), an, bn, cn, i, j) 12.74/5.22 12.74/5.22 *(bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)Bound*bni_52] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)Bound*bni_52] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)Bound*bni_52] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6])), >=) & 0 = 0 & [(-1)Bound*bni_52] + [bni_52]bn[6] >= 0 & [(-1)bso_53] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 *COND_EVAL3(TRUE, an, bn, cn, i, j) -> EVAL(an, bn, +(cn, 1), i, +(j, 1)) 12.74/5.22 12.74/5.22 *(bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)Bound*bni_54] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)Bound*bni_54] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)Bound*bni_54] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 *(bn[6] >= 0 & i[6] >= 0 & j[6] >= 0 & an[6] >= 0 ==> (U^Increasing(EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1))), >=) & 0 = 0 & [(-1)Bound*bni_54] + [bni_54]bn[6] >= 0 & [1 + (-1)bso_55] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. 12.74/5.22 12.74/5.22 Using the following integer polynomial ordering the resulting constraints can be solved 12.74/5.22 12.74/5.22 Polynomial interpretation over integers[POLO]: 12.74/5.22 12.74/5.22 POL(TRUE) = 0 12.74/5.22 POL(FALSE) = 0 12.74/5.22 POL(EVAL(x_1, x_2, x_3, x_4, x_5)) = [-1] + [-1]x_5 + x_2 12.74/5.22 POL(COND_EVAL(x_1, x_2, x_3, x_4, x_5, x_6)) = [-1] + [-1]x_6 + x_3 12.74/5.22 POL(&&(x_1, x_2)) = [-1] 12.74/5.22 POL(<(x_1, x_2)) = [-1] 12.74/5.22 POL(+(x_1, x_2)) = x_1 + x_2 12.74/5.22 POL(1) = [1] 12.74/5.22 POL(COND_EVAL1(x_1, x_2, x_3, x_4, x_5, x_6)) = [-1] + [-1]x_6 + x_3 12.74/5.22 POL(COND_EVAL2(x_1, x_2, x_3, x_4, x_5, x_6)) = [-1] + [-1]x_6 + x_3 12.74/5.22 POL(>=(x_1, x_2)) = [-1] 12.74/5.22 POL(COND_EVAL3(x_1, x_2, x_3, x_4, x_5, x_6)) = [-1] + [-1]x_6 + x_3 12.74/5.22 12.74/5.22 12.74/5.22 The following pairs are in P_>: 12.74/5.22 12.74/5.22 12.74/5.22 COND_EVAL(TRUE, an[1], bn[1], cn[1], i[1], j[1]) -> EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1)) 12.74/5.22 COND_EVAL3(TRUE, an[7], bn[7], cn[7], i[7], j[7]) -> EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1)) 12.74/5.22 12.74/5.22 12.74/5.22 The following pairs are in P_bound: 12.74/5.22 12.74/5.22 12.74/5.22 EVAL(an[0], bn[0], cn[0], i[0], j[0]) -> COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0]) 12.74/5.22 COND_EVAL(TRUE, an[1], bn[1], cn[1], i[1], j[1]) -> EVAL(an[1], bn[1], +(cn[1], 1), i[1], +(j[1], 1)) 12.74/5.22 EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]) 12.74/5.22 COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]) 12.74/5.22 EVAL(an[6], bn[6], cn[6], i[6], j[6]) -> COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6]) 12.74/5.22 COND_EVAL3(TRUE, an[7], bn[7], cn[7], i[7], j[7]) -> EVAL(an[7], bn[7], +(cn[7], 1), i[7], +(j[7], 1)) 12.74/5.22 12.74/5.22 12.74/5.22 The following pairs are in P_>=: 12.74/5.22 12.74/5.22 12.74/5.22 EVAL(an[0], bn[0], cn[0], i[0], j[0]) -> COND_EVAL(&&(<(j[0], bn[0]), <(i[0], an[0])), an[0], bn[0], cn[0], i[0], j[0]) 12.74/5.22 EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]) 12.74/5.22 COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]) 12.74/5.22 EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]) 12.74/5.22 COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]) 12.74/5.22 EVAL(an[6], bn[6], cn[6], i[6], j[6]) -> COND_EVAL3(&&(<(j[6], bn[6]), >=(i[6], an[6])), an[6], bn[6], cn[6], i[6], j[6]) 12.74/5.22 12.74/5.22 12.74/5.22 At least the following rules have been oriented under context sensitive arithmetic replacement: 12.74/5.22 12.74/5.22 FALSE^1 -> &&(TRUE, FALSE)^1 12.74/5.22 FALSE^1 -> &&(FALSE, TRUE)^1 12.74/5.22 FALSE^1 -> &&(FALSE, FALSE)^1 12.74/5.22 12.74/5.22 ---------------------------------------- 12.74/5.22 12.74/5.22 (6) 12.74/5.22 Obligation: 12.74/5.22 IDP problem: 12.74/5.22 The following function symbols are pre-defined: 12.74/5.22 <<< 12.74/5.22 & ~ Bwand: (Integer, Integer) -> Integer 12.74/5.22 >= ~ Ge: (Integer, Integer) -> Boolean 12.74/5.22 | ~ Bwor: (Integer, Integer) -> Integer 12.74/5.22 / ~ Div: (Integer, Integer) -> Integer 12.74/5.22 != ~ Neq: (Integer, Integer) -> Boolean 12.74/5.22 && ~ Land: (Boolean, Boolean) -> Boolean 12.74/5.22 ! ~ Lnot: (Boolean) -> Boolean 12.74/5.22 = ~ Eq: (Integer, Integer) -> Boolean 12.74/5.22 <= ~ Le: (Integer, Integer) -> Boolean 12.74/5.22 ^ ~ Bwxor: (Integer, Integer) -> Integer 12.74/5.22 % ~ Mod: (Integer, Integer) -> Integer 12.74/5.22 + ~ Add: (Integer, Integer) -> Integer 12.74/5.22 > ~ Gt: (Integer, Integer) -> Boolean 12.74/5.22 -1 ~ UnaryMinus: (Integer) -> Integer 12.74/5.22 < ~ Lt: (Integer, Integer) -> Boolean 12.74/5.22 || ~ Lor: (Boolean, Boolean) -> Boolean 12.74/5.22 - ~ Sub: (Integer, Integer) -> Integer 12.74/5.22 ~ ~ Bwnot: (Integer) -> Integer 12.74/5.22 * ~ Mul: (Integer, Integer) -> Integer 12.74/5.22 >>> 12.74/5.22 12.74/5.22 12.74/5.22 The following domains are used: 12.74/5.22 Boolean, Integer 12.74/5.22 12.74/5.22 R is empty. 12.74/5.22 12.74/5.22 The integer pair graph contains the following rules and edges: 12.74/5.22 (0): EVAL(an[0], bn[0], cn[0], i[0], j[0]) -> COND_EVAL(j[0] < bn[0] && i[0] < an[0], an[0], bn[0], cn[0], i[0], j[0]) 12.74/5.22 (2): EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(j[2] < bn[2] && i[2] < an[2], an[2], bn[2], cn[2], i[2], j[2]) 12.74/5.22 (3): COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], cn[3] + 1, i[3] + 1, j[3]) 12.74/5.22 (4): EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(j[4] >= bn[4] && i[4] < an[4], an[4], bn[4], cn[4], i[4], j[4]) 12.74/5.22 (5): COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], cn[5] + 1, i[5] + 1, j[5]) 12.74/5.22 (6): EVAL(an[6], bn[6], cn[6], i[6], j[6]) -> COND_EVAL3(j[6] < bn[6] && i[6] >= an[6], an[6], bn[6], cn[6], i[6], j[6]) 12.74/5.22 12.74/5.22 (3) -> (0), if (an[3] ->^* an[0] & bn[3] ->^* bn[0] & cn[3] + 1 ->^* cn[0] & i[3] + 1 ->^* i[0] & j[3] ->^* j[0]) 12.74/5.22 (5) -> (0), if (an[5] ->^* an[0] & bn[5] ->^* bn[0] & cn[5] + 1 ->^* cn[0] & i[5] + 1 ->^* i[0] & j[5] ->^* j[0]) 12.74/5.22 (3) -> (2), if (an[3] ->^* an[2] & bn[3] ->^* bn[2] & cn[3] + 1 ->^* cn[2] & i[3] + 1 ->^* i[2] & j[3] ->^* j[2]) 12.74/5.22 (5) -> (2), if (an[5] ->^* an[2] & bn[5] ->^* bn[2] & cn[5] + 1 ->^* cn[2] & i[5] + 1 ->^* i[2] & j[5] ->^* j[2]) 12.74/5.22 (2) -> (3), if (j[2] < bn[2] && i[2] < an[2] & an[2] ->^* an[3] & bn[2] ->^* bn[3] & cn[2] ->^* cn[3] & i[2] ->^* i[3] & j[2] ->^* j[3]) 12.74/5.22 (3) -> (4), if (an[3] ->^* an[4] & bn[3] ->^* bn[4] & cn[3] + 1 ->^* cn[4] & i[3] + 1 ->^* i[4] & j[3] ->^* j[4]) 12.74/5.22 (5) -> (4), if (an[5] ->^* an[4] & bn[5] ->^* bn[4] & cn[5] + 1 ->^* cn[4] & i[5] + 1 ->^* i[4] & j[5] ->^* j[4]) 12.74/5.22 (4) -> (5), if (j[4] >= bn[4] && i[4] < an[4] & an[4] ->^* an[5] & bn[4] ->^* bn[5] & cn[4] ->^* cn[5] & i[4] ->^* i[5] & j[4] ->^* j[5]) 12.74/5.22 (3) -> (6), if (an[3] ->^* an[6] & bn[3] ->^* bn[6] & cn[3] + 1 ->^* cn[6] & i[3] + 1 ->^* i[6] & j[3] ->^* j[6]) 12.74/5.22 (5) -> (6), if (an[5] ->^* an[6] & bn[5] ->^* bn[6] & cn[5] + 1 ->^* cn[6] & i[5] + 1 ->^* i[6] & j[5] ->^* j[6]) 12.74/5.22 12.74/5.22 The set Q consists of the following terms: 12.74/5.22 eval(x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval1(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval2(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval3(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 12.74/5.22 ---------------------------------------- 12.74/5.22 12.74/5.22 (7) IDependencyGraphProof (EQUIVALENT) 12.74/5.22 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. 12.74/5.22 ---------------------------------------- 12.74/5.22 12.74/5.22 (8) 12.74/5.22 Obligation: 12.74/5.22 IDP problem: 12.74/5.22 The following function symbols are pre-defined: 12.74/5.22 <<< 12.74/5.22 & ~ Bwand: (Integer, Integer) -> Integer 12.74/5.22 >= ~ Ge: (Integer, Integer) -> Boolean 12.74/5.22 | ~ Bwor: (Integer, Integer) -> Integer 12.74/5.22 / ~ Div: (Integer, Integer) -> Integer 12.74/5.22 != ~ Neq: (Integer, Integer) -> Boolean 12.74/5.22 && ~ Land: (Boolean, Boolean) -> Boolean 12.74/5.22 ! ~ Lnot: (Boolean) -> Boolean 12.74/5.22 = ~ Eq: (Integer, Integer) -> Boolean 12.74/5.22 <= ~ Le: (Integer, Integer) -> Boolean 12.74/5.22 ^ ~ Bwxor: (Integer, Integer) -> Integer 12.74/5.22 % ~ Mod: (Integer, Integer) -> Integer 12.74/5.22 + ~ Add: (Integer, Integer) -> Integer 12.74/5.22 > ~ Gt: (Integer, Integer) -> Boolean 12.74/5.22 -1 ~ UnaryMinus: (Integer) -> Integer 12.74/5.22 < ~ Lt: (Integer, Integer) -> Boolean 12.74/5.22 || ~ Lor: (Boolean, Boolean) -> Boolean 12.74/5.22 - ~ Sub: (Integer, Integer) -> Integer 12.74/5.22 ~ ~ Bwnot: (Integer) -> Integer 12.74/5.22 * ~ Mul: (Integer, Integer) -> Integer 12.74/5.22 >>> 12.74/5.22 12.74/5.22 12.74/5.22 The following domains are used: 12.74/5.22 Integer, Boolean 12.74/5.22 12.74/5.22 R is empty. 12.74/5.22 12.74/5.22 The integer pair graph contains the following rules and edges: 12.74/5.22 (5): COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], cn[5] + 1, i[5] + 1, j[5]) 12.74/5.22 (4): EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(j[4] >= bn[4] && i[4] < an[4], an[4], bn[4], cn[4], i[4], j[4]) 12.74/5.22 (3): COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], cn[3] + 1, i[3] + 1, j[3]) 12.74/5.22 (2): EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(j[2] < bn[2] && i[2] < an[2], an[2], bn[2], cn[2], i[2], j[2]) 12.74/5.22 12.74/5.22 (3) -> (2), if (an[3] ->^* an[2] & bn[3] ->^* bn[2] & cn[3] + 1 ->^* cn[2] & i[3] + 1 ->^* i[2] & j[3] ->^* j[2]) 12.74/5.22 (5) -> (2), if (an[5] ->^* an[2] & bn[5] ->^* bn[2] & cn[5] + 1 ->^* cn[2] & i[5] + 1 ->^* i[2] & j[5] ->^* j[2]) 12.74/5.22 (2) -> (3), if (j[2] < bn[2] && i[2] < an[2] & an[2] ->^* an[3] & bn[2] ->^* bn[3] & cn[2] ->^* cn[3] & i[2] ->^* i[3] & j[2] ->^* j[3]) 12.74/5.22 (3) -> (4), if (an[3] ->^* an[4] & bn[3] ->^* bn[4] & cn[3] + 1 ->^* cn[4] & i[3] + 1 ->^* i[4] & j[3] ->^* j[4]) 12.74/5.22 (5) -> (4), if (an[5] ->^* an[4] & bn[5] ->^* bn[4] & cn[5] + 1 ->^* cn[4] & i[5] + 1 ->^* i[4] & j[5] ->^* j[4]) 12.74/5.22 (4) -> (5), if (j[4] >= bn[4] && i[4] < an[4] & an[4] ->^* an[5] & bn[4] ->^* bn[5] & cn[4] ->^* cn[5] & i[4] ->^* i[5] & j[4] ->^* j[5]) 12.74/5.22 12.74/5.22 The set Q consists of the following terms: 12.74/5.22 eval(x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval1(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval2(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 Cond_eval3(TRUE, x0, x1, x2, x3, x4) 12.74/5.22 12.74/5.22 ---------------------------------------- 12.74/5.22 12.74/5.22 (9) IDPNonInfProof (SOUND) 12.74/5.22 Used the following options for this NonInfProof: 12.74/5.22 12.74/5.22 IDPGPoloSolver: 12.74/5.22 Range: [(-1,2)] 12.74/5.22 IsNat: false 12.74/5.22 Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@72cdaf4d 12.74/5.22 Constraint Generator: NonInfConstraintGenerator: 12.74/5.22 PathGenerator: MetricPathGenerator: 12.74/5.22 Max Left Steps: 1 12.74/5.22 Max Right Steps: 1 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 The constraints were generated the following way: 12.74/5.22 12.74/5.22 The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps: 12.74/5.22 12.74/5.22 Note that final constraints are written in bold face. 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 For Pair COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]) the following chains were created: 12.74/5.22 *We consider the chain EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]), COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]), EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(>=(j[4], bn[4]), <(i[4], an[4]))=TRUE & an[4]=an[5] & bn[4]=bn[5] & cn[4]=cn[5] & i[4]=i[5] & j[4]=j[5] & an[5]=an[2] & bn[5]=bn[2] & +(cn[5], 1)=cn[2] & +(i[5], 1)=i[2] & j[5]=j[2] ==> COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5])_>=_NonInfC & COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5])_>=_EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]) & (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (>=(j[4], bn[4])=TRUE & <(i[4], an[4])=TRUE ==> COND_EVAL2(TRUE, an[4], bn[4], cn[4], i[4], j[4])_>=_NonInfC & COND_EVAL2(TRUE, an[4], bn[4], cn[4], i[4], j[4])_>=_EVAL(an[4], bn[4], +(cn[4], 1), +(i[4], 1), j[4]) & (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & [(-2)bni_26 + (-1)Bound*bni_26] + [(-1)bni_26]i[4] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & [(-2)bni_26 + (-1)Bound*bni_26] + [(-1)bni_26]i[4] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & [(-2)bni_26 + (-1)Bound*bni_26] + [(-1)bni_26]i[4] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-2)bni_26 + (-1)Bound*bni_26] + [(-1)bni_26]i[4] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (j[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-2)bni_26 + (-1)Bound*bni_26] + [(-1)bni_26]i[4] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (j[4] >= 0 & an[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 (10) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 (12) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 (14) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 *We consider the chain EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]), COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]), EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(>=(j[4], bn[4]), <(i[4], an[4]))=TRUE & an[4]=an[5] & bn[4]=bn[5] & cn[4]=cn[5] & i[4]=i[5] & j[4]=j[5] & an[5]=an[4]1 & bn[5]=bn[4]1 & +(cn[5], 1)=cn[4]1 & +(i[5], 1)=i[4]1 & j[5]=j[4]1 ==> COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5])_>=_NonInfC & COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5])_>=_EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]) & (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (>=(j[4], bn[4])=TRUE & <(i[4], an[4])=TRUE ==> COND_EVAL2(TRUE, an[4], bn[4], cn[4], i[4], j[4])_>=_NonInfC & COND_EVAL2(TRUE, an[4], bn[4], cn[4], i[4], j[4])_>=_EVAL(an[4], bn[4], +(cn[4], 1), +(i[4], 1), j[4]) & (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & [(-2)bni_26 + (-1)Bound*bni_26] + [(-1)bni_26]i[4] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & [(-2)bni_26 + (-1)Bound*bni_26] + [(-1)bni_26]i[4] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & [(-2)bni_26 + (-1)Bound*bni_26] + [(-1)bni_26]i[4] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-2)bni_26 + (-1)Bound*bni_26] + [(-1)bni_26]i[4] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (j[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-2)bni_26 + (-1)Bound*bni_26] + [(-1)bni_26]i[4] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (j[4] >= 0 & an[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 (10) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 (12) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 (14) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 For Pair EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]) the following chains were created: 12.74/5.22 *We consider the chain EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]), COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(>=(j[4], bn[4]), <(i[4], an[4]))=TRUE & an[4]=an[5] & bn[4]=bn[5] & cn[4]=cn[5] & i[4]=i[5] & j[4]=j[5] ==> EVAL(an[4], bn[4], cn[4], i[4], j[4])_>=_NonInfC & EVAL(an[4], bn[4], cn[4], i[4], j[4])_>=_COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]) & (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (>=(j[4], bn[4])=TRUE & <(i[4], an[4])=TRUE ==> EVAL(an[4], bn[4], cn[4], i[4], j[4])_>=_NonInfC & EVAL(an[4], bn[4], cn[4], i[4], j[4])_>=_COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]) & (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & [(-1)bni_28 + (-1)Bound*bni_28] + [(-1)bni_28]i[4] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & [(-1)bni_28 + (-1)Bound*bni_28] + [(-1)bni_28]i[4] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & [(-1)bni_28 + (-1)Bound*bni_28] + [(-1)bni_28]i[4] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (j[4] + [-1]bn[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_28 + (-1)Bound*bni_28] + [(-1)bni_28]i[4] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (j[4] >= 0 & an[4] + [-1] + [-1]i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)bni_28 + (-1)Bound*bni_28] + [(-1)bni_28]i[4] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (j[4] >= 0 & an[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)Bound*bni_28] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)Bound*bni_28] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.22 12.74/5.22 (10) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)Bound*bni_28] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)Bound*bni_28] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.22 12.74/5.22 (12) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)Bound*bni_28] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)Bound*bni_28] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.22 12.74/5.22 (14) (j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)Bound*bni_28] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 For Pair COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]) the following chains were created: 12.74/5.22 *We consider the chain EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]), COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]), EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(<(j[2], bn[2]), <(i[2], an[2]))=TRUE & an[2]=an[3] & bn[2]=bn[3] & cn[2]=cn[3] & i[2]=i[3] & j[2]=j[3] & an[3]=an[2]1 & bn[3]=bn[2]1 & +(cn[3], 1)=cn[2]1 & +(i[3], 1)=i[2]1 & j[3]=j[2]1 ==> COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3])_>=_NonInfC & COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3])_>=_EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]) & (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (<(j[2], bn[2])=TRUE & <(i[2], an[2])=TRUE ==> COND_EVAL1(TRUE, an[2], bn[2], cn[2], i[2], j[2])_>=_NonInfC & COND_EVAL1(TRUE, an[2], bn[2], cn[2], i[2], j[2])_>=_EVAL(an[2], bn[2], +(cn[2], 1), +(i[2], 1), j[2]) & (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & [(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i[2] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & [(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i[2] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & [(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i[2] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i[2] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (bn[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i[2] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (bn[2] >= 0 & an[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 (10) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 (12) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 (14) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 *We consider the chain EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]), COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]), EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(<(j[2], bn[2]), <(i[2], an[2]))=TRUE & an[2]=an[3] & bn[2]=bn[3] & cn[2]=cn[3] & i[2]=i[3] & j[2]=j[3] & an[3]=an[4] & bn[3]=bn[4] & +(cn[3], 1)=cn[4] & +(i[3], 1)=i[4] & j[3]=j[4] ==> COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3])_>=_NonInfC & COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3])_>=_EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]) & (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (<(j[2], bn[2])=TRUE & <(i[2], an[2])=TRUE ==> COND_EVAL1(TRUE, an[2], bn[2], cn[2], i[2], j[2])_>=_NonInfC & COND_EVAL1(TRUE, an[2], bn[2], cn[2], i[2], j[2])_>=_EVAL(an[2], bn[2], +(cn[2], 1), +(i[2], 1), j[2]) & (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & [(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i[2] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & [(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i[2] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & [(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i[2] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i[2] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (bn[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i[2] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (bn[2] >= 0 & an[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 (10) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 (12) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 (14) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 For Pair EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]) the following chains were created: 12.74/5.22 *We consider the chain EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]), COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]) which results in the following constraint: 12.74/5.22 12.74/5.22 (1) (&&(<(j[2], bn[2]), <(i[2], an[2]))=TRUE & an[2]=an[3] & bn[2]=bn[3] & cn[2]=cn[3] & i[2]=i[3] & j[2]=j[3] ==> EVAL(an[2], bn[2], cn[2], i[2], j[2])_>=_NonInfC & EVAL(an[2], bn[2], cn[2], i[2], j[2])_>=_COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]) & (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint: 12.74/5.22 12.74/5.22 (2) (<(j[2], bn[2])=TRUE & <(i[2], an[2])=TRUE ==> EVAL(an[2], bn[2], cn[2], i[2], j[2])_>=_NonInfC & EVAL(an[2], bn[2], cn[2], i[2], j[2])_>=_COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]) & (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=)) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (3) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & [(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i[2] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint: 12.74/5.22 12.74/5.22 (4) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & [(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i[2] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint: 12.74/5.22 12.74/5.22 (5) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & [(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i[2] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint: 12.74/5.22 12.74/5.22 (6) (bn[2] + [-1] + [-1]j[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i[2] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (7) (bn[2] >= 0 & an[2] + [-1] + [-1]i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i[2] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (7) using rule (IDP_SMT_SPLIT) which results in the following new constraint: 12.74/5.22 12.74/5.22 (8) (bn[2] >= 0 & an[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_32] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (8) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (9) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_32] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.22 12.74/5.22 (10) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_32] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (11) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_32] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.22 12.74/5.22 (12) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_32] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraints: 12.74/5.22 12.74/5.22 (13) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_32] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.22 12.74/5.22 (14) (bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_32] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 12.74/5.22 To summarize, we get the following constraints P__>=_ for the following pairs. 12.74/5.22 12.74/5.22 *COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]) 12.74/5.22 12.74/5.22 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5])), >=) & 0 = 0 & [(-1)bni_26 + (-1)Bound*bni_26] + [bni_26]an[4] >= 0 & [(-1)bso_27] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 12.74/5.23 12.74/5.23 *EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]) 12.74/5.23 12.74/5.23 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)Bound*bni_28] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)Bound*bni_28] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)Bound*bni_28] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(j[4] >= 0 & an[4] >= 0 & bn[4] >= 0 & i[4] >= 0 ==> (U^Increasing(COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4])), >=) & 0 = 0 & [(-1)Bound*bni_28] + [bni_28]an[4] >= 0 & [1 + (-1)bso_29] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 12.74/5.23 12.74/5.23 *COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]) 12.74/5.23 12.74/5.23 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3])), >=) & 0 = 0 & [(-1)Bound*bni_30] + [bni_30]an[2] >= 0 & [1 + (-1)bso_31] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 12.74/5.23 12.74/5.23 *EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]) 12.74/5.23 12.74/5.23 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_32] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_32] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_32] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 *(bn[2] >= 0 & an[2] >= 0 & j[2] >= 0 & i[2] >= 0 ==> (U^Increasing(COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2])), >=) & 0 = 0 & [(-1)Bound*bni_32] + [bni_32]an[2] >= 0 & [(-1)bso_33] >= 0) 12.74/5.23 12.74/5.23 12.74/5.23 12.74/5.23 12.74/5.23 12.74/5.23 12.74/5.23 12.74/5.23 12.74/5.23 The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. 12.74/5.23 12.74/5.23 Using the following integer polynomial ordering the resulting constraints can be solved 12.74/5.23 12.74/5.23 Polynomial interpretation over integers[POLO]: 12.74/5.23 12.74/5.23 POL(TRUE) = [1] 12.74/5.23 POL(FALSE) = [1] 12.74/5.23 POL(COND_EVAL2(x_1, x_2, x_3, x_4, x_5, x_6)) = [-1] + [-1]x_5 + x_2 + [-1]x_1 12.74/5.23 POL(EVAL(x_1, x_2, x_3, x_4, x_5)) = [-1] + [-1]x_4 + x_1 12.74/5.23 POL(+(x_1, x_2)) = x_1 + x_2 12.74/5.23 POL(1) = [1] 12.74/5.23 POL(&&(x_1, x_2)) = [1] 12.74/5.23 POL(>=(x_1, x_2)) = [-1] 12.74/5.23 POL(<(x_1, x_2)) = [-1] 12.74/5.23 POL(COND_EVAL1(x_1, x_2, x_3, x_4, x_5, x_6)) = [-1]x_5 + x_2 + [-1]x_1 12.74/5.23 12.74/5.23 12.74/5.23 The following pairs are in P_>: 12.74/5.23 12.74/5.23 12.74/5.23 EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]) 12.74/5.23 COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]) 12.74/5.23 12.74/5.23 12.74/5.23 The following pairs are in P_bound: 12.74/5.23 12.74/5.23 12.74/5.23 COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]) 12.74/5.23 EVAL(an[4], bn[4], cn[4], i[4], j[4]) -> COND_EVAL2(&&(>=(j[4], bn[4]), <(i[4], an[4])), an[4], bn[4], cn[4], i[4], j[4]) 12.74/5.23 COND_EVAL1(TRUE, an[3], bn[3], cn[3], i[3], j[3]) -> EVAL(an[3], bn[3], +(cn[3], 1), +(i[3], 1), j[3]) 12.74/5.23 EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]) 12.74/5.23 12.74/5.23 12.74/5.23 The following pairs are in P_>=: 12.74/5.23 12.74/5.23 12.74/5.23 COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], +(cn[5], 1), +(i[5], 1), j[5]) 12.74/5.23 EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(&&(<(j[2], bn[2]), <(i[2], an[2])), an[2], bn[2], cn[2], i[2], j[2]) 12.74/5.23 12.74/5.23 12.74/5.23 At least the following rules have been oriented under context sensitive arithmetic replacement: 12.74/5.23 12.74/5.23 &&(TRUE, TRUE)^1 <-> TRUE^1 12.74/5.23 &&(TRUE, FALSE)^1 <-> FALSE^1 12.74/5.23 &&(FALSE, TRUE)^1 <-> FALSE^1 12.74/5.23 &&(FALSE, FALSE)^1 <-> FALSE^1 12.74/5.23 12.74/5.23 ---------------------------------------- 12.74/5.23 12.74/5.23 (10) 12.74/5.23 Obligation: 12.74/5.23 IDP problem: 12.74/5.23 The following function symbols are pre-defined: 12.74/5.23 <<< 12.74/5.23 & ~ Bwand: (Integer, Integer) -> Integer 12.74/5.23 >= ~ Ge: (Integer, Integer) -> Boolean 12.74/5.23 | ~ Bwor: (Integer, Integer) -> Integer 12.74/5.23 / ~ Div: (Integer, Integer) -> Integer 12.74/5.23 != ~ Neq: (Integer, Integer) -> Boolean 12.74/5.23 && ~ Land: (Boolean, Boolean) -> Boolean 12.74/5.23 ! ~ Lnot: (Boolean) -> Boolean 12.74/5.23 = ~ Eq: (Integer, Integer) -> Boolean 12.74/5.23 <= ~ Le: (Integer, Integer) -> Boolean 12.74/5.23 ^ ~ Bwxor: (Integer, Integer) -> Integer 12.74/5.23 % ~ Mod: (Integer, Integer) -> Integer 12.74/5.23 + ~ Add: (Integer, Integer) -> Integer 12.74/5.23 > ~ Gt: (Integer, Integer) -> Boolean 12.74/5.23 -1 ~ UnaryMinus: (Integer) -> Integer 12.74/5.23 < ~ Lt: (Integer, Integer) -> Boolean 12.74/5.23 || ~ Lor: (Boolean, Boolean) -> Boolean 12.74/5.23 - ~ Sub: (Integer, Integer) -> Integer 12.74/5.23 ~ ~ Bwnot: (Integer) -> Integer 12.74/5.23 * ~ Mul: (Integer, Integer) -> Integer 12.74/5.23 >>> 12.74/5.23 12.74/5.23 12.74/5.23 The following domains are used: 12.74/5.23 Integer, Boolean 12.74/5.23 12.74/5.23 R is empty. 12.74/5.23 12.74/5.23 The integer pair graph contains the following rules and edges: 12.74/5.23 (5): COND_EVAL2(TRUE, an[5], bn[5], cn[5], i[5], j[5]) -> EVAL(an[5], bn[5], cn[5] + 1, i[5] + 1, j[5]) 12.74/5.23 (2): EVAL(an[2], bn[2], cn[2], i[2], j[2]) -> COND_EVAL1(j[2] < bn[2] && i[2] < an[2], an[2], bn[2], cn[2], i[2], j[2]) 12.74/5.23 12.74/5.23 (5) -> (2), if (an[5] ->^* an[2] & bn[5] ->^* bn[2] & cn[5] + 1 ->^* cn[2] & i[5] + 1 ->^* i[2] & j[5] ->^* j[2]) 12.74/5.23 12.74/5.23 The set Q consists of the following terms: 12.74/5.23 eval(x0, x1, x2, x3, x4) 12.74/5.23 Cond_eval(TRUE, x0, x1, x2, x3, x4) 12.74/5.23 Cond_eval1(TRUE, x0, x1, x2, x3, x4) 12.74/5.23 Cond_eval2(TRUE, x0, x1, x2, x3, x4) 12.74/5.23 Cond_eval3(TRUE, x0, x1, x2, x3, x4) 12.74/5.23 12.74/5.23 ---------------------------------------- 12.74/5.23 12.74/5.23 (11) IDependencyGraphProof (EQUIVALENT) 12.74/5.23 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes. 12.74/5.23 ---------------------------------------- 12.74/5.23 12.74/5.23 (12) 12.74/5.23 TRUE 12.83/6.73 EOF