(set-logic QF_AUFLIA) (declare-fun x () Int) (declare-fun y () Int) (declare-fun z () Int) (declare-fun m () Int) (assert (=> (and (< y z) (< x y) ) (= m y))) (assert (=> (and (< y z) (>= x y) (< x z)) (= m y))) ; fix by replacing last ’y’ by ’x’ (assert (=> (and (< y z) (>= x y) (>= x z)) (= m z))) (assert (=> (and (>= y z) (> x y) ) (= m y))) (assert (=> (and (>= y z) (<= x y) (> x z) ) (= m x))) (assert (=> (and (>= y z) (<= x y) (<= x z)) (= m z))) (declare-fun i () Int) (declare-fun j () Int) (declare-fun k () Int) (declare-fun a () (Array Int Int)) (assert (and (<= 0 i) (<= i 2) (<= 0 j) (<= j 2) (<= 0 k) (<= k 2))) (assert (and (= (select a i) x) (= (select a j) y) (= (select a k) z))) (assert (<= (select a 0) (select a 1) (select a 2))) (assert (distinct i j k)) (assert (distinct m (select a 1))) (check-sat) (get-model) (exit)