Logic programming in the LF logical framework
Logical frameworks
A framework for defining logics
Journal of the ACM (JACM)
Reasoning with higher-order abstract syntax in a logical framework
ACM Transactions on Computational Logic (TOCL)
Types and programming languages
Types and programming languages
Mode and Termination Checking for Higher-Order Logic Programs
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
A Proof-Theoretic Foundation for Tabled Higher-Order Logic Programming
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
Two-Level Meta-reasoning in Coq
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
Verifying Termination and Reduction Properties about Higher-Order Logic Programs
Journal of Automated Reasoning
Multi-level meta-reasoning with higher-order abstract syntax
FOSSACS'03/ETAPS'03 Proceedings of the 6th International conference on Foundations of Software Science and Computation Structures and joint European conference on Theory and practice of software
Mechanized metatheory for the masses: the PoplMark challenge
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
Tabling for higher-order logic programming
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
Explicit Contexts in LF (Extended Abstract)
Electronic Notes in Theoretical Computer Science (ENTCS)
Reasoning with hypothetical judgments and open terms in hybrid
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Mechanizing the metatheory of LF
ACM Transactions on Computational Logic (TOCL)
Programming inductive proofs: a new approach based on contextual types
Verification, induction termination analysis
Programming inductive proofs: a new approach based on contextual types
Verification, induction termination analysis
Hi-index | 0.00 |
In this proof pearl, we demonstrate the power of higher-order encodings in the logical framework Twelf[PS99] by investigating proofs about an algorithmic specification of bounded subtype polymorphism, a problem from the POPLmark challenge [ABF+05]. Our encoding and representation of the problem plays to the strengths of the logical framework LF. Higher-order abstract syntax is used to deal with issues of bound variables. More importantly, we exploit the full advantage of parametric and higher-order judgments. As a key benefit we get a tedious narrowing lemma, which must normally be proven separately, for free. Consequently, we obtain an extremely compact and elegant encoding of the admissibility of general transitivity and other meta-theoretic properties.