Abstract Interpretation and Static Analysis
|
|
- Alfred Hart
- 5 years ago
- Views:
Transcription
1 / 1 Abstract Interpretation and Static Analysis David Schmidt Kansas State University
2 Welcome! / 2
3 / 3 Four parts 1. Introduction to static analysis what it is and how to apply it 2. Abstract interpretation mathematical foundations for getting it right 3. Mechanics of static analysis its implementation techniques 4. Applications and logics where to use it and how reason about it
4 / 4 Timetable Today Part 1 and perhaps some of Part 2 Tomorrow Part 2 and perhaps some of Part 3 Thursday Part 3 Friday Part 4 Each day, I will lecture for 50 minutes; we will take a 10-minute break; and I will lecture for 50 minutes more. Questions during the lectures are always welcome! Acknowledgement Slides were formatted with assistance from Benjamin Pierce s Latex slide style le
5 Escuela I / 5 Introduction to Abstraction and Static Analysis David Schmidt Kansas State University
6 Escuela I / 6 Outline 1. What is abstraction? 2. Abstraction and concretization Galois-connection-based abstract interpretation 3. Examples of static analyses 4. Logics and static analysis
7 Escuela I / 7 An abstraction is a property from some domain brown (color).
8 Escuela I / 8 An abstraction is a property (cont.) brown (color) heavy (weight).
9 Escuela I / 9 An abstraction is a property (cont.) brown (color) heavy (weight) kg.
10 Escuela I / 10 An abstraction is a property (concl.) elephant (species) brown (color) heavy (weight) kg.
11 Escuela I / 11 Value abstractions are classic to computing rational int... 2 even int nonnegative > 1 { 2 } { 2, 5 } All the properties listed on the right are abstractions of 2; the upwards lines denote, a loss of precision.
12 Escuela I / 12 Abstract values name sets of concrete values AllData {..., 1,0,1,... }... { 0,1,2,... }... { 0,1,...,9 } { t,f,2 } { 2,5 } { t,f } { 1,2 } { t } { f } { 2 } concrete value sets { } γ abstract values int nonneg 0..9 { 2,5 } Function γ maps each abstract value to the set of concrete values it represents.
13 Escuela I / 13 Sets of concrete values are abstracted imprecisely concrete data AllData {..., 1,0,1,... }... α any { 0,1,2,... } { 0,1,...,9 }... { t,f,2 } negative int bool { 1,2 } { 2,5 } { t,f } nonneg { 2 } { } { t } { f } empty abstract properties of interest Function α maps each set to the abstract value that best describes it.
14 Escuela I / 14 Abstraction followed by concretization demonstrates that α is sound but not exact AllData {..., 1,0,1,... }... any { 0,1,...,9 } { 0,1,2,... } { t,f,2 }... negative int bool { 1,2 } { 2,5 } { t,f } nonneg { 2 } { t } { f } γ α empty { } Nonetheless, the α given here is as precise as it possibly can be, given the abstract value domain and γ.
15 Escuela I / 15 A Galois connection formalizes the situation P(ConcreteData ) γ ( a ) UI S iff AbstractProperties a α (S) That is, for all S P(ConcreteData), a AbstractProperties, S γ(a) iff α(s) a When α and γ are monotone, this is equivalent to S γ α(s) and α γ(a) a For practical reasons, the second inequality is usually restricted to α γ(a) = a, meaning that all abstract properties are exact.
16 Escuela I / 16 Perhaps the oldest application of abstract interpretation is to data-type checking int x; int[] a = new int[10];... a[0] = x + 2; // Whatever x s run-time value might... // be, we know it is an int. a[1] = (!x); // Erroneous --- an int cannot be // negated, nor can a bool be // saved in an int cell.
17 Escuela I / 17 But compilers employ imprecise abstractions int x; int[] a = new int[10];... // Because x s value is described a[2 * x] = 3; // imprecisely, we cannot decide // whether 2 * x falls in the // interval, [0,9]. We might address array-indexing calculation by 1. making the abstraction more precise, e.g., declaring x with the abstract value ( data type ) [0, 9]; 2. computing a symbolic execution of the program with the abstract values These extensions underlie data- ow analyses and many sophisticated program analysis techniques.
18 Escuela I / 18 A starting point Trace-based operational semantics p 0 p 2 p 3 while iseven(x) { p 1 x = x div 2; } x = 4 * x; exit The operational semantics updates a program-point, storage-cell pair, pp, x, using these four transition rules p 0, 2n p 1, 2n p 0, 2n + 1 p 2, 2n + 1 p 1, n p 0, n/2 p 2, n p 3, 4n A program s operational semantics is written as a trace p 0, 12 p 1, 12 p 0, 6 p 1, 6 p 0, 3 p 2, 3 p 3, 12
19 Escuela I / 19 We can abstractly interpret, say, for polarity p 0 p 2 p 3 while iseven(x) { p 1 x = x div 2; } x = 4 * x; exit p 0, even p 1, even p 0, odd p 2, odd p 1, even p 0, even p 1, even p 0, odd p 2, a p 3, even Two trace trees cover the full range of inputs p 0, even p 1, even p 0, odd p 2, odd p 3, even p 0, odd p 2, odd p 3, even.
20 Escuela I / 20 The interpretation of the program s semantics with the abstract values is an abstract interpretation p 0, even p 1, even p 0, odd p 2, odd p 3, even p 0, odd p 2, odd p 3, even. We conclude that if the program terminates, x is even-valued if the input is odd-valued, the loop body, p 1, will not be entered Due to the loss of precision, we can not decide termination for almost all the even-valued inputs. (Indeed, only 0 causes nontermination.)
21 Escuela I / 21 The underlying abstract-interpretation semantics Polarity even odd γ Polarity P(Int) γ(even) = {..., 2, 0, 2,...} γ(odd) = {..., 1, 1, 3,...} γ( ) = Int, γ( ) = { } α P(Int) Polarity α(s) = {β(v) v S}, where β(2n) = even and β(2n + 1) = odd The abstract transition rules are synthesized from the orginals p i, a p j, α(v ), if v γ(a) and p i, v p j, v This recipe ensures that every transition in the original, concrete semantics is simulated by one in the abstract semantics.
22 Escuela I / 22 To elaborate, remember that an abstract state, p i, a, represents (abstracts) the set of concrete states, γ State (p i, a) = {p i, c c γ(a)} So, if some p i, c in the above set can transit to p j, c, then its abstraction must make a similar move p i, c p j, c implies p i, a p j, a, where p j, c γ State (p j, a ). Thus, the abstract semantics simulates all computation traces of the concrete semantics (and due to imprecision, produces more traces than are concretely possible). Given a Galois connection, α, γ, we synthesize the most precise abstract semantics that simulates the concrete one as de ned on the previous slide.
23 Escuela I / 23 Abstract interpretation underlies most static analyses A static analysis of a program is a sound, nite, and approximate calculation of the program s executions. The trace trees we just generated for the loop program is an example of a static analysis. We will survey static analyses for data-type inference code improvement debugging assertion synthesis and program proving model-checking temporal logic formulas
24 Escuela I / 24 Data-type compatibility inference p 0 p 1 p 3 p 4 x = 4; while... { p 2 x = (x > 0); } x = x % 2; exit Object { } Rational { +,, > } Bool { &&, } Int { +,, >, % } Class Hierarchy p 0, τ p 1, Int p 1, τ p 2, τ p 1, τ p 3, τ p 2, τ p 1, Bool, if τ Rational p 3, Int p 4, Int Abstract trace p 2, Bool error p 2, Int p 1, Bool p 0, Object p 1, Int p 3, Bool error p 3, Int p 4, Int
25 Escuela I / 25 Constant propagation analysis p 0 p 1 p 3 x = 1; y = 2; while (x < y + z) p 2 x = x + 1; } exit Const var holds multiple values 2... var holds this value only var holds no value (dead code) where m + n is interpreted k 1 + k 2 sum(k 1, k 2 ), k i, i k k + Let u, v, w abbreviate x u, y v, z w Abstract trace p 0,,, p 1, 1, 2, p 2, 1, 2, p 1, 2, 2, p 2, 2, 2, p 1, 3, 2,... p 3, 1, 2, p 3, 2, 2,...
26 Escuela I / 26 An acceleration is needed for nite convergence p 0,,, p 1, 1, 2, p 3, 1, 2, p 2, 1, 2, p 1, 2, 2, 1, 2, = p 1,, 2, p 2,, 2, p 3,, 2, Drawn as a data flow analysis p 2 p 0,, p 1,2, 1 p 1,2, 3 2,2,,2,,2, 1,2,,2, The analysis tells us to replace y at p 1 by 2 p 0 p 1 p 3 x = 1; y = 2; while (x < y + z) { p 2 x = x + 1; } exit 2
27 Escuela I / 27 Array bounds (pre)checking uses intervals Integer variables receive values from the interval domain, I = {[i, j] i, j Int {, + }}. We de ne [a, b] [a, b ] = [min(a, a ), max(b, b )]. int a = new int[10]; i = 0; while (i < 10) {... a[i]... } i = i + 1; p 1 p 2 i = [0,0] i = [0,0] [ oo,9] = [0,0] i = [0,0]... [1,1] [ oo,9] = [0,1] i = [1,1] i = [1,1]... [2,2] = [1,2] At convergence, i s ranges are at p 1 [0..9] at p 2 [1..10] at loop exit [1..10] [10, + ] = [10, 10]
28 Escuela I / 28 Examples of relations between variables values These Figures are from Abstract Interpretation Achievements and Perspectives by Patrick Cousot, Proc. SSGRR 2000.
29 Escuela I / 29 Program veri cation via predicate abstraction We wish to prove that z x z y at p 3 p 0 p 1 p 2 p 3 if x < y then z = y; else z = x; exit p 0,?,?,? p 1, t,?,? p 3, t, t, t p 2, f,?,? p 3, f, t, t φ 1 = x < y We choose three predicates, φ 2 = z x φ 2 = z y and compute their values at the program s points. The predicates values come from the domain, {t, f,?}. (Read? as t f.) At all occurrences of p 3 in the abstract trace, φ 2 φ 3 holds.
30 Escuela I / 30 When a goal is undecided, re nement is necessary Prove φ 0 x y at p 4 p 0 p 1 p 4 if!(x >= y) then { i = x; p 2 x = y; p 3 y = i; } p 1, f p 2, f p 3, t p 4,? p 0,? p 4, t To decide the goal, we must re ne the state by adding a needed auxiliary predicate wp(y = i, x y) = (x i) φ 1. p 0,?,? p 1, f,? p 2, f, t p 3, t, t p 4, t, t p 4, t because x y and x i imply y > i implies x new i because x i implies x new y
31 Escuela I / 31 But incremental predicate re nement cannot synthesize many interesting loop invariants. For this example p 0 i = n; x = 0; p 1 while i!= 0 { x = x + 1; i = i 1; p 3 p 2 } goal x = n We nd that the initial predicate set, P 0 {i = 0, x = n}, does not validate the loop body. The rst re nement suggests we add P 1 {i = 1, x = n 1} to the program state, but this fails to validate a loop that iterates more than once. Re nement stage j adds predicates P j {i = j, x = n j}; the re nement process continues forever! The loop invariant is x = n i -)
32 Escuela I / 32 An abstract domain de nes a logic For abstract domain A, a A is a property/predicate, and γ(a) C de nes a subset of concrete states that make a true. For s C, s has a, written s = A a, iff s γ(a) iff α{s} a Example for concrete states, ProgramPoint Nat, and their abstraction, PgmPt EqZero ProgramPoint... { p0, p1 }... {p1} { } P(ProgramPoint) p0 p1 p2... PgmPt EqZero {0,1,2,...} zero {1,2,3,...} {0} {3} P(Nat) { } zero we have these truths p 1 = PgmPt p 1 and 3 = EqZero zero therefore, p 1, 3 = PgmPt EqZero p 1, zero
33 Escuela I / 33 In one sense, every analysis based on abstract interpretation is a predicate abstraction. But the logic is weak it supports conjunction ( ) but not necessarily disjunction ( ). Const For Const, we have that 2 = Const 2 iff 2 = Const 2 and 2 = Const. In general, n = Const a a iff n = Const a and n = Const a But Const does not support disjunction 2 = Const, and = 2 3 = 3 4 = 2 3 4, etc. Hence 2 = Const 3 4, but this does not imply that 2 = Const 3 or 2 = Const 4!
34 Escuela I / 34 Abstract traces can be model checked p 0 while x > 0 { p 1 use resource x = x + 1; } p 2 sleep forever q 0 x = 0; q1 use resource forever p 0, q 0, zero p 1, q 0, zero p 0, q 1, zero p 2, q 1, zero p 1, q 1, zero p 0, q 1, zero p 1, q 1, zero Starting from p 0, q 0, k, for k > 0, will every execution Generally/Globally avoid resource misuse? p 0, q 0, k = G (p 1 q 1 )? Will every execution reach a Future state where x is permanently (Generally/Globally) zero? p 0, q 0, k = FG zero? The logical operators, F and G, describe reachability properties in the temporal logic, LTL.
35 Escuela I / 35 A state, s 0, names the set of traces that begin with it. An LTL property, φ, describes a pattern of states in a trace. s 0 =φ means that all traces, s 0 s 1, contain pattern φ. MiniLTL φ = a Gφ Fφ [a] = {π π 0 = A a} Semantics [φ] P(Trace) [Gφ] = {π i 0, π i [φ]} [Fφ] = {π i 0, π i [φ]} where, for π = s 0 s 1, let π 0 =s 0 and π i=s i s i+1. There is a Galois connection, (P(Trace), ) (P(MiniLTL), ), where = in P(MiniLTL) γ(p) = {[φ] φ P} the traces that have all the properties in P β(π) = {φ π γ{φ}} all properties possessed by π α(s) = {β(π) π S} properties held in common by all traces in S
36 Escuela I / 36 But this is just the beginning of a long story about the relationship of abstract interpretation to temporal-logic model checking!
37 Escuela I / 37 Every concrete value is the conjunction of its abstractions (its abstract-interpretation DNA ) = elephant species brown color heavy weight kg weight There is even a pattern of Galois connection for this γ AllPossibleProperties P(RealWorldObjects) γ(p) = {c RealWorldObjects c has property p} β RealWorldObjects AllPossibleProperties β(c) = {p AllPossibleProperties c γ(p)} α P(RealWorldObjects) AllPossibleProperties α(s) = {β(s) s S}
38 Escuela I / 38 References The papers of Patrick and Radhia Cousot ( including 1. Abstract interpretation a uni ed lattice model for static analysis of programs by construction or approximation of xpoints. ACM POPL Systematic design of program analysis frameworks. ACM POPL, Abstract interpretation achievements and perspectives. Proc. SSGRR Neil Jones and Flemming Nielson. Abstract Interpretation a Semantics-Based Tool for Program Analysis. In Handbook of Logic in Computer Science, Vol. 4, Oxford University Press, Hanne Nielson, Flemming Nielson, and Chris Hankin. Principles of Program Analysis. Springer A few of my papers, found at 1. Trace-Based Abstract Interpretation of Operational Semantics. J. Lisp and Symbolic Computation 10-3 (1998). 2. Data- ow analysis is model checking of abstract interpretations. ACM POPL 1998.
Static Analysis: Applications and Logics
Escuela 03 IV / 1 Static Analysis: Applications and Logics David Schmidt Kansas State University www.cis.ksu.edu/~schmidt Escuela 03 IV / 2 Outline 1. Applications: abstract testing and safety checking
More informationMechanics of Static Analysis
Escuela 03 III / 1 Mechanics of Static Analysis David Schmidt Kansas State University www.cis.ksu.edu/~schmidt Escuela 03 III / 2 Outline 1. Small-step semantics: trace generation 2. State generation and
More informationFoundations of Abstract Interpretation
Escuela 03 II / 1 Foundations of Abstract Interpretation David Schmidt Kansas State University www.cis.ksu.edu/~schmidt Escuela 03 II / 2 Outline 1. Lattices and continuous functions 2. Galois connections,
More informationPrinciples of Program Analysis: A Sampler of Approaches
Principles of Program Analysis: A Sampler of Approaches Transparencies based on Chapter 1 of the book: Flemming Nielson, Hanne Riis Nielson and Chris Hankin: Principles of Program Analysis Springer Verlag
More informationAbstract Interpretation from a Topological Perspective
(-: / 1 Abstract Interpretation from a Topological Perspective David Schmidt Kansas State University www.cis.ksu.edu/ schmidt Motivation and overview of results (-: / 2 (-: / 3 Topology studies convergent
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 informationNotes on Abstract Interpretation
Notes on Abstract Interpretation Alexandru Sălcianu salcianu@mit.edu November 2001 1 Introduction This paper summarizes our view of the abstract interpretation field. It is based on the original abstract
More informationBASIC CONCEPTS OF ABSTRACT INTERPRETATION
BASIC CONCEPTS OF ABSTRACT INTERPRETATION Patrick Cousot École Normale Supérieure 45 rue d Ulm 75230 Paris cedex 05, France Patrick.Cousot@ens.fr Radhia Cousot CNRS & École Polytechnique 91128 Palaiseau
More information«ATutorialon Abstract Interpretation»
«ATutorialon Abstract Interpretation» Patrick Cousot École normale supérieure 45 rue d Ulm 75230 Paris cedex 05, France Patrick.Cousot@ens.fr www.di.ens.fr/~cousot VMCAI 05 Industrial Day VMCAI 05 Industrial
More informationDeductive Verification
Deductive Verification Mooly Sagiv Slides from Zvonimir Rakamaric First-Order Logic A formal notation for mathematics, with expressions involving Propositional symbols Predicates Functions and constant
More informationAlgorithmic verification
Algorithmic verification Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2018 Outline Overview Model checking Symbolic execution Outline Overview Model checking Symbolic execution Program verification
More informationSoftware Verification using Predicate Abstraction and Iterative Refinement: Part 1
using Predicate Abstraction and Iterative Refinement: Part 1 15-414 Bug Catching: Automated Program Verification and Testing Sagar Chaki November 28, 2011 Outline Overview of Model Checking Creating Models
More informationStructure-Preserving Binary Relations for Program Abstraction
Structure-Preserving Binary Relations for Program Abstraction David A. Schmidt Computing and Information Sciences Department Kansas State University Manhattan, KS 66506 USA. Abstract. An abstraction is
More informationAbstract interpretation from a denotational semantics perspective
(-: / 1 Abstract interpretation from a denotational semantics perspective David Schmidt Kansas State University www.cis.ksu.edu/~schmidt (-: / 2 Thank you, Bob Tennent... for your contributions to programming-languages
More informationStatic Program Analysis using Abstract Interpretation
Static Program Analysis using Abstract Interpretation Introduction Static Program Analysis Static program analysis consists of automatically discovering properties of a program that hold for all possible
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 informationInternal and External Logics of Abstract Interpretations
Internal and External Logics of Abstract Interpretations David A. Schmidt Kansas State University, Manhattan, Kansas, USA Abstract. We show that every abstract interpretation possesses an internal logic,
More informationIntroduction to Program Analysis and Abstract Interpretation (Part I)
Introduction to Program Analysis and Abstract Interpretation (Part I) Axel Simon Olaf Chitil Lawrence Beadle Materials: http://www.cs.kent.ac.uk/research/ groups/tcs/pgradtrain/abstract.html Acknowledgments:
More information«Specification and Abstraction of Semantics» 1. Souvenir, Souvenir. Neil D. Jones. Contents. A Tribute Workshop and Festival to Honor Neil D.
«Specification and Abstraction of Semantics» Patrick Cousot Radhia Cousot École normale supérieure CNRS & École polytechnique 45 rue d Ulm Route de Saclay 7530 Paris cedex 05, France 9118 Palaiseau Cedex,
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 informationAbstract Interpretation II
Abstract Interpretation II Semantics and Application to Program Verification Antoine Miné École normale supérieure, Paris year 2015 2016 Course 11 13 May 2016 Course 11 Abstract Interpretation II Antoine
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 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 informationAbstract Models of Shape Branching- and Linear-Time
(-: / 1 Abstract Models of Shape Branching- and Linear-Time David Schmidt Kansas State University (-: / 2 Outline 1. branching time models: graphs 2. abstraction of nodes via Galois connections; abstraction
More informationIntroduction to Abstract Interpretation. ECE 584 Sayan Mitra Lecture 18
Introduction to Abstract Interpretation ECE 584 Sayan Mitra Lecture 18 References Patrick Cousot,RadhiaCousot:Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction
More informationPrinciples of Program Analysis: Control Flow Analysis
Principles of Program Analysis: Control Flow Analysis Transparencies based on Chapter 3 of the book: Flemming Nielson, Hanne Riis Nielson and Chris Hankin: Principles of Program Analysis. Springer Verlag
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 informationHigher-Order Chaotic Iteration Sequences
Higher-Order Chaotic Iteration Sequences Mads Rosendahl DIKU, University of Copenhagen Universitetsparken 1, DK-2100 Copenhagen Ø, Denmark E-mail rose@diku.dk 1993 Abstract Chaotic iteration sequences
More informationLecture Notes on Software Model Checking
15-414: Bug Catching: Automated Program Verification Lecture Notes on Software Model Checking Matt Fredrikson André Platzer Carnegie Mellon University Lecture 19 1 Introduction So far we ve focused on
More informationPropositional Logic: Models and Proofs
Propositional Logic: Models and Proofs C. R. Ramakrishnan CSE 505 1 Syntax 2 Model Theory 3 Proof Theory and Resolution Compiled at 11:51 on 2016/11/02 Computing with Logic Propositional Logic CSE 505
More 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 informationPrinciples of Program Analysis: Abstract Interpretation
Principles of Program Analysis: Abstract Interpretation Transparencies based on Chapter 4 of the book: Flemming Nielson, Hanne Riis Nielson and Chris Hankin: Principles of Program Analysis. Springer Verlag
More informationSoftware Verification
Software Verification Grégoire Sutre LaBRI, University of Bordeaux, CNRS, France Summer School on Verification Technology, Systems & Applications September 2008 Grégoire Sutre Software Verification VTSA
More informationCours M.2-6 «Interprétation abstraite: applications à la vérification et à l analyse statique» Examen partiel. Patrick Cousot.
Master Parisien de Recherche en Informatique École normale supérieure Année scolaire 2010/2011 Cours M.2-6 «Interprétation abstraite: applications à la vérification et à l analyse statique» Examen partiel
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 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 informationStatic Program Analysis
Static Program Analysis Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ss-18/spa/ Recap: Interprocedural Dataflow Analysis Outline of
More informationTutorial 1: Modern SMT Solvers and Verification
University of Illinois at Urbana-Champaign Tutorial 1: Modern SMT Solvers and Verification Sayan Mitra Electrical & Computer Engineering Coordinated Science Laboratory University of Illinois at Urbana
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 informationCS156: The Calculus of Computation
CS156: The Calculus of Computation Zohar Manna Winter 2010 It is reasonable to hope that the relationship between computation and mathematical logic will be as fruitful in the next century as that between
More informationEDA045F: Program Analysis LECTURE 10: TYPES 1. Christoph Reichenbach
EDA045F: Program Analysis LECTURE 10: TYPES 1 Christoph Reichenbach In the last lecture... Performance Counters Challenges in Dynamic Performance Analysis Taint Analysis Binary Instrumentation 2 / 44 Types
More informationThe algorithmic analysis of hybrid system
The algorithmic analysis of hybrid system Authors: R.Alur, C. Courcoubetis etc. Course teacher: Prof. Ugo Buy Xin Li, Huiyong Xiao Nov. 13, 2002 Summary What s a hybrid system? Definition of Hybrid Automaton
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 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 informationFirst-Order Logic First-Order Theories. Roopsha Samanta. Partly based on slides by Aaron Bradley and Isil Dillig
First-Order Logic First-Order Theories Roopsha Samanta Partly based on slides by Aaron Bradley and Isil Dillig Roadmap Review: propositional logic Syntax and semantics of first-order logic (FOL) Semantic
More informationStatic Program Analysis
Static Program Analysis Lecture 16: Abstract Interpretation VI (Counterexample-Guided Abstraction Refinement) Thomas Noll Lehrstuhl für Informatik 2 (Software Modeling and Verification) noll@cs.rwth-aachen.de
More informationCompositionality in SLD-derivations and their abstractions Marco Comini, Giorgio Levi and Maria Chiara Meo Dipartimento di Informatica, Universita di
Compositionality in SLD-derivations and their abstractions Marco Comini Giorgio Levi and Maria Chiara Meo Dipartimento di Informatica Universita di Pisa Corso Italia 40 56125 Pisa Italy fcomini levi meog@di.unipi.it
More informationFormal Methods in Software Engineering
Formal Methods in Software Engineering An Introduction to Model-Based Analyis and Testing Vesal Vojdani Department of Computer Science University of Tartu Fall 2014 Vesal Vojdani (University of Tartu)
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 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 informationFundamentals of Software Engineering
Fundamentals of Software Engineering First-Order Logic Ina Schaefer Institute for Software Systems Engineering TU Braunschweig, Germany Slides by Wolfgang Ahrendt, Richard Bubel, Reiner Hähnle (Chalmers
More informationPrice: $25 (incl. T-Shirt, morning tea and lunch) Visit:
Three days of interesting talks & workshops from industry experts across Australia Explore new computing topics Network with students & employers in Brisbane Price: $25 (incl. T-Shirt, morning tea and
More informationStatic Program Analysis
Static Program Analysis Lecture 13: Abstract Interpretation III (Abstract Interpretation of WHILE Programs) Thomas Noll Lehrstuhl für Informatik 2 (Software Modeling and Verification) noll@cs.rwth-aachen.de
More informationDiscrete Fixpoint Approximation Methods in Program Static Analysis
Discrete Fixpoint Approximation Methods in Program Static Analysis P. Cousot Département de Mathématiques et Informatique École Normale Supérieure Paris
More informationSoftware Engineering using Formal Methods
Software Engineering using Formal Methods First-Order Logic Wolfgang Ahrendt 26th September 2013 SEFM: First-Order Logic 130926 1 / 53 Install the KeY-Tool... KeY used in Friday s exercise Requires: Java
More informationFormal Reasoning CSE 331. Lecture 2 Formal Reasoning. Announcements. Formalization and Reasoning. Software Design and Implementation
CSE 331 Software Design and Implementation Lecture 2 Formal Reasoning Announcements Homework 0 due Friday at 5 PM Heads up: no late days for this one! Homework 1 due Wednesday at 11 PM Using program logic
More informationOverview. Knowledge-Based Agents. Introduction. COMP219: Artificial Intelligence. Lecture 19: Logic for KR
COMP219: Artificial Intelligence Lecture 19: Logic for KR Last time Expert Systems and Ontologies oday Logic as a knowledge representation scheme Propositional Logic Syntax Semantics Proof theory Natural
More informationFundamentals of Software Engineering
Fundamentals of Software Engineering First-Order Logic Ina Schaefer Institute for Software Systems Engineering TU Braunschweig, Germany Slides by Wolfgang Ahrendt, Richard Bubel, Reiner Hähnle (Chalmers
More informationDisjunctive relational abstract interpretation for interprocedural program analysis
Disjunctive relational abstract interpretation for interprocedural program analysis Nicolas Halbwachs, joint work with Rémy Boutonnet Verimag/CNRS, and Grenoble-Alpes University Grenoble, France R. Boutonnet,
More informationProbabilistic Model Checking and [Program] Analysis (CO469)
Probabilistic Model Checking and [Program] Analysis (CO469) Program Analysis Herbert Wiklicky herbert@doc.ic.ac.uk Spring 208 / 64 Overview Topics we will cover in this part will include:. Language WHILE
More informationPropositional Logic Language
Propositional Logic Language A logic consists of: an alphabet A, a language L, i.e., a set of formulas, and a binary relation = between a set of formulas and a formula. An alphabet A consists of a finite
More informationWHAT IS AN SMT SOLVER? Jaeheon Yi - April 17, 2008
WHAT IS AN SMT SOLVER? Jaeheon Yi - April 17, 2008 WHAT I LL TALK ABOUT Propositional Logic Terminology, Satisfiability, Decision Procedure First-Order Logic Terminology, Background Theories Satisfiability
More informationPROOFS IN PREDICATE LOGIC AND COMPLETENESS; WHAT DECIDABILITY MEANS HUTH AND RYAN 2.3, SUPPLEMENTARY NOTES 2
PROOFS IN PREDICATE LOGIC AND COMPLETENESS; WHAT DECIDABILITY MEANS HUTH AND RYAN 2.3, SUPPLEMENTARY NOTES 2 Neil D. Jones DIKU 2005 12 September, 2005 Some slides today new, some based on logic 2004 (Nils
More informationCS 730/730W/830: Intro AI
CS 730/730W/830: Intro AI 1 handout: slides 730W journal entries were due Wheeler Ruml (UNH) Lecture 9, CS 730 1 / 16 Logic First-Order Logic The Joy of Power Wheeler Ruml (UNH) Lecture 9, CS 730 2 / 16
More informationDynamic Semantics. Dynamic Semantics. Operational Semantics Axiomatic Semantics Denotational Semantic. Operational Semantics
Dynamic Semantics Operational Semantics Denotational Semantic Dynamic Semantics Operational Semantics Operational Semantics Describe meaning by executing program on machine Machine can be actual or simulated
More informationToday s Lecture. Lecture 4: Formal SE. Some Important Points. Formal Software Engineering. Introduction to Formal Software Engineering
Today s Lecture Lecture 4: Formal SE Introduction to Formal Software Engineering Discuss Models Discuss Formal Notations Kenneth M. Anderson Foundations of Software Engineering CSCI 5828 - Spring Semester,
More informationConstraint Solving for Program Verification: Theory and Practice by Example
Constraint Solving for Program Verification: Theory and Practice by Example Andrey Rybalchenko Technische Universität München Abstract. Program verification relies on the construction of auxiliary assertions
More information3 Propositional Logic
3 Propositional Logic 3.1 Syntax 3.2 Semantics 3.3 Equivalence and Normal Forms 3.4 Proof Procedures 3.5 Properties Propositional Logic (25th October 2007) 1 3.1 Syntax Definition 3.0 An alphabet Σ consists
More informationAbstraction in Program Analysis & Model Checking. Abstraction in Model Checking. Motivations & Results
On Completeness in Abstract Model Checking from the Viewpoint of Abstract Interpretation Abstraction in Program Analysis & Model Checking Abstract interpretation has been successfully applied in: static
More informationComputation Tree Logic (CTL) & Basic Model Checking Algorithms
Computation Tree Logic (CTL) & Basic Model Checking Algorithms Martin Fränzle Carl von Ossietzky Universität Dpt. of Computing Science Res. Grp. Hybride Systeme Oldenburg, Germany 02917: CTL & Model Checking
More informationLogic: Propositional Logic (Part I)
Logic: Propositional Logic (Part I) Alessandro Artale Free University of Bozen-Bolzano Faculty of Computer Science http://www.inf.unibz.it/ artale Descrete Mathematics and Logic BSc course Thanks to Prof.
More informationDescription Logics. Foundations of Propositional Logic. franconi. Enrico Franconi
(1/27) Description Logics Foundations of Propositional Logic Enrico Franconi franconi@cs.man.ac.uk http://www.cs.man.ac.uk/ franconi Department of Computer Science, University of Manchester (2/27) Knowledge
More informationA theory of modular and dynamic knowledge representation
A theory of modular and dynamic knowledge representation Ján Šefránek Institute of Informatics, Comenius University, Mlynská dolina, 842 15 Bratislava, Slovakia, phone: (421-7) 6029 5436, e-mail: sefranek@fmph.uniba.sk
More informationLogic. Introduction to Artificial Intelligence CS/ECE 348 Lecture 11 September 27, 2001
Logic Introduction to Artificial Intelligence CS/ECE 348 Lecture 11 September 27, 2001 Last Lecture Games Cont. α-β pruning Outline Games with chance, e.g. Backgammon Logical Agents and thewumpus World
More informationDesign of Embedded Systems: Models, Validation and Synthesis (EE 249) Lecture 9
Design of Embedded Systems: Models, Validation and Synthesis (EE 249) Lecture 9 Prof. Dr. Reinhard von Hanxleden Christian-Albrechts Universität Kiel Department of Computer Science Real-Time Systems and
More informationMathematical Foundations of Logic and Functional Programming
Mathematical Foundations of Logic and Functional Programming lecture notes The aim of the course is to grasp the mathematical definition of the meaning (or, as we say, the semantics) of programs in two
More informationFuzzy Propositional Logic for the Knowledge Representation
Fuzzy Propositional Logic for the Knowledge Representation Alexander Savinov Institute of Mathematics Academy of Sciences Academiei 5 277028 Kishinev Moldova (CIS) Phone: (373+2) 73-81-30 EMAIL: 23LSII@MATH.MOLDOVA.SU
More informationAdvanced Topics in LP and FP
Lecture 1: Prolog and Summary of this lecture 1 Introduction to Prolog 2 3 Truth value evaluation 4 Prolog Logic programming language Introduction to Prolog Introduced in the 1970s Program = collection
More information1 FUNDAMENTALS OF LOGIC NO.10 HERBRAND THEOREM Tatsuya Hagino hagino@sfc.keio.ac.jp lecture URL https://vu5.sfc.keio.ac.jp/slide/ 2 So Far Propositional Logic Logical connectives (,,, ) Truth table Tautology
More information3-Valued Abstraction-Refinement
3-Valued Abstraction-Refinement Sharon Shoham Academic College of Tel-Aviv Yaffo 1 Model Checking An efficient procedure that receives: A finite-state model describing a system A temporal logic formula
More informationTime and Timed Petri Nets
Time and Timed Petri Nets Serge Haddad LSV ENS Cachan & CNRS & INRIA haddad@lsv.ens-cachan.fr DISC 11, June 9th 2011 1 Time and Petri Nets 2 Timed Models 3 Expressiveness 4 Analysis 1/36 Outline 1 Time
More informationConstraint Logic Programming and Integrating Simplex with DPLL(T )
Constraint Logic Programming and Integrating Simplex with DPLL(T ) Ali Sinan Köksal December 3, 2010 Constraint Logic Programming Underlying concepts The CLP(X ) framework Comparison of CLP with LP Integrating
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 informationHoare Logic (I): Axiomatic Semantics and Program Correctness
Hoare Logic (I): Axiomatic Semantics and Program Correctness (Based on [Apt and Olderog 1991; Gries 1981; Hoare 1969; Kleymann 1999; Sethi 199]) Yih-Kuen Tsay Dept. of Information Management National Taiwan
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 informationAbstract Interpretation, or Non-Standard Semantics, or Picking the Right Abstraction
Abstract Interpretation, or NonStandard Semantics, or Picking the Right Abstraction Meeting 14, SI 5535, Spring 29 Announcements Homework 3 is graded Graded out of 19, out of 38 on moodle because of.5
More informationLogical Abstract Domains and Interpretations
Logical Abstract Domains and Interpretations Patrick Cousot 2,3, Radhia Cousot 3,1, and Laurent Mauborgne 3,4 1 Centre National de la Recherche Scientifique, Paris 2 Courant Institute of Mathematical Sciences,
More informationPREDICATE LOGIC: UNDECIDABILITY AND INCOMPLETENESS HUTH AND RYAN 2.5, SUPPLEMENTARY NOTES 2
PREDICATE LOGIC: UNDECIDABILITY AND INCOMPLETENESS HUTH AND RYAN 2.5, SUPPLEMENTARY NOTES 2 Neil D. Jones DIKU 2005 14 September, 2005 Some slides today new, some based on logic 2004 (Nils Andersen) OUTLINE,
More informationModel Checking: An Introduction
Model Checking: An Introduction Meeting 3, CSCI 5535, Spring 2013 Announcements Homework 0 ( Preliminaries ) out, due Friday Saturday This Week Dive into research motivating CSCI 5535 Next Week Begin foundations
More informationMid-Semester Quiz Second Semester, 2012
THE AUSTRALIAN NATIONAL UNIVERSITY Mid-Semester Quiz Second Semester, 2012 COMP2600 (Formal Methods for Software Engineering) Writing Period: 1 hour duration Study Period: 10 minutes duration Permitted
More informationSemantics with Applications: Model-Based Program Analysis
Semantics with Applications: Model-Based Program Analysis c Hanne Riis Nielson c Flemming Nielson Computer Science Department, Aarhus University, Denmark (October 1996) Contents 1 Introduction 1 1.1 Side-stepping
More informationDiscrete Mathematical Structures: Theory and Applications
Chapter 1: Foundations: Sets, Logic, and Algorithms Discrete Mathematical Structures: Theory and Applications Learning Objectives Learn about sets Explore various operations on sets Become familiar with
More informationWarm-Up Problem. Please fill out your Teaching Evaluation Survey! Please comment on the warm-up problems if you haven t filled in your survey yet.
Warm-Up Problem Please fill out your Teaching Evaluation Survey! Please comment on the warm-up problems if you haven t filled in your survey yet Warm up: Given a program that accepts input, is there an
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 informationINTRODUCTION TO PREDICATE LOGIC HUTH AND RYAN 2.1, 2.2, 2.4
INTRODUCTION TO PREDICATE LOGIC HUTH AND RYAN 2.1, 2.2, 2.4 Neil D. Jones DIKU 2005 Some slides today new, some based on logic 2004 (Nils Andersen), some based on kernebegreber (NJ 2005) PREDICATE LOGIC:
More informationProofs of Correctness: Introduction to Axiomatic Verification
Proofs of Correctness: Introduction to Axiomatic Verification Introduction Weak correctness predicate Assignment statements Sequencing Selection statements Iteration 1 Introduction What is Axiomatic Verification?
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 informationCourse Runtime Verification
Course Martin Leucker (ISP) Volker Stolz (Høgskolen i Bergen, NO) INF5140 / V17 Chapters of the Course Chapter 1 Recall in More Depth Chapter 2 Specification Languages on Words Chapter 3 LTL on Finite
More informationWhat are the recursion theoretic properties of a set of axioms? Understanding a paper by William Craig Armando B. Matos
What are the recursion theoretic properties of a set of axioms? Understanding a paper by William Craig Armando B. Matos armandobcm@yahoo.com February 5, 2014 Abstract This note is for personal use. It
More informationTitle: Logical Agents AIMA: Chapter 7 (Sections 7.4 and 7.5)
B.Y. Choueiry 1 Instructor s notes #12 Title: Logical Agents AIMA: Chapter 7 (Sections 7.4 and 7.5) Introduction to Artificial Intelligence CSCE 476-876, Fall 2018 URL: www.cse.unl.edu/ choueiry/f18-476-876
More information