TY - GEN
T1 - Leroy and Blazy Were Right
T2 - 14th International Conference on Verified Software. Theories, Tools and Experiments, VSTTE 2022
AU - Barroso, Pedro
AU - Pereira, Mário
AU - Ravara, António
N1 - Funding Information:
info:eu-repo/grantAgreement/FCT/6817 - DCRRNI ID/UIDB%2F04516%2F2020/PT#
info:eu-repo/grantAgreement/FCT/OE/UI%2FBD%2F151265%2F2021/PT#
Publisher Copyright:
© 2023, The Author(s), under exclusive license to Springer Nature Switzerland AG.
PY - 2023/2/1
Y1 - 2023/2/1
N2 - Xavier Leroy and Sandrine Blazy in 2007 conducted a formal verification, using the Coq proof assistant, of a memory model for low-level imperative languages such as C. Considering their formalization was performed essentially in first-order logic, one question left open by the authors was whether their proofs could be automated using a verification framework for first-order logic. We took the challenge and automated their formalization using Why3, significantly reducing the proof effort. We systematically followed the Coq proofs and realized that in many cases at around one third of the way Why3 was able to discharge all VCs. Furthermore, the proofs still requiring interactions (e.g. induction, witnesses for existential proofs, assertions) were factorized isolating auxiliary results that we stated explicitly. In this way, we achieved an almost-automatic soundness and safety proof of the memory model. Nonetheless, our development allows an extraction of a correct-by-construction concrete memory model, going thus further than the preliminary Why version of Leroy and Blazy.
AB - Xavier Leroy and Sandrine Blazy in 2007 conducted a formal verification, using the Coq proof assistant, of a memory model for low-level imperative languages such as C. Considering their formalization was performed essentially in first-order logic, one question left open by the authors was whether their proofs could be automated using a verification framework for first-order logic. We took the challenge and automated their formalization using Why3, significantly reducing the proof effort. We systematically followed the Coq proofs and realized that in many cases at around one third of the way Why3 was able to discharge all VCs. Furthermore, the proofs still requiring interactions (e.g. induction, witnesses for existential proofs, assertions) were factorized isolating auxiliary results that we stated explicitly. In this way, we achieved an almost-automatic soundness and safety proof of the memory model. Nonetheless, our development allows an extraction of a correct-by-construction concrete memory model, going thus further than the preliminary Why version of Leroy and Blazy.
KW - C memory model
KW - Formal proof
KW - Theorem proving
KW - Why3
UR - http://www.scopus.com/inward/record.url?scp=85151052410&partnerID=8YFLogxK
U2 - 10.1007/978-3-031-25803-9_2
DO - 10.1007/978-3-031-25803-9_2
M3 - Conference contribution
AN - SCOPUS:85151052410
SN - 978-3-031-25802-2
T3 - Lecture Notes in Computer Science
SP - 20
EP - 32
BT - Verified Software. Theories, Tools and Experiments.
A2 - Lal, Akash
A2 - Tonetta, Stefano
PB - Springer
CY - Cham
Y2 - 17 October 2022 through 18 October 2022
ER -