The Gödel Phenomena in Mathematics: A Modern View

Transcription

1 Chapter 1 The Gödel Phenomena in Mathematics: A Modern View Avi Wigderson Herbert Maass Professor School of Mathematics Institute for Advanced Study Princeton, New Jersey, USA 1.1 Introduction What are the limits of mathematical knowledge? The purpose of this chapter is to introduce the main concepts from computational complexity theory that are relevant to algorithmic accessibility of mathematical understanding. In particular, I ll discuss the P versus N P problem, its possible impact on research in mathematics, and how interested Gödel himself was in this computational viewpoint. Much of the technical material will be necessarily sketchy. The interested reader is referred to the standard texts on computational complexity theory, primarily [5, 25, 43, 61] Overview Hilbert believed that all mathematical truths are knowable and set the threshold for mathematical knowledge at the ability to devise a mechanical procedure. This dream was shattered by Gödel and Turing. Gödel s incompleteness theorem exhibited true statements that can never be proved. Turing formalized Hilbert s notion of computation and of finite algorithms (thereby initiating the computer revolution) and proved that some problems are undecidable they have no such algorithms. While the first examples of such unknowables seemed somewhat unnatural, more and more natural examples of unprovable or undecidable problems were found in different areas of mathematics. The independence of the continuum hypothesis and the undecidability of Diophantine equations are famous 1

2 Gödel Book Wigderson - rev early examples. This became known as the Gödel phenomena, and its effect on the practice of mathematics has been debated since. Many argued that while some of the inaccessible truths above are natural, they are far from what is really of interest to most working mathematicians. Indeed, it would seem that in the seventy-five years since the incompleteness theorem, mathematics has continued thriving, with remarkable achievements such as the recent settlement of Fermat s last theorem by Wiles and the Poincaré conjecture by Perelman. So, are there interesting mathematical truths that are unknowable? The main point of this chapter is that when knowability is interpreted by modern standards, namely via computational complexity, the Gödel phenomena are very much with us. We argue that to understand a mathematical structure, having a decision procedure is but a first approximation, and that a real understanding requires an efficient algorithm. Remarkably, Gödel was the first to propose this modern view, in a letter to von Neumann in 1956, which was discovered only in the 1990s. Meanwhile, from the mid-1960s on, the field of theoretical computer science has made formal Gödel s challenge and has created a theory that enables quantification of the difficulty of computational problems. In particular, a reasonable way to capture knowable problems (which we can efficiently solve) is the class P, and a reasonable way to capture interesting problems (which we would like to solve) is the class N P. Moreover, assuming the widely believed P = N P conjecture, the class N P-complete captures interesting unknowable problems. In this chapter, I define these complexity classes, explain their intuitive meaning, and show how Gödel foresaw some of these definitions and connections. I relate computational difficulty to mathematical difficulty and argue how such notions, developed in computational complexity, may explain the difficulty mathematicians have in accessing structural, non-computational information. I also survey proof complexity the study of lengths of proofs in different proof systems. Finally, I point out that this modern view of the limits of mathematical knowledge is adopted by a growing number of mathematicians, working on a diverse set of interesting structures in different areas of mathematics. This activity increases interaction with computer scientists and benefits both fields. Results are of two types, as in standard computer science problems. On the one hand, there is a growing effort to go beyond characterizations of mathematical structures, and attempts are made to provide efficient recognition algorithms. On the other, there is a growing number of N P-completeness results, providing the stamp of difficulty for achieving useful characterizations and algorithms. This second phenomenon, now ubiquitous in science and mathematics, may perhaps better capture Gödel s legacy on what is unknowable in mathematics Decision Problems and Finite Algorithms Which mathematical structures can we hope to understand? Let us focus on the most basic mathematical task of classification. We are interested in a particular class of objects and a particular property. We seek to understand which of the objects have the property and which do not. Let us consider the following

3 Gödel Book Wigderson - rev examples: (1) Which valid sentences in first-order predicate logic are provable? (2) Which Diophantine equations have solutions? (3) Which knots are unknotted? (4) Which elementary statements about the reals are true? It is clear that each object from the families above has a finite representation. Hilbert s challenge was about the possibility to find, for each such family, a finite procedure that would solve the decision problem in finite time for every object in the family. In his seminal paper [63, 64], Turing formulated the Turing machine, a mathematical definition of an algorithm, capturing such finite mechanical procedures. This allowed a mathematical study of Hilbert s challenge. Hilbert s Entscheidungsproblem problem (1) above was the first to be resolved, in the same paper by Turing. Turing showed that problem (1) is undecidable, namely there is no algorithm that distinguishes provable from unprovable statements of first-order predicate logic. Hilbert s 10th problem problem (2) above was shown to be undecidable as well, in a series of works by Davis, Putnam, Robinson, and Matiasevich [41]. Again, no algorithm can distinguish solvable from unsolvable Diophantine equations. The crucial ingredient in those (and all other) undecidability results is showing that each of these mathematical structures can encode computation. This is known today to hold for many different structures in algebra, topology, geometry, analysis, logic, and more, even though a priori the structures studied seem to be completely unrelated to computation. It is as though much of contemporary work in mathematics is pursuing, unwittingly and subconsciously, an agenda with essential computational components. I shall return to refined versions of this idea later. The notion of a decision procedure as a minimal requirement for understanding of a mathematical problem has also led to direct positive results. It suggests that we look for a decision procedure as a means, or as a first step for understanding a problem. For problems (3) and (4) above this was successful. Haken [30] showed how knots can be so understood, with his decision procedure for problem (3), and Tarski [62] showed that real-closed fields can be understood with a decision procedure for problem (4). Naturally, significant mathematical, structural understanding was needed to develop these algorithms. Haken developed the theory of normal surfaces and Tarski invented quantifier elimination for their algorithms, both cornerstones of the respective fields. This reveals only the obvious: mathematical and algorithmic understanding are related and often go hand in hand. There are many ancient examples. The earliest is probably Euclid s greatest common divisor (GCD) algorithm. Abel s proof that roots of real polynomials of degree at least 5 have no formula with radicals is the first impossibility result (of certain classes of algorithms). Of course, Newton s algorithm for approximating such roots is a satisfactory

