基于模型的量化实例化和多分类逻辑的St1片段

时间:2012-05-31 07:29:17

标签: z3

这是关于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?

1 个答案:

答案 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*只有在通用公式内部分解后才会变得无限。