Download PDFOpen PDF in browser

Functional Pearl: the Proof Search Monad

15 pagesPublished: September 27, 2016


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
  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},
  pages     = {91--105},
  year      = {2016},
  publisher = {EasyChair},
  bibsource = {EasyChair,},
  issn      = {2398-7340},
  url       = {},
  doi       = {10.29007/cfdq}}
Download PDFOpen PDF in browser