λ S : A Lambda Calculus with Side-effects

Size: px
Start display at page:

Download "λ S : A Lambda Calculus with Side-effects"

Transcription

1 L14-1 λ S : A Lambda Calculus with Side-effects delivered by Jacob Schwartz Laboratory for Computer Science M.I.T. Lecture 14 M-Structures and Barriers L14-2 Some problems cannot be expressed functionally Input / Output Gensym: Generate unique identifiers Gathering statistics Graph algorithms Non-deterministic algorithms Once side-effects are introduced, barriers are needed to control the execution of some operations The λ S calculus λ C + side-effects and barriers

2 The λ B Calculus : λ C + Barriers L14-3 Even adding barriers to a purely functional calculus (without side-effects) is significant Observability of Termination Using λ B as a stepping stone to λ S allows us to analyze the semantic effects of barriers separate from side-effects, simplifying the analysis λ S = λ B + side-effects Outline L14-4 Background The λ C calculus: λ + letrecs Observable values The λ B calculus: λ C + barriers Garbage collection The λ S calculus: λ B + side-effects

3 λ +Let : A way to model sharing L14-5 Instead of the normal β-rule (λx.e) e a e [e a /x] use the following β let rule (λx.e) e a { let t = e a in e[t/x] } where t is a new variable and only allow the substitution of values and variables to preserve sharing Previous work on Sharing L14-6 Differences are mainly regarding where variables can be instantiated the source language λ or λ + let or λ + letrec Graph reduction and lazy evaluation Wadsworth (71), Launchbury (POPL93) Environments and Explicit Substitution Abadi, Cardelli, Curien & Levy (POPL 92, JFP) Letrecs but no reductions inside λ-abstractions Ariola, Felleisen, Wadler,...(POPL 95) Letrecs Ariola et al. (96)

4 λ C Syntax L14-7 E ::= x λx.e E E { S in E } Cond (E, E, E) PF k (E 1,...,E k ) CN 0 CN k (E 1,...,E k ) CN k (SE 1,...,SE k ) PF 1 ::= negate not... Prj 1 Prj CN 0 ::= Number Boolean CN 2 ::= Cons... S ::= ε x = E S; S Not in initial expressions λ C Syntax L14-8 Values V ::= λx.e CN 0 CN k (SE 1,...,SE k ) Simple expressions SE ::= x V

5 Equivalence Rules L14-9 α-renaming λx.e λx.(e[x / x]) {x=e; S in e 0 } {x =e; S in e 0 }[x /x] Properties of ; ε ; S S S 1 ; S 2 S 2 ; S 1 S 1 ; (S 2 ; S 3 ) (S 1 ; S 2 ) ; S 3 λ let Instantiation Rules L14-10 a is a Simple Expression; [x] is a free occurrence of x in C[x] or SC[x] Instantiation Rule 1 { x = a ; S in C[x] } { x = a ; S in C [a] } Instantiation Rule 2 (x = a ; SC[x]) (x = a ; SC [a]) Instantiation Rule 3 x = C[x] x = C [C[x]] where C[x] is simple

6 λ C Rules L14-11 Cond-rules Cond (True, e 1, e 2 ) e 1 Cond (False, e 1, e 2 ) e 2 Constructors CN k (e 1,...,e k ) {t 1 = e 1 ;...; t k = e k in CN k (t 1,...,t k )} δ-rules PF k (v 1,...,v k ) pf k (v 1,...,v k ) Prj i (CN k (x 1,...,x i,...,x k )) x i Need for Lifting Rules L14-12 {f = { S 1 in λx.e 1 }; y = f a ; in ({ S 2 in λx.e 2 } e 3 ) } How do we juxtapose or (λx.e 1 ) a (λx.e 2 ) e3?

7 λ C Block Flattening and Lifting Rules L14-13 Block Flatten x = { S in e} (x = e ; S ) Lifting rules { S 1 in { S 2 in e } } { S 1 ; S 2 in e } { S in e} e 2 { S in e e 2 } Cond({ S in e}, e 1, e 2 ) { S in Cond (e, e 1, e 2 ) } PF k (e 1,...{ S in e },...e k ) { S in PF k (e 1,...e,...e k ) } { S in e } is the α-renaming of { S in e } to avoid name conflicts Non-confluence L14-14 odd = λn.cond(n=0, False, even (n-1)) ---- (M) even = λn.cond(n=0, True, odd (n -1)) substitute for even (n-1) in M odd = λn.cond(n=0, False, Cond(n-1 = 0, True, odd ((n-1)-1))) ---- (M 1 ) even = λn.cond(n=0, True, odd (n -1)) substitute for odd (n-1) in M odd = λn.cond(n=0, False, even (n-1)) ---- (M 2 ) even = λn.cond(n=0, True, Cond( n-1 = 0, False, even ((n-1)-1))) M 1 and M 2 cannot be reduced to the same expression! Ariola & Klop (LICS 94)

