=========================================================================== CSC 165H Lecture Summary for Week 6 Winter 2004 =========================================================================== ------------------------ Generating direct proofs ------------------------ Direct proof is hard when there are lots of known results to consider. To find the chain from p(x) to q(x) you gather two lists of results about x: 1. results that p(x) implies 2. results that imply q(x) p(x) r_1(x) r_2(x) ... ?->? ... s_2(x) s_1(x) q(x) Anything that a result in the first list implies can be added to that list. And anything that implies a result in the second list can be added to that list. Let's visualize this process... [A. Venn diagram of p inside q. r_i as containing p, but possibly not inside q (dead ends). s_i as inside q, but possibly not containing p (dead ends). B. Two trees growing from p and q, hoping to touch.] You hope to eventually have a result from the 1st list imply one in the 2nd. Are you done then? No, now you write it up nicely, removing the results that didn't contribute to the final chain you discovered, and mentioning which results got the results about x where appropriate. ---------------- Effect of /\, \/ ---------------- We can view the two lists as saying: \-/ x in D, p(x) -> r_1(x) /\ r_2(x) /\ ... /\ r_m(x). \-/ x in D, s_1(x) \/ s_2(x) \/ ... \/ s_n(x) -> q(x). Assuming p(x), all the r_i(x) are true so any /\ of them is also true. Instead of putting these /\'d results in the list people just do it in their heads when they find a known result \-/ x in D, r_1(x) /\ r_2(x) -> r(x), and then they add r(x) to the list. When writing up the proof one often mentions r_1(x) and r_2(x) as part of the reason for r(x). Somewhat conversely, if a result on the 1st list is of the form r_1(x) /\ r_2(x), then we can add both r_1(x) and r_2(x) to the list. For the 2nd list, the above all holds for \/ instead of /\. For r(x) in the 1st list, we can add r(x) \/ anything, since r(x) -> r(x) \/ anything. Similarly for /\ in the 2nd list. If r_1(x) \/ r_2(x) is in the 1st list, we can of course use it if we have a result: \-/ x in D, r_1(x) \/ r_2(x) -> q(x). We can also use it if we have two results: \-/ x in D, r_1(x) -> q(x). \-/ x in D, r_2(x) -> q(x). We leave it as an exercise to consider the interaction of /\ and the 2nd list. ----------- Effect of ~ ----------- When looking for what r(x) implies, consider also \-/ x in D, t(x) -> ~r(x). From the contrapositive you get ~t(x). Exercise: how about for things implying q(x)? ------------- Effect of <-> ------------- A result \-/ x in D, r(x) <-> t(x) is simply two implications in one. Notice that if r(x) -> q(x) then t(x) -> q(x) (as opposed to if just r(x) -> t(x)). So using t(x) tends to lead to fewer dead ends than if we used something just implied by r(x). ----------------------------------- Direct proof structure of universal ----------------------------------- The general form of a direct proof of \-/ x in D, p(x) -> q(x) is Let x in D. [introducing new variable x] Suppose p(x). ___ [fill in proof of q(x)] Therefore q(x). Hence p(x) -> q(x). Since x is an arbitrary element of D, \-/ x in D, p(x) -> q(x). Example: R = the set of real numbers \-/ x in R, x > 0 -> 1/(x + 2) < 3. Direct proof structure: Let x in R. Suppose x > 0. ___ Therefore 1/(x + 2) < 3. Hence x > 0 -> 1/(x + 2) < 3. Since x is an arbitrary real number, \-/ x in R, x > 0 -> 1/(x + 2) < 3. A full proof would fill in the "___": x + 2 > 2 since x > 0. 1/(x + 2) < 1/2 since x + 2 > 2 and 2 > 0. So 1/(x + 2) < 3 since 1/(x + 2) < 1/2 and 1/2 < 3. Exercise: is the converse true? If there is no implication: \-/ x in D, q(x), then we simply don't assume anything extra about x in the proof structure: Let x in D. ___ [proof of q(x)] Hence q(x). Since x is ..., \-/ x in D, q(x). ------------------------------------- Direct proof structure of existential ------------------------------------- Consider this example: -] x in R, x^3 + 2x^2 + 3x + 4 = 2. Here's a direct proof: Let x = -1. Then x in R. Also, x^3 + 2x^2 + 3x + 4 = (-1)^3 + 2(-1)^2 + 3(-1) + 4 = -1 + 2 -3 + 4 = 2. General form of direct proof of -] x in D, q(x): Let x = ___ [pick a specific value, unlike for universal] ___, so x in D. [often obvious from way we constructed x] ___ [proof of q(x)] Hence q(x). Therefore, -] x in D, q(x). -------------------- Multiple quantifiers -------------------- Multiple quantifiers cause nesting. Example: Let I = the set of integers (1) \-/ x in I, -] y in I, y > x (2) -] y in I, \-/ x in I, y > x In English: (1) Every integer is smaller than some integer. (2) Some integer is greater than every integer. Notice that the order of the quantifiers changes the meaning. (1) and (2) are *not* equivalent. Direct proof structure of (1): Let x in I Let y = ___ ___ [proof y > x] Hence, y > x Therefore, -] y in I, y > x Since x is an arbitrary integer, \-/ x in I, -] y in I, y > x (1) is true. Fill in the blanks: Let y = x + 1 Proof of y > x: x + 1 > x (by arithmetic) y > x (by y = x + 1) Direct proof structure of (2): Let y = ___ Then, y in I Let x in I ___ [proof of y > x] Hence, y > x Since x is an arbitrary integer, \-/ x in I, y > x Therefore, -] y in I, \-/ x in I, y > x (2) is false. How would you prove that (2) is false? Negate it and prove that the negation is true. Another example: Example: \-/ e in R, e > 0 -> -] d in R, d > 0 /\ \-/ x in R, 0 < |x - a| < d -> |f(x) - l| < e. Proof structure: Let e in R. Suppose e > 0. Let d_e = ___. [emphasizes it may depend on variables above] Then, d_e in R. Let x in R. Suppose 0 < |x - a| < d_e. ___ [proof that |f(x) - l| < e] Hence, 0 < |x - a| < d -> |f(x) - l| < e. Since x is an arbitrary real number, \-/ x in R, 0 < |x - a| < d -> |f(x) - l| < e. Also, d_e > 0. Therefore, -] d in R, d > 0 /\ \-/ x in R, 0 < |x - a| < d -> |f(x) - l| < e. Hence, e > 0 -> -] d in R, d > 0 /\ \-/ x in R, 0 < |x - a| < d -> |f(x) - l| < e. Since e is an arbitrary real number, \-/ e in R, e > 0 -> -] d in R, d > 0 /\ \-/ x in R, 0 < |x - a| < d -> |f(x) - l| < e. Notice direct structure to prove p /\ q: ___ p ___ q Keep them separate! Don't let variables introduced in one "bleed" into the other. How about proof that example statement is false? Using what we know about ~ \-/ x P, ~ -] x P, ~ (P -> Q), etc., restate the negation of the statement: ~ ( \-/ e in R, e > 0 -> -] d in R, d > 0 /\ \-/ x in R, 0 < |x - a| < d -> |f(x) - l| < e ) <=> -] e in R, ~ ( e > 0 -> -] d in R, d > 0 /\ \-/ x in R, 0 < |x - a| < d -> |f(x) - l| < e ) <=> -] e in R, e > 0 /\ ~ ( -] d in R, d > 0 /\ \-/ x in R, 0 < |x - a| < d -> |f(x) - l| < e ) <=> -] e in R, e > 0 /\ \-/ d in R, ~ ( d > 0 /\ \-/ x in R, 0 < |x - a| < d -> |f(x) - l| < e ) <=> -] e in R, e > 0 /\ \-/ d in R, ~ (d > 0) \/ ~ ( \-/ x in R, 0 < |x - a| < d -> |f(x) - l| < e ) <=> -] e in R, e > 0 /\ \-/ d in R, d > 0 -> ~ ( \-/ x in R, 0 < |x - a| < d -> |f(x) - l| < e ) <=> -] e in R, e > 0 /\ \-/ d in R, d > 0 -> -] x in R, ~ ( 0 < |x - a| < d -> |f(x) - l| < e ) <=> -] e in R, e > 0 /\ \-/ d in R, d > 0 -> -] x in R, 0 < |x - a| < d /\ ~ (|f(x) - l| < e) Once we have this, we can write proof structure step-by-step, just like above.