No artigo clássico PLDI'98 de Necula, "O design e implementação de um compilador de certificação", o verificador de alto nível usa:
- VCGen para gerar condições de verificação (predicados de segurança)
- Provador do teorema da lógica de primeira ordem para provar as condições
- Verificador de prova LF para verificar a prova da etapa (2)
Estou um pouco confuso com o passo (3). Por que é necessário? Apenas (1) e (2) não serão suficientes? Por que não confiamos apenas na prova gerada por um provador de teoremas?