Problem Sheet 9: Software Model Checking Sample Solutions

Size: px
Start display at page:

Download "Problem Sheet 9: Software Model Checking Sample Solutions"

Transcription

1 Problem Sheet 9: Software Model Checking Sample Solutions Chris Poskitt ETH Zürich 1 Predicate Abstraction i. Let us first visualise c and not c in a Venn diagram: not c c P red(not c) gives the weakest under-approximation of not c. In other words, P red(not c) implies not c, but not (in general) the converse. A possible visualisation in a Venn diagram might then be: Pred(not c) c In negating P red(not c), we then get the strongest over-approximation, visualised as follows: Pred(not c) c not Pred(not c) Some exercises adapted from ones written by Stephan van Staden and Carlo A. Furia. 1

2 ii. We build a Boolean abstraction from C 1, one line at a time. First, we over-approximate assume x > 0 with assume P red( x > 0), followed by a parallel conditional assignment updating the predicates with respect to the original assume statement. P red( x > 0) = ( p) Hence we add assume p to A 1. This should be followed by a parallel conditional assignment (as described in the slides): if Pred(+ex(i)) then p(i) := True if Pred(-ex(i)) then p(i) := False p :=? Using the axiom {c post} assume c {post} for the weakest precondition of assume statements, we compute every +/ ex(i) for predicates i: = p +ex(p) = (x > 0 x > 0) ex(p) = (x > 0 x > 0) +ex(q) = (x > 0 y > 0) ex(q) = (x > 0 y > 0) +ex(r) = (x > 0 z > 0) ex(r) = (x > 0 z > 0) We apply the simplification step from the slides, and omit each P red(ex(i)) that is not unconditionally valid. It so happens that only: P red(+ex(p)) = P red(x > 0 x > 0) = P red(true) = true is valid, hence the parallel conditional assignment reduces to simply: if True then p :=? This reduces even further to, which we add to A 1. 2

3 Next, we address the assignment z := (x y) + 1. Recall that an assignment x := f is over-approximated by a parallel conditional assignment: if Pred(+f(i)) then p(i) := True if Pred(-f(i)) then p(i) := False p :=? Using the axiom {post[f/x]} x := f {post} and the definition of +/ f(i) for predicates i, we get: P red(+f(p)) = P red(x > 0) = p P red( f(p)) = P red( x > 0) = p P red(+f(q)) = P red(y > 0) = q P red( f(q)) = P red( y > 0) = q P red(+f(r)) = P red((x y) + 1 > 0) = (p q) ( p q) P red( f(r)) = P red( (x y) + 1 > 0) = P red((x y) + 1 0) = false The parallel conditional assignments for p, q have no effect, hence we add only the following to A 1 : if (p and q) or (not p and not q) then r := True if False then r := False Finally, we address the assertion assert z >= 1. The Boolean abstraction is simply assert P red(z 1). We have: and hence add assert r to A 1. P red(z 1) = r 3

4 Altogether, A 1 is the following program: assume p if (p and q) or (not p and not q) then r := True if False then r := False assert r With a further simplification, we get: assume p if (p and q) or (not p and not q) then r := True assert r 4

5 iii. (a) After normalising the program (following the details in the slides) we get: assume x > 0 y := x + x assume x <= 0 assume x = 0 y := 1 assume x /= 0 y := x * x assert y > 0 (b) To build A 2 from the normalised code above, apply the transformations to each assignment, assume, and assert, analogously to how I did when constructing A 1 (except that this time you only have two predicates, p and q). The resulting abstraction (after some simplifications) should be equivalent to this: assume p q := True assume not p p := False assume not p p := False q := True assume True -- can delete this assume q :=? assert q 5

6 2 Error Traces i. An abstract error trace is: [p, not q, r] assume p [p, not q, r] [p, not q, r] [p, not q, not r] assert r Observe that each concrete instruction corresponds to a (compound) abstract instruction. We can check whether or not this is a feasible concrete run by computing the weakest precondition of the concrete instructions with respect to p q r, interpreting conditions (assume, conditionals, or exit conditions) as asserts: {x > 0 and y <= 0 and (x*y)+1 <= 0} {(x > 0 and y <= 0 and (x*y)+1 <= 0) and x > 0} assert x > 0 {x > 0 and y <= 0 and (x*y)+1 <= 0} z := (x*y) + 1 {x > 0 and y <= 0 and z <= 0} [p, not q, not r] Executing the concrete program on a state s such that s = x > 0 y 0 (x y) will reveal the fault. One possible input state (of many) is s = {x 3, y 2, z }. ii. Here is an abstract counterexample trace: assume not p p := False assume True q :=? assert q As before, we check whether or not this abstract execution reflects a feasible, concrete counterexample, by computing the weakest precondition of the corresponding concrete instructions with respect to p q. Again, we interpret conditions (assume in this case) as asserts, and apply the corresponding Hoare logic axioms: 6