8 Printable Values L14-15 Printable values are trees and can be infinite We will compute the printable value of a term in 2 steps: Info: E --> T P (trees) Print: E --> {T P } (downward closed sets of trees) where T P ::= λ CN 0 CN k (T P1,...,T Pk ) t (bottom) t t (reflexive) CN k (v 1,...,v i,...,v k ) CN k (v 1,...,v i,...,v k ) if v i v i Info Procedure L14-16 Info : E --> T P Info [ { S in E } ] = Info [E] Info [λx.e] = λ Info [CN 0 ] = CN0 Info [CN k (a 1,...,a k )] = CNk (Info[a 1 ],...,Info[a k ]) Info [E] = Ω otherwise Proposition Reduction is monotonic wrt Info: If e ->> e 1 then Info[e] Info[e 1 ]. Proposition Confluence wrt Info: If e ->> e 1 and e ->> e 2 then e 3 s.t. e 1 ->> e 3 and Info[e 2 ] Info[e 3 ].

9 Print Procedure L14-17 Print : E --> {T P } Print[e] = { i i Info[e 1 ] and e i >> e 1 } i > is simple instantiation: let x = v ; S in C[x] i > let x = v ; S in C[v] Unwind the value as much as possible Keep track of all the unwindings Terms with infinite unwindings lead to infinite sets. Print*: Maximum Printable Info L14-18 Print*[e] = { Ui Print[s i ] s ε PRS(e) } where Definition: Reduction Sequence RS(e) = { s s 0 = e, s i-1 -> s i, 0 < i < s } Definition: Progressive Reduction Sequence PRS(e) = { s s ε RS(e), and i j > i. s j ->> t k. Print[t] Print[s k ] } Proposition: if e ->> e 1 then Print*[e] = Print*[e 1 ]. Print*[e] has precisely one element.

10 λ B Syntax L14-19 E ::= x λx.e E E { S in E } Cond (E, E, E) PF k (E 1,...,E k ) CN 0 CN k (E 1,...,E k ) CN k (x 1,...,x k ) PF 1 ::= negate not... Prj 1 Prj CN 0 ::= Number Boolean S ::= ε x = E S; S S >>> S Not in initial expressions Barriers L14-20 { ( y = 1+7 >>> z = 3 ) in z } { ( y = 8 >>> z = 3 ) in z } { y = 8 ; ( z = 3 ) in z } { y = 8 ; z = 3 in 3 } Barriers discharge when all the bindings in the pre-region terminate, i.e., all expressions become values.

11 Stability and Termination L14-21 Definition: Expression e is said to be stable if when e ->> e 1, Print[e] = Print[e 1 ] In general, an expression cannot be tested for stability. Terminated Terms E T ::= V {H in SE} H ::= x = V H; H Proposition: All terminated terms are stable. Values and Heap Terms L14-22 Values V ::= λx.e CN 0 CN k (x 1,...,x k ) Simple expressions SE ::= x V Terminated Terms E T ::= V {H in SE} H ::= x = V H; H

12 Barrier Rules L14-23 Barrier discharge (ε >>> S) S Barrier equivalence ((H ; S 1 ) >>> S 2 ) (H ; (S 1 >>> S 2 )) (H >>> S) (H ; S) (derivable) L14-24 λ C Versus λ B In λ B termination of a term is observable. Thus, 5 {x = in 5} Consider the context: { (y = [ ] >>> z = 3) in z } equality in λ C does not imply equality in λ B However, barriers can only make a term less defined.

13 L14-25 Properties of λ B Proposition Barriers are associative: S1 >>> (S2 >>> S3) = (S1 >>> S2) >>> S3 in all contexts. Proposition Barriers reduce results: Every reduction in C[S1 >>> S2] can be modeled by a reduction in C[S1 ; S2]. Proposition Postregions can be postponed: If C1[S1 >>> S2] ->> C3[S3 >>> S4] where the barrier is the same in both terms, there is a C2 such that: C1[S1 >>> S2] ->> C2[S3 >>> S2] ->> C3[S3 >>> S4] Garbage Collection L14-26 A Garbage collection rule erases part of a term. Definition: A garbage collection rule, GC, is said to be correct if for all e, Print*(e) = Print*(GC(e))

14 λ B Garbage Collection Rule L14-27 GC 0 -rule { S G ; S in e } { S in e } if forall x, x (FV(e) U FV(S)) then x BV(S G ) GC v -rule { H ; S in e } { S in e } if forall x, x (FV(e) U FV(S)) then x BV(H) While both GC 0 and GC v rules are correct for λ let, only the GC v -rule is correct for λ B. λ S Syntax L14-28 E ::= x λx.e E E { S in E } Cond (E, E, E) PF k (E 1,...,E k ) CN 0 CN k (E 1,...,E k ) CN k (x 1,...,x k ) allocate() o i object descriptors PF 1 ::= negate not... Prj 1 Prj 2... ifetch mfetch... CN 0 ::= Number Boolean () Not in initial expressions S ::= ε x = E S; S S >>> S sstore(e,e) allocator empty(o i ) full(o i,e) error(o i )

