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