Abstract
Foundational proof assistants simultaneously offer both expressive logics and strong guarantees. The price they pay for this flexibility is often the need to build and check explicit proof objects which can be expensive. In this work we develop a collection of techniques for building reflective automation, where proofs are witnessed by verified decision procedures rather than verbose proof objects. Our techniques center around a verified domain specific language for proving, Rtac, written in Gallina, Coq’s logic. The design of tactics makes it easy to combine them into higher-level automation that can be proved sound in a mostly automated way. Furthermore, unlike traditional uses of reflection, Rtac tactics are independent of the underlying problem domain. This allows them to be re-tasked to automate new problems with very little effort. We demonstrate the usability of Rtac through several case studies demonstrating orders of magnitude speedups for relatively little engineering work.
Originalsprog | Engelsk |
---|---|
Titel | Programming Languages and Systems : 25th European Symposium on Programming, ESOP 2016, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2016, Eindhoven, The Netherlands, April 2–8, 2016, Proceedings |
Antal sider | 28 |
Forlag | Springer |
Publikationsdato | 22 mar. 2016 |
Sider | 532-559 |
ISBN (Trykt) | 978-3-662-49497-4 |
ISBN (Elektronisk) | 978-3-662-49498-1 |
DOI | |
Status | Udgivet - 22 mar. 2016 |
Begivenhed | European Symposium on Programming - Eindhoven University of Technology, Eindhoven, Holland Varighed: 2 apr. 2016 → 7 apr. 2016 Konferencens nummer: 25 http://www.etaps.org/index.php/2016/esop |
Konference
Konference | European Symposium on Programming |
---|---|
Nummer | 25 |
Lokation | Eindhoven University of Technology |
Land/Område | Holland |
By | Eindhoven |
Periode | 02/04/2016 → 07/04/2016 |
Internetadresse |
Navn | Lecture Notes in Computer Science |
---|---|
Vol/bind | 9632 |
ISSN | 0302-9743 |