MATH 224 – Discrete Mathematics Predicate Calculus Some of the statements that are important in mathematics and computer science are not propositions. For example, X % 2 == 0 is not true for all integers, but only even integers. In order to make statements about the truth of this type of statement, it is necessary to introduce the quantifiers for all and there exists . So for example, we can make a statement about an array of integers such as the upper bound below. Given an array of integers A, a statement such as is of course true for every element of A. 4/23/2017
MATH 224 – Discrete Mathematics Predicate Calculus Predicate calculus allows us to make precise statements about the properties of a specific data structure. Consider the example below. * Can you rewrite the predicate above using the conditional connective? *Note that the set of allowable values for i is called the domain. Thus in this example, the domain is the set of integers for i between 0 and N – 2. 4/23/2017
MATH 224 – Discrete Mathematics Predicate Calculus Predicate calculus allows us to make precise statements about the properties of a specific data during the execution of an algorithm. Consider the example below. What is the domain for Y? What about the domain for X? How would you quantify X? 4/23/2017
MATH 224 – Discrete Mathematics Predicate Calculus What are some values for n0 and c that will make the predicate clause above true? In the discussion above, what does the integer N refer to? 4/23/2017
MATH 224 – Discrete Mathematics Substitution of Quantifiers What are the equivalent predicates for the following with replaced by and replaced by ? 4/23/2017
MATH 224 – Discrete Mathematics Order of Quantifiers Look back at Slide 1. How would express the fact that there is one upper bound for all elements in the array A? Now look at Slide 3. How would express the invariant for the bean algorithm using quantifiers for both X and Y? 4/23/2017
MATH 224 – Discrete Mathematics Order of Quantifiers 4/23/2017
MATH 224 – Discrete Mathematics Proofs In the predicate calculus, it is not possible to use truth tables to prove most results since statements depend on one or more variables. This makes the job of proving results quite a bit more difficult. Would it be possible to use truth tables if the domain(s) of the variable(s) are finite? Logical systems consists of a set of definitions, axioms, and rules of inference. The axioms, also called postulates, are taken to be true without proof. The rules of inference tell us how to derive new results from axioms and from theorems that have already been proven. This mimics the way people make decisions about the “real” world. We have already seen examples of the use of inference in deriving a sequence of equivalences in order to show that a compound proposition is a tautology. 4/23/2017
MATH 224 – Discrete Mathematics Proofs Let’s consider a simple example. We observe that whenever water is boiling if we measure it’s temperature it will be 100o C. This then becomes one of our axioms. Later we find a pot of water that is boiling. Without measuring its temperature we conclude that the temperature is 100o C. This is an example of the rule of inference called modus pones. In table 1, on Page 66, 8 rules of inference for the propositional calculus are listed, but only the first one is needed if we start with an appropriate set of axioms. The three axioms listed below are sufficient to prove any result in the propositional calculus. Of course it is almost always easier to use truth table. A → (B → A) (A → (B → C)) → ((A → B) → (A → C)) (¬B → ¬A) → ((¬B → A) → B) Show that each of these is a tautology using truth tables. 4/23/2017
MATH 224 – Discrete Mathematics Proofs With quantifiers additional axioms and rules of inference are needed. We will not consider the technical details of the predicate calculus but will proceed to consider several informal proofs using the rules of inference in Table 1 on page 66 and Table 2 on page 70 from our text book. Modus pones states that given p is true and given that p → q it follows that q is true. This rule corresponds to the definition of the conditional statement. In fact, all the other rules of inference for the propositional calculus can be proved from this one and the axioms. Table 2 shows the additional rules needed for the predicate calculus. 4/23/2017
MATH 224 – Discrete Mathematics Propositional Calculus Proof Example 7 on page 67 - 68 from our textbook: Given p → q, ¬p → r, r → s, prove that ¬q → s p → q Given (or Hypothesis) ¬q → ¬ p Contrapositve (an equivalence from section 1.2) ¬p → r Given ¬q → r Hypothetical syllogism from steps 2 and 3 (transitive) r → s Given ¬q → s Hypothetical syllogism from steps 4 and 5 4/23/2017
MATH 224 – Discrete Mathematics Propositional Calculus Proof Here is another example. Given ¬p → ¬q, ¬p → q, prove p. ¬ p → q Given (or Hypothesis) p v q Equivalence , Table 7, Page 25 ¬p → ¬q Given p v ¬q Equivalence , Table 7, Page 25 (p v p) Resolution steps 2 and 4 p Idempotent law, Table 6, Page 24 4/23/2017
MATH 224 – Discrete Mathematics Propositional Calculus Proof Here is another proof for: Given ¬p → ¬q, ¬p → q, prove p. (¬B → ¬A) → ((¬B → A) → B) ¬p → ¬q Given (¬p → ¬q) → ((¬p → q) → p) Axiom 3, where p correspond to B and q to A (¬p → q) → p Modus Pones steps 1 and 2 ¬p → q Given p Modus Pones steps 3 and 4 4/23/2017
MATH 224 – Discrete Mathematics Proofs Example of a direct proof: Prove that the sum of two even numbers is even. Let X and Y be even numbers. Then by the definition of even A(X = 2A) and B(Y = 2B). Thus X + Y = 2A + 2B = 2(A+B). By the definition of even, 2(A+B) is even and thus X plus Y is even. Using formal notation we have ( X, Y)( X even Y even → X + Y is even) 4/23/2017
MATH 224 – Discrete Mathematics Proof Strategies Direct proofs are the most obvious, but sometimes other techniques are useful. These include: Indirect proofs – instead of p → q prove the contrapositive that ¬q → ¬p Proof by contradiction – instead of proving that q is true assume that q is false. Then show this leads to a contradiction. An example would be to show that the √2 is irrational by assuming that it is rational. This will lead to a contradiction. Proof by cases – here the proof is broken down in to separate cases. This is a common techniques used with algorithms. Existence proofs – prove that something is true by providing an example. For example, prove that there is a prime number larger than 100 by giving an example. Or in some other cases it is easier to prove that something exists, but difficult to find an example. Counter examples – are used to prove that something is not true. For example, if asked to prove that the square root of every rational number is rational, show that the integer 5 contradicts this statement 4/23/2017
MATH 224 – Discrete Mathematics Examples Direct Proof: Proof that opposite angles of two intersection lines are equal. Use the premise that angles forming a straight line are always 180O. α θ β λ Angles α + β = 180O and angles α + θ = 180O. Hypothesis Angle β = 180O ─ α and angle θ = 180O ─ α . Algebra Therefore opposite angles β and θ are equal. 4/23/2017
MATH 224 – Discrete Mathematics Examples Proof by Contradiction: Proof that opposite angles of two intersection lines are equal. Use the premise that angles forming a straight line are always 180O. α θ β λ Angles α + β = 180O and angles α + θ = 180O. Hypothesis Assume that β ≠ θ. Assumption Angle β = 180O ─ α and angle θ = 180O ─ α . Algebra Then 180O ─ α ≠ 180O ─ α. Algebra But the previous statement cannot be true and is a contradiction. Therefore the opposite angles α and β must be equal. 4/23/2017
MATH 224 – Discrete Mathematics Examples Existence Proof (Non constructive): (Often non constructive proofs assume something does not exist and then show a contradiction.) Prove that there are computational problems that cannot be solved by a computer . Computer memory can be viewed as one large integer, and thus the maximum number of programs that may be constructed is equal to 2B, where B is the total number of bits of memory. (Even with infinite memory, this number is countable as long as no program uses an infinite number of bits.) The number of different problems that require different programs to solve is infinite, and in fact uncountable. In fact, there are an uncountable number of problems with a yes or no answer. Therefore, there exist problems that cannot be solved by a computer. Here is an example of a problem that cannot be solved by a computer. Find a program that takes as input a problem description and a student’s programming solution. Determine if the student’s program is correct. 4/23/2017