Notes on Logical Frameworks

Similar documents
Mechanizing Metatheory in a Logical Framework

HOAS by example What is a Formal System? A Simply Typed Framework What Does it Mean? Canonical LF References HOAS. Randy Pollack

Type Systems as a Foundation for Reliable Computing

LF P A Logical Framework with External Predicates

Intensionality, Extensionality, and Proof Irrelevance in Modal Type Theory

Univalent Foundations and Set Theory

Simply Typed λ-calculus

Lecture Notes on Subject Reduction and Normal Forms

Subtyping and Intersection Types Revisited

Supplementary Notes on Inductive Definitions

Reasoning with Higher-Order Abstract Syntax and Contexts: A Comparison

Towards a general framework for metareasoning on HOAS encodings

A Bidirectional Refinement Type System for LF

Theoretical Computer Science. Representing model theory in a type-theoretical logical framework

The Curry-Howard Isomorphism

Lecture Notes on Intuitionistic Kripke Semantics

Introduction to Metalogic

Lecture Notes on Data Abstraction

CS522 - Programming Language Semantics

Lambda Calculus. Andrés Sicard-Ramírez. Semester Universidad EAFIT

Propositions and Proofs

Logic for Computational Effects: work in progress

Beyond First-Order Logic

Lecture Notes on Quantification

Mary Southern and Gopalan Nadathur. This work was funded by NSF grant CCF

Lecture Notes on Inductive Definitions

Mathematics 114L Spring 2018 D.A. Martin. Mathematical Logic

NICTA Advanced Course. Theorem Proving Principles, Techniques, Applications

Meta-reasoning in the concurrent logical framework CLF

Lecture Notes on Sequent Calculus

The Calculus of Inductive Constructions

Lecture Notes on Inductive Definitions

Binding in Nominal Equational Logic

REFINEMENT TYPES FOR LOGICAL FRAMEWORKS AND THEIR INTERPRETATION AS PROOF IRRELEVANCE

Justifying Algorithms for βη-conversion

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages

Lecture 1: Logical Foundations

Lecture 7. Logic. Section1: Statement Logic.

185.A09 Advanced Mathematical Logic

Logic for Computer Science - Week 4 Natural Deduction

Mathematical Synthesis of Equational Deduction Systems. Marcelo Fiore. Computer Laboratory University of Cambridge

On Equivalence and Canonical Forms in the LF Type Theory (Extended Abstract) Robert Harper and Frank Pfenning Department of Computer Science Carnegie

Consequence Relations and Natural Deduction

Church and Curry: Combining Intrinsic and Extrinsic Typing

On Equivalence and Canonical Forms in the LF Type Theory

Lecture Notes on A Concurrent Logical Framework

Propositional logic (revision) & semantic entailment. p. 1/34

Intensionality, Extensionality, and Proof Irrelevance in Modal Type Theory

Propositional Logic Arguments (5A) Young W. Lim 11/30/16

NONSTANDARD MODELS AND KRIPKE S PROOF OF THE GÖDEL THEOREM

From Operational Semantics to Abstract Machines

3.2 Reduction 29. Truth. The constructor just forms the unit element,. Since there is no destructor, there is no reduction rule.

A Concurrent Logical Framework

University of Oxford, Michaelis November 16, Categorical Semantics and Topos Theory Homotopy type theor

Lecture Notes on The Curry-Howard Isomorphism

Mechanizing a Decision Procedure for Coproduct Equality in Twelf

Part II. Logic and Set Theory. Year

Class 29 - November 3 Semantics for Predicate Logic

Structural Foundations for Abstract Mathematics

KRIPKE S THEORY OF TRUTH 1. INTRODUCTION

Lecture Notes on The Concurrent Logical Framework

Realism and Idealism External Realism

Propositional and Predicate Logic - VII

Classical Propositional Logic

Relative Hilbert-Post completeness for exceptions

Properties of Terms in Continuation-Passing Style in an Ordered Logical Framework

Type Systems Winter Semester 2006

An Open Logical Framework

Proseminar on Semantic Theory Fall 2013 Ling 720 Propositional Logic: Syntax and Natural Deduction 1

A Recursion Combinator for Nominal Datatypes Implemented in Isabelle/HOL

The equivalence axiom and univalent models of type theory.

Motivation. CS389L: Automated Logical Reasoning. Lecture 10: Overview of First-Order Theories. Signature and Axioms of First-Order Theory

