Lightweight Proof by Reflection Using a Posteriori Simulation of Effectful Computation [chapter]

Guillaume Claret, Lourdes del Carmen González Huesca, Yann Régis-Gianas, Beta Ziliani
2013 Lecture Notes in Computer Science  
Proof-by-reflection is a well-established technique that employs decision procedures to reduce the size of proof-terms. Currently, decision procedures can be written either in Type Theory-in a purely functional way that also ensures termination-or in an effectful programming language, where they are used as oracles for the certified checker. The first option offers strong correctness guarantees, while the second one permits more efficient implementations. We propose a novel technique for
more » ... y-reflection that marries, in Type Theory, an effectful language with (partial) proofs of correctness. The key to our approach is to use simulable monads, where a monad is simulable if, for all terminating reduction sequences in its equivalent effectful computational model, there exists a witness from which the same reduction may be simulated a posteriori by the monad. We encode several examples using simulable monads and demonstrate the advantages of the technique over previous approaches.
doi:10.1007/978-3-642-39634-2_8 fatcat:3b7xcd2sdreqhlbdich52bwhki