15 Values and Heap Terms L14-29 Values V ::= λx.e CN 0 CN k (x 1,...,x k ) o i Simple expressions SE ::= x V Heap Terms H ::= x = V H; H allocator empty(o i ) full(o i,v) Terminal Expressions E T ::= V let H in SE Side-effect Rules L14-30 Allocation rule (allocator; x=allocate()) allocator; x = o; empty(o)) where o is a new object descriptor Fetch and Take rules (x=ifetch(o) ; full(o,v)) (x=mfetch(o) ; full(o,v)) Store rules (sstore(o,v) ; empty(o)) (sstore(o,v) ; full(o,v )) (x=v ; full(o,v)) (x=v ; empty(o)) full(o,v) (error(o); full(o,v )) Lifting rules sstore({ S in e}, e 2 ) ( S ; sstore(e,e 2 )) sstore(e 1, { S in e}) ( S ; sstore(e 1,e))

16 Nondeterministic Choice L14-31 choose = choose 100 λx. { m = allocate(); sstore(m, True); ( y = mfetch(m) >>> sstore(m, False) ); ( z = mfetch(m) >>> sstore(m,true) ) in z }?

A λ-calculus with Constants and Let-blocks

A λ-calculus with Constants and Let-blocks A λ-calculus with Constants and Let-blocks Arvind Computer Science and Artificial Intelligence Laboratory M.I.T. September 19, 2006 September 19, 2006 http://www.csg.csail.mit.edu/6.827 L04-1 Outline Recursion

More information

Skew and ω-skew Confluence and Infinite Normal Forms

Skew and ω-skew Confluence and Infinite Normal Forms Skew and ω-skew Confluence and Infinite Normal Forms Zena M. riola and Stefan Blom University of Oregon University of Innsbruck bstract. The notion of skew confluence was introduced to characterize non-confluent

More information

Diagrams for Meaning Preservation

Diagrams for Meaning Preservation Diagrams for Meaning Preservation 2003-06-13 Joe Wells Detlef Plump Fairouz Kamareddine Heriot-Watt University University of York www.cee.hw.ac.uk/ultra www.cs.york.ac.uk/ det Diagrams for Meaning Preservation

More information

A Call-by-Need Lambda-Calculus with Locally Bottom-Avoiding Choice: Context Lemma and Correctness of Transformations

A Call-by-Need Lambda-Calculus with Locally Bottom-Avoiding Choice: Context Lemma and Correctness of Transformations A Call-by-Need Lambda-Calculus with Locally Bottom-Avoiding Choice: Context Lemma and Correctness of Transformations David Sabel and Manfred Schmidt-Schauß Research group for Artificial Intelligence and

More information

Simulation in the Call-by-Need Lambda-Calculus with letrec

Simulation in the Call-by-Need Lambda-Calculus with letrec Simulation in the Call-by-Need Lambda-Calculus with letrec Manfred Schmidt-Schauss 1 and David Sabel 1 and Elena Machkasova 2 1 Dept. Informatik und Mathematik, Inst. Informatik, J.W. Goethe-University,

More information

G54FOP: Lecture 17 & 18 Denotational Semantics and Domain Theory III & IV

G54FOP: Lecture 17 & 18 Denotational Semantics and Domain Theory III & IV G54FOP: Lecture 17 & 18 Denotational Semantics and Domain Theory III & IV Henrik Nilsson University of Nottingham, UK G54FOP: Lecture 17 & 18 p.1/33 These Two Lectures Revisit attempt to define denotational

More information

Typed Arithmetic Expressions

Typed Arithmetic Expressions Typed Arithmetic Expressions CS 550 Programming Languages Jeremy Johnson TAPL Chapters 3 and 5 1 Types and Safety Evaluation rules provide operational semantics for programming languages. The rules provide

More information

Static Program Analysis

Static Program Analysis Static Program Analysis Xiangyu Zhang The slides are compiled from Alex Aiken s Michael D. Ernst s Sorin Lerner s A Scary Outline Type-based analysis Data-flow analysis Abstract interpretation Theorem

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

Congruence of Bisimulation in a Non-Deterministic Call-By-Need Lambda Calculus

Congruence of Bisimulation in a Non-Deterministic Call-By-Need Lambda Calculus Congruence of Bisimulation in a Non-Deterministic Call-By-Need Lambda Calculus Matthias Mann Johann Wolfgang Goethe-Universität, Frankfurt, Germany Congruence of Bisimulation p. 1/21 Lambda Calculi and

More information

Groupe de travail. Analysis of Mobile Systems by Abstract Interpretation

Groupe de travail. Analysis of Mobile Systems by Abstract Interpretation Groupe de travail Analysis of Mobile Systems by Abstract Interpretation Jérôme Feret École Normale Supérieure http://www.di.ens.fr/ feret 31/03/2005 Introduction I We propose a unifying framework to design

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

arxiv: v1 [cs.pl] 27 Jul 2009

arxiv: v1 [cs.pl] 27 Jul 2009 Small-step and big-step semantics for call-by-need arxiv:0907.4640v1 [cs.pl] 27 Jul 2009 Keiko Nakata Institute of Cybernetics, Tallinn University of Technology Masahito Hasegawa Research Institute for