DEFINITE DESCRIPTIONS: LANGUAGE, LOGIC, AND ELIMINATION

Propositional Logic Arguments (5A) Young W. Lim 11/8/16

COMP6463: λ-calculus

The L Machines are very high-level, in two senses:

Deductive System: Calculus of axioms and inference rules dening judgments. Used in the presentation of logics and programming derivable Logical Framew

Model Theory in the Univalent Foundations

Syntactic Characterisations in Model Theory

Part II On the Equivalence of Scientific Theories

Boolean Algebra and Propositional Logic

Boolean Algebra and Propositional Logic

Introduction to Metalogic

Termination and Reduction Checking for Higher-Order Logic Programs

Equivalents of Mingle and Positive Paradox

Module 7 D and Equivalent Systems

The Locally Nameless Representation

Draft of February 2019 please do not cite without permission. A new modal liar 1 T. Parent

Errata and Remarks for The Semantics and Proof Theory of the Logic of Bunched Implications BI-monograph-errata.

Homotopy Type Theory

Practical Foundations for Programming Languages

Nominal Unification. Key words: Abstract Syntax, Alpha-Conversion, Binding Operations, Unification

Type Theory and Constructive Mathematics. Type Theory and Constructive Mathematics Thierry Coquand. University of Gothenburg

Lecture Notes on Combinatory Modal Logic

TR : Binding Modalities

Bidirectional Decision Procedures for the Intuitionistic Propositional Modal Logic IS4

Applied Logic. Lecture 1 - Propositional logic. Marcin Szczuka. Institute of Informatics, The University of Warsaw

Komponenten- und Service-orientierte Softwarekonstruktion

Metainduction in Operational Set Theory

Transcription:

Notes on Logical Frameworks Robert Harper IAS November 29, 2012 1 Introduction This is a brief summary of a lecture on logical frameworks given at the IAS on November 26, 2012. See the references for technical details. 2 Logic of Judgments The idea of a logical framework is to codify the logic of judgments in which one may represent a logical system as a theory. The theory determines the basic forms of judgment, the syntactic categories, and the objects that inhabit them. The sentences of LJ are called judgments. The basic forms are those of the represented logic (for example, φ true expressing that a proposition φ is true). There are two non-basic forms that turn out to be closely related: 1. The hypothetical judgment J 1,..., J n J, expressing entailment, or logical consequence, of J by J 1,..., J n. 2. The general judgment x 1 χ 1,..., x n χ n J, expressing generality of J in parameters x 1,..., x n ranging over syntactic categories χ 1,..., χ n. We shall also have need of a formation judgment x 1 χ 1,..., x n χ n o χ expressing that o is an object of syntactic category χ. The behavior of the hypothetical judgment is governed by these two fundamental principles: Reflexivity J J Transitivity if J 1,..., J m J and J 1,..., J,..., J n J, then J 1,..., J 1,..., J m,..., J n J. Structural entailment includes also these principles: Weakening If J 1,..., J n J, then J 1,..., J n,, J n+1 J. Exchange If J 1,..., J,, J,..., J n J, then J 1,..., J, J,..., J n J. 1

Contraction If J 1,...,, J, J,..., J n J, then J 1,..., J,..., J n J. Substructural entailment denies one or more of these structural principles. The behavior of the general judgment is governed by these two fundamental principles: Variable x χ x χ. Substitution If x 1 χ 1,..., x χ,... x n χ J and x 1 χ 1,..., x n χ n o χ, then x 1 χ 1,..., x n χ n [o/x]j. Similarly, if x 1 χ 1,..., x χ,... x n χ o χ and x 1 χ 1,..., x n χ n o χ, then x 1 χ 1,..., x n χ [o/x]o χ. Here [o/x]j indicates replacement of x in J by o. Structural generality includes these additional principles: Proliferation If x 1 χ 1,..., x n χ n J, then x 1 χ 1,..., x n χ n, x χ J. Permutation If x 1 χ 1,..., x χ, x χ,..., x n χ J, then x 1 χ 1,..., x χ, x χ,..., x n χ J. Duplication If x 1 χ 1,..., x χ, x χ,..., x n χ J, then x 1 χ 1,..., x χ,..., x n χ J. The similarities between the hypothetical and general judgments are not accidental. They can be consolidated into a single form by introducing evidence for judgments and corresponding variables ranging over such evidence so that the entailment J 1,..., J n J becomes ξ 1 J 1,..., ξ n J n ε J. With this notation we see that reflexivity corresponds to variable, transitivity to substitution, weakening to proliferation, exchange to permutation, and contraction to duplication. This informal account of the logic of judgments is vague in a number of respects, most importantly in the definition of substitution (of objects for object variables and of evidence for evidence variables). It is also not quite clear what would constitute a representation of a logic as a theory in the logic of judgments. 3 LF Language The LF language is an attempt to clarify and formalize a logic of judgments in such a way that there is a clear notion of how to present a logical system as a theory, and a clear notion of what it means for such a presentation to be correct. The syntax of LF involves three forms of expressions, kinds, K, families, A, and objects, M. In addition there are contexts, Γ, declaring the types of variables and signatures, Σ, declaring the types and kinds of constants. These 2

