3.2 Equivalence, Evaluation and Reduction Strategies

Size: px
Start display at page:

Download "3.2 Equivalence, Evaluation and Reduction Strategies"

Transcription

1 3.2 Equivalence, Evaluation and Reduction Strategies The λ-calculus can be seen as an equational theory. More precisely, we have rules i.e., α and reductions, for proving that two terms are intensionally equivalent 12 which implies that the two terms have the same meaning. In particular, if we take the reduction relation as the embodiment of the behavioural meaning of terms, intensional equivalence should then imply that two equivalent terms have the same behaviour. In the context of the λ-calculus, one intuitive interpretation of such behaviour would then be that two equivalent λ-terms denote the same function. A similar discussion was already held earlier for α-reductions. In fact we have already argued that the two terms λx.x and λy.y denote the same function, i.e., the identity function Id over some domain and co-domain, because the specific name of the bound variable is not important. Correspondingly, Def. 64(α-equivalence) allowed us to equate these two terms as the relation M α M. We now extend this discussion to computation in general, so as to be able to equate terms such as λx.x and (λx.x)(λy.y) on the basis that they both behave like the identity function Id. In fact, if we apply these two terms to any arbitrary argument M, they both return M (after some reductions). Multi-Step reduction (Evaluation) Definition 68 (Evaluation). The least relation satisfying M N λx.m = λx.n M = M M α M M = N N α N M = M N = N MN = M N M = L L = N Slide 93 We start off by formalising computations (evaluations) over λ-terms, =, which relates terms that are reachable using an arbitrary number of -reductions (up-to α-equivalence); this can be seen as the reflexive transitive closure of, i.e.,. It is defined as the least relation satisfying the rules on Slide 93. We here point out a number of characteristics of the relation and of -reduction in particular: -reduction is asymmetric (as opposed to α-reduction, which was symmetric). Thus if M N,it is generally not the case that N M. From Def. 68, it should be clear that multi-step reduction, =, is also asymmetric. In fact, the last two rules admit only reflexivity (because M 0 M and transitivity (because M n L and L m N implies M n+m N). This gives us a preorder over λ-terms. 12 Two terms are intentionally equivalent when they denote the same meaning; on the other hand, they are syntactically equivalent when they have an identic syntactic form. 74

2 Multi-step reduction abstracts over α-equivalence. This is characterised by the second rule on Slide 68. If a term M has a normal form, then it must be the case that for some N which is in normal form Confluence Before we consider equivalence up-to -reduction, we have to understand a fundamental property relating to multi-step -reductions (evaluations) in the λ-calculus. This property is often referred to as the diamond property, and is stated on Slide 94. As it turns out, this property justifies the use of -reductions as rules for determining equivalence. More formally, Theorem 69, called the Church-Rosser Theorem, states that evaluation in the λ-calculus is confluent, meaning that, when starting from the same λ-term, if two sequences of reductions reach different terms, we can always eventually evaluate back to a common term from the resulting distinct terms. The Church Rosser (Diamond) Property Theorem 69 (Church-Rosser). For any term M, whenever M = M 1 and M = M 2 then there exists some term M 3 such that M 1 = M 3 and M 2 = M 3. M implies M 1 M 2 M 1 M M 3 M 2 Slide 94 This theorem has particular significance with respect to normal forms i.e., terms with no further reductions (see Def. 67). In fact, since terms in normal form can only evaluate up to themselves, i.e., N = N, the Church-Rosser Theorem implies that if two normal forms N 1 and N 2 can be reached when evaluating some common term M, then these terms must be equivalent (up-to α-equivalence) - otherwise they would violate Theorem 69. Stated otherwise, we are justified in abstracting away from the actual reduction sequence used to reach a normal form i.e., = of Slide 93, as this is independent of the order in which the individual -reductions are performed on a term, i.e., of Slide 91. Example 70 (Evaluations and normal forms). Consider the term (λx.(λz.z)x) λy.y. There are two evaluations that lead to the same normal form, namely: (λx.(λz.z)x) λy.y λz.z(λy.y) λy.y (λx.(λz.z)x) λy.y (λx.x) λy.y λy.y Note that the diamond property only holds for evaluations and does not hold for single-step -reductions. 75

3 In other words, we can find a counter example that violates the diagram below: M implies M 1 M 2 M 1 M M 2 M 3 For instance, consider the term (λx.x x) ((λy.y)(λz.z)) in Example 71. It can admit two different reductions as shown on Slide 95. However, we have no way how to then complete the diamond diagram. The problem is caused by the term λx.x x which replicates it arguments. Thus, if the argument in this case (( λy.y) (λz.z)) is not fully evaluated before being passed to λx.x x, then the resulting term also duplicated any evaluations in this argument. This, in turn, prohibits us from completing the diagram using a single -reduction. Church-Rosser does not hold for single-step reductions Example 71. The term (λx.x x) ((λy.y)(λz.z)) can have the two reductions: ((λy.y)(λz.z)) ((λy.y)(λz.z)) (λx.x x) ((λy.y)(λz.z)) (λx.x x) (λz.z) But we cannot close the diamond using a single -reduction! Slide 95 As an aside, from a computational point of view, this fact has an important implication in terms of the efficiency of term evaluation; in fact it seems to imply that it is generally more efficient to evaluate arguments before they are used in an application, because they may be used more than once in the body of an abstraction, thereby duplicating the effort through multiple reductions of the same argument. This discourse is however not as clearcut as this example seems to indicate. Consider the term (λx.y)((λz.z)(λw.w)) as a second example. Evaluating the argument first yeilds two reductions: (λx.y) ((λz.z) (λw.w)) λx.y (λw.w) y whereas not evaluating arguments beforehand leads to just one reduction till we hit a term in normal-form. We revisit this argument later on in Section Equivalence (λx.y) ((λz.z) (λw.w)) y Theorem 69 also justifies the use of evaluations as a mechanism for determining whether two terms M and N are equivalent: we evaluate the two terms down to their normal form and if the respective normal-form terms are α-equivalent, then M and N are equivalent. More precisely, by using = as the basis for our 76

4 proof system, we obtain an equational theory that is consistent. 13 More precisely, in order to show that two terms, say M and N, have the same semantic meaning, we can just show, using the rules on Slide 93, that M and N have the same normal form. Thanks to the Church-Rosser property, we know that there is no way we could reach two different normal forms by following different reduction strategies. All this is formalised as Def. 72 on Slide 96. When two terms, M and N, are equivalent in this sense, we say that they are -equivalent, and denote it as M N. Example 73 shows two terms that are -equivalence. -equivalence Definition 72 (-equivalence). Two terms M and N are - equivalent, denoted as M N iff whenever M = L where L is in normal, then N = L, and viceversa. Example 73. We have (λx.(λz.z)x) λy.y (λx.λz.x) (λy.y) w Slide Non-termination of Evaluation Although different reduction strategies cannot reach distinct normal forms (up to α-equivalence), they can still yield different outcomes. In particular, one evaluation may terminate whereas the other may diverge and evaluate forever. Typically this happens when a term has a normal form but contains a subterm having no normal form. Church-Rosser and non-termination Example 74. Recall the terms Cnst = λy.z Ω =(λx.x x)(λx.x x) The composite term Cnst Ω can reach a normal form : (λy.z)ω z which implies (λy.z)ω = z But it can also reduce forever Cnst(λx.x x)(λx.x x) Cnst(λx.x x)(λx.x x)... Slide 97 Example 74 on Slide 97 shows one such term that can both yield a term in normal form and also evaluate forever. In particular, the infinite reduction sequence is caused by the subterm called Ω (encountered earlier at the end of Sec. 3.1.) 13 An equational theory is inconsistent if all equations are provable; or alternately, if an equation can be proved true and false within the same theory. 77

5 Conflicting aims complicate the search for an efficient reduction strategy for evaluating a term to its normal-form (when it has one): on Slide 95 we saw how it is desirable to evaluate the argument before performing a -reduction in order not to duplicate reductions unnecessarily; at the same time, Slide 97 illustrates the danger with this strategy, as there are cases where this will not lead to a normal-form but instead result in an infinite evaluation even when such normal form exists. Normal Order Reduction Definition 75 (Normal Order Reduction). The least relation satisfying (λx.m) N no M{x := N} M = λx.m M no L MN no LN M no λx.m no N λx.n M = λx.m M no N no L MN no ML Slide 98 If we are merely interested in finding the normal form of a term (whenever it exists) then there is a reduction strategy that guarantees to find it. It is called normal-order reduction and it always evaluates the leftmost-outermost redex in a term; by leftmost we mean that in a term of the form MN we reduce M before N; by outermost we mean that in a term of the form (λx.m) N we first substitute N for x in M before reducing either M or N. The Normalisation Property Theorem 76 (Normalisation). If M has a normal form N, then there exist a finite number n of normal-order reductions such that M n no L such that L α N Example 77. Recall the terms Cnst = λy.z Ω =(λx.x x)(λx.x x) The composite term Cnst Ω can reach a normal form using 1 normal-order reduction: (λy.z) Ω = z which implies M.(λy.z)Ω no M then M α z Slide 99 This reduction strategy is formalised by the relation no defined by the rules of Def. 75 on Slide 98. It is important to note that the normal-order reduction strategy is deterministic: when there is more than one 78

6 possible redex to reduce in a term, it always picks the same one, namely the leftmost-outermost one. More importantly though, normal order reduction avoids running into infinite computations when alternative reductions exist, as in the case of Example 74, by not evaluating arguments before substituting them. Although this is (in general) inefficient (it may replicate reductions), it guarantees to evaluate down to a normal form term if one exists. We state (without proving) this property in Theorem Equivalence and Undecidability Back to our notion of equivalence between λ-terms, we note that Def. 72 with respect to divergence i.e., non-terminating terms is somewhat too weak as it does not distinguish between any of these divergent terms (i.e., we always equate them). In some sense though, we would like to, at least, distinguish amongst some of these divergent terms based on the intuition that these terms may yield a normal form when applied to certain arguments. One such example of terms would be (λx.x x)(λx.x x) and λw.(w (λx.x x)(λx.x x)) The left hand term will always yield an infinite computation irrespective of what argument it is applied to. However, the right term may yeild a normal form, when applied to an argument such as λy.z. Thus,inthis sense, they denote qualitatively different functions. Naive attempts at addressing this problem may however introduce complications. For instance, it turns out that any system that equates the λ-terms (λy.y (λu.λv.u))(λx.x x)(λx.x x) and (λy.y (λu.λv.λw.u w (vw)))(λx.x x)(λx.x x) will lead to an inconsistent system whereby every term can be equated to any other term. The implication of this fact is also that general λ-term equivalence is an undecidable problem and bears a direct correspondence to the Halting problem and Turing Machines. There exist (partial) solutions for this problem in terms of a strictly stronger notion of equivalence based on -reduction, whereby -reductions are only allowed to occur in certain positions within a λ-term. More specifically, this involves identifying what is called a head redex and then limiting -reduction up to head normal forms. This allows us to differentiate between more terms, more precisely, between different classes of divergent terms. In this course we shall not delve further into this aspect of the topic but interested readers are encouraged to consult the reference literature stated at the beginning of the course Reduction Strategies As we already saw, -reductions as defined in Def. 66 are agnostic as to which redex to choose to evaluate when multiple redex instances occur in a term. This leads to a non-deterministic specification of reduction which is problematic for implementations. Functional Programming languages (which are directly inspired by the λ-calculus) often limit themselves to a reduction strategy, thereby making reductions (and the behaviour of their programs) deterministic. Broadly speaking, these reduction strategies are usually partitioned into two classes, often refered to as eager strategies and lazy strategies. Implementations based on eager reduction strategies such as Standard-ML and OCaml usually prioritise efficiency. More specifically, in function applications arguments are eagerly evaluated before being substituted in function bodies. One such strategy is the Call-by-Value strategy. It is based on the partitioning of λ-terms into values and non-value terms and requires that arguments are evaluated down to values before they are substituted in function bodies. 14 Call-by-Value reduction is formalised through Def. 78 (whereby values consist of either variables or abstractions) and the rules in Def. 79 on Slide 100. Implementations based on lazy reduction strategies such as Haskell prioritise the clean theoretical programming model of the λ-calculus with its associated properties such as normalisation (see Thm. 76). In such strategies arguments are not evaluated before being substituted in function bodies. Perhaps the simplest lazy strategy from a theoretical standpoint is the Call-by-Name strategy. In fact, it does not rely on the 14 In standard programming languages, values are assumed to be in normal form. 79

7 Call-by-Value Reduction Definition 78 (Call-by-Value Terms and Values). M,N ::= x MN λx.m V,U ::= x λx.m Definition 79 (Call-by-Value Reduction). M cbv L N cbv L (λx.m) V cbv M{x := V } MN cbv LN VN cbv VL Slide 100 definition of values in the calculus and can be specified by the two rules on Slide 101. As in normal-order reduction, the Call-by-Name strategy is inefficient because it replicates the reductions in unevaluated arguments substituted in abstraction bodies. 15 There exist more complex lazy evaluation strategies that are not inefficient. One such example is the Call-by-Need reduction strategy which reduces function arguments at most once; this way it attains the best of both Call-by-Value and Call-by-Name strategies. Languages such as Haskell adopt a Call-by-Need reduction strategy. Call-by-Name Reduction Definition 80 (Call-by-Name Reduction). (λx.m) N cbn M{x := N} M cbn MN cbn L LN Slide 101 It is worth highlighting the fact that different reduction strategies yields different equivalence relations. In particular for every reductions strategy we can seen so far, we can define three variants of the evaluation reduction, namely = no,= cbv and = cbn, by adapting the relation defined in Definition 68 on Slide 93 and replacing the first rule by the following rules respectively (the rest of the rules carry over unchanged 15 The two reduction strategies more or less correspond. In fact they are both optimal with respect to term normalisation. The only difference is that normal-order reduction reduces under abstractions whereas Call-by-Name does not. Thus, for example if we evaluate λy.ω under normal-order reduction we reduce forever whereas Call-by-Name stops reducing at λy.ω. 80

8 with the exception of the congurence rules 16 ): M no N M = no N M cbv N M = cbv N M cbn N M = cbn N These three evaluations can then be used to define 3 equivalence relations, i.e., no, cbv and cbn respectively. Notice that the notion of a normal form under = no is different from the one for both = cbv and = cbn, since the latter two reduction strategies do not evaluate under λ-abstractions Exercises 1. Argue why the diamond property does not hold for single-step -reductions, using a similar argument to the one used in Example 71, but instead using the term (λx.y)((λz.z)(λw.w)). 2. Show that (λx.x)m M and (λx.x)(λy.y)m M using the rules on Slide Show that (λx.x)m = M and (λx.x)(λy.y)m = M using the rules on Slide Derive (λz.λx.zx) λy.x = λw.x using the rules on Slide Prove that, for all n, M n N implies. (Hint: use induction on n, the number of -reductions used to reach N from M.) 6. Prove that (λx.(λz.z)x) λy.y (λx.λz.x) (λy.y) w. 7. Evaluate the term (λx.λy.x x) ((λz.z)(λz.z)) using normal-order reduction, Call-by-Value and Callby-Name strategies. 16 In this case, the congurence rules are M = M N = N λx.m = λx.n MN = M N 81

Review. Principles of Programming Languages. Equality. The Diamond Property. The Church-Rosser Theorem. Corollaries. CSE 230: Winter 2007

Review. Principles of Programming Languages. Equality. The Diamond Property. The Church-Rosser Theorem. Corollaries. CSE 230: Winter 2007 CSE 230: Winter 2007 Principles of Programming Languages Lecture 12: The λ-calculus Ranjit Jhala UC San Diego Review The lambda calculus is a calculus of functions: e := x λx. e e 1 e 2 Several evaluation

More information

Origin in Mathematical Logic

Origin in Mathematical Logic Lambda Calculus Origin in Mathematical Logic Foundation of mathematics was very much an issue in the early decades of 20th century. Cantor, Frege, Russel s Paradox, Principia Mathematica, NBG/ZF Origin

More information

Models of Computation,

Models of Computation, Models of Computation, 2010 1 The Lambda Calculus A brief history of mathematical notation. Our notation for numbers was introduced in the Western World in the Renaissance (around 1200) by people like

More information

The Lambda-Calculus Reduction System

The Lambda-Calculus Reduction System 2 The Lambda-Calculus Reduction System 2.1 Reduction Systems In this section we present basic notions on reduction systems. For a more detailed study see [Klop, 1992, Dershowitz and Jouannaud, 1990]. Definition

More information

Lecture 3. Lambda calculus. Iztok Savnik, FAMNIT. October, 2015.

Lecture 3. Lambda calculus. Iztok Savnik, FAMNIT. October, 2015. Lecture 3 Lambda calculus Iztok Savnik, FAMNIT October, 2015. 1 Literature Henk Barendregt, Erik Barendsen, Introduction to Lambda Calculus, March 2000. Lambda calculus Leibniz had as ideal the following

More information

Programming Languages

Programming Languages CSE 230: Winter 2010 Principles of Programming Languages Lecture 10: Programming in λ-calculusc l l Ranjit Jhala UC San Diego Review The lambda calculus is a calculus of functions: e := x λx. e e 1 e 2

More information

2.6 Variations on Turing Machines

2.6 Variations on Turing Machines 2.6 Variations on Turing Machines Before we proceed further with our exposition of Turing Machines as language acceptors, we will consider variations on the basic definition of Slide 10 and discuss, somewhat

More information

Programming Language Concepts: Lecture 18

Programming Language Concepts: Lecture 18 Programming Language Concepts: Lecture 18 Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in http://www.cmi.ac.in/~madhavan/courses/pl2009 PLC 2009, Lecture 18, 30 March 2009 One step reduction

More information

Type Systems. Today. 1. What is the Lambda Calculus. 1. What is the Lambda Calculus. Lecture 2 Oct. 27th, 2004 Sebastian Maneth

Type Systems. Today. 1. What is the Lambda Calculus. 1. What is the Lambda Calculus. Lecture 2 Oct. 27th, 2004 Sebastian Maneth Today 1. What is the Lambda Calculus? Type Systems 2. Its Syntax and Semantics 3. Church Booleans and Church Numerals 4. Lazy vs. Eager Evaluation (call-by-name vs. call-by-value) Lecture 2 Oct. 27th,

More information

Type Systems. Lecture 2 Oct. 27th, 2004 Sebastian Maneth.

Type Systems. Lecture 2 Oct. 27th, 2004 Sebastian Maneth. Type Systems Lecture 2 Oct. 27th, 2004 Sebastian Maneth http://lampwww.epfl.ch/teaching/typesystems/2004 Today 1. What is the Lambda Calculus? 2. Its Syntax and Semantics 3. Church Booleans and Church

More information

Lecture 2. Lambda calculus. Iztok Savnik, FAMNIT. March, 2018.

Lecture 2. Lambda calculus. Iztok Savnik, FAMNIT. March, 2018. Lecture 2 Lambda calculus Iztok Savnik, FAMNIT March, 2018. 1 Literature Henk Barendregt, Erik Barendsen, Introduction to Lambda Calculus, March 2000. Lambda calculus Leibniz had as ideal the following

More information

Call-by-value non-determinism in a linear logic type discipline

Call-by-value non-determinism in a linear logic type discipline Call-by-value non-determinism in a linear logic type discipline Alejandro Díaz-Caro? Giulio Manzonetto Université Paris-Ouest & INRIA LIPN, Université Paris 13 Michele Pagani LIPN, Université Paris 13

More information

Formal Methods Lecture 6. (B. Pierce's slides for the book Types and Programming Languages )

Formal Methods Lecture 6. (B. Pierce's slides for the book Types and Programming Languages ) Formal Methods Lecture 6 (B. Pierce's slides for the book Types and Programming Languages ) Programming in the Lambda-Calculus, Continued Testing booleans Recall: tru = λt. λf. t fls = λt. λf. f We showed

More information

Origin in Mathematical Logic

Origin in Mathematical Logic Lambda Calculus Origin in Mathematical Logic Foundation of mathematics was very much an issue in the early decades of 20th century. Cantor, Frege, Russel s Paradox, Principia Mathematica, NBG/ZF The Combinatory

More information

Computational Soundness of a Call by Name Calculus of Recursively-scoped Records. UMM Working Papers Series, Volume 2, Num. 3.

Computational Soundness of a Call by Name Calculus of Recursively-scoped Records. UMM Working Papers Series, Volume 2, Num. 3. Computational Soundness of a Call by Name Calculus of Recursively-scoped Records. UMM Working Papers Series, Volume 2, Num. 3. Elena Machkasova Contents 1 Introduction and Related Work 1 1.1 Introduction..............................

More information

Lambda-Calculus (I) 2nd Asian-Pacific Summer School on Formal Methods Tsinghua University, August 23, 2010

Lambda-Calculus (I) 2nd Asian-Pacific Summer School on Formal Methods Tsinghua University, August 23, 2010 Lambda-Calculus (I) jean-jacques.levy@inria.fr 2nd Asian-Pacific Summer School on Formal Methods Tsinghua University, August 23, 2010 Plan computation models lambda-notation bound variables conversion

More information

Simply Typed λ-calculus

Simply Typed λ-calculus Simply Typed λ-calculus Lecture 1 Jeremy Dawson The Australian National University Semester 2, 2017 Jeremy Dawson (ANU) COMP4630,Lecture 1 Semester 2, 2017 1 / 23 A Brief History of Type Theory First developed

More information

Lambda calculus L9 103

Lambda calculus L9 103 Lambda calculus L9 103 Notions of computability L9 104 Church (1936): λ-calculus Turing (1936): Turing machines. Turing showed that the two very different approaches determine the same class of computable

More information

Probabilistic Applicative Bisimulation and Call-by-Value Lam

Probabilistic Applicative Bisimulation and Call-by-Value Lam Probabilistic Applicative and Call-by-Value Lambda Calculi Joint work with Ugo Dal Lago ENS Lyon February 9, 2014 Probabilistic Applicative and Call-by-Value Lam Introduction Fundamental question: when

More information

(a) Definition of TMs. First Problem of URMs

(a) Definition of TMs. First Problem of URMs Sec. 4: Turing Machines First Problem of URMs (a) Definition of the Turing Machine. (b) URM computable functions are Turing computable. (c) Undecidability of the Turing Halting Problem That incrementing

More information

Formal Methods Lecture 6. (B. Pierce's slides for the book Types and Programming Languages )

Formal Methods Lecture 6. (B. Pierce's slides for the book Types and Programming Languages ) Formal Methods Lecture 6 (B. Pierce's slides for the book Types and Programming Languages ) This Saturday, 10 November 2018, room 335 (FSEGA), we will recover the following activities: 1 Formal Methods

More information

The Permutative λ-calculus

The Permutative λ-calculus The Permutative λ-calculus Beniamino Accattoli 1 Delia Kesner 2 INRIA and LIX (École Polytechnique) PPS (CNRS and Université Paris-Diderot) 1 / 34 Outline 1 λ-calculus 2 Permutative extension 3 Confluence

More information

The tape of M. Figure 3: Simulation of a Turing machine with doubly infinite tape

The tape of M. Figure 3: Simulation of a Turing machine with doubly infinite tape UG3 Computability and Intractability (2009-2010): Note 4 4. Bells and whistles. In defining a formal model of computation we inevitably make a number of essentially arbitrary design decisions. These decisions

More information

Bisimulation and coinduction in higher-order languages

Bisimulation and coinduction in higher-order languages Bisimulation and coinduction in higher-order languages Davide Sangiorgi Focus Team, University of Bologna/INRIA ICE, Florence, June 2013 Bisimulation Behavioural equality One of the most important contributions

More information

λ-terms, M Some random examples of λ-terms: L9 105

λ-terms, M Some random examples of λ-terms: L9 105 λ-terms, M are built up from a given, countable collection of variables x, y, z,... by two operations for forming λ-terms: λ-abstraction: (λx.m) (where x is a variable and M is a λ-term) application: (M

More information

Introduction to Turing Machines. Reading: Chapters 8 & 9

Introduction to Turing Machines. Reading: Chapters 8 & 9 Introduction to Turing Machines Reading: Chapters 8 & 9 1 Turing Machines (TM) Generalize the class of CFLs: Recursively Enumerable Languages Recursive Languages Context-Free Languages Regular Languages

More information

Categories, Proofs and Programs

Categories, Proofs and Programs Categories, Proofs and Programs Samson Abramsky and Nikos Tzevelekos Lecture 4: Curry-Howard Correspondence and Cartesian Closed Categories In A Nutshell Logic Computation 555555555555555555 5 Categories

More information

summer school Logic and Computation Goettingen, July 24-30, 2016

summer school Logic and Computation Goettingen, July 24-30, 2016 Università degli Studi di Torino summer school Logic and Computation Goettingen, July 24-30, 2016 A bit of history Alonzo Church (1936) The as formal account of computation. Proof of the undecidability

More information

Lecture 11: Gödel s Second Incompleteness Theorem, and Tarski s Theorem

Lecture 11: Gödel s Second Incompleteness Theorem, and Tarski s Theorem Lecture 11: Gödel s Second Incompleteness Theorem, and Tarski s Theorem Valentine Kabanets October 27, 2016 1 Gödel s Second Incompleteness Theorem 1.1 Consistency We say that a proof system P is consistent

More information

Models of computation

Models of computation Lambda-Calculus (I) jean-jacques.levy@inria.fr 2nd Asian-Pacific Summer School on Formal ethods Tsinghua University, August 23, 2010 Plan computation models lambda-notation bound variables odels of computation

More information

λ-terms, M Some random examples of λ-terms: L9 105

λ-terms, M Some random examples of λ-terms: L9 105 λ-terms, M L9 105 are built up from a given, countable collection of variables x, y, z,... by two operations for forming λ-terms: λ-abstraction: (λx.m) (where x is a variable and M is a λ-term) application:

More information

λ Slide 1 Content Exercises from last time λ-calculus COMP 4161 NICTA Advanced Course Advanced Topics in Software Verification

λ Slide 1 Content Exercises from last time λ-calculus COMP 4161 NICTA Advanced Course Advanced Topics in Software Verification Content COMP 4161 NICTA Advanced Course Advanced Topics in Software Verification Toby Murray, June Andronick, Gerwin Klein λ Slide 1 Intro & motivation, getting started [1] Foundations & Principles Lambda

More information

Rewriting, Explicit Substitutions and Normalisation

Rewriting, Explicit Substitutions and Normalisation Rewriting, Explicit Substitutions and Normalisation XXXVI Escola de Verão do MAT Universidade de Brasilia Part 1/3 Eduardo Bonelli LIFIA (Fac. de Informática, UNLP, Arg.) and CONICET eduardo@lifia.info.unlp.edu.ar

More information

Advanced Lambda Calculus. Henk Barendregt & Giulio Manzonetto ICIS Faculty of Science Radboud University Nijmegen, The Netherlands

Advanced Lambda Calculus. Henk Barendregt & Giulio Manzonetto ICIS Faculty of Science Radboud University Nijmegen, The Netherlands Advanced Lambda Calculus Henk Barendregt & Giulio Manzonetto ICIS Faculty of Science Radboud University Nijmegen, The Netherlands Form of the course Ordinary lecture Seminar form Exam: working out an exercise

More information

Alonzo Church ( ) Lambda Calculus. λ-calculus : syntax. Grammar for terms : Inductive denition for λ-terms

Alonzo Church ( ) Lambda Calculus. λ-calculus : syntax. Grammar for terms : Inductive denition for λ-terms Alonzo Church (1903-1995) Lambda Calculus 2 λ-calculus : syntax Grammar for terms : t, u ::= x (variable) t u (application) λx.t (abstraction) Notation : Application is left-associative so that t 1 t 2...

More information

Proving Completeness for Nested Sequent Calculi 1

Proving Completeness for Nested Sequent Calculi 1 Proving Completeness for Nested Sequent Calculi 1 Melvin Fitting abstract. Proving the completeness of classical propositional logic by using maximal consistent sets is perhaps the most common method there

More information

Simply Typed Lambda-Calculi (II)

Simply Typed Lambda-Calculi (II) THEORY AND PRACTICE OF FUNCTIONAL PROGRAMMING Simply Typed Lambda-Calculi (II) Dr. ZHANG Yu Institute of Software, Chinese Academy of Sciences Fall term, 2011 GUCAS, Beijing Introduction PCF Programming

More information

Introduction to Turing Machines

Introduction to Turing Machines Introduction to Turing Machines Deepak D Souza Department of Computer Science and Automation Indian Institute of Science, Bangalore. 12 November 2015 Outline 1 Turing Machines 2 Formal definitions 3 Computability

More information

What are the recursion theoretic properties of a set of axioms? Understanding a paper by William Craig Armando B. Matos

What are the recursion theoretic properties of a set of axioms? Understanding a paper by William Craig Armando B. Matos What are the recursion theoretic properties of a set of axioms? Understanding a paper by William Craig Armando B. Matos armandobcm@yahoo.com February 5, 2014 Abstract This note is for personal use. It

More information

CS411 Notes 3 Induction and Recursion

CS411 Notes 3 Induction and Recursion CS411 Notes 3 Induction and Recursion A. Demers 5 Feb 2001 These notes present inductive techniques for defining sets and subsets, for defining functions over sets, and for proving that a property holds

More information

Computation Theory, L 9 116/171

Computation Theory, L 9 116/171 Definition. A partial function f is partial recursive ( f PR) ifitcanbebuiltupinfinitelymanysteps from the basic functions by use of the operations of composition, primitive recursion and minimization.

More information

CS 4110 Programming Languages & Logics. Lecture 16 Programming in the λ-calculus

CS 4110 Programming Languages & Logics. Lecture 16 Programming in the λ-calculus CS 4110 Programming Languages & Logics Lecture 16 Programming in the λ-calculus 30 September 2016 Review: Church Booleans 2 We can encode TRUE, FALSE, and IF, as: TRUE λx. λy. x FALSE λx. λy. y IF λb.

More information

Sub-λ-calculi, Classified

Sub-λ-calculi, Classified Electronic Notes in Theoretical Computer Science 203 (2008) 123 133 www.elsevier.com/locate/entcs Sub-λ-calculi, Classified François-Régis Sinot Universidade do Porto (DCC & LIACC) Rua do Campo Alegre

More information

Lambda-Calculus (cont): Fixpoints, Naming. Lecture 10 CS 565 2/10/08

Lambda-Calculus (cont): Fixpoints, Naming. Lecture 10 CS 565 2/10/08 Lambda-Calculus (cont): Fixpoints, Naming Lecture 10 CS 565 2/10/08 Recursion and Divergence Consider the application: Ω ((λ x. (x x)) (λ x. (x x))) Ω evaluates to itself in one step. It has no normal

More information

Small families. (at INRIA with Gérard and in the historical λ-calculus) Jean-Jacques Lévy

Small families. (at INRIA with Gérard and in the historical λ-calculus) Jean-Jacques Lévy Small families (at INRIA with Gérard and in the historical λ-calculus) Jean-Jacques Lévy INRIA Rocquencourt and Microsoft Research-INRIA Joint Centre June 22, 2007 caml years coq sixty years is 31,557,600

More information

Typing λ-terms. Types. Typed λ-terms. Base Types. The Typing Relation. Advanced Formal Methods. Lecture 3: Simply Typed Lambda calculus

Typing λ-terms. Types. Typed λ-terms. Base Types. The Typing Relation. Advanced Formal Methods. Lecture 3: Simply Typed Lambda calculus Course 2D1453, 200607 Advanced Formal Methods Lecture 3: Simply Typed Lambda calculus Mads Dam KTH/CSC Some material from B. Pierce: TAPL + some from G. Klein, NICTA Typing λterms The uptyped λcalculus

More information

Type Systems Winter Semester 2006

Type Systems Winter Semester 2006 Type Systems Winter Semester 2006 Week 5 November 15 November 15, 2006 - version 1.0 Programming in the Lambda-Calculus, Continued Testing booleans Recall: tru = λt. λf. t fls = λt. λf. f We showed last

More information

Lecture 3. 1 Terminology. 2 Non-Deterministic Space Complexity. Notes on Complexity Theory: Fall 2005 Last updated: September, 2005.

Lecture 3. 1 Terminology. 2 Non-Deterministic Space Complexity. Notes on Complexity Theory: Fall 2005 Last updated: September, 2005. Notes on Complexity Theory: Fall 2005 Last updated: September, 2005 Jonathan Katz Lecture 3 1 Terminology For any complexity class C, we define the class coc as follows: coc def = { L L C }. One class

More information

Decidability and Undecidability

Decidability and Undecidability Decidability and Undecidability Major Ideas from Last Time Every TM can be converted into a string representation of itself. The encoding of M is denoted M. The universal Turing machine U TM accepts an

More information

The Call-by-Need Lambda Calculus

The Call-by-Need Lambda Calculus The Call-by-Need Lambda Calculus John Maraist, Martin Odersky School of Computer and Information Science, University of South Australia Warrendi Road, The Levels, Adelaide, South Australia 5095 fmaraist,oderskyg@cis.unisa.edu.au

More information

Completeness Theorems and λ-calculus

Completeness Theorems and λ-calculus Thierry Coquand Apr. 23, 2005 Content of the talk We explain how to discover some variants of Hindley s completeness theorem (1983) via analysing proof theory of impredicative systems We present some remarks

More information

Traditional and Non Traditional lambda calculi

Traditional and Non Traditional lambda calculi Strategies July 2009 Strategies Syntax Semantics Manipulating Expressions Variables and substitutions Free and bound variables Subterms and substitution Grafting and substitution Ordered list of variables

More information

The Turing machine model of computation

The Turing machine model of computation The Turing machine model of computation For most of the remainder of the course we will study the Turing machine model of computation, named after Alan Turing (1912 1954) who proposed the model in 1936.

More information

Turing Machines, diagonalization, the halting problem, reducibility

Turing Machines, diagonalization, the halting problem, reducibility Notes on Computer Theory Last updated: September, 015 Turing Machines, diagonalization, the halting problem, reducibility 1 Turing Machines A Turing machine is a state machine, similar to the ones we have

More information

Introduction to λ-calculus

Introduction to λ-calculus p.1/65 Introduction to λ-calculus Ken-etsu FUJITA fujita@cs.gunma-u.ac.jp http://www.comp.cs.gunma-u.ac.jp/ fujita/ Department of Computer Science Gunma University :Church 32, 36, 40; Curry 34 1. Universal

More information

Mathematical Logic IV

Mathematical Logic IV 1 Introduction Mathematical Logic IV The Lambda Calculus; by H.P. Barendregt(1984) Part One: Chapters 1-5 The λ-calculus (a theory denoted λ) is a type free theory about functions as rules, rather that

More information

Turing Machines Part II

Turing Machines Part II Turing Machines Part II Problem Set Set Five Five due due in in the the box box up up front front using using a late late day. day. Hello Hello Condensed Slide Slide Readers! Readers! This This lecture

More information

Creative Objectivism, a powerful alternative to Constructivism

Creative Objectivism, a powerful alternative to Constructivism Creative Objectivism, a powerful alternative to Constructivism Copyright c 2002 Paul P. Budnik Jr. Mountain Math Software All rights reserved Abstract It is problematic to allow reasoning about infinite

More information

Informal Statement Calculus

Informal Statement Calculus FOUNDATIONS OF MATHEMATICS Branches of Logic 1. Theory of Computations (i.e. Recursion Theory). 2. Proof Theory. 3. Model Theory. 4. Set Theory. Informal Statement Calculus STATEMENTS AND CONNECTIVES Example

More information

Five Basic Concepts of. Axiomatic Rewriting Theory

Five Basic Concepts of. Axiomatic Rewriting Theory Five Basic Concepts of Axiomatic Rewriting Theory Paul-André Melliès Institut de Recherche en Informatique Fondamentale (IRIF) CNRS & Université Paris Denis Diderot 5th International Workshop on Confluence

More information

Equivalence of Algebraic λ -calculi extended abstract

Equivalence of Algebraic λ -calculi extended abstract Equivalence of Algebraic λ -calculi extended abstract Alejandro Díaz-Caro LIG, Université de Grenoble, France Alejandro.Diaz-Caro@imag.fr Christine Tasson CEA-LIST, MeASI, France Christine.Tasson@cea.fr

More information

A framework based on implementation relations for implementing LOTOS specifications

A framework based on implementation relations for implementing LOTOS specifications Published in: Computer Networks and ISDN Systems, 25 (1992), 23-41 A framework based on implementation relations for implementing LOTOS specifications Guy Leduc Research Associate of the National Fund

More information

FIXED POINTS AND EXTENSIONALITY IN TYPED FUNCTIONAL PROGRAMMING LANGUAGES

FIXED POINTS AND EXTENSIONALITY IN TYPED FUNCTIONAL PROGRAMMING LANGUAGES FIXED POINTS AND EXTENSIONALITY IN TYPED FUNCTIONAL PROGRAMMING LANGUAGES a dissertation submitted to the department of computer science and the committee on graduate studies of stanford university in

More information

Reducibility proofs in λ-calculi with intersection types

Reducibility proofs in λ-calculi with intersection types Reducibility proofs in λ-calculi with intersection types Fairouz Kamareddine, Vincent Rahli, and J. B. Wells ULTRA group, Heriot-Watt University, http://www.macs.hw.ac.uk/ultra/ March 14, 2008 Abstract

More information

Theory of Computation (IX) Yijia Chen Fudan University

Theory of Computation (IX) Yijia Chen Fudan University Theory of Computation (IX) Yijia Chen Fudan University Review The Definition of Algorithm Polynomials and their roots A polynomial is a sum of terms, where each term is a product of certain variables and

More information

COMP6463: λ-calculus

COMP6463: λ-calculus COMP6463: λ-calculus 1. Basics Michael Norrish Michael.Norrish@nicta.com.au Canberra Research Lab., NICTA Semester 2, 2015 Outline Introduction Lambda Calculus Terms Alpha Equivalence Substitution Dynamics

More information

Lecture Notes On THEORY OF COMPUTATION MODULE -1 UNIT - 2

Lecture Notes On THEORY OF COMPUTATION MODULE -1 UNIT - 2 BIJU PATNAIK UNIVERSITY OF TECHNOLOGY, ODISHA Lecture Notes On THEORY OF COMPUTATION MODULE -1 UNIT - 2 Prepared by, Dr. Subhendu Kumar Rath, BPUT, Odisha. UNIT 2 Structure NON-DETERMINISTIC FINITE AUTOMATA

More information

Lecture 2: Self-interpretation in the Lambda-calculus

Lecture 2: Self-interpretation in the Lambda-calculus Lecture 2: Self-interpretation in the Lambda-calculus H. Geuvers Nijmegen, NL 21st Estonian Winter School in Computer Science Winter 2016 H. Geuvers - Radboud Univ. EWSCS 2016 Self-interpretation in λ-calculus

More information

2. Syntactic Congruences and Monoids

2. Syntactic Congruences and Monoids IAS/PCMI Summer Session 2000 Clay Mathematics Undergraduate Program Advanced Course on Computational Complexity Lecture 3: Algebra and Languages David Mix Barrington and Alexis Maciel July 19, 2000 1.

More information

Peano Arithmetic. CSC 438F/2404F Notes (S. Cook) Fall, Goals Now

Peano Arithmetic. CSC 438F/2404F Notes (S. Cook) Fall, Goals Now CSC 438F/2404F Notes (S. Cook) Fall, 2008 Peano Arithmetic Goals Now 1) We will introduce a standard set of axioms for the language L A. The theory generated by these axioms is denoted PA and called Peano

More information

CSE355 SUMMER 2018 LECTURES TURING MACHINES AND (UN)DECIDABILITY

CSE355 SUMMER 2018 LECTURES TURING MACHINES AND (UN)DECIDABILITY CSE355 SUMMER 2018 LECTURES TURING MACHINES AND (UN)DECIDABILITY RYAN DOUGHERTY If we want to talk about a program running on a real computer, consider the following: when a program reads an instruction,

More information

A call-by-name lambda-calculus machine

A call-by-name lambda-calculus machine A call-by-name lambda-calculus machine Jean-Louis Krivine University Paris VII, C.N.R.S. 2 place Jussieu 75251 Paris cedex 05 (krivine@pps.jussieu.fr) Introduction We present, in this paper, a particularly

More information

Lecture 4 : Quest for Structure in Counting Problems

Lecture 4 : Quest for Structure in Counting Problems CS6840: Advanced Complexity Theory Jan 10, 2012 Lecture 4 : Quest for Structure in Counting Problems Lecturer: Jayalal Sarma M.N. Scribe: Dinesh K. Theme: Between P and PSPACE. Lecture Plan:Counting problems

More information

3. The λ-calculus and Implication

3. The λ-calculus and Implication 3. The λ-calculus and Implication (a) (b) (c) (d) (e) (f) The untyped λ-calculus. The typed λ-calculus. The λ-calculus in Agda. Logic with Implication Implicational Logic in Agda. More on the typed λ-calculus.

More information

arxiv: v1 [cs.lo] 29 May 2014

arxiv: v1 [cs.lo] 29 May 2014 An Introduction to the Clocked Lambda Calculus Jörg Endrullis, Dimitri Hendriks, Jan Willem Klop, and Andrew Polonsky VU University Amsterdam, The Netherlands Abstract We give a brief introduction to the

More information

Introduction to lambda calculus Part 2

Introduction to lambda calculus Part 2 Introduction to lambda calculus Part 2 Antti-Juhani Kaijanaho 2017-01-24... 1 Untyped lambda calculus 1.1 Syntax... x, y, z Var t, u Term t, u ::= x t u λx t... In this document, I will be using the following

More information

Church s undecidability result

Church s undecidability result Church s undecidability result Alan Turing Birth Centennial Talk at IIT Bombay, Mumbai Joachim Breitner April 21, 2011 Welcome, and thank you for the invitation to speak about Church s lambda calculus

More information

Simply Typed λ-calculus

Simply Typed λ-calculus Simply Typed λ-calculus Lecture 2 Jeremy Dawson The Australian National University Semester 2, 2017 Jeremy Dawson (ANU) COMP4630,Lecture 2 Semester 2, 2017 1 / 19 Outline Properties of Curry type system:

More information

Introduction to Logic in Computer Science: Autumn 2006

Introduction to Logic in Computer Science: Autumn 2006 Introduction to Logic in Computer Science: Autumn 2006 Ulle Endriss Institute for Logic, Language and Computation University of Amsterdam Ulle Endriss 1 Plan for Today Today s class will be an introduction

More information

Madhavan Mukund Chennai Mathematical Institute

Madhavan Mukund Chennai Mathematical Institute AN INTRODUCTION TO LOGIC Madhavan Mukund Chennai Mathematical Institute E-mail: madhavan@cmiacin Abstract ese are lecture notes for an introductory course on logic aimed at graduate students in Computer

More information

Solutions to Exercises. Solution to Exercise 2.4. Solution to Exercise 2.5. D. Sabel and M. Schmidt-Schauß 1

Solutions to Exercises. Solution to Exercise 2.4. Solution to Exercise 2.5. D. Sabel and M. Schmidt-Schauß 1 D. Sabel and M. Schmidt-Schauß 1 A Solutions to Exercises Solution to Exercise 2.4 We calculate the sets of free and bound variables: FV ((λy.(y x)) (λx.(x y)) (λz.(z x y))) = FV ((λy.(y x)) (λx.(x y)))

More information

Computational Models: Class 3

Computational Models: Class 3 Computational Models: Class 3 Benny Chor School of Computer Science Tel Aviv University November 2, 2015 Based on slides by Maurice Herlihy, Brown University, and modifications by Iftach Haitner and Yishay

More information

Lazy Strong Normalization

Lazy Strong Normalization Lazy Strong Normalization Luca Paolini 1,2 Dipartimento di Informatica Università di Torino (ITALIA) Elaine Pimentel 1,2 Departamento de Matemática Universidade Federal de Minas Gerais (BRASIL) Dipartimento

More information

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska LECTURE 3 CHAPTER 1 SETS, RELATIONS, and LANGUAGES 6. Closures and Algorithms 7. Alphabets and Languages 8. Finite Representation

More information

Equivalent Forms of the Axiom of Infinity

Equivalent Forms of the Axiom of Infinity Equivalent Forms of the Axiom of Infinity Axiom of Infinity 1. There is a set that contains each finite ordinal as an element. The Axiom of Infinity is the axiom of Set Theory that explicitly asserts that

More information

Equivalent Computers. Lecture 39: Lambda Calculus. Lambda Calculus. What is Calculus? Real Definition. Why?

Equivalent Computers. Lecture 39: Lambda Calculus. Lambda Calculus. What is Calculus? Real Definition. Why? #,, - Lecture 39: Lambda Calculus Equivalent Computers z z z... term = variable term term (term) λ variable. term λy. M α λv. (M [y α v]) where v does not occur in M. (λx. M)N β M [ x α N ] Turing Machine

More information

NO SOLVABLE LAMBDA-VALUE TERM LEFT BEHIND

NO SOLVABLE LAMBDA-VALUE TERM LEFT BEHIND Logical Methods in Computer Science Vol. 12(2:12)2016, pp. 1 43 www.lmcs-online.org Submitted Nov. 19, 2015 Published Jun. 28, 2016 NO SOLVABLE LAMBDA-VALUE TERM LEFT BEHIND a Reykjavík University, Iceland

More information

1. Object Calculus. Object calculus is to OO languages what lambda calculus is to functional languages

1. Object Calculus. Object calculus is to OO languages what lambda calculus is to functional languages 1. Object Calculus In this section we will introduce a calculus of objects that gives a simple but powerful mathematical model to study object based languages. Object calculus is to OO languages what lambda

More information

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

Lambda Calculus. Andrés Sicard-Ramírez. Semester Universidad EAFIT Lambda Calculus Andrés Sicard-Ramírez Universidad EAFIT Semester 2010-2 Bibliography Textbook: Hindley, J. R. and Seldin, J. (2008). Lambda-Calculus and Combinators. An Introduction. Cambridge University

More information

Type Systems Winter Semester 2006

Type Systems Winter Semester 2006 Type Systems Winter Semester 2006 Week 7 November 29 November 29, 2006 - version 1.0 Plan PREVIOUSLY: 1. type safety as progress and preservation 2. typed arithmetic expressions 3. simply typed lambda

More information

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska LECTURE 13 CHAPTER 4 TURING MACHINES 1. The definition of Turing machine 2. Computing with Turing machines 3. Extensions of Turing

More information

Let us first give some intuitive idea about a state of a system and state transitions before describing finite automata.

Let us first give some intuitive idea about a state of a system and state transitions before describing finite automata. Finite Automata Automata (singular: automation) are a particularly simple, but useful, model of computation. They were initially proposed as a simple model for the behavior of neurons. The concept of a

More information

Functional Programming with Coq. Yuxin Deng East China Normal University

Functional Programming with Coq. Yuxin Deng East China Normal University Functional Programming with Coq Yuxin Deng East China Normal University http://basics.sjtu.edu.cn/ yuxin/ September 10, 2017 Functional Programming Y. Deng@ECNU 1 Reading materials 1. The Coq proof assistant.

More information

Time-bounded computations

Time-bounded computations Lecture 18 Time-bounded computations We now begin the final part of the course, which is on complexity theory. We ll have time to only scratch the surface complexity theory is a rich subject, and many

More information

A probabilistic lambda calculus - Some preliminary investigations

A probabilistic lambda calculus - Some preliminary investigations A probabilistic lambda calculus - Some preliminary investigations Ugo Dal Lago, Margherita Zorzi Università di Bologna, Università di Verona June, 9-11, 2010, Torino Introduction: Λ P We present some results

More information

Lecture 4. 1 Circuit Complexity. Notes on Complexity Theory: Fall 2005 Last updated: September, Jonathan Katz

Lecture 4. 1 Circuit Complexity. Notes on Complexity Theory: Fall 2005 Last updated: September, Jonathan Katz Notes on Complexity Theory: Fall 2005 Last updated: September, 2005 Jonathan Katz Lecture 4 1 Circuit Complexity Circuits are directed, acyclic graphs where nodes are called gates and edges are called

More information

Most General computer?

Most General computer? Turing Machines Most General computer? DFAs are simple model of computation. Accept only the regular languages. Is there a kind of computer that can accept any language, or compute any function? Recall

More information

The Greek Alphabet. (a) The Untyped λ-calculus

The Greek Alphabet. (a) The Untyped λ-calculus 3. The λ-calculus and Implication Greek Letters (a) The untyped λ-calculus. (b) The typed λ-calculus. (c) The λ-calculus in Agda. (d) Logic with Implication (e) Implicational Logic in Agda. (f) More on

More information

The halting problem is decidable on a set of asymptotic probability one

The halting problem is decidable on a set of asymptotic probability one The halting problem is decidable on a set of asymptotic probability one Joel David Hamkins The City University of New York http://jdh.hamkins.org Alexei Miasnikov The City University of New York http://www.cs.gc.cuny.edu/

More information

Programming Languages and Types

Programming Languages and Types Programming Languages and Types Klaus Ostermann based on slides by Benjamin C. Pierce Where we re going Type Systems... Type systems are one of the most fascinating and powerful aspects of programming

More information