この haskell データ型を agda コードに変換する必要があります。
data TRUE
data FALSE
data BoolProp :: * -> * where
PTrue :: BoolProp TRUE
PFalse :: BoolProp FALSE
PAnd :: BoolProp a -> BoolProp b -> BoolProp (a `AND` b)
POr :: BoolProp a -> BoolProp b -> BoolProp (a `OR` b)
PNot :: BoolProp a -> BoolProp (NOT a)
これは私がこれまでに持っているものです:
module BoolProp where
open import Data.Bool
open import Relation.Binary.PropositionalEquality
data BoolProp : Set wheree
ptrue : BoolProp true
pfalse : BoolProp false
pand : (X Y : Bool) -> BoolProp X -> BoolProp Y -> BoolProp (X ? Y)
por : (X Y : Bool) -> BoolProp X -> BoolProp Y -> BoolProp (X ? Y)
pnot : (X : Bool) -> BoolProp X -> BoolProp (not X)
しかし、私はこのエラーを受け取ります:「セットは関数型である必要がありますが、true がセット型の関数への有効な引数であることを確認するときではありません」。Set を別のものに変更する必要があると考えていますが、これがどうあるべきか混乱しています。