Natural deduction as higher-order resolution
Journal of Logic Programming
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Termination proofs for logic programs
Termination proofs for logic programs
Logic programming in the LF logical framework
Logical frameworks
A framework for defining logics
Journal of the ACM (JACM)
Proving termination properties of Prolog programs: a semantic approach
Journal of Logic Programming
Unification under a mixed prefix
Journal of Symbolic Computation
HILOG: a foundation for higher-order logic programming
Journal of Logic Programming
On proving the termination of algorithms by machine
Artificial Intelligence
Termination of term rewriting using dependency pairs
Theoretical Computer Science - Trees in algebra and programming
The size-change principle for program termination
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
Modular termination proofs for rewriting using dependency pairs
Journal of Symbolic Computation
Mode and Termination Checking for Higher-Order Logic Programs
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
Strict Functionals for Termination Proofs
TLCA '95 Proceedings of the Second International Conference on Typed Lambda Calculi and Applications
Termination Analysis for Mercury
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
TALP: A Tool for the Termination Analysis of Logic Programs
RTA '00 Proceedings of the 11th International Conference on Rewriting Techniques and Applications
A Termination Ordering for Higher Order Rewrite System
RTA '95 Proceedings of the 6th International Conference on Rewriting Techniques and Applications
CADE-13 Proceedings of the 13th International Conference on Automated Deduction: Automated Deduction
Termination and Reduction Checking for Higher-Order Logic Programs
IJCAR '01 Proceedings of the First International Joint Conference on Automated Reasoning
LICS '95 Proceedings of the 10th Annual IEEE Symposium on Logic in Computer Science
The Higher-Order Recursive Path Ordering
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Dependent Types for Program Termination Verification
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Higher-order rewriting with dependent types (lambda calculus)
Higher-order rewriting with dependent types (lambda calculus)
A predicative analysis of structural recursion
Journal of Functional Programming
Foundational certified code in the Twelf metalogical framework
ACM Transactions on Computational Logic (TOCL)
Mechanized metatheory model-checking
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
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
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
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
Journal of Automated Reasoning
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
Reasoning with higher-order abstract syntax and contexts: a comparison
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Hi-index | 0.00 |
We describe two checkers for verifying termination and reduction properties about higher-order logic programs. The reduction checker verifies that the result of a program execution is structurally smaller than (or equal to) the inputs to the program. The termination checker guarantees that the inputs of the recursive calls are structurally smaller than the inputs of the original call, taking into account reduction properties. At the heart of both checkers lies an inference system to reason about structural properties, which are described by higher-order subterm relations. This approach provides a logical foundation for proving properties such as termination and reduction and factors the effort required for each one of them. Moreover, it allows the study of proof-theoretical properties, soundness, and completeness and different optimizations. The termination and reduction checker are implemented as part of the Twelf system and have been used on a wide variety of examples, including proofs about typed assembly language and those in the area of proof-carrying code.