The FLINT Project








VeriML: Typed Computation of Logical Terms inside a Language with Effects

Last modified: Wed Apr 4 01:05:14 2012 GMT.


Antonis Stampoulis
Zhong Shao


Modern proof assistants such as Coq and Isabelle provide high degrees of expressiveness and assurance because they support formal reasoning in higher-order logic and supply explicit machine-checkable proof objects. Unfortunately, large scale proof development in these proof assistants is still an extremely difficult and time-consuming task. One major weakness of these proof assistants is the lack of a single language where users can develop complex tactics and decision procedures using a rich programming model and in a typeful manner. This limits the scalability of the proof development process, as users avoid developing domain-specific tactics and decision procedures.

In this paper, we present VeriML---a novel language design that couples a type-safe effectful computational language with first-class support for manipulating logical terms such as propositions and proofs. The main idea behind our design is to integrate a rich logical framework---similar to the one supported by Coq---inside a computational language inspired by ML. The language design is such that the added features are orthogonal to the rest of the computational language, and also do not require significant additions to the logic language, so soundness is guaranteed. We have built a prototype implementation of VeriML including both its type-checker and an interpreter. We demonstrate the effectiveness of our design by showing a number of type-safe tactics and decision procedures written in VeriML.


  • In Proc. 2010 ACM SIGPLAN International Conference on Functional Programming (ICFP'10), Baltimore, Maryland, pages 333-344, September 2010. ©2010 ACM. [PDF]
  • Extended TR [PDF]
  • ICFP Talk Slides [PDF]
  • Prototype Implementation [tgz]

Copyright © 1996-2017 The FLINT Group <flint at cs dot yale dot edu>
Yale University Department of Computer Science
Validate this page