Applying Predicate Logic to Monitoring Network Traffic

Size: px
Start display at page:

Download "Applying Predicate Logic to Monitoring Network Traffic"

Transcription

1 Applying Predicate Logic to Monitoring Network Traffic Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria Joint work with Temur Kutsia (RISC), Michael Krieger, Bashar Ahmad (RISC Software), Helmut Otto, and Martin Rummerstorfer (SecureGUARD). Supported by the FFG BRIDGE project LogicGuard. Wolfgang Schreiner 1/30

2 The Problem: Monitoring Network Traffic Specification Monitor Forward Package (yes/no)? Package Block (or just report) every package that triggers a violation of the specified safety property. Wolfgang Schreiner 2/30

3 Network Traffic Wolfgang Schreiner 3/30

4 General Idea Treat the problem as an application of runtime verification. Specify safety property in a high-level declarative form. What to detect, not how to detect it. Automatically translate the specification into an executable monitor. A program that surveils the traffic for violations of the property. Advantage: no manual low-level coding of monitors required. Tedious and error-prone, difficult to maintain. Challenge: time and space complexity of the monitor. Must operate with limited time and memory resources. Various specification formalisms have been devised for this purpose. Wolfgang Schreiner 4/30

5 Our Approach Predicate logic formulas interpreted over infinite streams. S p p p p p q i : q(s i ) j < i : p(s j ) Set-builder notation to construct new streams. S T Classical logic and set theory. T := f (S i, S i+2 ) i N i mod 4 < 2 Wolfgang Schreiner 5/30

6 The Monitoring Model Formulas are evaluated on streams, external as well as internally constructed (virtual) ones. stream IP : stream S1 = stream i in IP... S@i... : stream S2 = stream j in IP... S@j... : monitor i in S1... : monitor j in S2... :... S1@i... S2@j... S 1 Check S 2 IP monitor violations Internal streams to express properties on a higher level of abstraction. Wolfgang Schreiner 6/30

7 Example type int; int Square(int); bool isone(int); bool istwo(int); // the base stream and a derived virtual stream stream<int> IP; stream<int> S = construct X in IP with 0 in IP <= X value<int> M = IP.at(X) satisfying isone(m) istwo(m) : Square(IP.at(X)); // are 1s not more than 50 units apart? monitor M = position X in S : isone(s.at(x)) => exists Y in S with X<Y<=(X+50) : isone(s.at(y)); 000,2 010,1 020,0 030,0 040,0 050,2 060,1 070,0 080,2 090,0 100,2 110,0 120,2 130,1 140,2 150,1 160,2 170,0 180,2 190,0 200,2 210,1 220,2 000,4 010,1 050,4 060,1 080,4 100,4 120,4 130,1 140,4 150,1 160,4 180,4 200,4 A specification using the test runtime system. 210,1 220,4 Wolfgang Schreiner 7/30

8 Example // IntFunctions.cs using System; using LogicGuard.Network.IntTS; namespace External { class IntFunctions { public static bool iszero(inttsmessage m) { return m.payload == 0; } public static bool isone(inttsmessage m) { return m.payload == 1; }... } } The corresponding external functions. Wolfgang Schreiner 8/30

9 Monitor Execution Main.Exe -test TranslatorTester\traces\PAS.txt TranslatorTester\specs\PAS.lgs External\bin\Debug\External.dll Wolfgang Schreiner 9/30

10 Abstract Specification Language P ::= (B S) M M ::= F monitor X : F F ::= XF B : F PC(TV ) true false F F 1 /\ F 2 F 1 \/ F 2 F 1 => F 2 F 1 <=> F 2 forall X : F exists X : F TS ::= XS B : TS FS(TS ) stream X : (TV TS) scombine(fc,tv ) X : TV TP ::= XP B : TP FP(TP ) TP+N TP-N min X : F max X : F TV ::= XV B : XV FV (TV ) TS@TP TS TP number X : F combine(fc,tv ) X :TV B ::= formula XF = F position XP = TP value XV = TV S ::= stream XS = TS X ::= XP in TS with TP 1 <= XP <= TP 2 (B satisfying F 1 ) (until F 2 )? A simplified and regularized version of the concrete language. Wolfgang Schreiner 10/30

11 Semantics of the Language Environment := Variable B Stream N Value Stream := Message ω Message Message := Value N [. ] : Monitor Environment P(N) [ monitor X : F ](e) := let (x, s, N) := [ X ](e) : {n N : [ F ](e[x n]) = false} [. ] : Formula Environment B [ forall X : F ](e) := let (x, s, N) := [ X ](e) : if n N : [ F ](e[x n]) = true then true else false... [. ] : TermValue Environment Value [ TS@TP ](e) := ([ TS ](e)([ TP ](e))).1 [ TS TP ](e) := ([ TS ](e)([ TP ](e))).2... Phrases are interpreted over variables that may be mapped to streams. Wolfgang Schreiner 11/30

