SMT-LIB中的QF_NRA逻辑是否可判定?

时间:2016-10-21 17:41:21

标签: z3 smt theorem-proving cvc4

SMT-LIB中的QF_NRA逻辑是否可判定?

我知道Tarski证明非线性算法是可判定的,因为实数中的多项式系统是可判定的。然而,由于QF_NRA包含分区,因此QF_NRA属于这一范围并不明显。所以第一个问题是QF_NRA中的除法是否包括除以分母可能为零的变量。 I posted that as a separate question,因为回答这一点本身就足够困难了。

如果除零不是QF_NRA的一部分,那么QF_NRA中的除法可以转换为乘法,并且问题将是可判定的,如Tarski所证明的那样。如果分裂实际上包含在QF_NRA中,那么我不太确定。我的感觉是,问题仍然可以在案例中被分解,并且为零除零的情况引入了新的变量。在这种情况下,QF_NRA仍然是可判定的。

1 个答案:

答案 0 :(得分:3)

这是可判定的。

你可以通过将除法视为一个无法解释的函数来对SMT-LIB除法进行编码,你需要对其进行公理化处理,即对于出现在问题中的每个(/ t1 t2),你可以添加

var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
aiOptions.EnableAdaptiveSampling = false;

services.AddApplicationInsightsTelemetry(Configuration, aiOptions);

这实际上将QF_NRA的SMT-LIB理论简化为两种理论的结合:实数(没有除法)和未解释的函数。现在,既然实数和未解释的函数都是量词无关片段中的可判断理论,你可以依靠Nelson和Oppen的经典论证来证明组合理论是可判定的。

例如,

Yices2可以决定实数和未解释函数的这种组合(基于MCSAT)。据我所知,Z3无法结合实数和未解释的函数,而CVC4还没有实数的决策程序。