Separation Logic and Graphical Models
|
|
- Alexis Griffin
- 5 years ago
- Views:
Transcription
1 Separation Logic and Graphical Models John Wickerson and Tony Hoare Semantics Lunch, 25th October
2 Trace composition Problem: Composition is non-deterministic. 2
3 Trace composition Problem: Composition is non-deterministic. 3
4 Trace composition Problem: Composition is non-deterministic. 4
5 Trace composition Problem: Composition is non-deterministic. 5
6 Trace composition Problem: Composition is non-deterministic. 6
7 Trace composition Problem: Composition is non-deterministic. Fix: Give nodes and arrows unique identities. 3 b c e
8 Trace composition Problem: Composition is non-deterministic. Fix: Give nodes and arrows unique identities. 3 b e c 1 7 8
9 Trace representation A trace is a 6-tuple: set of nodes, set of arrows, node labelling, N P fin (Node) A Pfin(Arrow) NL N NodeLabel arrow labelling, AL A ArrowLabel head map, tail map, H A N T A N We require that dom(h) dom(t )=A and we forbid cycles 9
10 Trace representation A trace is a 6-tuple: set of nodes, N = {e} set of arrows, A = {4, 6, 8, 13} node labelling, NL = {e } arrow labelling, AL = {4, 6, 8, 13 } head map, H = {6 e, 8 e} tail map, T = {4 e, 13 e} 6 e
11 Trace disjointness Composition is defined iff the operands are disjoint, which means: 1. there are no common nodes 2. any common arrows have the same label 3. any common arrows can be connected (i.e. dangle out of one trace and into the other) 4. composition would not introduce a cycle 11
12 Trace composition t 1 t 2 = if t 1 and t 2 are disjoint then let (N 1,A 1,NL 1, AL 1,H 1,T 1 )=t 1 and (N 2,A 2,NL 2, AL 2,H 2,T 2 )=t 2 in (N 1 N 2,A 1 A 2,NL 1 NL 2, AL 1 AL 2,H 1 H 2,T 1 T 2 ) else undefined 12
13 Quiz (1 of 4) b e c
14 Quiz (1 of 4) b e c
15 Quiz (2 of 4) b e e
16 Quiz (2 of 4) b e e
17 Quiz (2 of 4) b e e
18 Quiz (3 of 4) b e c
19 Quiz (3 of 4) b e c
20 Quiz (3 of 4) b e c
21 Quiz (4 of 4) b e c
22 Quiz (4 of 4) b c e
23 Properties of composition The composition operator: is a partial binary operator of type Trace Trace Trace is commutative and associative has unit u = (,,,,, ) is cancellative (that is: if t1 t3 and t2 t3 are defined and equal, then t1 = t2) So... (Trace,, u) is a separation algebra 23
24 Models of separation logic Heap model: (Heap,, u) where a heap is a partial mapping from memory addresses to values, composes heaps that have disjoint domains, and u is the empty heap Trace model: (Trace,, u) where composes disjoint traces, and u is the empty trace There are several others. 24
25 The operator We lift to sets: P Q def = {t t 1 P. t 2 Q. t = t 1 t 2 } 25
26 in pictures 26
27 in pictures = 27
28 The operator We lift to sets: P Q def = {t t 1 P. t 2 Q. t = t 1 t 2 } In the heap model, P and Q are sets of heaps; i.e., assertions about the heap. In our model, P and Q are sets of traces; i.e., programs. 28
29 Denotational semantics of an imperative language with concurrency 29
30 Command language C ::= acq(l) acquiring a lock rel(l) releasing a lock lock l in C lock declaration read(x, v) reading a specific value write(x, v) writing a specific value var x in C variable declaration skip empty command Σi I.C i non-deterministic choice C non-deterministic looping C ; C sequential composition C ll C parallel composition 30
31 Meaning of commands C :Γ Γ P(Trace) where Γ is a set of control arrow identifiers C (γ,γ )= a set of traces that have: one incoming control arrow, labelled (γ), and one outgoing control arrow, labelled (γ ) 31
32 Denotational semantics (1) acq l (γ,γ )= open(l) (γ) acq(l) closed(l) (γ ) rel l (γ,γ )= closed(l) (γ) rel(l) open(l) (γ ) 32
33 Denotational semantics (2) lock l in C (γ,γ )= new(l) open(l) C (γ,γ ) open(l) del(l) hide(l) new(l) acq(l) rel(l) acq(l) rel(l) del(l) 33
34 Denotational semantics (3) read(x, v) (γ,γ )= (γ) data(x,v) (γ ) read(x,v) write(x, v) (γ,γ )= (γ) (γ ) write(x,v) data(x,v) 34
35 Denotational semantics (4) var x in C (γ,γ )= new(x) data(x,0) C (γ,γ ) del(x) hide(x) triangle(x) 35
36 The triangle property triangle(x) holds for traces such as this one: new(x) write(x,2) data(x,2) read(x,2) write(x,4) del(x) data(x,4) read(x,4) data(x,4) read(x,4) 36
37 The triangle property triangle(x) holds for traces such as this one: new(x) write(x,2) data(x,2) read(x,2) write(x,4) del(x) data(x,4) read(x,4) data(x,4) read(x,4) 37
38 Denotational semantics (5) skip (γ,γ )= (γ) skip (γ ) Σi I.C i (γ,γ )= i I.C i (γ,γ ) 38
39 Denotational semantics (6) C 1 ; C 2 = C 1 ; C 2 where F ; G = λ(γ,γ ). γ / {γ,γ }. (F (γ,γ ) G(γ,γ )) hide(γ ) C (γ,γ )= k 0. C k (γ,γ ) where F 0 = skip and F k+1 = F ; F k 39
40 Example write(x, 5) ; read(x, 6) (γ,γ ) = γ / {γ,γ }. (γ) (γ ) (γ ) (γ ) hide(γ ) = (γ) (γ ) 40
41 Example var x in {write(x, 5) ; read(x, 6)} (γ,γ ) = new(x) data(x,0) (γ) (γ ) del(x) hide(x) triangle(x) = 41
42 Denotational semantics (7) C 1 ll C 2 (γ,γ )= {γ 1,γ 2,γ 3,γ 4 }#{γ,γ }. (γ) fork (γ1) (γ2) C 1 (γ 1,γ 3 ) C 2 (γ 2,γ 4 ) (γ3) join (γ ) (γ4) hide(γ 1,γ 2,γ 3,γ 4 ) 42
43 Future directions 43
44 A model of weak memory? new(x) write(x,2) data(x,2) read(x,2) write(x,4) del(x) data(x,4) read(x,4) data(x,4) read(x,4) 44
45 A model of weak memory? new(x) write(x,2) data(x,2) read(x,2) write(x,4) del(x) data(x,4) read(x,4) data(x,4) read(x,4) 45
46 A model of processes? c!5 data(c,5) c?5 data(c,5) = c!5 data(c,5) c?5 data(c,5) c!5 data(c,5) c?5 46
47 The End 47
Program Verification Using Separation Logic
Program Verification Using Separation Logic Cristiano Calcagno Adapted from material by Dino Distefano Lecture 1 Goal of the course Study Separation Logic having automatic verification in mind Learn how
More 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 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 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 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 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 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 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 informationDesign of Distributed Systems Melinda Tóth, Zoltán Horváth
Design of Distributed Systems Melinda Tóth, Zoltán Horváth Design of Distributed Systems Melinda Tóth, Zoltán Horváth Publication date 2014 Copyright 2014 Melinda Tóth, Zoltán Horváth Supported by TÁMOP-412A/1-11/1-2011-0052
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 informationCS 6112 (Fall 2011) Foundations of Concurrency
CS 6112 (Fall 2011) Foundations of Concurrency 29 November 2011 Scribe: Jean-Baptiste Jeannin 1 Readings The readings for today were: Eventually Consistent Transactions, by Sebastian Burckhardt, Manuel
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 informationCausal Dataflow Analysis for Concurrent Programs
Causal Dataflow Analysis for Concurrent Programs Azadeh Farzan P. Madhusudan Department of Computer Science, University of Illinois at Urbana-Champaign. {afarzan,madhu}@cs.uiuc.edu Abstract. We define
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 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 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 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 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 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 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 informationICS141: Discrete Mathematics for Computer Science I
ICS141: Discrete Mathematics for Computer Science I Dept. Information & Computer Sci., Originals slides by Dr. Baek and Dr. Still, adapted by J. Stelovsky Based on slides Dr. M. P. Frank and Dr. J.L. Gross
More informationBenefits of Interval Temporal Logic for Specification of Concurrent Systems
Benefits of Interval Temporal Logic for Specification of Concurrent Systems Ben Moszkowski Software Technology Research Laboratory De Montfort University Leicester Great Britain email: benm@dmu.ac.uk http://www.tech.dmu.ac.uk/~benm
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 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 informationMulticore Semantics and Programming
Multicore Semantics and Programming Peter Sewell Tim Harris University of Cambridge Oracle October November, 2015 p. 1 These Lectures Part 1: Multicore Semantics: the concurrency of multiprocessors and
More informationCS 6110 Lecture 21 The Fixed-Point Theorem 8 March 2013 Lecturer: Andrew Myers. 1 Complete partial orders (CPOs) 2 Least fixed points of functions
CS 6110 Lecture 21 The Fixed-Point Theorem 8 March 2013 Lecturer: Andrew Myers We saw that the semantics of the while command are a fixed point. We also saw that intuitively, the semantics are the limit
More informationCMSC 631 Program Analysis and Understanding Fall Abstract Interpretation
Program Analysis and Understanding Fall 2017 Abstract Interpretation Based on lectures by David Schmidt, Alex Aiken, Tom Ball, and Cousot & Cousot What is an Abstraction? A property from some domain Blue
More informationLocal Reasoning about Data Update
Local Reasoning about Data Update Cristiano Calcagno, Philippa Gardner and Uri Zarfaty Department of Computing Imperial College London London, UK {ccris,pg,udz}@doc.ic.ac.uk Abstract We present local Hoare
More informationPart I: Definitions and Properties
Turing Machines Part I: Definitions and Properties Finite State Automata Deterministic Automata (DFSA) M = {Q, Σ, δ, q 0, F} -- Σ = Symbols -- Q = States -- q 0 = Initial State -- F = Accepting States
More informationProgramming Languages and Compilers (CS 421)
Programming Languages and Compilers (CS 421) Sasa Misailovic 4110 SC, UIUC https://courses.engr.illinois.edu/cs421/fa2017/cs421a Based in part on slides by Mattox Beckman, as updated by Vikram Adve, Gul
More informationSynchronous Reactive Systems
Synchronous Reactive Systems Stephen Edwards sedwards@synopsys.com Synopsys, Inc. Outline Synchronous Reactive Systems Heterogeneity and Ptolemy Semantics of the SR Domain Scheduling the SR Domain 2 Reactive
More informationFinite-state machines (FSMs)
Finite-state machines (FSMs) Dr. C. Constantinides Department of Computer Science and Software Engineering Concordia University Montreal, Canada January 10, 2017 1/19 Finite-state machines (FSMs) and state
More informationTechnical Report. Deny-guarantee reasoning. Mike Dodds, Xinyu Feng, Matthew Parkinson, Viktor Vafeiadis. Number 736. January Computer Laboratory
Technical Report UCAM-CL-TR-736 ISSN 1476-2986 Number 736 Computer Laboratory Deny-guarantee reasoning Mike Dodds, Xinyu Feng, Matthew Parkinson, Viktor Vafeiadis January 2009 15 JJ Thomson Avenue Cambridge
More informationCommunicating Parallel Processes. Stephen Brookes
Communicating Parallel Processes Stephen Brookes Carnegie Mellon University Deconstructing CSP 1 CSP sequential processes input and output as primitives named parallel composition synchronized communication
More informationInductive Data Flow Graphs
Inductive Data Flow Graphs Azadeh Farzan University of Toronto Zachary Kincaid Andreas Podelski University of Freiburg Abstract The correctness of a sequential program can be shown by the annotation of
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 informationCS477 Formal Software Dev Methods
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 by Mahesh Vishwanathan, and by Gul Agha
More informationTowards Algorithmic Synthesis of Synchronization for Shared-Memory Concurrent Programs
Towards Algorithmic Synthesis of Synchronization for Shared-Memory Concurrent Programs Roopsha Samanta The University of Texas at Austin July 6, 2012 Roopsha Samanta Algorithmic Synthesis of Synchronization
More informationAutomatic Verification of Dynamic Data-Dependent Programs
IT 09 008 Examensarbete 45 hp March 2009 Automatic Verification of Dynamic Data-Dependent Programs Ran Ji Institutionen för informationsteknologi Department of Information Technology Abstract Automatic
More informationAn Algebra of Hybrid Systems
Peter Höfner University of Augsburg August 22, 2008 The University of Queensland, August 2008 1 c Peter Höfner Hybrid Systems Definition hybrid systems are heterogeneous systems characterised by the interaction
More informationBOOLEAN ALGEBRA INTRODUCTION SUBSETS
BOOLEAN ALGEBRA M. Ragheb 1/294/2018 INTRODUCTION Modern algebra is centered around the concept of an algebraic system: A, consisting of a set of elements: ai, i=1, 2,, which are combined by a set of operations
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 informationSequential Circuit Analysis
Sequential Circuit Analysis Last time we started talking about latches and flip-flops, which are basic one-bit memory units. Today we ll talk about sequential circuit analysis and design. First, we ll
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 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 informationCalculating axiomatic semantics from program equations by means of functional predicate calculus
Calculating axiomatic semantics from program equations by means of functional predicate calculus (Some initial results of recent work not for dissemination) Raymond Boute INTEC Ghent University 2004/02
More informationModular Termination Verification for Non-blocking Concurrency
Modular Termination Verification for Non-blocking Concurrency Pedro da Rocha Pinto 1, Thomas Dinsdale-Young 2, Philippa Gardner 1, and Julian Sutherland 1 1 Imperial College London pmd09,pg,jhs110@doc.ic.ac.uk
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 informationModeling Concurrent Systems
Modeling Concurrent Systems Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.uni-linz.ac.at
More informationTopics in Concurrency
Topics in Concurrency Lecture 3 Jonathan Hayman 18 October 2016 Towards a more basic language Aim: removal of variables to reveal symmetry of input and output Transitions for value-passing carry labels
More informationLocal Reasoning for Storable Locks and Threads
Local Reasoning for Storable Locks and Threads Alexey Gotsman Josh Berdine Byron Cook Noam Rinetzky Mooly Sagiv University of Cambridge Microsoft Research Tel-Aviv University April, revised September Technical
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 information3 Vectors. 18 October 2018 PHY101 Physics I Dr.Cem Özdoğan
Chapter 3 Vectors 3 Vectors 18 October 2018 PHY101 Physics I Dr.Cem Özdoğan 2 3 3-2 Vectors and Scalars Physics deals with many quantities that have both size and direction. It needs a special mathematical
More informationELE2120 Digital Circuits and Systems. Tutorial Note 9
ELE2120 Digital Circuits and Systems Tutorial Note 9 Outline 1. Exercise(1) Sequential Circuit Analysis 2. Exercise (2) Sequential Circuit Analysis 3. Exercise (3) Sequential Circuit Analysis 4. Ref. Construction
More informationModular Labelled Sequent Calculi for Abstract Separation Logics
Modular Labelled Sequent Calculi for Abstract Separation Logics ZHÉ HÓU, Griffith University, Australia RANALD CLOUSTON, Aarhus University, Denmark RAJEEV GORÉ, The Australian National University, Australia
More informationDistributed Transactions. CS5204 Operating Systems 1
Distributed Transactions CS5204 Operating Systems 1 . Transactions transactions T. TM T Distributed DBMS Model data manager DM T. TM T transaction manager network DM TM DM T T physical database CS 5204
More informationReasoning about Optimistic Concurrency Using a Program Logic for History (Extended Version)
Reasoning about Optimistic Concurrency Using a Program Logic for History (Extended Version) Ming Fu 1, Yong Li 1, Xinyu Feng 1,2, Zhong Shao 3, and Yu Zhang 1 1 University of Science and Technology of
More informationTemporal Logic. Stavros Tripakis University of California, Berkeley. We have designed a system. We want to check that it is correct.
EE 244: Fundamental Algorithms for System Modeling, Analysis, and Optimization Fall 2016 Temporal logic Stavros Tripakis University of California, Berkeley Stavros Tripakis (UC Berkeley) EE 244, Fall 2016
More informationLecture 5: Minimizing DFAs
6.45 Lecture 5: Minimizing DFAs 6.45 Announcements: - Pset 2 is up (as of last night) - Dylan says: It s fire. - How was Pset? 2 DFAs NFAs DEFINITION Regular Languages Regular Expressions 3 4 Some Languages
More informationCS21 Decidability and Tractability
CS21 Decidability and Tractability Lecture 3 January 9, 2017 January 9, 2017 CS21 Lecture 3 1 Outline NFA, FA equivalence Regular Expressions FA and Regular Expressions January 9, 2017 CS21 Lecture 3 2
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 informationExtensions to the Logic of All x are y: Verbs, Relative Clauses, and Only
1/53 Extensions to the Logic of All x are y: Verbs, Relative Clauses, and Only Larry Moss Indiana University Nordic Logic School August 7-11, 2017 2/53 An example that we ll see a few times Consider the
More informationLecturecise 22 Weak monadic second-order theory of one successor (WS1S)
Lecturecise 22 Weak monadic second-order theory of one successor (WS1S) 2013 Reachability in the Heap Many programs manipulate linked data structures (lists, trees). To express many important properties
More informationLocal Rely-Guarantee Reasoning
Technical Report TTIC-TR-2008-1 October 2008 Local Rely-Guarantee Reasoning Xinyu Feng Toyota Technological Institute at Chicago feng@tti-c.org ABSTRACT Rely-Guarantee reasoning is a well-known method
More informationExtended Transitive Separation Logic
Extended Transitive Separation Logic H.-H. Dang, B. Möller Institut für Informatik, Universität Augsburg, D-86135 Augsburg, Germany Abstract Separation logic (SL) is an extension of Hoare logic by operators
More informationStates and Actions: An Automata-theoretic Model of Objects
States and Actions: An Automata-theoretic Model of Objects Uday S. Reddy 1 Brian P. Dunphy 2 1 University of Birmingham 2 University of Illinois at Urbana-Champaign Portland, Oct 2011 Uday S. Reddy (Univ
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 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 informationAnnouncements August 31
Announcements August 31 Homeworks 1.1 and 1.2 are due Friday. The first quiz is on Friday, during recitation. Quizzes mostly test your understanding of the homework. There will generally be a quiz every
More informationLogics For Epistemic Programs
1 / 48 Logics For Epistemic Programs by Alexandru Baltag and Lawrence S. Moss Chang Yue Dept. of Philosophy PKU Dec. 9th, 2014 / Seminar 2 / 48 Outline 1 Introduction 2 Epistemic Updates and Our Target
More informationGeorg Frey ANALYSIS OF PETRI NET BASED CONTROL ALGORITHMS
Georg Frey ANALYSIS OF PETRI NET BASED CONTROL ALGORITHMS Proceedings SDPS, Fifth World Conference on Integrated Design and Process Technologies, IEEE International Conference on Systems Integration, Dallas,
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 informationCompositional Verification of Termination-Preserving Refinement of Concurrent Programs (Technical Report)
Compositional Verification of Termination-Preserving Refinement of Concurrent Programs (Technical Report) Hongjin Liang 1, Xinyu Feng 1, and Zhong Shao 2 1 University of Science and Technology of China
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 informationTheory of Computer Science
Theory of Computer Science D1. Turing-Computability Malte Helmert University of Basel April 18, 2016 Overview: Course contents of this course: logic How can knowledge be represented? How can reasoning
More informationLocal Rely-Guarantee Reasoning
Local Rely-Guarantee Reasoning Xinyu Feng Toyota Technological Institute at Chicago Chicago, IL 60637, U.S.A. feng@tti-c.org Abstract Rely-Guarantee reasoning is a well-known method for verification of
More informationIntroduction to Kleene Algebras
Introduction to Kleene Algebras Riccardo Pucella Basic Notions Seminar December 1, 2005 Introduction to Kleene Algebras p.1 Idempotent Semirings An idempotent semiring is a structure S = (S, +,, 1, 0)
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 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 informationAlan Bundy. Automated Reasoning LTL Model Checking
Automated Reasoning LTL Model Checking Alan Bundy Lecture 9, page 1 Introduction So far we have looked at theorem proving Powerful, especially where good sets of rewrite rules or decision procedures have
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 informationA scheme developed by Du Pont to figure out
CPM Project Management scheme. A scheme developed by Du Pont to figure out Length of a normal project schedule given task durations and their precedence in a network type layout (or Gantt chart) Two examples
More informationData Flow Analysis (I)
Compiler Design Data Flow Analysis (I) Hwansoo Han Control Flow Graph What is CFG? Represents program structure for internal use of compilers Used in various program analyses Generated from AST or a sequential
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 informationRigorous Software Development CSCI-GA
Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 2 Alloy Analyzer Analyzes micro models of software Helps to identify key properties of a software design find
More informationCHAPTER 10. Gentzen Style Proof Systems for Classical Logic
CHAPTER 10 Gentzen Style Proof Systems for Classical Logic Hilbert style systems are easy to define and admit a simple proof of the Completeness Theorem but they are difficult to use. By humans, not mentioning
More information1 First-order logic. 1 Syntax of first-order logic. 2 Semantics of first-order logic. 3 First-order logic queries. 2 First-order query evaluation
Knowledge Bases and Databases Part 1: First-Order Queries Diego Calvanese Faculty of Computer Science Master of Science in Computer Science A.Y. 2007/2008 Overview of Part 1: First-order queries 1 First-order
More informationRelations Graphical View
Introduction Relations Computer Science & Engineering 235: Discrete Mathematics Christopher M. Bourke cbourke@cse.unl.edu Recall that a relation between elements of two sets is a subset of their Cartesian
More informationOn the Design of Adaptive Supervisors for Discrete Event Systems
On the Design of Adaptive Supervisors for Discrete Event Systems Vigyan CHANDRA Department of Technology, Eastern Kentucky University Richmond, KY 40475, USA and Siddhartha BHATTACHARYYA Division of Computer
More informationThe State Explosion Problem
The State Explosion Problem Martin Kot August 16, 2003 1 Introduction One from main approaches to checking correctness of a concurrent system are state space methods. They are suitable for automatic analysis
More informationProgram Analysis. Lecture 5. Rayna Dimitrova WS 2016/2017
Program Analysis Lecture 5 Rayna Dimitrova WS 2016/2017 2/21 Recap: Constant propagation analysis Goal: For each program point, determine whether a variale has a constant value whenever an execution reaches
More informationAnalysis and Optimization of Discrete Event Systems using Petri Nets
Volume 113 No. 11 2017, 1 10 ISSN: 1311-8080 (printed version); ISSN: 1314-3395 (on-line version) url: http://www.ijpam.eu ijpam.eu Analysis and Optimization of Discrete Event Systems using Petri Nets
More informationLecture 4. Finite Automata and Safe State Machines (SSM) Daniel Kästner AbsInt GmbH 2012
Lecture 4 Finite Automata and Safe State Machines (SSM) Daniel Kästner AbsInt GmbH 2012 Initialization Analysis 2 Is this node well initialized? node init1() returns (out: int) let out = 1 + pre( 1 ->
More informationIntroduction to Embedded Systems
Introduction to Embedded Systems Edward A. Lee & Sanjit A. Seshia UC Berkeley EECS 124 Spring 2008 Copyright 2008, Edward A. Lee & Sanjit A. Seshia, All rights reserved Lecture 6: Modeling Modal Behavior,
More informationCompleteness of Pointer Program Verification by Separation Logic
ISSN 1346-5597 NII Technical Report Completeness of Pointer Program Verification by Separation Logic Makoto Tatsuta, Wei-Ngan Chin, and Mahmudul Faisal Al Ameen NII-2009-013E June 2009 Completeness of
More informationError Detection and Correction: Small Applications of Exclusive-Or
Error Detection and Correction: Small Applications of Exclusive-Or Greg Plaxton Theory in Programming Practice, Fall 2005 Department of Computer Science University of Texas at Austin Exclusive-Or (XOR,
More informationA note on three water cups
A note on three water cups Piotr Zieliński March 14, 2015 1 Problem Statement We have three cups of water of sizes A B C respectively. We start with cup A full and cups B and C empty. If we pour water
More informationEmbedded Systems 2. REVIEW: Actor models. A system is a function that accepts an input signal and yields an output signal.
Embedded Systems 2 REVIEW: Actor models A system is a function that accepts an input signal and yields an output signal. The domain and range of the system function are sets of signals, which themselves
More information2.6 Variations on Turing Machines
2.6 Variations on Turing Machines Before we proceed further with our exposition of Turing Machines as language acceptors, we will consider variations on the basic definition of Slide 10 and discuss, somewhat
More information