4 Gödel Book Wigderson - rev practical alternative. What was true in previous centuries is truer in this one: the language of algorithms is slowly becoming competitive with the language of equations and formulas (which are special cases of algorithms) for explaining complex mathematical structures. Back to our four problems. The undecidability of problems (1) and (2) certainly suggests that these structures cannot be mathematically understood in general. This led researchers to consider special cases of them that are decidable. But does decidability for example, that of problems (3) and (4) mean that we completely understand these structures? Far from it. Both algorithms are extremely complex and time consuming. Even structurally speaking, there are no known complete knot invariants or characterizations of real varieties. How can one explain such mathematical difficulties for decidable problems? It is natural to go beyond decidability and try to quantify the level of understanding. We will use a computational yardstick for it. We argue that better mathematical understanding goes hand in hand with better algorithms for obtaining that understanding from the given structures. To formalize this, we will introduce the computational terms that are central to the theory of computational complexity. There is no better way to start this than with Gödel s letter to von Neumann. 1.2 Gödel s Letter to von Neumann In Gödel s letter, which I include below in its entirety for completeness, complexity is discussed only in the second paragraph it is remarkable how much this paragraph contains! It defines asymptotic and worst-case time complexity, suggests the study of the satisfiability problem, discusses the mathematical significance of having a fast algorithm for it, and even speculates on the possibility of the existence of such an algorithm. In the section that follows the letter, I identify the letter s contributions and insights in modern language The Letter First, a bit on the context. The letter was written when von Neumann was in the hospital, already terminally ill with cancer (he died a year later). It was written in German, and here we reproduce a translation. The surveys by Sipser [60] and Hartmanis [31] provide the original letter, as well as more details on the translation. As far as we know, the discussion Gödel was trying to initiate never continued. Moreover, we have no evidence of Gödel s thinking more about the subject. Again, we will refer later only to the second paragraph, which addresses the computational complexity issue. Princeton, 20 March 1956 Dear Mr. von Neumann:

5 Gödel Book Wigderson - rev With the greatest sorrow I have learned of your illness. The news came to me as quite unexpected. Morgenstern already last summer told me of a bout of weakness you once had, but at that time he thought that this was not of any greater significance. As I hear, in the last months you have undergone a radical treatment and I am happy that this treatment was successful as desired, and that you are now doing better. I hope and wish for you that your condition will soon improve even more and that the newest medical discoveries, if possible, will lead to a complete recovery. Since you now, as I hear, are feeling stronger, I would like to allow myself to write you about a mathematical problem, of which your opinion would very much interest me: One can obviously easily construct a Turing machine, which for every formula F in first order predicate logic and every natural number n, allows one to decide if there is a proof of F of length n (length = number of symbols). Let ψ(f, n) be the number of steps the machine requires for this and let φ(n) = max F ψ(f, n). The question is how fast φ(n) grows for an optimal machine. One can show that φ(n) k n. If there really were a machine with φ(n) k n (or even φ(n) k n 2 ), this would have consequences of the greatest importance. Namely, it would obviously mean that in spite of the undecidability of the Entscheidungsproblem, the mental work of a mathematician concerning Yes-or-No questions (apart from the postulation of axioms) could be completely replaced by a machine. After all, one would simply have to choose the natural number n so large that when the machine does not deliver a result, it makes no sense to think more about the problem. Now it seems to me, however, to be completely within the realm of possibility that φ(n) grows that slowly. Since 1.) it seems that φ(n) k n is the only estimation which one can obtain by a generalization of the proof of the undecidability of the Entscheidungsproblem and 2.) after all φ(n) k n (or φ(n) k n 2 ) only means that the number of steps as opposed to trial and error can be reduced from N to log N (or (log N) 2 ). However, such strong reductions appear in other finite problems, for example in the computation of the quadratic residue symbol using repeated application of the law of reciprocity. It would be interesting to know, for instance, the situation concerning the determination of primality of a number and how strongly in general the number of steps in finite combinatorial problems can be reduced with respect to simple exhaustive search.

6 Gödel Book Wigderson - rev I do not know if you have heard that "Post s problem," whether there are degrees of unsolvability among problems of the form ( y)φ(y, x), where φ is recursive, has been solved in the positive sense by a very young man by the name of Richard Friedberg. The solution is very elegant. Unfortunately, Friedberg does not intend to study mathematics, but rather medicine (apparently under the influence of his father). By the way, what do you think of the attempts to build the foundations of analysis on ramified type theory, which have recently gained momentum? You are probably aware that Paul Lorenzen has pushed ahead with this approach to the theory of Lebesgue measure. However, I believe that in important parts of analysis non-eliminable impredicative proof methods do appear. I would be very happy to hear something from you personally. Please let me know if there is something that I can do for you. With my best greetings and wishes, as well to your wife, Sincerely yours, Kurt Gödel P.S. I heartily congratulate you on the award that the American government has given to you Time Complexity and Gödel s Foresight In this section, I go through the main ingredients of Gödel s letter, most of which were independently 1 identified and developed in the evolution of computational complexity in the 1960s and 1970s. These include the basic model, input representation, (asymptotic, worst-case) time complexity, 2 brute-force algorithms and the possibility of beating them, proving lower bounds, and last but not least, Gödel s choice of a focus problem and its significance. I comment on the remarkable foresight of some of Gödel s choices. When introducing some of these notions, I use common, modern notation. Computability vs. complexity: All problems we will discuss here are computable that is, they have a finite algorithm. Gödel states that for his problem, one can...easily construct a Turing machine. We take for granted that the given problem is decidable and ask for the complexity of the best or optimal algorithm. Gödel is the first on record to suggest shifting focus from computability to complexity. 1 Recall that the letter was discovered only in the 1990s. 2 I shall focus on time as the primary resource of algorithms when studying their efficiency. Other resources, such as memory, parallelism, and more, are studied in computational complexity, but I will not treat them here.

