前言注意这是一个作业。已经针对第一个问题提出了一个问题。所以我们有数据类型:
data BoolProp : ??? where
ptrue : BoolProp true
pfalse : BoolProp false
pand : (P Q : Bool) -> (BoolProp P) -> (BoolProp Q) -> BoolProp (P ??? Q)
por : (P Q : Bool) -> (BoolProp P) -> (BoolProp Q) -> BoolProp (P ??? Q)
pnot : (P : Bool) -> BoolProp (not P)
现在我们被要求写这个命题
eval (PAnd (POr PTrue PFalse) PFalse)
应该返回BoolProp
false
我只是对如何做到这一点感到困惑。Ptrue
但是返回BoolProp true
数据类型por
采用两个Bool
's not BoolProp
'。可能是数据类型错误。任何抬头都会很棒
我应该补充一点,eval 代码是 haskell 代码的一个片段
注意:对其进行了编辑以不放弃所有内容