More information

Monads for Relations. Jeremy G. Siek University of Colorado at Boulder SPLS, June Jeremy Siek Monads for Relations 1 / 20

Monads for Relations. Jeremy G. Siek University of Colorado at Boulder SPLS, June Jeremy Siek Monads for Relations 1 / 20 Monads for Relations Jeremy G. Siek University of Colorado at Boulder SPLS, June 2010 Jeremy Siek Monads for Relations 1 / 20 Natural (Big-Step) Semantics for CBV Lambda ρ e v Env Expr Value ρ x ρ x ρ

More information

Operationally-Based Theories of Program Equivalence

Operationally-Based Theories of Program Equivalence Operationally-Based Theories of Program Equivalence Andrew Pitts Contents 1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : 241 2 Contextual Equivalence : : : : : : : : : : : : : :

More information

On the Complexity of the Reflected Logic of Proofs

On the Complexity of the Reflected Logic of Proofs On the Complexity of the Reflected Logic of Proofs Nikolai V. Krupski Department of Math. Logic and the Theory of Algorithms, Faculty of Mechanics and Mathematics, Moscow State University, Moscow 119899,

More information

CS611 Lecture 25 Solving Domain Equations 22 October 2007 Lecturer: Andrew Myers

CS611 Lecture 25 Solving Domain Equations 22 October 2007 Lecturer: Andrew Myers CS611 Lecture 25 Solving Domain Equations 22 October 2007 Lecturer: Andrew Myers To develop a denotational semantics for a language with recursive types, or to give a denotational semantics for the untyped

More information

NICTA Advanced Course. Theorem Proving Principles, Techniques, Applications

NICTA Advanced Course. Theorem Proving Principles, Techniques, Applications NICTA Advanced Course Theorem Proving Principles, Techniques, Applications λ 1 CONTENT Intro & motivation, getting started with Isabelle Foundations & Principles Lambda Calculus Higher Order Logic, natural

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

A rewriting calculus for cyclic higher-order term graphs

A rewriting calculus for cyclic higher-order term graphs Under consideration for publication in Math. Struct. in Comp. Science A rewriting calculus for cyclic higher-order term graphs PAOLO BALDAN 1 CLARA BERTOLISSI 3 2 HORATIU CIRSTEA 4 2 CLAUDE KIRCHNER 5

More information

Simulation in the Call-by-Need Lambda-Calculus with Letrec, Case, Constructors, and Seq

Simulation in the Call-by-Need Lambda-Calculus with Letrec, Case, Constructors, and Seq Simulation in the Call-by-Need Lambda-Calculus with Letrec, Case, Constructors, and Seq Manfred Schmidt-Schauss 1 and David Sabel 1 and Elena Machkasova 2 1 Dept. Informatik und Mathematik, Inst. Informatik,

More information

CS 6110 Lecture 35 Solving Domain Equations 19 April 2013 Lecturer: Andrew Myers

CS 6110 Lecture 35 Solving Domain Equations 19 April 2013 Lecturer: Andrew Myers CS 6110 Lecture 35 Solving Domain Equations 19 April 2013 Lecturer: Andrew Myers To develop a denotational semantics for a language with recursive types, or to give a denotational semantics for the untyped

More information

Theories of Programming Languages Assignment 5

Theories of Programming Languages Assignment 5 Theories of Programming Languages Assignment 5 December 17, 2012 1. Lambda-Calculus (see Fig. 1 for initions of = β, normal order evaluation and eager evaluation). (a) Let Ω = ((λx. x x) (λx. x x)), and

More information

Consistency of a Programming Logic for a Version of PCF Using Domain Theory

Consistency of a Programming Logic for a Version of PCF Using Domain Theory Consistency of a Programming Logic for a Version of PCF Using Domain Theory Andrés Sicard-Ramírez EAFIT University Logic and Computation Seminar EAFIT University 5 April, 3 May 2013 A Core Functional Programming

More information

Beyond First-Order Logic

Beyond First-Order Logic Beyond First-Order Logic Software Formal Verification Maria João Frade Departmento de Informática Universidade do Minho 2008/2009 Maria João Frade (DI-UM) Beyond First-Order Logic MFES 2008/09 1 / 37 FOL

More information

Classical Program Logics: Hoare Logic, Weakest Liberal Preconditions

Classical Program Logics: Hoare Logic, Weakest Liberal Preconditions Chapter 1 Classical Program Logics: Hoare Logic, Weakest Liberal Preconditions 1.1 The IMP Language IMP is a programming language with an extensible syntax that was developed in the late 1960s. We will

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

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

Classes and conversions

Classes and conversions Classes and conversions Regular expressions Syntax: r = ε a r r r + r r Semantics: The language L r of a regular expression r is inductively defined as follows: L =, L ε = {ε}, L a = a L r r = L r L r

More information

Consequence Relations and Natural Deduction

Consequence Relations and Natural Deduction Consequence Relations and Natural Deduction Joshua D. Guttman Worcester Polytechnic Institute September 9, 2010 Contents 1 Consequence Relations 1 2 A Derivation System for Natural Deduction 3 3 Derivations