7 {x < 0 and x*x <= 0} {x <= 0 and x /= 0 and x <= 0 and x*x <= 0} assert x <= 0 {x /= 0 and x <= 0 and x*x <= 0} assert x /= 0 {x <= 0 and x*x <= 0} y := x*x {x <= 0 and y <= 0} Observe that in this case, the weakest precondition we have constructed is equivalent to false. There is no assignment to x that will satisfy the assertion. Hence the abstract counterexample is infeasible (spurious) in the concrete program; abstraction refinement is needed. 7

Static Program Transformations for Efficient Software Model Checking

Static Program Transformations for Efficient Software Model Checking Static Program Transformations for Efficient Software Model Checking Shobha Vasudevan Jacob Abraham The University of Texas at Austin Dependable Systems Large and complex systems Software faults are major

More information

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 11 Semantics of Programming Languages Denotational Semantics Meaning of a program is defined as the mathematical

More information

Software safety - DEF-STAN 00-55

Software safety - DEF-STAN 00-55 Software safety - DEF-STAN 00-55 Where safety is dependent on the safety related software (SRS) fully meeting its requirements, demonstrating safety is equivalent to demonstrating correctness with respect

More information

G Barnaby Electronics Ltd case Study - Comparison of Entity-Relationship and Normalisation Database Designs

G Barnaby Electronics Ltd case Study - Comparison of Entity-Relationship and Normalisation Database Designs G Barnaby Electronics Ltd case Study - Comparison of Entity-Relationship and Normalisation Database Designs G.1 Compare the two Database Designs created from the Entity-Relationship Model and Normalisation

More information

PROPERTECHNIQUEOFSOFTWARE INSPECTIONUSING GUARDED COMMANDLANGUAGE

PROPERTECHNIQUEOFSOFTWARE INSPECTIONUSING GUARDED COMMANDLANGUAGE International Journal of Computer ScienceandCommunication Vol. 2, No. 1, January-June2011, pp. 153-157 PROPERTECHNIQUEOFSOFTWARE INSPECTIONUSING GUARDED COMMANDLANGUAGE Neeraj Kumar Singhania University,

More information

Formal Verification by Model Checking

Formal Verification by Model Checking Formal Verification by Model Checking Natasha Sharygina Carnegie Mellon University Guest Lectures at the Analysis of Software Artifacts Class, Spring 2005 1 Outline Lecture 1: Overview of Model Checking

More information

Boolean Algebra Part 1

Boolean Algebra Part 1 Boolean Algebra Part 1 Page 1 Boolean Algebra Objectives Understand Basic Boolean Algebra Relate Boolean Algebra to Logic Networks Prove Laws using Truth Tables Understand and Use First Basic Theorems

More information

Towards Reasoning in the presence of code of unknown provenance

Towards Reasoning in the presence of code of unknown provenance Towards Reasoning in the presence of code of unknown provenance - or, trust and risk in an open world - Sophia Drossopoulou (Imperial), James Noble (Victoria University Wellington), Toby Murray (NICTA),

More information

def: An axiom is a statement that is assumed to be true, or in the case of a mathematical system, is used to specify the system.

def: An axiom is a statement that is assumed to be true, or in the case of a mathematical system, is used to specify the system. Section 1.5 Methods of Proof 1.5.1 1.5 METHODS OF PROOF Some forms of argument ( valid ) never lead from correct statements to an incorrect. Some other forms of argument ( fallacies ) can lead from true

More information

http://www.guido.be/intranet/enqueteoverview/tabid/152/ctl/eresults...

http://www.guido.be/intranet/enqueteoverview/tabid/152/ctl/eresults... 1 van 70 20/03/2014 11:55 EnqueteDescription 2 van 70 20/03/2014 11:55 3 van 70 20/03/2014 11:55 4 van 70 20/03/2014 11:55 5 van 70 20/03/2014 11:55 6 van 70 20/03/2014 11:55 7 van 70 20/03/2014 11:55

More information

A Note on Context Logic

A Note on Context Logic A Note on Context Logic Philippa Gardner Imperial College London This note describes joint work with Cristiano Calcagno and Uri Zarfaty. It introduces the general theory of Context Logic, and has been

More information

How To Improve Autotest

How To Improve Autotest Applying Search in an Automatic Contract-Based Testing Tool Alexey Kolesnichenko, Christopher M. Poskitt, and Bertrand Meyer ETH Zürich, Switzerland Abstract. Automated random testing has been shown to

More information

Rigorous Software Engineering Hoare Logic and Design by Contracts

Rigorous Software Engineering Hoare Logic and Design by Contracts Rigorous Software Engineering Hoare Logic and Design by Contracts Simão Melo de Sousa RELEASE (UBI), LIACC (Porto) Computer Science Department University of Beira Interior, Portugal 2010-2011 S. Melo de

More information

Grade descriptions Computer Science Stage 1

