A simple algorithm with no simple verication
|
|
|
- Meagan Caldwell
- 10 years ago
- Views:
Transcription
1 A simple algorithm with no simple verication Laszlo Csirmaz Central European University Abstract The correctness of a simple sorting algorithm is resented, which algorithm is \evidently wrong" at the rst sight. It is conjectured that the algorithm has no straightforward, transparent verication. 1 Introduction Since the appearance of the fundamental work of Floyd, Naur, and Hoare [1, 3, 4], a wide variety of programs were proved to be correct. These programs were usually written by some more or less sophisticated idea in mind, and knowing the idea { i.e. how the program works {, with not too much eort, an experienced programmer can give a formal proof for the correctness (or at least for the partial correctness). In the majority of the cases the formal proof seems to be unnecessary, especially if it is made my hand, since the danger of overlooking some ne point in the proof is as big as overlooking something in the program. But there are algorithms which have no such a transparent central idea, and, so to speak, the work " incidentally." To show that they work as expected, a program verication method is unavoidable. In this paper we intend to introduce such a program, which was found in A student wrote a simple sorting program, and made a trivial mistake. But, in spite of the bug, the program worked well. Later several proofs have been found independently by K. Balog, H. Andreka and I. Nemeti, and the author. None of the proofs is simple, and by no means is straightforward. 2 The program Suppose we are given a natural number N 1, and two arrays, A and M with indices running from 1 to N. Initially, A contains distinct real numbers, and the content of M[k] is k for each 1 k N. The task is to write a program which rearranges the elements of M so that the relations A[M[1]] < A[M[2]] < < A[M[N]] 1
2 START qs... i := 0 i := i + 1 q1... i < N yes qh... no HALT - Figure 1: The sorting program j := i j := j + 1 q2... j N no yes A[M[i]] > A[j] no - yes M[i] $ M[j] hold. An Algol-60 representation of the program is as follows. begin integer i, j ; i := 0 ; for i := i + 1 while i < N do begin j := i ; for j := j + 1 while j N do if A[M[i]] > A[j] then exchange(m[i]; M[j]) end end. The procedure exchange exchanges the values of its parameters. The \bug" is obvious: the condition in the if statement should be A[M[i]] > A[M[j]]. We claim, however, that our program is correct: it arranges the array M as required. The ow-chart in 1 follows the program closely. From now on we use the ow-chart for reasoning about our program. First we make some trivial observations. The program contains two nested loops. In the outer loop the variable i runs from 1 to N 1, and for each value of i, j runs from i + 1 to N in the inner loop. In each iteration, A[M[i]] and A[j] are compared, and if the rst is the larger then the contents of M[i] and M[j] are exchanged. In table 1 we give snapshots of a sample run made at point q2 in the inner loop. Here we have N = 5, and in the third and fourth column the bold face numbers are A[M[i]] and A[j], they are to be compared next. We can see at once that it is a rare occasion when A[M[i]] is compared to A[M[j]] (i. e. when M[j] = j), and A[M[i]] is never compared to itself, i. e. M[j] 6= j. Furthermore, A[j] takes quite unexpected values comparing to A[M[j]], but A[j] and A[M[j]] are always on the same side of A[i]. If we were able to prove this, the correctness of the program would follow at one. We shall 2
3 i j A[M[:]] A[:] M[:] Table 1: Snapshots of a sample run with A = (3;5;2;1;4) see later that this is the case indeed, but it will only be a side result of out proof. 3 The assertions We assume that the reader is familiar with the so-called Floyd-Hoare partial correctness proof method [2, 5]. Following this, we choose four points, qs, qh, q1, and q2 in the ow-chart so that they separate the program into ve straightline paths: qs q1, q1 q2, q2 q2 through the heavy-line loop, q2 q1, nally q1 qh. We are going to assign assertions to these points so that each path is correct with respect to the assertions put at its start and and; moreover the assertion qs contains only our assumptions about the arrays A and M, and qh implies the nal requirement, i. e. that A is sorted. With qs and qh there is no problem. The input assertion qs states that N 1, the elements of A are distinct, and the M[k] = k r every integer 1 k N. To be a bit more formal, we write this assertion as N 1, (1) (8k N)M[k] = k, (2) A = AP and the elements of A are distinct; (3) When we write an assertion into several line, as we did there, it is the conjunct of the simple statements. In (2) the quantication (8k N) means \for all positive integer k such that k N." We shall make use of the similar quantications 3
4 (8k < N), (8i k N), etc. with meanings \for all positive integer k such that k < N," \for all positive integer k such that i k N," etc. The array AP is the initial version of A; we dene it in the input assertion qs so that we can refer it in other assertions. The output assertion qh is as follows. A = AP, (4) the set fm[1], :::, M[N]g is the same as f1;2;:::;ng, (5) (8k < N) A[M[k]] is the k-th (in order of magnitude) (6) in the set fa[1];:::;a[n]g. The rst conjunct states that the array A remains unchanged; the second means that M[1], :::, M[N] is a permutation of 1;2;:::;N; and in the third we claim that the index-array M contains the indices of A in the proper order, i.e. all the relations A[M[1]] < A[M[2]] < < A[M[N]] hold. To make a long line short, we denote the set fm[a];:::;m[b 1];M[b]g by M[a : b], and similarly for A. With this notation, the conjuncts (4){(6) can be written into the more compact form A = AP, (7) M[1 : N] = f1;2;:::;ng, (8) (8k < N)A[M[k]] is the k-th in A[1 : N]. (9) Next we must choose the assertion q1 and q2 so that the above mentioned paths between the consecutive assertions be correct. Let us go backward. We have to derive qh from q1 and from the additional assumption \not i < N." It can evidently be done if q1 contains the conjuncts A = AP and the elements of A are distinct, (10) M[1 : N] = f1;2;:::;ng, (11) 1 i N, (12) (8k < i)a[m[k]] is the k-th in A[1 : N]. (13) We include (12) here in order to ensure that (13) is meaningful, and to give i = n from the assumption \not i < N." Now from (1){(3) we can derive (10){(13) with i = 1, this proves the partial correctness of the pat qs q1. Note that in this case (13) become (8k < 1)A[M[k]] is the k-th in A[1 : N]. (14) There is no positive integer less than 1, so (14) hods vacuously. The next backward step is to choose an appropriate assertion for q2. This must be true when the inner loop is entered (via q1(, must remain true whenever 4
5 the control passes around the loop and returns, and must be string enough to imply the assertion (10){(13) for the next value of i. With this last requirement in mind, we try the following conjunct for q2: A[M[i]] is just the i-th element in the set A[1 : j 1]. (15) Then M[i] must be an index less than j, so we also put M[i] < j (16) Both (15) and (16) are armed by the snapshots. Now let us see what happens with the conjunct (15) if we follow the heavy line and arrive back to q2. If A[M[i]] < A[j] then, from (15), it follows that A[M[i]] is also the i-th element in the set A[1 : j]. But what can we say if A[M[i]] > A[j] In this case the values of M[i] and M[j] are exchanged, so in the next iteration (15) will be valid only if A[M[j]] is the i-th element in A[1 : j] (17) holds at present. (17) can be derived easily from the (inductive) conjunct (8j k N)A[M[k]] is the i-th element in A[1 : k], (18) which we would like to attach to q2. But, alas, (18) is not always true. For example, using Table 1 of snapshots for the values i = 1, j = 2, k = 5, (18) claims A[M[5]] = 4 is the least element in f3;5;2;1;4g; which is false. So we have to rene (18). Examine a bit closely the sentence (17). We know from the inductive hypothesis (15) that A[M[i]] is the i-th element in the set A[1 : j 1], and assume that A[M[i]] > A[j]. At the same time we need that A[M[j]] is the i-th element in A[1 : j]. Since we know something about A[j], and want to derive something about A[M[j]], it seems quite natural to split the investigation into two cases depending on whether M[j] = j or not. First, if M[j] = j and A[M[i]] > A[j] then A[M[j]] = A[j] is the i-th element in A[1 : j] just in case there are at least (i 1) elements less than A[j] in A[1 : j]. No try to attach it as a conjunct to q2: (8j k N) if M[k] = k then there are (19) at least i 1 elements less than A[k] in the set A[1 : k]. After a short glance at the snapshots, we see that it is a hopeful candidate. Second, if M[j] 6= j then A[M[j]] is an element of the set A[1 : j], i. e. M[j] < j. So we put at once (8j k N) M[k] k. (20) In the lack of any better idea, we use (18) in this case, the snapshots do not contradict to this conjunct anymore: (8j k N) if M[k] < k then (21) A[M[k]] is the i-th in the set A[1 : k]. 5
6 No let us see were we are. From (15) we can derive (13) with i + 1 instead of i, and from (19){(21) we can derive (15) for the next iteration of the inner loop. Since we want (19){(21) be valid whenever the control enters the inner loop, we put into q1 the conjuncts (8i k N) if M[k] = k then (22) there are at least i 1 elements in A[1 : k] less than A[k]; (8i k N) M[k] k, (23) (8i k N) if M[k] < k then A[M[k]] is the i-th in A[1 : k]. (24) When the control rst reaches q1 then i = 1 and, by the assertion we made at qs, M[k] = k for every 1 k N. Therefore (22){(24) evidently hold. But how can we ensure that they would hold whenever the control returns from the inner loop There is no hope: we have to put the new conjuncts into q2, the state that as j goes higher, the initial parts in (22){(24) become valid with the next value of i. So we put (8i < k < j) if M[k] = k then (25) there are at least i elements less than A[k] in A[1 : k], (8i < k < j) M[k] k, (26) (8i < k < j) if M[k] < k then (27) A[M[k]] is the (i + 1)-st element in the set A[1 : k]. At this point we decide it is best to start another paragraph. 4 The proof We prove the correctness of our program in two stages. First we check that the program always terminates. This is fairly easy. The control passes through every box at most once for each possible value of the pair (i;j), therefor it reaches the HALT box before visiting 5N(N + 1) boxes altogether. Second, we prove the partial correctness with respect to the input and output assertions qs and qh dened previously. To do so, we collect and complete the disjuncts q1 and q2 we have found so far, and then check the partial correctness of the straight-line paths qs q1, q1 q2, q2 q2, q2 q1, and q1 qh in turn. The conjuncts of the assertion q1 are (10){(13) and (22){(24). For the sake of completeness, we collect them here: A = AP and the elements of A are distinct, (28) M[1 : N] = f1;2;:::;ng, (29) 1 i N, (30) (8k < i)a[m[k]] is the k-th in A[1 : N], (31) (8i k N) if M[k] = k then (32) there are at least i 1 elements in A[1 : k] less than A[k]; (8i k N) M[k] k, (33) 6
7 (8i k N) if M[k] < k then A[M[k]] is the i-th in A[1 : k]. (34) With this assertion at q1, as we have explained above, the paths qs q1 and q1 qh are correct. Indeed, when the control reaches q1 in the path qs q1, then i = 1, and from this and from (1){(3) then conjuncts follow easily. In the path q1 qh leading to the endpoint, (30) and the condition \not i < N" gives i = N, and then (7), (8), and (9) can be got from (28), (29), and (31), respectively. The assertion attached to q2 is the following twelve-line monster: A = AP and the elements of A are distinct, (35) M[1 : N] = f1;2;:::;ng, (36) 1 i < N, (37) (8k < i)a[m[k]] is the k-th element in A[1 : N], (38) (8i < k N) M[k] k, (39) i < j N + 1, (40) M[i] < j, (41) A[M[i]] is just the i-th element in A[1 : j 1], (42) (8j k N) if M[k] = k then (43) there are at least i 1 elements less than A[k] in A[1 : k], (8j k N) if M[k] < k then (44) A[M[k]] is the i-th element in A[1 : k], (8i < k < j) if M[k] = k then (45) there are at least i elements less than A[k] in A[1 : k], (8i < k < j) if M[k] < k then (46) A[M[k]] is the (i + 1)-st element in A[1 : k]. The conjuncts (35){(38) are (almost faithful) copies of the conjuncts (28){(31) of q1; they are saved and then given back to q1. In (39) we unify (20) and (26). (40) is necessary to ensure that when we leave the inner look then j = N + 1. The conjuncts (41){(46) were discussed in detail in the previous section. There are three further paths whose correctness need justication. The path q 1 q 2 When the control reaches the point q2 along from q1 then i < N and j = i + 1 hold as well. Therefore (35){(39) and (43){(44) are easy consequences of (28){ (32), and (33)-(34), respectively. (45) and (46) hold vacuously because there is no integer between i and i + 1. (40) is trivial, and by (32), M[i] < i + 1 = j, which proves (41). To only questionable conjunct is (42). (Observe that we did not bother to make (42) valid at entering the inner look.) But either M[i] < i, and then (34) says the A[M[i]] is the i-th element in A[1 : i], or M[i] = i. (By (32) the case M[i] > i cannot happen.) Since in this latter case (33) gives that there are at least (i 1) elements less than A[i] in the set A[1 : i], A[i] must be the i-th element. This proves (42). 7
8 The path q 2 q 1 When the control leaves the inner look, we have \not j < N," i. e. by (40), j = N + 1. Afterwards i is increased by 1, and then the control arrives at q1. Here the assertion (28){(34) must hold, and we show that this is the case indeed, keeping in mind that j = N + 1, and that the \new" i in (28){(32) is the same as the \old" i plus one in (35){(46). Now (28){(30), (32) and (33){(34) follow easily from (35){(37), (39) and (45){(46), respectively. (31) is contained in (38) except for the last value of k, when k equals to the \old" i, in which case (42) works. The path q 2 q 2 Suppose that the assertion (35){(46) holds at the point q2, and the control goes around the loop and arrives back to q2. We claim that the assertion remains valid. For conjuncts (35){(38), (40), and (43){(44) this is evidently true. When the control enters the look, then by (41) M[i] < j, and by (35), then elements of A are dierent. Therefore either A[M[i]] < A[j], or A[M[i]] > A[j], and there is no other case. We go ahead by handling these cases separately. Case A[M[i]] < A[j] Here (42) implies A[M[i]] is the i-th element in A[1 : j], (47) and, because the i-th element in A[1 : j] is less than A[j], there are at least i elements less than A[j] in A[1 : j]. (48) Now we claim that M[j] = j (49) If not, then M[j] < j (by (39)), and therefore (44) gives A[M[j]] is the i-th element in A[1 : j]. (50) Since the elements of A are dierent, (47) and (50) implies M = [i] = M[j], which is a contradiction. When the control arrives back to q2 then only the value of j has increased. So (39) and (41) trivially hold, and (47), (48), (49) show the validity of (42), (45), and (46), respectively. The completes our rst case. Case A[M[i]] > A[j] The conjunct (42) says that A[M[i]] is the i-th element in A[1 : j 1], therefore M[j] < j and A[M[i]] is the (i + 1)-st element in A[1 : j]. (51) The claim 8
9 A[M[j]] is the i-th element in A[1 : j] (52) follows from (42), (43), and from A[M[i]] > A[j] if M[j] = j, and form (44) if M[j] < j. On the other hand, (39) gives M[j] < j + 1. (53) As the control goes ahead, the values of M[i] and M[j] are exchanged, and then j is increased by 1. Therefore (51), (52), and (53) show the validity of (39){(45), (46), (42) and (41). This completes the proof of the correctness of the sorting algorithm. A bit more closely examination of (49), (51) and (52) gives that if A[M[i]] < A[j] then M[j] = j, (54) if A[M[i]] > A[j] then A[M[i]] > A[M[j]] always hold at point q2. And because A[M[j]] 6= A[j], this is equivalent to A[M[i]] > A[j] if and only if A[M[i]] > A[M[j]], (55) as we promised. 5 Conclusion We have seen the correctness of a rather simple sorting algorithm, which, at the rst sight, seemed to be wrong. The main invariant assertion mate at point q2 is rather dicult. Although it makes possible to prove the correctness, gives no insight into the essence of the algorithm, and gives no explanation why the program works. Of course, the requirement that A has only distinct elements, is unnecessary, it only makes the proof simpler. By complexity considerations, there are simple algorithms whose correctness can be proved only by hard and dicult way (comparing to the simplicity of the algorithm, see [6]), and we think that this algorithm belongs to this class. This claim may be wrong, but a more transparent proof would not be without interest. References [1] K. R. Apt, Ten years of Hoare's logic, a survey, ACM Trans. on Programming Languages and Systems 3 (1981) pp. 431{482 [2] J. W. debakker, Mathematical theory of program correctness Prentice-Hall, London, 1980 [3] R. W. Floyd, Assigning meaning to programs, in: Proc. ACM Symposioum in Applied Math 19 (1967) pp. 19{31 9
10 [4] C. A. R. Hoare, An axiomatic basis of computer programming, Comm. ACM 12 (1969) pp. 567{580 [5] Z. Manna, Mathematical Theory of Computation McGraw Hill, New York (1074) [6] J. Spencer, Short theorem with long proofs, Am. Math.Monthly 90 (1983) pp. 365{366 10
Why? A central concept in Computer Science. Algorithms are ubiquitous.
Analysis of Algorithms: A Brief Introduction Why? A central concept in Computer Science. Algorithms are ubiquitous. Using the Internet (sending email, transferring files, use of search engines, online
Is Sometime Ever Better Than Alway?
Is Sometime Ever Better Than Alway? DAVID GRIES Cornell University The "intermittent assertion" method for proving programs correct is explained and compared with the conventional method. Simple conventional
WHAT ARE MATHEMATICAL PROOFS AND WHY THEY ARE IMPORTANT?
WHAT ARE MATHEMATICAL PROOFS AND WHY THEY ARE IMPORTANT? introduction Many students seem to have trouble with the notion of a mathematical proof. People that come to a course like Math 216, who certainly
3. Mathematical Induction
3. MATHEMATICAL INDUCTION 83 3. Mathematical Induction 3.1. First Principle of Mathematical Induction. Let P (n) be a predicate with domain of discourse (over) the natural numbers N = {0, 1,,...}. If (1)
Handout #1: Mathematical Reasoning
Math 101 Rumbos Spring 2010 1 Handout #1: Mathematical Reasoning 1 Propositional Logic A proposition is a mathematical statement that it is either true or false; that is, a statement whose certainty or
The Trip Scheduling Problem
The Trip Scheduling Problem Claudia Archetti Department of Quantitative Methods, University of Brescia Contrada Santa Chiara 50, 25122 Brescia, Italy Martin Savelsbergh School of Industrial and Systems
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
WRITING PROOFS. Christopher Heil Georgia Institute of Technology
WRITING PROOFS Christopher Heil Georgia Institute of Technology A theorem is just a statement of fact A proof of the theorem is a logical explanation of why the theorem is true Many theorems have this
Chapter 1: Key Concepts of Programming and Software Engineering
Chapter 1: Key Concepts of Programming and Software Engineering Software Engineering Coding without a solution design increases debugging time - known fact! A team of programmers for a large software development
An example of a computable
An example of a computable absolutely normal number Verónica Becher Santiago Figueira Abstract The first example of an absolutely normal number was given by Sierpinski in 96, twenty years before the concept
CS 103X: Discrete Structures Homework Assignment 3 Solutions
CS 103X: Discrete Structures Homework Assignment 3 s Exercise 1 (20 points). On well-ordering and induction: (a) Prove the induction principle from the well-ordering principle. (b) Prove the well-ordering
Cycles in a Graph Whose Lengths Differ by One or Two
Cycles in a Graph Whose Lengths Differ by One or Two J. A. Bondy 1 and A. Vince 2 1 LABORATOIRE DE MATHÉMATIQUES DISCRÉTES UNIVERSITÉ CLAUDE-BERNARD LYON 1 69622 VILLEURBANNE, FRANCE 2 DEPARTMENT OF MATHEMATICS
Loop Invariants and Binary Search
Loop Invariants and Binary Search Chapter 4.3.3 and 9.3.1-1 - Outline Ø Iterative Algorithms, Assertions and Proofs of Correctness Ø Binary Search: A Case Study - 2 - Outline Ø Iterative Algorithms, Assertions
Notes on Complexity Theory Last updated: August, 2011. Lecture 1
Notes on Complexity Theory Last updated: August, 2011 Jonathan Katz Lecture 1 1 Turing Machines I assume that most students have encountered Turing machines before. (Students who have not may want to look
MATH10040 Chapter 2: Prime and relatively prime numbers
MATH10040 Chapter 2: Prime and relatively prime numbers Recall the basic definition: 1. Prime numbers Definition 1.1. Recall that a positive integer is said to be prime if it has precisely two positive
Chapter 1 A Pri Characterization of T m e Pairs w in Proceedings NCUR V. (1991), Vol. I, pp. 362{366. Jerey F. Gold Department of Mathematics, Department of Physics University of Utah DonH.Tucker Department
Regular Languages and Finite Automata
Regular Languages and Finite Automata 1 Introduction Hing Leung Department of Computer Science New Mexico State University Sep 16, 2010 In 1943, McCulloch and Pitts [4] published a pioneering work on a
Lemma 5.2. Let S be a set. (1) Let f and g be two permutations of S. Then the composition of f and g is a permutation of S.
Definition 51 Let S be a set bijection f : S S 5 Permutation groups A permutation of S is simply a Lemma 52 Let S be a set (1) Let f and g be two permutations of S Then the composition of f and g is a
Lecture 3: Finding integer solutions to systems of linear equations
Lecture 3: Finding integer solutions to systems of linear equations Algorithmic Number Theory (Fall 2014) Rutgers University Swastik Kopparty Scribe: Abhishek Bhrushundi 1 Overview The goal of this lecture
arxiv:1112.0829v1 [math.pr] 5 Dec 2011
How Not to Win a Million Dollars: A Counterexample to a Conjecture of L. Breiman Thomas P. Hayes arxiv:1112.0829v1 [math.pr] 5 Dec 2011 Abstract Consider a gambling game in which we are allowed to repeatedly
(Refer Slide Time: 01.26)
Discrete Mathematical Structures Dr. Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture # 27 Pigeonhole Principle In the next few lectures
Solutions to In-Class Problems Week 4, Mon.
Massachusetts Institute of Technology 6.042J/18.062J, Fall 05: Mathematics for Computer Science September 26 Prof. Albert R. Meyer and Prof. Ronitt Rubinfeld revised September 26, 2005, 1050 minutes Solutions
About the inverse football pool problem for 9 games 1
Seventh International Workshop on Optimal Codes and Related Topics September 6-1, 013, Albena, Bulgaria pp. 15-133 About the inverse football pool problem for 9 games 1 Emil Kolev Tsonka Baicheva Institute
NP-Completeness and Cook s Theorem
NP-Completeness and Cook s Theorem Lecture notes for COM3412 Logic and Computation 15th January 2002 1 NP decision problems The decision problem D L for a formal language L Σ is the computational task:
Analysis of Algorithms, I
Analysis of Algorithms, I CSOR W4231.002 Eleni Drinea Computer Science Department Columbia University Thursday, February 26, 2015 Outline 1 Recap 2 Representing graphs 3 Breadth-first search (BFS) 4 Applications
k, then n = p2α 1 1 pα k
Powers of Integers An integer n is a perfect square if n = m for some integer m. Taking into account the prime factorization, if m = p α 1 1 pα k k, then n = pα 1 1 p α k k. That is, n is a perfect square
All trees contain a large induced subgraph having all degrees 1 (mod k)
All trees contain a large induced subgraph having all degrees 1 (mod k) David M. Berman, A.J. Radcliffe, A.D. Scott, Hong Wang, and Larry Wargo *Department of Mathematics University of New Orleans New
Topology-based network security
Topology-based network security Tiit Pikma Supervised by Vitaly Skachek Research Seminar in Cryptography University of Tartu, Spring 2013 1 Introduction In both wired and wireless networks, there is the
The last three chapters introduced three major proof techniques: direct,
CHAPTER 7 Proving Non-Conditional Statements The last three chapters introduced three major proof techniques: direct, contrapositive and contradiction. These three techniques are used to prove statements
Lecture Notes on Linear Search
Lecture Notes on Linear Search 15-122: Principles of Imperative Computation Frank Pfenning Lecture 5 January 29, 2013 1 Introduction One of the fundamental and recurring problems in computer science is
4. CLASSES OF RINGS 4.1. Classes of Rings class operator A-closed Example 1: product Example 2:
4. CLASSES OF RINGS 4.1. Classes of Rings Normally we associate, with any property, a set of objects that satisfy that property. But problems can arise when we allow sets to be elements of larger sets
Reading 13 : Finite State Automata and Regular Expressions
CS/Math 24: Introduction to Discrete Mathematics Fall 25 Reading 3 : Finite State Automata and Regular Expressions Instructors: Beck Hasti, Gautam Prakriya In this reading we study a mathematical model
11 Ideals. 11.1 Revisiting Z
11 Ideals The presentation here is somewhat different than the text. In particular, the sections do not match up. We have seen issues with the failure of unique factorization already, e.g., Z[ 5] = O Q(
SECTION 10-2 Mathematical Induction
73 0 Sequences and Series 6. Approximate e 0. using the first five terms of the series. Compare this approximation with your calculator evaluation of e 0.. 6. Approximate e 0.5 using the first five terms
How To Know If A Domain Is Unique In An Octempo (Euclidean) Or Not (Ecl)
Subsets of Euclidean domains possessing a unique division algorithm Andrew D. Lewis 2009/03/16 Abstract Subsets of a Euclidean domain are characterised with the following objectives: (1) ensuring uniqueness
An Innocent Investigation
An Innocent Investigation D. Joyce, Clark University January 2006 The beginning. Have you ever wondered why every number is either even or odd? I don t mean to ask if you ever wondered whether every number
Mathematical Induction. Lecture 10-11
Mathematical Induction Lecture 10-11 Menu Mathematical Induction Strong Induction Recursive Definitions Structural Induction Climbing an Infinite Ladder Suppose we have an infinite ladder: 1. We can reach
Notes on Factoring. MA 206 Kurt Bryan
The General Approach Notes on Factoring MA 26 Kurt Bryan Suppose I hand you n, a 2 digit integer and tell you that n is composite, with smallest prime factor around 5 digits. Finding a nontrivial factor
AN ALGORITHM FOR DETERMINING WHETHER A GIVEN BINARY MATROID IS GRAPHIC
AN ALGORITHM FOR DETERMINING WHETHER A GIVEN BINARY MATROID IS GRAPHIC W. T. TUTTE. Introduction. In a recent series of papers [l-4] on graphs and matroids I used definitions equivalent to the following.
Math 55: Discrete Mathematics
Math 55: Discrete Mathematics UC Berkeley, Fall 2011 Homework # 5, due Wednesday, February 22 5.1.4 Let P (n) be the statement that 1 3 + 2 3 + + n 3 = (n(n + 1)/2) 2 for the positive integer n. a) What
This chapter is all about cardinality of sets. At first this looks like a
CHAPTER Cardinality of Sets This chapter is all about cardinality of sets At first this looks like a very simple concept To find the cardinality of a set, just count its elements If A = { a, b, c, d },
PRIME FACTORS OF CONSECUTIVE INTEGERS
PRIME FACTORS OF CONSECUTIVE INTEGERS MARK BAUER AND MICHAEL A. BENNETT Abstract. This note contains a new algorithm for computing a function f(k) introduced by Erdős to measure the minimal gap size in
Some Polynomial Theorems. John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA 90405 [email protected].
Some Polynomial Theorems by John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA 90405 [email protected] This paper contains a collection of 31 theorems, lemmas,
A simple criterion on degree sequences of graphs
Discrete Applied Mathematics 156 (2008) 3513 3517 Contents lists available at ScienceDirect Discrete Applied Mathematics journal homepage: www.elsevier.com/locate/dam Note A simple criterion on degree
Catalan Numbers. Thomas A. Dowling, Department of Mathematics, Ohio State Uni- versity.
7 Catalan Numbers Thomas A. Dowling, Department of Mathematics, Ohio State Uni- Author: versity. Prerequisites: The prerequisites for this chapter are recursive definitions, basic counting principles,
THE SCHEDULING OF MAINTENANCE SERVICE
THE SCHEDULING OF MAINTENANCE SERVICE Shoshana Anily Celia A. Glass Refael Hassin Abstract We study a discrete problem of scheduling activities of several types under the constraint that at most a single
International Journal of Information Technology, Modeling and Computing (IJITMC) Vol.1, No.3,August 2013
FACTORING CRYPTOSYSTEM MODULI WHEN THE CO-FACTORS DIFFERENCE IS BOUNDED Omar Akchiche 1 and Omar Khadir 2 1,2 Laboratory of Mathematics, Cryptography and Mechanics, Fstm, University of Hassan II Mohammedia-Casablanca,
9.2 Summation Notation
9. Summation Notation 66 9. Summation Notation In the previous section, we introduced sequences and now we shall present notation and theorems concerning the sum of terms of a sequence. We begin with a
programming languages, programming language standards and compiler validation
Software Quality Issues when choosing a Programming Language C.J.Burgess Department of Computer Science, University of Bristol, Bristol, BS8 1TR, England Abstract For high quality software, an important
A simple analysis of the TV game WHO WANTS TO BE A MILLIONAIRE? R
A simple analysis of the TV game WHO WANTS TO BE A MILLIONAIRE? R Federico Perea Justo Puerto MaMaEuSch Management Mathematics for European Schools 94342 - CP - 1-2001 - DE - COMENIUS - C21 University
On strong fairness in UNITY
On strong fairness in UNITY H.P.Gumm, D.Zhukov Fachbereich Mathematik und Informatik Philipps Universität Marburg {gumm,shukov}@mathematik.uni-marburg.de Abstract. In [6] Tsay and Bagrodia present a correct
If A is divided by B the result is 2/3. If B is divided by C the result is 4/7. What is the result if A is divided by C?
Problem 3 If A is divided by B the result is 2/3. If B is divided by C the result is 4/7. What is the result if A is divided by C? Suggested Questions to ask students about Problem 3 The key to this question
Direct Methods for Solving Linear Systems. Matrix Factorization
Direct Methods for Solving Linear Systems Matrix Factorization Numerical Analysis (9th Edition) R L Burden & J D Faires Beamer Presentation Slides prepared by John Carroll Dublin City University c 2011
Computer Science Department. Technion - IIT, Haifa, Israel. Itai and Rodeh [IR] have proved that for any 2-connected graph G and any vertex s G there
- 1 - THREE TREE-PATHS Avram Zehavi Alon Itai Computer Science Department Technion - IIT, Haifa, Israel Abstract Itai and Rodeh [IR] have proved that for any 2-connected graph G and any vertex s G there
Analysis of Binary Search algorithm and Selection Sort algorithm
Analysis of Binary Search algorithm and Selection Sort algorithm In this section we shall take up two representative problems in computer science, work out the algorithms based on the best strategy to
Suk-Geun Hwang and Jin-Woo Park
Bull. Korean Math. Soc. 43 (2006), No. 3, pp. 471 478 A NOTE ON PARTIAL SIGN-SOLVABILITY Suk-Geun Hwang and Jin-Woo Park Abstract. In this paper we prove that if Ax = b is a partial signsolvable linear
Homework until Test #2
MATH31: Number Theory Homework until Test # Philipp BRAUN Section 3.1 page 43, 1. It has been conjectured that there are infinitely many primes of the form n. Exhibit five such primes. Solution. Five such
Recursive Algorithms. Recursion. Motivating Example Factorial Recall the factorial function. { 1 if n = 1 n! = n (n 1)! if n > 1
Recursion Slides by Christopher M Bourke Instructor: Berthe Y Choueiry Fall 007 Computer Science & Engineering 35 Introduction to Discrete Mathematics Sections 71-7 of Rosen cse35@cseunledu Recursive Algorithms
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
THE SEARCH FOR NATURAL DEFINABILITY IN THE TURING DEGREES
THE SEARCH FOR NATURAL DEFINABILITY IN THE TURING DEGREES ANDREW E.M. LEWIS 1. Introduction This will be a course on the Turing degrees. We shall assume very little background knowledge: familiarity with
6.2 Permutations continued
6.2 Permutations continued Theorem A permutation on a finite set A is either a cycle or can be expressed as a product (composition of disjoint cycles. Proof is by (strong induction on the number, r, of
Chair of Software Engineering. Software Verification. Assertion Inference. Carlo A. Furia
Chair of Software Engineering Software Verification Assertion Inference Carlo A. Furia Proving Programs Automatically The Program Verification problem: Given: a program P and a specification S = [Pre,
Bounded Cost Algorithms for Multivalued Consensus Using Binary Consensus Instances
Bounded Cost Algorithms for Multivalued Consensus Using Binary Consensus Instances Jialin Zhang Tsinghua University [email protected] Wei Chen Microsoft Research Asia [email protected] Abstract
Prime Numbers and Irreducible Polynomials
Prime Numbers and Irreducible Polynomials M. Ram Murty The similarity between prime numbers and irreducible polynomials has been a dominant theme in the development of number theory and algebraic geometry.
Mathematical Induction
Mathematical Induction (Handout March 8, 01) The Principle of Mathematical Induction provides a means to prove infinitely many statements all at once The principle is logical rather than strictly mathematical,
Factoring & Primality
Factoring & Primality Lecturer: Dimitris Papadopoulos In this lecture we will discuss the problem of integer factorization and primality testing, two problems that have been the focus of a great amount
Fairness in Routing and Load Balancing
Fairness in Routing and Load Balancing Jon Kleinberg Yuval Rabani Éva Tardos Abstract We consider the issue of network routing subject to explicit fairness conditions. The optimization of fairness criteria
Verication by Finitary Abstraction Weizmann Institute of Sciences and Universite Joseph Fourier, Grenoble Fourth International Spin Workshop (SPIN'98) Paris 2.11.98 Joint work with: Y. Kesten Ben Gurion
MAT-71506 Program Verication: Exercises
MAT-71506 Program Verication: Exercises Antero Kangas Tampere University of Technology Department of Mathematics September 11, 2014 Accomplishment Exercises are obligatory and probably the grades will
Mathematical Induction. Mary Barnes Sue Gordon
Mathematics Learning Centre Mathematical Induction Mary Barnes Sue Gordon c 1987 University of Sydney Contents 1 Mathematical Induction 1 1.1 Why do we need proof by induction?.... 1 1. What is proof by
8 Divisibility and prime numbers
8 Divisibility and prime numbers 8.1 Divisibility In this short section we extend the concept of a multiple from the natural numbers to the integers. We also summarize several other terms that express
Formal Languages and Automata Theory - Regular Expressions and Finite Automata -
Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March
Large induced subgraphs with all degrees odd
Large induced subgraphs with all degrees odd A.D. Scott Department of Pure Mathematics and Mathematical Statistics, University of Cambridge, England Abstract: We prove that every connected graph of order
Matrix Algebra. Some Basic Matrix Laws. Before reading the text or the following notes glance at the following list of basic matrix algebra laws.
Matrix Algebra A. Doerr Before reading the text or the following notes glance at the following list of basic matrix algebra laws. Some Basic Matrix Laws Assume the orders of the matrices are such that
Combinatorial PCPs with ecient veriers
Combinatorial PCPs with ecient veriers Or Meir Abstract The PCP theorem asserts the existence of proofs that can be veried by a verier that reads only a very small part of the proof. The theorem was originally
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
Cryptography and Network Security Department of Computer Science and Engineering Indian Institute of Technology Kharagpur
Cryptography and Network Security Department of Computer Science and Engineering Indian Institute of Technology Kharagpur Module No. # 01 Lecture No. # 05 Classic Cryptosystems (Refer Slide Time: 00:42)
CS 3719 (Theory of Computation and Algorithms) Lecture 4
CS 3719 (Theory of Computation and Algorithms) Lecture 4 Antonina Kolokolova January 18, 2012 1 Undecidable languages 1.1 Church-Turing thesis Let s recap how it all started. In 1990, Hilbert stated a
= 2 + 1 2 2 = 3 4, Now assume that P (k) is true for some fixed k 2. This means that
Instructions. Answer each of the questions on your own paper, and be sure to show your work so that partial credit can be adequately assessed. Credit will not be given for answers (even correct ones) without
1 if 1 x 0 1 if 0 x 1
Chapter 3 Continuity In this chapter we begin by defining the fundamental notion of continuity for real valued functions of a single real variable. When trying to decide whether a given function is or
The Classes P and NP
The Classes P and NP We now shift gears slightly and restrict our attention to the examination of two families of problems which are very important to computer scientists. These families constitute the
Graphs without proper subgraphs of minimum degree 3 and short cycles
Graphs without proper subgraphs of minimum degree 3 and short cycles Lothar Narins, Alexey Pokrovskiy, Tibor Szabó Department of Mathematics, Freie Universität, Berlin, Germany. August 22, 2014 Abstract
CHAPTER II THE LIMIT OF A SEQUENCE OF NUMBERS DEFINITION OF THE NUMBER e.
CHAPTER II THE LIMIT OF A SEQUENCE OF NUMBERS DEFINITION OF THE NUMBER e. This chapter contains the beginnings of the most important, and probably the most subtle, notion in mathematical analysis, i.e.,
Randomized algorithms
Randomized algorithms March 10, 2005 1 What are randomized algorithms? Algorithms which use random numbers to make decisions during the executions of the algorithm. Why would we want to do this?? Deterministic
There is no degree invariant half-jump
There is no degree invariant half-jump Rod Downey Mathematics Department Victoria University of Wellington P O Box 600 Wellington New Zealand Richard A. Shore Mathematics Department Cornell University
Likewise, we have contradictions: formulas that can only be false, e.g. (p p).
CHAPTER 4. STATEMENT LOGIC 59 The rightmost column of this truth table contains instances of T and instances of F. Notice that there are no degrees of contingency. If both values are possible, the formula
Full and Complete Binary Trees
Full and Complete Binary Trees Binary Tree Theorems 1 Here are two important types of binary trees. Note that the definitions, while similar, are logically independent. Definition: a binary tree T is full
136 CHAPTER 4. INDUCTION, GRAPHS AND TREES
136 TER 4. INDUCTION, GRHS ND TREES 4.3 Graphs In this chapter we introduce a fundamental structural idea of discrete mathematics, that of a graph. Many situations in the applications of discrete mathematics
Regular Expressions and Automata using Haskell
Regular Expressions and Automata using Haskell Simon Thompson Computing Laboratory University of Kent at Canterbury January 2000 Contents 1 Introduction 2 2 Regular Expressions 2 3 Matching regular expressions
Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No. # 11 Block Cipher Standards (DES) (Refer Slide
Pythagorean vectors and their companions. Lattice Cubes
Lattice Cubes Richard Parris Richard Parris ([email protected]) received his mathematics degrees from Tufts University (B.A.) and Princeton University (Ph.D.). For more than three decades, he has lived
Introduction to Computer Science I Spring 2014 Mid-term exam Solutions
Introduction to Computer Science I Spring 2014 Mid-term exam Solutions 1. Question: Consider the following module of Python code... def thing_one (x): y = 0 if x == 1: y = x x = 2 if x == 2: y = -x x =
