Z3正在为带有位向量变量的EPR公式生成一个“未知”结果。该公式包括位向量上的通用量词。原则上,似乎Z3应该是此类公式的决策程序,因为它们可以有限地建立。但是,我不确定Z3真正保证了什么。是EPR +位向量的决策程序吗?
下面是一个示例公式。尽管命令行Z3表示“ unsat”,但Z3Py对此公式给出了“未知”。
; benchmark generated from python API
(set-info :status unknown)
(declare-sort packet)
(declare-fun |__loc:sw1| () (_ BitVec 4))
(declare-fun dst (packet) (_ BitVec 4))
(declare-fun |__loc:p| () packet)
(declare-fun |__ts0__ts0__new_prm:N_a| () (_ BitVec 4))
(declare-fun |__loc:sw2| () (_ BitVec 4))
(declare-fun |__fml:y| () (_ BitVec 4))
(declare-fun |__new_loc:sw2| () (_ BitVec 4))
(declare-fun |__loc:sw0| () (_ BitVec 4))
(declare-fun |__ts0__ts0__new_fml:x_a| () (_ BitVec 4))
(declare-fun src (packet) (_ BitVec 4))
(declare-fun |__ts0__new_fml:y| () (_ BitVec 4))
(declare-fun |__ts0__new_prm:N| () (_ BitVec 4))
(declare-fun |__ts0__new_fml:x| () (_ BitVec 4))
(declare-fun @Z () (_ BitVec 4))
(declare-fun @X () (_ BitVec 4))
(declare-fun @N () (_ BitVec 4))
(declare-fun @Y () (_ BitVec 4))
(declare-fun __ts0_b () Bool)
(declare-fun __ts0__ts0_a () Bool)
(declare-fun __m_pending (packet (_ BitVec 4) (_ BitVec 4)) Bool)
(declare-fun link ((_ BitVec 4) (_ BitVec 4)) Bool)
(declare-fun pending (packet (_ BitVec 4) (_ BitVec 4)) Bool)
(declare-fun route.dom ((_ BitVec 4) (_ BitVec 4)) Bool)
(declare-fun __route.dom ((_ BitVec 4) (_ BitVec 4)) Bool)
(declare-fun __ts0_a () Bool)
(declare-fun __route.tc ((_ BitVec 4) (_ BitVec 4) (_ BitVec 4)) Bool)
(declare-fun route.tc ((_ BitVec 4) (_ BitVec 4) (_ BitVec 4)) Bool)
(declare-fun __pending (packet (_ BitVec 4) (_ BitVec 4)) Bool)
(assert
(let ((?x98 (ite (bvuge |__loc:sw1| (_ bv9 4)) (_ bv9 4) |__loc:sw1|)))
(let ((?x3279 (dst |__loc:p|)))
(let ((?x6016 (ite (bvuge ?x3279 (_ bv9 4)) (_ bv9 4) ?x3279)))
(let ((?x32 (ite (bvuge |__ts0__ts0__new_prm:N_a| (_ bv9 4)) (_ bv9 4) |__ts0__ts0__new_prm:N_a|)))
(let ((?x1201 (ite (bvuge |__fml:y| (_ bv9 4)) (_ bv9 4) |__fml:y|)))
(let ((?x10967 (ite __ts0_b (ite __ts0__ts0_a (ite (bvuge |__loc:sw2| (_ bv9 4)) (_ bv9 4) |__loc:sw2|) ?x1201) (ite (bvuge |__loc:sw2| (_ bv9 4)) (_ bv9 4) |__loc:sw2|))))
(let (($x9082 (forall ((|V0:packet| packet) (|V1:node| (_ BitVec 4)) (|V2:node| (_ BitVec 4)) )(let ((?x38 (ite (bvuge |V2:node| (_ bv9 4)) (_ bv9 4) |V2:node|)))
(let ((?x9908 (ite (bvuge |V1:node| (_ bv9 4)) (_ bv9 4) |V1:node|)))
(let (($x33 (__m_pending |V0:packet| ?x9908 ?x38)))
(let (($x87 (= |V0:packet| |__loc:p|)))
(let (($x9239 (and $x87 (= ?x9908 (ite (bvuge |__loc:sw1| (_ bv9 4)) (_ bv9 4) |__loc:sw1|)) (= ?x38 (ite (bvuge |__new_loc:sw2| (_ bv9 4)) (_ bv9 4) |__new_loc:sw2|)))))
(let (($x6230 (and (link (ite (bvuge |__loc:sw1| (_ bv9 4)) (_ bv9 4) |__loc:sw1|) ?x38) (not (= ?x38 (ite (bvuge |__loc:sw0| (_ bv9 4)) (_ bv9 4) |__loc:sw0|))))))
(let (($x6311 (ite (and $x87 (= ?x9908 (ite (bvuge |__loc:sw1| (_ bv9 4)) (_ bv9 4) |__loc:sw1|))) $x6230 $x33)))
(= (pending |V0:packet| ?x9908 ?x38) (ite __ts0_b (ite __ts0__ts0_a $x6311 (ite $x9239 and $x33)) $x33))))))))))
))
(let ((?x49 (ite (bvuge |__ts0__ts0__new_fml:x_a| (_ bv9 4)) (_ bv9 4) |__ts0__ts0__new_fml:x_a|)))
(let ((?x559 (src |__loc:p|)))
(let ((?x73 (ite (bvuge ?x559 (_ bv9 4)) (_ bv9 4) ?x559)))
(let (($x10509 (forall ((|V0:node| (_ BitVec 4)) (|V1:node| (_ BitVec 4)) (|V2:node| (_ BitVec 4)) )(let ((?x38 (ite (bvuge |V2:node| (_ bv9 4)) (_ bv9 4) |V2:node|)))
(let ((?x9908 (ite (bvuge |V1:node| (_ bv9 4)) (_ bv9 4) |V1:node|)))
(let ((?x8115 (ite (bvuge |V0:node| (_ bv9 4)) (_ bv9 4) |V0:node|)))
(let (($x66287 (__route.tc ?x8115 ?x9908 ?x38)))
(let ((?x210 (ite (bvuge |__ts0__new_prm:N| (_ bv9 4)) (_ bv9 4) |__ts0__new_prm:N|)))
(let (($x10871 (__route.tc ?x210 (ite (bvuge |__ts0__new_fml:y| (_ bv9 4)) (_ bv9 4) |__ts0__new_fml:y|) ?x38)))
(let ((?x10078 (ite (bvuge |__ts0__new_fml:x| (_ bv9 4)) (_ bv9 4) |__ts0__new_fml:x|)))
(let (($x7866 (or (__route.tc ?x210 ?x9908 ?x38) (and (__route.tc ?x210 ?x9908 ?x10078) $x10871))))
(= (route.tc ?x8115 ?x9908 ?x38) (ite __ts0_a (ite (and (= ?x8115 ?x210)) $x7866 $x66287) $x66287)))))))))))
))
(let (($x1168 (forall ((|V0:node| (_ BitVec 4)) (|V1:node| (_ BitVec 4)) )(let ((?x38 (ite (bvuge |V1:node| (_ bv9 4)) (_ bv9 4) |V1:node|)))
(let ((?x9908 (ite (bvuge |V0:node| (_ bv9 4)) (_ bv9 4) |V0:node|)))
(let (($x1359 (and (= ?x9908 (ite (bvuge |__ts0__new_prm:N| (_ bv9 4)) (_ bv9 4) |__ts0__new_prm:N|)) (= ?x38 (ite (bvuge |__ts0__new_fml:x| (_ bv9 4)) (_ bv9 4) |__ts0__new_fml:x|)))))
(let (($x4140 (ite __ts0_a (ite $x1359 and (__route.dom ?x9908 ?x38)) (__route.dom ?x9908 ?x38))))
(= (route.dom ?x9908 ?x38) $x4140))))))
))
(let ((?x6714 (ite (bvuge |__loc:sw0| (_ bv9 4)) (_ bv9 4) |__loc:sw0|)))
(let (($x503 (forall ((|X:node| (_ BitVec 4)) (|Y:node| (_ BitVec 4)) )(let ((?x9908 (ite (bvuge |X:node| (_ bv9 4)) (_ bv9 4) |X:node|)))
(let ((?x38 (ite (bvuge |Y:node| (_ bv9 4)) (_ bv9 4) |Y:node|)))
(or (not (link ?x9908 ?x38)) (link ?x38 ?x9908)))))
))
(let (($x1253 (forall ((|X:node| (_ BitVec 4)) )(let ((?x38 (ite (bvuge |X:node| (_ bv9 4)) (_ bv9 4) |X:node|)))
(not (link ?x38 ?x38))))
))
(let (($x72 (forall ((|Z:node| (_ BitVec 4)) )(let ((?x38 (ite (bvuge |Z:node| (_ bv9 4)) (_ bv9 4) |Z:node|)))
(let ((?x1201 (ite (bvuge |__fml:y| (_ bv9 4)) (_ bv9 4) |__fml:y|)))
(let ((?x32 (ite (bvuge |__ts0__ts0__new_prm:N_a| (_ bv9 4)) (_ bv9 4) |__ts0__ts0__new_prm:N_a|)))
(let ((?x49 (ite (bvuge |__ts0__ts0__new_fml:x_a| (_ bv9 4)) (_ bv9 4) |__ts0__ts0__new_fml:x_a|)))
(let (($x590 (=> (and (route.tc ?x32 ?x49 ?x38) (not (= ?x49 ?x38))) (route.tc ?x32 ?x1201 ?x38))))
(let (($x60 (not __ts0_b)))
(or $x60 (or __ts0__ts0_a $x590)))))))))
))
(let (($x95 (forall ((|X0:packet| packet) (|X1:node| (_ BitVec 4)) (|X2:node| (_ BitVec 4)) )(let ((?x98 (ite (bvuge |__loc:sw1| (_ bv9 4)) (_ bv9 4) |__loc:sw1|)))
(let ((?x38 (ite (bvuge |X2:node| (_ bv9 4)) (_ bv9 4) |X2:node|)))
(let ((?x9908 (ite (bvuge |X1:node| (_ bv9 4)) (_ bv9 4) |X1:node|)))
(let (($x48 (__pending |X0:packet| ?x9908 ?x38)))
(let (($x420 (not $x48)))
(let (($x33 (__m_pending |X0:packet| ?x9908 ?x38)))
(or $x33 $x420 (= ?x38 ?x98)))))))))
))
(let (($x94 (forall ((|X0:packet| packet) (|X1:node| (_ BitVec 4)) (|X2:node| (_ BitVec 4)) )(let ((?x6714 (ite (bvuge |__loc:sw0| (_ bv9 4)) (_ bv9 4) |__loc:sw0|)))
(let ((?x9908 (ite (bvuge |X1:node| (_ bv9 4)) (_ bv9 4) |X1:node|)))
(let ((?x38 (ite (bvuge |X2:node| (_ bv9 4)) (_ bv9 4) |X2:node|)))
(let (($x48 (__pending |X0:packet| ?x9908 ?x38)))
(let (($x420 (not $x48)))
(let (($x33 (__m_pending |X0:packet| ?x9908 ?x38)))
(or $x33 $x420 (= ?x9908 ?x6714)))))))))
))
(let (($x40 (forall ((|X0:packet| packet) (|X1:node| (_ BitVec 4)) (|X2:node| (_ BitVec 4)) )(let (($x87 (= |X0:packet| |__loc:p|)))
(let ((?x38 (ite (bvuge |X2:node| (_ bv9 4)) (_ bv9 4) |X2:node|)))
(let ((?x9908 (ite (bvuge |X1:node| (_ bv9 4)) (_ bv9 4) |X1:node|)))
(let (($x48 (__pending |X0:packet| ?x9908 ?x38)))
(let (($x420 (not $x48)))
(let (($x33 (__m_pending |X0:packet| ?x9908 ?x38)))
(or $x33 $x420 $x87))))))))
))
(let (($x2728 (forall ((|X0:packet| packet) (|X1:node| (_ BitVec 4)) (|X2:node| (_ BitVec 4)) )(let ((?x98 (ite (bvuge |__loc:sw1| (_ bv9 4)) (_ bv9 4) |__loc:sw1|)))
(let ((?x38 (ite (bvuge |X2:node| (_ bv9 4)) (_ bv9 4) |X2:node|)))
(let ((?x9908 (ite (bvuge |X1:node| (_ bv9 4)) (_ bv9 4) |X1:node|)))
(let (($x48 (__pending |X0:packet| ?x9908 ?x38)))
(let (($x33 (__m_pending |X0:packet| ?x9908 ?x38)))
(let (($x67 (not $x33)))
(or $x67 $x48 (= ?x38 ?x98)))))))))
))
(let (($x69 (forall ((|X0:packet| packet) (|X1:node| (_ BitVec 4)) (|X2:node| (_ BitVec 4)) )(let ((?x6714 (ite (bvuge |__loc:sw0| (_ bv9 4)) (_ bv9 4) |__loc:sw0|)))
(let ((?x9908 (ite (bvuge |X1:node| (_ bv9 4)) (_ bv9 4) |X1:node|)))
(let ((?x38 (ite (bvuge |X2:node| (_ bv9 4)) (_ bv9 4) |X2:node|)))
(let (($x48 (__pending |X0:packet| ?x9908 ?x38)))
(let (($x33 (__m_pending |X0:packet| ?x9908 ?x38)))
(let (($x67 (not $x33)))
(or $x67 $x48 (= ?x9908 ?x6714)))))))))
))
(let (($x71 (forall ((|X0:packet| packet) (|X1:node| (_ BitVec 4)) (|X2:node| (_ BitVec 4)) )(let (($x87 (= |X0:packet| |__loc:p|)))
(let ((?x38 (ite (bvuge |X2:node| (_ bv9 4)) (_ bv9 4) |X2:node|)))
(let ((?x9908 (ite (bvuge |X1:node| (_ bv9 4)) (_ bv9 4) |X1:node|)))
(let (($x48 (__pending |X0:packet| ?x9908 ?x38)))
(let (($x33 (__m_pending |X0:packet| ?x9908 ?x38)))
(let (($x67 (not $x33)))
(or $x67 $x48 $x87))))))))
))
(let (($x687 (forall ((|N0:node| (_ BitVec 4)) (|N1:node| (_ BitVec 4)) )(let ((?x9908 (ite (bvuge |N0:node| (_ bv9 4)) (_ bv9 4) |N0:node|)))
(let ((?x38 (ite (bvuge |N1:node| (_ bv9 4)) (_ bv9 4) |N1:node|)))
(let (($x90 (= ?x9908 (ite (bvuge (_ bv2 4) (_ bv9 4)) (_ bv9 4) (_ bv2 4)))))
(let (($x125 (and (= ?x38 (ite (bvuge (_ bv3 4) (_ bv9 4)) (_ bv9 4) (_ bv3 4))) (or (or (= ?x9908 (ite (bvuge (_ bv0 4) (_ bv9 4)) (_ bv9 4) (_ bv0 4))) $x90) $x90))))
(let (($x102 (= ?x9908 (ite (bvuge (_ bv3 4) (_ bv9 4)) (_ bv9 4) (_ bv3 4)))))
(let (($x3479 (or (= ?x9908 (ite (bvuge (_ bv0 4) (_ bv9 4)) (_ bv9 4) (_ bv0 4))) (= ?x9908 (ite (bvuge (_ bv1 4) (_ bv9 4)) (_ bv9 4) (_ bv1 4))))))
(let (($x886 (and (= ?x38 (ite (bvuge (_ bv1 4) (_ bv9 4)) (_ bv9 4) (_ bv1 4))) (or (or (= ?x9908 (ite (bvuge (_ bv0 4) (_ bv9 4)) (_ bv9 4) (_ bv0 4))) $x90) $x102))))
(let (($x107 (and (= ?x38 (ite (bvuge (_ bv0 4) (_ bv9 4)) (_ bv9 4) (_ bv0 4))) (or (or (= ?x9908 (ite (bvuge (_ bv1 4) (_ bv9 4)) (_ bv9 4) (_ bv1 4))) $x90) $x102))))
(let (($x316 (or (or $x107 $x886) (and (= ?x38 (ite (bvuge (_ bv2 4) (_ bv9 4)) (_ bv9 4) (_ bv2 4))) (or $x3479 $x102)))))
(=> (__route.tc ?x38 ?x38 ?x9908) (or (or $x316 $x125) (= ?x38 ?x9908)))))))))))))
))
(let (($x19 (forall ((|N0:node| (_ BitVec 4)) (|N1:node| (_ BitVec 4)) (|P0:packet| packet) )(let ((?x9908 (ite (bvuge |N1:node| (_ bv9 4)) (_ bv9 4) |N1:node|)))
(let (($x54 (and (__pending |P0:packet| ?x9908 (ite (bvuge |N0:node| (_ bv9 4)) (_ bv9 4) |N0:node|)) (not (= ?x9908 (ite (bvuge (src |P0:packet|) (_ bv9 4)) (_ bv9 4) (src |P0:packet|)))))))
(let (($x55 (and $x54 (not (__route.dom (ite (bvuge (src |P0:packet|) (_ bv9 4)) (_ bv9 4) (src |P0:packet|)) ?x9908)))))
(not $x55)))))
))
(let (($x44 (forall ((|N0:node| (_ BitVec 4)) (|N1:node| (_ BitVec 4)) (|N2:node| (_ BitVec 4)) )(let ((?x8115 (ite (bvuge |N0:node| (_ bv9 4)) (_ bv9 4) |N0:node|)))
(let ((?x38 (ite (bvuge |N2:node| (_ bv9 4)) (_ bv9 4) |N2:node|)))
(let (($x30 (and (__route.tc ?x38 (ite (bvuge |N1:node| (_ bv9 4)) (_ bv9 4) |N1:node|) ?x8115) (not (= ?x8115 ?x38)))))
(let (($x43 (and (and $x30 (not (= (ite (bvuge |N1:node| (_ bv9 4)) (_ bv9 4) |N1:node|) ?x8115))) (not (__route.dom ?x38 ?x8115)))))
(not $x43))))))
))
(let (($x8377 (forall ((|N0:node| (_ BitVec 4)) (|N1:node| (_ BitVec 4)) (|N2:node| (_ BitVec 4)) )(let ((?x38 (ite (bvuge |N2:node| (_ bv9 4)) (_ bv9 4) |N2:node|)))
(let ((?x8115 (ite (bvuge |N0:node| (_ bv9 4)) (_ bv9 4) |N0:node|)))
(let (($x3585 (and (__route.tc ?x8115 ?x38 (ite (bvuge |N1:node| (_ bv9 4)) (_ bv9 4) |N1:node|)) (not (= (ite (bvuge |N1:node| (_ bv9 4)) (_ bv9 4) |N1:node|) ?x38)))))
(not (and $x3585 (not (__route.dom ?x8115 ?x38))))))))
))
(let (($x2237 (forall ((|N0:node| (_ BitVec 4)) (|N2:node| (_ BitVec 4)) )(let ((?x9908 (ite (bvuge |N0:node| (_ bv9 4)) (_ bv9 4) |N0:node|)))
(let ((?x38 (ite (bvuge |N2:node| (_ bv9 4)) (_ bv9 4) |N2:node|)))
(let (($x2798 (and (and (__route.tc ?x38 ?x9908 ?x38) (not (= ?x9908 ?x38))) (not (__route.dom ?x38 ?x9908)))))
(not $x2798)))))
))
(let (($x110 (forall ((|N0:node| (_ BitVec 4)) (|N1:node| (_ BitVec 4)) )(let ((?x9908 (ite (bvuge |N0:node| (_ bv9 4)) (_ bv9 4) |N0:node|)))
(let ((?x38 (ite (bvuge |N1:node| (_ bv9 4)) (_ bv9 4) |N1:node|)))
(not (and (__route.tc ?x38 ?x38 ?x9908) (not (= ?x38 ?x9908)))))))
))
(let (($x629 (forall ((|N:node| (_ BitVec 4)) (|X:node| (_ BitVec 4)) (|Y:node| (_ BitVec 4)) (|Z:node| (_ BitVec 4)) )(let ((?x9908 (ite (bvuge |Y:node| (_ bv9 4)) (_ bv9 4) |Y:node|)))
(let ((?x38 (ite (bvuge |Z:node| (_ bv9 4)) (_ bv9 4) |Z:node|)))
(let ((?x6441 (ite (bvuge |N:node| (_ bv9 4)) (_ bv9 4) |N:node|)))
(let (($x246 (and (__route.tc ?x6441 (ite (bvuge |X:node| (_ bv9 4)) (_ bv9 4) |X:node|) ?x9908) (__route.tc ?x6441 (ite (bvuge |X:node| (_ bv9 4)) (_ bv9 4) |X:node|) ?x38))))
(=> $x246 (or (__route.tc ?x6441 ?x9908 ?x38) (__route.tc ?x6441 ?x38 ?x9908))))))))
))
(let (($x33205 (forall ((|N:node| (_ BitVec 4)) (|X:node| (_ BitVec 4)) (|Y:node| (_ BitVec 4)) )(let ((?x38 (ite (bvuge |Y:node| (_ bv9 4)) (_ bv9 4) |Y:node|)))
(let ((?x9908 (ite (bvuge |X:node| (_ bv9 4)) (_ bv9 4) |X:node|)))
(let ((?x8115 (ite (bvuge |N:node| (_ bv9 4)) (_ bv9 4) |N:node|)))
(let (($x66287 (__route.tc ?x8115 ?x9908 ?x38)))
(=> (and $x66287 (__route.tc ?x8115 ?x38 ?x9908)) (= ?x9908 ?x38)))))))
))
(let (($x112622 (forall ((|N:node| (_ BitVec 4)) (|X:node| (_ BitVec 4)) (|Y:node| (_ BitVec 4)) (|Z:node| (_ BitVec 4)) )(let ((?x38 (ite (bvuge |Z:node| (_ bv9 4)) (_ bv9 4) |Z:node|)))
(let ((?x8115 (ite (bvuge |X:node| (_ bv9 4)) (_ bv9 4) |X:node|)))
(let ((?x6441 (ite (bvuge |N:node| (_ bv9 4)) (_ bv9 4) |N:node|)))
(let (($x49549 (and (__route.tc ?x6441 ?x8115 (ite (bvuge |Y:node| (_ bv9 4)) (_ bv9 4) |Y:node|)) (__route.tc ?x6441 (ite (bvuge |Y:node| (_ bv9 4)) (_ bv9 4) |Y:node|) ?x38))))
(=> $x49549 (__route.tc ?x6441 ?x8115 ?x38)))))))
))
(let (($x47 (forall ((|N:node| (_ BitVec 4)) (|X:node| (_ BitVec 4)) )(let ((?x38 (ite (bvuge |X:node| (_ bv9 4)) (_ bv9 4) |X:node|)))
(let ((?x9908 (ite (bvuge |N:node| (_ bv9 4)) (_ bv9 4) |N:node|)))
(__route.tc ?x9908 ?x38 ?x38))))
))
(and $x47 $x112622 $x33205 $x629 $x110 $x2237 $x8377 $x44 $x19 $x687 (__pending |__loc:p| ?x6714 ?x98) $x71 $x69 $x2728 $x40 $x94 $x95 (or (not __ts0_b) (or __ts0__ts0_a (route.tc ?x32 ?x49 ?x1201))) (or (not __ts0_b) (or __ts0__ts0_a (not (= ?x49 ?x1201)))) $x72 $x1253 $x503 (= (ite (bvuge |__ts0__new_prm:N| (_ bv9 4)) (_ bv9 4) |__ts0__new_prm:N|) ?x73) (= (ite (bvuge |__ts0__new_fml:y| (_ bv9 4)) (_ bv9 4) |__ts0__new_fml:y|) ?x6714) (= (ite (bvuge |__ts0__new_fml:x| (_ bv9 4)) (_ bv9 4) |__ts0__new_fml:x|) ?x98) $x1168 $x10509 (= __ts0_a (and (not (__route.dom ?x73 ?x98)) (not (= ?x73 ?x98)))) (= __ts0__ts0_a (not (route.dom ?x6016 ?x98))) (= ?x49 ?x98) $x9082 (= (ite (bvuge |__new_loc:sw2| (_ bv9 4)) (_ bv9 4) |__new_loc:sw2|) ?x10967) (= ?x32 ?x6016) (= __ts0_b (not (= ?x6016 ?x98)))))))))))))))))))))))))))))))))))))
(assert
(let ((?x30390 (ite (bvuge @N (_ bv9 4)) (_ bv9 4) @N)))
(let (($x33596 (route.tc ?x30390 (ite (bvuge @X (_ bv9 4)) (_ bv9 4) @X) (ite (bvuge @Z (_ bv9 4)) (_ bv9 4) @Z))))
(let (($x23639 (route.tc ?x30390 (ite (bvuge @Y (_ bv9 4)) (_ bv9 4) @Y) (ite (bvuge @Z (_ bv9 4)) (_ bv9 4) @Z))))
(let (($x153035 (route.tc ?x30390 (ite (bvuge @X (_ bv9 4)) (_ bv9 4) @X) (ite (bvuge @Y (_ bv9 4)) (_ bv9 4) @Y))))
(and (not (=> (and $x153035 $x23639) $x33596))))))))
(check-sat)