12 Semantics of the Language [. ] : TermStream Environment Stream [ stream X : TV ](e) := let (x, s, N) := [ X ](e) : let S := {n N t N : istimeof (t, TV, e[x n])} such s Stream : timeincreases(s ) allmessages(s, S, TV, e, x) istimeof (t, TV, e) : // at time t, the value of TV is defined wrt. e e Environment : domain(e ) = domain(e) ( x domain(e) : if e(x) Stream then e (x) = e(x) else e (x) Stream i domain(e (x)) : e (x)(i).2 t e (x)(i) = e(x)(i)) [ TV ](e, s) = [ TV ](e, s) timeincreases(s ) : i, j domain(s ) : i < j s (i).2 s (j).2 allmessages(s, S, TV, e, x) : // s contains all TV (x) wrt. e with x from S p domain(s ) bij. S : i domain(s ) : s (i) = let t := min t N : istimeof (t, TV, e[x p(i)]) : ([ TV ](e[x p(i)]), t) The stream orders all values by the time they become defined. Wolfgang Schreiner 12/30

13 From Semantics to Operation Next Message Syntax Translation Engine New State Semantics Soundness Value We translate the various kinds of phrases to operational engines ; this translation preserves the semantics of the phrases. Wolfgang Schreiner 13/30

14 The Translation All phrases are translated to value-producing engines. Monitors: T : Monitor MonitorStep MonitorStep := PresentM MonitorResult MonitorResult := P(N ) (done + next of MonitorStep) At each step, vectors of violating positions are produced. Formulas: T : Formula FormulaStep FormulaStep := Present FormulaResult FormulaResult := done of B + next of FormulaStep At termination, a truth value is delivered. Streams: T : Stream StreamStep StreamStep := Present StreamResult StreamResult := P(Message) (done + next of StreamStep) At each step, messages are produced. At each new message received, the engines make an execution step. Wolfgang Schreiner 14/30

15 A Core Language For the further discussion, we reduce our language to a skeleton. M ::= monitor X : F F F F 1 /\ F 2 forall X in B 1..B 2 : F B ::= 0 infinity X B + N B N N ::= X ::= x y z... A core monitor is interpreted over a single stream of truth values. Wolfgang Schreiner 15/30

16 Translation of the Monitor PresentM := Message Message Present := Message Message Context Context := Variable partial (N B) Instance := N FormulaStep Context T (monitor X : F ) := TM(X, T (F ), ) where TM : Variable FormulaStep P(Instance) MonitorStep TM(X, f, fs)(ms, m) := let n := ms : let c := [X (n, m)] : let fs 0 := fs {(n, f, c)} : let rs := {n N g FormulaStep, c Context : (n, g, c) fs 0 case g(ms, m, c) of done(b) b = false _ false} : let fs 1 := {(n, g 0, c) Instance g FormulaStep : (n, g, c) fs 0 case g(ms, m, c) of next(g 1 ) g 0 = g 1 _ false} : (rs, next(tm(x, f, fs 1 ))) Report positions rs and maintain formula instances fs. Wolfgang Schreiner 16/30

17 Translation of Formulas T (@X ) := TV (X ) where TV : Variable FormulaStep TV (X )(ms, m, c) := if X domain(c) then done(c(x ).2) else done(false) T ( F ) := TN(T (F )) where TN : FormulaStep FormulaStep TN(f )(ms, m, c) := case f (ms, m, c) of done(false) done(true) done(true) done(false) next(f ) next(tn(f )) T (F 1 /\ F 2 ) := TC(T (F 1 ), T (F 2 )) where TC : FormulaStep FormulaStep FormulaStep TC(f 1, f 2 )(ms, m, c) := case f 1 (ms, m, c) of done(false) done(false) done(true) f 2 (ms, m, c) next(f 1 ) next(tc(f 1, f 2)) Maintain component steps f 1, f 2 and ultimately yield a truth value. Wolfgang Schreiner 17/30

18 A Concrete Formula Step TC : FormulaStep FormulaStep FormulaStep TC(f 1, f 2)(ms, m, c) := case f 1(ms, m, c) of done(false) done(false) done(true) f 2(ms, m, c) next(f 1 ) next(tc(f 1, f 2)) let rec monitorand (f1 : FormulaStep) (f2 : FormulaStep): FormulaStep = fun (present : Present) -> match f1 present with done(false) -> done(false) done(true) -> f2 present next(step1) -> next(monitorand step1 f2) Prototype implementation in F#. Wolfgang Schreiner 18/30

19 Translation of Quantifiers T (forall X in B 1..B 2 : F ) := TA(X, T (B 1 ), T (B 2 ), T (F )) where TA : Variable (Context N) 2 FormulaStep FormulaStep TA(X, b 1, b 2, f )(ms, m, c) := TA 0 (X, b1(c), b2(c), f )(ms, m, c) TA 0 : Variable N N FormulaStep FormulaStep TA0(X, n 1, n 2, f )(ms, m, c) := let n := ms : if n < n 1 then next(ta 0 (X, n 1, n 2, f )) else let fs := {(n 0, f, c[x (n 0, ms(n 0 ))]) n1 n 0 < min(n, n 2 + 1)} : TA 1 (X, n 2, f, fs)(ms, m, c) First determine iteration range, then set up formula instances fs. Wolfgang Schreiner 19/30

