A framework for defining logics
Journal of the ACM (JACM)
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
A semantic model of types and machine instructions for proof-carrying code
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
On Extensibility of Proof Checkers
TYPES '94 Selected papers from the International Workshop on Types for Proofs and Programs
First-order unification by structural recursion
Journal of Functional Programming
A language-based approach to functionally correct imperative programming
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Mechanizing metatheory in a logical framework
Journal of Functional Programming
Imperative LF Meta-Programming
Electronic Notes in Theoretical Computer Science (ENTCS)
A Tactic Language for Hiproofs
Proceedings of the 9th AISC international conference, the 15th Calculemas symposium, and the 7th international MKM conference on Intelligent Computer Mathematics
Validated Proof-Producing Decision Procedures
Electronic Notes in Theoretical Computer Science (ENTCS)
A proof-theoretic approach to tactics
MKM'06 Proceedings of the 5th international conference on Mathematical Knowledge Management
Verifying and reflecting quantifier elimination for presburger arithmetic
LPAR'05 Proceedings of the 12th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Verifying mixed real-integer quantifier elimination
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
Hi-index | 0.00 |
Static type systems in programming languages allow many errors to be detected at compile time that wouldn't be detected until runtime otherwise. Dependent types are more expressive than the type systems in most programming languages, so languages that have them should allow programmers to detect more errors earlier. In this paper, using the Twelf system, we show that dependent types in the logic programming setting can be used to ensure partial correctness of programs which implement theorem provers, and thus avoid runtime errors in proof search and proof construction. We present two examples: a tactic-style interactive theorem prover and a union-find decision procedure.