Download PDFOpen PDF in browser

Functional Pearl: the Proof Search Monad

15 pagesPublished: September 27, 2016

Abstract

We present the proof search monad, a set of combinators that allows one to write a proof search engine in a style that resembles the formal rules closely. The user calls functions such as premise, prove or choice; the library then takes care of generating a derivation tree. Proof search engines written in this style enjoy: first, a one-to-one correspondence between the implementation and the derivation rules, which makes manual inspection easier; second, proof witnesses “for free”, which makes a verified, independent validation approach easier too.

Keyphrases: backtracking, derivation, monad, proof search, verification

In: Boris Konev, Stephan Schulz and Laurent Simon (editors). IWIL-2015. 11th International Workshop on the Implementation of Logics, vol 40, pages 91-105.

BibTeX entry
@inproceedings{IWIL-2015:Functional_Pearl_Proof_Search,
  author    = {Jonathan Protzenko},
  title     = {Functional Pearl: the Proof Search Monad},
  booktitle = {IWIL-2015. 11th International Workshop on the Implementation of Logics},
  editor    = {Boris Konev and Stephan Schulz and Laurent Simon},
  series    = {EPiC Series in Computing},
  volume    = {40},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/HzFg},
  doi       = {10.29007/cfdq},
  pages     = {91-105},
  year      = {2016}}
Download PDFOpen PDF in browser