Introduction to algorithms
A framework for defining logics
Journal of the ACM (JACM)
Basic proof theory
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Variations on the Common Subexpression Problem
Journal of the ACM (JACM)
Checking Satisfiability of First-Order Formulas by Incremental Translation to SAT
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
Proof Generation in the Touchstone Theorem Prover
CADE-17 Proceedings of the 17th International Conference on Automated Deduction
Journal of Symbolic Computation
Checking validities and proofs with cvc and flea
Checking validities and proofs with cvc and flea
Dependent types ensure partial correctness of theorem provers
Journal of Functional Programming
Journal of Automated Reasoning
Hi-index | 0.00 |
A widely used technique to integrate decision procedures (DPs) with other systems is to have the DPs emit proofs of the formulas they report valid. One problem that arises is debugging the proof-producing code; it is very easy in standard programming languages to write code which produces an incorrect proof. This paper demonstrates how proof-producing DPs may be implemented in a programming language, called Rogue-Sigma-Pi (RSP), whose type system ensures that proofs are manipulated correctly. RSP combines the Rogue rewriting language and the Edinburgh Logical Framework (LF). Type-correct RSP programs are partially correct: essentially, any putative LF proof object produced by a type-correct RSP program is guaranteed to type check in LF. The paper describes a simple proof-producing combination of propositional satisfiability checking and congruence closure implemented in RSP.