7 Gödel Book Wigderson - rev The model: Gödel s computational model of choice is the Turing machine. Time will be measured as the number of elementary steps on a Turing machine. We note that this is a nontrivial choice for a discussion of time complexity back in The Church-Turing thesis of the equivalence of all feasible computational models was around, and all known algorithmic models were known to simulate each other. However, that thesis did not include time bounds, and it seems that Gödel takes for granted (or knows) that all known models can simulate each other efficiently (something that is now well established). The problem: Gödel focuses on one problem to define complexity, a finite version of the Entscheidungsproblem, in which the task is to determine if a formula F has a proof of length n. This is by no means an arbitrary choice, and Gödel is well aware of it, as will be discussed below. Put differently, Gödel s problem asks if we can satisfy a first-order logic verifier that F is provable using only n symbols. We shall later meet its cousin, the problem SAT (abbreviating SATisfyability ), in which the task is to determine if a propositional formula has a satisfying assignment. It is not hard to see that SAT captures Gödel s problem, 3 and so we will call it SAT. Input representation: Every finite object (formulas, integers, graphs, etc.) can be represented as a binary string. We let I stand for the set of all finite binary strings. Let f be a decision problem ( Yes-or-No question in Gödel s letter), like those in Section Then f : I {0, 1} is what we are trying to compute. Thus, we consider Turing machines that for every input x halt with the answer f(x). In Gödel s problem the input is the pair (F, n), and the task is computing whether the first-order formula F has a proof of length at most n. Input length: This is always taken in computational complexity to be the binary length of the input. Clearly Gödel makes the same choice: when he talks about the complexity of testing primality of an integer N, he takes the input length to be log N, the number of bits needed to describe N. Of course, finite objects may have many representations, which differ in length, and one must pick reasonable encodings 4. Time complexity: Complexity is measured as a function of input length. Adapting Gödel s notation, we fix any Turing machine M computing f. We let φ(n) denote the maximum, 5 over all inputs x of length n, of the number of steps M takes when computing f(x). We then consider the 3 Simply assign propositional variables to the n possible proof symbols, and encode the verification process so that indeed they form a proof of F as a Boolean formula. 4 For example, in Gödel s problem it is possible to encode the input using F + log n bits, where F is the encoding length (in bits) of the given first-order formula. However, as we will later see, it is more natural to take it to be F + n, allowing for n variables to encode the possible values of the potential proof symbols. For this problem Gödel indeed measures complexity as a function of n. 5 This worst-case analysis is the most common in complexity theory, though of course other measures are important and well studied too. In particular, average-case analysis (typical

8 Gödel Book Wigderson - rev growth of φ(n) for the optimal machine 6 M. It is quite remarkable that Gödel selects both the asymptotic viewpoint and worst-case complexity neither is an obvious choice but both proved extremely fruitful in the development of computational complexity. Brute-force algorithms: All problems mentioned by Gödel SAT, primality testing, and computing quadratic residue have what Gödel calls trial and error and simple exhaustive search algorithms. All these problems happen to be in the class N P, and these obvious trivial algorithms require exponential time (in the input length). Efficient algorithms: Gödel specifically suggests that time complexity 7 O(n) or O(n 2 ) is efficient (or tractable) enough for practical purposes. This did not change for fifty years, despite enormous changes in computer speed, and is a gold standard of efficiency. I ll try to explain why computational complexity theory chose to call (any) polynomial-time algorithms efficient and the class P to include all problems with such algorithms. The complexity of SAT : Gödel is completely aware of what it would mean if the problem SAT has an efficient algorithm: the mental work of a mathematician concerning Yes-or-No questions (apart from the postulation of axioms) could be completely replaced by a machine. So he realizes that solving this problem will solve numerous others in mathematics. While not stating precisely that it is N P-complete ( captures all problems in N P), he does ask how strongly in general the number of steps in finite combinatorial problems can be reduced with respect to simple exhaustive search, a set of problems we naturally identify now with N P. Gödel s speculation: The letter states Now it seems to me...to be completely within the realm of possibility that φ(n) grows that slowly, namely that SAT P, which as we shall see implies P = N P. Gödel suggests this possibility based on the existence of highly nontrivial efficient algorithms that improve exponentially over brute-force search: such strong reductions appear in other finite problems, for example in the computation of the quadratic residue symbol using repeated application of the law of reciprocity (the trivial exponential time algorithm would rely on factoring, while Gauss s reciprocity allows a GCD-like polynomial-time algorithm. 8 ) This lesson, that there are sometimes ingenious ways of cutting the exponential search space for many important problems, was taught again and again in the last half-century. behavior of algorithms under natural input distributions) is central both for algorithm design and for cryptography. 6 Strictly speaking, this is not well defined. 7 We use standard asymptotic notation: g(n) = O(h(n)) if for some constant k and for all n we have g(n) kh(n). In this case we also say that h(n) = Ω(g(n)). 8 In any reasonable implementation Gödel had in mind, this would take time n 3, which shows that Gödel may have indeed considered the class P for efficiently solved problems.

9 Gödel Book Wigderson - rev Lower bounds: Gödel tried proving that the complexity of SAT, φ(n), cannot grow too slowly. But he could only prove a linear lower bound 9 φ(n) = Ω(n). And, for Turing machines, not much has changed in this half century we still have no superlinear lower bounds. Proving such lower bounds, namely proving that computational problems are intrinsically difficult, is a central task of complexity. I shall discuss partial success as well as the difficulty of this task later. The next sections elaborate on these and other notions and issues and provide some historical background on their development in computational complexity theory. I first deal with the complexity of computation, and then move on to discuss the complexity of proofs. 1.3 Complexity Classes, Reductions and Completeness In this section, I define efficient computations, efficient reductions between problems, efficient verification, and the classes P, N P, con P, and N P-complete. I will keep referring back to Gödel s letter Efficient Computation and the Class P In all that follows, I focus on asymptotic complexity and analyze time spent on a problem as a function of input length. The asymptotic viewpoint is inherent to computational complexity theory. We shall see in this chapter that it reveals structure that would probably be obscured by finite, precise analysis. Efficient computation (for a given problem) will be taken to be one whose runtime on any input of length n is bounded by a polynomial function in n. Let I n denote all binary sequences in I of length n. Definition (The class P). A function f : I I is in the class P if there is an algorithm computing f and positive constants A, c such that for every n and every x I n the algorithm computes f(x) in at most An c steps. Note that the definition applies in particular to Boolean functions (whose output is {0, 1}), which capture classification problems. For convenience, we will sometimes think of P as the class containing only these classification problems. Observe that a function with a long output can be viewed as a sequence of Boolean functions, one for each output bit. This definition was suggested by Cobham [15], Edmonds [21], and Rabin [51], all attempting to formally delineate efficient from just finite (in their cases, exponential time) algorithms. Of course, nontrivial polynomial-time algorithms were discovered earlier, long before the computer age. Many were discovered by mathematicians, who needed efficient methods to calculate (by 9 Note that while this lower bound is trivial in the modern formulation of SAT, in which the propositional formula has length at least n, it is far from trivial in Gödel s formulation. Gödel does not supply a proof, and Buss provides one in [11].

10 Gödel Book Wigderson - rev hand). The most ancient and famous example is Euclid s GCD algorithm, which bypasses the need to factor the inputs when computing their greatest common factor. Why polynomial? The choice of polynomial time to represent efficient computation seems arbitrary, and different possible choices can be made. 10 However, this particular choice was extremely useful and has justified itself over time from many points of view. We list some important ones. Polynomials typify slowly growing functions. The closure of polynomials under addition, multiplication, and composition preserves the notion of efficiency under natural programming practices, such as using two programs in sequence, or using one as a subroutine of another. This choice removes the necessity to describe the computational model precisely (e.g., it does not matter if we allow arithmetic operations only on single digits or on arbitrary integers, since long addition, subtraction, multiplication, and division have simple polynomial-time algorithms taught in grade school). Similarly, we need not worry about data representation: one can efficiently translate between essentially any two natural representations of a set of finite objects. From a practical viewpoint, while a running time of, say, n 2 is far more desirable than n 100, very few known efficient algorithms for natural problems have exponents above 3 or 4. On the other hand, many important natural problems that so far resist efficient algorithms cannot at present be solved faster than in exponential time. Thus reducing their complexity to (any) polynomial is a huge conceptual improvement (and when this is achieved, often further reductions of the exponent are found). The importance of understanding the class P is obvious. There are numerous computational problems that arise (in theory and practice) that demand efficient solutions. Many algorithmic techniques were developed in the past four decades and enable solving many of these problems (see, for example, the textbook [18]). These drive the ultra-fast home computer applications we now take for granted like web searching, spell checking, data processing, computer game graphics, and fast arithmetic, as well as heavier-duty programs used across industry, business, math, and science. But many more problems yet (some of which we shall meet soon), perhaps of higher practical and theoretical value, remain elusive. The challenge of characterizing this fundamental mathematical object the class P of efficiently solvable problems is far beyond us at this point. I end this section with a few examples of nontrivial problems in P of mathematical significance. In each the interplay of mathematical and computational understanding needed for the development of these algorithms is evident. Primality testing. Given an integer, determine if it is prime. Gauss challenged the mathematical community to find an efficient algorithm, but it took two centuries to solve. The story of this recent achievement of [3] and its history are beautifully recounted in [26]. 10 And indeed such choices are studied in computational complexity.

