A Proof-Theoretic Foundation for Tabled Higher-Order Logic Programming
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
Semi-naive evaluation in linear tabling
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Model checking for π-calculus using proof search
CONCUR 2005 - Concurrency Theory
Functional Programming With Higher-order Abstract Syntax and Explicit Substitutions
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Focusing the Inverse Method for LF: A Preliminary Report
Electronic Notes in Theoretical Computer Science (ENTCS)
Linear tabling strategies and optimizations
Theory and Practice of Logic Programming
ACM Transactions on Computational Logic (TOCL)
Programming with proofs and explicit contexts
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Case Analysis of Higher-Order Data
Electronic Notes in Theoretical Computer Science (ENTCS)
Higher-order term indexing using substitution trees
ACM Transactions on Computational Logic (TOCL)
Higher-order dynamic pattern unification for dependent types and records
TLCA'11 Proceedings of the 10th international conference on Typed lambda calculi and applications
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Eliminating redundancy in higher-order unification: a lightweight approach
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
Tabling for higher-order logic programming
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
Beluga: programming with dependent types, contextual data, and contexts
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Beluga: a framework for programming and reasoning with deductive systems (system description)
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
An improved proof-theoretic compilation of logic programs
Theory and Practice of Logic Programming
Hi-index | 0.00 |
A logical framework is a general meta-language for specifying and implementing deductive systems, given by axioms and inference rules. Based on a higher-order logic programming interpretation, it supports executing logical systems and reasoning with and about them, thereby reducing the effort required for each particular logical system. In this thesis, we describe different techniques to improve the overall performance and the expressive power of higher-order logic programming. First, we introduce tabled higher-order logic programming, a novel execution model where some redundant information is eliminated using selective memorization. This extends tabled computation to the higher-order setting and forms the basis of the tabled higher-order logic programming interpreter. Second, we present efficient data-structures and algorithms for higher-order proof search. In particular, we describe a higher-order assignment algorithm which eliminates many unnecessary occurs checks and develop higher-order term indexing. These optimizations are crucial to make tabled higher-order logic programming successful in practice. Finally, we use tabled proof search in the meta-theorem prover to reason efficiently with and about deductive systems. It takes full advantage of higher-order assignment and higher-order term indexing. As experimental results demonstrate, these optimizations taken together constitute a significant step toward exploring the full potential of logical frameworks in practice.