CFVE · Module 5 of 5 · 10 min
What proofs do not prove
A proof is about a model of the code and a stated property. If the property is wrong, or the model leaves out something (I/O, concurrency, the compiler), the proof says nothing about it.
Review the specification as hard as the code. Most 'proven' bugs are specification bugs.
Report proofs with their assumptions: the property, the bounds, the abstractions and the solver version.
Key points
- Proofs cover a model and a property.
- Specification bugs are common.
- Report assumptions, bounds, solver version.
In the CAIN-42 codebase
vericoding-gate/— gate and its supported subset
Practice check
Practice 1 · choose one
A proven function still crashes in production. The likely cause is…
Practice 2 · true or false