11 Gödel Book Wigderson - rev Linear programming. Given a set of linear inequalities in many variables, determine if they are mutually consistent. This problem and its optimization version capture numerous others (finding optimal strategies of a zero-sum game is one), and the convex optimization techniques used to give the efficient algorithms [38, 35] for it do much more (see, for example, [58].) Factoring polynomials. Given a multivariate polynomial with rational coefficients, find its irreducible factors over Q. Again, the tools developed in [39] (mainly regarding short bases in lattices in R n ) have numerous other applications. Hereditary graph properties. Given a finite graph, test if it can be embedded on a fixed surface (like the plane or the torus). A vastly more general result is known, namely testing any hereditary property (one that is closed under vertex removal and edge contraction). It follows the monumental structure theory [56] of such properties, including a finite basis theorem and its algorithmic versions. 11 Hyperbolic word problem. Given any presentation of a hyperbolic group by generators and relations, and a word w in the generators, determine if w represents the identity element. The techniques give isoperimetric bounds on the Cayley graphs of such groups and more [27] Efficient Verification and the Class N P Now we change our view of classification problems from classifying functions to classifying sets. We shall see that some subtle (and highly relevant mathematical) aspects of complexity come to life when we focus on classifying sets. Thus, a classification problem will be any subset C I. It is convenient for this section to view C as defining a property; x C are objects having the property, and x C are objects that do not. While this is formally equivalent to having a Boolean function f : I {0, 1} that gives opposite values on C and I \ C, this view allows us to distinguish between the complexity of these two sets. We are given an input x I (describing a mathematical object) and are supposed to determine if x C or not. If we had an efficient algorithm for C, we could simply apply it to x. But if we don t, what is the next best thing? One answer is: a convincing proof that x C. Before defining it formally, let us see a motivating example. As Gödel points out, the working mathematician meets such examples daily, reading a typical math journal paper. In it, we typically find a (claimed) theorem, followed by an (alleged) proof. Thus, we are verifying claims of the type x THEOREMS, where THEOREMS is the set of all provable statements in, say, set theory. It is taken for granted that the written proof is short (page limit) 11 To be fair, while running in polynomial time, the algorithms here have huge exponents. We expect that further, deeper structural understanding will be needed for more efficient algorithms.

12 Gödel Book Wigderson - rev and easily verifiable (otherwise the referee/editor would demand clarifications), regardless of how long it took to discover. The class N P contains all properties C for which membership (namely statements of the form x C) have short, efficiently verifiable proofs. As before, we use polynomials to define both terms. A candidate proof y for the claim x C must have length at most polynomial in the length of x. And the verification that y indeed proves this claim must be checkable in polynomial time. Finally, if x C, no such y should exist. Definition (The class N P). The set C is in the class N P if there is a function V C P and a constant k such that If x C then y with y x k and V C (x, y) = 1 If x C then y we have V C (x, y) = 0 Thus each set C in N P may be viewed as a set of theorems in the complete and sound proof system defined by the verification process V C. A sequence y that convinces V C that x C is often called a witness or certificate for the membership of x in C. Again, we stress that the definition of N P is not concerned with how difficult it is to come up with a witness y. Indeed, the acronym N P stands for nondeterministic polynomial time, where the nondeterminism captures the ability of a hypothetical nondeterministic machine to guess a witness y (if one exists) and then verify it deterministically. Nonetheless, the complexity of finding a witness is of course important, as it captures the search problem associated with N P sets. Every decision problem C (indeed every verifier V C for C) in N P comes with a natural search problem associated with it: Given x C, find a short witness y that convinces V C. A correct solution to this search problem can be easily verified by V C. While it is usually the search problems that occupy us, from a computational standpoint it is often more convenient to study the decision versions. Almost always both versions are equivalent. 12 These definitions of N P were first given (independently and in slightly different forms) by Cook [16] and Levin [40], although Edmonds discusses good characterization that captures the essence of efficient verification already in [20]. There is much more to these seminal papers than this definition, and we shall discuss it later at length. It is evident that decision problems in P are also in N P. The verifier V C is simply taken to be the efficient algorithm for C, and the witness y can be the empty sequence. Corollary P N P. A final comment is that problems in N P have trivial exponential time algorithms. Such algorithms search through all possible short witnesses and try to 12 A notable possible exception is the set COMPOSITES (with a verification procedure that accepts as witness a nontrivial factor). Note that while COMPOSITES P as a decision problem, the related search problem is equivalent to Integer Factorization, which is not known to have an efficient algorithm.

