Information and Computation - Semantics of Data Types
On the formalization of the modal &mgr;-calculus in the calculus of inductive constructions
Information and Computation
Reasoning with higher-order abstract syntax in a logical framework
ACM Transactions on Computational Logic (TOCL)
Primitive recursion for higher-order abstract syntax
Theoretical Computer Science
A mechanized theory of the &pi-calculus in Hol
Nordic Journal of Computing
Higher-Order Abstract Syntax in Coq
TLCA '95 Proceedings of the Second International Conference on Typed Lambda Calculi and Applications
A Mechanisation of Name-Carrying Syntax up to Alpha-Conversion
HUG '93 Proceedings of the 6th International Workshop on Higher Order Logic Theorem Proving and its Applications
Five Axioms of Alpha-Conversion
TPHOLs '96 Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics
Combining Higher Order Abstract Syntax with Tactical Theorem Proving and (Co)Induction
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
Two-Level Meta-reasoning in Coq
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
Automating the meta theory of deductive systems
Automating the meta theory of deductive systems
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
A computational approach to reflective meta-reasoning about languages with bindings
Proceedings of the 3rd ACM SIGPLAN workshop on Mechanized reasoning about languages with variable binding
A proof theory for generic judgments
ACM Transactions on Computational Logic (TOCL)
Multi-level meta-reasoning with higher-order abstract syntax
FOSSACS'03/ETAPS'03 Proceedings of the 6th International conference on Foundations of Software Science and Computation Structures and joint European conference on Theory and practice of software
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Mechanized metatheory for the masses: the PoplMark challenge
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
The ∇-calculus. functional programming with higher-order encodings
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Two-Level Hybrid: A System for Reasoning Using Higher-Order Abstract Syntax
Electronic Notes in Theoretical Computer Science (ENTCS)
Parametric higher-order abstract syntax for mechanized semantics
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
A universe of binding and computation
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Simple types in type theory: deep and shallow encodings
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
Hybrid: reasoning with higher-order abstract syntax in coq and isabelle
Proceedings of the third ACM SIGPLAN workshop on Mathematically structured functional programming
Journal of Automated Reasoning
Using circular programs for higher-order syntax: functional pearl
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Names for free: polymorphic views of names and binders
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Hi-index | 0.00 |
The use of higher-order abstract syntax is an important approach for the representation of binding constructs in encodings of languages and logics in a logical framework. Formal meta-reasoning about such object languages is a particular challenge. We present a mechanism for such reasoning, formalized in Coq, inspired by the Hybrid tool in Isabelle. At the base level, we define a de Bruijn representation of terms with basic operations and a reasoning framework. At a higher level, we can represent languages and reason about them using higher-order syntax. We take advantage of Coq's constructive logic by formulating many definitions as Coq programs. We illustrate the method on two examples: the untyped lambda calculus and quantified propositional logic. For each language, we can define recursion and induction principles that work directly on the higher-order syntax.