3EA3 Lecture 16: Linear Search
|
|
- Pearl Cobb
- 5 years ago
- Views:
Transcription
1 3EA3 Lecture 16: Linear Search Musa Al-hassy Specifications and Correctness 2018 Abstract These notes accompany the slide-deck of the same title, which aims to demonstrate how the linear search program can be derived by using the delete a conjunct technique to find an invariant from an end goal. We recall the search algorithm of the previous lecture, as well a particularly helpful theorem regarding finite optimization. The exposition is similar to section 9.2 of [?], but differs in that we are looking at the bounded linear search: There may be no solution but only a finite number of candidates is inspected. Contents 1 The deleting a conjunct Heuristic 2 2 Problem Statement 2 3 Specifying the Problem Ghosts In The Machine Finding the invariant Induced Extrema Definition for Numbers Rewriting our Goal Program Outline, Thus Far Deleting a conjunct Program Outline, Thus Far Bound Function Decreasing The Bound Invariant Maintenance 4 7 Conclusion 5 8 Frama-C 5
2 1 The deleting a conjunct Heuristic When programming, an end goal R can usually be construed as consiting of two main conjuncts: R inv done. Programming is about ensuring that R will be true by assigning to the variables that occur in it. Pick values for the variables and see what parts of R will be true. Such parts will constitute the invariant and live in conjunct inv. The parts of R that are not easily truthified constitute the done condition and so form part of the loop guard. This approach to finding an invariant gives the program outline: { Givens intilisation ; DO done??? OD { inv done; i.e., R 2 Problem Statement Linear Search Given a problem with solution space S : Z B, we are asked to find the least solution in the interval 0..N-1, for N 0, if any, otherwise we are to output N. ( The developed algorithm will take linear time in-terms of the given array length. ) 3 Specifying the Problem At a first glance, it might seem that our desired end goal is to assign to a variable i such that i = ( j 0 j < N S j j) That is, i is the least index j : 0..N-1 that is a solution, i.e., S j. However, when there are no solutions inspected i.e., j : 0..N-1 S j false then the quantification becomes i = ( j 0 j < N S j j) = ( j false j) = +, since + is the identity of minima. To avoid working with notions of infinity, we want S j to be true for some j. This is the approach followed by [?], 9.2. Alternatively, we can postulate that S N true: We shall never actually access S at location N but will suppose that N is a solution point. Now the above quantification, ( j 0 j < N S j j), is necessarily finite. 3.1 Ghosts In The Machine It is common to refer to S N as a postulated value, a fictitious element, a ghost value. Since it will be used in the logical correctness and derivation of the algorithm, but never actually occur whence a ghost to the program. Thus we have the program outline, { N 0? { R : i = ( j 0 j N S j j) Ghost: S N true 4 Finding the invariant The end goal is phrased rather succinctly however the technique we are currently learning about requires we construe it as a few conjuncts. To that end, we recall an important property from finite lattice theory. 4.1 Induced Extrema Definition for Numbers Provided Q non-empty and finite, f m = ( x Q x f x) Q m ( x Q x f m f x) (f m) is the least f-image point over the domain Q precisely when m is in the domain and all other image points over the domain are above it. Dually, f m = ( x Q x f x) Q m ( x Q x f x f m)
3 4.2 Rewriting our Goal Hence, our end goal can be rewritten from i = ( j 0 j N S j j) to 0 i N S i ( j 0 j N S j i j). We now have a host of conjuncts to consider deleting! Before moving on observe that we tend to phrase the bounds on a variable in the range-portion of our quantification notation whereas our most recent rendition of the end goal contains a quantification with bounds on j is multiple positions. Let us massage it so that it takes on the familiar shape we are comfortable working with. In the context of the other conjuncts, 0 i N S i, we massage the third one with the aim of simplifying it. j 0 j N Sj i j = { Use the -trading law to bring the inclusions closer together j 0 j N Sj i j = { Now the shunting law to bring them ever closer j 0 j N (Sj i j) = { Contraposition in the hopes of bringing them closer j 0 j N ( i j Sj) = { Shunting to bring the inclusions side-by-side j 0 j N i j Sj = { Use the -trading law to bring the inclusions into the range area j 0 j N i j Sj = { Let s try to clean-up the messy range: 0 j N i j j = { Inclusion chain notation and negation of an order 0 j j N j < i = { Context gives i N and identity of 0 j j N j < i N = { Order theory j < i N j N and definition of implication: p q p q p 0 j j < i N = { Inclusion chain notation; context gives i N and identity of 0 j < i 0 j < i Sj 4.3 Program Outline, Thus Far Thus we have the program outline, { N 0? { R : 0 i N S i ( j 0 j < i S j) Ghost: S N true Note that R reads: i is a Solution point in the region 0..N and every point before it in that region is not a Solution point. 4.4 Deleting a conjunct Looking at R : 0 i N S i ( j 0 j < i S j) The inclusion is the easiest to truthify and can be done so in two ways: Setting i to be 0 or setting it to be N. We choose the former the latter results in the dual linear search algorithm which begins searching from the top and proceeding down. Anyhow, setting R[i = 0] is 0 0 N S 0 ( j 0 j < 0 S j). The first and last cojuncts are immedately true exercise! Whereas the second needn t be true e.g., in the case S only has odd numbers as solution points.... Thus we take inv: 0 i N ( j 0 j < i S j) done: S i 4.5 Program Outline, Thus Far { N 0 i = 0 ; DO done??? OD { inv done; i.e., R
4 5 Bound Function If we could ensure the loop terminates, then we would have inv done; i.e., R. So let us bound the number of possible iterations. Within the loop we have that N - i is a non-negative integer and so may serve as a bound function. Indeed, 5.1 Decreasing The Bound inv done = { Definitions 0 i N ( j 0 j < i Sj) Si { Inclusion chain notation and weakening i N { Arihtmetic 0 N i If we can decrease the bound function, then we re closer to termination. As such an increase in i results in a decrease in N i. So we pick the simplest possible increase: i = i Invariant Maintenance However, we must ensure that our increase does not break the invariant; otherwise after the loop we may not have inv done! To that end, we need to ensure {inv done i = i + 1 {inv. By the definition of the Hoare Triple and the WP assignment rule, it suffices to assume inv done and show inv[i = i + 1]. As a separation of concerns, we prove the conjuncts one at a time: We begin with the more difficult of the two: j 0 j < i + 1 Sj = { Split-off term the only obvious thing to do ( j 0 j < i Sj) Si = { The first conjunct is assumed in inv! true Si = { The second conjunct is just done! true true = { Idempotency of true Next the simpler conjunct, 0 i + 1 N = { Inclusion chain notation 0 i + 1 i + 1 N { Order theory 0 i i + 1 N = { The first conjunct is assumed in inv! true i + 1 N = { -identity and order theory i < N = { It s not at all clear how to proceed, so let s suppose that i < N were not and seek to find a contradiction. That is, we shall show i < N false which is tantamount to our goal, i < N, since this is a variation of double negation: p p false. Let us calculate, i < N = { Order negation N i = { The assumption inv along with -identeity. i N N i { Antisymmetry i = N { Leibniz Si SN = { Assumption done and fictious value SN false true = { False is not true; formally: Identity of. false We have thus obtained our desired contradiction and i < N must be true. true Alternatively, one can prove i < N by instantiating the second conjunct of inv[i := i + 1], which we leave as a fun exercise.
5 7 Conclusion Since the candidate loop body, i = i + 1, preserves the invariant, we have concluded programming and thus have obtained the correct-by-construction code: { N 0 i = 0 { inv : 0 i N ( j 0 j < i S j) bf : N - i ; DO (S i) i = i + 1 OD { inv (S i); i.e., i = ( j : 0..N S i) Ghost: S N true 8 Frama-C Let us calm our conscious by having an external tool ensure our development did not go awry: /*@ requires 0 <= N && assigns ensures 0 <= \result <= ensures \forall integer j; 0 <= j < int LinearSearch(const int N, const bool* S) { ==> S[j]!= true; // Extend S to be true at N. #define SS(x) (x == N? true : S[x]) int i = 0; /*@ loop invariant InRange: 0 <= i <= loop invariant NoSolutionThusFar: \forall integer j; 0 <= j < loop assigns loop variant N-i; */ while(! SS(i) ) i++; ==> SS(j)!= true; return i; More fully, // -*- compile-command: "NAME=16_LinearSearch ; gcc -w $NAME.c -o $NAME.exe ;./$NAME.exe ; sleep 3s" #include <stdio.h> #include <stdbool.h> #include "GCL.h" // // To use type agnostic PrintArray(). // frama-c-gui -wp 16_LinearSearch.c //////////////////////////////////////////////////////////////////////////////////// // Return the location of 55 in the given array S if it is there; // otherwise return the length of the array. /*@ requires 0 <= N && assigns ensures 0 <= \result <= int LinearSearch_0(const int N, const int* S) { //@ ghost S[N] = 55; int i = 0; /*@ loop invariant 0 <= i <= loop invariant \forall integer j; 0 <= j < loop assigns loop variant N-i; */ while( 55!= S[i] ) i++; ==> 55!= S[j]; return i;
6 /* Even though the assignment to S[N] is not visible to the compiler, * it is an assignment to a memory location that might be accessed elsewhere * by another ghost clause. The ghost variables are like any other variables. * * We may omit the assigns clause if we like since the const qualifiers * ensure that we are not modifying the given parameters. * **/ // What will happen if you _actually_ try to execute this algorithm when 55 S? // Frama-C gives only green... //////////////////////////////////////////////////////////////////////////////////// // Find the smallest solution to S : 0..N-1 B, if it exists, otherwise return N. // Obtain the result by inspecting the S -elements from 0 onward until a solution is found, if any. // /*@ requires 0 <= N && assigns ensures 0 <= \result <= ensures \forall integer j; 0 <= j < \result ==> S[j]!= int LinearSearch(const int N, const bool* S) { // Extend S to be true at N. #define SS(x) (x == N? true : S[x]) int i = 0; /*@ loop invariant InRange: 0 <= i <= loop invariant NoSolutionThusFar: \forall integer j; 0 <= j < loop assigns loop variant N-i; */ while(! SS(i) ) i++; ==> SS(j)!= true; return i; /* Note we do not need the S[N] = true; since our logic uses SS. * Were our logic to use S, then need the ghost. **/ //////////////////////////////////////////////////////////////////////////////////// // P is an Boolean expression possibly involving i. // #define PredicateToArray(A, N, P) \ for(int i = 0; i!= N; i++) A[i] = P; int main() { #define N 26 bool S[N] = {0; // S[i] = i is a positive multiple of 3 and 5 // PredicateToArray(S, N, 0 < i && i % 3 == 0 && i % 5 == 0); // S[i] = i is odd and greater than 7 PredicateToArray(S, N, 7 < i && i % 2 == 1); // S[i] = i 2 = -1 ; i.e., the integer i squared is negative; which is impossible. // PredicateToArray(S, N, i * i == -1); PrintArray(S, N); int location = LinearSearch(N, S); // int location = LinearSearch_0(N, S); // Segmentation fault, my old friend. if (location == N) printf("\ns has no solutions!"); else printf("\ns[ %d ] is a solution to the problem!", location); printf("\nbye!\n"); return 0;
[Ch 6] Set Theory. 1. Basic Concepts and Definitions. 400 lecture note #4. 1) Basics
400 lecture note #4 [Ch 6] Set Theory 1. Basic Concepts and Definitions 1) Basics Element: ; A is a set consisting of elements x which is in a/another set S such that P(x) is true. Empty set: notated {
More informationHarvard School of Engineering and Applied Sciences CS 152: Programming Languages
Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Lecture 19 Tuesday, April 3, 2018 1 Introduction to axiomatic semantics The idea in axiomatic semantics is to give specifications
More informationCOMP SCI 3EA3 Specifications and Correctness Duration of Examination: 50 minutes
Best of luck! McMaster University Department of Computing and Software Musa Al-hassy CONTENTS CompSci 3EA3 January 30, 2018 iday Class COMP SCI 3EA3 Specifications and Correctness Duration of Examination:
More informationCantor s Diagonal Argument for Different Levels of Infinity
JANUARY 2015 1 Cantor s Diagonal Argument for Different Levels of Infinity Michael J. Neely University of Southern California http://www-bcf.usc.edu/ mjneely Abstract These notes develop the classic Cantor
More informationReview: Hoare Logic Rules
Review: Hoare Logic Rules wp(x := E, P) = [E/x] P wp(s;t, Q) = wp(s, wp(t, Q)) wp(if B then S else T, Q) = B wp(s,q) && B wp(t,q) Proving loops correct First consider partial correctness The loop may not
More informationOutline. Introduction. 2 Proof of Correctness. 3 Final Notes. Precondition P 1 : Inputs include
Outline Computer Science 331 Correctness of Algorithms Mike Jacobson Department of Computer Science University of Calgary Lectures #2-4 1 What is a? Applications 2 Recursive Algorithms 3 Final Notes Additional
More information3 No-Wait Job Shops with Variable Processing Times
3 No-Wait Job Shops with Variable Processing Times In this chapter we assume that, on top of the classical no-wait job shop setting, we are given a set of processing times for each operation. We may select
More informationMath 302 Introduction to Proofs via Number Theory. Robert Jewett (with small modifications by B. Ćurgus)
Math 30 Introduction to Proofs via Number Theory Robert Jewett (with small modifications by B. Ćurgus) March 30, 009 Contents 1 The Integers 3 1.1 Axioms of Z...................................... 3 1.
More informationHow invariants help writing loops Author: Sander Kooijmans Document version: 1.0
How invariants help writing loops Author: Sander Kooijmans Document version: 1.0 Why this document? Did you ever feel frustrated because of a nasty bug in your code? Did you spend hours looking at the
More informationSemantics via Syntax. f (4) = if define f (x) =2 x + 55.
1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)
More informationAn Annotated Language
Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of
More informationELEMENTARY NUMBER THEORY AND METHODS OF PROOF
CHAPTER 4 ELEMENTARY NUMBER THEORY AND METHODS OF PROOF Copyright Cengage Learning. All rights reserved. SECTION 4.6 Indirect Argument: Contradiction and Contraposition Copyright Cengage Learning. All
More informationFun facts about recursion
Outline examples of recursion principles of recursion review: recursive linked list methods binary search more examples of recursion problem solving using recursion 1 Fun facts about recursion every loop
More informationSubset sum problem and dynamic programming
Lecture Notes: Dynamic programming We will discuss the subset sum problem (introduced last time), and introduce the main idea of dynamic programming. We illustrate it further using a variant of the so-called
More information6. Hoare Logic and Weakest Preconditions
6. Hoare Logic and Weakest Preconditions Program Verification ETH Zurich, Spring Semester 07 Alexander J. Summers 30 Program Correctness There are many notions of correctness properties for a given program
More informationSoftwaretechnik. Program verification. Software Engineering Albert-Ludwigs-University Freiburg. June 30, 2011
Softwaretechnik Program verification Software Engineering Albert-Ludwigs-University Freiburg June 30, 2011 (Software Engineering) Softwaretechnik June 30, 2011 1 / 28 Road Map Program verification Automatic
More informationHoare Logic: Proving Programs Correct
Hoare Logic: Proving Programs Correct 17-654/17-765 Analysis of Software Artifacts Jonathan Aldrich Reading: C.A.R. Hoare, An Axiomatic Basis for Computer Programming Some presentation ideas from a lecture
More information2.8 Universal Turing Machines and the Halting Problem
2.8 Universal Turing Machines and the Halting Problem Through the hierarchy of Slide 74 we indirectly get a sense that Turing Machines are at least as computationally powerful as any other known model
More informationCS2104 Prog. Lang. Concepts
CS2104 Prog. Lang. Concepts Operational Semantics Abhik Roychoudhury Department of Computer Science National University of Singapore Organization An imperative language IMP Formalizing the syntax of IMP
More informationSection 2.2: Introduction to the Logic of Quantified Statements
Section 2.2: Introduction to the Logic of Quantified Statements In this section, we shall continue to examine some of the fundamentals of predicate calculus. Specifically, we shall look at the negations
More informationCSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter 11 p. 1/38
CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter 11 p. 1/38 CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science
More informationInduction and Semantics in Dafny
15-414 Lecture 11 1 Instructor: Matt Fredrikson Induction and Semantics in Dafny TA: Ryan Wagner Encoding the syntax of Imp Recall the abstract syntax of Imp: a AExp ::= n Z x Var a 1 + a 2 b BExp ::=
More information6.001 Notes: Section 4.1
6.001 Notes: Section 4.1 Slide 4.1.1 In this lecture, we are going to take a careful look at the kinds of procedures we can build. We will first go back to look very carefully at the substitution model,
More informationMA651 Topology. Lecture 4. Topological spaces 2
MA651 Topology. Lecture 4. Topological spaces 2 This text is based on the following books: Linear Algebra and Analysis by Marc Zamansky Topology by James Dugundgji Fundamental concepts of topology by Peter
More informationFormal Methods. CITS5501 Software Testing and Quality Assurance
Formal Methods CITS5501 Software Testing and Quality Assurance Pressman, R. Software Engineering: A Practitioner s Approach. Chapter 28. McGraw-Hill, 2005 The Science of Programming, David Gries, 1981
More informationCSC 501 Semantics of Programming Languages
CSC 501 Semantics of Programming Languages Subtitle: An Introduction to Formal Methods. Instructor: Dr. Lutz Hamel Email: hamel@cs.uri.edu Office: Tyler, Rm 251 Books There are no required books in this
More informationCardinality of Sets MAT231. Fall Transition to Higher Mathematics. MAT231 (Transition to Higher Math) Cardinality of Sets Fall / 15
Cardinality of Sets MAT Transition to Higher Mathematics Fall 0 MAT (Transition to Higher Math) Cardinality of Sets Fall 0 / Outline Sets with Equal Cardinality Countable and Uncountable Sets MAT (Transition
More information15 212: Principles of Programming. Some Notes on Induction
5 22: Principles of Programming Some Notes on Induction Michael Erdmann Spring 20 These notes provide a brief introduction to induction for proving properties of ML programs. We assume that the reader
More informationA proof-producing CSP solver: A proof supplement
A proof-producing CSP solver: A proof supplement Report IE/IS-2010-02 Michael Veksler Ofer Strichman mveksler@tx.technion.ac.il ofers@ie.technion.ac.il Technion Institute of Technology April 12, 2010 Abstract
More informationTreewidth and graph minors
Treewidth and graph minors Lectures 9 and 10, December 29, 2011, January 5, 2012 We shall touch upon the theory of Graph Minors by Robertson and Seymour. This theory gives a very general condition under
More informationLecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning
Lecture 1 Contracts 15-122: Principles of Imperative Computation (Fall 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,
More informationHandout 9: Imperative Programs and State
06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative
More informationModule 11. Directed Graphs. Contents
Module 11 Directed Graphs Contents 11.1 Basic concepts......................... 256 Underlying graph of a digraph................ 257 Out-degrees and in-degrees.................. 258 Isomorphism..........................
More information== is a decent equivalence
Table of standard equiences 30/57 372 TABLES FOR PART I Propositional Logic Lecture 2 (Chapter 7) September 9, 2016 Equiences for connectives Commutativity: Associativity: P Q == Q P, (P Q) R == P (Q R),
More informationMutable References. Chapter 1
Chapter 1 Mutable References In the (typed or untyped) λ-calculus, or in pure functional languages, a variable is immutable in that once bound to a value as the result of a substitution, its contents never
More informationAXIOMS OF AN IMPERATIVE LANGUAGE PARTIAL CORRECTNESS WEAK AND STRONG CONDITIONS. THE AXIOM FOR nop
AXIOMS OF AN IMPERATIVE LANGUAGE We will use the same language, with the same abstract syntax that we used for operational semantics. However, we will only be concerned with the commands, since the language
More informationFundamental mathematical techniques reviewed: Mathematical induction Recursion. Typically taught in courses such as Calculus and Discrete Mathematics.
Fundamental mathematical techniques reviewed: Mathematical induction Recursion Typically taught in courses such as Calculus and Discrete Mathematics. Techniques introduced: Divide-and-Conquer Algorithms
More informationPropositional Logic. Part I
Part I Propositional Logic 1 Classical Logic and the Material Conditional 1.1 Introduction 1.1.1 The first purpose of this chapter is to review classical propositional logic, including semantic tableaux.
More informationSymbolic Execution and Proof of Properties
Chapter 7 Symbolic Execution and Proof of Properties Symbolic execution builds predicates that characterize the conditions under which execution paths can be taken and the effect of the execution on program
More informationEDAA40 At home exercises 1
EDAA40 At home exercises 1 1. Given, with as always the natural numbers starting at 1, let us define the following sets (with iff ): Give the number of elements in these sets as follows: 1. 23 2. 6 3.
More informationDiscrete Mathematics Lecture 4. Harper Langston New York University
Discrete Mathematics Lecture 4 Harper Langston New York University Sequences Sequence is a set of (usually infinite number of) ordered elements: a 1, a 2,, a n, Each individual element a k is called a
More informationSoftwaretechnik. Program verification. Albert-Ludwigs-Universität Freiburg. June 28, Softwaretechnik June 28, / 24
Softwaretechnik Program verification Albert-Ludwigs-Universität Freiburg June 28, 2012 Softwaretechnik June 28, 2012 1 / 24 Road Map Program verification Automatic program verification Programs with loops
More informationChapter 3. Set Theory. 3.1 What is a Set?
Chapter 3 Set Theory 3.1 What is a Set? A set is a well-defined collection of objects called elements or members of the set. Here, well-defined means accurately and unambiguously stated or described. Any
More informationSmall Survey on Perfect Graphs
Small Survey on Perfect Graphs Michele Alberti ENS Lyon December 8, 2010 Abstract This is a small survey on the exciting world of Perfect Graphs. We will see when a graph is perfect and which are families
More informationLecture 18 Restoring Invariants
Lecture 18 Restoring Invariants 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In this lecture we will implement heaps and operations on them. The theme of this lecture is reasoning
More information3.7 Denotational Semantics
3.7 Denotational Semantics Denotational semantics, also known as fixed-point semantics, associates to each programming language construct a well-defined and rigorously understood mathematical object. These
More informationCS 3EA3: Optional Assignment - A Survey of Binary Search
CS 3EA3: Optional Assignment - A Survey of Binary Search James Zhu 001317457 26 April 2017 1 Abstract This paper presents a general survey of the functional, syntactic and logistical aspects of two variants
More informationPaths, Flowers and Vertex Cover
Paths, Flowers and Vertex Cover Venkatesh Raman M. S. Ramanujan Saket Saurabh Abstract It is well known that in a bipartite (and more generally in a König) graph, the size of the minimum vertex cover is
More informationHardware versus software
Logic 1 Hardware versus software 2 In hardware such as chip design or architecture, designs are usually proven to be correct using proof tools In software, a program is very rarely proved correct Why?
More informationAbstract Interpretation
Abstract Interpretation Ranjit Jhala, UC San Diego April 22, 2013 Fundamental Challenge of Program Analysis How to infer (loop) invariants? Fundamental Challenge of Program Analysis Key issue for any analysis
More informationLecture notes on the simplex method September We will present an algorithm to solve linear programs of the form. maximize.
Cornell University, Fall 2017 CS 6820: Algorithms Lecture notes on the simplex method September 2017 1 The Simplex Method We will present an algorithm to solve linear programs of the form maximize subject
More informationLecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning
Lecture 1 Contracts 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,
More informationDerivatives and Graphs of Functions
Derivatives and Graphs of Functions September 8, 2014 2.2 Second Derivatives, Concavity, and Graphs In the previous section, we discussed how our derivatives can be used to obtain useful information about
More informationDisjunctive and Conjunctive Normal Forms in Fuzzy Logic
Disjunctive and Conjunctive Normal Forms in Fuzzy Logic K. Maes, B. De Baets and J. Fodor 2 Department of Applied Mathematics, Biometrics and Process Control Ghent University, Coupure links 653, B-9 Gent,
More informationDoes this program exist? Limits of computability. Does this program exist? A helper function. For example, if the string program is
Does this program exist? For example, if the string program is Limits of computability public void abc(string s) { if( s == "abc" ) { print "Hello world!"; } else { print "Whatever"; }} then test called
More informationLecture Notes: Hoare Logic
Lecture Notes: Hoare Logic 17-654/17-754: Analysis of Software Artifacts Jonathan Aldrich (jonathan.aldrich@cs.cmu.edu) Lecture 3 1 Hoare Logic The goal of Hoare logic is to provide a formal system for
More informationELEMENTARY NUMBER THEORY AND METHODS OF PROOF
CHAPTER 4 ELEMENTARY NUMBER THEORY AND METHODS OF PROOF Copyright Cengage Learning. All rights reserved. SECTION 4.3 Direct Proof and Counterexample III: Divisibility Copyright Cengage Learning. All rights
More information9.1 Cook-Levin Theorem
CS787: Advanced Algorithms Scribe: Shijin Kong and David Malec Lecturer: Shuchi Chawla Topic: NP-Completeness, Approximation Algorithms Date: 10/1/2007 As we ve already seen in the preceding lecture, two
More information1 Introduction. 3 Syntax
CS 6110 S18 Lecture 19 Typed λ-calculus 1 Introduction Type checking is a lightweight technique for proving simple properties of programs. Unlike theorem-proving techniques based on axiomatic semantics,
More informationAlgebra of Sets. Aditya Ghosh. April 6, 2018 It is recommended that while reading it, sit with a pen and a paper.
Algebra of Sets Aditya Ghosh April 6, 2018 It is recommended that while reading it, sit with a pen and a paper. 1 The Basics This article is only about the algebra of sets, and does not deal with the foundations
More informationReasoning About Imperative Programs. COS 441 Slides 10
Reasoning About Imperative Programs COS 441 Slides 10 The last few weeks Agenda reasoning about functional programming It s very simple and very uniform: substitution of equal expressions for equal expressions
More informationIntroduction to dependent types in Coq
October 24, 2008 basic use of the Coq system In Coq, you can play with simple values and functions. The basic command is called Check, to verify if an expression is well-formed and learn what is its type.
More informationELEMENTARY NUMBER THEORY AND METHODS OF PROOF
CHAPTER 4 ELEMENTARY NUMBER THEORY AND METHODS OF PROOF Copyright Cengage Learning. All rights reserved. SECTION 4.3 Direct Proof and Counterexample III: Divisibility Copyright Cengage Learning. All rights
More informationInterleaving Schemes on Circulant Graphs with Two Offsets
Interleaving Schemes on Circulant raphs with Two Offsets Aleksandrs Slivkins Department of Computer Science Cornell University Ithaca, NY 14853 slivkins@cs.cornell.edu Jehoshua Bruck Department of Electrical
More informationOn Meaning Preservation of a Calculus of Records
On Meaning Preservation of a Calculus of Records Emily Christiansen and Elena Machkasova Computer Science Discipline University of Minnesota, Morris Morris, MN 56267 chri1101, elenam@morris.umn.edu Abstract
More informationAdvanced Algorithms Class Notes for Monday, October 23, 2012 Min Ye, Mingfu Shao, and Bernard Moret
Advanced Algorithms Class Notes for Monday, October 23, 2012 Min Ye, Mingfu Shao, and Bernard Moret Greedy Algorithms (continued) The best known application where the greedy algorithm is optimal is surely
More informationScan and its Uses. 1 Scan. 1.1 Contraction CSE341T/CSE549T 09/17/2014. Lecture 8
CSE341T/CSE549T 09/17/2014 Lecture 8 Scan and its Uses 1 Scan Today, we start by learning a very useful primitive. First, lets start by thinking about what other primitives we have learned so far? The
More informationBinary Search. Roland Backhouse February 5th, 2001
1 Binary Search Roland Backhouse February 5th, 2001 Outline 2 An implementation in Java of the card-searching algorithm is presented. Issues concerning the correctness of the implementation are raised
More informationMathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras. Lecture - 9 Normal Forms
Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras Lecture - 9 Normal Forms In the last class we have seen some consequences and some equivalences,
More informationOutline. Definition. 2 Height-Balance. 3 Searches. 4 Rotations. 5 Insertion. 6 Deletions. 7 Reference. 1 Every node is either red or black.
Outline 1 Definition Computer Science 331 Red-Black rees Mike Jacobson Department of Computer Science University of Calgary Lectures #20-22 2 Height-Balance 3 Searches 4 Rotations 5 s: Main Case 6 Partial
More informationSafe Stratified Datalog With Integer Order Does not Have Syntax
Safe Stratified Datalog With Integer Order Does not Have Syntax Alexei P. Stolboushkin Department of Mathematics UCLA Los Angeles, CA 90024-1555 aps@math.ucla.edu Michael A. Taitslin Department of Computer
More informationSymmetric Product Graphs
Rochester Institute of Technology RIT Scholar Works Theses Thesis/Dissertation Collections 5-20-2015 Symmetric Product Graphs Evan Witz Follow this and additional works at: http://scholarworks.rit.edu/theses
More informationCardinality of Sets. Washington University Math Circle 10/30/2016
Cardinality of Sets Washington University Math Circle 0/0/06 The cardinality of a finite set A is just the number of elements of A, denoted by A. For example, A = {a, b, c, d}, B = {n Z : n } = {,,, 0,,,
More information2.2 Set Operations. Introduction DEFINITION 1. EXAMPLE 1 The union of the sets {1, 3, 5} and {1, 2, 3} is the set {1, 2, 3, 5}; that is, EXAMPLE 2
2.2 Set Operations 127 2.2 Set Operations Introduction Two, or more, sets can be combined in many different ways. For instance, starting with the set of mathematics majors at your school and the set of
More informationProgrammer s spring SPECIFICATION FIRST ATTEMPT. int search( int [] a, int x) { // Pre: Sorted(a) // Post: a[r]= x } Weaken.
Course 141 Reasoning about Programs Binary Chop This is a very useful algorithm, but one that is difficult to get right first time. It illustrates the problem solving method of Divide and Conquer: given
More information8 Matroid Intersection
8 Matroid Intersection 8.1 Definition and examples 8.2 Matroid Intersection Algorithm 8.1 Definitions Given two matroids M 1 = (X, I 1 ) and M 2 = (X, I 2 ) on the same set X, their intersection is M 1
More informationLecture 1. 1 Notation
Lecture 1 (The material on mathematical logic is covered in the textbook starting with Chapter 5; however, for the first few lectures, I will be providing some required background topics and will not be
More informationlogic with quantifiers (informally)
EDAA40 Discrete Structures in Computer Science 8: Quantificational logic Jörn W. Janneck, Dept. of Computer Science, Lund University logic with quantifiers (informally) Given a logical formula that depends
More informationOutline. Computer Science 331. Three Classical Algorithms. The Sorting Problem. Classical Sorting Algorithms. Mike Jacobson. Description Analysis
Outline Computer Science 331 Classical Sorting Algorithms Mike Jacobson Department of Computer Science University of Calgary Lecture #22 1 Introduction 2 3 4 5 Comparisons Mike Jacobson (University of
More informationGraph Theory Questions from Past Papers
Graph Theory Questions from Past Papers Bilkent University, Laurence Barker, 19 October 2017 Do not forget to justify your answers in terms which could be understood by people who know the background theory
More informationIncremental Proof Development in Dafny
15-414 Lecture 17 1 Instructor: Matt Fredrikson Incremental Proof Development in Dafny TA: Ryan Wagner In this discussion, we ll see in more detail how to go about proving the total correctness of imperative
More informationCSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Sections p.
CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Sections 10.1-10.3 p. 1/106 CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer
More informationOn the Structure and Sizes of Infinitely Large Sets of Numbers
1 On the Structure and Sizes of Infinitely Large Sets of Numbers Introduction: This paper introduces The Axiom for the existence of finite integers. The Axiom shows that sets of integers having only finite
More informationDr. Amotz Bar-Noy s Compendium of Algorithms Problems. Problems, Hints, and Solutions
Dr. Amotz Bar-Noy s Compendium of Algorithms Problems Problems, Hints, and Solutions Chapter 1 Searching and Sorting Problems 1 1.1 Array with One Missing 1.1.1 Problem Let A = A[1],..., A[n] be an array
More information(a) (4 pts) Prove that if a and b are rational, then ab is rational. Since a and b are rational they can be written as the ratio of integers a 1
CS 70 Discrete Mathematics for CS Fall 2000 Wagner MT1 Sol Solutions to Midterm 1 1. (16 pts.) Theorems and proofs (a) (4 pts) Prove that if a and b are rational, then ab is rational. Since a and b are
More informationIncompatibility Dimensions and Integration of Atomic Commit Protocols
The International Arab Journal of Information Technology, Vol. 5, No. 4, October 2008 381 Incompatibility Dimensions and Integration of Atomic Commit Protocols Yousef Al-Houmaily Department of Computer
More informationExample of a Demonstration that a Problem is NP-Complete by reduction from CNF-SAT
20170926 CNF-SAT: CNF-SAT is a problem in NP, defined as follows: Let E be a Boolean expression with m clauses and n literals (literals = variables, possibly negated), in which - each clause contains only
More informationP1 Engineering Computation
1EC 2001 1 / 1 P1 Engineering Computation David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/1ec Hilary 2001 1EC 2001 2 / 1 Algorithms: Design, Constructs and Correctness 1EC 2001
More informationMa/CS 6b Class 26: Art Galleries and Politicians
Ma/CS 6b Class 26: Art Galleries and Politicians By Adam Sheffer The Art Gallery Problem Problem. We wish to place security cameras at a gallery, such that they cover it completely. Every camera can cover
More informationMatching Algorithms. Proof. If a bipartite graph has a perfect matching, then it is easy to see that the right hand side is a necessary condition.
18.433 Combinatorial Optimization Matching Algorithms September 9,14,16 Lecturer: Santosh Vempala Given a graph G = (V, E), a matching M is a set of edges with the property that no two of the edges have
More informationFall Lecture 3 September 4. Stephen Brookes
15-150 Fall 2018 Lecture 3 September 4 Stephen Brookes Today A brief remark about equality types Using patterns Specifying what a function does equality in ML e1 = e2 Only for expressions whose type is
More informationCS 6110 S14 Lecture 38 Abstract Interpretation 30 April 2014
CS 6110 S14 Lecture 38 Abstract Interpretation 30 April 2014 1 Introduction to Abstract Interpretation At this point in the course, we have looked at several aspects of programming languages: operational
More information(Refer Slide Time: 00:18)
Programming, Data Structures and Algorithms Prof. N. S. Narayanaswamy Department of Computer Science and Engineering Indian Institute of Technology, Madras Module 11 Lecture 58 Problem: single source shortest
More information(Refer Slide Time: 1:27)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 1 Introduction to Data Structures and Algorithms Welcome to data
More informationTaibah University College of Computer Science & Engineering Course Title: Discrete Mathematics Code: CS 103. Chapter 2. Sets
Taibah University College of Computer Science & Engineering Course Title: Discrete Mathematics Code: CS 103 Chapter 2 Sets Slides are adopted from Discrete Mathematics and It's Applications Kenneth H.
More informationDenotational semantics
1 Denotational semantics 2 What we're doing today We're looking at how to reason about the effect of a program by mapping it into mathematical objects Specifically, answering the question which function
More information15 150: Principles of Functional Programming Some Notes on Regular Expression Matching
15 150: Principles of Functional Programming Some Notes on Regular Expression Matching Michael Erdmann Spring 2018 1 Introduction Regular expression matching is a very useful technique for describing commonly-occurring
More informationSolutions to Homework 10
CS/Math 240: Intro to Discrete Math 5/3/20 Instructor: Dieter van Melkebeek Solutions to Homework 0 Problem There were five different languages in Problem 4 of Homework 9. The Language D 0 Recall that
More informationThe Satisfiability Problem [HMU06,Chp.10b] Satisfiability (SAT) Problem Cook s Theorem: An NP-Complete Problem Restricted SAT: CSAT, k-sat, 3SAT
The Satisfiability Problem [HMU06,Chp.10b] Satisfiability (SAT) Problem Cook s Theorem: An NP-Complete Problem Restricted SAT: CSAT, k-sat, 3SAT 1 Satisfiability (SAT) Problem 2 Boolean Expressions Boolean,
More informationCSE 215: Foundations of Computer Science Recitation Exercises Set #4 Stony Brook University. Name: ID#: Section #: Score: / 4
CSE 215: Foundations of Computer Science Recitation Exercises Set #4 Stony Brook University Name: ID#: Section #: Score: / 4 Unit 7: Direct Proof Introduction 1. The statement below is true. Rewrite the
More information