Embracing a mechanized formalization gap
Abstract
If a code base is so big and complicated that complete mechanical verification is intractable, can we still apply and benefit from verification methods? We show that by allowing a deliberate mechanized formalization gap we can shrink and simplify the model until it is manageable, while still retaining a meaningful, declaratively documented connection to the original, unmodified source code. Concretely, we translate core parts of the Haskell compiler GHC into Coq, using hs-to-coq, and verify invariants related to the use of term variables.
- Publication:
-
arXiv e-prints
- Pub Date:
- October 2019
- DOI:
- 10.48550/arXiv.1910.11724
- arXiv:
- arXiv:1910.11724
- Bibcode:
- 2019arXiv191011724S
- Keywords:
-
- Computer Science - Programming Languages
- E-Print:
- Submitted to CPP'20