Grade descriptions Computer Science Stage 1 Stage 1 A B C Accurately uses a wide range of terms and concepts associated with current personal computers, home networking and internet connections. Correctly uses non-technical and a range of technical

More information

Model Driven Security: Foundations, Tools, and Practice

Model Driven Security: Foundations, Tools, and Practice Model Driven Security: Foundations, Tools, and Practice David Basin, Manuel Clavel, and ETH Zurich, IMDEA Software Institute Thursday 1st, 2011 Outline I 1 Models Analysis. Types. 2 The Object Constraint

More information

A Systematic Approach. to Parallel Program Verication. Tadao TAKAOKA. Department of Computer Science. Ibaraki University. Hitachi, Ibaraki 316, JAPAN

A Systematic Approach. to Parallel Program Verication. Tadao TAKAOKA. Department of Computer Science. Ibaraki University. Hitachi, Ibaraki 316, JAPAN A Systematic Approach to Parallel Program Verication Tadao TAKAOKA Department of Computer Science Ibaraki University Hitachi, Ibaraki 316, JAPAN E-mail: takaoka@cis.ibaraki.ac.jp Phone: +81 94 38 5130

More information

CHAPTER 3. Methods of Proofs. 1. Logical Arguments and Formal Proofs

CHAPTER 3. Methods of Proofs. 1. Logical Arguments and Formal Proofs CHAPTER 3 Methods of Proofs 1. Logical Arguments and Formal Proofs 1.1. Basic Terminology. An axiom is a statement that is given to be true. A rule of inference is a logical rule that is used to deduce

More information

T-79.232 Safety Critical Systems Case Study 2: B Method - Basic Concepts

T-79.232 Safety Critical Systems Case Study 2: B Method - Basic Concepts T-79.232 Safety Critical Systems Case Study 2: B Method - Basic Concepts February 21, 2008 T-79.5303: Case Study 2: B Method - Basic Concepts 2-1 B method - what is it about? B method describes entities

More information

Chapter 9. Systems of Linear Equations

Chapter 9. Systems of Linear Equations Chapter 9. Systems of Linear Equations 9.1. Solve Systems of Linear Equations by Graphing KYOTE Standards: CR 21; CA 13 In this section we discuss how to solve systems of two linear equations in two variables

More information

Chapter 10 Expectations. NOTE: Whenever you see the word communicate, it is implied that it means to communicate both verbally and in writing!

Chapter 10 Expectations. NOTE: Whenever you see the word communicate, it is implied that it means to communicate both verbally and in writing! Chapter 10 Expectations NOTE: Whenever you see the word communicate, it is implied that it means to communicate both verbally and in writing! Section 1: Expectations for Interest 1. Communicate to your

More information

Reasoning About the Unknown in Static Analysis

Reasoning About the Unknown in Static Analysis Reasoning About the Unknown in Static Analysis Isil Dillig Thomas Dillig Alex Aiken {isil, tdillig, aiken}@cs.stanford.edu Computer Science Department Stanford University ABSTRACT Static program analysis

More information

Sofware Requirements Engineeing

Sofware Requirements Engineeing Sofware Requirements Engineeing Three main tasks in RE: 1 Elicit find out what the customers really want. Identify stakeholders, their goals and viewpoints. 2 Document write it down (). Understandable

More information

Mathematics for Computer Science/Software Engineering. Notes for the course MSM1F3 Dr. R. A. Wilson

Mathematics for Computer Science/Software Engineering. Notes for the course MSM1F3 Dr. R. A. Wilson Mathematics for Computer Science/Software Engineering Notes for the course MSM1F3 Dr. R. A. Wilson October 1996 Chapter 1 Logic Lecture no. 1. We introduce the concept of a proposition, which is a statement

More information

InvGen: An Efficient Invariant Generator

InvGen: An Efficient Invariant Generator InvGen: An Efficient Invariant Generator Ashutosh Gupta and Andrey Rybalchenko Max Planck Institute for Software Systems (MPI-SWS) Abstract. In this paper we present InvGen, an automatic linear arithmetic

More information

Jordan University of Science & Technology Computer Science Department CS 728: Advanced Database Systems Midterm Exam First 2009/2010

