Hoare Logic for Realistically Modelled Machine Code
|
|
- Margery Garrett
- 5 years ago
- Views:
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 Magnus Myreen May 2008 Introduction This talk concerns verification of functional correctness of machine code for commercial processors (ARM, PowerPC, x86...
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 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 informationList 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 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 informationFunctional 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 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 informationVerification 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 informationExecuting 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 informationMechanizing 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 informationHoare Logic (I): Axiomatic Semantics and Program Correctness
Hoare Logic (I): Axiomatic Semantics and Program Correctness (Based on [Apt and Olderog 1991; Gries 1981; Hoare 1969; Kleymann 1999; Sethi 199]) Yih-Kuen Tsay Dept. of Information Management National Taiwan
More informationThe 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 informationECEN 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 informationProbabilistic 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 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 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 informationAutomata-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 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 informationProgram verification. Hoare triples. Assertional semantics (cont) Example: Semantics of assignment. Assertional semantics of a program
Program verification Assertional semantics of a program Meaning of a program: relation between its inputs and outputs; specified by input assertions (pre-conditions) and output assertions (post-conditions)
More informationKö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 informationLogic 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 informationLoop 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 informationCOMPUTER 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 informationSpring 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 informationCOSE212: 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 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 informationRibbon 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 informationMaterial 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 informationOperational 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 informationExploring 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 informationCOSE212: 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 informationModels 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 informationSoftware Verification
Software Verification Grégoire Sutre LaBRI, University of Bordeaux, CNRS, France Summer School on Verification Technology, Systems & Applications September 2008 Grégoire Sutre Software Verification VTSA
More informationApplied Logic. Lecture 1 - Propositional logic. Marcin Szczuka. Institute of Informatics, The University of Warsaw
Applied Logic Lecture 1 - Propositional logic Marcin Szczuka Institute of Informatics, The University of Warsaw Monographic lecture, Spring semester 2017/2018 Marcin Szczuka (MIMUW) Applied Logic 2018
More informationSpring 2016 Program Analysis and Verification. Lecture 3: Axiomatic Semantics I. Roman Manevich Ben-Gurion University
Spring 2016 Program Analysis and Verification Lecture 3: Axiomatic Semantics I Roman Manevich Ben-Gurion University Warm-up exercises 1. Define program state: 2. Define structural semantics configurations:
More informationTHE 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 informationAn 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 informationWorst-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 informationOutline. 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 informationThe 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 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 informationOn 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 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 informationLogical 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 informationAutomata-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 informationSystem 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 informationChapter 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 informationCentral 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 informationA 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 informationCOP4020 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 informationCS20a: 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 informationResources 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 informationX-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 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 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 informationAutomated 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 informationIntroduction. 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 informationNICTA 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 informationPortland 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 informationComputer 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 informationAgent-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 informationRoy 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 informationAutomata-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 informationSimple 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 informationCVO103: 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 informationSyntax 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 informationSKETCHY 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 informationThe 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 informationFloyd-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 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 informationCompiling 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 informationMatching 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 informationCoinductive 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 informationQuantum 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 informationICS141: 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 informationA 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 informationA 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 informationSequential 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 informationLecture 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 informationFoundations 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 informationLists, 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 informationModel 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 informationQuantum 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 informationAutomata 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 informationHardware 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 informationLecture 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 informationAutomata 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 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 informationFlow 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 informationParallelism 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 informationWorst-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 informationRuntime 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 informationAlgorithm 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 informationCS558 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 informationCS 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 informationModels 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 informationTemporal & 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 informationOutline. 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 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 informationIntelligent 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