Relational Parametricity and Separation Logic. Hongseok Yang, Queen Mary, Univ. of London Lars Birkedal, IT Univ. of Copenhagen
|
|
- Godfrey Rodgers
- 5 years ago
- Views:
Transcription
1 Relational Parametricity and Separation Logic Hongseok Yang, Queen Mary, Univ. of London Lars Birkedal, IT Univ. of Copenhagen
2 Challenge Develop a theory of data abstraction for pointer programs. When are two modules equivalent in the presence of pointers?
3 Message Focus on good clients of modules. Provability in sep. logic is a good candidate for deciding good clients.
4 Module Buffer1 *b=*p; free(p); b put(p) 5 get()
5 Module Buffer1 *b=*p; free(p); b put(p) 5 get()
6 Module Buffer1 *b=*p; free(p); b put(p) 5 get() 5
7 Module Buffer1 *b=*p; free(p); b put(p) 5 get()
8 Module Buffer1 *b=*p; free(p); b 5 put(p) get() 9
9 Module Buffer1 *b=*p; free(p); b 5 9 put(p) get()
10 Module Buffer1 *b=*p; free(p); b 9 9 put(p) get()
11 Module Buffer1 *b=*p; free(p); b 9 9 put(p) get()
12 Module Buffer1 *b=*p; free(p); Module Buffer2 free(b); b=p; b 9 put(p) get()
13 Module Buffer1 *b=*p; free(p); Module Buffer2 free(b); b=p; b 9 put(p) get() 3
14 Module Buffer1 *b=*p; free(p); Module Buffer2 free(b); b=p; b 9 3 put(p) get()
15 Module Buffer1 *b=*p; free(p); Module Buffer2 free(b); b=p; b 5 3 put(p) get()
16 Module Buffer1 *b=*p; free(p); Module Buffer2 free(b); b=p; b 5 3 put(p) get()
17 Module Buffer1 *b=*p; free(p); Module Buffer2 free(b); b=p; b 3 put(p) get()
18 Module Buffer1 *b=*p; free(p); Module Buffer2 free(b); b=p; Client Program { emp p=malloc(); *p=5; { p - put(p); { emp n = read(); { emp *p=3; {??? b 3 put(p) get()
19 Module Buffer1 Module Buffer2 Interface Spec *b=*p; free(p); {p -put(p){emp {empget(){emp free(b); b=p; Client Program { emp p=malloc(); *p=5; { p - put(p); { emp n = read(); { emp *p=3; {??? b 3 put(p) get()
20 Module Buffer1 Module Buffer2 Interface Spec *b=*p; free(p); {p -put(p){emp {empget(){emp free(b); b=p; Client Program { emp p=malloc(); *p=5; { p - put(p); { emp n = read(); { emp *p=3; {??? b 3 put(p) get()
21 Module Buffer1 Module Buffer2 Interface Spec *b=*p; free(p); {p -put(p){emp {empget(){emp free(b); b=p; Client Program { emp p=malloc(); *p=5; { p - put(p); { emp n = read(); { emp *p=3; {??? b 3 put(p) get()
22 Module Buffer1 Module Buffer2 Interface Spec *b=*p; free(p); {p -put(p){emp {empget(){emp free(b); b=p; Client Program { emp p=malloc(); *p=5; { p - put(p); { emp n = read(); { emp *p=3; {??? b 3 put(p) get()
23 Module Buffer1 Module Buffer2 Interface Spec *b=*p; free(p); {p -put(p){emp {empget(){emp free(b); b=p; Client Program { emp p=malloc(); *p=5; { p - put(p); { emp n = read(); { emp *p=3; {??? b 3 put(p) get()
24 Module Buffer1 Module Buffer2 Interface Spec *b=*p; free(p); {p -put(p){emp {empget(){emp free(b); b=p; Client Program { emp p=malloc(); *p=5; { p - put(p); { emp n = read(); { emp *p=3; {??? b 3 put(p) get()
25 Main Result Informally Buffer1 and Buffer2 are observationally equivalent, if we consider only provable clients C in sep. logic: for some P and Q, Γ SL ( {p put(p){emp {empget(){emp ) {P C{Q
26 Main Result Informally Buffer1 and Buffer2 are observationally equivalent, if we consider only provable clients C in sep. logic: for some P and Q, Γ SL ( {p put(p){emp {empget(){emp ) {P C{Q
27 Main Result Informally Buffer1 and Buffer2 are observationally equivalent, if we consider only provable clients C in sep. logic: for some P and Q, Γ SL ( {p put(p){emp {empget(){emp ) {P C{Q
28 Main Result Informally Buffer1 and Buffer2 are observationally equivalent, if we consider only provable clients C in sep. logic: for some P and Q, Γ SL ( {p put(p){emp {empget(){emp ) {P C{Q
29 Main Result Informally Buffer1 and Buffer2 are observationally equivalent, if we consider only provable clients C in sep. logic: for some P and Q, Γ SL ( {p put(p){emp {empget(){emp ) {P C{Q Client Program { emp p=malloc(); *p=5; { p - put(p); { emp n = read(); { emp *p=3; {???
30 Main Result Informally Buffer1 and Buffer2 are observationally equivalent, if we consider only provable clients C in sep. logic: for some P and Q, Γ SL ( {p put(p){emp {empget(){emp ) {P C{Q
31 Main Result Informally Buffer1 and Buffer2 are observationally equivalent, if we consider only provable clients C in sep. logic: for some P and Q, Γ SL ( {p put(p){emp {empget(){emp ) {P C{Q for all r, put 1 (p) C[put 1, get 1 ] if eq [p ] r eq [emp ] r..., then eq [P ] r eq [Q ] r put 2 (p) C[put 2, get 2 ]
32 By Relational Main Result Semantics Informally of Specifications in Sep. Logic Buffer1 and Buffer2 are observationally equivalent, if we consider only provable clients C in sep. logic: for some P and Q, Γ SL ( {p put(p){emp {empget(){emp ) {P C{Q for all r, put 1 (p) C[put 1, get 1 ] if eq [p ] r eq [emp ] r..., then eq [P ] r eq [Q ] r put 2 (p) C[put 2, get 2 ]
33 Sample Specification k : com {l k{emp {P C{Q
34 Syntax k : com {l k{emp {P C{Q Commands. (e.g. free(x), *x=y.)
35 Syntax k : com {l k{emp {P C{Q Commands. (e.g. free(x), *x=y.) Assertions. (e.g. emp, l -.)
36 Syntax k : com {l k{emp {P C{Q Commands. (e.g. free(x), *x=y.) Assertions. (e.g. emp, l -.) Specifications. (e.g. {l -k{emp, {empc{emp.)
37 Semantics of Commands and Assertions k : com {l k{emp {P C{Q Heaps [[com]] [[assert]] def = Locations fin Values def = Heaps local (Heaps {fault) def = P(Heaps)
38 Relational Semantics of Specifications k : com {l k{emp {P C{Q η 1, η 2, r = ϕ
39 Relational Semantics of Specifications k : com {l k{emp {P C{Q Environments E.g. [k [[free(l)]]] η 1, η 2, r = ϕ
40 Relational Semantics of Specifications k : com {l k{emp {P C{Q Environments E.g. [k [[free(l)]]] η 1, η 2, r = ϕ Relations on Heaps E.g. h 1 [eq H ]h 2 iff h 1 = h 2 h 2 q h 1 [allocemp l ]h 2 iff v. h 1 =[l v] h 2 =[]
41 Semantics of Hoare Triples k : com {l k{emp {P C{Q η 1, η 2, r = {P C{Q iff ] [[C]] η1 [eq [P ] r eq [Q ] r [[C]] η2
42 Semantics of Hoare Triples Separating Conj. for Relations: h 1 [r 1 r 2 ]h 2 k : com {l k{emp {P C{Q η 1, η 2, r = {P C{Q iff ] [[C]] η1 [eq [P ] r eq [Q ] r [[C]] η2 holds iff h 1 = n 1 m 1 h 2 = n 2 m 2 n 1 [r 1 ]m 1 n 2 [r 2 ]m 2
43 Semantics of Hoare Triples Separating Conj. for Relations: h 1 [r 1 r 2 ]h 2 k : com {l k{emp {P C{Q η 1, η 2, r = {P C{Q iff ] [[C]] η1 [eq [P ] r eq [Q ] r [[C]] η2 holds iff h 1 = n 1 m 1 h 2 = n 2 m 2 n 1 [r 1 ]m 1 n 2 [r 2 ]m 2 h1 = n1!m1 eq [P ] r h2 = n2!m2
44 Semantics of Hoare Triples Separating Conj. for Relations: h 1 [r 1 r 2 ]h 2 k : com {l k{emp {P C{Q η 1, η 2, r = {P C{Q iff ] [[C]] η1 [eq [P ] r eq [Q ] r [[C]] η2 holds iff h 1 = n 1 m 1 h 2 = n 2 m 2 n 1 [r 1 ]m 1 n 2 [r 2 ]m 2 h1 = n1!m1 eq [P ] r h2 = n2!m2 [[C]] η1 [[C]] η2
45 Semantics of Hoare Triples Separating Conj. for Relations: h 1 [r 1 r 2 ]h 2 k : com {l k{emp {P C{Q η 1, η 2, r = {P C{Q iff ] [[C]] η1 [eq [P ] r eq [Q ] r [[C]] η2 holds iff h 1 = n 1 m 1 h 2 = n 2 m 2 n 1 [r 1 ]m 1 n 2 [r 2 ]m 2 h1 = n1!m1 eq [P ] r h2 = n2!m2 [[C]] η1 [[C]] η2 h'1 = n'1!m'1 eq [Q ] r h'2 = n'2!m'2
46 Semantics of Hoare Triples Separating Conj. for Relations: [k [[ l = 0]]], [k [[skip]]], allocemp l h 1 [r 1 r 2 ]h 2 k : com {l k{emp {P C{Q η 1, η 2, r = {P C{Q iff ] [[C]] η1 [eq [P ] r eq [Q ] r [[C]] η2 holds iff = {empk{emp η 1, η 2, eq [emp ] = {empdispose(l){emp h 1 = n 1 m 1 h 2 = n 2 m 2 n 1 [r 1 ]m 1 n 2 [r 2 ]m 2 [] [l v] eq [emp ] allocemp l [] []
47 Semantics of Hoare Triples Separating Conj. for Relations: [k [[ l = 0]]], [k [[skip]]], allocemp l h 1 [r 1 r 2 ]h 2 k : com {l k{emp {P C{Q η 1, η 2, r = {P C{Q iff ] [[C]] η1 [eq [P ] r eq [Q ] r [[C]] η2 holds iff = {empk{emp η 1, η 2, eq [emp ] = {empdispose(l){emp h 1 = n 1 m 1 h 2 = n 2 m 2 n 1 [r 1 ]m 1 n 2 [r 2 ]m 2 [] [l v] [[k]] η1 = [[ l = 0]] eq [emp ] allocemp l [] [] [[k]] η2 = [[skip]]
48 Semantics of Hoare Triples Separating Conj. for Relations: [k [[ l = 0]]], [k [[skip]]], allocemp l h 1 [r 1 r 2 ]h 2 k : com {l k{emp {P C{Q η 1, η 2, r = {P C{Q iff ] [[C]] η1 [eq [P ] r eq [Q ] r [[C]] η2 holds iff = {empk{emp η 1, η 2, eq [emp ] = {empdispose(l){emp h 1 = n 1 m 1 h 2 = n 2 m 2 n 1 [r 1 ]m 1 n 2 [r 2 ]m 2 [] [l v] [[k]] η1 = [[ l = 0]] [] [l 0] eq [emp ] [] [] allocemp l [[k]] η2 = [[skip]] eq [emp ] [] [] allocemp l
49 Semantics of Hoare Triples Separating Conj. for Relations: h 1 [r 1 r 2 ]h 2 k : com {l k{emp {P C{Q η 1, η 2, r = {P C{Q iff ] [[C]] η1 [eq [P ] r eq [Q ] r [[C]] η2 holds iff η 1, η 2, eq [emp ] = {l dispose(l){emp {empdispose(l){emp h 1 = n 1 m 1 h 2 = n 2 m 2 n 1 [r 1 ]m 1 n 2 [r 2 ]m 2 [l 0] [] eq [l ] eq [emp ] [l 0] []
50 Semantics of Hoare Triples Separating Conj. for Relations: h 1 [r 1 r 2 ]h 2 k : com {l k{emp {P C{Q η 1, η 2, r = {P C{Q iff ] [[C]] η1 [eq [P ] r eq [Q ] r [[C]] η2 holds iff η 1, η 2, eq [emp ] = {l dispose(l){emp {empdispose(l){emp h 1 = n 1 m 1 h 2 = n 2 m 2 n 1 [r 1 ]m 1 n 2 [r 2 ]m 2 [l 0] [] [[dispose(l)]] η1 eq [l ] [l 0] [] eq [emp ] [[dispose(l)]] η2
51 Semantics of Hoare Triples Separating Conj. for Relations: h 1 [r 1 r 2 ]h 2 k : com {l k{emp {P C{Q η 1, η 2, r = {P C{Q iff ] [[C]] η1 [eq [P ] r eq [Q ] r [[C]] η2 holds iff η 1, η 2, eq [emp ] = {l dispose(l){emp {empdispose(l){emp h 1 = n 1 m 1 h 2 = n 2 m 2 n 1 [r 1 ]m 1 n 2 [r 2 ]m 2 [l 0] [] [[dispose(l)]] η1 [] [] eq [l ] eq [emp ] eq [emp ] eq [emp ] [l 0] [] [[dispose(l)]] η2 [] []
52 Semantics of Hoare Triples Separating Conj. for Relations: h 1 [r 1 r 2 ]h 2 k : com {l k{emp {P C{Q η 1, η 2, r = {P C{Q iff ] [[C]] η1 [eq [P ] r eq [Q ] r [[C]] η2 holds iff η 1, η 2, eq [emp ] = {l dispose(l){emp {empdispose(l){emp h 1 = n 1 m 1 h 2 = n 2 m 2 n 1 [r 1 ]m 1 n 2 [r 2 ]m 2 Lemma: Suppose C does not call functions. = usual {P C{Q if and only if = new {P C{Q [l 0] [] [[dispose(l)]] η1 [] [] eq [l ] eq [emp ] eq [emp ] eq [emp ] [l 0] [] [[dispose(l)]] η2 [] []
53 Semantics of Implications k : com {l k{emp {P C{Q η 1, η 2, r = ϕ ψ iff r. if (η 1, η 2, r r = ϕ), then (η 1, η 2, r r = ψ)
54 Semantics of Implications k : com {l k{emp {P C{Q η 1, η 2, r = ϕ ψ iff r. if (η 1, η 2, r r = ϕ), then (η 1, η 2, r r = ψ) Kripke Semantics of Intuit. Logic. Worlds: Relations r on Heaps Accessibility Relation: r r r 0. r r 0 = r.
55 Relational Semantics of Specifications k : com {l k{emp {P C{Q
56 Relational Semantics of Specifications k : com {l k{emp {P C{Q η 1, η 2, eq [emp ] = {l k{emp {P C{Q
57 Relational Semantics of Specifications k : com {l k{emp {P C{Q η 1, η 2, eq [emp ] = {l k{emp {P C{Q r. if (η 1, η 2, r = {l k{emp), then (η 1, η 2, r = {P C{Q).
58 Relational Semantics of Specifications k : com {l k{emp {P C{Q η 1, η 2, eq [emp ] = {l k{emp {P C{Q r. if (η 1, η 2, r = {l k{emp), then (η 1, η 2, r = {P C{Q). r. if η 1 (k)[eq a r eq b r]η 2 (k), then [[C]] η1 [eq p r eq q r][c]] η2 (where a = [[l ]], b = [[emp]], p = [[P ]], and q = [[Q]])
59 Semantics of Triples [[com]] def = Heaps local (Heaps {fault) η 1, η 2, r = {P C{Q iff r. [[C]] η1 [ eq [P ] r r eq [Q ] r r ] [[C]] η2
60 Semantics of Triples [[com]] def = Heaps local (Heaps {fault) η 1, η 2, r = {P C{Q iff r. [[C]] η1 [ eq [P ] r r eq [Q ] r r ] [[C]] η2
61 Semantics of Triples [[com]] def = Heaps local (Heaps {fault) η 1, η 2, r = {P C{Q iff r. [[C]] η1 [ eq [P ] r r eq [Q ] r r ] [[C]] η2
62 Semantics of Triples [[com]] def = Heaps local (Heaps {fault) η 1, η 2, r = {P C{Q iff r. [[C]] η1 [ eq [P ] r r eq [Q ] r r ] [[C]] η2 [Lemma] Supp. C does not call fns. If = new {P C{Q, [[C]] satisfies the locality cond. restricted to [[P true]]. [Frame Property] h [[P true]] [[C]](h) = h 1 = [[C]](h h 9 ) = h 1 h 9
63 [Frame Property when set quantification is used] Semantics of Triples h [[P true]] [[C]](h) = h 1 = h 2 [[Q]]. [[C]](h h 9 ) = h 2 h 9 [[com]] def = Heaps local (Heaps {fault) η 1 η,, ηq 2, r = = {P {P C{Q iff [ ] r q. 0.[[C]] [[C]] η1 eq [P ] r r eq [Q ] r r η ([[P ]] q 0 q) [[C]] η ([[Q]] q 0 [[C]] q) η2 [Lemma] Supp. C does not call fns. If = new {P C{Q, [[C]] satisfies the locality cond. restricted to [[P true]]. [Frame Property] h [[P true]] [[C]](h) = h 1 = [[C]](h h 9 ) = h 1 h 9
64 Semantics in the Paper Uses FM-domain theory and biorthogonality to deal with memory allocation.
65 Theory of Data Abstraction for Pointer Programs Focus on good clients. Provability in sep. logic is a good candidate for deciding good clients.
66 Relational Kripke Reading of Logic Can reveal that proofs in a logic says more than what are intended.
Program 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 informationLectures on Separation Logic. Lecture 2: Foundations
Lectures on Separation Logic. Lecture 2: Foundations Peter O Hearn Queen Mary, University of London Marktoberdorf Summer School, 2011 Outline for this lecture Part I : Assertions and Their Semantics Part
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 informationA Semantic Foundation for Hidden State
A Semantic Foundation for Hidden State Jan Schwinghammer 1, Hongseok Yang 2, Lars Birkedal 3, François Pottier 4, and Bernhard Reus 5 1 Saarland Univ. 2 Queen Mary Univ. of London 3 IT Univ. of Copenhagen
More informationNESTED HOARE TRIPLES AND FRAME RULES FOR HIGHER-ORDER STORE
Logical Methods in Computer Science Vol. 7 (3:21) 2011, pp. 1 42 www.lmcs-online.org Submitted Mar. 8, 2011 Published Sep. 28, 2011 NESTED HOARE TRIPLES AND FRAME RULES FOR HIGHER-ORDER STORE JAN SCHWINGHAMMER
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 informationStructuring the verification of heap-manipulating programs
Structuring the verification of heap-manipulating programs Aleksandar Nanevski (IMDEA Madrid) Viktor Vafeiadis (MSR / Univ. of Cambridge) Josh Berdine (MSR Cambridge) Hoare/Separation Logic Hoare logic
More informationSeparation Logic and the Mashup Isolation Problem
Separation Logic and the Mashup Isolation Problem Dept. of Computer Science, Stanford University Phd Qualifier Exam Talk Outline 1 Background Hoare Logic Intuition behind Separation Logic 2 The Mashup
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 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 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, Germany 3 University of Sussex, Brighton, UK
More informationPropositional Dynamic Logic
Propositional Dynamic Logic Contents 1 Introduction 1 2 Syntax and Semantics 2 2.1 Syntax................................. 2 2.2 Semantics............................... 2 3 Hilbert-style axiom system
More informationIntroduction to Permission-Based Program Logics Part II Concurrent Programs
Introduction to Permission-Based Program Logics Part II Concurrent Programs Thomas Wies New York University Example: Lock-Coupling List 2 3 5 7 8 9 There is one lock per node; threads acquire locks in
More informationFlow Interfaces Compositional Abstractions of Concurrent Data Structures. Siddharth Krishna, Dennis Shasha, and Thomas Wies
Flow Interfaces Compositional Abstractions of Concurrent Data Structures Siddharth Krishna, Dennis Shasha, and Thomas Wies Background Verifying programs, separation logic, inductive predicates Verifying
More informationA Brief History of Shared memory C M U
A Brief History of Shared memory S t e p h e n B r o o k e s C M U 1 Outline Revisionist history Rational reconstruction of early models Evolution of recent models A unifying framework Fault-detecting
More informationUniversität Augsburg
Universität Augsburg Algebraic Separation Logic H.-H. Dang P. Höfner B. Möller Report 2010-06 July 2010 Institut für Informatik D-86135 Augsburg Copyright c H.-H. Dang P. Höfner B. Möller Institut für
More informationRecent developments in concurrent program logics
Recent developments in concurrent program logics Viktor Vafeiadis University of Cambridge PSPL 2010 Why program logic? Reasoning framework Capture common reasoning principles Reduce accidental proof complexity
More informationA Semantic Foundation for Hidden State
A Semantic Foundation for Hidden State Jan Schwinghammer 1, Hongseo Yang 2, Lars Biredal 3, François Pottier 4, and Bernhard Reus 5 1 Saarland Univ. 2 Queen Mary Univ. of London 3 IT Univ. of Copenhagen
More informationFrom Separation Logic to Systems Software
From Separation Logic to Systems Software Peter O Hearn, Queen Mary Based on work of the SpaceInvader team: Cristiano Calcagno, Dino Distefano, Hongseok Yang, and me Special thanks to our SLAyer colleagues
More informationSeparation and Information Hiding
Separation and Information Hiding PETER W. O HEARN and HONGSEOK YANG Queen Mary, University of London and JOHN C. REYNOLDS Carnegie Mellon University 11 We investigate proof rules for information hiding,
More informationSeparation Logic and the Mashup Isolation Problem
Separation Logic and the Mashup Isolation Problem Ankur Taly Computer Science Department, Stanford University Abstract. This work was done as part of my PhD qualifier exam. My qualifier exam problem was
More informationChapter 4. Lists and List Segments. An Introduction to Separation Logic c 2011 John C. Reynolds February 17, 2011
Chapter 4 An Introduction to Separation Logic c 2011 John C. Reynolds February 17, 2011 Lists and List Segments In this chapter, we begin to explore data structures that represent abstract types of data.
More informationViews: Compositional Reasoning for Concurrent Programs
Views: Compositional Reasoning for Concurrent Programs Thomas Dinsdale-Young Imperial College td202@doc.ic.ac.uk Lars Birkedal IT University of Copenhagen birkedal@itu.dk Philippa Gardner Imperial College
More informationPutting order to the separation logic jungle
1 Putting order to the separation logic jungle Qinxiang Cao, Santiago Cuellar, Andrew Appel Department of Computer Science, Princeton University qinxiang@princeton.edu, scuellar@princeton.edu, appel@princeton.edu
More informationCollecting garbage concurrently (but correctly)
Collecting garbage concurrently (but correctly) Kamal Lodaya The Institute of Mathematical Sciences, Chennai Joint work with Kalpesh Kapoor (IIT, Guwahati) and Uday Reddy (U. Birmingham) 1 First order
More informationA Revisionist History of Concurrent Separation Logic
Available online at www.sciencedirect.com Electronic Notes in Theoretical Computer Science 276 (2011) 5 28 www.elsevier.com/locate/entcs A Revisionist History of Concurrent Separation Logic Stephen Brookes
More informationAN INTRODUCTION TO SEPARATION LOGIC. 2. Assertions
AN INTRODUCTION TO SEPARATION LOGIC 2. Assertions John C. Reynolds Carnegie Mellon University January 7, 2011 c 2011 John C. Reynolds Pure Assertions An assertion p is pure iff, for all stores s and all
More informationFlow Interfaces Compositional Abstractions of Concurrent Data Structures. Siddharth Krishna, Dennis Shasha, and Thomas Wies
Flow Interfaces Compositional Abstractions of Concurrent Data Structures Siddharth Krishna, Dennis Shasha, and Thomas Wies Background Verifying programs, separation logic, inductive predicates Slides courtesy
More informationSeparation Logic and Graphical Models
Separation Logic and Graphical Models John Wickerson and Tony Hoare Semantics Lunch, 25th October 2010 1 Trace composition Problem: Composition is non-deterministic. 2 Trace composition Problem: Composition
More informationBoolean bunched logic: its semantics and completeness
Boolean bunched logic: its semantics and completeness James Brotherston Programming Principles, Logic and Verification Group Dept. of Computer Science University College London, UK J.Brotherston@ucl.ac.uk
More informationNormal Forms of Propositional Logic
Normal Forms of Propositional Logic Bow-Yaw Wang Institute of Information Science Academia Sinica, Taiwan September 12, 2017 Bow-Yaw Wang (Academia Sinica) Normal Forms of Propositional Logic September
More informationHarvard School of Engineering and Applied Sciences CS 152: Programming Languages
Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Lecture 17 Tuesday, April 2, 2013 1 There is a strong connection between types in programming languages and propositions
More informationAxiomatic Semantics. Operational semantics. Good for. Not good for automatic reasoning about programs
Review Operational semantics relatively l simple many flavors (small vs. big) not compositional (rule for while) Good for describing language implementation reasoning about properties of the language eg.
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 informationStep-Indexed Kripke Models over Recursive Worlds
Step-Indexed Kripke Models over Recursive Worlds Lars Birkedal IT University of Copenhagen, Denmark birkedal@itu.dk Bernhard Reus University of Sussex, UK bernhard@sussex.ac.uk Jan Schwinghammer Saarland
More informationGraph Theory and Modal Logic
Osaka University of Economics and Law (OUEL) Aug. 5, 2013 BLAST 2013 at Chapman University Contents of this Talk Contents of this Talk 1. Graphs = Kripke frames. Contents of this Talk 1. Graphs = Kripke
More informationA semantics for concurrent separation logic
Theoretical Computer Science 375 (2007) 227 270 www.elsevier.com/locate/tcs A semantics for concurrent separation logic Stephen Brookes School of Computer Science, Carnegie Mellon University, 5000 Forbes
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 informationPositive provability logic
Positive provability logic Lev Beklemishev Steklov Mathematical Institute Russian Academy of Sciences, Moscow November 12, 2013 Strictly positive modal formulas The language of modal logic extends that
More informationErrata and Remarks for The Semantics and Proof Theory of the Logic of Bunched Implications BI-monograph-errata.
Errata and Remarks for The Semantics and Proof Theory of the Logic of Bunched Implications http://www.cs.bath.ac.uk/~pym/ BI-monograph-errata.pdf David J. Pym University of Bath 30 March, 2008 Abstract
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 informationNatural Deduction. Formal Methods in Verification of Computer Systems Jeremy Johnson
Natural Deduction Formal Methods in Verification of Computer Systems Jeremy Johnson Outline 1. An example 1. Validity by truth table 2. Validity by proof 2. What s a proof 1. Proof checker 3. Rules of
More informationRoy L. Crole. Operational Semantics Abstract Machines and Correctness. University of Leicester, UK
Midlands Graduate School, University of Birmingham, April 2008 1 Operational Semantics Abstract Machines and Correctness Roy L. Crole University of Leicester, UK Midlands Graduate School, University of
More informationVerified Characteristic Formulae for CakeML. Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 18, 2017
Verified Characteristic Formulae for CakeML Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 18, 2017 CakeML Has: references, modules, datatypes, exceptions, a FFI,... Doesn t have:
More informationThe Curry-Howard Isomorphism
The Curry-Howard Isomorphism Software Formal Verification Maria João Frade Departmento de Informática Universidade do Minho 2008/2009 Maria João Frade (DI-UM) The Curry-Howard Isomorphism MFES 2008/09
More informationIris: 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 informationA Pointer Logic for Object Diagrams
UNU-IIST International Institute for Software Technology A Pointer Logic for Object Diagrams Yifeng Chen and J W Sanders July 2007 UNU-IIST Report No. 379 R UNU-IIST and UNU-IIST Reports UNU-IIST (United
More informationConcurrent separation logic and operational semantics
MFPS 2011 Concurrent separation logic and operational semantics Viktor Vafeiadis Max Planck Institute for Software Systems (MPI-SWS), Germany Abstract This paper presents a new soundness proof for concurrent
More informationChapter 3. Specifications. 3.1 Hoare Triples. An Introduction to Separation Logic c 2011 John C. Reynolds February 3, 2011
Chapter 3 An Introduction to Separation Logic c 2011 John C. Reynolds February 3, 2011 Specifications From assertions, we move on to specifications, which describe the behavior of commands. In this chapter,
More informationReasoning about High-Level Tree Update and its Low-Level Implementation
Reasoning about High-Level Tree Update and its Low-Level Implementation Philippa Gardner and Uri Zarfaty, Imperial College London Abstract We relate Context Logic reasoning about a high-level tree update
More informationAutomatic Parallelization with Separation Logic
Automatic Parallelization with Separation Logic Mohammad Raza, Cristiano Calcagno, and Philippa Gardner Department of Computing, Imperial College London 180 Queen s Gate, London SW7 2AZ, UK {mraza,ccris,pg}@doc.ic.ac.uk
More informationAn Introduction to Modal Logic III
An Introduction to Modal Logic III Soundness of Normal Modal Logics Marco Cerami Palacký University in Olomouc Department of Computer Science Olomouc, Czech Republic Olomouc, October 24 th 2013 Marco Cerami
More informationTemporal & Modal Logic. Acronyms. Contents. Temporal Logic Overview Classification PLTL Syntax Semantics Identities. Concurrency Model Checking
Temporal & Modal Logic E. Allen Emerson Presenter: Aly Farahat 2/12/2009 CS5090 1 Acronyms TL: Temporal Logic BTL: Branching-time Logic LTL: Linear-Time Logic CTL: Computation Tree Logic PLTL: Propositional
More informationCIS 500 Software Foundations. Final Exam. May 9, Answer key. Hoare Logic
CIS 500 Software Foundations Final Exam May 9, 2011 Answer key Hoare Logic 1. (7 points) What does it mean to say that the Hoare triple {{P}} c {{Q}} is valid? Answer: {{P}} c {{Q}} means that, for any
More informationAbstraction for Concurrent Objects
Abstraction for Concurrent Objects Ivana Filipović, Peter O Hearn, Noam Rinetzky, and Hongseok Yang Queen Mary University of London, UK Abstract. Concurrent data structures are usually designed to satisfy
More informationA Step-indexed Kripke Model of Hidden State via Recursive Properties on Recursively Defined Metric Spaces
via Recursive Properties on Recursively Defined Metric Spaces Lars Birkedal IT University of Copenhagen birkedal@itu.dk Jan Schwinghammer Saarland University jan@ps.uni-saarland.de Abstract Kristian Støvring
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 informationSemantic Metatheory of SL: Mathematical Induction
Semantic Metatheory of SL: Mathematical Induction Preliminary matters: why and when do we need Mathematical Induction? We need it when we want prove that a certain claim (n) holds for all n N (0, 1, 2,
More informationModal Logic. UIT2206: The Importance of Being Formal. Martin Henz. March 19, 2014
Modal Logic UIT2206: The Importance of Being Formal Martin Henz March 19, 2014 1 Motivation The source of meaning of formulas in the previous chapters were models. Once a particular model is chosen, say
More informationTrace semantics: towards a unification of parallel paradigms Stephen Brookes. Department of Computer Science Carnegie Mellon University
Trace semantics: towards a unification of parallel paradigms Stephen Brookes Department of Computer Science Carnegie Mellon University MFCSIT 2002 1 PARALLEL PARADIGMS State-based Shared-memory global
More informationComputability and Complexity Results for a Spatial Assertion Language for Data Structures
Computability and Complexity Results for a Spatial Assertion Language for Data Structures Cristiano Calcagno 12, Hongseok Yang 3, and Peter W. O Hearn 1 1 Queen Mary, University of London 2 DISI, University
More informationNatural Deduction for Propositional Logic
Natural Deduction for Propositional Logic Bow-Yaw Wang Institute of Information Science Academia Sinica, Taiwan September 10, 2018 Bow-Yaw Wang (Academia Sinica) Natural Deduction for Propositional Logic
More informationApplied Logic. Lecture 1 - Propositional logic. Marcin Szczuka. Institute of Informatics, The University of Warsaw
Applied Logic Lecture 1 - Propositional logic Marcin Szczuka Institute of Informatics, The University of Warsaw Monographic lecture, Spring semester 2017/2018 Marcin Szczuka (MIMUW) Applied Logic 2018
More informationAbstraction for Concurrent Objects
Abstraction for Concurrent Objects Ivana Filipović, Peter O Hearn, Noam Rinetzky 1, Hongseok Yang Queen Mary University of London, UK Abstract Concurrent data structures are usually designed to satisfy
More informationProgram Analysis and Verification
Program Analysis and Verification 0368-4479 Noam Rinetzky Lecture 4: Axiomatic Semantics Slides credit: Tom Ball, Dawson Engler, Roman Manevich, Erik Poll, Mooly Sagiv, Jean Souyris, Eran Tromer, Avishai
More informationSolutions to exercises for the Hoare logic (based on material written by Mark Staples)
Solutions to exercises for the Hoare logic (based on material written by Mark Staples) Exercise 1 We are interested in termination, so that means we need to use the terminology of total correctness, i.e.
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 informationSpatial Interpolants
Spatial Interpolants Aws Albargouthi 1, Josh Berdine 2, Byron Cook 3, and Zachary Kincaid 4 University of Wisconsin-Madison 1, Microsoft Research 2, University College London 3, University of Toronto 4
More informationModel Checking for Symbolic-Heap Separation Logic with Inductive Predicates
Model Checking for Symbolic-Heap Separation Logic with Inductive Predicates James Brotherston University College London, UK J.Brotherston@ucl.ac.uk Nikos Gorogiannis Middlesex University, UK nikos.gorogiannis@gmail.com
More informationHoare Logic and Model Checking
Hoare Logic and Model Checking Kasper Svendsen University of Cambridge CST Part II 2016/17 Acknowledgement: slides heavily based on previous versions by Mike Gordon and Alan Mycroft Introduction In the
More informationDefinability in Boolean bunched logic
Definability in Boolean bunched logic James Brotherston Programming Principles, Logic and Verification Group Dept. of Computer Science University College London, UK J.Brotherston@ucl.ac.uk Logic Summer
More informationThe Assignment Axiom (Hoare)
The Assignment Axiom (Hoare) Syntax: V := E Semantics: value of V in final state is value of E in initial state Example: X:=X+ (adds one to the value of the variable X) The Assignment Axiom {Q[E/V ]} V
More informationAbstraction and Refinement for Local Reasoning
Under consideration for publication in Math. Struct. in Comp. Science Abstraction and Refinement for Local Reasoning Thomas Dinsdale-Young, Philippa Gardner and Mark Wheelhouse Department of Computing,
More informationSemantics and Pragmatics of NLP
Semantics and Pragmatics of NLP Alex Ewan School of Informatics University of Edinburgh 28 January 2008 1 2 3 Taking Stock We have: Introduced syntax and semantics for FOL plus lambdas. Represented FOL
More informationExogenous Semantics Approach to Enriching Logics
Exogenous Semantics Approach to Enriching Logics Paulo Mateus, Amílcar Sernadas, and Cristina Sernadas Abstract. The exogenous semantics approach to enriching a logic consists in defining each model in
More informationList reversal: back into the frying pan
List reversal: back into the frying pan Richard Bornat March 20, 2006 Abstract More than thirty years ago Rod Burstall showed how to do a proof of a neat little program, shown in a modern notation in figure
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 informationHoare Logic: Part II
Hoare Logic: Part II COMP2600 Formal Methods for Software Engineering Jinbo Huang Australian National University COMP 2600 Hoare Logic II 1 Factorial {n 0} fact := 1; i := n; while (i >0) do fact := fact
More informationAxiomatic Semantics. Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11 CSE
Axiomatic Semantics Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11 CSE 6341 1 Outline Introduction What are axiomatic semantics? First-order logic & assertions about states Results (triples)
More informationProgram Analysis Part I : Sequential Programs
Program Analysis Part I : Sequential Programs IN5170/IN9170 Models of concurrency Program Analysis, lecture 5 Fall 2018 26. 9. 2018 2 / 44 Program correctness Is my program correct? Central question for
More informationCSC 7101: Programming Language Structures 1. Axiomatic Semantics. Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11.
Axiomatic Semantics Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11 1 Overview We ll develop proof rules, such as: { I b } S { I } { I } while b do S end { I b } That allow us to verify
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 informationA Marriage of Rely/Guarantee and Separation Logic
A Marriage of Rely/Guarantee and Separation Logic Viktor Vafeiadis and Matthew Parkinson University of Cambridge Abstract. In the quest for tractable methods for reasoning about concurrent algorithms both
More informationLogics in Access Control: A Conditional Approach
Logics in Access Control: A Conditional Approach Valerio Genovese 1, Laura Giordano 2, Valentina Gliozzi 3, and Gian Luca Pozzato 3 1 University of Luxembourg and Università di Torino - Italy valerio.genovese@uni.lu
More informationThe mathematical core of Tarski s truth definition
The mathematical core of Tarski s truth definition Wilfrid Hodges Queen Mary, University of London August 2007 www.maths.qmul.ac.uk/ wilfrid/unilog07.pdf Alfred Tarski gave a mathematical description of
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 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 informationType Theory and Constructive Mathematics. Type Theory and Constructive Mathematics Thierry Coquand. University of Gothenburg
Type Theory and Constructive Mathematics Type Theory and Constructive Mathematics Thierry Coquand University of Gothenburg Content An introduction to Voevodsky s Univalent Foundations of Mathematics The
More informationLecture Notes on Classical Modal Logic
Lecture Notes on Classical Modal Logic 15-816: Modal Logic André Platzer Lecture 5 January 26, 2010 1 Introduction to This Lecture The goal of this lecture is to develop a starting point for classical
More informationModels of Concurrency
Models of Concurrency GERARDO SCHNEIDER UPPSALA UNIVERSITY DEPARTMENT OF INFORMATION TECHNOLOGY UPPSALA, SWEDEN Thanks to Frank Valencia Models of Concurrency p.1/57 Concurrency is Everywhere Concurrent
More informationUnifying Theories of Programming
1&2 Unifying Theories of Programming Unifying Theories of Programming 3&4 Theories Unifying Theories of Programming designs predicates relations reactive CSP processes Jim Woodcock University of York May
More informationSoftware Engineering
Software Engineering Lecture 07: Design by Contract Peter Thiemann University of Freiburg, Germany 02.06.2014 Table of Contents Design by Contract Contracts for Procedural Programs Contracts for Object-Oriented
More informationAn Entailment Checker for Separation Logic with Inductive Definitions
An Entailment Checker for Separation Loic with Inductive Definitions Radu Iosif, Cristina Serban Université de Grenoble Alpes, CNRS, VERIMAG July 18, 2018 Cristina Serban (VERIMAG) An Entailment Checker
More informationProgram verification. 18 October 2017
Program verification 18 October 2017 Example revisited // assume(n>2); void partition(int a[], int n) { int pivot = a[0]; int lo = 1, hi = n-1; while (lo
More informationExtensions of Analytic Pure Sequent Calculi with Modal Operators
Extensions of Analytic Pure Sequent Calculi with Modal Operators Yoni Zohar Tel Aviv University (joint work with Ori Lahav) GeTFun 4.0 Motivation C 1 [Avron, Konikowska, Zamansky 12] Positive rules of
More informationCertification of Safe Polynomial Memory Bounds (Extended Version)
Certification of Safe Polynomial Memory Bounds (Extended Version) Javier de Dios and Ricardo Peña Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid, Spain jdcastro@aventia.com,
More informationTowards a Program Logic for JavaScript
Towards a Program Logic for JavaScript Philippa Gardner, Sergio Maffeis, Gareth Smith {pg,maffeis,gds}@docicacuk Abstract JavaScript has become the most widely used language for client-side web programming
More informationSEMANTICS OF PROGRAMMING LANGUAGES Course Notes MC 308
University of Leicester SEMANTICS OF PROGRAMMING LANGUAGES Course Notes for MC 308 Dr. R. L. Crole Department of Mathematics and Computer Science Preface These notes are to accompany the module MC 308.
More informationCIS 500 Software Foundations. Midterm II. March 28, 2012
CIS 500 Software Foundations Midterm II March 28, 2012 Name: Pennkey: Scores: 1 2 3 4 5 6 Total (80 max) This exam concentrates on the material on the Imp programming language, program equivalence, and
More informationFoundations of Computation
The Australian National University Semester 2, 2018 Research School of Computer Science Tutorial 6 Dirk Pattinson Foundations of Computation The tutorial contains a number of exercises designed for the
More information