Domanda

Una prefazione nota che questo è per un incarico.È già stato chiesto una domanda per la prima domanda.Quindi abbiamo il tipo di dati:

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)
.

Ora ci viene chiesto di scrivere la proposizione

eval (PAnd (POr PTrue PFalse) PFalse) 
.

che dovrebbe restituire BoolProp false

Sto solo confondendo su come farlo.Ptrue restituisce BoolProp true Tuttavia con il tipo di dati por accetta in due generatori di Bool non generacodicitagCode.Forse il tipo di dati è sbagliato.Qualsiasi testata sarebbe fantastica

Dovrei aggiungere che il codice EVAL è uno snippet dal codice Haskell

Nota: la modifica per non dare tutto via

È stato utile?

Soluzione

Il motivo per cui il tuo codice non è la compilazione è perché la bracketing nella prima sezione non è corretta. Ad esempio, per PAND dovrebbe essere come PAND: ∀ {P D: BOOL} → BOOLPROP P → BOOLPROP q → boolprop (p ∧ q)

Modifica che e la seconda parte dovrebbe compilare. Ho avuto esattamente lo stesso problema ....

Altri suggerimenti

beh non so se è giusto o no e questo è solo per la prima parte Se stai prendendo in considerazione la valutazione sull'ultima domanda, non so.

Ma per la prima parte dal momento che la firma del tipo è

prop : BoolProp false
.

Ho appena fatto PROP uguale alla dichiarazione EVAL. Dal momento che la dichiarazione di eval dovrebbe essere uguale a boolprop.

SO

prop = (pand (por ptrue pfalse) pfalse)
.

Forse è sbagliato, non so ma c-c c-l e c-c c-n

E sono felice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top