Föreläsning 3: Bevismetoder II. Mängder Vill bevisa p → q, där p kan vara konjunktion av hypoteser. Försök först med direkt bevis. • Direkt bevis. Enligt tidigare, t ex beviset att kor inte äter kronärtskockor. Fungerar det inte med direkt bevis, pröva med ett: • Indirekt bevis = direkt bevis av kontrapositivet, ¬q → ¬p Antag konklusionen q är falsk, och visa att p då är falsk. Obs: om p är en konjunktion av hypoteser räcker det att visa att en är falsk. Exempel: Om x2 är jämnt så är x jämnt Bevis: Antag x är udda = 2j + 1, något heltal j. Då är x2 = (2j + 1)2 = 4j 2 + 4j + 1, vilket inte är jämnt då de två första termerna är jämna. Antagandet måste vara falskt, dvs x är jämnt. 2 • Motsatsbevis. Visa att ¬p leder till en motsägelse. Därmed är ¬p falsk, dvs p sann. Exempel: Det finns inget största primtal Antag påståendet är falskt, dvs att det finns ett största primtal, kalla det s. Bilda produkten av alla dessa primtal, t = 2 · 3 · 5 · 7 · 11 · · · s. Men t + 1 är ett primtal större än s. (Varför?) Detta motsäger antagandet att det finns ett största primtal. 2 Ett indirekt bevis kan formuleras som ett motsatsbevis: Antag både p och ¬q sanna och visa ¬q → ¬p genom direkt bevis. Därmed har vi p ∧ ¬p, en motsägelse. • Bevis av ekvivalens. Visa omm (dvs p ↔ q) genom att visa p → q och q → p. Existensbevis Vill visa att ∃xP (x) är sann. • Konstruktivt existensbevis. Visa P (c) sann för något c i universalmängden. Exempel: Det finns en heltalslösning till x2 + y 2 = z 2 Bevis: Välj x = 3, y = 4, z = 5. 2 • Icke-konstruktivt existensbevis. Antag inget c finns som gör P (c) sann och härled en motsägelse Exempel: Det finns ett irrationellt tal Bevis: Antag det inte finns ett irrationellt tal. Då är alla tal rationella, och mängden av alla tal är uppräknelig. Men de reella talen i [0,1] är inte uppräkneliga (vi visar detta i föreläsning 5). Alltså måste det finnas irrationella tal. 2 1 Icke-existensbevis Vill visa att ¬∃xP (x) är sann. Använd ett motsatsbevis genom att anta att det finns ett c som gör P (c) sann. Exempel: Stopp-problemet är oavgörbart Det finns inget program som alltid kan avgöra om ett godtyckligt program p stoppar. För att förenkla argumentet betrakta program utan indata. Bevis: Antag det finns ett sådant program STOPP: STOPP(p) if p stoppar then skriv ”ja” och stoppa else skriv ”nej” och stoppa Vi kan då konstruera en annan procedur: ABSURD if STOPP(ABSURD) = ”ja” then while true do skriv ”ha” Om ABSURD stoppar (enligt STOPP) skrivs en sekvens ”hahaha. . .”, dvs proceduren stoppar inte. Om ABSURD inte stoppar så avslutas proceduren, dvs stoppar. Dvs, ABSURD stoppar om den inte gör det, och stoppar inte om den stoppar. Motsägelse! Programmet STOPP kan inte existera. 2 Mängder En mängd är en samling objekt (element i mängden). Måste finnas en underliggande universalmängd, eller domän, U (specificerad eller underförstådd). • kan räkna upp elementen: S = {a, b, c, d} = {b, c, a, d, d} (ordning eller upprepningar betyder inget) • kan specificeras genom predikat (som anger egenskap): S = {x| P (x)} (alla element från U för vilka P är sann) • oändlig uppräkning: t ex S = {. . . , −3, −2, −1}, de negativa heltalen Vanliga universalmängder R, reella talen Z, heltalen = {. . . , −2, −1, 0, 1, 2, . . .} Z+ , positiva heltalen = {1, 2, 3, . . .} N, naturliga talen = {0, 1, 2, 3, . . .}, icke-negativa heltalen Q, rationella talen = {i/j| i, j ∈ Z ∧ j 6= 0} Notation: x ∈ S, x tillhör S (dvs, x är ett element i S); x 6∈ S, x tillhör inte S. 2 Delmängder • A ⊆ B: mängden A är en delmängd av B omm ∀x[x ∈ A → x ∈ B] • Den tomma mängden, ∅ = {}, har inga element Obs: ∅ är en delmängd av varje mängd • En mängd är alltid en delmängd av sig själv • A 6⊆ B: finns x ∈ A som inte tillhör B • A = B: A ⊆ B ∧ B ⊆ A • A ⊂ B: A är en äkta delmängd av B (A ⊆ B men A 6= B) • P (A), potensmängden av A: mängden av alla delmängder av A Exempel: A = {a}. ∅ är delmängd av A men inte element i A. Däremot är ∅ element i P (A) = {∅, {a}}. Exempel: A = {a, b}, P (A) = {∅, {a}, {b}, {a, b}} • |A|, kardinaliteten av A: antalet element i A Exempel: |∅| = 0, |{∅}| = 1. Om kardinaliteten är ett naturligt tal (∈ N) så är mängden ändlig, annars oändlig. Exempel: A = {a, b}, |A| = 2, |P (A)| = 4 (ändlig), enligt ovan. Användbart faktum: |A| = n medför |P (A)| = 2n Obs: Mängder kan vara både element och delmängder av andra mängder. Exempel: A = {∅, {∅}} har två element och därmed fyra delmängder: ∅, {∅}, {{∅}}, {∅, {∅}}. Notera att i detta exempel är ∅ både element och delmängd av A. Russels paradox: Låt S vara mängden av alla mängder som inte är element av sig själva. Är S ett element av S? Alternativ version: Sven är en barberare som rakar alla som inte rakar sig själva. Rakar Sven sig själv? Cartesisk produkt A × B är mängden av ordnade par {ha, bi| a ∈ A ∧ b ∈ B}. Obs: cartesisk produkt med ∅ och annan mängd är ∅. Varför? Exempel: A = {a, b}, B = {1, 2, 3} A × B = {ha, 1i, ha, 2i, ha, 3i, hb, 1i, hb, 2i, hb, 3i} Vad är B × A ? Om |A| = m och |B| = n, vad är |A × B| ? 3 Mängdoperationer A ∪ B är unionen av A och B, {x|x ∈ A ∨ x ∈ B} A ∩ B är snittet av A och B, {x|x ∈ A ∧ x ∈ B} A och B är disjunkta om A ∩ B = ∅ A − B är differensen mellan A och B, A ∩ B A är komplementet av A, {x|¬(x ∈ A)} = {x|x 6∈ A} = U − A Exempel: U = {0, 1, 2, . . . , 10}, A = {1, 2, 3, 4, 5}, B = {4, 5, 6, 7, 8} • A ∪ B = {1, 2, 3, 4, 5, 6, 7, 8} • A ∩ B = {4, 5} • A = {0, 6, 7, 8, 9, 10} • B = {0, 1, 2, 3, 9, 10} • A − B = {1, 2, 3} • B − A = {6, 7, 8} Venndiagram En geometrisk visualisering: universalmängden U är en rektangel och varje annan mängd representeras av en skiva. Alla kombinationer av mängderna måste finnas med. U '$ '$ A U B &% &% '$ '$ '$ &% &% A B C &% Skugga lämplig yta för att representera given mängdoperation. Mängdidentiteter Motsvarar logiska ekvivalenser i föreläsning 1. Exempel: Komplementet av unionen är snittet av komplementen: A ∪ B = A ∩ B Analogt med ¬(p ∨ q) ≡ ¬p ∧ ¬q. Exempel: A ∩ B = A ∪ B Datarepresentation av mängder Om U = {a1 , a2 , . . . , an } inte är alltför stor kan elementen i delmängder A representeras som bitsträngar av längd n, där i:te biten = 1 om ai ∈ A. Exempel: U = {1, 2, 3, . . . , 10}. A = {2, 3, 5, 7} representeras som 0110101000. 4