Hoare Logic for Realistically Modelled Machine Code

Size: px
Start display at page:

Download "Hoare Logic for Realistically Modelled Machine Code"

Transcription

1 Hoare Logic for Realistically Modelled Machine Code Magnus O. Myreen, Michael J. C. Gordon TACAS, March 2007

2 This talk Contribution: A mechanised Hoare logic for machine code with emphasis on resource usage. Outline: Motivation and Approach Footprints Example The Logic State Representation Memory Accesses Positions and Procedures Semantics Summary

3 Motivation Program verification: bug finding: high assurance: approximate models are OK realistic models required

4 Motivation Program verification: bug finding: high assurance: approximate models are OK realistic models required Why not use standard program logics on realistic models? infinite state space (stacks) separation of code and data (memory accesses) nontrivial to mechanise (detailed models) hardware restrictions (special purpose resources)

5 Motivation Program verification: bug finding: high assurance: approximate models are OK realistic models required Why not use standard program logics on realistic models? infinite state space (stacks) separation of code and data (memory accesses) nontrivial to mechanise (detailed models) hardware restrictions (special purpose resources) For instance, the ARM instruction MUL c,a,b is unpredictable, if registers a and c are the same. ARM allows y := z y but not y := y z.

6 Example An ARM program for calculating the factorial of a positive number: MOV b, #1 ; b := 1 L: MUL b, a, b ; b := a b SUBS a, a, #1 ; a := a - 1 BNE L ; jump to L if a 0 A classical Hoare-style specification: {(a = x) (x 0)} FACTORIAL {(a = 0) (b = x!)} Side condition: The registers associated with a and b are distinct.

7 Example An ARM program for calculating the factorial of a positive number: MOV b, #1 ; b := 1 L: MUL b, a, b ; b := a b SUBS a, a, #1 ; a := a - 1 BNE L ; jump to L if a 0 A classical Hoare-style specification: {(a = x) (x 0)} FACTORIAL {(a = 0) (b = x!)} Side condition: The registers associated with a and b are distinct. What is left unchanged?

8 Example The frame problem can be solved as follows: assign a footprint to assertions (separation logic) guarantee that nothing is changed outside of the footprint require that every state element leaves a footprint (not just memory assertions)

9 Example The frame problem can be solved as follows: assign a footprint to assertions (separation logic) guarantee that nothing is changed outside of the footprint require that every state element leaves a footprint (not just memory assertions) The specification of the factorial program: {R a x R b S x 0 } FACTORIAL +4 {R a 0 R b x! S } +4 is a separating conjunction similar to that of Separation Logic.

10 Example Reasoning about Hoare triples: {R a x R b y} MUL b,a,b +1 {R a x R b (x y)} +1 {R a x S } SUBS a,a,#1 +1 {R a (x 1) S (, x 1=0,, ) } +1 {S (n, z, c, v) } BNE #-4 +1 {S z } +1 2 {S z } 2

11 Example Reasoning about Hoare triples: {R a x R b y P} MUL b,a,b +1 {R a x R b (x y) P} +1 {R a x S } SUBS a,a,#1 +1 {R a (x 1) S (, x 1=0,, ) } +1 {S (n, z, c, v) } BNE #-4 +1 {S z } +1 2 {S z } 2

12 Example Reasoning about Hoare triples: {R a x R b y S } MUL b,a,b +1 {R a x R b (x y) S } +1 {R a x S } SUBS a,a,#1 +1 {R a (x 1) S (, x 1=0,, ) } +1 {S (n, z, c, v) } BNE #-4 +1 {S z } +1 2 {S z } 2

13 Example Reasoning about Hoare triples: {R a x R b y S } MUL b,a,b +1 {R a x R b (x y) S } +1 {R a x R b (x y) S } SUBS a,a,#1 +1 {R a (x 1) R b (x y) S (, x 1=0,, ) } +1 {S (n, z, c, v) } BNE #-4 +1 {S z } +1 2 {S z } 2

14 Example Reasoning about Hoare triples: {R a x R b y S } MUL b,a,b +1 {R a x R b (x y) S } +1 {R a x R b (x y) S } SUBS a,a,#1 +1 {R a (x 1) R b (x y) S (, x 1=0,, ) } +1 {S (, x 1=0,, ) } BNE #-4 +1 {S x 1=0 } +1 2 {S x 1 0 } 2

15 Example Reasoning about Hoare triples: {R a x R b y S } MUL b,a,b +1 {R a x R b (x y) S } +1 {R a x R b (x y) S } SUBS a,a,#1 +1 {R a (x 1) R b (x y) S (, x 1=0,, ) } +1 {R a (x 1) R b (x y) S (, x 1=0,, ) } BNE #-4 +1 {R a (x 1) R b (x y) S x 1=0 } +1 2 {R a (x 1) R b (x y) S x 1 0 } 2

16 Example Reasoning about Hoare triples: {R a x R b y S } MUL b,a,b +1 {R a x R b (x y) S } +1 {R a x R b (x y) S } SUBS a,a,#1 BNE #-4 +2 {R a (x 1) R b (x y) S x 1=0 } +2 1 {R a (x 1) R b (x y) S x 1 0 } 1

17 Example Reasoning about Hoare triples: {R a x R b y S } MUL b,a,b SUBS a,a,#1 BNE #-4 +3 {R a (x 1) R b (x y) S x 1=0 } {R a (x 1) R b (x y) S x 1 0 } +0

18 Example Reasoning about Hoare triples: {R a x R b y S } MUL b,a,b SUBS a,a,#1 BNE #-4 +3 {R a (x 1) R b (x y) S x 1=0 } {R a (x 1) R b (x y) S x 1 0 } +0 composition can be automated for straight line code

