这是关于Z3基于模型的previous question的后续内容 量化实例化(MBQI)和分层排序片段(谢谢 再次向莱昂纳多·德莫拉寻求快速回答。)
在他们关于许多分类逻辑的可判断片段的论文中[Abadi et 作者,al。,多重排序逻辑的可判定片段,LPAR 2007] 描述一个可以用a来判断的多分类逻辑的片段St1 有限模型属性。
这个片段需要对分类进行分层,并且如Z3所述,公式F处于(正常)形式的正常形式 文档,但允许一个额外的原子公式
y in Im [f]
发生在F中,这是
的“简写”存在x1:A1,...,xn:An。 y = f(x1,...,xn)
其中f是具有签名f的函数:A1 x ... x An - > B和f必须是范围B的唯一函数。因此,St1片段允许(以非常有限的方式)违反分层,例如,为了断言f是满射的。
我不确定这是否是一个开放的研究问题: 有人知道Z3的MBQI决策程序是否完整 对于St1片段? Z3(理论上)会产生SAT还是 经过一段有限的时间后,联合国国际空间站的F?
答案 0 :(得分:2)
首先,一个澄清,原则上,MBQI可以决定分层的多重分类片段。理由在http://research.microsoft.com/en-us/um/people/leonardo/ci.pdf(*)的4.1节中给出。但是,Z3 4.0不支持实现4.1节中建议的其他规则。因此,Z3 4.0可能会失败(返回unknown
)此片段中的公式。我只想清楚地区分算法和使用当前Z3的实际实现。
关于你的问题,是的MBQI框架可以决定包含扩展谓词y in Im[f]
的分层公式。我假设这个谓词只是积极地发生。
也就是说,我们没有等同于
not y in Im[f]
forall x1:A1, ...,xn:An. y != f(x1, ... xn)
如果y in Im[f]
只是积极地发生,那么它可以被扩展,并且在skolemization之后我们有一个y = f(k1, ..., kn)
形式的基础公式。
MBQI仍然是一个决策过程,因为(*)中定义的集合F*
仍然是有限的。 F*
只有在通用公式内部分解后才会变得无限。