如何使用Z3获取参数化模型?

如何使用Z3获取参数化模型?,z3,Z3,根据这个公式, (p & (x < 0)) | (~p & (x > 0)). (p&(x0))。 如何在Z3中获得这两个“参数化”模型: {p=true, x<0} {p=false, x>0} {p=true,x0} 当我向Z3提交这个SMTLIB程序时 (declare-const p Bool) (declare-const x Int) (assert (or (and p (< x 0)) (and (not p) (>

根据这个公式,

(p & (x < 0)) | (~p & (x > 0)).
(p&(x<0))|(~p&(x>0))。
如何在Z3中获得这两个“参数化”模型:

{p=true, x<0}
{p=false, x>0}
{p=true,x0}
当我向Z3提交这个SMTLIB程序时

(declare-const p Bool)
(declare-const x  Int)
(assert (or (and p (< x 0)) (and (not p) (> x 0))))
(check-sat)
(get-model)
(assert (or (not p) (not (= x -1))))
(check-sat)
(get-model)
(exit)
(声明常量p Bool)
(声明常量x Int)
(断言(或(和p(x0)))
(检查sat)
(获取模型)
(断言(或(非p)(非(=x-1)))
(检查sat)
(获取模型)
(退出)
它给了我具体的模型(例如,{p=true,x=-1},{p=true,x=-2},…)