In Proof General (mit Coq 8,5), ausgeführt ich folgendes:Unter welchen Bedingungen erweitert "Eval cbv delta in" eine Definition in Coq?
Require Import Arith.
Eval cbv delta in Nat.add_comm 3 7.
Der Ausgang ist
Nat.add_comm 3 7 : 3 + 7 = 7 + 3
Allerdings gibt Print Nat.add_comm.
eine lange und komplizierte Funktion nimmt zwei NATs als Eingang. Ich erwartete, dass mein Code die Definition von Nat.add_comm
erweitert, was Eval cbv delta in _.
in ähnlichen Situationen tut. Als Anfänger weiß ich, dass da ein naives Missverständnis lauert. Was vermisse ich?
Wahrscheinlich ist es nur so, dass 'Nat.add_comm' undurchsichtig ist - wenn Sie seinen Beweis (und die Beweise abhängiger Lemmas) durchlaufen und' Qed.' mit 'Defined.' überall ersetzt haben, würde es vermutlich zu' eq_refl' ausgewertet werden . –
@DanielSschepler: Danke. Die Unterscheidung von undurchsichtig und transparent ist genau das, wonach ich gesucht habe. – ConfusedFormalizer