13 Gödel Book Wigderson - rev verify each. Now we can make Gödel s challenge more concrete! Can we always speed up this brute-force algorithm? The P versus N P Question, Its Meaning and Importance The class N P is extremely rich (we shall see examples a little later). There are literally thousands of N P problems in mathematics, optimization, artificial intelligence, biology, physics, economics, industry and other applications that arise naturally out of different necessities and whose efficient solutions will benefit us in numerous ways. They beg for efficient algorithms, but decades of effort (and sometimes more) has succeeded for only a few. Is it possible that all sets in N P possess efficient algorithms, and these simply were not discovered yet? This is the celebrated P vs. N P question, which appeared explicitly first in the aforementioned papers of Cook and Levin and was foreshadowed by Gödel. Open Problem Is P = N P? What explains the abundance of so many natural, important problems in the class N P? Probing the intuitive meaning of the definition of N P, we see that it captures many tasks of human endeavor for which a successful completion can be easily recognized. Consider the following professions and the typical tasks they are facing (this will be extremely superficial, but nevertheless instructive): Mathematician: Given a mathematical claim, come up with a proof for it. Scientist: Given a collection of data on some phenomena, find a theory explaining it. Engineer: Given a set of constraints (on cost, physical laws, etc.) come up with a design (of an engine, bridge, laptop,... ) that meets these constraints. Detective: Given the crime scene, find who done it. What is common to all these tasks is that we can typically tell a good solution when we see one (or we at least think we can). In various cases we may be the academic community, the customers, or the jury, but we expect the solution to be short and efficiently verifiable, just as in the definition of N P. The richness of N P follows from the simple fact that such tasks abound, and their mathematical formulation is indeed an N P-problem. For all these tasks, efficiency is paramount, and so the importance of the P vs. N P problem is evident. The colossal implications of the possibility that P = N P are evident as well: every instance of these tasks can be solved, optimally and efficiently. One (psychological) reason people feel that P = N P is unlikely is that tasks such as those described above often seem to require a degree of creativity that we do not expect a simple computer program to have. We admire Wiles proof of Fermat s last theorem, the scientific theories of Newton, Einstein, Darwin,

14 Gödel Book Wigderson - rev and Watson and Crick, the design of the Golden Gate bridge and the Pyramids, and sometimes even Hercule Poirot s and Miss Marple s analysis of a murder, precisely because they seem to require a leap that cannot be made by everyone, let alone by a simple mechanical device. My own view is that when we finally understand the algorithmic processes of the brain, we may indeed be able to automate the discovery of these specific achievements, and perhaps many others. But can we automate them all? Is it possible that for every task for which verification is easy, finding a solution is not much harder? If P = N P, the answer is positive, and creativity (of this abundant, verifiable kind) can be completely automated. Most computer scientists believe that this is not the case. Conjecture P = N P. Back to mathematics! Given the discussion above, one may wonder why it is so hard to prove that indeed P N P it seems completely obvious. We shall discuss attempts and difficulties soon, developing a methodology that will enable us to identify the hardest problems in N P. But before that, we turn to discuss a related question with a strong relation to mathematics: the N P versus con P question The N P versus con P Question, Its Meaning and Importance Fix a property C I. We already have the interpretations C P if it is easy to check that object x has property C, C N P if it is easy to certify that object x has property C, to which we now add C con P if it is easy to certify that object x does not have property C, where we formally define: Definition (The class con P). A set C is in the class con P if and only if its complement C = I \ C is in N P. While the definition of the class P is symmetric, 13 the definition of the class N P is asymmetric. Having nice certificates that a given object has property C does not automatically entail having nice certificates that a given object does not have it. Indeed, when we can do both, we are achieving a mathematics holy grail of understanding structure, namely necessary and sufficient conditions, sometimes phrased as a duality theorem. As we know well, such results are rare. When we insist (as we shall do) that the given certificates are short, efficiently verifiable ones, they are even rarer. This leads to the conjecture: 13 Having a fast algorithm to determine if an object has a property C is obviously equivalent to having a fast algorithm for the complementary property C.

15 Gödel Book Wigderson - rev Conjecture N P = con P. First note that if P = N P then P = con P as well, and hence this conjecture above implies P = N P. We shall discuss at length refinements of this conjecture in Section 1.5 on proof complexity. Despite the shortage of such efficient complete characterizations, namely properties that are simultaneously in N P con P, they nontrivially exist. Here is a list of some exemplary ones. Linear programming. Systems of consistent linear inequalities. 14 Zero-sum games. 15 Finite zero-sum games in which one player can gain at least (some given value) v. Graph connectivity. The set of graphs in which every pair of vertices is connected by (a given number) k disjoint paths. Partial order width. Finite partial orders whose largest anti-chain has at most (a given number) w elements. Primes. Prime numbers. These examples of problems in N P con P were chosen to make a point. At the time of their discovery (by Farkas, von Neumann, Menger, Dilworth, and Pratt, respectively) the mathematicians working on them were seemingly interested only in characterizing these structures. It is not known if they attempted to find efficient algorithms for these problems. However all of these problems turned out to be in P, with some solutions entering the pantheon of efficient algorithms for example: the Ellipsoid method of Khachian [38] and the Interior-Point method of Karmarkar [35], both for linear programming, and the recent breakthrough of Agrawal, Kayal, and Saxena [3] for Primes. 16 Is there a moral to this story? Only that sometimes, when we have an efficient characterization of structure, we can hope for more efficient algorithms. And conversely, a natural stepping stone toward an elusive efficient algorithm may be to first get an efficient characterization. Can we expect this magic to always happen? Is N P con P = P? There are several natural problems in N P con P that have resisted efficient algorithms for decades, and for some (e.g., factoring integers, computing discrete logarithms) humanity literally banks on their difficulty for electronic commerce security. Indeed, the following is generally believed: Conjecture N P con P = P. Note again that conjecture implies P = N P, but that it is independent of conjecture We now return to develop the main mechanism that will help us study such questions: efficient reductions. 14 Indeed this generalizes to other convex bodies given by more general constraints, like semi-definite programming. 15 This problem was later discovered to be equivalent to linear programming. 16 It is interesting that a simple polynomial-time algorithm, whose correctness and efficiency rely on the (unproven) extended Riemann hypothesis, was given thirty years earlier by Miller [42].

