Scala 为什么Leon Online中的PropositionalLogic示例中存在错误的交换超时?

Scala 为什么Leon Online中的PropositionalLogic示例中存在错误的交换超时?,scala,leon,Scala,Leon,我很好奇Leon中的命题例子中错误交换的性质 这对我来说似乎是一个正确的财产,我不明白为什么它只是在里昂超时 以下是链接: 有人能帮我吗?你说得对,这是正确的,谢谢你的观察!莱昂没有开箱证明,因为它需要一些帮助。本来是错的,但是 我们更改了代码,使该属性适用于这些函数的当前版本 您的“Leon stable”链接现在似乎指向另一个文件(由于Leon.epfl.ch的更改和重新启动),但该示例仍然可以从web上的示例列表中找到,以避免任何混淆 看看原因 nnf(simplify(f)) == s

我很好奇Leon中的命题例子中错误交换的性质

这对我来说似乎是一个正确的财产,我不明白为什么它只是在里昂超时

以下是链接:


有人能帮我吗?

你说得对,这是正确的,谢谢你的观察!莱昂没有开箱证明,因为它需要一些帮助。本来是错的,但是 我们更改了代码,使该属性适用于这些函数的当前版本

您的“Leon stable”链接现在似乎指向另一个文件(由于Leon.epfl.ch的更改和重新启动),但该示例仍然可以从web上的示例列表中找到,以避免任何混淆

看看原因

nnf(simplify(f)) == simplify(nnf(f)) 
对于该实现,您可以观察到

simplify(nnf(f)) = nnf(f)
正如这个引理所证明的那样:

@induct
def nnfIsSimplified(f: Formula): Boolean = {
  require(isNNF(f))
  simplify(f) == f
} holds
nnf(simplify(f))==nnf(f)
这一事实可以通过归纳法来表示,但在这里,Leon可能需要一些提示


请参阅,以获取在Leon的证明DSL中表示的此属性的完整证明。

我无法获取链接。你能把源代码放进去吗?