我想证明将任何一阶逻辑公式转换为其求反范式(NNF)的函数/算法的正确性和终止性。 但是,我什至不知道如何开始。有人可以帮我吗?
我尝试使用软件包FOL,但是后来我意识到我无法同时导入Main以使用“ fun”命令。然后我从Main开始,并使用blast证明了一些等效规则。
现在,我需要创建一个函数,将一阶公式转换为其否定范式。我从这里开始:
乐趣toNNF ::“ prop ==> prop”其中...
,但这似乎无法正常工作(Isabelle给了我消息:“类型统一错误”)。这里有灯吗?
答案 0 :(得分:0)
在开始定义将一阶公式转换为NNF的函数之前,您可能实际上想定义一个数据类型,该数据类型定义了一阶公式的类型,并且需要先定义正确性证明公式的等价概念以及在NNF中的谓词。
希望这会有所帮助, 雷内(René)