En el clásico artículo PLDI'98 de Necula, "El diseño e implementación de un compilador certificador", el verificador de alto nivel utiliza:
- VCGen para generar condiciones de verificación (predicados de seguridad)
- Probador del teorema lógico de primer orden para probar las condiciones
- Comprobador de pruebas LF para verificar la prueba del paso (2)
Estoy un poco confundido por el paso (3). ¿Por qué se requiere en absoluto? ¿Solo (1) y (2) no serán suficientes? ¿Por qué no confiamos simplemente en la prueba generada por un probador de teoremas?