Reasoning with higher-order abstract syntax in a logical framework
ACM Transactions on Computational Logic (TOCL)
Encoding a Dependent-Type Lambda-Calculus in a Logic Programming Language
Proceedings of the 10th International Conference on Automated Deduction
System Description: Twelf - A Meta-Logical Framework for Deductive Systems
CADE-16 Proceedings of the 16th International Conference on Automated Deduction: Automated Deduction
FreshML: programming with binders made simple
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
A proof theory for generic judgments
ACM Transactions on Computational Logic (TOCL)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Focusing and polarization in linear, intuitionistic, and classical logics
Theoretical Computer Science
A framework for specifying, prototyping, and reasoning about computational systems
A framework for specifying, prototyping, and reasoning about computational systems
A meta-programming approach to realizing dependently typed logic programming
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Information and Computation
Journal of Automated Reasoning
Avoiding equivariance in alpha-prolog
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Beluga: a framework for programming and reasoning with deductive systems (system description)
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
Programming with Higher-Order Logic
Programming with Higher-Order Logic
A Two-Level Logic Approach to Reasoning About Computations
Journal of Automated Reasoning
Proof pearl: abella formalization of λ-calculus cube property
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
Automatically generated infrastructure for de bruijn syntaxes
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Hi-index | 0.00 |
The logic of hereditary Harrop formulas (HH) has proven useful for specifying a wide range of formal systems that are commonly presented via syntax-directed rules that make use of contexts and side-conditions. The two-level logic approach, as implemented in the Abella theorem prover, embeds the HH specification logic within a rich reasoning logic that supports inductive and co-inductive definitions, an equality predicate, and generic quantification. Properties of the encoded systems can then be proved through the embedding, with special benefit being extracted from the transparent correspondence between HH derivations and those in the encoded formal systems. The versatility of HH relies on the free use of nested implications, leading to dynamically changing assumption sets in derivations. Realizing an induction principle in this situation is nontrivial and the original Abella system uses only a subset of HH for this reason. We develop a method here for supporting inductive reasoning over all of HH. Our approach relies on the ability to characterize dynamically changing contexts through finite inductive definitions, and on a modified encoding of backchaining for HH that allows these finite characterizations to be used in inductive arguments. We demonstrate the effectiveness of our approach through examples of formal reasoning on specifications with nested implications in an extended version of Abella.