More information

Complete Partial Orders, PCF, and Control

Complete Partial Orders, PCF, and Control Complete Partial Orders, PCF, and Control Andrew R. Plummer TIE Report Draft January 2010 Abstract We develop the theory of directed complete partial orders and complete partial orders. We review the syntax

More information

Automata-based Verification - III

Automata-based Verification - III CS3172: Advanced Algorithms Automata-based Verification - III Howard Barringer Room KB2.20/22: email: howard.barringer@manchester.ac.uk March 2005 Third Topic Infinite Word Automata Motivation Büchi Automata

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: 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

3 Propositional Logic

3 Propositional Logic 3 Propositional Logic 3.1 Syntax 3.2 Semantics 3.3 Equivalence and Normal Forms 3.4 Proof Procedures 3.5 Properties Propositional Logic (25th October 2007) 1 3.1 Syntax Definition 3.0 An alphabet Σ consists

More information

T Reactive Systems: Temporal Logic LTL

T Reactive Systems: Temporal Logic LTL Tik-79.186 Reactive Systems 1 T-79.186 Reactive Systems: Temporal Logic LTL Spring 2005, Lecture 4 January 31, 2005 Tik-79.186 Reactive Systems 2 Temporal Logics Temporal logics are currently the most

More information

A rewriting calculus for cyclic higher-order term graphs

A rewriting calculus for cyclic higher-order term graphs A rewriting calculus for cyclic higher-order term graphs Paolo Baldan, Clara Bertolissi, Horatiu Cirstea, Claude Kirchner To cite this version: Paolo Baldan, Clara Bertolissi, Horatiu Cirstea, Claude Kirchner.

More information

1 Introduction. 2 Recap The Typed λ-calculus λ. 3 Simple Data Structures

1 Introduction. 2 Recap The Typed λ-calculus λ. 3 Simple Data Structures CS 6110 S18 Lecture 21 Products, Sums, and Other Datatypes 1 Introduction In this lecture, we add constructs to the typed λ-calculus that allow working with more complicated data structures, such as pairs,

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

Automata-based Verification - III

Automata-based Verification - III COMP30172: Advanced Algorithms Automata-based Verification - III Howard Barringer Room KB2.20: email: howard.barringer@manchester.ac.uk March 2009 Third Topic Infinite Word Automata Motivation Büchi Automata

More information

Type Inference. For the Simply-Typed Lambda Calculus. Peter Thiemann, Manuel Geffken. Albert-Ludwigs-Universität Freiburg. University of Freiburg

Type Inference. For the Simply-Typed Lambda Calculus. Peter Thiemann, Manuel Geffken. Albert-Ludwigs-Universität Freiburg. University of Freiburg Type Inference For the Simply-Typed Lambda Calculus Albert-Ludwigs-Universität Freiburg Peter Thiemann, Manuel Geffken University of Freiburg 24. Januar 2013 Outline 1 Introduction 2 Applied Lambda Calculus

More information

Predicate Logic. Xinyu Feng 09/26/2011. University of Science and Technology of China (USTC)

Predicate Logic. Xinyu Feng 09/26/2011. University of Science and Technology of China (USTC) University of Science and Technology of China (USTC) 09/26/2011 Overview Predicate logic over integer expressions: a language of logical assertions, for example x. x + 0 = x Why discuss predicate logic?

More information

COMPUTER SCIENCE TRIPOS

COMPUTER SCIENCE TRIPOS CST.2016.6.1 COMPUTER SCIENCE TRIPOS Part IB Thursday 2 June 2016 1.30 to 4.30 COMPUTER SCIENCE Paper 6 Answer five questions. Submit the answers in five separate bundles, each with its own cover sheet.

More information

Congruence of Bisimulation in a Non-Deterministic Call-By-Need Lambda Calculus

Congruence of Bisimulation in a Non-Deterministic Call-By-Need Lambda Calculus SOS 2004 Preliminary Version Congruence of Bisimulation in a Non-Deterministic Call-By-Need Lambda Calculus Matthias Institut für Informatik Johann Wolfgang Goethe-Universität Postfach 11 19 32 D-60054

More information

Semantics of Higher-Order Functional Programming

Semantics of Higher-Order Functional Programming Semantics of Higher-Order Functional Programming Petros Barbagiannis µ λ July 14, 2014 Petros Barbagiannis Semantics of Higher-Order Functional Programming July 14, 2014 1 / 18 Introduction Higher-order

More information

Recursion and Intro to Coq

Recursion and Intro to Coq L02-1 Recursion and Intro to Coq Armando Solar Lezama Computer Science and Artificial Intelligence Laboratory M.I.T. With content from Arvind and Adam Chlipala. Used with permission. September 21, 2015

More information

Abstracting real-valued parameters in parameterised boolean equation systems

Abstracting real-valued parameters in parameterised boolean equation systems Department of Mathematics and Computer Science Formal System Analysis Research Group Abstracting real-valued parameters in parameterised boolean equation systems Master Thesis M. Laveaux Supervisor: dr.

More information

