Applying Predicate Logic to Monitoring Network Traffic
|
|
- Quentin Nelson
- 6 years ago
- Views:
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 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 informationSimply 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 informationHoare 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 informationReasoning About Imperative Programs. COS 441 Slides 10b
Reasoning About Imperative Programs COS 441 Slides 10b Last time Hoare Logic: { P } C { Q } Agenda If P is true in the initial state s. And C in state s evaluates to s. Then Q must be true in s. Program
More informationFirst 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 informationTowards 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 informationDynamic Semantics. Dynamic Semantics. Operational Semantics Axiomatic Semantics Denotational Semantic. Operational Semantics
Dynamic Semantics Operational Semantics Denotational Semantic Dynamic Semantics Operational Semantics Operational Semantics Describe meaning by executing program on machine Machine can be actual or simulated
More informationFormal 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 informationFirst 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 informationLimits 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 informationSMT 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 informationStatic Program Analysis using Abstract Interpretation
Static Program Analysis using Abstract Interpretation Introduction Static Program Analysis Static program analysis consists of automatically discovering properties of a program that hold for all possible
More informationAxiomatic Semantics. Lecture 9 CS 565 2/12/08
Axiomatic Semantics Lecture 9 CS 565 2/12/08 Axiomatic Semantics Operational semantics describes the meaning of programs in terms of the execution steps taken by an abstract machine Denotational semantics
More informationLecture Notes: Axiomatic Semantics and Hoare-style Verification
Lecture Notes: Axiomatic Semantics and Hoare-style Verification 17-355/17-665/17-819O: Program Analysis (Spring 2018) Claire Le Goues and Jonathan Aldrich clegoues@cs.cmu.edu, aldrich@cs.cmu.edu It has
More informationAxiomatic 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 informationDeductive Verification
Deductive Verification Mooly Sagiv Slides from Zvonimir Rakamaric First-Order Logic A formal notation for mathematics, with expressions involving Propositional symbols Predicates Functions and constant
More informationHoare 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 informationVerified Characteristic Formulae for CakeML. Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 18, 2017
Verified Characteristic Formulae for CakeML Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 18, 2017 CakeML Has: references, modules, datatypes, exceptions, a FFI,... Doesn t have:
More informationComputer 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 informationAbstractions 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 informationHoare Logic: Reasoning About Imperative Programs
Hoare Logic: Reasoning About Imperative Programs COMP1600 / COMP6260 Dirk Pattinson Australian National University Semester 2, 2018 Programming Paradigms Functional. (Haskell, SML, OCaml,... ) main paradigm:
More informationExperiments 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 informationThe State Explosion Problem
The State Explosion Problem Martin Kot August 16, 2003 1 Introduction One from main approaches to checking correctness of a concurrent system are state space methods. They are suitable for automatic analysis
More informationKnowledge 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 informationReasoning 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 informationCSC 7101: Programming Language Structures 1. Axiomatic Semantics. Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11.
Axiomatic Semantics Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11 1 Overview We ll develop proof rules, such as: { I b } S { I } { I } while b do S end { I b } That allow us to verify
More informationFirst 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 informationModeling Concurrent Systems
Modeling Concurrent Systems Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.uni-linz.ac.at
More informationA 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 informationProofs of Correctness: Introduction to Axiomatic Verification
Proofs of Correctness: Introduction to Axiomatic Verification Introduction Weak correctness predicate Assignment statements Sequencing Selection statements Iteration 1 Introduction What is Axiomatic Verification?
More informationLearning Goals of CS245 Logic and Computation
Learning Goals of CS245 Logic and Computation Alice Gao April 27, 2018 Contents 1 Propositional Logic 2 2 Predicate Logic 4 3 Program Verification 6 4 Undecidability 7 1 1 Propositional Logic Introduction
More informationINVARIANT 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 informationThe Assignment Axiom (Hoare)
The Assignment Axiom (Hoare) Syntax: V := E Semantics: value of V in final state is value of E in initial state Example: X:=X+ (adds one to the value of the variable X) The Assignment Axiom {Q[E/V ]} V
More informationAxiomatic Semantics. Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11 CSE
Axiomatic Semantics Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11 CSE 6341 1 Outline Introduction What are axiomatic semantics? First-order logic & assertions about states Results (triples)
More informationAxiomatic 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 informationAutomated 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 informationFormal 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 informationcse541 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 informationScalable 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 informationModel Checking: An Introduction
Model Checking: An Introduction Meeting 3, CSCI 5535, Spring 2013 Announcements Homework 0 ( Preliminaries ) out, due Friday Saturday This Week Dive into research motivating CSCI 5535 Next Week Begin foundations
More informationChapter 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 informationAxiomatic Semantics. Operational semantics. Good for. Not good for automatic reasoning about programs
Review Operational semantics relatively l simple many flavors (small vs. big) not compositional (rule for while) Good for describing language implementation reasoning about properties of the language eg.
More information3-Valued Abstraction-Refinement
3-Valued Abstraction-Refinement Sharon Shoham Academic College of Tel-Aviv Yaffo 1 Model Checking An efficient procedure that receives: A finite-state model describing a system A temporal logic formula
More informationTuring 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 informationInformation 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 informationHoare Logic and Model Checking
Hoare Logic and Model Checking Kasper Svendsen University of Cambridge CST Part II 2016/17 Acknowledgement: slides heavily based on previous versions by Mike Gordon and Alan Mycroft Introduction In the
More informationTowards Algorithmic Synthesis of Synchronization for Shared-Memory Concurrent Programs
Towards Algorithmic Synthesis of Synchronization for Shared-Memory Concurrent Programs Roopsha Samanta The University of Texas at Austin July 6, 2012 Roopsha Samanta Algorithmic Synthesis of Synchronization
More informationAdvanced Topics in LP and FP
Lecture 1: Prolog and Summary of this lecture 1 Introduction to Prolog 2 3 Truth value evaluation 4 Prolog Logic programming language Introduction to Prolog Introduced in the 1970s Program = collection
More informationSoftwaretechnik. 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 informationSoftwaretechnik. 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 informationSoftware Engineering using Formal Methods
Software Engineering using Formal Methods First-Order Logic Wolfgang Ahrendt 26th September 2013 SEFM: First-Order Logic 130926 1 / 53 Install the KeY-Tool... KeY used in Friday s exercise Requires: Java
More informationSoundness 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 informationNotes. 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 informationClassical 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 informationFirst-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 informationAlgorithmic verification
Algorithmic verification Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2018 Outline Overview Model checking Symbolic execution Outline Overview Model checking Symbolic execution Program verification
More informationTowards 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 informationFailure 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 informationLogical 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 informationA 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 informationPropositional Logic: Models and Proofs
Propositional Logic: Models and Proofs C. R. Ramakrishnan CSE 505 1 Syntax 2 Model Theory 3 Proof Theory and Resolution Compiled at 11:51 on 2016/11/02 Computing with Logic Propositional Logic CSE 505
More informationFundamentals of Software Engineering
Fundamentals of Software Engineering First-Order Logic Ina Schaefer Institute for Software Systems Engineering TU Braunschweig, Germany Slides by Wolfgang Ahrendt, Richard Bubel, Reiner Hähnle (Chalmers
More informationTuring 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 informationFundamentals of Software Engineering
Fundamentals of Software Engineering First-Order Logic Ina Schaefer Institute for Software Systems Engineering TU Braunschweig, Germany Slides by Wolfgang Ahrendt, Richard Bubel, Reiner Hähnle (Chalmers
More informationCOMPUTER 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 informationPropositional 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 information1 FUNDAMENTALS OF LOGIC NO.10 HERBRAND THEOREM Tatsuya Hagino hagino@sfc.keio.ac.jp lecture URL https://vu5.sfc.keio.ac.jp/slide/ 2 So Far Propositional Logic Logical connectives (,,, ) Truth table Tautology
More informationFormal 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 informationProgram 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 informationPropositional 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 informationEqualities 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 informationCSE507. 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 informationSoftware Engineering
Software Engineering Lecture 07: Design by Contract Peter Thiemann University of Freiburg, Germany 02.06.2014 Table of Contents Design by Contract Contracts for Procedural Programs Contracts for Object-Oriented
More informationHoare 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 informationConstraint Solving for Program Verification: Theory and Practice by Example
Constraint Solving for Program Verification: Theory and Practice by Example Andrey Rybalchenko Technische Universität München Abstract. Program verification relies on the construction of auxiliary assertions
More informationINTRODUCTION TO PREDICATE LOGIC HUTH AND RYAN 2.1, 2.2, 2.4
INTRODUCTION TO PREDICATE LOGIC HUTH AND RYAN 2.1, 2.2, 2.4 Neil D. Jones DIKU 2005 Some slides today new, some based on logic 2004 (Nils Andersen), some based on kernebegreber (NJ 2005) PREDICATE LOGIC:
More informationDesign of Embedded Systems: Models, Validation and Synthesis (EE 249) Lecture 9
Design of Embedded Systems: Models, Validation and Synthesis (EE 249) Lecture 9 Prof. Dr. Reinhard von Hanxleden Christian-Albrechts Universität Kiel Department of Computer Science Real-Time Systems and
More informationVerifying 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 informationInteger 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 informationLOGIC 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 informationif 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 informationCourse Runtime Verification
Course Martin Leucker (ISP) Volker Stolz (Høgskolen i Bergen, NO) INF5140 / V17 Chapters of the Course Chapter 1 Recall in More Depth Chapter 2 Specification Languages on Words Chapter 3 LTL on Finite
More informationDenotational 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 informationIntroduction 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 informationThe 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 informationPrinciples of Program Analysis: A Sampler of Approaches
Principles of Program Analysis: A Sampler of Approaches Transparencies based on Chapter 1 of the book: Flemming Nielson, Hanne Riis Nielson and Chris Hankin: Principles of Program Analysis Springer Verlag
More informationAutomatic 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 informationCode 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 informationRevising 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 informationFormal 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 informationPropositional 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 informationCSE 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 informationN-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 informationProgram Analysis Part I : Sequential Programs
Program Analysis Part I : Sequential Programs IN5170/IN9170 Models of concurrency Program Analysis, lecture 5 Fall 2018 26. 9. 2018 2 / 44 Program correctness Is my program correct? Central question for
More informationLogical 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 informationIntroduction 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 informationCS156: The Calculus of Computation
CS156: The Calculus of Computation Zohar Manna Winter 2010 It is reasonable to hope that the relationship between computation and mathematical logic will be as fruitful in the next century as that between
More informationPropositional 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 information12th 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» 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