20 Translation of Quantifiers TA 1 : Variable N FormulaStep P(Instance) FormulaStep TA 1 (X, n 2, f, fs)(ms, m, c) := let n := ms : let fs 0 := if n > n 2 then fs else fs {(n, f, (c[x (n, m)]))} : if ( n N, g FormulaStep, c Context : (n, g, c) fs 0 case g(ms, m, c) of done(b) b = false _ false) then done(false) else let fs 1 := {(n, g 0, c) Instance g FormulaStep : (n, g, c) fs 0 case g(ms, m, c) of next(g 1 ) g 0 = g 1 _ false} : if fs 1 = n n 2 then done(true) else next(ta 1 (X, n 2, f, fs 1 )) Maintain formula instances fs and ultimately yield a truth value. Wolfgang Schreiner 20/30

21 Soundness of the Translation Semantics of Core Monitor: Operation of Core Monitor: [. ] : Monitor Stream P(N) [ M ](s) :=... run : N MonitorStep Message Stream P(N) run(n, M, ms, s) := if n = 0 then else case M(ms, hd(s)) of (rs, done) rs (rs, next(m )) rs run(n 1, M, ms hd(s), tl(s)) Soundness of Translation: n N, M Monitor, s Stream : run(n, T (M),, s) [ M ](s) Only violations of safety properties can be detected by monitoring. Wolfgang Schreiner 21/30

22 Efficiency of the Execution The described implementation is effective but not efficient. A monitor may in general require the full history of received messages for its execution: run(n, M, ms, s) :=... M(ms, hd(s)) run(n 1, M, ms hd(s), tl(s)) A monitor may in general keep track of an arbitrary number of monitor instances: T (monitor X : F ) := TM(X, T (F ), ) where TM : Variable FormulaStep P(Instance) MonitorStep TM(X, f, fs)(ms, m) :=... (rs, next(tm(x, f, fs 1))) In practice we are only interested in monitors that cope with a bounded amount of memory. Wolfgang Schreiner 22/30

23 Example monitor => monitor X: /\ exists X-1 <= Y <= X+2 : ~@X forall X-1 <= Y <= X+2 : ~@X) F [0] F [1] F [2] F [3] F [4] F [5] F [6] F [7] F [8] F [9]. The monitor needs a history of size 1 and preserves at most 2 instances. Wolfgang Schreiner 23/30

24 The Resource Analysis We are going to devise a rule-based analysis that determines whether the resources of the monitor can be bounded. Monitor : N N Environment Formula : N N Environment := Variable partial Z Z M : (h, d)... Monitor M needs history of at most size h and keeps at most d instances. e F : (h, d)... Formula F needs at most h past messages and at most d future messages for its evaluation to a truth value. e(x ) = (l, u)... Position X is in the interval [p + l, p + u] with respect to the position p of the current message. Wolfgang Schreiner 24/30

25 An abstract interpretation of the monitor. Wolfgang Schreiner 25/30 The Resource Analysis [[ X ] (0, 0)] F : (h, d) (monitor X : F ) : (h, d) : (0, 0) e F : (h, d) e F : (h, d) e F 1 : (h 1, d 1 ), e F 2 : (h 2, d 2 ) e F 1 /\ F 2 : (max (h 1, h 2 + d 1 ), max (d 1, d 2 )) e B 1 : (l 1, u 1 ), e B 2 : (l 2, u 2 ) e[[ X ] (l 1, u 2 )] F : (h, d ) h = max (h, N ( l 1 )) d = max (d, N (u 2 )) e (forall X in B 1..B 2 : F ) : (h, d) e 0 : (0, 0) e infinity : (, ) [ X ] domain(e) e X : (0, 0) [ X ] domain(e) e X : e([ X ]) e B : (l, u) e B+N : (l + [ N ], u + [ N ]) e B : (l, u) e B-N : (l [ N ], u [ N ])

26 Example We annotate first variables top-down and then formulas bottom-up. monitor X (0,0) : /\ forall X-1 < Y ( 1,2) <= X+2 (1,2) (1,2) (0,0) (1,2) (0,0) The analysis yields M : (1, 2) as required. Wolfgang Schreiner 26/30