Parametric Polymorphism and Operational Improvement

Parametric Polymorphism and Operational Improvement Parametric Polymorphism and Operational Improvement JENNIFER HACKETT, University of Nottingham, UK GRAHAM HUTTON, University of Nottingham, UK Parametricity, in both operational and denotational forms,

More information

ECE473 Lecture 15: Propositional Logic

ECE473 Lecture 15: Propositional Logic ECE473 Lecture 15: Propositional Logic Jeffrey Mark Siskind School of Electrical and Computer Engineering Spring 2018 Siskind (Purdue ECE) ECE473 Lecture 15: Propositional Logic Spring 2018 1 / 23 What

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

On the Correctness of the Krivine Machine

On the Correctness of the Krivine Machine On the Correctness of the Krivine Machine Mitchell Wand Northeastern University 2003-10-03 15:55:00 wand October 3, 2003 Abstract We provide a short proof of the correctness of the Krivine machine by showing

More information

6- Normalization of classical call-by-need

6- Normalization of classical call-by-need 6- Normalization of classical call-by-need The call-by-need evaluation strategy A famous functional programmer once was asked to give an overview talk. He began with : This talk is about lazy functional

More information

Operational Semantics

Operational Semantics Operational Semantics Semantics and applications to verification Xavier Rival École Normale Supérieure Xavier Rival Operational Semantics 1 / 50 Program of this first lecture Operational semantics Mathematical

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

Midterm Exam Types and Programming Languages Frank Pfenning. October 18, 2018

Midterm Exam Types and Programming Languages Frank Pfenning. October 18, 2018 Midterm Exam 15-814 Types and Programming Languages Frank Pfenning October 18, 2018 Name: Andrew ID: Instructions This exam is closed-book, closed-notes. You have 80 minutes to complete the exam. There

More information

Predicate Logic. Xinyu Feng 11/20/2013. University of Science and Technology of China (USTC)

Predicate Logic. Xinyu Feng 11/20/2013. University of Science and Technology of China (USTC) University of Science and Technology of China (USTC) 11/20/2013 Overview Predicate logic over integer expressions: a language of logical assertions, for example x. x + 0 = x Why discuss predicate logic?

More information

A Little Logic. Propositional Logic. Satisfiability Problems. Solving Sudokus. First Order Logic. Logic Programming

A Little Logic. Propositional Logic. Satisfiability Problems. Solving Sudokus. First Order Logic. Logic Programming A Little Logic International Center for Computational Logic Technische Universität Dresden Germany Propositional Logic Satisfiability Problems Solving Sudokus First Order Logic Logic Programming A Little

More information

Taming Selective Strictness

Taming Selective Strictness Taming Selective Strictness Daniel Seidel and Janis Voigtländer Technische Universität Dresden, 01062 Dresden, Germany {seideld,voigt}@tcs.inf.tu-dresden.de Abstract: Free theorems establish interesting

More information

Modeling and Analysis of Communicating Systems

Modeling and Analysis of Communicating Systems Modeling and Analysis of Communicating Systems Lecture 5: Sequential Processes Jeroen Keiren and Mohammad Mousavi j.j.a.keiren@vu.nl and m.r.mousavi@hh.se Halmstad University March 2015 Outline Motivation

More information

Propositional Logic: Models and Proofs

Propositional Logic: Models and Proofs Propositional Logic: Models and Proofs C. R. Ramakrishnan CSE 505 1 Syntax 2 Model Theory 3 Proof Theory and Resolution Compiled at 11:51 on 2016/11/02 Computing with Logic Propositional Logic CSE 505

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

A Monadic Analysis of Information Flow Security with Mutable State

A Monadic Analysis of Information Flow Security with Mutable State A Monadic Analysis of Information Flow Security with Mutable State Karl Crary Aleksey Kliger Frank Pfenning July 2003 CMU-CS-03-164 School of Computer Science Carnegie Mellon University Pittsburgh, PA

More information

Temporal logics and explicit-state model checking. Pierre Wolper Université de Liège

Temporal logics and explicit-state model checking. Pierre Wolper Université de Liège Temporal logics and explicit-state model checking Pierre Wolper Université de Liège 1 Topics to be covered Introducing explicit-state model checking Finite automata on infinite words Temporal Logics and

More information

First Order Logic vs Propositional Logic CS477 Formal Software Dev Methods

First Order Logic vs Propositional Logic CS477 Formal Software Dev Methods First Order Logic vs Propositional Logic CS477 Formal Software Dev Methods Elsa L Gunter 2112 SC, UIUC egunter@illinois.edu http://courses.engr.illinois.edu/cs477 Slides based in part on previous lectures

More information

High-Level Small-Step Operational Semantics for Transactions (Technical Companion)

High-Level Small-Step Operational Semantics for Transactions (Technical Companion) High-Level Small-Step Operational Semantics for Transactions (Technical Companion) Katherine F. Moore, Dan Grossman July 15, 2007 Abstract This document is the technical companion to our POPL 08 submission

More information

CSE 505, Fall 2005, Midterm Examination 8 November Please do not turn the page until everyone is ready.

