Natural deduction as higher-order resolution
Journal of Logic Programming
Elf: a language for logic definition and verified metaprogramming
Proceedings of the Fourth Annual Symposium on Logic in computer science
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A framework for defining logics
Journal of the ACM (JACM)
Tabled evaluation with delaying for general logic programs
Journal of the ACM (JACM)
An abstract machine for tabled execution of fixed-order stratified logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
CCS '99 Proceedings of the 6th ACM conference on Computer and communications security
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
Intersection types and computational effects
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Oracle-based checking of untrusted software
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Toward a foundational typed assembly language
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
OLD Resolution with Tabulation
Proceedings of the Third International Conference on Logic Programming
A Proof-Theoretic Foundation for Tabled Higher-Order Logic Programming
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
CAT: The Copying Approach to Tabling
PLILP '98/ALP '98 Proceedings of the 10th International Symposium on Principles of Declarative Programming
Logic Programming and Model Checking
PLILP '98/ALP '98 Proceedings of the 10th International Symposium on Principles of Declarative Programming
System Description: Twelf - A Meta-Logical Framework for Deductive Systems
CADE-16 Proceedings of the 16th International Conference on Automated Deduction: Automated Deduction
Two Loop Detection Mechanisms: A Comparision
TABLEAUX '97 Proceedings of the International Conference on Automated Reasoning with Analytic Tableaux and Related Methods
Handbook of automated reasoning
Efficient Representation and Validation of Proofs
LICS '98 Proceedings of the 13th Annual IEEE Symposium on Logic in Computer Science
Higher-order rewriting with dependent types (lambda calculus)
Higher-order rewriting with dependent types (lambda calculus)
Tabled higher-order logic programming
Tabled higher-order logic programming
Higher-Order Proof Construction Based on First-Order Narrowing
Electronic Notes in Theoretical Computer Science (ENTCS)
Focusing the Inverse Method for LF: A Preliminary Report
Electronic Notes in Theoretical Computer Science (ENTCS)
Higher-order term indexing using substitution trees
ACM Transactions on Computational Logic (TOCL)
Proof pearl: the power of higher-order encodings in the logical framework LF
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Overcoming performance barriers: efficient verification techniques for logical frameworks
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Incorporating tables into proofs
CSL'07/EACSL'07 Proceedings of the 21st international conference, and Proceedings of the 16th annuall conference on Computer Science Logic
Hi-index | 0.00 |
We describe the design and implementation of a higher-order tabled logic programming interpreter where some redundant and infinite computation is eliminated by memoizing sub-computation and re-using its result later. In particular, we focus on the table design and table access in the higher-order setting where many common operations are undecidable in general. To achieve a space and time efficient implementation, we rely on substitution factoring and higher-order substitution tree indexing. Experimental results from a wide range of examples (propositional theorem proving, refinement type checking, small-step evaluator) demonstrate that higher-order tabled logic programming yields a more robust and more powerful proof procedure.