16 Gödel Book Wigderson - rev Reductions A Partial Order of Computational Difficulty In this section, I deal with relating the computational difficulty of problems for which we have no efficient solutions (yet). Recall that we can regard any classification problem (on finitely described objects) as a subset of our set of inputs I. Efficient reductions provide a natural partial order on such problems that capture their relative difficulty. Definition (Efficient reductions). Let C, D I be two classification problems. f : I I is an efficient reduction from C to D if f P and for every x I we have x C if and only if f(x) D. In this case we call f an efficient reduction from C to D. We write C D if there is an efficient reduction from C to D. The definition of efficient computation allows two immediate observations on the usefulness of efficient reductions. First, that indeed is transitive, and thus defines a partial order. Second, that if C D and D P then also C P. Intuitively, C D means that solving the classification problem C is computationally not much harder than solving D. In some cases one can replace computationally by the (vague) term mathematically. Often such usefulness in mathematical understanding requires more properties of the reduction f than merely being efficiently computable (e.g., we may want it to be represented as a linear transformation or a low dimension polynomial map), and indeed in some cases this is possible. When such a connection between two classification problems (which look unrelated) can be proved, it can mean the portability of techniques from one area to another. The power of efficient reductions to relate seemingly unrelated notions will unfold in later sections. We shall see that they can relate not only classification problems, but such diverse concepts as hardness to randomness; average-case to worst case difficulty; proof length to computation time; the relative power of geometric, algebraic, and logical proof systems; and last but not least, the security of electronic transactions to the difficulty of factoring integers. In a sense, efficient reductions are the backbone of computational complexity. Indeed, given that polynomial-time reductions can do all these wonders, it may not be surprising that we have a hard time characterizing the class P! Completeness We now return to classification problems. The partial order of their difficulty, provided by efficient reductions, allows us to define the hardest problems in a given class. Let C be any collection of classification problems (namely every element of C is a subset of I). Of course, here we shall mainly care about the class C = N P. Definition (Hardness and completeness). A problem D is called C-hard if for every C C we have C D. If we further have that D C then D is called C-complete.

17 Gödel Book Wigderson - rev In other words, if D is C-complete, it is a hardest problem in the class C: if we manage to solve D efficiently, we have done so for all other problems in C. It is not a priori clear that a given class has any complete problems! On the other hand, a given class may have many complete problems, and by definition, they all have essentially the same complexity. If we manage to prove that any of them cannot be efficiently solved, then we automatically have done so for all of them. It is trivial, and uninteresting, that every problem in the class P is in fact P-complete under our definition. It becomes interesting when we find such universal problems in classes of problems for which we do not have efficient algorithms. By far, the most important of all such classes is N P N P-completeness As mentioned earlier, the seminal papers of Cook [16] and Levin [40] defined N P, efficient reducibilities, and completeness, but the crown of their achievement was the discovery of a natural N P-complete problem. Definition (The problem SAT ). A Boolean formula is a logical expression over Boolean variables (that can take values in {0, 1}) with connectives,,, for example: (x 1 x 2 ) ( x 3 ). Let SAT denote the set of all satisfiable Boolean formulas (namely those formulas for which there is a Boolean assignment to the variables that gives it the value 1). Theorem ([16, 40]). SAT is N P-complete. It is a simple exercise to show that Gödel s original problem, as stated in his letter, is N P-complete as well. Moreover, he clearly understood, at least intuitively, its universal nature, captured formally by N P-completeness, a concept discovered fifteen years later. We recall again the meaning of this theorem. For every set C N P there is an efficient reduction f : I I such that x C if and only if the formula f(x) is satisfiable! Furthermore, the proof gives an extra bonus which turns out to be extremely useful: given any witness y that x C (via some verifier V C ), the same reduction converts the witness y to a Boolean assignment satisfying the formula f(x). In other words, this reduction translates not only between the decision problems, but also between the associated search problems. You might (justly) wonder how one can prove a theorem like that. Certainly the proof cannot afford to look at all problems C N P separately. The gist of the proof is a generic transformation, taking a description of the verifier V C for C and emulating its computation on input x and hypothetical witness y to create a Boolean formula f(x) (whose variables are the bits of y). This formula simply tests the validity of the computation of V C on (x, y) and that this computation outputs 1. Here the locality of algorithms (say, described as Turing machines) plays a central role, as checking the consistency of each step of the computation of V C amounts simply to a constant size formula on a few bits. To summarize, SAT captures the difficulty of the whole class N P. In particular, the P vs. N P problem can now be phrased as a question about the complexity of one problem, instead of infinitely many.

18 Gödel Book Wigderson - rev Corollary P = N P if and only if SAT P. A great advantage of having one complete problem at hand (like SAT ) is that now, to prove that another problem (say D N P) is N P-complete, we only need to design a reduction from SAT to D (namely prove SAT D). We already know that for every C N P we have C SAT, and transitivity of takes care of the rest. This idea was used powerfully in Karp s seminal paper [36]. In his paper, he listed twenty-one problems from logic, graph theory, scheduling, and geometry that are N P-complete. This was the first demonstration of the wide spectrum of N P-complete problems and initiated an industry of finding more. A few years later, Garey and Johnson [24] published their book on N P-completeness, which contains hundreds of such problems from diverse branches of science, engineering, and mathematics. Today, thousands are known, in a remarkably diverse set of scientific disciplines The Nature and Impact of N P-Completeness It is hard to do justice to this notion in a couple of paragraphs, but I shall try. More can be found in, for example, [45]. N P-completeness is a unique scientific discovery there seems to be no parallel scientific notion that pervaded so many fields of science and technology. It became a standard for hardness for problems whose difficulty we have yet no means of proving. It has been used both technically and allegorically to illustrate a difficulty or failure to understand natural objects and phenomena. Consequently, it has been used as a justification for channeling efforts to less ambitious (but more productive) directions. We elaborate below on this effect within mathematics. N P-completeness has been an extremely flexible and extensible notion, allowing numerous variants that enabled capturing universality in other (mainly computational, but not only) contexts. It led to the ability of defining whole classes of problems by single, universal ones, with the benefits mentioned above. Much of the whole evolution of computational complexity, the theory of algorithms, and most other areas in theoretical computer science has been guided by the powerful approach of reduction and completeness. It would be extremely interesting to explain the ubiquity of N P-completeness. Being highly speculative for a moment, we can make the following analogies of this mystery with similar mysteries in physics. The existence of N P- completeness in such diverse fields of inquiry may be likened to the existence of the same building blocks of matter in remote galaxies, begging for a common explanation of the same nature as the Big Bang theory. On the other hand, the near lack of natural objects in the (seemingly huge) void of problems in N P that are neither in P nor N P-complete raises questions about possible dark matter, which we have not developed the means of observing yet.