19 Example Reasoning about Hoare triples: {R a x R b y S } MUL b,a,b SUBS a,a,#1 BNE #-4 +3 {R a (x 1) R b (x y) S x 1=0 } {R a (x 1) R b (x y) S x 1 0 } +0 composition can be automated for straight line code but we want to prove more than straight-line code!

20 Example Reasoning about Hoare triples: {R a x R b y S } MUL b,a,b SUBS a,a,#1 BNE #-4 +3 {R a (x 1) R b (x y) S x 1=0 } {R a (x 1) R b (x y) S x 1 0 } +0 Define a partial factorial: x n = (x+1) (x+2)... (n 1) n, when x < n x x = 1, when x 0.

21 Example Reasoning about Hoare triples: {R a x R b (x n) S } MUL b,a,b SUBS a,a,#1 BNE #-4 +3 {R a (x 1) R b (x (x n)) S x 1=0 } {R a (x 1) R b (x (x n)) S x 1 0 } +0 Define a partial factorial: x n = (x+1) (x+2)... (n 1) n, when x < n x x = 1, when x 0.

22 Example Reasoning about Hoare triples: {R a x R b (x n) S x n } MUL b,a,b SUBS a,a,#1 BNE #-4 +3 {R a (x 1) R b (x (x n)) S x n x 1=0 } {R a (x 1) R b (x (x n)) S x n x 1 0 } +0 Define a partial factorial: x n = (x+1) (x+2)... (n 1) n, when x < n x x = 1, when x 0.

23 Example Reasoning about Hoare triples: {R a x R b (x n) S x n } MUL b,a,b SUBS a,a,#1 BNE #-4 +3 {R a 0 R b n! S } {R a (x 1) R b (x (x n)) S x n x 1 0 } +0 Define a partial factorial: x n = (x+1) (x+2)... (n 1) n, when x < n x x = 1, when x 0.

24 Example Reasoning about Hoare triples: {R a x R b (x n) S x n } MUL b,a,b SUBS a,a,#1 BNE #-4 +3 {R a 0 R b n! S } {R a (x 1) R b ((x 1) n) S x 1 n x 1 0 } +0 Define a partial factorial: x n = (x+1) (x+2)... (n 1) n, when x < n x x = 1, when x 0.

25 Example Reasoning about Hoare triples: {R a x R b (x n) S x n x 0 } MUL b,a,b SUBS a,a,#1 BNE #-4 +3 {R a 0 R b n! S } {R a (x 1) R b ((x 1) n) S x 1 n x 1 0 } +0 Define a partial factorial: x n = (x+1) (x+2)... (n 1) n, when x < n x x = 1, when x 0.

26 Example Reasoning about Hoare triples: {R a x R b (x n) S x n x 0 } MUL b,a,b SUBS a,a,#1 BNE #-4 +3 {R a 0 R b n! S } +3 Define a partial factorial: x n = (x+1) (x+2)... (n 1) n, when x < n x x = 1, when x 0.

27 Example Reasoning about Hoare triples: {R a x R b (x x) S x x x 0 } MUL b,a,b SUBS a,a,#1 BNE #-4 +3 {R a 0 R b x! S } +3 Define a partial factorial: x n = (x+1) (x+2)... (n 1) n, when x < n x x = 1, when x 0.

28 Example Reasoning about Hoare triples: {R a x R b 1 S x 0 } MUL b,a,b SUBS a,a,#1 BNE #-4 +3 {R a 0 R b x! S } +3 Define a partial factorial: x n = (x+1) (x+2)... (n 1) n, when x < n x x = 1, when x 0.

29 Example Reasoning about Hoare triples: {R a x R b S x 0 } MOV b,#1 MUL b,a,b SUBS a,a,#1 BNE #-4 +4 {R a 0 R b x! S } +4 Define a partial factorial: x n = (x+1) (x+2)... (n 1) n, when x < n x x = 1, when x 0.

30 This talk Contribution: A mechanised Hoare logic for machine code with emphasis on resource usage. Outline: Motivation and Approach Footprints Example The Logic State Representation Memory Accesses Positions and Procedures Semantics Summary

31 State Representation A state is a set enumerating state elements. A concrete state: { Reg 0 820, Reg 1 540,, Reg , Mem 0 34, Mem 1 82,, Mem (2 32 1) 40, Status F }

32 State Representation A state is a set enumerating state elements. A concrete state: { Reg 0 820, Reg 1 540,, Reg , Mem 0 34, Mem 1 82,, Mem (2 32 1) 40, Status F } Assertions on parts of states: R r x = λs. (s = {Reg r x}) M a x = λs. (s = {Mem a x}) S b = λs. (s = {Status b})

33 State Representation A state is a set enumerating state elements. A concrete state: { Reg 0 820, Reg 1 540,, Reg , Mem 0 34, Mem 1 82,, Mem (2 32 1) 40, Status F } Assertions on parts of states: R r x = λs. (s = {Reg r x}) M a x = λs. (s = {Mem a x}) S b = λs. (s = {Status b}) split s (u, v) = (u v = s) (u v = ) P Q = λs. u v. split s (u, v) P u Q v

34 State Representation A state is a set enumerating state elements. A concrete state: { Reg 0 820, Reg 1 540,, Reg , Mem 0 34, Mem 1 82,, Mem (2 32 1) 40, Status F } Assertions on parts of states: R r x = λs. (s = {Reg r x}) M a x = λs. (s = {Mem a x}) S b = λs. (s = {Status b}) split s (u, v) = (u v = s) (u v = ) P Q = λs. u v. split s (u, v) P u Q v Particularly: (R a x R b y P) s = (a b) if s is a valid state