are specified by a type system with the following forms of judgment: Σ Σ Σ Γ Σ Γ Γ Σ Γ Σ K Γ Σ K K Γ Σ A : K Γ Σ A A : K Γ Σ M : A Γ Σ M M : A (The exact formulation varies in different presentations.) The left column are the formation judgments, the right are the definitional equivalence judgments. There is a basic kind, type, classifying the types. The signature defines the basic type families, including the basic types. The types are closed under dependent function space, Πx:A.A, and the kinds are closed under dependent function space over a type, Πx:A.K. Definitional equivalence includes the expected β, and usually η, principles. It is critically important that all judgment forms of LF be analytic, which means self-evident, rather than synthetic, which means requiring evidence. The purpose of LF is to formalize the forms of evidence for a judgment in some logic, and we wish to avoid the infinite regress of requiring evidence for the judgments of the framework itself. The represented logic may have synthetic or analytic judgment forms, and this influences the means by which a logic may be represented in LF. Please see the references for the precise definition of the LF type theory (and bear in mind that there are various forms that differ slightly in technical detail for various reasons). 4 Synthetic Presentations One method for representing a logic in LF is to treat all judgments of the object logic as synthetic, uninterpreted assertions. The goal of the encoding is simply to capture the rules of the logic, whatever they may be, without regard to their meaning, if any. So, for example, it is perfectly sensible to represent an inconsistent logic in LF without any difficulties. The organizing principle for the synthetic representation is the judgments as types principle. The idea is that each judgment of the represented logic is encoded as a type family in LF, and the rules for deriving those judgments are encoded as constants of appropriate type. The correctness of the encoding is expressed by an adequacy theorem which says, roughly, that there is a compositional (aka natural, or commuting with substitution) bijection between the deductive apparatus of the object logic and the canonical forms (that is, the long βη-normal forms) of specified types in LF, relative to a signature defining these constants and a context specifying the variables that may be involved in the encoding. An example is the synthetic encoding of Gödel s T, which is given as follows. 1 1 As a TEXnical convenience I will use the notation of the Twelf implementation of LF in 3

First, the abstract syntax, using the technique of higher-order abstract syntax to encode variable binding: tp : type. nat : tp. arr : tp -> tp -> tp. tm : type. zero : tm. succ : tm -> tm. rec : tm -> (tm -> tm) -> tm -> tm. app : tm -> tm -> tm. lam : (tm -> tm) -> tm. The adequacy is expressed as follows. First, there is a bijection τ between types τ of T and canonical forms of LF of type tp. Second, there is a bijection e between terms e of T with free variables x 1,..., x n and canonical forms of LF of type tm in context x 1 : tm,..., x n : tm. Moreover, this bijection is compositional in that it commutes with substitution for the free variables, which is to say that [e/x]e = [ e /x] e. (Compositionality does not arise with the adequacy of the representation of types for the simple reason that we do not consider variable types in T, whereas we do, of course, consider variable terms.) Second, the typing judgment of T, using the judgments as types principle: of : tm -> tp -> type. of/zero : of zero nat. of/succ : e:nat of (succ e) nat. of/rec : {t:tp} {e0:tm} {e1:tm->tm} {e:tm} of e0 t -> ({x:tm} of x t -> of (e1 x) t) -> of e nat -> of (rec e0 e1 e) t. of/lam : {t1:tp} {t2:tp} {e:tm->tm} ({x:tm} of x t1 -> of (e x) t2) -> of (lam e) (arr t1 t2). of/app : {t1:tp} {t2:tp} {e1:tm} {e2:tm} of e1 (arr t1 t2) -> of e1 t1 -> of (app e1 e2) t2. The adequacy of the encoding is expressed by giving a compositional bijection between derivations of x 1 ; τ 1,..., x n : τ n e : τ of T and canonical forms of LF with typings of the form x 1 : tm, ξ 1 : of x 1 τ 1,..., x n : tm, ξ n : of x n τ n : of e τ. which Π s are represented using curly braces, and λ s using square brackets. For the sake of clarity I will eschew the many conveniences provided by Twelf that would allow me to omit many quantifiers. 4

