A Why3 Framework for Reflection Proofs and Its Application to GMP’s Algorithms
Earlier work showed that automatic verification of GMP’s algorithms using Why3 exceeds the current capabilities of automatic solvers. To complete this verification, numerous cut indications had to be supplied by the user, slowing the project to a crawl. This paper shows how we have extended Why3 with a framework for proofs by reflection, with minimal impact on the trusted computing base. This framework makes it easy to write dedicated decision procedures that make full use of Why3’s imperative features and are formally verified. We evaluate how much work could have been saved when verifying GMP’s algorithms, had this framework been available. This approach opens the way to efficiently tackling the further verification of GMP’s algorithms.
KeywordsDecision procedures Proofs by reflection Deductive program verification Nonlinear integer arithmetic
- 2.Blanc, R.W., Kneuss, E., Kuncak, V., Suter, P.: An overview of the Leon verification system: verification by translation to recursive functions. In: 4th Annual Scala Workshop (2013)Google Scholar
- 4.Claret, G., del Carmen González Huesca, L., Régis-Gianas, Y., Ziliani, B.: Lightweight proof by reflection using a posteriori simulation of effectful computation. In: Blazy, S., Paulin-Mohring, C., Pichardie, D. (eds.) ITP 2013. LNCS, vol. 7998, pp. 67–83. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39634-2_8CrossRefGoogle Scholar
- 9.Harrison, J.: Metatheory and reflection in theorem proving: a survey and critique. Technical report CRC-053, SRI International Cambridge Computer Science Research Centre (1995)Google Scholar