19 Gödel Book Wigderson - rev Some N P-complete Problems in Mathematics Again, I note that all N P-complete problems are equivalent in a very strong sense. Any algorithm solving one can be simply translated into an equally efficient algorithm solving any other. Conversely, if one is difficult then all of them are. I ll explore the meaning of these insights for a number of mathematical classification problems in diverse areas that are N P -complete. Why did Gödel s incompleteness theorem seemingly have such small effect on working mathematicians? A common explanation is that the unprovable and undecidable problems are far too general compared to those actively being studied. As we shall see below, this argument will not apply to the N P-complete problems we discuss. Indeed, many of these N P-completeness results were proven by mathematicians! We exemplify this point with two classification problems: 2DIO, of quadratic Diophantine equations, and KNOT, of knots on three-dimensional manifolds. 2DIO: Consider the set of all equations of the form Ax 2 + By + C = 0 with integer coefficients A, B, C. Given such a triple, does the corresponding polynomial have a positive integer root (x, y)? Let 2DIO denote the subset of triples for which the answer is yes. Note that this is a very restricted subproblem of the undecidable Hilbert s 10th problem, problem (2) from the Introduction, indeed simpler than even elliptic curves. Nevertheless: Theorem ([1]). The set 2DIO is N P-complete. KNOT: Consider the set of all triples (M, K, G), representing 17 respectively a three-dimensional manifold M, a knot K embedded on it, and an integer G. Given a triple (M, K, G), does the surface that K bounds have genus at most G? Let KNOT denote the subset for which the answer is yes. Theorem ([2]). The set KNOT is N P-complete. Recall that to prove N P-completeness of a set, one has to prove two things: that it is in N P and that it is N P-hard. In almost all N P-complete problems, membership in N P (namely the existence of short certificates) is easy to prove. For example, for 2DIO one can easily see that if there is a positive integer solution r to the equation Ax 2 + By + C = 0, then indeed there is one whose length (in bits) is polynomial in the lengths of A, B, C, and given such r it is easy to verify that it is indeed a root of the equation. In short, it is very easy to see that 2DIO N P. But KNOT is an exception, and proving KNOT N P is highly nontrivial. The short witnesses that a given knot has a small genus requires Haken s algorithmic theory of normal surfaces, considerably enhanced (even short certificates for unknottedness in R 3 are hard to obtain, see [33]). Let us discuss what these N P-completeness results mean, first about the relationship between the two and then about each individually. The two theorems above and the meaning of N P-completeness together imply that there are simple translations (in both directions) between solving 17 A finite representation can describe M by a triangulation (finite collection of tetrahedra and their adjacencies), and the knot K will be described as a link (closed path) along edges of the given tetrahedra.

20 Gödel Book Wigderson - rev DIO and problem KNOT. More precisely, it provides efficiently computable functions f, h: I I performing these translations: and (A, B, C) 2DIO if and only if f(a, B, C) KNOT, (M, K, G) KNOT if and only if h(m, K, G) 2DIO. So, if we have gained enough understanding of topology to solve, for example, the knot genus problem, it means that we automatically have gained enough number theoretic understanding for solving these quadratic Diophantine problems (and vice versa). The proofs that these problems are complete both follow by reductions from (variants of) SAT. The combinatorial nature of these reductions may cast doubt on the possibility that the computational equivalence of these two problems implies the ability of real technology transfer between topology and number theory. Nevertheless, now that we know of the equivalence, perhaps simpler and more direct reductions can be found between these problems. Moreover, we stress again that for any instance, say (M, K, G) KNOT, if we translate it using this reduction to an instance (A, B, C) 2DIO and happen (either by sheer luck or special structure of that equation) to find an integer root, the same reduction will translate that root back to a description of a genus G manifold that bounds the knot K. Today, many such N P-complete problems are known throughout mathematics, and for some pairs the equivalence can be mathematically meaningful and useful (as it is between some pairs of computational problems). But regardless of the meaning of the connection between these two problems, there is no doubt what their individual N P-completeness means. Both are mathematically nasty, as both embed in them the full power of N P. If P N P, there are no efficient algorithms to describe the objects at hand. Moreover, assuming the stronger N P con P, we should not even expect complete characterization (e.g., above we should not expect short certificates that a given quadratic equation does not have a positive integer root). In short, N P-completeness suggests that we lower our expectations of fully understanding these properties and study perhaps important special cases, variants, etc. Note that such reaction of mathematicians may anyway follow the frustration of unsuccessful attempts at general understanding. However, the stamp of N P-completeness may serve as moral justification for this reaction. I stress the word may, as the judges for accepting such a stamp can only be the mathematicians working on the problem and how well the associated N P- completeness result captures the structure they try to reveal. I merely point out the usefulness of a formal stamp of difficulty (as opposed to a general feeling) and its algorithmic meaning. The two examples above come from number theory and topology. I list below some more N P-complete problems from algebra, geometry, optimization, and graph theory. There are numerous other such problems. This will hopefully demonstrate how wide this modern Gödel phenomena is in mathematics. The discussion above is relevant to them all.

276 The P vs. NP problem is a major unsolved problem in computer science It is one of the seven Millennium Prize Problems selected by the Clay Mathematics Institute to carry a $ 1,000,000 prize for the

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

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

1 P versus NP, and More Great Ideas in Theoretical Computer Science Saarland University, Summer 2014 If you have tried to solve a crossword puzzle, you know that it is much harder to solve it than to verify

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

Introduction to computer science Michael A. Nielsen University of Queensland Goals: 1. Introduce the notion of the computational complexity of a problem, and define the major computational complexity classes.

Some N P problems Computer scientists have studied many N P problems, that is, problems that can be solved nondeterministically in polynomial time. Traditionally complexity question are studied as languages:

