Z3的文档说明了基于模型的量词实例化(MBQI):
分层排序碎片
分层排序片段是许多人的另一个可判断片段 排序的一阶逻辑公式。它对应于公式, 当以prenex普通形式编写时,有一个函数级别 对自然和各种功能进行分类
(declare-fun f(S_1 ... S_n)R)
级别(R)<电平(S_I)。
Z3是否支持prenex normal格式的任何公式,或者只支持通过skolemization删除所有存在量词的通用公式?
这会使片段更具限制性,不会(因为skolem函数可能会破坏分层)?
(至少在关于MBQI的论文[量化SMT公式的完全实例化,Yeting Ge和Leonardo de Moura,CAV 2009]中,在我看来,只涵盖了通用公式。)
答案 0 :(得分:1)
你是对的。在通过skolemization删除所有存在量词后,必须满足条件level(R) < level(S_i)
。 Skolemization可能会引入新的未解释的函数符号,它们也需要满足上述条件。