(set-info :smt-lib-version 2.6) (set-logic QF_LIA) (set-info :source | Generated by: Martin Bromberger Generated on: 2018-01-06 Application: This is a problem with unbounded directions and, therefore, a good test for the termination/completeness of branch-and-bound solvers. Publications: M. Bromberger. A Reduction from Unbounded Linear Mixed Arithmetic Problems into Bounded Problems. (Work in progress.) The benchmarks in this class are based on the problems from SMT-LIB/QF_LIA/CAV_2009 and SMT-LIB/QF_LIA/cut_lemmas. I just replaced all variables x with x_+ - x_-, where x_+ and x_- are two new variables such that x_+, x_- >= 0. This transformation is equisatisfiable. The new variables and an unsatisfiable status guarantee that there are bounded and unbounded directions. Target solver: CVC4 Mathsat SPASS-IQ YICES Z3 |) (set-info :license "https://creativecommons.org/licenses/by/4.0/") (set-info :category "crafted") (set-info :status sat) (declare-fun x9_plus () Int) (declare-fun x9_minus () Int) (declare-fun x6_plus () Int) (declare-fun x6_minus () Int) (declare-fun x5_plus () Int) (declare-fun x5_minus () Int) (declare-fun x4_plus () Int) (declare-fun x4_minus () Int) (declare-fun x3_plus () Int) (declare-fun x3_minus () Int) (declare-fun x2_plus () Int) (declare-fun x2_minus () Int) (declare-fun x1_plus () Int) (declare-fun x1_minus () Int) (declare-fun x0_plus () Int) (declare-fun x0_minus () Int) (declare-fun x8_plus () Int) (declare-fun x8_minus () Int) (declare-fun x7_plus () Int) (declare-fun x7_minus () Int) (assert (>= x9_plus 0)) (assert (>= x9_minus 0)) (assert (>= x6_plus 0)) (assert (>= x6_minus 0)) (assert (>= x5_plus 0)) (assert (>= x5_minus 0)) (assert (>= x4_plus 0)) (assert (>= x4_minus 0)) (assert (>= x3_plus 0)) (assert (>= x3_minus 0)) (assert (>= x2_plus 0)) (assert (>= x2_minus 0)) (assert (>= x1_plus 0)) (assert (>= x1_minus 0)) (assert (>= x0_plus 0)) (assert (>= x0_minus 0)) (assert (>= x8_plus 0)) (assert (>= x8_minus 0)) (assert (>= x7_plus 0)) (assert (>= x7_minus 0)) (assert (<= (+ (* 21 x9_plus) (* (- 21) x9_minus) (* 4 x6_plus) (* (- 4) x6_minus) (* 16 x5_plus) (* (- 16) x5_minus) (* 19 x4_plus) (* (- 19) x4_minus) (* 5 x3_plus) (* (- 5) x3_minus) (* (- 15) x2_plus) (* 15 x2_minus) (* (- 14) x1_plus) (* 14 x1_minus) (* 17 x0_plus) (* (- 17) x0_minus) ) (- 2) ) ) (assert (<= (+ (* 22 x9_plus) (* (- 22) x9_minus) (* (- 15) x8_plus) (* 15 x8_minus) (* 15 x6_plus) (* (- 15) x6_minus) (* (- 7) x4_plus) (* 7 x4_minus) (* (- 8) x3_plus) (* 8 x3_minus) (* 14 x1_plus) (* (- 14) x1_minus) (* 20 x0_plus) (* (- 20) x0_minus) ) (- 13) ) ) (assert (<= (+ (* 6 x7_plus) (* (- 6) x7_minus) (* (- 16) x6_plus) (* 16 x6_minus) (* (- 18) x5_plus) (* 18 x5_minus) (* (- 7) x4_plus) (* 7 x4_minus) (* 29 x3_plus) (* (- 29) x3_minus) (* 6 x2_plus) (* (- 6) x2_minus) (* (- 2) x1_plus) (* 2 x1_minus) ) 15 ) ) (assert (<= (+ (* 7 x7_plus) (* (- 7) x7_minus) (* 30 x6_plus) (* (- 30) x6_minus) (* (- 19) x5_plus) (* 19 x5_minus) (* (- 4) x4_plus) (* 4 x4_minus) (* (- 1) x2_plus) x2_minus (* 12 x1_plus) (* (- 12) x1_minus) (* 7 x0_plus) (* (- 7) x0_minus) ) 18 ) ) (assert (<= (+ (* 14 x9_plus) (* (- 14) x9_minus) (* (- 18) x8_plus) (* 18 x8_minus) (* (- 10) x7_plus) (* 10 x7_minus) (* 4 x5_plus) (* (- 4) x5_minus) x4_plus (* (- 1) x4_minus) (* (- 6) x2_plus) (* 6 x2_minus) x0_plus (* (- 1) x0_minus) ) 12 ) ) (assert (<= (+ (* 16 x7_plus) (* (- 16) x7_minus) (* (- 9) x6_plus) (* 9 x6_minus) (* (- 13) x5_plus) (* 13 x5_minus) (* 9 x4_plus) (* (- 9) x4_minus) (* 3 x2_plus) (* (- 3) x2_minus) (* (- 8) x1_plus) (* 8 x1_minus) (* 7 x0_plus) (* (- 7) x0_minus) ) (- 11) ) ) (assert (<= (+ (* 11 x5_plus) (* (- 11) x5_minus) (* (- 18) x4_plus) (* 18 x4_minus) (* 2 x3_plus) (* (- 2) x3_minus) (* (- 11) x2_plus) (* 11 x2_minus) (* (- 16) x1_plus) (* 16 x1_minus) (* (- 29) x0_plus) (* 29 x0_minus) ) (- 13) ) ) (assert (<= (+ x9_plus (* (- 1) x9_minus) (* 20 x8_plus) (* (- 20) x8_minus) (* 33 x7_plus) (* (- 33) x7_minus) (* 11 x3_plus) (* (- 11) x3_minus) (* 15 x2_plus) (* (- 15) x2_minus) (* (- 4) x0_plus) (* 4 x0_minus) ) 5 ) ) (assert (<= (+ (* 4 x9_plus) (* (- 4) x9_minus) (* 11 x8_plus) (* (- 11) x8_minus) (* 2 x6_plus) (* (- 2) x6_minus) (* 9 x5_plus) (* (- 9) x5_minus) (* (- 5) x3_plus) (* 5 x3_minus) (* 8 x2_plus) (* (- 8) x2_minus) ) (- 5) ) ) (assert (<= (+ (* 13 x9_plus) (* (- 13) x9_minus) (* (- 5) x8_plus) (* 5 x8_minus) (* (- 12) x7_plus) (* 12 x7_minus) (* (- 1) x3_plus) x3_minus (* 19 x2_plus) (* (- 19) x2_minus) (* 3 x1_plus) (* (- 3) x1_minus) ) (- 14) ) ) (assert (<= (+ (* 6 x7_plus) (* (- 6) x7_minus) (* 11 x6_plus) (* (- 11) x6_minus) x4_plus (* (- 1) x4_minus) (* (- 15) x0_plus) (* 15 x0_minus) ) 11 ) ) (assert (>= (+ (* 14 x8_plus) (* (- 14) x8_minus) (* (- 3) x7_plus) (* 3 x7_minus) (* (- 14) x5_plus) (* 14 x5_minus) (* (- 3) x4_plus) (* 3 x4_minus) (* 4 x3_plus) (* (- 4) x3_minus) (* 26 x2_plus) (* (- 26) x2_minus) (* 5 x0_plus) (* (- 5) x0_minus) ) 10 ) ) (assert (>= (+ (* 7 x9_plus) (* (- 7) x9_minus) (* (- 14) x8_plus) (* 14 x8_minus) (* 4 x4_plus) (* (- 4) x4_minus) (* (- 4) x3_plus) (* 4 x3_minus) (* (- 23) x2_plus) (* 23 x2_minus) (* (- 17) x1_plus) (* 17 x1_minus) (* (- 8) x0_plus) (* 8 x0_minus) ) 13 ) ) (assert (>= (+ (* 7 x9_plus) (* (- 7) x9_minus) (* (- 17) x7_plus) (* 17 x7_minus) (* (- 27) x6_plus) (* 27 x6_minus) (* (- 5) x3_plus) (* 5 x3_minus) (* (- 14) x2_plus) (* 14 x2_minus) (* 3 x0_plus) (* (- 3) x0_minus) ) 2 ) ) (assert (>= (+ (* 2 x9_plus) (* (- 2) x9_minus) (* 11 x8_plus) (* (- 11) x8_minus) (* (- 1) x7_plus) x7_minus (* (- 1) x5_plus) x5_minus (* 4 x3_plus) (* (- 4) x3_minus) (* (- 6) x2_plus) (* 6 x2_minus) ) 1 ) ) (assert (>= (+ (* 5 x9_plus) (* (- 5) x9_minus) (* (- 6) x7_plus) (* 6 x7_minus) (* 16 x6_plus) (* (- 16) x6_minus) (* (- 6) x2_plus) (* 6 x2_minus) (* (- 12) x1_plus) (* 12 x1_minus) (* (- 19) x0_plus) (* 19 x0_minus) ) 11 ) ) (assert (>= (+ (* 14 x9_plus) (* (- 14) x9_minus) (* 19 x7_plus) (* (- 19) x7_minus) (* 8 x6_plus) (* (- 8) x6_minus) (* (- 5) x5_plus) (* 5 x5_minus) (* (- 13) x3_plus) (* 13 x3_minus) (* (- 9) x1_plus) (* 9 x1_minus) ) (- 2) ) ) (assert (>= (+ (* 4 x9_plus) (* (- 4) x9_minus) (* (- 9) x8_plus) (* 9 x8_minus) (* 25 x7_plus) (* (- 25) x7_minus) (* (- 8) x6_plus) (* 8 x6_minus) (* 22 x4_plus) (* (- 22) x4_minus) (* 21 x1_plus) (* (- 21) x1_minus) ) 6 ) ) (assert (>= (+ (* 12 x8_plus) (* (- 12) x8_minus) (* 16 x4_plus) (* (- 16) x4_minus) (* (- 14) x3_plus) (* 14 x3_minus) (* (- 11) x2_plus) (* 11 x2_minus) (* (- 26) x1_plus) (* 26 x1_minus) ) 9 ) ) (assert (>= (+ (* 12 x7_plus) (* (- 12) x7_minus) (* (- 11) x6_plus) (* 11 x6_minus) (* (- 13) x4_plus) (* 13 x4_minus) (* (- 33) x2_plus) (* 33 x2_minus) ) 7 ) ) (check-sat) (exit)