Verifying the unification algorithm in LCF
Science of Computer Programming - Ellis Horwood series in artificial intelligence
A computational logic handbook
A computational logic handbook
ML for the working programmer (2nd ed.)
ML for the working programmer (2nd ed.)
Partial Functions in a Total Setting
Journal of Automated Reasoning
Termination of Nested and Mutually Recursive Algorithms
Journal of Automated Reasoning
Automating Induction over Mutually Recursive Functions
AMAST '96 Proceedings of the 5th International Conference on Algebraic Methodology and Software Technology
Function Definition in Higher-Order Logic
TPHOLs '96 Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics
Derivation and Use of Induction Schemes in Higher-Order Logic
TPHOLs '97 Proceedings of the 10th International Conference on Theorem Proving in Higher Order Logics
Wellfounded Schematic Definitions
CADE-17 Proceedings of the 17th International Conference on Automated Deduction
Nested General Recursion and Partiality in Type Theory
TPHOLs '01 Proceedings of the 14th International Conference on Theorem Proving in Higher Order Logics
Type-Theoretic Functional Semantics
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
Verifying BDD Algorithms through Monadic Interpretation
VMCAI '02 Revised Papers from the Third International Workshop on Verification, Model Checking, and Abstract Interpretation
Proof obligation generation and discharging for recursive definitions in VDM
ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
Partial recursive functions in higher-order logic
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
Hi-index | 0.02 |
Functions specified by nested recursions are difficult to define and reason about. We present several ameliorative techniques that use deduction in a classical higher-order logic. First, we discuss how an apparent circular dependency between the proof of nested termination conditions and the definition of the specified function can be avoided. Second, we propose a method that allows the specified function to be defined in the absence of a termination relation. Finally, we show how our techniques extend to nested program schemes, where a termination relation cannot be found until schematic parameters have been filled in. In each of these techniques, suitable induction theorems are automatically derived.