Authors
Peter Sewell, Francesco Zappa Nardelli, Scott Owens, Gilles Peskine, Thomas Ridge, Susmit Sarkar, Rok Strniša
Publication date
2010/1/1
Journal
Journal of Functional Programming
Volume
20
Issue
01
Pages
71-122
Publisher
Cambridge University Press
Description
Semantic definitions of full-scale programming languages are rarely given, despite the many potential benefits. Partly this is because the available metalanguages for expressing semantics – usually either for informal mathematics or the formal mathematics of a proof assistant – make it much harder than necessary to work with large definitions. We present a metalanguage specifically designed for this problem, and a tool, Ott, that sanity-checks such definitions and compiles them into proof assistant code for Coq, HOL, and Isabelle/HOL, together with code for production-quality typesetting, and OCaml boilerplate. The main innovations are (1) metalanguage design to make definitions concise, and easy to read and edit; (2) an expressive but intuitive metalanguage for specifying binding structures; and (3) compilation to proof assistant code. This has been tested in substantial case studies, including modular …
Total citations
20102011201220132014201520162017201820192020202120222023202481481322171717112315813134
Scholar articles
P Sewell, FZ Nardelli, S Owens, G Peskine, T Ridge… - Journal of functional programming, 2010