Download PDFOpen PDF in browser

A Verified Theorem Prover Backend Supported by a Monotonic Library

19 pagesPublished: October 23, 2018

Abstract

Building a verified proof assistant entails implementing and mechanizing the concept of a library, as well as adding support for standard manipulations on it. In this work we develop such mechanism for the Nuprl proof assistant, and integrate it into the formalization of Nuprl’s meta-theory in Coq. We formally verify that standard operations on the library preserve its validity. This is a key property for any interactive theorem prover, since it ensures consistency. Some unique features of Nuprl, such as the presence of undefined abstractions, make the proof of this property nontrivial. Thus, e.g., to achieve monotonicity the semantics of sequents had to be refined. On a broader view, this work provides a backend for a verified version of Nuprl. We use it, in turn, to develop a tool that converts proofs exported from the Nuprl proof assistant into proofs in the Coq formalization of Nuprl’s meta-theory, so as to be verified.

Keyphrases: coq, digital library, kripke semantics, monotonicity, nuprl, proof checker, verified theorem prover backend

In: Gilles Barthe, Geoff Sutcliffe and Margus Veanes (editors). LPAR-22. 22nd International Conference on Logic for Programming, Artificial Intelligence and Reasoning, vol 57, pages 564-582.

BibTeX entry
@inproceedings{LPAR-22:Verified_Theorem_Prover_Backend,
  author    = {Vincent Rahli and Liron Cohen and Mark Bickford},
  title     = {A Verified Theorem Prover Backend Supported by a Monotonic Library},
  booktitle = {LPAR-22. 22nd International Conference on Logic for Programming, Artificial Intelligence and Reasoning},
  editor    = {Gilles Barthe and Geoff Sutcliffe and Margus Veanes},
  series    = {EPiC Series in Computing},
  volume    = {57},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/hp5j},
  doi       = {10.29007/f58n},
  pages     = {564-582},
  year      = {2018}}
Download PDFOpen PDF in browser