Tenemos que convertir este tipo de datos en Haskell agda código:conversión de código Haskell a 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)
Esto es lo que tengo hasta ahora:
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)
Pero estoy recibiendo este error: "Set debería ser un tipo de función, pero no es cuando se comprueba que los argumentos válidos son verdaderos para una función de tipo Set". Estoy pensando que Set debe cambiarse a otra cosa, pero estoy confundido en cuanto a lo que debería ser.