Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
An overview of the Edinburgh logical framework
Current trends in hardware verification and automated theorem proving
Logic programming in the LF logical framework
Logical frameworks
Encoding dependent types in an intuitionistic
Logical frameworks
An algorithm for testing conversion in type theory
Logical frameworks
A framework for defining logics
Journal of the ACM (JACM)
Algorithmic definition of lambda-typed lambda calculus
Papers presented at the second annual Workshop on Logical environments
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
Toward a foundational typed assembly language
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Mode and Termination Checking for Higher-Order Logic Programs
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
HOL Light: A Tutorial Introduction
FMCAD '96 Proceedings of the First International Conference on Formal Methods in Computer-Aided Design
Natural Semantics and Some of Its Meta-Theory in Elf
ELP '99 Proceedings of the Second International Workshop on Extensions of Logic Programming
Implementing the Meta-Theory of Deductive Systems
CADE-11 Proceedings of the 11th International Conference on Automated Deduction: Automated Deduction
Automated Theorem Proving in a Simple Meta-Logic for LF
CADE-15 Proceedings of the 15th International Conference on Automated Deduction: Automated Deduction
Information and Computation
A Proof of the Church-Rosser Theorem and its Representation in a Logical Framework
A Proof of the Church-Rosser Theorem and its Representation in a Logical Framework
Foundational Proof-Carrying Code
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)
Automating the meta theory of deductive systems
Automating the meta theory of deductive systems
Dependent types ensure partial correctness of theorem provers
Journal of Functional Programming
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
A Symmetric Modal Lambda Calculus for Distributed Computing
LICS '04 Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science
On equivalence and canonical forms in the LF type theory
ACM Transactions on Computational Logic (TOCL)
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A machine-checked model for a Java-like language, virtual machine, and compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Non-Interference in Constructive Authorization Logic
CSFW '06 Proceedings of the 19th IEEE workshop on Computer Security Foundations
Towards a mechanized metatheory of standard ML
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Transactions on Computational Logic (TOCL)
A consistent semantics of self-adjusting computation
ESOP'07 Proceedings of the 16th European conference on Programming
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
An executable formalization of the HOL/Nuprl connection in the metalogical framework twelf
LPAR'06 Proceedings of the 13th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
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
Distributed control flow with classical modal logic
CSL'05 Proceedings of the 19th international conference on Computer Science Logic
Linear regions are all you need
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formalising in Nominal Isabelle Crary's Completeness Proof for Equivalence Checking
Electronic Notes in Theoretical Computer Science (ENTCS)
A Bidirectional Refinement Type System for LF
Electronic Notes in Theoretical Computer Science (ENTCS)
Syntactic Metatheory of Higher-Order Subtyping
CSL '08 Proceedings of the 22nd international workshop on Computer Science Logic
Implementing a normalizer using sized heterogeneous types
Journal of Functional Programming
Syntax for Free: Representing Syntax with Binding Using Parametricity
TLCA '09 Proceedings of the 9th International Conference on Typed Lambda Calculi and Applications
A syntactic account of singleton types via hereditary substitution
Proceedings of the Fourth International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice
Coercive subtyping in lambda-free logical frameworks
Proceedings of the Fourth International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice
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
Distributed programming with distributed authorization
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
A sound semantics for OCamllight
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Relating nominal and higher-order abstract syntax specifications
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Hereditary substitutions for simple types, formalized
Proceedings of the third ACM SIGPLAN workshop on Mathematically structured functional programming
Mechanizing the metatheory of LF
ACM Transactions on Computational Logic (TOCL)
Proof-theoretic and higher-order extensions of logic programming
A 25-year perspective on logic programming
Recursion principles for syntax with bindings and substitution
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Programming with binders and indexed data-types
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reasoning with higher-order abstract syntax and contexts: a comparison
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Formalizing Adequacy: A Case Study for Higher-order Abstract Syntax
Journal of Automated Reasoning
A Canonical Locally Named Representation of Binding
Journal of Automated Reasoning
LFP: a logical framework with external predicates
Proceedings of the seventh international workshop on Logical frameworks and meta-languages, theory and practice
LF in LF: mechanizing the metatheories of LF in twelf
Proceedings of the seventh international workshop on Logical frameworks and meta-languages, theory and practice
Structural logical relations with case analysis and equality reasoning
Proceedings of the Eighth ACM SIGPLAN international workshop on Logical frameworks & meta-languages: theory & practice
25 years of formal proof cultures: some problems, some philosophy, bright future
Proceedings of the Eighth ACM SIGPLAN international workshop on Logical frameworks & meta-languages: theory & practice
A logical correspondence between natural semantics and abstract machines
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Hi-index | 0.00 |
The LF logical framework codifies a methodology for representing deductive systems, such as programming languages and logics, within a dependently typed λ-calculus. In this methodology, the syntactic and deductive apparatus of a system is encoded as the canonical forms of associated LF types; an encoding is correct (adequate) if and only if it defines a compositional bijection between the apparatus of the deductive system and the associated canonical forms. Given an adequate encoding, one may establish metatheoretic properties of a deductive system by reasoning about the associated LF representation. The Twelf implementation of the LF logical framework is a convenient and powerful tool for putting this methodology into practice. Twelf supports both the representation of a deductive system and the mechanical verification of proofs of metatheorems about it. The purpose of this article is to provide an up-to-date overview of the LF λ-calculus, the LF methodology for adequate representation, and the Twelf methodology for mechanizing metatheory. We begin by defining a variant of the original LF language, called Canonical LF, in which only canonical forms (long βη-normal forms) are permitted. This variant is parameterized by a subordination relation, which enables modular reasoning about LF representations. We then give an adequate representation of a simply typed λ-calculus in Canonical LF, both to illustrate adequacy and to serve as an object of analysis. Using this representation, we formalize and verify the proofs of some metatheoretic results, including preservation, determinacy, and strengthening. Each example illustrates a significant aspect of using LF and Twelf for formalized metatheory.