Jordan University of Science & Technology Computer Science Department CS 728: Advanced Database Systems Midterm Exam First 2009/2010 Jordan University of Science & Technology Computer Science Department CS 728: Advanced Database Systems Midterm Exam First 2009/2010 Student Name: ID: Part 1: Multiple-Choice Questions (17 questions, 1

More information

simplicity hides complexity

simplicity hides complexity flow of control backtracking reasoning in logic and in Prolog 1 simplicity hides complexity simple and/or connections of goals conceal very complex control patterns Prolog programs are not easily represented

More information

(LMCS, p. 317) V.1. First Order Logic. This is the most powerful, most expressive logic that we will examine.

(LMCS, p. 317) V.1. First Order Logic. This is the most powerful, most expressive logic that we will examine. (LMCS, p. 317) V.1 First Order Logic This is the most powerful, most expressive logic that we will examine. Our version of first-order logic will use the following symbols: variables connectives (,,,,

More information

Software Design. Software Design. Software design is the process that adds implementation details to the requirements.

Software Design. Software Design. Software design is the process that adds implementation details to the requirements. Software Design Software Design Software design is the process that adds implementation details to the requirements. It produces a design specification that can be mapped onto a program. It may take several

More information

Model Checking: An Introduction

Model Checking: An Introduction Announcements Model Checking: An Introduction Meeting 2 Office hours M 1:30pm-2:30pm W 5:30pm-6:30pm (after class) and by appointment ECOT 621 Moodle problems? Fundamentals of Programming Languages CSCI

More information

Set operations and Venn Diagrams. COPYRIGHT 2006 by LAVON B. PAGE

Set operations and Venn Diagrams. COPYRIGHT 2006 by LAVON B. PAGE Set operations and Venn Diagrams Set operations and Venn diagrams! = { x x " and x " } This is the intersection of and. # = { x x " or x " } This is the union of and. n element of! belongs to both and,

More information

Coverability for Parallel Programs

Coverability for Parallel Programs 2015 http://excel.fit.vutbr.cz Coverability for Parallel Programs Lenka Turoňová* Abstract We improve existing method for the automatic verification of systems with parallel running processes. The technique

More information

EXAM FOR INFOTECH SOFTWARE ENGINEERING FOR REAL-TIME SYSTEMS. Suggested Solution WS 13/14. - Without Engagement -

EXAM FOR INFOTECH SOFTWARE ENGINEERING FOR REAL-TIME SYSTEMS. Suggested Solution WS 13/14. - Without Engagement - EXAM FOR INFOTECH SOFTWARE ENGINEERING FOR REAL-TIME SYSTEMS Suggested Solution WS 13/14 - Without Engagement - Task Theme Points Time required in min. 1 Analysis and Design 15 30 2 Basics and Test 10

More information

Question 2: How will changes in the objective function s coefficients change the optimal solution?

Question 2: How will changes in the objective function s coefficients change the optimal solution? Question 2: How will changes in the objective function s coefficients change the optimal solution? In the previous question, we examined how changing the constants in the constraints changed the optimal

More information

Section 9.5: Equations of Lines and Planes

Section 9.5: Equations of Lines and Planes Lines in 3D Space Section 9.5: Equations of Lines and Planes Practice HW from Stewart Textbook (not to hand in) p. 673 # 3-5 odd, 2-37 odd, 4, 47 Consider the line L through the point P = ( x, y, ) that

More information

IAEA Training Course on Safety Assessment of NPPs to Assist Decision Making. System Analysis. Lecturer. Workshop Information IAEA Workshop

IAEA Training Course on Safety Assessment of NPPs to Assist Decision Making. System Analysis. Lecturer. Workshop Information IAEA Workshop IAEA Training Course on Safety Assessment of NPPs to Assist Decision Making System Analysis Lecturer Lesson Lesson IV IV 3_2.3 3_2.3 Workshop Information IAEA Workshop City, XX XX - City -XX, Country Month,

More information

facultad de informática universidad politécnica de madrid

facultad de informática universidad politécnica de madrid facultad de informática universidad politécnica de madrid On the Confluence of CHR Analytical Semantics Rémy Haemmerlé Universidad olitécnica de Madrid & IMDEA Software Institute, Spain TR Number CLI2/2014.0

More information

Formal Engineering for Industrial Software Development

Formal Engineering for Industrial Software Development Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3

More information

Lehrstuhl für Informatik 2

Lehrstuhl für Informatik 2 Analytical Learning Introduction Lehrstuhl Explanation is used to distinguish the relevant features of the training examples from the irrelevant ones, so that the examples can be generalised Introduction

More information

How To Make A Correct Multiprocess Program Execute Correctly On A Multiprocedor

How To Make A Correct Multiprocess Program Execute Correctly On A Multiprocedor How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor Leslie Lamport 1 Digital Equipment Corporation February 14, 1993 Minor revisions January 18, 1996 and September 14, 1996

More information

The confidence-probability semiring Günther J. Wirsching Markus Huber Christian Kölbl

The confidence-probability semiring Günther J. Wirsching Markus Huber Christian Kölbl UNIVERSITÄT AUGSBURG The confidence-probability semiring Günther J. Wirsching Markus Huber Christian Kölbl Report 2010-04 April 2010 INSTITUT FÜR INFORMATIK D-86135 AUGSBURG 2 Copyright c Günther J. Wirsching,

More information

2.1. Inductive Reasoning EXAMPLE A

2.1. Inductive Reasoning EXAMPLE A CONDENSED LESSON 2.1 Inductive Reasoning In this lesson you will Learn how inductive reasoning is used in science and mathematics Use inductive reasoning to make conjectures about sequences of numbers

More information

Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation

Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation Abstract This paper discusses methods of joining SAS data sets. The different methods and the reasons for choosing a particular

More information

Section 1.4. Lines, Planes, and Hyperplanes. The Calculus of Functions of Several Variables

Section 1.4. Lines, Planes, and Hyperplanes. The Calculus of Functions of Several Variables The Calculus of Functions of Several Variables Section 1.4 Lines, Planes, Hyperplanes In this section we will add to our basic geometric understing of R n by studying lines planes. If we do this carefully,

More information

Security Analysis of Role-based Access Control through Program Verification

Security Analysis of Role-based Access Control through Program Verification Security Analysis of Role-based Access Control through Program Verification Anna Lisa Ferrara University of Bristol, UK anna.lisa.ferrara@bristol.ac.uk P. Madhusudan University of Illinois, USA madhu@illinois.edu

More information

Test Case Generation for Ultimately Periodic Paths Joint work with Saddek Bensalem Hongyang Qu Stavros Tripakis Lenore Zuck Accepted to HVC 2007 How to find the condition to execute a path? (weakest precondition

More information

Predicate Logic. Example: All men are mortal. Socrates is a man. Socrates is mortal.

Predicate Logic. Example: All men are mortal. Socrates is a man. Socrates is mortal. Predicate Logic Example: All men are mortal. Socrates is a man. Socrates is mortal. Note: We need logic laws that work for statements involving quantities like some and all. In English, the predicate is

More information

System modeling. Budapest University of Technology and Economics Department of Measurement and Information Systems

System modeling. Budapest University of Technology and Economics Department of Measurement and Information Systems System modeling Business process modeling how to do it right Partially based on Process Anti-Patterns: How to Avoid the Common Traps of Business Process Modeling, J Koehler, J Vanhatalo, IBM Zürich, 2007.

More information

4 Starts to flash when the system triggers an alarm/fault

4 Starts to flash when the system triggers an alarm/fault 1 4 Starts to flash when the system triggers an alarm/fault Emergency button if programmed 2 Deactivate 1 Activate 3 Partly Activate Note: The buttons on the wireless key fob are sensitive. Kindly handle

More information

High School Geometry Test Sampler Math Common Core Sampler Test

High School Geometry Test Sampler Math Common Core Sampler Test High School Geometry Test Sampler Math Common Core Sampler Test Our High School Geometry sampler covers the twenty most common questions that we see targeted for this level. For complete tests and break

More information

UFO: Verification with Interpolants and Abstract Interpretation

UFO: Verification with Interpolants and Abstract Interpretation : Verification with Interpolants and Abstract Interpretation and Sagar Chaki Software Engineering Institute Carnegie Mellon University Aws Albarghouthi, Yi i and Marsha Chechik University of Toronto A

More information

COMHAIRLE NÁISIÚNTA NA NATIONAL COUNCIL FOR VOCATIONAL AWARDS PILOT. Consultative Draft Module Descriptor. Relational Database

COMHAIRLE NÁISIÚNTA NA NATIONAL COUNCIL FOR VOCATIONAL AWARDS PILOT. Consultative Draft Module Descriptor. Relational Database COMHAIRLE NÁISIÚNTA NA gcáilíochtaí GAIRMOIDEACHAIS NATIONAL COUNCIL FOR VOCATIONAL AWARDS PILOT Consultative Draft Module Descriptor Relational Database Level 3 C30147 December 1998 1 Title Relational

More information

I. Pointwise convergence

I. Pointwise convergence MATH 40 - NOTES Sequences of functions Pointwise and Uniform Convergence Fall 2005 Previously, we have studied sequences of real numbers. Now we discuss the topic of sequences of real valued functions.

More information

Student Outcomes. Lesson Notes. Classwork. Discussion (10 minutes)

Student Outcomes. Lesson Notes. Classwork. Discussion (10 minutes) NYS COMMON CORE MATHEMATICS CURRICULUM Lesson 5 8 Student Outcomes Students know the definition of a number raised to a negative exponent. Students simplify and write equivalent expressions that contain

More information

How To Find Out What A Key Is In A Database Engine

How To Find Out What A Key Is In A Database Engine Database design theory, Part I Functional dependencies Introduction As we saw in the last segment, designing a good database is a non trivial matter. The E/R model gives a useful rapid prototyping tool,

More information

Software Verification and System Assurance

Software Verification and System Assurance Software Verification and System Assurance John Rushby Based on joint work with Bev Littlewood (City University UK) Computer Science Laboratory SRI International Menlo Park CA USA John Rushby, SR I Verification

More information

DIGITAL LOGIC CURRENT FLOW

DIGITAL LOGIC CURRENT FLOW Slide #1 DIGITAL LOGIC CURRENT FLOW By Henry W. Ott Henry Ott Consultants www.hottconsultants.com hott@ieee.org Slide #2 INTRODUCTION Many Engineers and Designers Are Confused About How And Where Digital

More information

A new evaluation model for e-learning programs

A new evaluation model for e-learning programs A new evaluation model for e-learning programs Uranchimeg Tudevdagva 1, Wolfram Hardt 2 Abstract This paper deals with a measure theoretical model for evaluation of e-learning programs. Based on methods

More information

1 Operational Semantics for While

1 Operational Semantics for While Models of Computation, 2010 1 1 Operational Semantics for While The language While of simple while programs has a grammar consisting of three syntactic categories: numeric expressions, which represent

More information

Predicate logic Proofs Artificial intelligence. Predicate logic. SET07106 Mathematics for Software Engineering

Predicate logic Proofs Artificial intelligence. Predicate logic. SET07106 Mathematics for Software Engineering Predicate logic SET07106 Mathematics for Software Engineering School of Computing Edinburgh Napier University Module Leader: Uta Priss 2010 Copyright Edinburgh Napier University Predicate logic Slide 1/24

More information

Usable Verification of Object-Oriented Programs by Combining Static and Dynamic Techniques

Usable Verification of Object-Oriented Programs by Combining Static and Dynamic Techniques Usable Verification of Object-Oriented Programs by Combining Static and Dynamic Techniques Julian Tschannen, Carlo A. Furia, Martin Nordio, and Bertrand Meyer Chair of Software Engineering, ETH Zurich,

More information

Propositional Logic. A proposition is a declarative sentence (a sentence that declares a fact) that is either true or false, but not both.

Propositional Logic. A proposition is a declarative sentence (a sentence that declares a fact) that is either true or false, but not both. irst Order Logic Propositional Logic A proposition is a declarative sentence (a sentence that declares a fact) that is either true or false, but not both. Are the following sentences propositions? oronto

More information

Verification Everywhere: Security, Dependability, Reliability. Lenore D. Zuck Usable Verification, May 25, 2011

Verification Everywhere: Security, Dependability, Reliability. Lenore D. Zuck Usable Verification, May 25, 2011 Verification Everywhere: Security, Dependability, Reliability Lenore D. Zuck Usable Verification, May 25, 2011 1 Trustworthy Protocols: NTLM A suite of Microsoft security protocols Proves authentication,

More information

Mathematical Reasoning in Software Engineering Education. Peter B. Henderson Butler University

Mathematical Reasoning in Software Engineering Education. Peter B. Henderson Butler University Mathematical Reasoning in Software Engineering Education Peter B. Henderson Butler University Introduction Engineering is a bridge between science and mathematics, and the technological needs of mankind.

More information

Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1)

Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1) Stages in Teaching Formal Methods A. J. Cowling Structure of Presentation Introduction to Issues Motivation for this work. Analysis of the Role of Formal Methods Define their scope; Review their treatment

More information

Automated Theorem Proving - summary of lecture 1

Automated Theorem Proving - summary of lecture 1 Automated Theorem Proving - summary of lecture 1 1 Introduction Automated Theorem Proving (ATP) deals with the development of computer programs that show that some statement is a logical consequence of

More information

Communication Diagrams

Communication Diagrams Communication Diagrams Massimo Felici Realizing Use cases in the Design Model 1 Slide 1: Realizing Use cases in the Design Model Use-case driven design is a key theme in a variety of software processes

More information

A Theorem Prover for Boolean BI

A Theorem Prover for Boolean BI A Theorem Prover for Boolean BI Jonghyun Park Jeongbong Seo Sungwoo Park Department of Computer Science and Engineering Pohang University of Science and Technology (POSTECH) Republic of Korea {parjong,baramseo,gla}@postech.ac.kr

More information

SOLUTIONS. f x = 6x 2 6xy 24x, f y = 3x 2 6y. To find the critical points, we solve

SOLUTIONS. f x = 6x 2 6xy 24x, f y = 3x 2 6y. To find the critical points, we solve SOLUTIONS Problem. Find the critical points of the function f(x, y = 2x 3 3x 2 y 2x 2 3y 2 and determine their type i.e. local min/local max/saddle point. Are there any global min/max? Partial derivatives

More information

LAKE ELSINORE UNIFIED SCHOOL DISTRICT

LAKE ELSINORE UNIFIED SCHOOL DISTRICT LAKE ELSINORE UNIFIED SCHOOL DISTRICT Title: PLATO Algebra 1-Semester 2 Grade Level: 10-12 Department: Mathematics Credit: 5 Prerequisite: Letter grade of F and/or N/C in Algebra 1, Semester 2 Course Description:

More information

Chapter 11 Number Theory

Chapter 11 Number Theory Chapter 11 Number Theory Number theory is one of the oldest branches of mathematics. For many years people who studied number theory delighted in its pure nature because there were few practical applications

More information

SPECIFICATION SHEET : WH5-120-L

SPECIFICATION SHEET : WH5-120-L SPECIFICATION SHEET : WH5120L *F3 2 T8 3 1 0 6 0.9 3 1.2 6 1.1 9 *F3 2 T8 4 1 2 7 1.1 3 1.1 1 0.8 7 F5 4 T5 H O 2 1 0 8 0.9 6 1.0 7 0.9 9 *F5 8 T8 2 1 1 0 0.9 7 1.0 8 0.9 8 *F4 0 T1 0 2 1 0 1 0.9 0 1.3

More information

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)

More information

Test case design techniques I: Whitebox testing CISS

Test case design techniques I: Whitebox testing CISS Test case design techniques I: Whitebox testing Overview What is a test case Sources for test case derivation Test case execution White box testing Flowgraphs Test criteria/coverage Statement / branch

More information

ECON 305 Tutorial 7 (Week 9)

ECON 305 Tutorial 7 (Week 9) H. K. Chen (SFU) ECON 305 Tutorial 7 (Week 9) July 2,3, 2014 1 / 24 ECON 305 Tutorial 7 (Week 9) Questions for today: Ch.9 Problems 15, 7, 11, 12 MC113 Tutorial slides will be posted Thursday after 10:30am,

More information

introduction to program monitoring

introduction to program monitoring introduction to program monitoring CS 119 part II beyond assert and print course website http://www.runtime-verification.org/course09 action standing order: sell when price drops more than 2% within 1

More information

Model Checking of Software

Model Checking of Software Model Checking of Software Patrice Godefroid Bell Laboratories, Lucent Technologies SpecNCheck Page 1 August 2001 A Brief History of Model Checking Prehistory: transformational programs and theorem proving

More information

Reasoning-based Techniques for Dealing with Incomplete Business Process Execution Traces

Reasoning-based Techniques for Dealing with Incomplete Business Process Execution Traces Reasoning-based Techniques for Dealing with Incomplete Business Process Execution Traces Piergiorgio Bertoli 1, Mauro Dragoni 2, Chiara Ghidini 2 and Chiara Di Francescomarino 2 1 SayService, Trento, Italy

More information

What's Wrong With Formal Programming Methods? Eric C.R. Hehner

What's Wrong With Formal Programming Methods? Eric C.R. Hehner What's Wrong With Formal Programming Methods? Eric C.R. Hehner Department of Computer Science, University of Toronto, Toronto M5S 1A4 Canada The January 1991 issue of Computing Research News includes the

More information

Software Model Checking. Equivalence Hierarchy

Software Model Checking. Equivalence Hierarchy Software Equivalence Hierarchy Moonzoo Kim CS Dept. KAIST CS750B Software Korea Advanced Institute of Science and Technology Equivalence semantics and SW design Preliminary Hierarchy Diagram Trace-based

More information

13.5. Click here for answers. Click here for solutions. CURL AND DIVERGENCE. 17. F x, y, z x i y j x k. 2. F x, y, z x 2z i x y z j x 2y k

13.5. Click here for answers. Click here for solutions. CURL AND DIVERGENCE. 17. F x, y, z x i y j x k. 2. F x, y, z x 2z i x y z j x 2y k SECTION CURL AND DIVERGENCE 1 CURL AND DIVERGENCE A Click here for answers. S Click here for solutions. 1 15 Find (a the curl and (b the divergence of the vector field. 1. F x, y, xy i y j x k. F x, y,

More information

Detecting and Exploiting Second Order Denial-of-Service Vulnerabilities in Web Applications

Detecting and Exploiting Second Order Denial-of-Service Vulnerabilities in Web Applications Detecting and Exploiting Second Order Denial-of-Service Vulnerabilities in Web Applications Oswaldo Olivo Isil Dillig Calvin Lin {olivo, isil, lin@cs.utexas.edu Department of Computer Science The University

More information

Computational Mathematics with Python

Computational Mathematics with Python Boolean Arrays Classes Computational Mathematics with Python Basics Olivier Verdier and Claus Führer 2009-03-24 Olivier Verdier and Claus Führer Computational Mathematics with Python 2009-03-24 1 / 40

More information

3 Extending the Refinement Calculus

3 Extending the Refinement Calculus Building BSP Programs Using the Refinement Calculus D.B. Skillicorn? Department of Computing and Information Science Queen s University, Kingston, Canada skill@qucis.queensu.ca Abstract. We extend the

More information

Choice under Uncertainty

Choice under Uncertainty Choice under Uncertainty Part 1: Expected Utility Function, Attitudes towards Risk, Demand for Insurance Slide 1 Choice under Uncertainty We ll analyze the underlying assumptions of expected utility theory

More information

o-minimality and Uniformity in n 1 Graphs

o-minimality and Uniformity in n 1 Graphs o-minimality and Uniformity in n 1 Graphs Reid Dale July 10, 2013 Contents 1 Introduction 2 2 Languages and Structures 2 3 Definability and Tame Geometry 4 4 Applications to n 1 Graphs 6 5 Further Directions

More information

Service Specification and Validation for the Intelligent Network 1

Service Specification and Validation for the Intelligent Network 1 Service Specification and Validation for the Intelligent Network 1 Pierre-Alain Etique Jean-Pierre Hubaux etique@vptt.ch hubaux@tcom.epfl.ch Swiss Telecom PTT Swiss Federal Institute of Technology Research

More information

Introduction to Static Analysis for Assurance

Introduction to Static Analysis for Assurance Introduction to Static Analysis for Assurance John Rushby Computer Science Laboratory SRI International Menlo Park CA USA John Rushby Static Analysis for Assurance: 1 Overview What is static analysis?

More information

A Meeting Room Scheduling Problem

A Meeting Room Scheduling Problem A Scheduling Problem Objective Engineering, Inc. 699 Windsong Trail Austin, Texas 78746 512-328-9658 FAX: 512-328-9661 ooinfo@oeng.com http://www.oeng.com Objective Engineering, Inc., 1999-2007. Photocopying,

More information

INCIDENCE-BETWEENNESS GEOMETRY

INCIDENCE-BETWEENNESS GEOMETRY INCIDENCE-BETWEENNESS GEOMETRY MATH 410, CSUSM. SPRING 2008. PROFESSOR AITKEN This document covers the geometry that can be developed with just the axioms related to incidence and betweenness. The full

More information

Systems Analysis and Design

Systems Analysis and Design Systems Analysis and Design Slides adapted from Jeffrey A. Hoffer, University of Dayton Joey F. George, Florida State University Joseph S. Valacich, Washington State University Modern Systems Analysis

More information

MDA and Analysis of Web Applications

MDA and Analysis of Web Applications MDA and Analysis of Web Applications Behzad Bordbar and Kyriakos Anastasakis School of Computer Science, University of Birmingham, Birmingham, B15 2TT, UK {B.Bordbar,K.Anastasakis}@cs.bham.ac.uk Abstract.

More information

AN AI PLANNING APPROACH FOR GENERATING BIG DATA WORKFLOWS

AN AI PLANNING APPROACH FOR GENERATING BIG DATA WORKFLOWS AN AI PLANNING APPROACH FOR GENERATING BIG DATA WORKFLOWS Wesley Deneke 1, Wing-Ning Li 2, and Craig Thompson 2 1 Computer Science and Industrial Technology Department, Southeastern Louisiana University,

More information

Notes. Information Systems. Higher Still. Higher. www.hsn.uk.net. HSN31010 Database Systems First Normal Form. Contents

Notes. Information Systems. Higher Still. Higher. www.hsn.uk.net. HSN31010 Database Systems First Normal Form. Contents Higher Information Systems First Normal Form Contents Normalising to First Normal Form 1 What is Normalising? 1 Normal Forms 1 The Process 1 Worked Example 2 Why do we Normalise? 4 These notes were created

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

Formal verification of contracts for synchronous software components using NuSMV

Formal verification of contracts for synchronous software components using NuSMV Formal verification of contracts for synchronous software components using NuSMV Tobias Polzer Lehrstuhl für Informatik 8 Bachelorarbeit 13.05.2014 1 / 19 Problem description and goals Problem description

More information

Towards the development of a cognitive model of programming; A software engineering proposal

Towards the development of a cognitive model of programming; A software engineering proposal In E. Dunican & T.R.G. Green (Eds). Proc. PPIG 16 Pages 79-85 Towards the development of a cognitive model of programming; A software engineering proposal Des Traynor, J. Paul Gibson Computer Science Department

More information

Computational Mathematics with Python

Computational Mathematics with Python Computational Mathematics with Python Basics Claus Führer, Jan Erik Solem, Olivier Verdier Spring 2010 Claus Führer, Jan Erik Solem, Olivier Verdier Computational Mathematics with Python Spring 2010 1

More information

Duality in General Programs. Ryan Tibshirani Convex Optimization 10-725/36-725

Duality in General Programs. Ryan Tibshirani Convex Optimization 10-725/36-725 Duality in General Programs Ryan Tibshirani Convex Optimization 10-725/36-725 1 Last time: duality in linear programs Given c R n, A R m n, b R m, G R r n, h R r : min x R n c T x max u R m, v R r b T

More information

Semantics and Ontology of Logistic Cloud Services*

Semantics and Ontology of Logistic Cloud Services* Semantics and Ontology of Logistic Cloud s* Dr. Sudhir Agarwal Karlsruhe Institute of Technology (KIT), Germany * Joint work with Julia Hoxha, Andreas Scheuermann, Jörg Leukel Usage Tasks Query Execution

More information

Intrinsic Limitations of Digital Signatures and How to Cope With Them

Intrinsic Limitations of Digital Signatures and How to Cope With Them Intrinsic Limitations of Digital Signatures and How to Cope With Them Ueli Maurer Department of Computer Science ETH Zurich CH-8092 Zurich, Switzerland, maurer@inf.ethz.ch Abstract. Digital signatures

More information