CONSTRUCTION OF THE FINITE FIELDS Z p S. R. DOTY Elementary Number Theory We begin with a bit of elementary number theory, which is concerned solely with questions about the set of integers Z = {0, ±1,

Chapter 23 Squares Modulo p Revised Version of Chapter 23 We learned long ago how to solve linear congruences ax c (mod m) (see Chapter 8). It s now time to take the plunge and move on to quadratic equations.

Primality - Factorization Christophe Ritzenthaler November 9, 2009 1 Prime and factorization Definition 1.1. An integer p > 1 is called a prime number (nombre premier) if it has only 1 and p as divisors.

Content Area: Mathematics Grade Level Expectations: High School Standard: Number Sense, Properties, and Operations Understand the structure and properties of our number system. At their most basic level

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

Lecture 19 NP-Completeness I 19.1 Overview In the past few lectures we have looked at increasingly more expressive problems that we were able to solve using efficient algorithms. In this lecture we introduce

CHAPTER 7 GENERAL PROOF SYSTEMS 1 Introduction Proof systems are built to prove statements. They can be thought as an inference machine with special statements, called provable statements, or sometimes

Million Dollar Mathematics! Alissa S. Crans Loyola Marymount University Southern California Undergraduate Math Day University of California, San Diego April 30, 2011 This image is from the Wikipedia article

We Can Early Learning Curriculum PreK Grades 8 12 INSIDE ALGEBRA, GRADES 8 12 CORRELATED TO THE SOUTH CAROLINA COLLEGE AND CAREER-READY FOUNDATIONS IN ALGEBRA April 2016 www.voyagersopris.com Mathematical

Computational complexity theory Goal: A general theory of the resources needed to solve computational problems What types of resources? Time What types of computational problems? decision problem Decision

TOPOLOGY: THE JOURNEY INTO SEPARATION AXIOMS VIPUL NAIK Abstract. In this journey, we are going to explore the so called separation axioms in greater detail. We shall try to understand how these axioms

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

This document is designed to help North Carolina educators teach the Common Core (Standard Course of Study). NCDPI staff are continually updating and improving these tools to better serve teachers. Algebra

Universality in the theory of algorithms and computer science Alexander Shen Computational models The notion of computable function was introduced in 1930ies. Simplifying (a rather interesting and puzzling)

MA257: INTRODUCTION TO NUMBER THEORY LECTURE NOTES 2016 47 4. Diophantine Equations A Diophantine Equation is simply an equation in one or more variables for which integer (or sometimes rational) solutions

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(

Entry Level College Mathematics: Algebra or Modeling Dan Kalman Dan Kalman is Associate Professor in Mathematics and Statistics at American University. His interests include matrix theory, curriculum development,

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.

THE TURING DEGREES AND THEIR LACK OF LINEAR ORDER JASPER DEANTONIO Abstract. This paper is a study of the Turing Degrees, which are levels of incomputability naturally arising from sets of natural 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

NP-complete? NP-hard? Some Foundations of Complexity Prof. Sven Hartmann Clausthal University of Technology Department of Informatics Tractability of Problems Some problems are undecidable: no computer

NEW YORK STATE TEACHER CERTIFICATION EXAMINATIONS TEST DESIGN AND FRAMEWORK September 2014 Authorized for Distribution by the New York State Education Department This test design and framework document

The van Hoeij Algorithm for Factoring Polynomials Jürgen Klüners Abstract In this survey we report about a new algorithm for factoring polynomials due to Mark van Hoeij. The main idea is that the combinatorial

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

3.1 Algorithm complexity The algorithms A, B are given. The former has complexity O(n 2 ), the latter O(2 n ), where n is the size of the instance. Let n A 0 be the size of the largest instance that can

Math 4310 Handout - Quotient Vector Spaces Dan Collins The textbook defines a subspace of a vector space in Chapter 4, but it avoids ever discussing the notion of a quotient space. This is understandable

Academic Content Standards Grade Eight Ohio Pre-Algebra 2008 STANDARDS Number, Number Sense and Operations Standard Number and Number Systems 1. Use scientific notation to express large numbers and small

David Harvey (joint work with Edgar Costa, NYU) University of New South Wales 25th October 2011 The obvious mathematical breakthrough would be the development of an easy way to factor large prime numbers

Chapter 1 NP Completeness I By Sariel Har-Peled, December 30, 2014 1 Version: 1.05 "Then you must begin a reading program immediately so that you man understand the crises of our age," Ignatius said solemnly.

Theorem (informal statement): There are no extendible methods in David Chalmers s sense unless P = NP. Explication: In his paper, The Singularity: A philosophical analysis, David Chalmers defines an extendible

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

Theoretical Computer Science (Bridging Course) Complexity Gian Diego Tipaldi A scenario You are a programmer working for a logistics company Your boss asks you to implement a program that optimizes the

Algebra 1 Course Overview Students develop algebraic fluency by learning the skills needed to solve equations and perform important manipulations with numbers, variables, equations, and inequalities. Students

8 Primes and Modular Arithmetic 8.1 Primes and Factors Over two millennia ago already, people all over the world were considering the properties of numbers. One of the simplest concepts is prime numbers.

Performance Assessment Task Quadratic (2009) Grade 9 The task challenges a student to demonstrate an understanding of quadratic functions in various forms. A student must make sense of the meaning of relations

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.,

Chapter 1 DEGREE OF A CURVE Road Map The idea of degree is a fundamental concept, which will take us several chapters to explore in depth. We begin by explaining what an algebraic curve is, and offer two

Integer Polynomials June 9, 007 Yufei Zhao yufeiz@mit.edu We will use Z[x] to denote the ring of polynomials with integer coefficients. We begin by summarizing some of the common approaches used in dealing

Chapter 3 Sequences In this chapter, we discuss sequences. We say what it means for a sequence to converge, and define the limit of a convergent sequence. We begin with some preliminary results about the

Big Ideas in Mathematics which are important to all mathematics learning. (Adapted from the NCTM Curriculum Focal Points, 2006) The Mathematics Big Ideas are organized using the PA Mathematics Standards

CMSC 858T: Randomized Algorithms Spring 2003 Handout 8: The Local Lemma Please Note: The references at the end are given for extra reading if you are interested in exploring these ideas further. You are

Complexity Classes P and NP MATH 3220 Supplemental Presentation by John Aleshunas The cure for boredom is curiosity. There is no cure for curiosity Dorothy Parker Computational Complexity Theory In computer

PowerTeaching i3: Algebra I Mathematics Alignment to the Common Core State Standards for Mathematics Standards for Mathematical Practice and Standards for Mathematical Content for Algebra I Key Ideas and

Factoring Polynomials Hoste, Miller, Murieka September 12, 2011 1 Factoring In the previous section, we discussed how to determine the product of two or more terms. Consider, for instance, the equations

Chapter 1. Computation theory In this chapter we will describe computation logic for the machines. This topic is a wide interdisciplinary field, so that the students can work in an interdisciplinary context.