λ S : A Lambda Calculus with Side-effects
|
|
- Arline Porter
- 5 years ago
- Views:
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 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 informationSkew 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 informationDiagrams 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 informationA 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 informationSimulation 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 informationG54FOP: 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 informationTyped 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 informationStatic 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 informationCS 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 informationCongruence 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 informationGroupe 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 informationComputational 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 informationarxiv: 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 informationMonads 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 informationOperationally-Based Theories of Program Equivalence
Operationally-Based Theories of Program Equivalence Andrew Pitts Contents 1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : 241 2 Contextual Equivalence : : : : : : : : : : : : : :
More informationOn 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 informationCS611 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 informationNICTA 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 informationSolutions 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 informationA 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 informationSimulation 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 informationCS 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 informationTheories 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 informationConsistency 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 informationBeyond 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 informationClassical 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 informationFIXED 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 informationSimply 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 informationClasses 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 informationConsequence 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 informationComplete 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 informationAutomata-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 informationType 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 informationLecture 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 information3 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 informationT 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 informationA 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 information1 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 informationType 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 informationAutomata-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 informationType 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 informationPredicate 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 informationCOMPUTER 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 informationCongruence 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 informationSemantics 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 informationRecursion 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 informationAbstracting 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 informationParametric 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 informationECE473 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 information1. 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 informationOn 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 information6- 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 informationOperational 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 informationCOMP6463: λ-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 informationMidterm 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 informationPredicate 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 informationA 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 informationTaming 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 informationModeling 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 informationPropositional 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 informationThe 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 informationA 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 informationTemporal 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 informationFirst 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 informationHigh-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 informationCSE 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 informationTowards 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 informationThe 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 informationProgram 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 informationThe 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 informationProvenance 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 informationOutline. 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 informationAlgorithmic 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 informationThe 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 informationReview. 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 informationCurry-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 informationA 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 informationElement 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 informationLambda-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 informationTimo 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 informationFive 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 informationSubtyping 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 informationDenoting 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 informationOn 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 informationA 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 informationRelational 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 informationFormal 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 informationTheoretical 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 informationExtended 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 informationTerm 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 informationModel 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 informationAn 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 informationA 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 informationThe 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 informationAssignments 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 informationLazy 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 informationPropositional 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 information15414/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 informationSpring 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 informationDiscrete 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