Abstract Interpretation and Static Analysis

Size: px
Start display at page:

Download "Abstract Interpretation and Static Analysis"

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

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 information

Mechanics of Static Analysis

Mechanics 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 information

Foundations of Abstract Interpretation

Foundations 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 information

Principles of Program Analysis: A Sampler of Approaches

Principles 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 information

Abstract Interpretation from a Topological Perspective

Abstract 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 information

Program verification. Hoare triples. Assertional semantics (cont) Example: Semantics of assignment. Assertional semantics of a program

Program 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 information

Notes on Abstract Interpretation

Notes 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 information

BASIC CONCEPTS OF ABSTRACT INTERPRETATION

BASIC 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» «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 information

Deductive Verification

Deductive 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 information

Algorithmic verification

Algorithmic 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 information

Software Verification using Predicate Abstraction and Iterative Refinement: Part 1

Software 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 information

Structure-Preserving Binary Relations for Program Abstraction

Structure-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 information

Abstract interpretation from a denotational semantics perspective

Abstract 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 information

Static Program Analysis using Abstract Interpretation

Static 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 information

Learning Goals of CS245 Logic and Computation

Learning 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 information

Internal and External Logics of Abstract Interpretations

Internal 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 information

Introduction to Program Analysis and Abstract Interpretation (Part I)

Introduction 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» 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 information

Lecture Notes: Axiomatic Semantics and Hoare-style Verification

Lecture 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 information

Abstract Interpretation II

Abstract 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 information

COMP219: Artificial Intelligence. Lecture 19: Logic for KR

COMP219: 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 information

Design 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 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 information

Abstract Models of Shape Branching- and Linear-Time

Abstract 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 information

Introduction to Abstract Interpretation. ECE 584 Sayan Mitra Lecture 18

Introduction 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 information

Principles of Program Analysis: Control Flow Analysis

Principles 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 information

Program Analysis Part I : Sequential Programs

Program 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 information

Higher-Order Chaotic Iteration Sequences

Higher-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 information

Lecture Notes on Software Model Checking

Lecture 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 information

Propositional Logic: Models and Proofs

Propositional 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 information

COMP219: Artificial Intelligence. Lecture 19: Logic for KR

COMP219: 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 information

Principles of Program Analysis: Abstract Interpretation

Principles 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 information

Software Verification

Software 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 information

Cours M.2-6 «Interprétation abstraite: applications à la vérification et à l analyse statique» Examen partiel. Patrick Cousot.

Cours 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 information

Hoare Logic and Model Checking

Hoare 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 information

A Short Introduction to Hoare Logic

A 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 information

Static Program Analysis

Static 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 information

Tutorial 1: Modern SMT Solvers and Verification

Tutorial 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 information

CMSC 631 Program Analysis and Understanding Fall Abstract Interpretation

CMSC 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 information

CS156: The Calculus of Computation

CS156: 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 information

EDA045F: Program Analysis LECTURE 10: TYPES 1. Christoph Reichenbach

EDA045F: 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 information

The algorithmic analysis of hybrid system

The 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 information

Applied 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 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 information

Temporal Logic. Stavros Tripakis University of California, Berkeley. We have designed a system. We want to check that it is correct.

Temporal 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 information

First-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 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 information

Static Program Analysis

Static 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 information

Compositionality 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 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 information

Formal Methods in Software Engineering

Formal 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 information

Normal Forms of Propositional Logic

Normal 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 information

Proof Rules for Correctness Triples

Proof 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 information

Fundamentals of Software Engineering

Fundamentals 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 information

Price: $25 (incl. T-Shirt, morning tea and lunch) Visit:

Price: $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 information

Static Program Analysis

Static 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 information

Discrete Fixpoint Approximation Methods in Program Static Analysis

Discrete 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 information

Software Engineering using Formal Methods

Software 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 information

Formal Reasoning CSE 331. Lecture 2 Formal Reasoning. Announcements. Formalization and Reasoning. Software Design and Implementation

Formal 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 information

Overview. Knowledge-Based Agents. Introduction. COMP219: Artificial Intelligence. Lecture 19: Logic for KR

Overview. 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 information

Fundamentals of Software Engineering

Fundamentals 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 information

Disjunctive relational abstract interpretation for interprocedural program analysis

Disjunctive 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 information

Probabilistic Model Checking and [Program] Analysis (CO469)

Probabilistic 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 information

Propositional Logic Language

Propositional 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 information

WHAT IS AN SMT SOLVER? Jaeheon Yi - April 17, 2008

WHAT 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 information

PROOFS 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 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 information

CS 730/730W/830: Intro AI

CS 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 information

Dynamic Semantics. Dynamic Semantics. Operational Semantics Axiomatic Semantics Denotational Semantic. Operational Semantics

Dynamic 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 information

Today s Lecture. Lecture 4: Formal SE. Some Important Points. Formal Software Engineering. Introduction to Formal Software Engineering

Today 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 information

Constraint Solving for Program Verification: Theory and Practice by Example

Constraint 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 information

3 Propositional Logic

3 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 information

Abstraction in Program Analysis & Model Checking. Abstraction in Model Checking. Motivations & Results

Abstraction 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 information

Computation Tree Logic (CTL) & Basic Model Checking Algorithms

Computation 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 information

Logic: Propositional Logic (Part I)

Logic: 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 information

Description Logics. Foundations of Propositional Logic. franconi. Enrico Franconi

Description 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 information

A theory of modular and dynamic knowledge representation

A 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 information

Logic. 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 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 information

Design of Embedded Systems: Models, Validation and Synthesis (EE 249) Lecture 9

Design 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 information

Mathematical Foundations of Logic and Functional Programming

Mathematical 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 information

Fuzzy Propositional Logic for the Knowledge Representation

Fuzzy 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 information

Advanced Topics in LP and FP

Advanced 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 information

1 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 information

3-Valued Abstraction-Refinement

3-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 information

Time and Timed Petri Nets

Time 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 information

Constraint Logic Programming and Integrating Simplex with DPLL(T )

Constraint 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 information

Introduction to Axiomatic Semantics

Introduction 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 information

Hoare Logic (I): Axiomatic Semantics and Program Correctness

Hoare 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 information

Axiomatic Semantics. Lecture 9 CS 565 2/12/08

Axiomatic 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 information

Abstract Interpretation, or Non-Standard Semantics, or Picking the Right Abstraction

Abstract 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 information

Logical Abstract Domains and Interpretations

Logical 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 information

PREDICATE 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 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 information

Model Checking: An Introduction

Model 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 information

Mid-Semester Quiz Second Semester, 2012

Mid-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 information

Semantics with Applications: Model-Based Program Analysis

Semantics 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 information

Discrete Mathematical Structures: Theory and Applications

Discrete 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 information

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 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 information

AN INTRODUCTION TO SEPARATION LOGIC. 2. Assertions

AN 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 information

INTRODUCTION 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 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 information

Proofs of Correctness: Introduction to Axiomatic Verification

Proofs 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 information

Spring 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 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 information

Course Runtime Verification

Course 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 information

What 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 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 information

Title: Logical Agents AIMA: Chapter 7 (Sections 7.4 and 7.5)

Title: 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