Ich bin derzeit versucht, Haskell Code von meinem Programmverifikation Lemma, die wie folgt aussieht zu generieren:Generierung von Haskell-Code von COQ: Logisches oder arity Wert verwendet
Lemma the_thing_is_ok : forall (e:Something), Matches e (calculate_value e).
Gleich nach meinem Abschnitt endet, das tue ich:
Extraction Language Haskell.
Recursive Extraction the_thing_is_ok
Und es scheint nicht wirklich über etwas glücklich zu sein, da es die folgenden Fehler zurückgibt:
__ = Prelude.error "Logical or arity value used"
Ich habe ein anderes Lemma, das scheinbar gut exportiert, aber ich konnte nicht herausfinden, was das Problem genau war. Irgendwelche Hinweise, wie man diesen Fehler umgehen kann?
Ist Ihr Lemma in Prop, wie es normalerweise der Fall ist? Ich glaube, Coq verwirft während der Extraktion alle Prop-Informationen. Z.B. wenn Sie '{n: nat | einigePredicate n} 'Sie erhalten eine natürliche, aber ohne den Beweis des Prädikats. – chi