Iris: Higher-Order Concurrent Separation Logic. Lecture 4: Basic Separation Logic: Proving Pointer Programs
|
|
- Christian Bennett
- 5 years ago
- Views:
Transcription
1 1 Iris: Higher-Order Concurrent Separation Logic Lecture 4: Basic Separation Logic: Proving Pointer Programs Lars Birkedal Aarhus University, Denmark November 10, 2017
2 2 Overview Earlier: Operational Semantics of λ ref,conc e, (h, e) (h, e ), and (h, E) (h, E ) Basic Logic of Resources l v, P Q, P Q, Γ P Q Basic Separation Logic: Hoare Triples Today: {P} e {v.q} : Prop Basic Separation Logic: Proving Pointer Programs Key Points Reasoning about mutable shared data structures by relating them to mathematical models islist l xs
3 Derivable Rules Last time we saw rules for basic language constructs (expressions that may reduce in one step) And the Bind rule for reasoning about more complex expressions. It is possible to derive other rules that can be used to simplify reasoning. Example Ht-Pre-Eq Γ S {P[v/x]} e[v/x] {u.q[v/x]} Γ, x : Val S {x = v P} e {u.q} This rule is derivable, which means that if we assume the antecedent (the formula above the line), then we can use the logical rules (both basic logical entailments and rules for Hoare triples) to prove the conclusion (the formula below the line). Several such are mentioned in the exercises. Do those to get familiar with how the logic works. 3
4 4 Example: let expressions Let expressions let x = e in e 2 are definable in λ ref,conc : Derivable rule let x = e in e 2 (λx. e 2 ) e Ht-let-det S {P} e 1 {x.x = v Q} (rec f (x) = e 2 ) e S {P} let x = e 1 in e 2 {u.r} S {Q[v/x]} e 2 [v/x] {u.r}
5 5 Sequencing Sequencing e1; e 2 is also definable (using let). Derivable rule Ht-seq S {P} e 1 {v.q} S {P} e 1 {.Q} S {P} e 1 ; e 2 {u.r} S {P} e 1 ; e 2 {u.r} S { x. Q} e 2 {u.r} S {Q} e 2 {u.r} where.q means that Q does not mention the return value.
6 6 Application and Deterministic Bind Ht-beta S {P} e [v/x] {u.q} S {P} (λx.e)v {u.q} Ht-bind-det E is an eval. context S {P} e {x.x = u Q} S {Q[u/x]} E[u] {w. R} S {P} E[e] {w. R}
7 7 Example: swap (finally!) Implementation swap = λx y.let z =! x in x! y; y z Possible Specification {l 1 v 1 l 2 v 2 } swap l 1 l 2 {v.v = () l 1 v 2 l 2 v 1 }. Proof: By Rule Ht-let-det SFTS the following two triples {l 1 v 1 l 2 v 2 }! l 1 {v.v = v 1 l 1 v 1 l 2 v 2 } {l 1 v 1 l 2 v 2 } l 1!l 2 ; l 2 v 1 {v.v = () l 1 v 2 l 2 v 1 }
8 8 Example: swap Consider the first triple: {l 1 v 1 l 2 v 2 }! l 1 {v.v = v 1 l 1 v 1 l 2 v 2 } To show this, use Ht-load and Ht-frame.
9 9 Example: swap Consider the second triple: {l 1 v 1 l 2 v 2 } l 1!l 2 ; l 2 v 1 {v.v = () l 1 v 2 l 2 v 1 } By sequencing rule Ht-seq, SFTS: {l1 v 1 l 2 v 2 } l 1! l 2 {.l 1 v 2 l 2 v 2 } {l1 v 2 l 2 v 2 } l 2 v 1 {v.v = () l 1 v 2 l 2 v 1 } For the second, recall that l 2 v 2 implies l 2. Hence we can use Ht-csq and Ht-store followed by Ht-frame. For the first, use deterministic bind, and then proceed with Ht-store, etc.
10 Proof Outlines In the literature, you will often see proof outlines, which sketch how proofs of programs are done. Tricky to make precise, so not used in the Iris Lecture Notes. Possible proof outline for above proof for swap: {l 1 v 1 l 2 v 2 } swap l 1 l 2 {l 1 v 1 l 2 v 2 } let z =! l 1 in {l 1 v 1 l 2 v 2 z = v 1 } l 1! l 2 ; {l 1 v 2 l 2 v 2 z = v 1 } l 2 z {l 1 v 2 l 2 v 1 z = v 1 } {l 1 v 2 l 2 v 1 } 10
11 11 Mutable Shared Data Structures: Linked Lists Key Point: We reason about mutable shared data structures by relating them to mathematical models. Today: Mutable Shared Data Structure = linked lists Mathematical Model = sequences (aka functional lists) islist l xs relates value l to sequence xs Defined by induction on xs islist l [] l = inj 1 () islist l (x : xs) hd, l. l = inj 2 (hd) hd (x, l ) islist l xs Exercise: Draw the linked list corresponding to mathematical sequence [1, 2, 3]. Why do we use above?
12 12 Example: inc on linked lists Incrementing all values in a linked list of integers. Implementation rec inc(l) = match l with Specification inj 1 x 1 () inj 2 x 2 let h = π 1! x 2 in end let t = π 2! x 2 in x 2 (h + 1, t); inc t xs. l.{islist l xs} inc l {v.v = () islist l (map(1+)xs)}
13 13 Example: inc on linked lists Proof Proceed by the recursion rule. When considering the body of inc, proceed by case analysis of xs. Case xs = []: TS l.{islist l[]} match l with... {v.v = () islist l(map(1+)[])} Case xs = x : xs : TS x, xs. l.{islist l(x : xs )} match l with... {v.v = () islist l(map(1+)(x : xs ))} In both cases, we proceed by the match rule (the islist predicate will tell us which branch is chosen).
14 14 Case xs = [] To show l.{islist l[]} match l with... {v.v = () islist l(map(1+)[])} Note: islist l[] l = inj 1 (). Thus SFTS {islist l[]} l {v.v = inj 1 () islist l[]} which we do by Ht-frame and Ht-Pre-Eq followed by Ht-ret.
15 15 Case xs = x : xs To show x, xs. l.{islist l(x : xs )} match l with... {v.v = () islist l(map(1+)(x : xs ))} Note: islist l(x : xs) hd, l.l = inj 2 hd hd (x, l ) islist l xs. Thus we have {l = inj 2 hd hd (x, l ) islist l xs } l {r.r = inj 2 hd l = inj 2 hd hd (x, l ) islist l xs } for some l and hd, using the rule Ht-exist, the frame rule, the Ht-Pre-Eq rule, and the Ht-ret rule. Hence, the second branch will be taken and by the match rule it suffices to verify the body of the second branch.
16 Case xs = x : xs, continued Using Ht-let-det and Ht-Proj repeatedly we quickly prove {l = inj 2 hd hd (x, l ) islist l xs } let h = π 1!hd in let t = π 2!hd in hd (h + 1, t) {l = inj 2 hd hd (x + 1, l ) islist l xs t = l h = x} Now, by Ht-seq and Ht-csq, we are left with proving {l = inj 2 hd hd (x + 1, l ) islist txs } f t {r.r = () islist l(map(+1)(x : xs ))} which follows from assumption (cf. recursion rule) and definition of the islist predicate. 16
Iris: Higher-Order Concurrent Separation Logic. Lecture 9: Concurrency Intro and Invariants
1 Iris: Higher-Order Concurrent Separation Logic Lecture 9: Concurrency Intro and Invariants Lars Birkedal Aarhus University, Denmark November 21, 2017 Overview Earlier: Operational Semantics of λ ref,conc
More informationIris: Higher-Order Concurrent Separation Logic. Lecture 6: Case Study: foldr
1 Iris: Higher-Order Concurrent Separation Logic Lecture 6: Case Study: foldr Lars Birkedal Aarhus University, Denmark November 10, 2017 2 Overview Earlier: Operational Semantics of λ ref,conc e, (h, e)
More informationHoare Examples & Proof Theory. COS 441 Slides 11
Hoare Examples & Proof Theory COS 441 Slides 11 The last several lectures: Agenda Denotational semantics of formulae in Haskell Reasoning using Hoare Logic This lecture: Exercises A further introduction
More informationA Short Introduction to Hoare Logic
A Short Introduction to Hoare Logic Supratik Chakraborty I.I.T. Bombay June 23, 2008 Supratik Chakraborty (I.I.T. Bombay) A Short Introduction to Hoare Logic June 23, 2008 1 / 34 Motivation Assertion checking
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 informationFORMALIZING CONCURRENT STACKS WITH HELPING: A CASE STUDY IN IRIS
FORMALIZING CONCURRENT STACKS WITH HELPING: A CASE STUDY IN IRIS DANIEL GRATZER, MATHIAS HØIER, ALE S BIZJAK, AND LARS BIRKEDAL Abstract. Iris is an expressive higher-order separation logic designed for
More informationGOTO the past / programs choose their own adventure. CSE 505: Programming Languages
GOTO the past / programs choose their own adventure. CSE 505: Programming Languages Lecture 13 Evaluation Contexts First-Class Continuations Continuation-Passing Style Zach Tatlock Fall 2013 Zach Tatlock
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 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 informationA Logical Relation for Monadic Encapsulation of State
A Logical Relation for Monadic Encapsulation of State Proving contextual equivalences in the presence of runst AMIN TIMANY, imec-distrinet, KU Leuven, Belgium LÉO STEFANESCO, IRIF, Université Paris Diderot
More informationCIS (More Propositional Calculus - 6 points)
1 CIS6333 Homework 1 (due Friday, February 1) 1. (Propositional Calculus - 10 points) --------------------------------------- Let P, Q, R range over state predicates of some program. Prove or disprove
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 informationPropositional Definite Clause Logic: Syntax, Semantics and Bottom-up Proofs
Propositional Definite Clause Logic: Syntax, Semantics and Bottom-up Proofs Computer Science cpsc322, Lecture 20 (Textbook Chpt 5.1.2-5.2.2 ) June, 6, 2017 CPSC 322, Lecture 20 Slide 1 Lecture Overview
More informationIntroduction 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 informationSoundness Theorem for System AS1
10 The Soundness Theorem for System AS1 1. Introduction...2 2. Soundness, Completeness, and Mutual Consistency...2 3. The Weak Soundness Theorem...4 4. The Strong Soundness Theorem...6 5. Appendix: Supporting
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 informationHoare Logic: Reasoning About Imperative Programs
Hoare Logic: Reasoning About Imperative Programs COMP1600 / COMP6260 Dirk Pattinson Australian National University Semester 2, 2018 Programming Paradigms Functional. (Haskell, SML, OCaml,... ) main paradigm:
More informationLecture Overview. 2 Weak Induction
COMPSCI 30: Discrete Mathematics for Computer Science February 18, 019 Lecturer: Debmalya Panigrahi Lecture 11 Scribe: Kevin Sun 1 Overview In this lecture, we study mathematical induction, which we often
More informationProgram verification using Hoare Logic¹
Program verification using Hoare Logic¹ Automated Reasoning - Guest Lecture Petros Papapanagiotou Part 2 of 2 ¹Contains material from Mike Gordon s slides: Previously on Hoare Logic A simple while language
More informationBarrier Proof. 1 Code and spec. April 21, 2016
Barrier Proof April 21, 2016 This document gives the Iris version of the specification and proof of the barrier originally presented in [1]. 1 Code and spec We aim to verify the following piece of code:
More informationFloyd-Hoare Style Program Verification
Floyd-Hoare Style Program Verification Deepak D Souza Department of Computer Science and Automation Indian Institute of Science, Bangalore. 9 Feb 2017 Outline of this talk 1 Overview 2 Hoare Triples 3
More informationLecture Notes on Call-by-Value and Call-by-Name
Lecture Notes on Call-by-Value and Call-by-Name 15-816: Substructural Logics Frank Pfenning Lecture 22 November 16, 2017 In this lecture we consider two different polarization strategies for structural
More informationHomework 5: Parallelism and Control Flow : Types and Programming Languages Fall 2015 TA: Evan Cavallo
Homework 5: Parallelism and Control Flow 15-814: Types and Programming Languages Fall 2015 TA: Evan Cavallo (ecavallo@cs.cmu.edu) Out: 11/5/15 Due: 11/17/15, 10:30am 1 Cost Dynamics In this section, we
More informationStep-Indexed Biorthogonality: a Tutorial Example
Step-Indexed Biorthogonality: a Tutorial Example Andrew Pitts University of Cambridge Computer Laboratory 1 Introduction The purpose of this note is to illustrate the use of step-indexing [2] combined
More informationAxiomatic Semantics. Lecture 9 CS 565 2/12/08
Axiomatic Semantics Lecture 9 CS 565 2/12/08 Axiomatic Semantics Operational semantics describes the meaning of programs in terms of the execution steps taken by an abstract machine Denotational semantics
More informationIn this episode of The Verification Corner, Rustan Leino talks about Loop Invariants. He gives a brief summary of the theoretical foundations and
In this episode of The Verification Corner, Rustan Leino talks about Loop Invariants. He gives a brief summary of the theoretical foundations and shows how a program can sometimes be systematically constructed
More informationITI Introduction to Computing II
(with contributions from R. Holte) School of Electrical Engineering and Computer Science University of Ottawa Version of January 9, 2019 Please don t print these lecture notes unless you really need to!
More informationLearning Goals of CS245 Logic and Computation
Learning Goals of CS245 Logic and Computation Alice Gao April 27, 2018 Contents 1 Propositional Logic 2 2 Predicate Logic 4 3 Program Verification 6 4 Undecidability 7 1 1 Propositional Logic Introduction
More informationCSE 505, Fall 2009, Midterm Examination 5 November Please do not turn the page until everyone is ready.
CSE 505, Fall 2009, Midterm Examination 5 November 2009 Please do not turn the page until everyone is ready Rules: The exam is closed-book, closed-note, except for one side of one 85x11in piece of paper
More informationLecture Notes: Axiomatic Semantics and Hoare-style Verification
Lecture Notes: Axiomatic Semantics and Hoare-style Verification 17-355/17-665/17-819O: Program Analysis (Spring 2018) Claire Le Goues and Jonathan Aldrich clegoues@cs.cmu.edu, aldrich@cs.cmu.edu It has
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 informationAutomata-Theoretic Model Checking of Reactive Systems
Automata-Theoretic Model Checking of Reactive Systems Radu Iosif Verimag/CNRS (Grenoble, France) Thanks to Tom Henzinger (IST, Austria), Barbara Jobstmann (CNRS, Grenoble) and Doron Peled (Bar-Ilan University,
More informationLecture 2: Axiomatic semantics
Chair of Software Engineering Trusted Components Prof. Dr. Bertrand Meyer Lecture 2: Axiomatic semantics Reading assignment for next week Ariane paper and response (see course page) Axiomatic semantics
More informationProof Rules for Correctness Triples
Proof Rules for Correctness Triples CS 536: Science of Programming, Fall 2018 A. Why? We can t generally prove that correctness triples are valid using truth tables. We need proof axioms for atomic statements
More informationOutline. 1 Introduction. 3 Quicksort. 4 Analysis. 5 References. Idea. 1 Choose an element x and reorder the array as follows:
Outline Computer Science 331 Quicksort Mike Jacobson Department of Computer Science University of Calgary Lecture #28 1 Introduction 2 Randomized 3 Quicksort Deterministic Quicksort Randomized Quicksort
More informationCoinductive big-step semantics and Hoare logics for nontermination
Coinductive big-step semantics and Hoare logics for nontermination Tarmo Uustalu, Inst of Cybernetics, Tallinn joint work with Keiko Nakata COST Rich Models Toolkit meeting, Madrid, 17 18 October 2013
More informationDerivatives in 2D. Outline. James K. Peterson. November 9, Derivatives in 2D! Chain Rule
Derivatives in 2D James K. Peterson Department of Biological Sciences and Department of Mathematical Sciences Clemson University November 9, 2016 Outline Derivatives in 2D! Chain Rule Let s go back to
More informationCSC236H Lecture 2. Ilir Dema. September 19, 2018
CSC236H Lecture 2 Ilir Dema September 19, 2018 Simple Induction Useful to prove statements depending on natural numbers Define a predicate P(n) Prove the base case P(b) Prove that for all n b, P(n) P(n
More information1 Overview. 2 Extreme Points. AM 221: Advanced Optimization Spring 2016
AM 22: Advanced Optimization Spring 206 Prof. Yaron Singer Lecture 7 February 7th Overview In the previous lectures we saw applications of duality to game theory and later to learning theory. In this lecture
More informationFunctional Programming with F# Overview and Basic Concepts
Functional Programming with F# Overview and Basic Concepts Radu Nicolescu Department of Computer Science University of Auckland 27 Sep 2017 1 / 52 1 Background 2 Overview 3 Type System and Type Inference
More informationReasoning About Imperative Programs. COS 441 Slides 10b
Reasoning About Imperative Programs COS 441 Slides 10b Last time Hoare Logic: { P } C { Q } Agenda If P is true in the initial state s. And C in state s evaluates to s. Then Q must be true in s. Program
More informationIn case (1) 1 = 0. Then using and from the previous lecture,
Math 316, Intro to Analysis The order of the real numbers. The field axioms are not enough to give R, as an extra credit problem will show. Definition 1. An ordered field F is a field together with a nonempty
More informationType 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 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 informationProgramming Languages
CSE 230: Winter 2008 Principles of Programming Languages Lecture 6: Axiomatic Semantics Deriv. Rules for Hoare Logic `{A} c {B} Rules for each language construct ` {A} c 1 {B} ` {B} c 2 {C} ` {A} skip
More informationProgram verification. Hoare triples. Assertional semantics (cont) Example: Semantics of assignment. Assertional semantics of a program
Program verification Assertional semantics of a program Meaning of a program: relation between its inputs and outputs; specified by input assertions (pre-conditions) and output assertions (post-conditions)
More informationFirst-Order Logic. 1 Syntax. Domain of Discourse. FO Vocabulary. Terms
First-Order Logic 1 Syntax Domain of Discourse The domain of discourse for first order logic is FO structures or models. A FO structure contains Relations Functions Constants (functions of arity 0) FO
More informationTyping λ-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 informationOverview of Today s Lecture
Branden Fitelson Philosophy 4515 (Advanced Logic) Notes 1 Overview of Today s Lecture Administrative Stuff HW #1 grades and solutions have been posted Please make sure to work through the solutions HW
More informationCylindrical Algebraic Decomposition in Coq
Cylindrical Algebraic Decomposition in Coq MAP 2010 - Logroño 13-16 November 2010 Assia Mahboubi INRIA Microsoft Research Joint Centre (France) INRIA Saclay Île-de-France École Polytechnique, Palaiseau
More informationLecture 5 : Proofs DRAFT
CS/Math 240: Introduction to Discrete Mathematics 2/3/2011 Lecture 5 : Proofs Instructor: Dieter van Melkebeek Scribe: Dalibor Zelený DRAFT Up until now, we have been introducing mathematical notation
More informationRelational Models and Program Logics: Logical Relations in Iris
1 Relational Models and Program Logics: Logical Relations in Iris Lars Birkedal Aaarhus University Joint work with Amin Timany and Robbert Krebbers October 2017, Shonan, Japan 2 Relational Models and Program
More informationLING 501, Fall 2004: Quantification
LING 501, Fall 2004: Quantification The universal quantifier Ax is conjunctive and the existential quantifier Ex is disjunctive Suppose the domain of quantification (DQ) is {a, b}. Then: (1) Ax Px Pa &
More information(Inv) Computing Invariant Factors Math 683L (Summer 2003)
(Inv) Computing Invariant Factors Math 683L (Summer 23) We have two big results (stated in (Can2) and (Can3)) concerning the behaviour of a single linear transformation T of a vector space V In particular,
More informationSpecial Topics on Applied Mathematical Logic
Special Topics on Applied Mathematical Logic Spring 2012 Lecture 04 Jie-Hong Roland Jiang National Taiwan University March 20, 2012 Outline First-Order Logic Truth and Models (Semantics) Logical Implication
More informationCSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis. Catie Baker Spring 2015
CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis Catie Baker Spring 2015 Today Registration should be done. Homework 1 due 11:59pm next Wednesday, April 8 th. Review math
More informationa. ~p : if p is T, then ~p is F, and vice versa
Lecture 10: Propositional Logic II Philosophy 130 3 & 8 November 2016 O Rourke & Gibson I. Administrative A. Group papers back to you on November 3. B. Questions? II. The Meaning of the Conditional III.
More informationCS522 - Programming Language Semantics
1 CS522 - Programming Language Semantics Simply Typed Lambda Calculus Grigore Roşu Department of Computer Science University of Illinois at Urbana-Champaign 2 We now discuss a non-trivial extension of
More informationProgram Verification using Separation Logic Lecture 0 : Course Introduction and Assertion Language. Hongseok Yang (Queen Mary, Univ.
Program Verification using Separation Logic Lecture 0 : Course Introduction and Assertion Language Hongseok Yang (Queen Mary, Univ. of London) Dream Automatically verify the memory safety of systems software,
More informationLING/C SC/PSYC 438/538. Lecture 17 Sandiway Fong
LING/C SC/PSYC 438/538 Lecture 7 Sandiway Fong Today's Topic Review of ungraded homework Closure properties of FSA Practice! Homework out on Thursday From last time Ungraded Homework 6 apply the set-of-states
More informationInduction and Recursion
Induction and Recursion Prof. Clarkson Fall 2016 Today s music: Dream within a Dream from the soundtrack to Inception by Hans Zimmer Review Previously in 3110: Behavioral equivalence Proofs of correctness
More informationIndividuals and Relations
Individuals and Relations It is useful to view the world as consisting of individuals (objects, things) and relations among individuals. Often features are made from relations among individuals and functions
More information0.1 Random useful facts. 0.2 Language Definition
0.1 Random useful facts Lemma double neg : P : Prop, {P} + { P} P P. Lemma leq dec : n m, {n m} + {n > m}. Lemma lt dec : n m, {n < m} + {n m}. 0.2 Language Definition Definition var := nat. Definition
More informationFinite Automata Theory and Formal Languages TMV027/DIT321 LP Recap: Logic, Sets, Relations, Functions
Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2017 Formal proofs; Simple/strong induction; Mutual induction; Inductively defined sets; Recursively defined functions. Lecture 3 Ana Bove
More information20.1 2SAT. CS125 Lecture 20 Fall 2016
CS125 Lecture 20 Fall 2016 20.1 2SAT We show yet another possible way to solve the 2SAT problem. Recall that the input to 2SAT is a logical expression that is the conunction (AND) of a set of clauses,
More informationITI Introduction to Computing II
(with contributions from R. Holte) School of Electrical Engineering and Computer Science University of Ottawa Version of January 11, 2015 Please don t print these lecture notes unless you really need to!
More information20D - Homework Assignment 4
Brian Bowers (TA for Hui Sun) MATH 0D Homework Assignment November, 03 0D - Homework Assignment First, I will give a brief overview of how to use variation of parameters. () Ensure that the differential
More informationE.g. The set RE of regular expressions is given by the following rules:
1 Lecture Summary We gave a brief overview of inductively defined sets, inductively defined functions, and proofs by structural induction We showed how to prove that a machine is correct using induction
More informationWarm-Up Problem. Let be a Predicate logic formula and a term. Using the fact that. (which can be proven by structural induction) show that 1/26
Warm-Up Problem Let be a Predicate logic formula and a term Using the fact that I I I (which can be proven by structural induction) show that 1/26 Predicate Logic: Natural Deduction Carmen Bruni Lecture
More informationIntroduction to Axiomatic Semantics
Introduction to Axiomatic Semantics Meeting 9, CSCI 5535, Spring 2009 Announcements Homework 3 is out, due Mon Feb 16 No domain theory! Homework 1 is graded Feedback attached 14.2 (mean), 13 (median),
More informationTuring machines and linear bounded automata
and linear bounded automata Informatics 2A: Lecture 30 John Longley School of Informatics University of Edinburgh jrl@inf.ed.ac.uk 25 November 2016 1 / 17 The Chomsky hierarchy: summary Level Language
More informationInf2D 06: Logical Agents: Knowledge Bases and the Wumpus World
Inf2D 06: Logical Agents: Knowledge Bases and the Wumpus World School of Informatics, University of Edinburgh 26/01/18 Slide Credits: Jacques Fleuriot, Michael Rovatsos, Michael Herrmann Outline Knowledge-based
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 informationDiscrete Mathematics
Discrete Mathematics Jeremy Siek Spring 2010 Jeremy Siek Discrete Mathematics 1 / 20 Outline of Lecture 4 1. Overview of First-Order Logic 2. Beyond Booleans: natural numbers, integers, etc. 3. Universal
More information6.001 Recitation 22: Streams
6.001 Recitation 22: Streams RI: Gerald Dalley, dalleyg@mit.edu, 4 May 2007 http://people.csail.mit.edu/dalleyg/6.001/sp2007/ The three chief virtues of a programmer are: Laziness, Impatience and Hubris
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 informationFinite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018
Finite Automata Theory and Formal Languages TMV27/DIT32 LP4 28 Lecture 5 Ana Bove March 26th 28 Recap: Inductive sets, (terminating) recursive functions, structural induction To define an inductive set
More informationTypes and Programming Languages (15-814), Fall 2018 Assignment 4: Data Representation (Sample Solutions)
Types and Programming Languages (15-814), Fall 2018 Assignment 4: Data Representation (Sample Solutions) Contact: 15-814 Course Staff Due Tuesday, October 16, 2018, 10:30am This assignment is due by 10:30am
More informationThe Importance of Being Formal. Martin Henz. February 5, Propositional Logic
The Importance of Being Formal Martin Henz February 5, 2014 Propositional Logic 1 Motivation In traditional logic, terms represent sets, and therefore, propositions are limited to stating facts on sets
More informationIntroduction to Formal Proof. 5: Theories
Introduction to Formal Proof Bernard Sufrin Trinity Term 2018 5: Theories [05-theories] Theories Theories The subject matter of predicate logic is all models (over all signatures) Mathematical logicians
More informationA Relational Model of Types-and-Effects in Higher-Order Concurrent Separation Logic
A Relational Model of Types-and-Effects in Higher-Order Concurrent Separation Logic Morten Krogh-Jespersen Aarhus University, Denmark mkj@cs.au.dk Kasper Svendsen University of Cambridge, UK ks775@cl.cam.ac.uk
More informationRelational Parametricity and Separation Logic. Hongseok Yang, Queen Mary, Univ. of London Lars Birkedal, IT Univ. of Copenhagen
Relational Parametricity and Separation Logic Hongseok Yang, Queen Mary, Univ. of London Lars Birkedal, IT Univ. of Copenhagen Challenge Develop a theory of data abstraction for pointer programs. When
More informationRealizability Semantics of Parametric Polymorphism, General References, and Recursive Types
Realizability Semantics of Parametric Polymorphism, General References, and Recursive Types Lars Birkedal IT University of Copenhagen Joint work with Kristian Støvring and Jacob Thamsborg Oct, 2008 Lars
More informationCS156: The Calculus of Computation Zohar Manna Autumn 2008
Page 3 of 52 Page 4 of 52 CS156: The Calculus of Computation Zohar Manna Autumn 2008 Lecturer: Zohar Manna (manna@cs.stanford.edu) Office Hours: MW 12:30-1:00 at Gates 481 TAs: Boyu Wang (wangboyu@stanford.edu)
More informationFirst-order logic Syntax and semantics
1 / 43 First-order logic Syntax and semantics Mario Alviano University of Calabria, Italy A.Y. 2017/2018 Outline 2 / 43 1 Motivation Why more than propositional logic? Intuition 2 Syntax Terms Formulas
More informationSpring 2016 Program Analysis and Verification. Lecture 3: Axiomatic Semantics I. Roman Manevich Ben-Gurion University
Spring 2016 Program Analysis and Verification Lecture 3: Axiomatic Semantics I Roman Manevich Ben-Gurion University Warm-up exercises 1. Define program state: 2. Define structural semantics configurations:
More informationLogic I - Session 22. Meta-theory for predicate logic
Logic I - Session 22 Meta-theory for predicate logic 1 The course so far Syntax and semantics of SL English / SL translations TT tests for semantic properties of SL sentences Derivations in SD Meta-theory:
More informationSystem F. Proofs and Types. Bow-Yaw Wang. Academia Sinica. Spring 2012
Proofs and Types System F Bow-Yaw Wang Academia Sinica Spring 2012 The Calculus Types in System F are defined as follows. type variables: X, Y,.... if U and V are types, then U V is a type. if V is a type
More informationChapter 3: Propositional Calculus: Deductive Systems. September 19, 2008
Chapter 3: Propositional Calculus: Deductive Systems September 19, 2008 Outline 1 3.1 Deductive (Proof) System 2 3.2 Gentzen System G 3 3.3 Hilbert System H 4 3.4 Soundness and Completeness; Consistency
More informationHoare Logic for Realistically Modelled Machine Code
Hoare Logic for Realistically Modelled Machine Code Magnus O. Myreen, Michael J. C. Gordon TACAS, March 2007 This talk Contribution: A mechanised Hoare logic for machine code with emphasis on resource
More informationProgramming with Dependent Types in Coq
Programming with Dependent Types in Coq Matthieu Sozeau LRI, Univ. Paris-Sud - Démons Team & INRIA Saclay - ProVal Project PPS Seminar February 26th 2009 Paris, France Coq A higher-order, polymorphic logic:
More informationQuick Sort Notes , Spring 2010
Quick Sort Notes 18.310, Spring 2010 0.1 Randomized Median Finding In a previous lecture, we discussed the problem of finding the median of a list of m elements, or more generally the element of rank m.
More informationCOMP219: Artificial Intelligence. Lecture 19: Logic for KR
COMP219: Artificial Intelligence Lecture 19: Logic for KR 1 Overview Last time Expert Systems and Ontologies Today Logic as a knowledge representation scheme Propositional Logic Syntax Semantics Proof
More informationNested Hoare Triples and Frame Rules for Higher-order Store
Nested Hoare Triples and Frame Rules for Higher-order Store Jan Schwinghammer 1, Lars Birkedal 2, Bernhard Reus 3, and Hongseok Yang 4 1 Saarland University, Saarbrücken 2 IT University of Copenhagen 3
More informationLecture Notes on Programs with Arrays
15-414: Bug Catching: Automated Program Verification Lecture Notes on Programs with Arrays Matt Fredrikson Ruben Martins Carnegie Mellon University Lecture 6 1 Introduction The previous lecture focused
More informationSTEP Support Programme. Pure STEP 1 Questions
STEP Support Programme Pure STEP 1 Questions 2012 S1 Q4 1 Preparation Find the equation of the tangent to the curve y = x at the point where x = 4. Recall that x means the positive square root. Solve the
More informationNonmonotone Inductive Definitions
Nonmonotone Inductive Definitions Shane Steinert-Threlkeld March 15, 2012 Brief Review of Inductive Definitions Inductive Definitions as Sets of Clauses Definition A set B of clauses (of the form A b)
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 informationComputer Algorithms CISC4080 CIS, Fordham Univ. Outline. Last class. Instructor: X. Zhang Lecture 2
Computer Algorithms CISC4080 CIS, Fordham Univ. Instructor: X. Zhang Lecture 2 Outline Introduction to algorithm analysis: fibonacci seq calculation counting number of computer steps recursive formula
More informationComputer Algorithms CISC4080 CIS, Fordham Univ. Instructor: X. Zhang Lecture 2
Computer Algorithms CISC4080 CIS, Fordham Univ. Instructor: X. Zhang Lecture 2 Outline Introduction to algorithm analysis: fibonacci seq calculation counting number of computer steps recursive formula
More information