CSE 505, Fall 2005, Midterm Examination 8 November Please do not turn the page until everyone is ready. CSE 505, Fall 2005, Midterm Examination 8 November 2005 Please do not turn the page until everyone is ready. Rules: The exam is closed-book, closed-note, except for one side of one 8.5x11in piece of paper.

More information

Towards Correctness of Program Transformations Through Unification and Critical Pair Computation

Towards Correctness of Program Transformations Through Unification and Critical Pair Computation Towards Correctness of Program Transformations Through Unification and Critical Pair Computation Conrad Rau and Manfred Schmidt-Schauß Institut für Informatik Johann Wolfgang Goethe-Universität Postfach

More information

The Locally Nameless Representation

The Locally Nameless Representation Noname manuscript No. (will be inserted by the editor) The Locally Nameless Representation Arthur Charguéraud Received: date / Accepted: date Abstract This paper provides an introduction to the locally

More information

Program Verification Using Separation Logic

Program Verification Using Separation Logic Program Verification Using Separation Logic Cristiano Calcagno Adapted from material by Dino Distefano Lecture 1 Goal of the course Study Separation Logic having automatic verification in mind Learn how

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

Provenance Semirings. Todd Green Grigoris Karvounarakis Val Tannen. presented by Clemens Ley

Provenance Semirings. Todd Green Grigoris Karvounarakis Val Tannen. presented by Clemens Ley Provenance Semirings Todd Green Grigoris Karvounarakis Val Tannen presented by Clemens Ley place of origin Provenance Semirings Todd Green Grigoris Karvounarakis Val Tannen presented by Clemens Ley place

More information

Outline. Formale Methoden der Informatik First-Order Logic for Forgetters. Why PL1? Why PL1? Cont d. Motivation

Outline. Formale Methoden der Informatik First-Order Logic for Forgetters. Why PL1? Why PL1? Cont d. Motivation Outline Formale Methoden der Informatik First-Order Logic for Forgetters Uwe Egly Vienna University of Technology Institute of Information Systems Knowledge-Based Systems Group Motivation Syntax of PL1

More information

Algorithmic Reasoning about Böhm Trees

Algorithmic Reasoning about Böhm Trees Algorithmic Reasoning about Böhm Trees Luke Ong University of Oxford (Joint with Bahareh Afshari, Matthew Hague, Graham Leigh, Steven Ramsay, and Takeshi Tsukada) IMS Workshop on Higher-Order Model Checking

More information

The Church-Turing Thesis

The Church-Turing Thesis The Church-Turing Thesis Huan Long Shanghai Jiao Tong University Acknowledgements Part of the slides comes from a similar course in Fudan University given by Prof. Yijia Chen. http://basics.sjtu.edu.cn/

More information

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

Curry-Howard Correspondence for Classical Logic

Curry-Howard Correspondence for Classical Logic Curry-Howard Correspondence for Classical Logic Stéphane Graham-Lengrand CNRS, Laboratoire d Informatique de l X Stephane.Lengrand@Polytechnique.edu 2 Practicalities E-mail address: Stephane.Lengrand@Polytechnique.edu

More information

A Calculus of Definitions

A Calculus of Definitions A Calculus of Definitions June 13, 2017 1 Type theory We describe how to implement a core type theory. This is very close to a functional programming language with λ abstraction and data types defined

More information

Element x is R-minimal in X if y X. R(y, x).

Element x is R-minimal in X if y X. R(y, x). CMSC 22100/32100: Programming Languages Final Exam M. Blume December 11, 2008 1. (Well-founded sets and induction principles) (a) State the mathematical induction principle and justify it informally. 1

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

Timo Latvala. February 4, 2004

Timo Latvala. February 4, 2004 Reactive Systems: Temporal Logic LT L Timo Latvala February 4, 2004 Reactive Systems: Temporal Logic LT L 8-1 Temporal Logics Temporal logics are currently the most widely used specification formalism

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

Subtyping and Intersection Types Revisited

Subtyping and Intersection Types Revisited Subtyping and Intersection Types Revisited Frank Pfenning Carnegie Mellon University International Conference on Functional Programming (ICFP 07) Freiburg, Germany, October 1-3, 2007 Joint work with Rowan

More information

Denoting computation

Denoting computation A jog from Scott Domains to Hypercoherence Spaces 13/12/2006 Outline Motivation 1 Motivation 2 What Does Denotational Semantic Mean? Trivial examples Basic things to know 3 Scott domains di-domains 4 Event

More information

On the Correctness and Efficiency of the Krivine Machine

On the Correctness and Efficiency of the Krivine Machine On the Correctness and Efficiency of the Krivine Machine Mitchell Wand Northeastern University Daniel P. Friedman Indiana University February 12, 2003 Abstract We provide a short derivation of the Krivine

More information

A Tableau Calculus for Minimal Modal Model Generation

A Tableau Calculus for Minimal Modal Model Generation M4M 2011 A Tableau Calculus for Minimal Modal Model Generation Fabio Papacchini 1 and Renate A. Schmidt 2 School of Computer Science, University of Manchester Abstract Model generation and minimal model

