Pregunta

Un prólogo tenga en cuenta que esto es para una tarea.Una pregunta ya ha sido preguntado acerca de la primera pregunta.Así que tenemos el tipo de datos:

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)

Ahora estamos pidiendo a escribir la proposición

eval (PAnd (POr PTrue PFalse) PFalse) 

que debe devolver BoolProp false

Apenas estoy consiguiendo confundido acerca de cómo hacer esto. Ptrue devuelve BoolProp true sin embargo, con el tipo de datos por toma en dos Boolno s BoolProp's.Tal vez el tipo de datos que está mal.Cualquier heads up sería genial

Debo agregar que el código eval es un fragmento de código del código haskell

nota:editado para no regalar todo

¿Fue útil?

Solución

La razón por la que su código no es compilar es porque el horquillado en su primera sección es incorrecta.Por ejemplo, para pand debe ser como pand :∀ { P Q :Bool } → BoolProp P → BoolProp Q → BoolProp (P ∧ Q )

Cambiar eso y la segunda parte debe compilar.Yo tenía exactamente el mismo problema....

Otros consejos

bueno, yo no sé si es correcto o no y esto es sólo para la primera parte si su toma acerca de la evaluación en la última pregunta, no lo sé.

Pero para la primera parte, ya que el tipo de firma es

prop : BoolProp false

Acabo de hacer la proposición equivalente a la instrucción eval.Desde la evaluación de la declaración debe ser igual a BoolProp.

así

prop = (pand (por ptrue pfalse) pfalse)

tal vez sea malo, no lo sé pero C-c C-l y C-c C-n

y estoy feliz.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top