; Automatically generated by map2smt (set-logic HORN) (declare-fun new4 (Int Bool) Bool) (declare-fun new3 (Int Bool) Bool) (declare-fun new2 (Int Bool) Bool) (declare-fun new1 (Int Bool Int Bool) Bool) (declare-fun ff () Bool) (assert (forall ( (A Int) (B Bool) ) (=> (= B false) (new4 A B) ) ) ) (assert (forall ( (A Int) (B Bool) ) (=> (= B true) (new4 A B) ) ) ) (assert (forall ( (A Int) (B Bool) ) (=> (and (= B true) (new4 A B) ) (new4 A B) ) ) ) (assert (forall ( (A Int) (B Bool) (C Int) ) (=> (and (= B false) (>= (- C A) 1) (new4 A B) ) (new4 A B) ) ) ) (assert (forall ( (A Int) (B Bool) (C Int) ) (=> (and (= B false) (<= (- C A) (- 1)) (new4 A B) ) (new4 A B) ) ) ) (assert (forall ( (A Int) (B Bool) ) (=> (new2 A B) (new3 A B) ) ) ) (assert (forall ( (A Int) (B Bool) ) (=> (= B true) (new3 A B) ) ) ) (assert (forall ( (A Int) (B Bool) ) (=> (and (= B true) (new3 A B) ) (new3 A B) ) ) ) (assert (forall ( (A Int) (B Bool) (C Int) ) (=> (and (= B false) (>= (- C A) 1) (new3 A B) ) (new3 A B) ) ) ) (assert (forall ( (A Int) (B Bool) (C Int) ) (=> (and (= B false) (<= (- C A) (- 1)) (new3 A B) ) (new3 A B) ) ) ) (assert (forall ( (A Int) (B Bool) ) (=> (= B false) (new2 A B) ) ) ) (assert (forall ( (A Int) (B Bool) ) (=> (= B true) (new2 A B) ) ) ) (assert (forall ( (A Int) (B Bool) ) (=> (and (= B true) (new2 A B) ) (new2 A B) ) ) ) (assert (forall ( (A Int) (B Bool) (C Int) ) (=> (and (= B false) (>= (- C A) 1) (new2 A B) ) (new2 A B) ) ) ) (assert (forall ( (A Int) (B Bool) (C Int) ) (=> (and (= B false) (<= (- C A) (- 1)) (new2 A B) ) (new2 A B) ) ) ) (assert (forall ( (A Int) (B Bool) (C Bool) ) (=> (and (= B false) (new2 A C) ) (new1 A B A C) ) ) ) (assert (forall ( (A Int) (B Bool) (C Bool) ) (=> (and (= C true) (= B true) ) (new1 A B A C) ) ) ) (assert (forall ( (A Int) (B Bool) (C Bool) ) (=> (and (= C true) (= B true) (new3 A C) ) (new1 A B A C) ) ) ) (assert (forall ( (A Int) (B Bool) (C Bool) ) (=> (and (= C true) (= B true) (new4 A B) ) (new1 A B A C) ) ) ) (assert (forall ( (A Int) (B Bool) (C Bool) ) (=> (and (= C true) (= B true) (new1 A B A C) ) (new1 A B A C) ) ) ) (assert (forall ( (A Int) (B Bool) (C Bool) (D Int) ) (=> (and (= C false) (= B true) (>= (- D A) 1) (new1 A B A C) ) (new1 A B A C) ) ) ) (assert (forall ( (A Int) (B Bool) (C Bool) (D Int) ) (=> (and (= C false) (= B true) (<= (- D A) (- 1)) (new1 A B A C) ) (new1 A B A C) ) ) ) (assert (forall ( (A Int) (B Bool) (C Bool) (D Int) ) (=> (and (= C true) (= B false) (>= (- D A) 1) (new1 A B A C) ) (new1 A B A C) ) ) ) (assert (forall ( (A Int) (B Bool) (C Bool) (D Int) ) (=> (and (= C false) (= B false) (>= (- D A) 1) (>= (- D A) 1) (new1 A B A C) ) (new1 A B A C) ) ) ) (assert (forall ( (A Int) (B Bool) (C Bool) (D Int) ) (=> (and (= C true) (= B false) (<= (- D A) (- 1)) (new1 A B A C) ) (new1 A B A C) ) ) ) (assert (forall ( (A Int) (B Bool) (C Bool) (D Int) ) (=> (and (= C false) (= B false) (<= (- D A) (- 1)) (<= (- D A) (- 1)) (new1 A B A C) ) (new1 A B A C) ) ) ) (assert (forall ( (A Bool) (B Bool) (C Int) ) (=> (and (= A true) (= B false) (new1 C A C B) ) ff ) ) ) (assert (not ff)) (check-sat)