我想用Haskell實現FOL。一階邏輯可以用連接詞連接在一起的命題形式,如And和Or。還有一些量詞的表達範圍有限。哈斯克爾 - 實現一階邏輯表達式
我所做的到目前爲止是:
進口Data.List模塊
data Prop
= Not Prop
| Prop And Prop
| Prop Or Prop
| Prop Impl Prop
| Prop Equiv Prop
| ForAll String Prop
| Exists String Prop
deriving (Eq, Ord)
但我收到此錯誤:
Multiple declarations of ‘Prop’
請記住,您包含的數量詞如「ForAll」,但您不包含任何使用量化變量的方式,即謂語。我會爲謂詞添加'Pred String [Term]',其中'data Term = Var String | App String [Term]'。您也可能想要添加平等。 – chi 2014-11-25 14:38:43
是的,那是我的第一個想法:現在獲得「Prop」類型值的唯一方法就像'let a = Not b; b =不是......,因爲這個公式缺少*原語*。 – 2014-11-25 20:42:47