27 The Effect of Delays Without delay in conjunction: monitor X (0,0) /\ forall Y (0,5) in X..X+5 : forall Z ( 3,4) in Y-3..Y-1 With delay in conjunction: monitor X (0,0) : (forall Y (0,3) in X..X+3 /\ forall Y (0,5) in X..X+5 : forall Z ( 3,4) in Y-3..Y-1 (3,5) (0,0) (3,5) (3,4) (0,0) (6,5) (0,3) (3,5) (3,4) (0,0) Delays in conjunctions let the history requirements increase. Wolfgang Schreiner 27/30

28 Soundness of the Resource Analysis The results of the analysis bound the resources of the monitor. M Monitor, Mt TMonitor, n N, s Stream, rs N, d N, h N : M : (h, d) (d N ( T (M) n,s,rs Mt instances(mt) d)) (h N ( T (M) n,s,rs Mt T (M) n,s,rs,h Mt)) Mt n,s,rs Mt Mt is the state of the monitor Mt after processing n messages from stream s (by which the violations rs are reported). Mt n,s,rs,h Mt Mt is the state of the monitor Mt after processing n messages from stream s (by which the violations rs are reported), if only the last h messages are preserved in the stream history. For the proof of soundness, an operational semantics of the monitor execution is derived from the previously presented denotational semantics. Wolfgang Schreiner 28/30

29 Proof of the Soundness of the Analysis 1. Prove an invariant of monitor execution. X Variable,... : T (monitor X : F ) n,s,rs TM(Y, Ft, It) X = Y Ft = T (F ) alldifferent(it) allnext(it) ((t, Ft, c) It c = [X (t, s(t))] (monitor X : F ) : (h, d) d N n d t n 1 b B, d N : d d Ft max(0,t+d n),n,s,c(x ).1 done(b)) 2. Prove soundness of analysis w.r.t. monitor execution. M Monitor, Mt TMonitor, n N, s Stream, rs N, d N, h N : M : (h, d) (d N ( T (M) n,s,rs Mt instances(mt) d)) (h N ( T (M) n,s,rs Mt T (M) n,s,rs,h Mt)) Use invariant as additional assumption. Derive required soundness statement for formula evaluation. 3. Prove soundness statement for formula evaluation. Wolfgang Schreiner 29/30

30 Conclusions Current status: Predicate-logic based monitor specification language developed. Prototype of monitor translation implemented. Resource analysis formulated (for a simplified language). Proof of soundness of analysis under way (for a core language). Future tasks: Implementation of soundness analysis. Verification of soundness of translation. Compilation of specifications (currently interpretation). More optimizations based on a more detailed formula analysis. Development of a catalogue of application examples. Performance analysis of application examples. Wolfgang Schreiner 30/30

LogicGuard Abstract Language

LogicGuard Abstract Language LogicGuard Abstract Language Temur Kutsia Wolfgang Schreiner RISC, Johannes Kepler University Linz {schreine,kutsia}@risc.jku.at Abstract The LogicGuard project aims at developing a specification and verification

More information

Simply Typed Lambda Calculus

Simply Typed Lambda Calculus Simply Typed Lambda Calculus Language (ver1) Lambda calculus with boolean values t ::= x variable x : T.t abstraction tt application true false boolean values if ttt conditional expression Values v ::=

More information

Hoare Calculus and Predicate Transformers

Hoare Calculus and Predicate Transformers Hoare Calculus and Predicate Transformers 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 information

Reasoning About Imperative Programs. COS 441 Slides 10b

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

First Order Predicate Logic

First Order Predicate Logic Wolfgang Schreiner and Wolfgang Windsteiger http://www.risc.jku.at 1/25 First Order Predicate Logic Formal Definitions and Specifications Wolfgang Schreiner and Wolfgang Windsteiger Wolfgang.(Schreiner

More information

Towards abstract and executable multivariate polynomials in Isabelle

Towards abstract and executable multivariate polynomials in Isabelle Towards abstract and executable multivariate polynomials in Isabelle Florian Haftmann Andreas Lochbihler Wolfgang Schreiner Institute for Informatics Institute of Information Security RISC TU Munich ETH

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

Formal Methods for Java

Formal Methods for Java Formal Methods for Java Lecture 20: Sequent Calculus Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg January 15, 2013 Jochen Hoenicke (Software Engineering) Formal Methods for Java

More information

First Order Predicate Logic

First Order Predicate Logic Wolfgang Schreiner and Wolfgang Windsteiger http://www.risc.jku.at 1/22 First Order Predicate Logic Pragmatics Wolfgang Schreiner and Wolfgang Windsteiger Wolfgang.(Schreiner Windsteiger)@risc.jku.at Research

More information

Limits of Computability

Limits of Computability Limits of Computability Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at Wolfgang Schreiner

More information

SMT BASICS WS 2017/2018 ( ) LOGIC SATISFIABILITY MODULO THEORIES. Institute for Formal Models and Verification Johannes Kepler Universität Linz

SMT BASICS WS 2017/2018 ( ) LOGIC SATISFIABILITY MODULO THEORIES. Institute for Formal Models and Verification Johannes Kepler Universität Linz LOGIC SATISFIABILITY MODULO THEORIES SMT BASICS WS 2017/2018 (342.208) Armin Biere Martina Seidl biere@jku.at martina.seidl@jku.at Institute for Formal Models and Verification Johannes Kepler Universität

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

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

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

Axiomatic Semantics: Verification Conditions. Review of Soundness and Completeness of Axiomatic Semantics. Announcements

Axiomatic Semantics: Verification Conditions. Review of Soundness and Completeness of Axiomatic Semantics. Announcements Axiomatic Semantics: Verification Conditions Meeting 12, CSCI 5535, Spring 2009 Announcements Homework 4 is due tonight Wed forum: papers on automated testing using symbolic execution 2 Questions? Review

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

Hoare Logic I. Introduction to Deductive Program Verification. Simple Imperative Programming Language. Hoare Logic. Meaning of Hoare Triples

Hoare Logic I. Introduction to Deductive Program Verification. Simple Imperative Programming Language. Hoare Logic. Meaning of Hoare Triples Hoare Logic I Introduction to Deductive Program Verification Işıl Dillig Program Spec Deductive verifier FOL formula Theorem prover valid contingent Example specs: safety (no crashes), absence of arithmetic

More information

Verified Characteristic Formulae for CakeML. Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 18, 2017

Verified Characteristic Formulae for CakeML. Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 18, 2017 Verified Characteristic Formulae for CakeML Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 18, 2017 CakeML Has: references, modules, datatypes, exceptions, a FFI,... Doesn t have:

More information

Computer Science Introductory Course MSc - Introduction to Java

Computer Science Introductory Course MSc - Introduction to Java Computer Science Introductory Course MSc - Introduction to Java Lecture 1: Diving into java Pablo Oliveira ENST Outline 1 Introduction 2 Primitive types 3 Operators 4 5 Control Flow

More information

Abstractions and Decision Procedures for Effective Software Model Checking

Abstractions and Decision Procedures for Effective Software Model Checking Abstractions and Decision Procedures for Effective Software Model Checking Prof. Natasha Sharygina The University of Lugano, Carnegie Mellon University Microsoft Summer School, Moscow, July 2011 Lecture

More information

Hoare Logic: Reasoning About Imperative Programs

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

Experiments with Measuring Time in PRISM 4.0 (Addendum)

Experiments with Measuring Time in PRISM 4.0 (Addendum) Experiments with Measuring Time in PRISM 4.0 (Addendum) Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria Wolfgang.Schreiner@risc.jku.at April

More information

The State Explosion Problem

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

Knowledge base (KB) = set of sentences in a formal language Declarative approach to building an agent (or other system):

Knowledge base (KB) = set of sentences in a formal language Declarative approach to building an agent (or other system): Logic Knowledge-based agents Inference engine Knowledge base Domain-independent algorithms Domain-specific content Knowledge base (KB) = set of sentences in a formal language Declarative approach to building

More information

Reasoning with Quantified Boolean Formulas

Reasoning with Quantified Boolean Formulas Reasoning with Quantified Boolean Formulas Martina Seidl Institute for Formal Models and Verification Johannes Kepler University Linz 1 What are QBF? Quantified Boolean formulas (QBF) are formulas of propositional

More information

CSC 7101: Programming Language Structures 1. Axiomatic Semantics. Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11.

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

First Order Predicate Logic

First Order Predicate Logic Wolfgang Schreiner and Wolfgang Windsteiger http://www.risc.jku.at 1/23 First Order Predicate Logic Syntax and Informal Semantics Wolfgang Schreiner and Wolfgang Windsteiger Wolfgang.(Schreiner Windsteiger)@risc.jku.at

More information

Modeling Concurrent Systems

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

A JML Specification of the Design Pattern Visitor

A JML Specification of the Design Pattern Visitor A JML Specification of the Design Pattern Visitor Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Johannes Kepler University Linz, Austria Wolfgang.Schreiner@risc.jku.at September

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

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

INVARIANT RELATIONS: A CONCEPT FOR ANALYZING WHILE LOOPS. Ali Mili, NJIT NII, Tokyo, Japan December 20, 2011

INVARIANT RELATIONS: A CONCEPT FOR ANALYZING WHILE LOOPS. Ali Mili, NJIT NII, Tokyo, Japan December 20, 2011 INVARIANT RELATIONS: A CONCEPT FOR ANALYZING WHILE LOOPS Ali Mili, NJIT NII, Tokyo, Japan December 20, 2011 PLAN 2 Motivation Relational Mathematics Invariant Relations Invariant Relations and Loop Functions

More information

The Assignment Axiom (Hoare)

The Assignment Axiom (Hoare) The Assignment Axiom (Hoare) Syntax: V := E Semantics: value of V in final state is value of E in initial state Example: X:=X+ (adds one to the value of the variable X) The Assignment Axiom {Q[E/V ]} V

More information

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

Axiomatic Semantics: Verification Conditions. Review of Soundness of Axiomatic Semantics. Questions? Announcements

Axiomatic Semantics: Verification Conditions. Review of Soundness of Axiomatic Semantics. Questions? Announcements Axiomatic Semantics: Verification Conditions Meeting 18, CSCI 5535, Spring 2010 Announcements Homework 6 is due tonight Today s forum: papers on automated testing using symbolic execution Anyone looking

More information

Automated Reasoning Lecture 5: First-Order Logic

Automated Reasoning Lecture 5: First-Order Logic Automated Reasoning Lecture 5: First-Order Logic Jacques Fleuriot jdf@inf.ac.uk Recap Over the last three lectures, we have looked at: Propositional logic, semantics and proof systems Doing propositional

More information

Formal Methods for Java

Formal Methods for Java Formal Methods for Java Lecture 12: Soundness of Sequent Calculus Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg June 12, 2017 Jochen Hoenicke (Software Engineering) Formal Methods

More information

cse541 LOGIC FOR COMPUTER SCIENCE

cse541 LOGIC FOR COMPUTER SCIENCE cse541 LOGIC FOR COMPUTER SCIENCE Professor Anita Wasilewska Spring 2015 LECTURE 2 Chapter 2 Introduction to Classical Propositional Logic PART 1: Classical Propositional Model Assumptions PART 2: Syntax

More information

Scalable and Accurate Verification of Data Flow Systems. Cesare Tinelli The University of Iowa

Scalable and Accurate Verification of Data Flow Systems. Cesare Tinelli The University of Iowa Scalable and Accurate Verification of Data Flow Systems Cesare Tinelli The University of Iowa Overview AFOSR Supported Research Collaborations NYU (project partner) Chalmers University (research collaborator)

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

Chapter 2: Introduction to Propositional Logic

Chapter 2: Introduction to Propositional Logic Chapter 2: Introduction to Propositional Logic PART ONE: History and Motivation Origins: Stoic school of philosophy (3rd century B.C.), with the most eminent representative was Chryssipus. Modern Origins:

More information

Axiomatic Semantics. Operational semantics. Good for. Not good for automatic reasoning about programs

Axiomatic Semantics. Operational semantics. Good for. Not good for automatic reasoning about programs Review Operational semantics relatively l simple many flavors (small vs. big) not compositional (rule for while) Good for describing language implementation reasoning about properties of the language eg.

More 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

Turing Machines. Wolfgang Schreiner

Turing Machines. Wolfgang Schreiner Turing Machines Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at Wolfgang Schreiner

More information

Information Flow Analysis via Path Condition Refinement

Information Flow Analysis via Path Condition Refinement Information Flow Analysis via Path Condition Refinement Mana Taghdiri, Gregor Snelting, Carsten Sinz Karlsruhe Institute of Technology, Germany FAST September 16, 2010 KIT University of the State of Baden-Wuerttemberg

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

Towards Algorithmic Synthesis of Synchronization for Shared-Memory Concurrent Programs

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

Softwaretechnik. Lecture 13: Design by Contract. Peter Thiemann University of Freiburg, Germany

Softwaretechnik. Lecture 13: Design by Contract. Peter Thiemann University of Freiburg, Germany Softwaretechnik Lecture 13: Design by Contract Peter Thiemann University of Freiburg, Germany 25.06.2012 Table of Contents Design by Contract Contracts for Procedural Programs Contracts for Object-Oriented

More information

Softwaretechnik. Lecture 13: Design by Contract. Peter Thiemann University of Freiburg, Germany

Softwaretechnik. Lecture 13: Design by Contract. Peter Thiemann University of Freiburg, Germany Softwaretechnik Lecture 13: Design by Contract Peter Thiemann University of Freiburg, Germany 25.06.2012 Table of Contents Design by Contract Contracts for Procedural Programs Contracts for Object-Oriented

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

Soundness and Completeness of Axiomatic Semantics

Soundness and Completeness of Axiomatic Semantics #1 Soundness and Completeness of Axiomatic Semantics #2 One-Slide Summary A system of axiomatic semantics is sound if everything we can prove is also true: if ` { A } c { B } then ² { A } c { B } We prove

More information

Notes. Corneliu Popeea. May 3, 2013

Notes. Corneliu Popeea. May 3, 2013 Notes Corneliu Popeea May 3, 2013 1 Propositional logic Syntax We rely on a set of atomic propositions, AP, containing atoms like p, q. A propositional logic formula φ Formula is then defined by the following

More information

Classical Program Logics: Hoare Logic, Weakest Liberal Preconditions

Classical Program Logics: Hoare Logic, Weakest Liberal Preconditions Chapter 1 Classical Program Logics: Hoare Logic, Weakest Liberal Preconditions 1.1 The IMP Language IMP is a programming language with an extensible syntax that was developed in the late 1960s. We will

More information

First-Order Theorem Proving and Vampire

First-Order Theorem Proving and Vampire First-Order Theorem Proving and Vampire Laura Kovács 1,2 and Martin Suda 2 1 TU Wien 2 Chalmers Outline Introduction First-Order Logic and TPTP Inference Systems Saturation Algorithms Redundancy Elimination

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

Towards Practical Reflection for Formal Mathematics

Towards Practical Reflection for Formal Mathematics Towards Practical Reflection for Formal Mathematics extended abstract Martin Giese and Bruno Buchberger RISC, Johannes Kepler University, A-4232 Schloß Hagenberg, Austria {bruno.buchberger martin.giese}@risc.uni-linz.ac.at

More information

Failure Diagnosis of Discrete Event Systems With Linear-Time Temporal Logic Specifications

Failure Diagnosis of Discrete Event Systems With Linear-Time Temporal Logic Specifications Failure Diagnosis of Discrete Event Systems With Linear-Time Temporal Logic Specifications Shengbing Jiang and Ratnesh Kumar Abstract The paper studies failure diagnosis of discrete event systems with

More information

Logical Agents. Knowledge based agents. Knowledge based agents. Knowledge based agents. The Wumpus World. Knowledge Bases 10/20/14

Logical Agents. Knowledge based agents. Knowledge based agents. Knowledge based agents. The Wumpus World. Knowledge Bases 10/20/14 0/0/4 Knowledge based agents Logical Agents Agents need to be able to: Store information about their environment Update and reason about that information Russell and Norvig, chapter 7 Knowledge based agents

More information

A Little Logic. Propositional Logic. Satisfiability Problems. Solving Sudokus. First Order Logic. Logic Programming

A Little Logic. Propositional Logic. Satisfiability Problems. Solving Sudokus. First Order Logic. Logic Programming A Little Logic International Center for Computational Logic Technische Universität Dresden Germany Propositional Logic Satisfiability Problems Solving Sudokus First Order Logic Logic Programming A Little

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

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

Turing machine. Turing Machine Model. Turing Machines. 1. Turing Machines. Wolfgang Schreiner 2. Recognizing Languages

Turing machine. Turing Machine Model. Turing Machines. 1. Turing Machines. Wolfgang Schreiner 2. Recognizing Languages Turing achines Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at 1. Turing achines Wolfgang

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

COMPUTER SCIENCE TEMPORAL LOGICS NEED THEIR CLOCKS

COMPUTER SCIENCE TEMPORAL LOGICS NEED THEIR CLOCKS Bulletin of the Section of Logic Volume 18/4 (1989), pp. 153 160 reedition 2006 [original edition, pp. 153 160] Ildikó Sain COMPUTER SCIENCE TEMPORAL LOGICS NEED THEIR CLOCKS In this paper we solve some

More information

Propositional Logic: Methods of Proof (Part II)

Propositional Logic: Methods of Proof (Part II) Propositional Logic: Methods of Proof (Part II) You will be expected to know Basic definitions Inference, derive, sound, complete Conjunctive Normal Form (CNF) Convert a Boolean formula to CNF Do a short

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

Formal Verification Techniques. Riccardo Sisto, Politecnico di Torino

Formal Verification Techniques. Riccardo Sisto, Politecnico di Torino Formal Verification Techniques Riccardo Sisto, Politecnico di Torino State exploration State Exploration and Theorem Proving Exhaustive exploration => result is certain (correctness or noncorrectness proof)

More information

Program verification using Hoare Logic¹

Program verification using Hoare Logic¹ Program verification using Hoare Logic¹ Automated Reasoning - Guest Lecture Petros Papapanagiotou Part 2 of 2 ¹Contains material from Mike Gordon s slides: Previously on Hoare Logic A simple while language

More information

Propositional Logic: Syntax

Propositional Logic: Syntax Logic Logic is a tool for formalizing reasoning. There are lots of different logics: probabilistic logic: for reasoning about probability temporal logic: for reasoning about time (and programs) epistemic

More information

Equalities and Uninterpreted Functions. Chapter 3. Decision Procedures. An Algorithmic Point of View. Revision 1.0

Equalities and Uninterpreted Functions. Chapter 3. Decision Procedures. An Algorithmic Point of View. Revision 1.0 Equalities and Uninterpreted Functions Chapter 3 Decision Procedures An Algorithmic Point of View D.Kroening O.Strichman Revision 1.0 Outline Decision Procedures Equalities and Uninterpreted Functions

More information

CSE507. Satisfiability Modulo Theories. Computer-Aided Reasoning for Software. Emina Torlak

CSE507. Satisfiability Modulo Theories. Computer-Aided Reasoning for Software. Emina Torlak Computer-Aided Reasoning for Software CSE507 Satisfiability Modulo Theories courses.cs.washington.edu/courses/cse507/18sp/ Emina Torlak emina@cs.washington.edu Today Last lecture Practical applications

More information

Software Engineering

Software Engineering Software Engineering Lecture 07: Design by Contract Peter Thiemann University of Freiburg, Germany 02.06.2014 Table of Contents Design by Contract Contracts for Procedural Programs Contracts for Object-Oriented

More information

Hoare Logic: Reasoning About Imperative Programs

Hoare Logic: Reasoning About Imperative Programs Hoare Logic: Reasoning About Imperative Programs COMP1600 / COMP6260 Dirk Pattinson Australian National University Semester 2, 2017 Catch Up / Drop in Lab When Fridays, 15.00-17.00 Where N335, CSIT Building

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

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

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

Verifying Probabilistic Programs using the HOL Theorem Prover Joe Hurd p.1/32

Verifying Probabilistic Programs using the HOL Theorem Prover Joe Hurd p.1/32 Verifying Probabilistic Programs using the HOL Theorem Prover Joe Hurd joe.hurd@cl.cam.ac.uk University of Cambridge Verifying Probabilistic Programs using the HOL Theorem Prover Joe Hurd p.1/32 Contents

More information

Integer Clocks and Local Time Scales

Integer Clocks and Local Time Scales Integer Clocks and Local Time Scales Part I Part II Adrien Guatto ENS - PARKAS SYNCHRON 2014 Adrien Guatto (ENS - PARKAS) Integer Clocks and Local Time Scales SYNCHRON 2014 1 / 31 Part I Adrien Guatto

More information

LOGIC PROPOSITIONAL REASONING

LOGIC PROPOSITIONAL REASONING LOGIC PROPOSITIONAL REASONING WS 2017/2018 (342.208) Armin Biere Martina Seidl biere@jku.at martina.seidl@jku.at Institute for Formal Models and Verification Johannes Kepler Universität Linz Version 2018.1

More information

if t 1,...,t k Terms and P k is a k-ary predicate, then P k (t 1,...,t k ) Formulas (atomic formulas)

if t 1,...,t k Terms and P k is a k-ary predicate, then P k (t 1,...,t k ) Formulas (atomic formulas) FOL Query Evaluation Giuseppe De Giacomo Università di Roma La Sapienza Corso di Seminari di Ingegneria del Software: Data and Service Integration Laurea Specialistica in Ingegneria Informatica Università

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

Denotational Semantics of Programs. : SimpleExp N.

Denotational Semantics of Programs. : SimpleExp N. Models of Computation, 2010 1 Denotational Semantics of Programs Denotational Semantics of SimpleExp We will define the denotational semantics of simple expressions using a function : SimpleExp N. Denotational

More information

Introduction to Computer Programming

Introduction to Computer Programming Introduction to Computer Programming Lecture 01 Software engineering is a field of engineering, for designing and writing programs for computers or other electronic devices. A software engineer, or programmer,

More information

The Underlying Semantics of Transition Systems

The Underlying Semantics of Transition Systems The Underlying Semantics of Transition Systems J. M. Crawford D. M. Goldschlag Technical Report 17 December 1987 Computational Logic Inc. 1717 W. 6th St. Suite 290 Austin, Texas 78703 (512) 322-9951 1

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

Automatic Generation of Polynomial Invariants for System Verification

Automatic Generation of Polynomial Invariants for System Verification Automatic Generation of Polynomial Invariants for System Verification Enric Rodríguez-Carbonell Technical University of Catalonia Talk at EPFL Nov. 2006 p.1/60 Plan of the Talk Introduction Need for program

More information

Code Generation for a Simple First-Order Prover

Code Generation for a Simple First-Order Prover Code Generation for a Simple First-Order Prover Jørgen Villadsen, Anders Schlichtkrull, and Andreas Halkjær From DTU Compute, Technical University of Denmark, 2800 Kongens Lyngby, Denmark Abstract. We

More information

Revising UNITY Programs: Possibilities and Limitations 1

Revising UNITY Programs: Possibilities and Limitations 1 Revising UNITY Programs: Possibilities and Limitations 1 Ali Ebnenasir, Sandeep S. Kulkarni, and Borzoo Bonakdarpour Software Engineering and Network Systems Laboratory Department of Computer Science and

More information

Formal Reasoning about Systems Biology using Theorem Proving

Formal Reasoning about Systems Biology using Theorem Proving Formal Reasoning about Systems Biology using Theorem Proving Adnan Rashid*, Osman Hasan*, Umair Siddique** and Sofiène Tahar** *School of Electrical Engineering and Computer Science (SEECS), National University

More information

Propositional Logic: Part II - Syntax & Proofs 0-0

Propositional Logic: Part II - Syntax & Proofs 0-0 Propositional Logic: Part II - Syntax & Proofs 0-0 Outline Syntax of Propositional Formulas Motivating Proofs Syntactic Entailment and Proofs Proof Rules for Natural Deduction Axioms, theories and theorems

More information

CSE 505, Fall 2005, Midterm Examination 8 November Please do not turn the page until everyone is ready.

CSE 505, Fall 2005, Midterm Examination 8 November Please do not turn the page until everyone is ready. CSE 505, Fall 2005, Midterm Examination 8 November 2005 Please do not turn the page until everyone is ready. Rules: The exam is closed-book, closed-note, except for one side of one 8.5x11in piece of paper.

More information

N-Synchronous Kahn Networks A Relaxed Model of Synchrony for Real-Time Systems

N-Synchronous Kahn Networks A Relaxed Model of Synchrony for Real-Time Systems N-Synchronous Kahn Networks A Relaxed Model of Synchrony for Real-Time Systems Albert Cohen 1, Marc Duranton 2, Christine Eisenbeis 1, Claire Pagetti 1,4, Florence Plateau 3 and Marc Pouzet 3 POPL, Charleston

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

Logical Agents. Chapter 7

Logical Agents. Chapter 7 Logical Agents Chapter 7 Outline Knowledge-based agents Wumpus world Logic in general - models and entailment Propositional (Boolean) logic Equivalence, validity, satisfiability Inference rules and theorem

More information

Introduction to Axiomatic Semantics

Introduction to Axiomatic Semantics #1 Introduction to Axiomatic Semantics #2 How s The Homework Going? Remember that you can t just define a meaning function in terms of itself you must use some fixed point machinery. #3 Observations A

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

Propositional Logic: Logical Agents (Part I)

Propositional Logic: Logical Agents (Part I) Propositional Logic: Logical Agents (Part I) This lecture topic: Propositional Logic (two lectures) Chapter 7.1-7.4 (this lecture, Part I) Chapter 7.5 (next lecture, Part II) Next lecture topic: First-order

More information

12th Meeting on Mathematics of Language. 6, September, 2011

12th Meeting on Mathematics of Language. 6, September, 2011 A Co-inductive Collaborate Research Team for Verification, National Institute of Advanced Industrial Science and Technology, Japan 12th Meeting on Mathematics of Language 6, September, 2011 1 / 17 Outline

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