Logical frameworks
Theoretical Computer Science
A framework for defining logics
Journal of the ACM (JACM)
Full abstraction in the lazy lambda calculus
Information and Computation
Logic programming in a fragment of intuitionistic linear logic
Papers presented at the IEEE symposium on Logic in computer science
Proving congruence of bisimulation in functional programming languages
Information and Computation
Forum: a multiple-conclusion specification logic
ALP Proceedings of the fourth international conference on Algebraic and logic programming
Compiling standard ML to Java bytecodes
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
A simple applicative language: mini-ML
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Cut-elimination for a logic with definitions and induction
Theoretical Computer Science - Special issue on proof-search in type-theoretic languages
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
Some Lambda Calculus and Type Theory Formalized
Journal of Automated Reasoning
A mechanized theory of the &pi-calculus in Hol
Nordic Journal of Computing
Inductive Definitions in the system Coq - Rules and Properties
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Higher-Order Abstract Syntax in Coq
TLCA '95 Proceedings of the Second International Conference on Typed Lambda Calculi and Applications
Proving Syntactic Properties of Exceptions in an Ordered Logical Framework
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
An Axiomatic Approach to Metareasoning on Nominal Algebras in HOAS
ICALP '01 Proceedings of the 28th International Colloquium on Automata, Languages and Programming,
Why we can't have SML-style datatype Declarations in HOL
HOL'92 Proceedings of the IFIP TC10/WG10.2 Workshop on Higher Order Logic Theorem Proving and its 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
Proof Terms for Simply Typed Higher Order Logic
TPHOLs '00 Proceedings of the 13th 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
PVS: A Prototype Verification System
CADE-11 Proceedings of the 11th International Conference on Automated Deduction: Automated Deduction
A Fixedpoint Approach to Implementing (Co)Inductive Definitions
CADE-12 Proceedings of the 12th International Conference on Automated Deduction
Pi: an Interactive Derivation Editor for the Calculus of Partial Inductive Definitions
CADE-12 Proceedings of the 12th International Conference on Automated Deduction
A Formalization of a Concurrent Object Calculus up to alpha-Conversion
CADE-17 Proceedings of the 17th International Conference on Automated Deduction
Two-Level Meta-reasoning in Coq
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
Information and Computation
A formalised first-order confluence proof for the λ-calculus using one-sorted variable names
Information and Computation - RTA 2001
Automating the meta theory of deductive systems
Automating the meta theory of deductive systems
Ordered linear logic and applications
Ordered linear logic and applications
Formal Foundations of Operational Semantics
Higher-Order and Symbolic Computation
Nominal logic, a first order theory of names and binding
Information and Computation - TACS 2001
A definitional approach to primitivexs recursion over higher order abstract syntax
MERLIN '03 Proceedings of the 2003 ACM SIGPLAN workshop on Mechanized reasoning about languages with variable binding
A formalization of an Ordered Logical Framework in Hybrid with applications to continuation machines
MERLIN '03 Proceedings of the 2003 ACM SIGPLAN workshop on Mechanized reasoning about languages with variable binding
A Sequent Calculus for Nominal Logic
LICS '04 Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science
A logical framework for reasoning about logical specifications
A logical framework for reasoning about logical specifications
A proof theory for generic judgments
ACM Transactions on Computational Logic (TOCL)
Verifying Termination and Reduction Properties about Higher-Order Logic Programs
Journal of Automated Reasoning
Consistency of the theory of contexts
Journal of Functional Programming
Alpha-structural recursion and induction
Journal of the ACM (JACM)
Head Normal Form Bisimulation for Pairs and the \lambda\mu-Calculus
LICS '06 Proceedings of the 21st Annual IEEE Symposium on Logic in Computer Science
Mechanized meta-reasoning using a hybrid HOAS/de bruijn representation and reflection
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Linearity Constraints as Bounded Intervals in Linear Logic Programming
Journal of Logic and Computation
Towards a mechanized metatheory of standard ML
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Executable JVM model for analytical reasoning: a study
Science of Computer Programming - Special issue on advances in interpreters, virtual machines and emulators (IVME'03)
Hybridizing a Logical Framework
Electronic Notes in Theoretical Computer Science (ENTCS)
A Logic for Reasoning about Generic Judgments
Electronic Notes in Theoretical Computer Science (ENTCS)
A Head-to-Head Comparison of de Bruijn Indices and Names
Electronic Notes in Theoretical Computer Science (ENTCS)
Nominal Reasoning Techniques in Coq
Electronic Notes in Theoretical Computer Science (ENTCS)
Reasoning about Object-based Calculi in (Co)Inductive Type Theory and the Theory of Contexts
Journal of Automated Reasoning
Ott: effective tool support for the working semanticist
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Two-Level Hybrid: A System for Reasoning Using Higher-Order Abstract Syntax
Electronic Notes in Theoretical Computer Science (ENTCS)
Boxes go bananas: Encoding higher-order abstract syntax with parametric polymorphism*
Journal of Functional Programming
ACM Transactions on Computational Logic (TOCL)
Combining Generic Judgments with Recursive Definitions
LICS '08 Proceedings of the 2008 23rd Annual IEEE Symposium on Logic in Computer Science
Parametric higher-order abstract syntax for mechanized semantics
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
The Bedwyr System for Model Checking over Syntactic Expressions
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
The Abella Interactive Theorem Prover (System Description)
IJCAR '08 Proceedings of the 4th international joint conference on Automated Reasoning
Electronic Notes in Theoretical Computer Science (ENTCS)
Reasoning in Abella about Structural Operational Semantics Specifications
Electronic Notes in Theoretical Computer Science (ENTCS)
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
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
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
Combining de Bruijn indices and higher-order abstract syntax in Coq
TYPES'06 Proceedings of the 2006 international conference on Types for proofs and programs
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Practical programming with higher-order encodings and dependent types
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions
Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions
A recursion combinator for nominal datatypes implemented in Isabelle/HOL
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
Mechanized metatheory for the masses: the PoplMark challenge
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
System description: ATS: a language that combines programming with theorem proving
FroCoS'05 Proceedings of the 5th international conference on Frontiers of Combining Systems
Nominal techniques in Isabelle/HOL
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
A simpler proof theory for nominal logic
FOSSACS'05 Proceedings of the 8th international conference on Foundations of Software Science and Computation Structures
The ∇-calculus. functional programming with higher-order encodings
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Beluga: programming with dependent types, contextual data, and contexts
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Reasoning with higher-order abstract syntax and contexts: a comparison
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Hybrid: reasoning with higher-order abstract syntax in coq and isabelle
Proceedings of the third ACM SIGPLAN workshop on Mathematically structured functional programming
Reasoning with higher-order abstract syntax and contexts: a comparison
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
A Two-Level Logic Approach to Reasoning About Computations
Journal of Automated Reasoning
A supposedly fun thing i may have to do again: a HOAS encoding of Howe's method
Proceedings of the seventh international workshop on Logical frameworks and meta-languages, theory and practice
Compiling contextual objects: bringing higher-order abstract syntax to programmers
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
Reasoning about higher-order relational specifications
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Hi-index | 0.00 |
Combining higher-order abstract syntax and (co)-induction in a logical framework is well known to be problematic. We describe the theory and the practice of a tool called Hybrid, within Isabelle/HOL and Coq, which aims to address many of these difficulties. It allows object logics to be represented using higher-order abstract syntax, and reasoned about using tactical theorem proving and principles of (co)induction. Moreover, it is definitional, which guarantees consistency within a classical type theory. The idea is to have a de Bruijn representation of 驴-terms providing a definitional layer that allows the user to represent object languages using higher-order abstract syntax, while offering tools for reasoning about them at the higher level. In this paper we describe how to use Hybrid in a multi-level reasoning fashion, similar in spirit to other systems such as Twelf and Abella. By explicitly referencing provability in a middle layer called a specification logic, we solve the problem of reasoning by (co)induction in the presence of non-stratifiable hypothetical judgments, which allow very elegant and succinct specifications of object logic inference rules. We first demonstrate the method on a simple example, formally proving type soundness (subject reduction) for a fragment of a pure functional language, using a minimal intuitionistic logic as the specification logic. We then prove an analogous result for a continuation-machine presentation of the operational semantics of the same language, encoded this time in an ordered linear logic that serves as the specification layer. This example demonstrates the ease with which we can incorporate new specification logics, and also illustrates a significantly more complex object logic whose encoding is elegantly expressed using features of the new specification logic.