In dem klassischen PLDI'98-Artikel von Necula "Das Design und die Implementierung eines zertifizierenden Compilers" verwendet der hochrangige Verifizierer:
- VCGen zur Generierung von Verifizierungsbedingungen (Sicherheitsprädikate)
- Logiksatz erster Ordnung, um die Bedingungen zu beweisen
- LF Proof Checker zur Überprüfung des Proofs aus Schritt (2)
Ich bin etwas verwirrt von Schritt (3). Warum ist es überhaupt erforderlich? Wird nur (1) und (2) nicht ausreichen? Warum vertrauen wir nicht einfach dem Beweis, den ein Theorembeweiser liefert?