Ich versuche, einige denotational Semantik in Agda basierend auf einem Programm zu kodieren, das ich in Haskell geschrieben habe."Streng positiv" in Agda
data Value = FunVal (Value -> Value)
| PriVal Int
| ConVal Id [Value]
| Error String
In Agda wäre die direkte Übersetzung;
data Value : Set where
FunVal : (Value -> Value) -> Value
PriVal : ℕ -> Value
ConVal : String -> List Value -> Value
Error : String -> Value
aber ich bekomme einen Fehler in Bezug auf die FunVal weil;
Wert ist nicht unbedingt positiv, weil es auf der linken Seite eines Pfeil in der Art des Konstrukteurs FunVal in der Definition von Wert auftritt.
Was bedeutet das? Kann ich das in Agda verschlüsseln? Gehe ich falsch herum?
Danke.
Sie könnten sich für PHOAS interessieren, erklärt von Chlipala [hier] (http://adam.chlipala.net/papers/PhoasICFP08/PhoasICFP08.ps). – danr
Danke. Seitdem habe ich ein bisschen damit gespielt. –