35 Memory Access The set-based state representation handles all resources uniformly. Specifications for move and store: {R a x R b } MOV b,a +1 {R a x R b x} +1 {R a x R b y M y } STR a,[b] +1 {R a x R b y M y x} +1 Decrement-and-store, i.e. stack push: {R a x R b y M (y 1) } STR a,[b,#-4]! +1 {R a x R b (y 1) M (y 1) x} +1

36 Memory Access The set-based state representation handles all resources uniformly. Specifications for move and store: {R a x R b } MOV b,a +1 {R a x R b x} +1 {R a x R b y M y } STR a,[b] +1 {R a x R b y M y x} +1 Decrement-and-store, i.e. stack push: {R a x R b y M (y 1) } STR a,[b,#-4]! +1 {R a x R b (y 1) M (y 1) x} +1 Let stack(y, [x 0, x 1,, x m ], n) = R 13 y M (y+m) x m M (y+0) x 0 M (y 1) M (y n)

37 Memory Access The set-based state representation handles all resources uniformly. Specifications for move and store: {R a x R b } MOV b,a +1 {R a x R b x} +1 {R a x R b y M y } STR a,[b] +1 {R a x R b y M y x} +1 Decrement-and-store, i.e. stack push: {R a x R b y M (y 1) P} STR a,[b,#-4]! +1 {R a x R b (y 1) M (y 1) x P} +1 Let stack(y, [x 0, x 1,, x m ], n) = R 13 y M (y+m) x m M (y+0) x 0 M (y 1) M (y n)

38 Memory Access The set-based state representation handles all resources uniformly. Specifications for move and store: {R a x R b } MOV b,a +1 {R a x R b x} +1 {R a x R b y M y } STR a,[b] +1 {R a x R b y M y x} +1 Decrement-and-store, i.e. stack push: {R a x stack(y, xs, n+1)} STR a,[13,#-4]! +1 {R a x stack(y 1, cons x xs, n)} +1 Let stack(y, [x 0, x 1,, x m ], n) = R 13 y M (y+m) x m M (y+0) x 0 M (y 1) M (y n)

39 Positions The specifications shown so far have been of the form: {P} code {Q} +k

40 Positions The specifications shown so far have been of the form: {P} code {Q} h

41 Positions The specifications shown so far have been of the form: {P} f code g {Q} h

42 Positions The specifications shown so far have been of the form: {P} f code g {Q} h The meaning is best described using a different syntax: p. {f (p) : P} g(p) : code {h(p) : Q}

43 Positions The specifications shown so far have been of the form: {P} f code g {Q} h The meaning is best described using a different syntax: p. {f (p) : P} g(p) : code {h(p) : Q} For position independent code use λx.x and offsets p. {p : P} p : code {p+4 : Q}

44 Positions The specifications shown so far have been of the form: {P} f code g {Q} h The meaning is best described using a different syntax: p. {f (p) : P} g(p) : code {h(p) : Q} For position independent code use λx.x and offsets p. {p : P} p : code {p+4 : Q} For position dependent code use e.g. λx.0 and λx.4 {0 : P} 0 : code {4 : Q}

45 Procedures Procedures have this form: y. {P R 14 y} code {Q R 14 } λx.y which can be understood as: y p. {p : P R 14 y} p : code {y : Q R 14 }

46 Procedures Procedures have this form: y. {P R 14 y} code {Q R 14 } λx.y which can be understood as: y p. {p : P R 14 y} p : code {y : Q R 14 } The framework supports procedures by: a rule that calculates the effect of a call (derived from the general rule for composition) an induction rule for proving recursive procedures (complete induction over the natural numbers)

47 Procedures A verified specification for a procedure, which calculates the sum of the nodes in a binary tree: {R a x R s z S tree(x, t) stack(sp, [ ], 2 depth(t)) R 14 y} BINARY SUM {R a R s (z + sum(t)) S tree(x, t) stack(sp, [ ], 2 depth(t)) R 14 } λx.y

48 Procedures The code for BINARY SUM: sum: CMP a,#0 ; test: a = 0 MOVEQ r15,r14 ; return, if a = 0 STR a,[r13,#-4]! ; push a STR r14,[r13,#-4]! ; push link-register LDR r14,[a] ; temp := node value ADD s,s,r14 ; s := s + temp LDR a,[a,#+4] ; a := address of left BL sum ; s := s + sum of a LDR a,[r13,#+4] ; a := original a LDR a,[a,#+8] ; a := address of right BL sum ; s := s + sum of a LDR r15,[r13],#8 ; pop two and return

49 Semantics Define the execution from P to Q as: s Σ. F. (P F ) s = k. (Q F ) (run(k, s)) The meaning of {P} c 0 ;... ; c n {Q} h is given by: p. (P M p c 0 M (p + n) c n R 15 p) (Q M p c 0 M (p + n) c n R 15 h(p)) The formalised theory generalises {P} code {Q} h to allow multiple entry points, multiple exit points and multiple code segments: {P 1 } f1 {P n } fn code g 1 1 codem gm {Q 1 } h1 {Q k } h k

50 Summary Features: concise function/resource-usage specifications position (in)dependent code (recursive procedures) mechanised in HOL4 (supports some automation) is used in verifying ARM machine-code (on top of a detailed model of the ARM ISA)

51 Summary Features: concise function/resource-usage specifications position (in)dependent code (recursive procedures) mechanised in HOL4 (supports some automation) is used in verifying ARM machine-code (on top of a detailed model of the ARM ISA) THE END Questions? Acknowledgements: I would like to thank Mike Gordon, Anthony Fox, Joe Hurd, Konrad Slind, Thomas Teurk, Matthew Parkinson, Josh Berdine, Nick Benton and Richard Bornat for comments and discussions.

Proof-producing decompilation and compilation

Proof-producing decompilation and compilation Proof-producing decompilation and compilation Magnus Myreen May 2008 Introduction This talk concerns verification of functional correctness of machine code for commercial processors (ARM, PowerPC, x86...

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

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

List reversal: back into the frying pan

List reversal: back into the frying pan List reversal: back into the frying pan Richard Bornat March 20, 2006 Abstract More than thirty years ago Rod Burstall showed how to do a proof of a neat little program, shown in a modern notation in figure

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

Functional Big-step Semantics

Functional Big-step Semantics Functional Big-step Semantics FM talk, 11 Mar 2015 Magnus Myréen Books Big-step semantics are defined as inductively defined relation. Functions are better! me Context: CakeML verified compiler Old compiler:

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

Verification of Recursive Programs. Andreas Podelski February 8, 2012

Verification of Recursive Programs. Andreas Podelski February 8, 2012 Verification of Recursive Programs Andreas Podelski February 8, 2012 1 m(x) = x 10 if x > 100 m(m(x + 11)) if x 100 2 procedure m(x) returns (res) `0: if x>100 `1: res:=x-10 else `2: x m := x+11 `3: res

More information

Executing the formal semantics of the Accellera Property Specification Language

Executing the formal semantics of the Accellera Property Specification Language Executing the PSL semantics 1/17 Executing the formal semantics of the Accellera Property Specification Language joint work with Joe Hurd & Konrad Slind Standard practice: generate tools from formal syntax

More information

Mechanizing Elliptic Curve Associativity

Mechanizing Elliptic Curve Associativity Mechanizing Elliptic Curve Associativity Why a Formalized Mathematics Challenge is Useful for Verification of Crypto ARM Machine Code Joe Hurd Computer Laboratory University of Cambridge Galois Connections

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

The L Machines are very high-level, in two senses:

The L Machines are very high-level, in two senses: What is a Computer? State of the machine. CMPSCI 630: Programming Languages An Abstract Machine for Control Spring 2009 (with thanks to Robert Harper) Internal registers, memory, etc. Initial and final

More information

ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University

ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University Prof. Mi Lu TA: Ehsan Rohani Laboratory Exercise #4 MIPS Assembly and Simulation

More information

Probabilistic Guarded Commands Mechanized in HOL

Probabilistic Guarded Commands Mechanized in HOL Probabilistic Guarded Commands Mechanized in HOL Joe Hurd joe.hurd@comlab.ox.ac.uk Oxford University Joint work with Annabelle McIver (Macquarie University) and Carroll Morgan (University of New South

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

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

Automata-Theoretic Model Checking of Reactive Systems

Automata-Theoretic Model Checking of Reactive Systems Automata-Theoretic Model Checking of Reactive Systems Radu Iosif Verimag/CNRS (Grenoble, France) Thanks to Tom Henzinger (IST, Austria), Barbara Jobstmann (CNRS, Grenoble) and Doron Peled (Bar-Ilan University,

More 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

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

König s Lemma and Kleene Tree

König s Lemma and Kleene Tree König s Lemma and Kleene Tree Andrej Bauer May 3, 2006 Abstract I present a basic result about Cantor space in the context of computability theory: the computable Cantor space is computably non-compact.

More information

Logic and Computer Design Fundamentals. Chapter 8 Sequencing and Control

Logic and Computer Design Fundamentals. Chapter 8 Sequencing and Control Logic and Computer Design Fundamentals Chapter 8 Sequencing and Control Datapath and Control Datapath - performs data transfer and processing operations Control Unit - Determines enabling and sequencing

More information

Loop Invariants and Binary Search. Chapter 4.4, 5.1

Loop Invariants and Binary Search. Chapter 4.4, 5.1 Loop Invariants and Binary Search Chapter 4.4, 5.1 Outline Iterative Algorithms, Assertions and Proofs of Correctness Binary Search: A Case Study Outline Iterative Algorithms, Assertions and Proofs of

More information

COMPUTER SCIENCE TRIPOS

COMPUTER SCIENCE TRIPOS CST.2016.6.1 COMPUTER SCIENCE TRIPOS Part IB Thursday 2 June 2016 1.30 to 4.30 COMPUTER SCIENCE Paper 6 Answer five questions. Submit the answers in five separate bundles, each with its own cover sheet.

More information

Spring 2015 Program Analysis and Verification. Lecture 4: Axiomatic Semantics I. Roman Manevich Ben-Gurion University

Spring 2015 Program Analysis and Verification. Lecture 4: Axiomatic Semantics I. Roman Manevich Ben-Gurion University Spring 2015 Program Analysis and Verification Lecture 4: Axiomatic Semantics I Roman Manevich Ben-Gurion University Agenda Basic concepts of correctness Axiomatic semantics (pages 175-183) Hoare Logic

More information

COSE212: Programming Languages. Lecture 1 Inductive Definitions (1)

COSE212: Programming Languages. Lecture 1 Inductive Definitions (1) COSE212: Programming Languages Lecture 1 Inductive Definitions (1) Hakjoo Oh 2017 Fall Hakjoo Oh COSE212 2017 Fall, Lecture 1 September 4, 2017 1 / 9 Inductive Definitions Inductive definition (induction)

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

Ribbon Proofs for Separation Logic

Ribbon Proofs for Separation Logic Ribbon Proofs for Separation Logic John Wickerson University of Cambridge Dublin Concurrency Workshop, 15 April 2011 Talk outline 1. The problem 2. Towards a solution 3. A big proof 4. Fun with quantifiers

More information

Material Covered on the Final

Material Covered on the Final Material Covered on the Final On the final exam, you are responsible for: Anything covered in class, except for stories about my good friend Ken Kennedy All lecture material after the midterm ( below the

More information

Operational Semantics

Operational Semantics Operational Semantics Semantics and applications to verification Xavier Rival École Normale Supérieure Xavier Rival Operational Semantics 1 / 50 Program of this first lecture Operational semantics Mathematical

More information

Exploring the Potential of Instruction-Level Parallelism of Exposed Datapath Architectures with Buffered Processing Units

Exploring the Potential of Instruction-Level Parallelism of Exposed Datapath Architectures with Buffered Processing Units Exploring the Potential of Instruction-Level Parallelism of Exposed Datapath Architectures with Buffered Processing Units Anoop Bhagyanath and Klaus Schneider Embedded Systems Chair University of Kaiserslautern

More information

COSE212: Programming Languages. Lecture 1 Inductive Definitions (1)

COSE212: Programming Languages. Lecture 1 Inductive Definitions (1) COSE212: Programming Languages Lecture 1 Inductive Definitions (1) Hakjoo Oh 2018 Fall Hakjoo Oh COSE212 2018 Fall, Lecture 1 September 5, 2018 1 / 10 Inductive Definitions Inductive definition (induction)

More information

Models of Computation. by Costas Busch, LSU

Models of Computation. by Costas Busch, LSU Models of Computation by Costas Busch, LSU 1 Computation CPU memory 2 temporary memory input memory CPU output memory Program memory 3 Example: f ( x) x 3 temporary memory input memory Program memory compute

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

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

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

THE STRONG INVARIANCE THESIS

THE STRONG INVARIANCE THESIS THE STRONG INVARIANCE THESIS FOR A λ-calculus LOLA WORKSHOP 2017 Yannick Forster 1 Fabian Kunze 1,2 Marc Roth 1,3 1 SAARLAND UNIVERSITY 2 MAX PLANCK INSTITUTE FOR INFORMATICS 3 CLUSTER OF EXCELLENCE (MMCI)

More information

An Entailment Checker for Separation Logic with Inductive Definitions

An Entailment Checker for Separation Logic with Inductive Definitions An Entailment Checker for Separation Loic with Inductive Definitions Radu Iosif, Cristina Serban Université de Grenoble Alpes, CNRS, VERIMAG July 18, 2018 Cristina Serban (VERIMAG) An Entailment Checker

More information

Worst-Case Execution Time Analysis. LS 12, TU Dortmund

Worst-Case Execution Time Analysis. LS 12, TU Dortmund Worst-Case Execution Time Analysis Prof. Dr. Jian-Jia Chen LS 12, TU Dortmund 02, 03 May 2016 Prof. Dr. Jian-Jia Chen (LS 12, TU Dortmund) 1 / 53 Most Essential Assumptions for Real-Time Systems Upper

More information

Outline. Complexity Theory. Example. Sketch of a log-space TM for palindromes. Log-space computations. Example VU , SS 2018

Outline. Complexity Theory. Example. Sketch of a log-space TM for palindromes. Log-space computations. Example VU , SS 2018 Complexity Theory Complexity Theory Outline Complexity Theory VU 181.142, SS 2018 3. Logarithmic Space Reinhard Pichler Institute of Logic and Computation DBAI Group TU Wien 3. Logarithmic Space 3.1 Computational

More information

The complexity of recursive constraint satisfaction problems.

The complexity of recursive constraint satisfaction problems. The complexity of recursive constraint satisfaction problems. Victor W. Marek Department of Computer Science University of Kentucky Lexington, KY 40506, USA marek@cs.uky.edu Jeffrey B. Remmel Department

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

On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work

On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work Lab 5 : Linking Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work 1 Objective The main objective of this lab is to experiment

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

Logical Preliminaries

Logical Preliminaries Logical Preliminaries Johannes C. Flieger Scheme UK March 2003 Abstract Survey of intuitionistic and classical propositional logic; introduction to the computational interpretation of intuitionistic logic

More information

Automata-based Verification - III

Automata-based Verification - III COMP30172: Advanced Algorithms Automata-based Verification - III Howard Barringer Room KB2.20: email: howard.barringer@manchester.ac.uk March 2009 Third Topic Infinite Word Automata Motivation Büchi Automata

More information

System Data Bus (8-bit) Data Buffer. Internal Data Bus (8-bit) 8-bit register (R) 3-bit address 16-bit register pair (P) 2-bit address

System Data Bus (8-bit) Data Buffer. Internal Data Bus (8-bit) 8-bit register (R) 3-bit address 16-bit register pair (P) 2-bit address Intel 8080 CPU block diagram 8 System Data Bus (8-bit) Data Buffer Registry Array B 8 C Internal Data Bus (8-bit) F D E H L ALU SP A PC Address Buffer 16 System Address Bus (16-bit) Internal register addressing:

More information

Chapter 5. Finite Automata

Chapter 5. Finite Automata Chapter 5 Finite Automata 5.1 Finite State Automata Capable of recognizing numerous symbol patterns, the class of regular languages Suitable for pattern-recognition type applications, such as the lexical

More information

Central Algorithmic Techniques. Iterative Algorithms

Central Algorithmic Techniques. Iterative Algorithms Central Algorithmic Techniques Iterative Algorithms Code Representation of an Algorithm class InsertionSortAlgorithm extends SortAlgorithm { void sort(int a[]) throws Exception { for (int i = 1; i < a.length;

More information

A Linear Encoding of Pushdown Control-Flow Analysis

A Linear Encoding of Pushdown Control-Flow Analysis A Linear Encoding of Pushdown Control-Flow Analysis Steven Lyde Thomas Gilray Matthew Might University of Utah {lyde,tgilray,might}@cs.utah.edu Abstract We describe a linear-algebraic encoding for pushdown

More information

COP4020 Programming Languages. Introduction to Axiomatic Semantics Prof. Robert van Engelen

COP4020 Programming Languages. Introduction to Axiomatic Semantics Prof. Robert van Engelen COP4020 Programming Languages Introduction to Axiomatic Semantics Prof. Robert van Engelen Assertions and Preconditions Assertions are used by programmers to verify run-time execution An assertion is a

More information

CS20a: Turing Machines (Oct 29, 2002)

CS20a: Turing Machines (Oct 29, 2002) CS20a: Turing Machines (Oct 29, 2002) So far: DFA = regular languages PDA = context-free languages Today: Computability 1 Handicapped machines DFA limitations Tape head moves only one direction 2-way DFA

More information

Resources Control Graphs

Resources Control Graphs Resources Control Graphs Jean-Yves Moyen LIPN CNRS GeoCal ICC p. Motivations Programs analysis deal about uniform properties: Do all the executions terminate? Are all the executions performed within a

More information

X-machines - a computational model framework.

X-machines - a computational model framework. Chapter 2. X-machines - a computational model framework. This chapter has three aims: To examine the main existing computational models and assess their computational power. To present the X-machines as

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

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

Automated Reasoning Lecture 2: Propositional Logic and Natural Deduction

Automated Reasoning Lecture 2: Propositional Logic and Natural Deduction Automated Reasoning Lecture 2: Propositional Logic and Natural Deduction Jacques Fleuriot jdf@inf.ed.ac.uk Logic Puzzles 1. Tomorrow will be sunny or rainy. Tomorrow will not be sunny. What will the weather

More information

Introduction. Pedro Cabalar. Department of Computer Science University of Corunna, SPAIN 2013/2014

Introduction. Pedro Cabalar. Department of Computer Science University of Corunna, SPAIN 2013/2014 Introduction Pedro Cabalar Department of Computer Science University of Corunna, SPAIN cabalar@udc.es 2013/2014 P. Cabalar ( Department Introduction of Computer Science University of Corunna, SPAIN2013/2014

More information

NICTA Advanced Course. Theorem Proving Principles, Techniques, Applications. Gerwin Klein Formal Methods

NICTA Advanced Course. Theorem Proving Principles, Techniques, Applications. Gerwin Klein Formal Methods NICTA Advanced Course Theorem Proving Principles, Techniques, Applications Gerwin Klein Formal Methods 1 ORGANISATORIALS When Mon 14:00 15:30 Wed 10:30 12:00 7 weeks ends Mon, 20.9.2004 Exceptions Mon

More information

Portland State University ECE 587/687. Branch Prediction

Portland State University ECE 587/687. Branch Prediction Portland State University ECE 587/687 Branch Prediction Copyright by Alaa Alameldeen and Haitham Akkary 2015 Branch Penalty Example: Comparing perfect branch prediction to 90%, 95%, 99% prediction accuracy,

More information

Computer Science. Questions for discussion Part II. Computer Science COMPUTER SCIENCE. Section 4.2.

Computer Science. Questions for discussion Part II. Computer Science COMPUTER SCIENCE. Section 4.2. COMPUTER SCIENCE S E D G E W I C K / W A Y N E PA R T I I : A L G O R I T H M S, T H E O R Y, A N D M A C H I N E S Computer Science Computer Science An Interdisciplinary Approach Section 4.2 ROBERT SEDGEWICK

More information

Agent-Based HOL Reasoning 1

Agent-Based HOL Reasoning 1 Agent-Based HOL Reasoning 1 Alexander Steen Max Wisniewski Christoph Benzmüller Freie Universität Berlin 5th International Congress on Mathematical Software (ICMS 2016) 1 This work has been supported by

More information

Roy L. Crole. Operational Semantics Abstract Machines and Correctness. University of Leicester, UK

Roy L. Crole. Operational Semantics Abstract Machines and Correctness. University of Leicester, UK Midlands Graduate School, University of Birmingham, April 2008 1 Operational Semantics Abstract Machines and Correctness Roy L. Crole University of Leicester, UK Midlands Graduate School, University of

More information

Automata-based Verification - III

Automata-based Verification - III CS3172: Advanced Algorithms Automata-based Verification - III Howard Barringer Room KB2.20/22: email: howard.barringer@manchester.ac.uk March 2005 Third Topic Infinite Word Automata Motivation Büchi Automata

More information

Simple Instruction-Pipelining (cont.) Pipelining Jumps

Simple Instruction-Pipelining (cont.) Pipelining Jumps 6.823, L9--1 Simple ruction-pipelining (cont.) + Interrupts Updated March 6, 2000 Laboratory for Computer Science M.I.T. http://www.csg.lcs.mit.edu/6.823 Src1 ( j / ~j ) Src2 ( / Ind) Pipelining Jumps

More information

CVO103: Programming Languages. Lecture 2 Inductive Definitions (2)

CVO103: Programming Languages. Lecture 2 Inductive Definitions (2) CVO103: Programming Languages Lecture 2 Inductive Definitions (2) Hakjoo Oh 2018 Spring Hakjoo Oh CVO103 2018 Spring, Lecture 2 March 13, 2018 1 / 20 Contents More examples of inductive definitions natural

More information

Syntax of propositional logic. Syntax tree of a formula. Semantics of propositional logic (I) Subformulas

Syntax of propositional logic. Syntax tree of a formula. Semantics of propositional logic (I) Subformulas Syntax of propositional logic Syntax tree of a formula An atomic formula has the form A i where i =, 2, 3,.... Formulas are defined by the following inductive process: Every formula can be represented

More information

SKETCHY NOTES FOR WEEKS 7 AND 8

SKETCHY NOTES FOR WEEKS 7 AND 8 SKETCHY NOTES FOR WEEKS 7 AND 8 We are now ready to start work on the proof of the Completeness Theorem for first order logic. Before we start a couple of remarks are in order (1) When we studied propositional

More information

The Journal of Logic and Algebraic Programming

The Journal of Logic and Algebraic Programming The Journal of Logic and Algebraic Programming 79 (2010) 144 173 Contents lists available at ScienceDirect The Journal of Logic and Algebraic Programming journal homepage: www.elsevier.com/locate/jlap

More information

Floyd-Hoare Style Program Verification

Floyd-Hoare Style Program Verification Floyd-Hoare Style Program Verification Deepak D Souza Department of Computer Science and Automation Indian Institute of Science, Bangalore. 9 Feb 2017 Outline of this talk 1 Overview 2 Hoare Triples 3

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

Compiling Techniques

Compiling Techniques Lecture 11: Introduction to 13 November 2015 Table of contents 1 Introduction Overview The Backend The Big Picture 2 Code Shape Overview Introduction Overview The Backend The Big Picture Source code FrontEnd

More information

Matching Logic: Syntax and Semantics

Matching Logic: Syntax and Semantics Matching Logic: Syntax and Semantics Grigore Roșu 1 and Traian Florin Șerbănuță 2 1 University of Illinois at Urbana-Champaign, USA grosu@illinois.edu 2 University of Bucharest, Romania traian.serbanuta@unibuc.ro

More information

Coinductive big-step semantics and Hoare logics for nontermination

Coinductive big-step semantics and Hoare logics for nontermination Coinductive big-step semantics and Hoare logics for nontermination Tarmo Uustalu, Inst of Cybernetics, Tallinn joint work with Keiko Nakata COST Rich Models Toolkit meeting, Madrid, 17 18 October 2013

More information

Quantum Functional Programming Language & Its Denotational Semantics

Quantum Functional Programming Language & Its Denotational Semantics Quantum Functional Programming Language & Its Denotational Semantics Ichiro Hasuo Dept. Computer Science University of Tokyo Naohiko Hoshino Research Inst. for Math. Sci. Kyoto University Talk based on:

More information

ICS141: Discrete Mathematics for Computer Science I

ICS141: Discrete Mathematics for Computer Science I ICS141: Discrete Mathematics for Computer Science I Dept. Information & Computer Sci., Jan Stelovsky based on slides by Dr. Baek and Dr. Still Originals by Dr. M. P. Frank and Dr. J.L. Gross Provided by

More information

A brief introduction to Logic. (slides from

A brief introduction to Logic. (slides from A brief introduction to Logic (slides from http://www.decision-procedures.org/) 1 A Brief Introduction to Logic - Outline Propositional Logic :Syntax Propositional Logic :Semantics Satisfiability and validity

More information

A Compositional Logic for Control Flow

A Compositional Logic for Control Flow A Compositional Logic for Control Flow Gang Tan and Andrew W. Appel Princeton University {gtan,appel}@cs.princeton.edu 10 Jan, 2005 Abstract We present a program logic, L c, which modularly reasons about

More information

Sequential Equivalence Checking without State Space Traversal

Sequential Equivalence Checking without State Space Traversal Sequential Equivalence Checking without State Space Traversal C.A.J. van Eijk Design Automation Section, Eindhoven University of Technology P.O.Box 53, 5600 MB Eindhoven, The Netherlands e-mail: C.A.J.v.Eijk@ele.tue.nl

More information

Lecture 3, Performance

Lecture 3, Performance Repeating some definitions: Lecture 3, Performance CPI MHz MIPS MOPS Clocks Per Instruction megahertz, millions of cycles per second Millions of Instructions Per Second = MHz / CPI Millions of Operations

More information

Foundations of Informatics: a Bridging Course

Foundations of Informatics: a Bridging Course Foundations of Informatics: a Bridging Course Week 3: Formal Languages and Semantics Thomas Noll Lehrstuhl für Informatik 2 RWTH Aachen University noll@cs.rwth-aachen.de http://www.b-it-center.de/wob/en/view/class211_id948.html

More information

Lists, Stacks, and Queues (plus Priority Queues)

Lists, Stacks, and Queues (plus Priority Queues) Lists, Stacks, and Queues (plus Priority Queues) The structures lists, stacks, and queues are composed of similar elements with different operations. Likewise, with mathematics: (Z, +, 0) vs. (Z,, 1) List

More information

Model Checking I. What are LTL and CTL? dack. and. dreq. and. q0bar

Model Checking I. What are LTL and CTL? dack. and. dreq. and. q0bar Model Checking I What are LTL and CTL? q0 or and dack dreq q0bar and 1 View circuit as a transition system (dreq, q0, dack) (dreq, q0, dack ) q0 = dreq and dack = dreq & (q0 + ( q0 & dack)) q0 or and D

More information

Quantum Computing Virtual Machine. Author: Alexandru Gheorghiu Scientific advisor: PhD. Lorina Negreanu

Quantum Computing Virtual Machine. Author: Alexandru Gheorghiu Scientific advisor: PhD. Lorina Negreanu Quantum Computing Virtual Machine Author: Alexandru Gheorghiu Scientific advisor: PhD. Lorina Negreanu Quantum Computing Virtual Machine Quantum Computing Computer science + quantum mechanics = quantum

More information

Automata Theory CS S-12 Turing Machine Modifications

Automata Theory CS S-12 Turing Machine Modifications Automata Theory CS411-2015S-12 Turing Machine Modifications David Galles Department of Computer Science University of San Francisco 12-0: Extending Turing Machines When we added a stack to NFA to get a

More information

Hardware Design I Chap. 2 Basis of logical circuit, logical expression, and logical function

Hardware Design I Chap. 2 Basis of logical circuit, logical expression, and logical function Hardware Design I Chap. 2 Basis of logical circuit, logical expression, and logical function E-mail: shimada@is.naist.jp Outline Combinational logical circuit Logic gate (logic element) Definition of combinational

More information

Lecture 3, Performance

Lecture 3, Performance Lecture 3, Performance Repeating some definitions: CPI Clocks Per Instruction MHz megahertz, millions of cycles per second MIPS Millions of Instructions Per Second = MHz / CPI MOPS Millions of Operations

More information

Automata Theory (2A) Young Won Lim 5/31/18

Automata Theory (2A) Young Won Lim 5/31/18 Automata Theory (2A) Copyright (c) 2018 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later

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

Flow Interfaces Compositional Abstractions of Concurrent Data Structures. Siddharth Krishna, Dennis Shasha, and Thomas Wies

Flow Interfaces Compositional Abstractions of Concurrent Data Structures. Siddharth Krishna, Dennis Shasha, and Thomas Wies Flow Interfaces Compositional Abstractions of Concurrent Data Structures Siddharth Krishna, Dennis Shasha, and Thomas Wies Background Verifying programs, separation logic, inductive predicates Verifying

More information

Parallelism and Machine Models

Parallelism and Machine Models Parallelism and Machine Models Andrew D Smith University of New Brunswick, Fredericton Faculty of Computer Science Overview Part 1: The Parallel Computation Thesis Part 2: Parallelism of Arithmetic RAMs

More information

Worst-Case Execution Time Analysis. LS 12, TU Dortmund

Worst-Case Execution Time Analysis. LS 12, TU Dortmund Worst-Case Execution Time Analysis Prof. Dr. Jian-Jia Chen LS 12, TU Dortmund 09/10, Jan., 2018 Prof. Dr. Jian-Jia Chen (LS 12, TU Dortmund) 1 / 43 Most Essential Assumptions for Real-Time Systems Upper

More information

Runtime Model Predictive Verification on Embedded Platforms 1

Runtime Model Predictive Verification on Embedded Platforms 1 Runtime Model Predictive Verification on Embedded Platforms 1 Pei Zhang, Jianwen Li, Joseph Zambreno, Phillip H. Jones, Kristin Yvonne Rozier Presenter: Pei Zhang Iowa State University peizhang@iastate.edu

More information

Algorithm efficiency analysis

Algorithm efficiency analysis Algorithm efficiency analysis Mădălina Răschip, Cristian Gaţu Faculty of Computer Science Alexandru Ioan Cuza University of Iaşi, Romania DS 2017/2018 Content Algorithm efficiency analysis Recursive function

More information

CS558 Programming Languages

CS558 Programming Languages CS558 Programming Languages Winter 2017 Lecture 2b Andrew Tolmach Portland State University 1994-2017 Semantics Informal vs. Formal Informal semantics Descriptions in English (or other natural language)

More information

CS 4407 Algorithms Lecture 3: Iterative and Divide and Conquer Algorithms

CS 4407 Algorithms Lecture 3: Iterative and Divide and Conquer Algorithms CS 4407 Algorithms Lecture 3: Iterative and Divide and Conquer Algorithms Prof. Gregory Provan Department of Computer Science University College Cork 1 Lecture Outline CS 4407, Algorithms Growth Functions

More information

Models of Computation, Recall Register Machines. A register machine (sometimes abbreviated to RM) is specified by:

Models of Computation, Recall Register Machines. A register machine (sometimes abbreviated to RM) is specified by: Models of Computation, 2010 1 Definition Recall Register Machines A register machine (sometimes abbreviated M) is specified by: Slide 1 finitely many registers R 0, R 1,..., R n, each capable of storing

More information

Temporal & Modal Logic. Acronyms. Contents. Temporal Logic Overview Classification PLTL Syntax Semantics Identities. Concurrency Model Checking

Temporal & Modal Logic. Acronyms. Contents. Temporal Logic Overview Classification PLTL Syntax Semantics Identities. Concurrency Model Checking Temporal & Modal Logic E. Allen Emerson Presenter: Aly Farahat 2/12/2009 CS5090 1 Acronyms TL: Temporal Logic BTL: Branching-time Logic LTL: Linear-Time Logic CTL: Computation Tree Logic PLTL: Propositional

More information

Outline. 1 Introduction. 3 Quicksort. 4 Analysis. 5 References. Idea. 1 Choose an element x and reorder the array as follows:

Outline. 1 Introduction. 3 Quicksort. 4 Analysis. 5 References. Idea. 1 Choose an element x and reorder the array as follows: Outline Computer Science 331 Quicksort Mike Jacobson Department of Computer Science University of Calgary Lecture #28 1 Introduction 2 Randomized 3 Quicksort Deterministic Quicksort Randomized Quicksort

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

Intelligent Agents. Formal Characteristics of Planning. Ute Schmid. Cognitive Systems, Applied Computer Science, Bamberg University

Intelligent Agents. Formal Characteristics of Planning. Ute Schmid. Cognitive Systems, Applied Computer Science, Bamberg University Intelligent Agents Formal Characteristics of Planning Ute Schmid Cognitive Systems, Applied Computer Science, Bamberg University Extensions to the slides for chapter 3 of Dana Nau with contributions by

More information