More information

Relational Graph Models, Taylor Expansion and Extensionality

Relational Graph Models, Taylor Expansion and Extensionality Relational Graph Models, Taylor Expansion and Extensionality Domenico Ruoppolo Giulio Manzonetto Laboratoire d Informatique de Paris Nord Université Paris-Nord Paris 13 (France) MFPS XXX Ithaca, New York

More information

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

Formal Methods Lecture 8. (B. Pierce's slides for the book Types and Programming Languages ) Formal Methods Lecture 8 (B. Pierce's slides for the book Types and Programming Languages ) Erasure and Typability Erasure We can transform terms in λ to terms of the untyped lambda-calculus simply by

More information

Theoretical Foundations of the UML

Theoretical Foundations of the UML Theoretical Foundations of the UML Lecture 17+18: A Logic for MSCs Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group moves.rwth-aachen.de/teaching/ws-1718/fuml/ 5.

More information

Extended Abstract: Reconsidering Intuitionistic Duality

Extended Abstract: Reconsidering Intuitionistic Duality Extended Abstract: Reconsidering Intuitionistic Duality Aaron Stump, Harley Eades III, Ryan McCleeary Computer Science The University of Iowa 1 Introduction This paper proposes a new syntax and proof system

More information

Term Graph Rewriting. syntax and semantics

Term Graph Rewriting. syntax and semantics Term Graph Rewriting synta and semantics IPA Dissertation Series, no. 2001-05 c 2001 Stefan Blom The work in this thesis has been carried out under the auspices of the research school IPA (Institute for

More information

Model Checking with CTL. Presented by Jason Simas

Model Checking with CTL. Presented by Jason Simas Model Checking with CTL Presented by Jason Simas Model Checking with CTL Based Upon: Logic in Computer Science. Huth and Ryan. 2000. (148-215) Model Checking. Clarke, Grumberg and Peled. 1999. (1-26) Content

More information

An Efficient Decision Procedure for Functional Decomposable Theories Based on Dual Constraints

An Efficient Decision Procedure for Functional Decomposable Theories Based on Dual Constraints An Efficient Decision Procedure for Functional Decomposable Theories Based on Dual Constraints Khalil Djelloul Laboratoire d Informatique Fondamentale d Orléans. Bat. 3IA, rue Léonard de Vinci. 45067 Orléans,

More information

A Formal Semantics for Weak References

A Formal Semantics for Weak References A Formal Semantics for Weak References J. J. Hallett Boston University jhallett@cs.bu.edu A. J. Kfoury Boston University kfoury@cs.bu.edu May 22, 2005 Modified: August 8, 2005 Abstract A weak reference

More information

The duality of computation

The duality of computation The duality of computation (notes for the 3rd International Workshop on Higher-Order Rewriting) Hugo Herbelin LIX - INRIA-Futurs - PCRI Abstract. The work presented here is an extension of a previous work

More information

Assignments for Math 220, Formal Methods. J. Stanley Warford

Assignments for Math 220, Formal Methods. J. Stanley Warford Assignments for J. Stanley Warford September 28, 205 Assignment Chapter, Section, and Exercise numbers in these assignments refer to the text for this course, A Logical Approach to Discrete Math, David

More information

Lazy Multivariate Higher-Order Forward-Mode AD

Lazy Multivariate Higher-Order Forward-Mode AD To appear in POPL 2007 Lazy Multivariate Higher-Order Forward-Mode AD Barak A. Pearlmutter Hamilton Institute NUI Maynooth, Ireland barak@cs.nuim.ie Jeffrey Mark Siskind School of Electrical and Computer

More information

Propositional Logic: Methods of Proof (Part II)

Propositional Logic: Methods of Proof (Part II) Propositional Logic: Methods of Proof (Part II) This lecture topic: Propositional Logic (two lectures) Chapter 7.1-7.4 (previous lecture, Part I) Chapter 7.5 (this lecture, Part II) (optional: 7.6-7.8)

More information

15414/614 Optional Lecture 1: Propositional Logic

15414/614 Optional Lecture 1: Propositional Logic 15414/614 Optional Lecture 1: Propositional Logic Qinsi Wang Logic is the study of information encoded in the form of logical sentences. We use the language of Logic to state observations, to define concepts,

More information

Spring 2015 Program Analysis and Verification. Lecture 4: Axiomatic Semantics I. Roman Manevich Ben-Gurion University

Spring 2015 Program Analysis and Verification. Lecture 4: Axiomatic Semantics I. Roman Manevich Ben-Gurion University Spring 2015 Program Analysis and Verification Lecture 4: Axiomatic Semantics I Roman Manevich Ben-Gurion University Agenda Basic concepts of correctness Axiomatic semantics (pages 175-183) Hoare Logic

More information

Discrete Mathematics Review

Discrete Mathematics Review CS 1813 Discrete Mathematics Discrete Mathematics Review or Yes, the Final Will Be Comprehensive 1 Truth Tables for Logical Operators P Q P Q False False False P Q False P Q False P Q True P Q True P True

More information