Z3 如何生成部分订单的模型?

Z3 如何生成部分订单的模型?,z3,partial-ordering,Z3,Partial Ordering,我试图使用Z3为一组描述偏序理论的SAT断言生成一个模型。我尝试了Z3指南中的子类型示例,但似乎无法获得具体的模型。有没有办法让Z3生成一个模型来描述元素之间的顺序并满足我所做的所有断言 例如,以下是“子类型”的约束。Z3有没有可能生产出“int type*这样的型号?我想你的产品线 (assert (forall ((x Type)) (subtype x obj-type))) 这是错误的 正确的答案是 (assert (forall ((x Type)) (subtype x root-

我试图使用Z3为一组描述偏序理论的SAT断言生成一个模型。我尝试了Z3指南中的子类型示例,但似乎无法获得具体的模型。有没有办法让Z3生成一个模型来描述元素之间的顺序并满足我所做的所有断言

例如,以下是“子类型”的约束。Z3有没有可能生产出“int type*这样的型号?我想你的产品线

(assert (forall ((x Type)) (subtype x obj-type)))
这是错误的

正确的答案是

(assert (forall ((x Type)) (subtype x root-type)))  
得到了可能正确的模型

(assert (forall ((x Type)) (subtype x obj-type)))
(assert (forall ((x Type)) (subtype x root-type)))