As before, compositionality means that [ /ξ] = [ /ξ], where the notation on the left denotes the obvious composition of derivations of typing judgments in T, which are not ordinarily made explicit in informal accounts of the system. Third, the conversion judgment of T is encoded as follows: 2 conv : tm -> tm -> type. refl : {e:tm} conv e e. sym : {e1:tm} {e2:tm} conv e1 e2 -> conv e2 e1. beta : {f:tm->tm} {e:tm} conv (app (lam f) e) (f e). The advantage of higher-order abstract syntax becomes apparent in the beta rule, which simply applies the body of the λ to an argument to effect the substitution. The adequacy of the encoding of conversion is stated similarly to the adequacy of the encoding of typing. 5 Analytic Presentations The synthetic representation of T is not faithful to the intended meaning of its judgments. In particular the typing and definitional equivalence judgments of T are analytic, and should be represented as such in LF. Representing them synthetically misses the intended meaning, and is to this extent inaccurate. The alternative is to use an analytic representation in which typing T is represented directly as typing of LF, and conversion of T is represented directly by definitional equivalence of LF. This means that the presentation of T in this form consists of a signature of constants together with an equational theory governing the behavior of these constants. Here is a sketch of the signature of the analytic encoding of T. First, the syntax, which represents only the well-typed terms: tp : type. nat : tp. arr : tp->tp->tp. el : tp -> type. zero : el nat. succ : el nat -> el nat. rec : {t:tp} el t -> (el t -> el t) -> el nat -> el t. lam : {t1:tp} {t2:tp} (el t1 -> el t2) -> el (arr t1 t2). app : {t1:tp} {t2:tp} el (arr t1 t2) -> el t1 -> el t2. Notice that the polymorphism of the language is handled at the framework level. There is an obvious bijection between types and terms of T and canonical forms of suitable type in LF. For example, x : τ 1 e : τ 2 in T corresponds 2 Only a few key rules are given here. 5

to x : el τ 1 e : el τ 2 in LF, and this correspondence commutes with (well-typed) substitution. Second, definitional equivalence is given by equational axioms such as the following: Γ app τ 1 τ 2 (lam F ) M F M : el τ 2 Similar axioms govern the recursor in the usual manner. The foregoing axiom presupposes the adequacy of the encoding by quantifying over arbitrary F and M of the appropriate type. One might also state the axiom in more explicit form by requiring M to be e for some e of the domain type τ 1, and requiring F to be λx: τ 1. e, where x : τ 1 e : τ 2 in T. The axiom then states directly the β principle for T. It is a matter of semantics to understand that this encoding of T in LF is adequate. In particular we must ensure that definitional equivalence of LF remains analytic under this representation to ensure that we have faithfully encoded the object logic. From an implementation point of view this means that we must develop methods for checking conversion of terms in T via their representation in LF, and this process must be repeated for each represented logical system. References [1] S. Abramsky, Dov M. Gabbay, and T. S. E. Maibaum, editors. Handbook of Logic in Computer Science, volume 5. Oxford University Press, 2001. [2] Robert Harper. Practical Foundations for Programming Languages. Cambridge University Press, 2012. [3] Robert Harper, Furio Honsell, and Gordon D. Plotkin. A framework for defining logics. J. ACM, 40(1):143 184, 1993. [4] Robert Harper and Frank Pfenning. On equivalence and canonical forms in the lf type theory. ACM Trans. Comput. Log., 6(1):61 101, 2005. [5] Per Martin-Löf. On the meanings of the logical constants and the justifications of the logical laws. Notre Dame Journal of Philosophical Logic, 1(1):11 60, 1996. [6] Bengt Nordström. Martin-Löf s Type Theory, chapter 1. Volume 5 of Abramsky et al. [1], 2001. 6