Hoofdstuk 4 Propositierekenen 4.1 Inleiding In dit hoofdstuk maken we kennis met propositierekenen of propositiecalculus. Na het introduceren van de taal (alfabet en syntax) en 4 afleidingsregels, stellen we een lijst van axioma’s voorop. Uit die axioma’s zullen we a.d.h.v. formeel redeneren stellingen brouwen. Behalve in die stellingen zelf, zijn we vooral ge¨ınteresseerd in technieken om afleidingen of bewijzen van stellingen te bekomen (opnieuw in calculationele stijl). Deze manipulatie van symbolen verloopt volledig op syntactisch niveau. Pas daarna zullen we betekenis hechten aan de taal. Tenslotte illustreren we het gebruik van propositierekenen voor het ontwerpen van digitale schakelingen. 4.1.1 Alfabet en syntax Net als bij de eenvoudige wiskundige uitdrukkingen is het alfabet van de propositiecalculus samengesteld uit veranderlijken, constanten, unaire en binaire operatoren. Ook de syntax is analoog. Definitie 22 (Taal van het propositierekenen) De syntax wordt vastgelegd door de volgende herschrijfregels: propositie applicatie veranderlijke constante cop 1 cop 2 ::= ::= ::= ::= ::= ::= veranderlijke | constante | applicatie . (cop 1 propositie )|(propositie cop 2 propositie ). x | y | z. 0 | 1. ¬. ≡ | 6≡ | ∨ | ∧ | ⇒ | ⇐ . Een zin voortgebracht door het startsymbool propositie noemen we een propositie. De verzameling van alle proposities noteren we als P , en met V bedoelen we zoals gewoonlijk de verzameling van veranderlijken. I.p.v. propositie spreekt men soms ook over een goed gevormde formule (Engels: well–formed formula, kortweg wff). Opnieuw zullen we een aantal afspraken maken om het gebruik van haakjes binnen de perken te houden. 37 38 HOOFDSTUK 4. PROPOSITIEREKENEN Afspraak 3 (Reductie van haakjes) • Zoals gebruikelijk mogen we de buitenste haakjes probleemloos weglaten (probleemloos omdat we ze op ondubbelzinnige wijze terug kunnen plaatsen). • Haakjes rond de applicatie van een operator mogen weggelaten worden indien die applicatie optreedt als ´e´en van de argumenten van een binaire operator met lagere prioriteit. De prioriteit is als volgt geregeld: – De unaire operator ¬ heeft een hogere prioriteit dan de binaire operatoren. – De binaire operatoren worden als volgt gerangschikt van hoogste naar laagste prioriteit: ∨ en ∧, ⇒ en ⇐, ≡ en 6≡. ∧ en ∨ zitten dus op hetzelfde niveau, dat hoger is dan dat van ⇒ en ⇐. ≡ en 6≡ zitten op het laagste niveau. • Haakjes rond een applicatie van ¬ mogen weggelaten worden. • ⇒ is rechtsassociatief. x ⇒ y ⇒ z staat dus voor x ⇒ (y ⇒ z) • ⇐ is linksassociatief. x ⇐ y ⇐ z staat dus voor (x ⇐ y) ⇐ z Voorbeeld 29 Voorbeelden van proposities zijn x 1 ¬¬x x ⇒ y ¬x ∨ 0 (x ⇒ y) ∧ (y ⇒ x) ≡ (x ≡ y) Voorbeeld 30 Wanneer we schrijven x ⇒ y ⇒ (x ∧ z) dan bedoelen we x ⇒ (y ⇒ (x ∧ z)) en dus niet (x ⇒ y) ⇒ (x ∧ z). Anderzijds, wanneer we schrijven x ⇐ y ⇐ (x ∧ z) dan bedoelen we (x ⇐ y) ⇐ (x ∧ z) en dus niet x ⇐ (y ⇐ (x ∧ z)). Afspraken omtrent het weglaten van haakjes m.b.t. associativiteit van de andere binaire operatoren zullen we maken bij het introduceren van de axioma’s (omdat die een verantwoording geven voor die afspraken). De operatoren uit de propositiecalculus hebben allemaal een eigen naam die nauw samenhangt met de gebruikelijke semantiek die eraan gehecht wordt. We zullen deze semantiek pas op het einde van dit hoofdstuk bespreken, maar in onderstaande tabel vermelden we alvast de gebruikelijke benamingen om vlotter over proposities te kunnen spreken in natuurlijke taal. symbool ¬ ≡ omschrijving negatie (ontkenning) equivalentie ¬x x≡y ∨ ∧ ⇒ inequivalentie exclusieve of disjunctie conjunctie implicatie x∨y x∧y x⇒y ⇐ gevolg x⇐y 6≡ x 6≡ y lees als niet x x is equivalent met y x is nodig en voldoende voor y x is niet equivalent met y x xor y x of y x en y x impliceert y, als x dan y x is voldoende voor y x volgt uit y x is nodig voor y 39 4.1. INLEIDING Binnen het propositierekenen vervult ≡ de rol van gelijkheid. In x∨y worden x en y disjuncten genoemd. In x ∧ y worden x en y conjuncten genoemd. In x ⇒ y is x het antecedent en y het consequent. Substitutie van een (lijst van) veranderlijke(n) v door een (lijst van) propositie(s) q in een propositie p, d.w.z. p[v := q] of p[vq verloopt volledig analoog als bij de eenvoudige wiskundige uitdrukkingen. We zullen verder p, q, r en s gebruiken om willekeurige proposities aan te duiden, en v voor een willekeurige veranderlijke. 4.1.2 Formeel redeneren Een afleidingsregel in de propositiecalculus is een tabel van de vorm Pq met P een collectie van proposities (de premissen) en q een propositie (het consequent). We maken gebruik van 4 afleidingsregels waarvan we er reeds 3 kennen, namelijk Afleidingsregel 1 (Transitiviteit) p ≡ q, q ≡ r p≡r voor alle proposities p, q en r. Afleidingsregel 2 (Principe van Leibniz) p≡q r[v := p] ≡ r[v := q] voor alle proposities p, q en r en elke veranderlijke v. Afleidingsregel 3 (Instantiatie van een stelling) p p[v := q] voor elke stelling p, (lijst van) veranderlijke(n) v en (lijst van) propositie(s) q. We herinneren eraan dat een stelling de conclusie is van een afleiding waarvan de aannames axioma’s zijn. Een propositie q is een conclusie van aannames H indien • ofwel q tot H behoort • ofwel q het consequent is van een afleidingsregel waarvan de premissen conclusies zijn van de aannames uit H Om de propositiecalculus krachtig genoeg te maken, voegen we nog een vierde afleidingsregel toe. Afleidingsregel 4 (Gelijkgestemdheid) p, p ≡ q q voor alle proposities p en q. Een afleiding of bewijs van een stelling is een georganiseerde weergave van hoe die stelling wordt afgeleid uit axioma’s. We gebruiken hiervoor de calculationele stijl. 40 HOOFDSTUK 4. PROPOSITIEREKENEN Axioma Axioma Axioma Axioma Axioma Axioma Axioma Axioma Axioma Axioma Axioma Axioma Axioma Axioma 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Associativiteit van ≡ Symmetrie van ≡ Definitie van 1 Definitie van 0 Semi–distributiviteit van ¬ t.o.v. ≡ Definitie van 6≡ Symmetrie van ∨ Associativiteit van ∨ Idempotentie van ∨ Distributiviteit van ∨ t.o.v. ≡ Uitgesloten derde Gouden regel Definitie van implicatie Gevolg ((x ≡ y) ≡ z) ≡ (x ≡ (y ≡ z)) x≡y≡y≡x 1≡y≡y 0 ≡ ¬1 ¬(x ≡ y) ≡ ¬x ≡ y (x 6≡ y) ≡ ¬(x ≡ y) x∨y ≡y∨x (x ∨ y) ∨ z ≡ x ∨ (y ∨ z) x∨x ≡ x x ∨ (y ≡ z) ≡ x ∨ y ≡ x ∨ z x ∨ ¬x ≡ 1 x∧y ≡x ≡ y ≡ x∨y x ⇒y ≡x∨y ≡y x⇐y≡y⇒x Tabel 4.1: Axioma’s van de propositiecalculus 4.2 Axioma’s Verschillende keuzes van axioma’s kunnen toch leiden tot dezelfde verzameling van stellingen. Er bestaan heel wat mogelijkheden die nauw verband houden met de volgorde waarin axioma’s over de verschillende symbolen uit de taal ge¨ıntroduceerd worden. Wat bij de ene aanpak een axioma is, zal dan bij de andere aanpak opduiken als stelling (ook al is het daar geen axioma), en omgekeerd. Tabel 4.1 bevat de 14 axioma’s die wij zullen gebruiken. Associativiteit doelt op het plaatsen, verplaatsen en weglaten van haakjes. Dankzij axioma 1 (associativiteit van ≡) kunnen we schrijven p≡q≡r of we nu (p ≡ q) ≡ r of p ≡ (q ≡ r) bedoelen. In het tweede axioma is die afspraak omtrent het weglaten van haakjes meteen toegepast. Haakjes kunnen daarin op verschillende manieren teruggeplaatst worden die alle correct zijn, zoals ((x ≡ y) ≡ y) ≡ x of x ≡ (y ≡ (y ≡ x)). Waarom bovenstaand axioma symmetrie wordt genoemd, wordt echter duidelijk wanneer we de haakjes terugplaatsen als volgt (x ≡ y) ≡ (y ≡ x) Dankzij axioma 8 kunnen we schrijven p∨q∨r of we nu (p ∨ q) ∨ r of p ∨ (q ∨ r) bedoelen. Er zijn geen axioma’s omtrent associativiteit van 6≡ en ∧ opgenomen in Tabel 4.1 maar zoals we later zullen zien, zullen we die kunnen bewijzen als stellingen (stellingen 11 en 19 uit Tabel 4.2). Het derde axioma definieert de constante 1. Het vierde en vijfde axioma defini¨eren negatie ¬. Het zesde axioma definieert inequivalentie 6≡. Symmetrie van ∨ is opgenomen als axioma 7, terwijl de symmetrie van 6≡ en van ∧ ook weer later zal opduiken als stelling (stellingen 10 en 18). ∨ wordt idempotent genoemd omdat, bij axioma 9, x ∨ x even machtig is als x. Uit een latere stelling 20 zal blijken dat ∧ ook 4.3. STELLINGEN EN BEWIJZEN 41 idempotent is. Om de naam van axioma 10 beter te begrijpen, kan men vergelijken met de distributiviteit van vermenigvuldiging t.o.v. optelling van getallen, b.v. 2 · (3 + 1) = 2 · 3 + 2 · 1. Merk op dat men wegens de afspraken omtrent prioriteit axioma 10 moet lezen als (x ∨ (y ≡ z)) ≡ (x ∨ y) ≡ (x ∨ z) x ∨ ¬x uit axioma 11 kan men lezen als “x of niet x”; er wordt m.a.w. geen derde mogelijkheid opengelaten. Axioma’s 12, 13 en 14 defini¨eren respectievelijk ∧, ⇒ en ⇐ in termen van eerder in de axioma’s ingevoerde operatoren. De axioma’s dienen stuk voor stuk in hun geheel gelezen te worden. Zo b.v. is het stukje x∧ y ≡ x van de gouden regel op zich geen axioma of stelling! 4.3 Stellingen en bewijzen Tabellen 4.2 en 4.3 geven een overzicht van belangrijke stellingen uit de propositiecalculus die kunnen afgeleid worden uit de hierboven gegeven axioma’s. We gaan nu dieper in op hoe deze stellingen kunnen bewezen worden. We herinneren er nogmaals aan dat een bewijs van een stelling een georganiseerde weergave is van hoe een stelling kan afgeleid worden uit axioma’s. Een stelling kan meerdere bewijzen hebben. De georganiseerde weergave die wij gebruiken is de calculationele stijl. Het opstellen van een bewijs kan men doen op verschillende manieren, te vergelijken met het schrijven van een computerprogramma. Zo kan men een “quick en dirty” stijl hanteren waarbij men zo snel mogelijk iets wil hebben dat werkt (een werkend programma of bewijs) en zich niets aantrekt van hoe het programma of het bewijs geschreven wordt. Deze handelswijze kan bruikbaar zijn wanneer de programmacode of het bewijs zelf achteraf niet meer hoeft bekeken te worden. Dikwijls moet men achteraf echter wel teruggrijpen naar de code, b.v. omdat er iets moet aan gewijzigd worden zodat het programma ook werkt voor een verwant probleem, of omdat men de correctheid wil nagaan. Dit geldt net zozeer voor bewijzen als voor computerprogramma’s, b.v. wanneer men een bewijs moet leveren voor een stelling die goed lijkt op een stelling die reeds bewezen is, of wanneer men bij het afleiden van stellingen een tegenstrijdigheid uitkomt en moet opzoeken in welk bewijs de fout zit (a.h.w. het debuggen van bewijzen). Net zoals een programmeerstijl is een mooie bewijsstijl een vrij persoonlijke aangelegenheid die men gaandeweg ontwikkelt. Er zijn uiteraard wel een aantal vuistregels die kunnen bijdragen tot een goed leesbare stijl. Behalve aan de stellingen zelf van de propositiecalculus, zullen we in dit hoofdstuk dan ook veel aandacht besteden aan dergelijke vuistregels en bewijsmethoden. Een eerste dergelijke vuistregel is: onderscheid hoofdzaken van bijzaken in een bewijs. Zorg er m.a.w. voor dat de stappen die cruciaal zijn in het bewijs uitdrukkelijk vermeld worden en niet overschaduwd worden door bijzaken. E´en van die typische bijzaken is het plaatsen, verplaatsen en weglaten van haakjes. We maken daarom de volgende afspraak. Afspraak 4 (Stilzwijgend gebruik van associativiteit van ≡ en ∨) Axioma 1 en axioma 8 mogen steeds zonder uitdrukkelijke vermelding gebruikt worden voor het plaatsen, verplaatsen en weglaten van haakjes. Let op: bovenstaande afspraak houdt geen verplichting in maar wel een vrijheid. Wanneer axioma 1 of 8 cruciaal is in een bewijs (b.v. om de associativiteit van ∧ te bewijzen, zie stelling 19), dan mag er uiteraard wel een uitdrukkelijke vermelding opgenomen worden! 42 4.3.1 HOOFDSTUK 4. PROPOSITIEREKENEN Stellingen m.b.t. equivalentie Afspraak 5 (Stap in calculationele stijl) Het gebruik van een afleidingsregel met premisse p en consequent van de vorm q ≡ r noteren we in een bewijs in calculationele stijl als q ≡ hpi r Merk op dat enkel de afleidingsregels “instantiatie van een stelling” en “principe van Leibniz” hiervoor in aanmerking komen want de andere 2 hebben telkens 2 premissen. Zodadelijk leggen we uit hoe de afleidingsregels m.b.t. transitiviteit en gelijkgestemdheid in ons plaatje passen, maar eerst illustreren we bovenstaande afspraak met volgend voorbeeld: x≡x≡y≡y ≡ h(x ≡ y ≡ y) ≡ xi x≡x De concrete invulling van het principe van Leibniz die hier gebruikt is, is (x≡y≡y) ≡ x (x≡z)[z:=x≡y≡y] ≡ (x≡z)[z:=x] of nog (x≡y≡y)≡x x≡x≡y≡y ≡ x≡x Een alternatieve manier om deze stap in een bewijs te schrijven is x≡x≡y≡y ≡ hax2i x≡x waarbij i.p.v. het volledige axioma enkel een afkorting van de naam opgegeven wordt. Om de leesbaarheid en de controleerbaarheid van een bewijs te verhogen, zullen we ook vaak (zeker in het begin) beide schrijfwijzen combineren tot x≡x≡y≡y ≡ hax2, (x ≡ y ≡ y) ≡ xi x≡x Afspraak 6 (Ketting in calculationele stijl) De stappen q1 ≡ hp1 i r1 r1 ≡ hp2 i r2 en mogen aan elkaar geregen worden tot een ketting q1 ≡ ≡ hp1 i hp2 i r1 r2 Hierbij zijn p1 , p2 , q1 , r1 en r2 proposities. Dit geldt ook voor kettingen van meer dan 2 stappen. Bovenstaande afspraak mogen we maken dankzij de afleidingsregel m.b.t. transitiviteit. Met deze afleidingsregel volgt uit de premissen q1 ≡ r1 en r1 ≡ r2 immers q1 ≡ r2 , wat de schrijfwijze als ketting verantwoordt. We illustreren dit met een voorbeeld. Bewijs van stelling 1 x≡x≡y≡y ≡ ≡ hax2, (x ≡ y ≡ y) ≡ xi hax2, x ≡ (y ≡ y ≡ x)i x≡x x≡y≡y≡x 4.3. STELLINGEN EN BEWIJZEN 43 (Oefening: schrijf de concrete invulling van Leibniz neer voor de 2e schakel.) Merk op dat we bovenstaand voorbeeld reeds een “bewijs van stelling 1” noemen, ook al moeten we strikt genomen nog een aantal afleidingsregels toepassen om echt aan stelling 1 uit Tabel 4.2 te geraken. Er zijn echter zoveel bewijzen die eindigen met juist dezelfde toepassing van bepaalde afleidingsregels dat we liever algemene bewijsmethoden formuleren. Zo’n bewijsmethode geeft aan waar je mag stoppen in je bewijs. Om te verklaren dat een bewijsmethode correct is, moeten we eenmalig uitleggen dat je vanaf dat punt steeds het volledige bewijs kan construeren. Bewijsmethode 1 Om te bewijzen dat p ≡ q een stelling is, volstaat het om een ketting neer te schrijven die • ofwel p omzet in q • ofwel q omzet in p gebruik makend van het principe van Leibniz en instantiatie. Verklaring: Het eerste geval is een aanvaardbaar bewijs dankzij de afleidingsregel m.b.t. transitiviteit. Het tweede geval levert ons op dezelfde manier eigenlijk een bewijs voor q ≡ p maar m.b.v. de geschikte instantiatie van axioma 2, namelijk q ≡ p ≡ p ≡ q en de vierde afleidingsregel kunnen we daar steeds een bewijs voor p ≡ q uit halen. De ketting die we gegeven hebben is dus eigenlijk een bewijs voor de stelling (x ≡ x ≡ y ≡ y) ≡ (x ≡ y ≡ y ≡ x) of nog (x ≡ y ≡ y ≡ x) ≡ (x ≡ x ≡ y ≡ y) waarbij de haakjes niet nodig zijn wegens axioma 1 maar wel mogen geplaatst worden om de leesbaarheid te verhogen. We kunnen nu verder gebruik maken van het feit dat x ≡ y ≡ y ≡ x een axioma is (namelijk axioma 2) en de vierde afleidingsregel om te besluiten dat ook x ≡ x ≡ y ≡ y een stelling is. Dit illustreert meteen een volgende bewijsmethode. Bewijsmethode 2 Om te bewijzen dat p volstaat het te bewijzen dat • ofwel r ≡ p • ofwel p ≡ r voor een stelling r. Verklaring: Uit de premissen r en r ≡ p kan je immers met de vierde afleidingsregel afleiden dat p een stelling is. In de praktijk is het dikwijls gemakkelijker te beginnen met p en van daar uit op zoek te gaan naar een r zo dat p ≡ r een stelling is. Gebruik makend van instantiatie van een stelling kan je uit axioma 2 (symmetrie van ≡) immers halen dat p ≡ r ≡ r ≡ p. M.b.v. de vierde afleidingsregel en het feit dat p ≡ r een stelling is, bewijs je dan dat r ≡ p 44 HOOFDSTUK 4. PROPOSITIEREKENEN een stelling is en dan ben je weer in het eerste geval. Hieruit blijkt dat bewijsmethode 2 inderdaad kan gebruikt worden om p te bewijzen. Merk op dat het bewijs van stelling r in theorie deel uitmaakt van het bewijs van p maar in de praktijk gaan we dat uiteraard niet opnieuw opschrijven. Eens een stelling bewezen is, mogen we er gebruik van blijven maken zonder telkens opnieuw het bewijs te herhalen. In het bewijs van een stelling uit tabel 4.2 of 4.3 zullen we naast de axioma’s dan ook volop kunnen gebruik maken van de reeds bewezen stellingen, d.w.z. stellingen met een lager volgnummer. De afleidingsregels m.b.t. transitiviteit en gelijkgestemdheid zitten impliciet vervat in de bovenstaande bewijsmethoden — het is vooral dankzij deze afleidingsregels dat de bewijsmethoden correct zijn. Omdat ze er impliciet in vervat zitten, hoeven we ze in de dagelijkse praktijk van bewijsvoering echter niet uitdrukkelijk te vermelden. De tweede stelling uit tabel 4.2 is opmerkelijk kort. Een bewijs dat gebruik maakt van bewijsmethode 2 verloopt als volgt: Bewijs van stelling 2 1 ≡ ≡ hax3, 1 ≡ (y ≡ y) met y := 1i hax3, 1 ≡ (y ≡ y)i 1≡1 1≡y≡y De tweede stap is een zuivere toepassing van het principe van Leibniz. De eerste stap is een toepassing van instantiatie van een stelling. Merk op dat we om de leesbaarheid te verhogen bij de verantwoording hebben aangegeven wat hierbij de veranderlijke v is uit de algemene formulering van de afleidingsregel voor instantiatie. We hebben ondertussen al een aantal keer stilzwijgend gebruik gemaakt van axioma 1 om haakjes te plaatsen en weg te laten. Een ander axioma dat zo vaak gebruikt wordt dat we het gebruik ervan in de toekomst vaak niet uitdrukkelijk zullen aangeven, is axioma 2 m.b.t. symmetrie van ≡ (het 2e geval van bewijsmethoden 1 en 2 bevat trouwens reeds een impliciet gebruik van axioma 2). Afspraak 7 (Stilzwijgend gebruik van symmetrie van ≡) Wanneer we als premisse voor een afleidingsregel r ≡ q nodig hebben, b.v. voor een stap e ≡ hr ≡ qi e′ waarbij e en e′ proposities zijn, zullen we ook toelaten e ≡ hq ≡ ri e′ Axioma 2 laat immers toe te bewijzen dat r ≡ q een stelling is, gegeven dat q ≡ r een stelling is. De tweede stap van het volgende bewijs van stelling 3 illustreert dit door combinatie van Leibniz en symmetrie. Het bewijs volgt bewijsmethode 2. Bewijs van stelling 3 x≡x ≡ ≡ hst1, x ≡ x ≡ y ≡ yi hax3, 1 ≡ y ≡ yi y≡y 1 45 4.3. STELLINGEN EN BEWIJZEN Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Reflexiviteit van ≡ Dubbele negatie Negatie van 0 Symmetrie van 6≡ Associativiteit van 6≡ Onderlinge associativiteit Onderlinge verwisselbaarheid Opslorpend element van ∨ Eenheidselement van ∨ Distributiviteit van ∨ t.o.v. ∨ Symmetrie van ∧ Associativiteit van ∧ Idempotentie van ∧ Eenheidselement van ∧ Opslorpend element van ∧ Distributiviteit van ∧ t.o.v. ∧ Contradictie Absorptie Stelling 26 Absorptie Stelling 27 Stelling 28 Stelling 29 Distributiviteit van ∨ t.o.v. ∧ Distributiviteit van ∧ t.o.v. ∨ De Morgan Stelling Stelling Stelling Stelling Stelling Stelling 30 31 32 33 34 35 Vervanging Exclusieve of (a) (b) (a) (b) (a) (b) x≡x≡y≡y 1 x≡x y≡1≡y ¬x ≡ y ≡ x ≡ ¬y ¬¬x ≡ x ¬0 ≡ 1 (x 6≡ y) ≡ ¬x ≡ y ¬x ≡ x ≡ 0 (x 6≡ y) ≡ (y 6≡ x) ((x 6≡ y) 6≡ z) ≡ (x 6≡ (y 6≡ z)) ((x 6≡ y) ≡ z) ≡ (x 6≡ (y ≡ z)) x 6≡ y ≡ z ≡ x ≡ y 6≡ z x∨1≡1 x∨0≡x x ∨ (y ∨ z) ≡ (x ∨ y) ∨ (x ∨ z) x ∨ y ≡ x ∨ ¬y ≡ x x∧y ≡y∧x (x ∧ y) ∧ z ≡ x ∧ (y ∧ z) x∧x≡x x∧1≡x x∧0≡0 x ∧ (y ∧ z) ≡ (x ∧ y) ∧ (x ∧ z) x ∧ ¬x ≡ 0 x ∧ (x ∨ y) ≡ x x ∨ (x ∧ y) ≡ x x ∧ (¬x ∨ y) ≡ x ∧ y x ∨ (¬x ∧ y) ≡ x ∨ y x ∨ (y ∧ z) ≡ (x ∨ y) ∧ (x ∨ z) x ∧ (y ∨ z) ≡ (x ∧ y) ∨ (x ∧ z) ¬(x ∧ y) ≡ ¬x ∨ ¬y ¬(x ∨ y) ≡ ¬x ∧ ¬y x ∧ y ≡ x ∧ ¬y ≡ ¬x x ∧ (y ≡ z) ≡ x ∧ y ≡ x ∧ z ≡ x x ∧ (y ≡ x) ≡ x ∧ y (x ≡ y) ∧ (z ≡ x) ≡ (x ≡ y) ∧ (z ≡ y) x ≡ y ≡ (x ∧ y) ∨ (¬x ∧ ¬y) x 6≡ y ≡ (¬x ∧ y) ∨ (x ∧ ¬y) Tabel 4.2: 1e reeks stellingen uit de propositiecalculus 46 HOOFDSTUK 4. PROPOSITIEREKENEN Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling Stelling 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 Alternatieve definitie van ⇒ Alternatieve definitie van ⇒ Contrapositie Stelling Stelling Stelling Stelling Stelling Stelling 54 55 56 57 58 59 Modus ponens Gevallenonderzoek Gevallenonderzoek Wederzijdse implicatie Antisymmetrie Transitiviteit Distributiviteit van ⇒ t.o.v. ≡ Aftakking Reflexiviteit van ⇒ Verzwakken (a) (b) (c) (d) (e) (a) (b) (c) x ⇒ y ≡ ¬x ∨ y x⇒y ≡ x∧y ≡ x x ⇒ y ≡ ¬y ⇒ ¬x x ⇒ (y ≡ z) ≡ x ∧ y ≡ x ∧ z x ⇒ (y ≡ z) ≡ x ⇒ y ≡ x ⇒ z x ⇒ (y ⇒ z) ≡ (x ⇒ y) ⇒ (x ⇒ z) x ∧ y ⇒ z ≡ x ⇒ (y ⇒ z) x ∧ (x ⇒ y) ≡ x ∧ y x ∧ (y ⇒ x) ≡ x x ∨ (x ⇒ y) ≡ 1 x ∨ (y ⇒ x) ≡ y ⇒ x x∨y ⇒x∧y ≡x≡y x⇒x≡1 x⇒1≡1 1⇒x≡x x ⇒ 0 ≡ ¬x 0⇒x≡1 x⇒x∨y x∧y ⇒x x∧y ⇒x∨y x ∨ (y ∧ z) ⇒ x ∨ y x ∧ y ⇒ x ∧ (y ∨ z) x ∧ (x ⇒ y) ⇒ y (x ⇒ z) ∧ (y ⇒ z) ≡ (x ∨ y) ⇒ z (x ⇒ z) ∧ (¬x ⇒ z) ≡ z (x ⇒ y) ∧ (y ⇒ x) ≡ x ≡ y (x ⇒ y) ∧ (y ⇒ x) ⇒ (x ≡ y) (x ⇒ y) ∧ (y ⇒ z) ⇒ (x ⇒ z) (x ≡ y) ∧ (y ⇒ z) ⇒ (x ⇒ z) (x ⇒ y) ∧ (y ≡ z) ⇒ (x ⇒ z) Tabel 4.3: 2e reeks stellingen uit de propositiecalculus 47 4.3. STELLINGEN EN BEWIJZEN Om aan bovenstaand bewijs te geraken hebben we de te bewijzen stelling x ≡ x vergeleken met de axioma’s en de reeds bewezen stellingen 1 en 2, om vast te stellen dat x ≡ x voorkomt als onderdeel van stelling 1. Vandaar onze keuze om deze stelling 1 te gebruiken. We noemen deze werkwijze patroonherkenning. Om stelling 4 te bewijzen gaan we op dezelfde manier te werk. We ontdekken daarbij dat een deel van de te bewijzen stelling 4 terugkomt in axioma 3, namelijk 1 ≡ y. Bewijs van stelling 4 y≡1≡y ≡ ≡ hax3, 1 ≡ y ≡ yi hax3, 1 ≡ y ≡ yi y≡y 1 Dankzij stelling 4 kunnen we m.b.v. instantiatie en Leibniz 1 ≡ p evenals p ≡ 1 steeds vervangen door p (voor een willekeurige propositie p). Het 1 ≡ of ≡ 1 gedeelte is dus a.h.w. overbodig. We zullen het dan ook meestal weglaten tenzij het van pas komt in de bewijsvoering. Anderzijds kunnen we wanneer dat goed uitkomt ook p vervangen door 1 ≡ p of door p ≡ 1. 4.3.2 Stellingen m.b.t. de andere operatoren Om stelling 5 te bewijzen beginnen we weer met patroonherkenning, d.w.z. het opsporen van (stukken van) de te bewijzen stelling 5 in de axioma’s en de reeds bewezen stellingen 1 t.e.m. 4. Merk daarbij op dat het in de loop van het bewijs van stelling 5 geen zin heeft om axioma 6 toe te passen omdat we nog geen enkele stelling bewezen hebben over 6≡; het gebruiken van axioma 6 leidt in dit stadium dan ook naar een doodlopend straatje. We beginnen met een bewijs volgens bewijsmethode 2 en we maken daarbij gebruik van de volgende afspraak. Afspraak 8 (Combinatie van Leibniz en instantiatie) Het principe van Leibniz en instantiatie van een stelling mogen in 1 stap toegepast worden, waarbij de te instanti¨eren stelling opgegeven wordt als premisse, al dan niet met een hint omtrent de instantiatie. In de derde stap komen we een gecombineerde toepassing tegen van axioma 2, instantiatie van een stelling, en zelfs het principe van Leibniz! Bewijs van stelling 5 ¬x ≡ y ≡ x ≡ ¬y ≡ ≡ ≡ ≡ ≡ hax5, ¬(x ≡ y) ≡ ¬x ≡ yi hax2, x ≡ y ≡ y ≡ x met x, y := x, ¬yi hax5, ¬(x ≡ y) ≡ ¬x ≡ y met x, y := y, xi hax2, x ≡ y ≡ y ≡ x met x, y := y, xi hax3, 1 ≡ y ≡ y met y := ¬(x ≡ y)i ¬(x ≡ y) ≡ x ≡ ¬y ¬(x ≡ y) ≡ ¬y ≡ x ¬(x ≡ y) ≡ ¬(y ≡ x) ¬(x ≡ y) ≡ ¬(x ≡ y) 1 We kunnen ook gebruik maken van bewijsmethode 1 om een alternatief bewijs te geven. 48 HOOFDSTUK 4. PROPOSITIEREKENEN Nog een bewijs van stelling 5 ¬x ≡ y ≡ ≡ ≡ ≡ hax5, ¬(x ≡ y) ≡ ¬x ≡ yi hax2, x ≡ y ≡ y ≡ xi hax5, ¬(x ≡ y) ≡ ¬x ≡ y met x, y := y, xi hax2, x ≡ y ≡ y ≡ x met x, y := ¬y, xi ¬(x ≡ y) ¬(y ≡ x) ¬y ≡ x x ≡ ¬y Dit bewijs heeft evenveel stappen en de verantwoordingen zijn bijna dezelfde. In het eerste bewijs wordt dezelfde deeluitdrukking, namelijk ¬(x ≡ y) ≡ overgenomen op elke lijn. Dit zorgt voor meer schrijfwerk, maakt het bewijs minder overzichtelijk en verhoogt het risico op fouten maken (door verkeerd overschrijven). Maak er een goede gewoonte van het herhalen van deeluitdrukkingen te vermijden. Voor bewijzen van stellingen 6, 7 en 8 verwijzen we naar opgave 2. Voor stelling 9 geven we 2 bewijzen, respectievelijk met bewijsmethode 1 en 2. Bewijs van stelling 9 ¬x ≡ x ≡ ≡ ≡ hax5, ¬(x ≡ y) ≡ ¬x ≡ y met x, y := x, xi hax3, 1 ≡ y ≡ y met y := xi hax4, 0 ≡ ¬1i ¬(x ≡ x) ¬1 0 Nog een bewijs van stelling 9 ¬x ≡ x ≡ 0 ≡ ≡ hax5, ¬(x ≡ y) ≡ ¬x ≡ y met x, y := x, xi hax3, 1 ≡ y ≡ y met y := xi ¬(x ≡ x) ≡ 0 ¬1 ≡ 0 Hoewel het tweede bewijs een stap minder lang is, verkiezen we toch het eerste bewijs omdat daar de deeluitdrukking ≡ 0 niet steeds moet herhaald worden. Wanneer we een stelling moeten bewijzen over een operator (zoals 6≡) die gedefinieerd is in termen van andere operatoren (zoals ¬ en ≡) zullen we vaak eerst de definitie van de originele operator toepassen, vervolgens de eigenschappen van de andere operatoren uitbuiten om de propositie om te vormen, en indien nodig en mogelijk op het einde weer proberen terug te keren naar de originele operator. Volgend bewijs van stelling 10 illustreert dit. Bewijs van stelling 10 (x 6≡ y) ≡ ≡ ≡ hax6, (x 6≡ y) ≡ ¬(x ≡ y)i hax2, x ≡ y ≡ y ≡ xi hax6, (x 6≡ y) ≡ ¬(x ≡ y) met x, y := y, xi ¬(x ≡ y) ¬(y ≡ x) (y 6≡ x) Ook stellingen 11, 12 en 13 kunnen op deze manier bewezen worden. We verwijzen hiervoor naar opgave 3. Merk op dat stelling 12 toelaat om haakjes weg te laten in proposities met 49 4.3. STELLINGEN EN BEWIJZEN applicaties van ≡ en 6≡ door elkaar. Net zoals axioma 1 zullen we stelling 12 meestal stilzwijgend toepassen om haakjes te plaatsen en weg te laten. Dit weglaten van haakjes hebben we meteen toegepast in de formulering van Stelling 13. Hierna volgen 2 bewijzen voor stelling 14 m.b.v. bewijsmethode 1. Welk bewijs verkiest u? Bewijs van stelling 14 1 ≡ ≡ ≡ hax3, 1 ≡ y ≡ y met y := x ∨ xi hax10, x ∨ (y ≡ z) ≡ x ∨ y ≡ x ∨ z met x, y, z := x, x, xi hax3, 1 ≡ y ≡ y met y := xi x∨x ≡ x∨x x ∨ (x ≡ x) x∨1 Nog een bewijs van stelling 14 x∨1 ≡ ≡ ≡ hax3, 1 ≡ y ≡ y met y := xi hax10, x ∨ (y ≡ z) ≡ x ∨ y ≡ x ∨ z met x, y, z := x, x, xi hax3, 1 ≡ y ≡ y met y := x ∨ xi x ∨ (x ≡ x) x∨x ≡ x∨x 1 Het verloop van het tweede bewijs is vanzelfsprekender, daar waar de eerste stap uit het eerste bewijs mysterieus overkomt (want waarom precies die stap?). Hoewel beide bewijzen correct zijn, zullen we streven naar een bewijsstijl die zo leesbaar mogelijk is door dergelijke tovertruukjes zo veel mogelijk te vermijden. Een hulpmiddel daarbij kan zijn om te vertrekken van de meest gestructureerde kant van de stelling die we willen bewijzen. x ∨ 1 heeft meer structuur dan 1 wat de patroonherkenning ook gemakkelijker te volgen maakt. 1 wordt het opslorpend element van ∨ genoemd omdat x er a.h.w. in opgeslorpt wordt. 0 wordt het eenheidselement van ∨ genoemd omdat disjunctie met 0 geen effect heeft op x. We laten het bewijs van stelling 15 als oefening (zie opgave 4). Ook voor een bewijs van stelling 16, 17 en 18 verwijzen we naar opgaven 5, 6 en 7. Net zoals het bij programmeren soms de moeite loont om een stuk van het programma in een aparte functie of procedure te stoppen, hebben we er soms alle belang bij om stukken van een bewijs onder te brengen als aparte hulpstelling of lemma. Dit heeft verschillende belangrijke voordelen: hulpstellingen kunnen de leesbaarheid sterk verhogen en laten hergebruik toe (wat interessant is indien je dezelfde hulpstelling meer dan eens nodig hebt in een bewijs). Er is geen strikte regel over wat een stelling te noemen en wat een hulpstelling; dit hangt af van het aanvoelen van de persoon die het bewijs ontwerpt. We illustreren dit met een bewijs van stelling 19. Bewijzen van stellingen m.b.t. ∧ kunnen vaak gevonden worden door m.b.v. axioma 12 (de gouden regel die dienst doet als de definitie van ∧) de applicatie van ∧ te herschrijven in termen van ≡ en ∨, de bekomen propositie te manipuleren en achteraf indien nodig via axioma 12 proberen terug te keren naar ∧. Voor stelling 19 is dat niet anders. We passen bewijsmethode 1 toe en vertrekken van de linkerzijde van stelling 19 (we hadden even goed van de rechterzijde kunnen vertrekken want ze zijn beide in dezelfde mate gestructureerd). Bewijs van hulpstelling 1 50 HOOFDSTUK 4. PROPOSITIEREKENEN (x ∧ y) ∧ z ≡ ≡ ≡ ≡ ≡ hax12, x ∧ y ≡ x ≡ y ≡ x ∨ yi hax12, x ∧ y ≡ x ≡ y ≡ x ∨ yi hax10, x ∨ (y ≡ z) ≡ x ∨ y ≡ x ∨ zi hax10, x ∨ (y ≡ z) ≡ x ∨ y ≡ x ∨ zi hax1, ax2, ax7, ax8i (x ≡ y ≡ x ∨ y) ∧ z (x ≡ y ≡ x ∨ y) ≡ z ≡ (x ≡ y ≡ x ∨ y) ∨ z x ≡ y ≡ x ∨ y ≡ z ≡ (x ≡ y) ∨ z ≡ (x ∨ y) ∨ z x≡ y ≡ x∨y ≡ z ≡ x∨z ≡ y∨z ≡ x∨y∨z x≡ y ≡ z ≡ x∨y ≡ y∨z ≡ z∨x≡ x∨y∨z Merk op dat we in bovenstaand bewijs axioma 7 en 8 omtrent de symmetrie en de associativiteit van ∨ hebben toegepast. Die axioma’s komen net als axioma 1 en 2 in de praktijk zo vaak voor en zijn zo eenvoudig dat uitdrukkelijke vermelding meestal niet echt nodig is voor de goede leesbaarheid van het bewijs, of dat we verscheidene van die axioma’s tegelijkertijd in 1 stap kunnen gebruiken. Bovendien hebben we om het schrijfwerk te beperken het “met...” luik weggelaten uit de verantwoordingen, al mag dat natuurlijk steeds geplaatst worden. Een alternatief is het niet volledig uitschrijven van de stelling of het axioma maar ons beperken tot de afkorting en wel het “met...”-gedeelte toevoegen. We illustreren dit zo dadelijk. Bovenstaand bewijs is natuurlijk nog geen bewijs voor stelling 19 maar wel van Hulpstelling 1 (x ∧ y) ∧ z ≡ x ≡ y ≡ z ≡ x ∨ y ≡ y ∨ z ≡ z ∨ x ≡ x ∨ y ∨ z We verheffen deze equivalentie die we net bewezen hebben tot de status van hulpstelling omdat ze een interessante structuur vertoont (namelijk een equivalentie van alle mogelijke disjuncties van x, y en z). Bovendien hopen we om de rechterzijde van stelling 19 hier ook toe te kunnen herleiden zodat we 2 maal gebruik kunnen maken van hulpstelling 1 om stelling 19 te bewijzen. Bewijs van stelling 19 x ∧ (y ∧ z) ≡ ≡ ≡ ≡ hst18, x ∧ y ≡ y ∧ xi hhst1, met x, y, z := y, z, xi hax1, ax2, ax7, ax8i hhst1i (y ∧ z) ∧ x y ≡ z ≡ x ≡y∨z ≡ z∨x≡ x∨y ≡ y∨z∨x x≡ y ≡ z ≡x∨y ≡y∨z ≡ z∨x≡ x∨y∨z (x ∧ y) ∧ z Voor het bewijs van stelling 20 verwijzen we naar opgave 8. De gouden regel (axioma 12) laat zich in veel bochten wringen. Meestal lezen we hem als (p ∧ q) ≡ (p ≡ q ≡ p ∨ q) en gebruiken we hem om een conjunctie p ∧ q om te zetten in p ≡ q ≡ (p ∨ q). Dankzij de associativiteit van ≡ (axioma 1) kunnen we de haakjes ook anders plaatsen, b.v. (p ∧ q ≡ p) ≡ (q ≡ p ∨ q) 51 4.3. STELLINGEN EN BEWIJZEN Deze leeswijze komt van pas om met bewijsmethode 2 stelling 21 te bewijzen. Bewijs van stelling 21 x∧1≡x ≡ hax12, x ∧ y ≡ x ≡ y ≡ x ∨ y met x, y := x, 1i 1≡x∨1 De rechterzijde is stelling 14. Merk op dat we na de calculationele ketting in ons bewijs nog een zin toegevoegd hebben om te verduidelijken dat de laatste rechterzijde wel degelijk een stelling is. Naarmate het aantal reeds bewezen en dus beschikbare stellingen groeit, zijn dergelijke verduidelijkingen een welkome hint voor wie het bewijs leest. Stelling 24 is de tegenhanger van axioma 11 (dit is meteen een hint voor het bewijs van stelling 24 dat we overlaten als oefening). De stellingen m.b.t. absorptie danken hun naam aan het feit dat een deel van de linkerzijde a.h.w. geabsorbeerd wordt en niet meer voorkomt aan de rechterzijde. De stelling van De Morgan is genoemd naar de bedenker ervan. Voor bewijzen van stellingen 22 t.e.m. 30 verwijzen we naar opgaven 9 t.e.m. 19. Het volgende knap bewijs van stelling 31 is nog eens een voorbeeld van de bochten waarin we de gouden regel kunnen wringen. I.p.v. x ∧ (y ≡ z) ≡ x ∧ y ≡ x ∧ z ≡ x bewijzen we x ∧ (y ≡ z) ≡ x ≡ x ∧ y ≡ x ∧ z wat met axioma 2 uiteraard probleemloos kan omgezet worden in stelling 31. Bewijs van stelling 31 x ∧ (y ≡ z) ≡ x ≡ ≡ ≡ ≡ ≡ hax12, x ∧ y ≡ x ≡ y ≡ x ∨ y met x, y := x, y ≡ zi hax10, x ∨ (y ≡ z) ≡ x ∨ y ≡ x ∨ zi hax2, x ≡ y ≡ y ≡ x met x, y := z, x ∨ yi hax12, x ∧ y ≡ x ≡ y ≡ x ∨ yi hax12, x ∧ y ≡ x ≡ y ≡ x ∨ y met x, y := x, zi y ≡ z ≡ x ∨ (y ≡ z) y ≡z ≡x∨y ≡x∨z y ≡x∨y ≡z ≡x∨z x∧y ≡x≡z ≡x∨z x Voor bewijzen van stellingen 32 t.e.m. 35 verwijzen naar opgaven 20 t.e.m. 23. Stelling 35 maakt duidelijk waarom 6≡ ook wel exclusieve of wordt genoemd: de rechterzijde van stelling 35 omvat a.h.w. het geval waarin x zich niet voordoet maar y wel, en de situatie waarin x zich voordoet maar y niet. M.a.w. we hebben ofwel x ofwel y. De rechterzijde van stelling 34 kan op analoge manier gelezen worden. 4.3.3 Stellingen m.b.t. implicatie Tabel 4.3 bevat allerlei stellingen m.b.t. ⇒. Analoge stellingen m.b.t. ⇐ kunnen hier onmiddellijk uit afgeleid worden a.d.h.v. axioma 14. x ⇒ y kan op verschillende manieren 52 HOOFDSTUK 4. PROPOSITIEREKENEN herschreven worden. Wij hebben gekozen voor x ⇒y ≡x∨y ≡y als axioma 13, maar in andere teksten kiest men in plaats daarvan soms voor wat bij ons opduikt als stelling 36 en 37. Het is belangrijk om te zien dat dit alternatieve definities zijn, omdat we ze ook kunnen gebruiken bij de bewijsstrategie waarbij men een operator eerst vervangt door zijn definitie die in termen van andere operatoren is, de bekomen propositie manipuleert en dan indien nodig weer terugkeert via de oorspronkelijke definitie. Ook stelling 38 kan op die manier gebruikt worden. Voor bewijzen van stellingen 36, 37 en 38 verwijzen we naar opgave 24, maar we illustreren hier wel de hierboven beschreven bewijsstrategie nog eens voor stelling 39. We lezen deze stelling als (x ⇒ (y ≡ z)) ≡ (x ∧ y ≡ x ∧ z) We beginnen met de linkerzijde, d.w.z. we mikken op bewijsmethode 1. Omdat aan de rechterzijde conjuncties voorkomen,lijkt stelling 37 de beste kandidaat. Bewijs van stelling 39 x ⇒ (y ≡ z) ≡ ≡ hst37, x ⇒ y ≡ x ∧ y ≡ x met x, y := x, y ≡ zi hst31, x ∧ (y ≡ z) ≡ x ∧ y ≡ x ∧ z ≡ xi x ∧ (y ≡ z) ≡ x x∧y ≡x∧z Voor bewijzen van stellingen 40 t.e.m. 52 verwijzen we naar opgaven 25 t.e.m. 37. De Engelstalige benaming van stelling 42 is shunting. Dit betekent aftakken, rangeren (m.b.t. spoorwegen). y wordt hierbij uit het antecedent gehaald en naar het consequent geleid. Stellingen 49 t.e.m. 52 beschrijven de interactie tussen ⇒ en de constanten 0 en 1. Merk op dat je uit stelling 49 t.e.m. 52 kan zien dat ⇒ niet symmetrisch is. In onderstaand bewijs maken we gebruik van de alternatieve definitie uit stelling 36 om ⇒ te herschrijven. Bewijs van stelling 53(a) x ⇒ (x ∨ y) ≡ ≡ ≡ hst36, x ⇒ y ≡ ¬x ∨ y met x, y := x, x ∨ yi hax11, x ∨ ¬x ≡ 1i hst14, x ∨ 1 ≡ 1 met x := yi ¬x ∨ x ∨ y 1∨y 1 We hebben hier axioma 7 en 8 stilzwijgend toegepast. In onderstaande afspraak geven we een overzicht van axioma’s en stellingen die zeker in aanmerking komen voor een dergelijke stilzwijgende toepassing; een aantal afspraken die we gaandeweg doorheen dit hoofdstuk ingevoerd hebben, worden er in samengevat. Afspraak 9 (Stilzwijgend gebruik van axioma’s en stellingen) Volgende axioma’s mogen stilzwijgend toegepast worden: Axioma Axioma Axioma Axioma 1 2 7 8 Associativiteit van ≡ Symmetrie van ≡ Symmetrie van ∨ Associativiteit van ∨ ((x ≡ y) ≡ z) ≡ (x ≡ (y ≡ z)) x≡y≡y≡x x∨y ≡y∨x (x ∨ y) ∨ z ≡ x ∨ (y ∨ z) 53 4.3. STELLINGEN EN BEWIJZEN Nadat het bewijs ervan geleverd is, mogen volgende stellingen stilzwijgend toegepast worden. Stelling Stelling Stelling Stelling Stelling Stelling 4 10 11 12 18 19 Symmetrie van 6≡ Associativiteit van 6≡ Onderlinge associativiteit Symmetrie van ∧ Associativiteit van ∧ y≡1≡y (x 6≡ y) ≡ (y 6≡ x) ((x 6≡ y) 6≡ z) ≡ (x 6≡ (y 6≡ z)) ((x 6≡ y) ≡ z) ≡ (x 6≡ (y ≡ z)) x∧y ≡y∧x (x ∧ y) ∧ z ≡ x ∧ (y ∧ z) Voor een bewijs van stelling 53(b) t.e.m. stelling 53(e) verwijzen we naar opgave 38. Stelling 54 is zeer bekend en de moeite van het onthouden waard. Er bestaat een bewijs dat gebruik maakt van stelling 43. Stellingen 55 en 56 leggen de fundamenten voor een bewijsmethode die dezelfde naam draagt, namelijk gevallenonderzoek. We komen hier later nog op terug. Voor bewijzen verwijzen we naar opgave 39. Dit brengt ons reeds bij stelling 57. Bewijs van stelling 57 (x ⇒ y) ∧ (y ⇒ x) ≡ ≡ ≡ ≡ ≡ hst36, 2 hst28, 3 hst24, 2 hst15, 2 hst34 i maal maal maal maal i i i i (¬x ∨ y) ∧ (¬y ∨ x) (¬x ∧ ¬y) ∨ (y ∧ ¬y) ∨ (¬x ∧ x) ∨ (y ∧ x) (¬x ∧ ¬y) ∨ 0 ∨ 0 ∨ (y ∧ x) (¬x ∧ ¬y) ∨ (y ∧ x) x≡y Voor bewijzen van stelling 58 en 59 verwijzen we naar opgaven 40 t.e.m. 42. Tot nu toe hebben we de schakels in onze calculationele bewijzen aan elkaar gebonden d.m.v. ≡. Dit kon dankzij de afleidingsregel voor transitiviteit. Stelling 59 biedt nu een gelijkaardige kracht om kettingen aan elkaar te hangen m.b.v. ⇒ en zelfs met ≡ en ⇒ door elkaar. Afspraak 10 (Stap in calculationele stijl) Het gebruik van een afleidingsregel met premisse p en consequent van de vorm q ⇒ r noteren we in een bewijs in calculationele stijl als q ⇒ hpi r Afspraak 11 De stappen q1 ≡ hp1 i r1 r1 ⇒ hp2 i r2 en mogen aan elkaar geregen worden tot een ketting q1 ≡ ⇒ hp1 i hp2 i r1 r2 Hierbij zijn p1 , p2 , q1 , r1 en r2 proposities. Deze ketting levert een bewijs voor de stelling q 1 ⇒ r2 . 54 HOOFDSTUK 4. PROPOSITIEREKENEN Verklaring: We hebben reeds een bewijs voor q1 ≡ r1 dus dat is een stelling. M.b.v. de afleidingsregel voor gelijkgestemdheid hebben we q1 ≡ r1 ≡ 1 (neem q1 ≡ r1 en de instantiatie van stelling 4 met y := q1 ≡ r1 als premissen). Analoog hebben we r1 ⇒ r2 ≡ 1. Vervolgens vertrekken we van een instantiatie van stelling 59(b) . (q1 ≡ r1 ) ∧ (r1 ⇒ r2 ) ⇒ (q1 ⇒ r2 ) ≡ ≡ ≡ hq1 ≡ r1 ≡ 1, r1 ⇒ r2 ≡ 1i hst21, x ∧ 1 ≡ x met x := 1i hst50, 1 ⇒ x ≡ x met x := q1 ⇒ r2 i 1 ∧ 1 ⇒ (q1 ⇒ r2 ) 1 ⇒ (q1 ⇒ r2 ) q 1 ⇒ r2 waaruit blijkt dat q1 ⇒ r2 inderdaad een stelling is. Oefening: verklaar waarom onderstaande kettingen eveneens een bewijs leveren voor q1 ⇒ r2 . q1 ⇒ ⇒ hp1 i hp2 i r1 r2 q1 ⇒ ≡ hp1 i hp2 i r1 r2 We kunnen deze afspraken ook uitbreiden tot kettingen van een willekeurige lengte waarbij we ≡ en ⇒ door elkaar gebruiken. Let er wel op dat deze afspraken maar tot onze beschikking zijn na het bewijzen van stelling 59! Voorbeeld 31 Een mogelijk bewijs voor stelling 53(d) indien we stelling 59 reeds ter beschikking zouden hebben wordt gegeven door: x ∨ (y ∧ z) ≡ ⇒ hst27i hst53(b)i (x ∨ y) ∧ (x ∨ z) x∨y Het is zeer belangrijk om te onthouden dat de operatoren die gebruikt worden om de schakels van een calculationeel bewijs aan elkaar te hangen steeds de laagste prioriteit hebben! Zolang we enkel werkten met ≡ was dit vrij vanzelfsprekend omdat ≡ sowieso de laagste prioriteit heeft. Voor ⇒ wil dit b.v. zeggen dat x ⇒ hx ⇒ y ⇒ zi y⇒z juist is maar x⇒y ⇒ hx ⇒ y ⇒ zi z niet!!! 4.3.4 Een 15e axioma Om het verhaal over axioma’s en stellingen van de propositiecalculus af te ronden, introduceren we nog een 15e axioma dat zich onderscheidt van de voorgaande 14 axioma’s omdat het metaveranderlijken bevat in de formulering. 55 4.3. STELLINGEN EN BEWIJZEN Stelling 60 Vervang p door q Stelling 61 Vervang door 1 Stelling 62 Vervang door 0 Stelling 63 Stelling 64 Vervang door 1 Vervang door 0 (a) (b) (c) (a) (b) (a) (b) (p ≡ q) ∧ r[v := p] (p ≡ q) ⇒ r[v := p] s ∧ (p ≡ q) ⇒ r[v := p] x ⇒ r[v := x] y ∧ x ⇒ r[v := x] r[v := x] ⇒ x r[v := x] ⇒ x ∨ y x ∧ r[v := x] x ∨ r[v := x] ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ (p ≡ q) ∧ r[v := q] (p ≡ q) ⇒ r[v := q] s ∧ (p ≡ q) ⇒ r[v := q] x ⇒ r[v := 1] y ∧ x ⇒ r[v := 1] r[v := 0] ⇒ x r[v := 0] ⇒ x ∨ y x ∧ r[v := 1] x ∨ r[v := 0] Tabel 4.4: 3e reeks stellingen uit de propositiecalculus Axioma 15 (p ≡ q) ⇒ (r[v := p] ≡ r[v := q]) Eigenlijk is axioma 15 dus een bundeling van een heleboel axioma’s die ontstaan wanneer we voor p, q en r proposities invullen en voor v een veranderlijke (dus x, y of z). Een voorbeeld van zo’n concrete invulling is (let op de haakjes) (x ∧ y ≡ y) ⇒ ((z ⇒ y)[z := x ∧ y] ≡ (z ⇒ y)[z := y]) of na uitwerken van de substitutie (x ∧ y ≡ y) ⇒ (x ∧ y ⇒ y ≡ y ⇒ y) Let op het verschil met het principe van Leibniz: die afleidingsregel laat ons toe om uit x ∧ y ≡ y af te leiden x ∧ y ⇒ y ≡ y ⇒ y. Dus als we weten dat x ∧ y ≡ y een stelling is, dan weten we m.b.v. het principe van Leibniz ook dat x ∧ y ⇒ y ≡ y ⇒ y een stelling is. Het 15e axioma echter stelt dat (x ∧ y ≡ y) ⇒ (x ∧ y ⇒ y ≡ y ⇒ y) in zijn geheel een stelling is! Zoals te verwachten is, laat dit axioma ons toe nieuwe stellingen af te leiden, zie Tabel 4.4. Deze stellingen zijn ook geformuleerd a.d.h.v. metaveranderlijken maar de bewijsvoering verloopt op dezelfde manier die we reeds gewoon zijn. Zie opgave 43. 4.3.5 Bewijsmethoden Een aantal bewijsmethoden die veelvuldig gebruikt worden doorheen de wiskunde (ook buiten het kader van propositierekenen) gaan terug op de hierboven bestudeerde stellingen van de propositiecalculus. Voor elk van die bewijsmethoden bestaat er een verklaring waarom de methode in kwestie correct is. We zullen ons echter beperken tot een korte algemene schets van elke bewijsmethode en het verband met het propositierekenen. Aannemen van het antecedent Tot nu toe hebben we in dit hoofdstuk afleidingen of bewijzen voor stellingen gegeven, d.w.z. voor A⊢p 56 HOOFDSTUK 4. PROPOSITIEREKENEN waarbij A de 15 axioma’s bevat en p de stelling in kwestie is. Een bewijs voor een stelling p ⇒ q is dus een afleiding voor A⊢p⇒q Dit is in principe iets anders dan een afleiding voor A, p ⊢ q Het is echter mogelijk om een afleiding voor A ⊢ p ⇒ q om te zetten in een afleiding voor A, p ⊢ q en ook omgekeerd. Dit maakt “aannemen van het antecedent” tot een correcte (en veelvuldig gebruikte) bewijstechniek voor het bewijzen van p ⇒ q. Men moet hierbij wel opletten dat in een afleiding voor A, p ⊢ q de afleidingsregel voor instantiatie van een stelling niet mag gebruikt worden voor p als p geen stelling is. Gevallenonderzoek Stelling 55 geeft aan dat x ∨ y ⇒ z kan bewezen worden door de gevallen x ⇒ z en y ⇒ z apart te bewijzen. Stelling 56 geeft aan hoe een bewijs voor z kan opgebroken worden in 2 gevallen. In het algemeen zal men bij een bewijs voor een propositie p met gevallenonderzoek op zoek gaan naar proposities q en r zodat q ∨ r en q ⇒ p en r ⇒ p alle stellingen zijn. Gevallenonderzoek maakt dat het bewijs uiteen valt in verschillende stukken, wat de overzichtelijkheid niet altijd ten goede komt. Bovendien is het vaak langer dan een bewijs dat gevallenonderzoek vermijdt omdat je niet alleen de afzonderlijke gevallen moet bewijzen (namelijk q ⇒ p en r ⇒ p), maar ook nog eens dat er daarbuiten geen andere gevallen bestaan (namelijk q ∨ r). Het is daarom meestal beter om gevallenonderzoek te vermijden, al kan dit niet altijd. Methode van de wederzijdse implicatie stelling 57, namelijk Een andere bewijstechniek gaat voort op (x ⇒ y) ∧ (y ⇒ x) ≡ x ≡ y Deze stelling geeft aan dat om p ≡ q te bewijzen je afzonderlijk kan aantonen dat p ⇒ q en q ⇒ p. Methode van de contradictie 51 met x := ¬x, namelijk Deze bewijstechniek steunt op een instantiatie van stelling ¬x ⇒ 0 ≡ x Om te bewijzen dat p een stelling is, bewijst men eerst dat ¬p ⇒ 0 een stelling is. Men noemt dit ook wel eens een bewijs uit het ongerijmde. Om te bewijzen dat ¬p ⇒ 0 een stelling is, bewijst men soms eerst dat ¬p ⇒ q ∧ ¬q. Dit brengt ons bij stelling 24, namelijk x ∧ ¬x ≡ 0. Vandaar ook de naamkeuze “methode van de contradictie”. Methode van de contrapositie Om p ⇒ q te bewijzen, bewijst men ¬q ⇒ ¬p. Deze bewijsmethode steunt op stelling 38. 57 4.4. SEMANTIEK 4.4 4.4.1 Semantiek Tweewaardig We hebben kennis gemaakt met de syntax van de taal van het propositierekenen. We weten hoe we m.b.v. 4 afleidingsregels proposities kunnen afleiden uit axioma’s (de zogenaamde stellingen). Tot nu toe zijn dergelijke proposities echter opeenvolgingen van symbolen uit het alfabet zonder betekenis. Er kan op verschillende wijzen een semantiek gehecht worden aan proposities. De meest gebruikte aanpak lijkt op de betekenis van zinnen in een natuurlijke taal. Een zin zoals “er is vandaag oefeningenles” is in principe ook maar een opeenvolging van symbolen. Stel nu dat er werkelijk oefeningenles is, dan zeggen we dat de zin “er is vandaag oefeningenles” waar is. Anders is de zin in kwestie niet waar, of nog: vals. Dit idee van betekenis gaat ook op voor proposities. Net zoals een zin in natuurlijke taal zeggen we ook dat een propositie waar of vals kan zijn. “waar” en “vals” worden waarheidswaarden of booleaanse waarden genoemd. Er bestaan heel wat notaties en afkortingen voor deze 2 waarheidswaarden. Denk b.v. aan Tru en Fls die we ontmoet hebben bij het gebruik van lambdacalculus als programmeertaal, of true en false uit Java, of True and False uit Haskell. Soms gebruikt men ook T en F, of in een Nederlandse tekst W en V. Wij kiezen voor 1 en 0 omdat dat gemakkelijk “rekent” waar het ons in wezen om te doen is. Hoe kunnen we nu de waarheidswaarde van een applicatie bepalen? We hebben aan het begin van dit hoofdstuk reeds even aangehaald dat p ∧ q, p ∨ q en ¬p kunnen gelezen worden als “p en q”, “p of q” en “niet p” respectievelijk. Laat ons opnieuw even vergelijken met een zin in natuurlijke taal, namelijk “er is theorieles en er is oefeningenles”. Deze zin is enkel waar indien de 2 deelzinnen die door “en” verbonden zijn allebei waar zijn. Op dezelfde manier is p ∧ q waar indien p waar is en q waar is; in alle andere gevallen is p ∧ q vals. Dit kan beknopt weergegeven worden in een waarheidstabel. p 0 0 1 1 q 0 1 0 1 p∧q 0 0 0 1 Ook voor de waarheidswaarde van ¬p en van p ∨ q in functie van de waarheidswaarden van p en q kunnen we waarheidstabellen opstellen. p 0 1 ¬p 1 0 p 0 0 1 1 q 0 1 0 1 p∨q 0 1 1 1 ¬p is waar indien p vals is en omgekeerd. p ∨ q is waar indien p waar is of q waar is of ze allebei waar zijn. Dit is verschillend met ons gewone taalgebruik: als we bij onze maaltijd frietjes of gekookte aardappels kunnen nemen, wordt er normaal gezien ´e´en van beide bedoeld en niet de mogelijkheid om ze allebei samen te nemen. De courante “of” uit ons dagelijks taalgebruik wordt daarom “exclusief” genoemd (zie verder). De structuur die gevormd wordt door de verzameling {0, 1} uitgerust met de bewerkingen die vastgelegd worden door bovenstaande waarheidstabellen wordt een binaire algebra 58 HOOFDSTUK 4. PROPOSITIEREKENEN p 0 1 0 0 0 1 ¬ 1 0 1 1 Tabel 4.5: Betekenis van monadische operatoren p 0 0 1 1 q 0 1 0 1 0 0 0 0 − ∨ 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 6≡ 0 1 1 0 − ∧ 1 1 1 0 ∧ 0 0 0 1 ≡ 1 0 0 1 0 1 0 1 ⇒ 1 1 0 1 0 0 1 1 ⇐ 1 0 1 1 ∨ 0 1 1 1 1 1 1 1 Tabel 4.6: Betekenis van dyadische operatoren genoemd. De benaming “binair” verwijst naar het feit dat er 2 waarden zijn, namelijk 0 en 1. Deze binaire algebra is bovendien een speciaal geval van een zogenaamde boole–algebra en wordt daarom ook wel eens initi¨ele booleaanse algebra genoemd. Vanaf nu noteren we {0, 1} ook als B. Er kunnen uiteraard nog andere bewerkingen op B gedefinieerd worden; in totaal zijn er 4 verschillende die inwerken op 1 argument en 16 verschillende die inwerken op 2 argumenten. I.p.v. een afzonderlijke waarheidstabel voor elk van die bewerkingen op te schrijven, bundelen we ze samen in tabellen 4.5 en 4.6. De eerste kolom in tabel 4.5 somt de mogelijke waarheidswaarden op van een propositie p. De eerste, tweede en vierde kolom na de verticale scheidingslijn leggen betekenissen vast van operatoren die meestal geen specifieke naam hebben in de propositiecalculus. In de derde kolom herkennen we de reeds eerder vermelde betekenis van ¬. We gaan nu op dezelfde manier te werk voor de binaire operatoren. De eerste 2 kolommen van tabel 4.6 beschrijven de mogelijke waarden van proposities p en q. Een aantal van de kolommen in bovenstaande tabel leggen een betekenis vast van binaire operatoren die we reeds kennen uit de taal van de propositiecalculus. We herkennen ∧ en ∨ die voor de volledigheid weer zijn opgenomen, maar ook 6≡ die de rol speelt van de hierboven vermelde exclusieve of. Een equivalentie p ≡ q is waar indien p en q dezelfde waarheidswaarde hebben. Merk op dat als p vals is dan p ⇒ q sowieso waar is. Vergelijk met een uitspraak als “Als Pavarotti slank is, dan ben ik een topmodel!”; deze zin is waar omdat Pavarotti niet slank is. Op die manier hebben we een betekenis vastgelegd voor elk van de operatoren uit de taal van de propositiecalculus. Het symbool 1 uit de propositiecalculus krijgt waarheidswaarde 1, terwijl 0 waarheidswaarde 0 krijgt. De waarheidswaarde van de veranderlijken tenslotte kan veranderen (vandaar ook de naam). Net als op het einde van hoofdstuk 2 maken we ook hier weer gebruik van het begrip toestand: dit zijn de (waarheids)waarden van alle veranderlijken op een gegeven moment. Voorbeeld 32 In een gegeven toestand worden de waarden van x, y en z respectievelijk gegeven door 1, 1 en 0. De waarde van x ∨ (y ∧ ¬z) is dan 1, terwijl de waarde van x ∧ y ∧ z 0 is. We kunnen nu uitgebreide waarheidstabellen gebruiken om de waarheidswaarde van een propositie in elke mogelijke toestand na te gaan. Daarbij schrijven we de propositie in de 59 4.4. SEMANTIEK hoofding van de tabel en onder de veranderlijken de mogelijke waarden. Aangezien onze taal 3 verschillende veranderlijken bevat, hebben we te doen met hoogstens 8 verschillende mogelijke toestanden (d.w.z. 8 rijen in de waarheidstabel). Vervolgens vullen we, rekening houdend met de prioriteiten, de kolommen onder de veranderlijken aan. Onderstaande voorbeelden illustreren deze werkwijze. Voorbeeld 33 De waarheidswaarde van propositie x ∨ (y ∧ z) in alle mogelijke toestanden. We beginnen met het invullen van de mogelijke toestanden. x 0 0 0 0 1 1 1 1 ∨ (y 0 0 1 1 0 0 1 1 ∧ z) 0 1 0 1 0 1 0 1 Vervolgens berekenen we de waarheidswaarde van y ∧ z in elke toestand. x 0 0 0 0 1 1 1 1 ∨ (y 0 0 1 1 0 0 1 1 ∧ 0 0 0 1 0 0 0 1 z) 0 1 0 1 0 1 0 1 Tenslotte kunnen we de waarheidswaarde van de volledige propositie in elke toestand invullen. x 0 0 0 0 1 1 1 1 ∨ 0 0 0 1 1 1 1 1 (y 0 0 1 1 0 0 1 1 ∧ 0 0 0 1 0 0 0 1 z) 0 1 0 1 0 1 0 1 Het eindresultaat is nu af te lezen in de tweede kolom. Voorbeeld 34 In onderstaande tabel hebben we achtereenvolgens de eerste, de vierde en de derde kolom ingevuld. In de tweede kolom tenslotte is het eindresultaat af te lezen. x 0 1 ∨ 1 1 ¬ 1 0 x 0 1 60 HOOFDSTUK 4. PROPOSITIEREKENEN Alle kolommen uit tabellen 4.5 en 4.6 kunnen gereconstrueerd worden enkel gebruik makend van de kolommen voor p, q, ¬ en ∨. De kolommen na de verticale scheidingslijn in tabel 4.5 bekomen we b.v. als betekenis van ¬(p ∨ ¬p) p ¬p p ∨ ¬p Voor de eerste kolom na de scheidingslijn in tabel 4.6 kunnen we de betekenis van ¬(p ∨ ¬p) nemen, of van ¬(q ∨ ¬q). Ga als oefening na hoe de andere kolommen op deze wijze kunnen bekomen worden. Controleer je resultaat a.d.h.v. een uitgebreide waarheidstabel. Voorbeeld 35 De waarheidstabellen voor (x ≡ y) ≡ (y ≡ x), ((x ≡ y) ≡ y) ≡ x en x ≡ (y ≡ (y ≡ x)) zijn verschillend maar het resultaat in de laatst in te vullen kolom is wel gelijk (dit is respectievelijk de vierde, de zesde en de tweede kolom). (x 0 0 1 1 ≡ 1 0 0 1 ((x 0 0 1 1 x 0 0 1 1 y) 0 1 0 1 ≡ 1 0 0 1 ≡ 1 1 1 1 y) 0 1 0 1 (y 0 1 0 1 ≡ 1 1 1 1 ≡ 0 0 1 1 ≡ 0 0 1 1 (y 0 1 0 1 ≡ 1 0 0 1 y) 0 1 0 1 (y 0 1 0 1 ≡ 1 1 1 1 ≡ 1 0 0 1 x) 0 0 1 1 x 0 0 1 1 x)) 0 0 1 1 Voorbeeld 36 De waarheidswaarde van propositie x − ∧ y ≡ ¬(x ∧ y) in alle mogelijke toestanden. Eerst vullen we de eerste en de zesde kolom in (die dezelfde waarden bevatten), vervolgens de derde en de achtste kolom. Dan kunnen we de tweede en de zevende kolom invullen (of eerst de zevende en dan de tweede kolom, de volgorde speelt geen rol). Dan vullen we de vijfde kolom in, en het eindresultaat tenslotte staat in de vierde kolom. x 0 0 1 1 − ∧ 1 1 1 0 y 0 1 0 1 ≡ 1 1 1 1 ¬ 1 1 1 0 (x 0 0 1 1 ∧ 0 0 0 1 y) 0 1 0 1 − ∧ is geen symbool uit de taal van de propositiecalculus zoals we die ge¨ıntroduceerd hebben aan het begin van dit hoofdstuk. x − ∧ y ≡ ¬(x ∧ y) is dus ook geen axioma of stelling. Hadden we − ∧ wel opgenomen in onze taal van de propositiecalculus, dan hadden we allicht eveneens x− ∧ y ≡ ¬(x ∧ y) 61 4.4. SEMANTIEK opgenomen als axioma om − ∧ te defini¨eren. Oefening: construeer de waarheidstabel voor x− ∨ y ≡ ¬(x ∨ y) De laatste voorbeelden zijn bijzonder omdat de kolom met het resultaat enkel de waarheidswaarde 1 bevat. Een propositie die waar is in elke toestand geven we een bijzondere naam. Definitie 23 (Tautologie) Een tautologie is een propositie die waar is in elke toestand. Een stelling is een gevolg van axioma’s. Een afleiding van een stelling a.d.h.v. afleidingsregels hebben we een bewijs genoemd, en genoteerd in calculationele stijl. Een stelling is een opeenvolging van symbolen die het resultaat is van symbolische manipulatie. Dit speelt zich af op het niveau van de syntax en het afleidingsmechanisme en is op zich betekenisloos. Een tautologie daarentegen is onlosmakelijk verbonden met de semantiek die aan een taal gegeven wordt. Nagaan of een propositie een tautologie is, doen we door de betekenis ervan in elke toestand na te gaan (b.v. a.d.h.v. een waarheidstabel). Stelling en tautologie kunnen dus volstrekt los van elkaar beschouwd worden, maar er bestaat wel een mogelijk verband tussen beide. Definitie 24 (Betrouwbaar, Volledig) Indien elke stelling een tautologie is, dan wordt de formele logica betrouwbaar genoemd. Indien elke tautologie een stelling is, dan wordt de formele logica volledig genoemd. Het propositierekenen zoals we dat in dit hoofdstuk hebben ingevoerd is volledig en betrouwbaar m.b.t. de hierboven uiteengezette semantiek. Dit is gerealiseerd dankzij een overwogen keuze van de axioma’s (die uiteraard allemaal tautologie¨en moeten zijn; leg voor jezelf uit waarom) en de afleidingsregels. Meer bepaald zijn de afleidingsregels zo gekozen dat wanneer de premissen tautologie¨en zijn, het consequent ook een tautologie is. 4.4.2 Meerwaardig Tweewaardige logica met de semantiek zoals hierboven uiteengezet heeft haar wortels in de tijd van Aristoteles (omstreeks 350 v. Chr.). De voorbije eeuw zijn er heel wat inspanningen geleverd voor het op poten zetten van meerwaardige logica’s. De bekendste is vaaglogica, ge¨ıntroduceerd in de jaren 1960 door L. A. Zadeh. Het uitgangspunt hierbij is dat een uitspraak vaak niet zomaar waar of vals te noemen is, maar wel waar in een bepaalde mate. Denk b.v. uitspraken als “55 is oud”, “dat restaurant is goedkoop” , “het schilderij is mooi” enz. Dat iets waar is in een bepaalde mate wordt veroorzaakt door het gebruik van vage talige uitdrukkingen zoals oud, goedkoop en mooi. De overgang tussen oud en niet oud zijn, tussen goedkoop en niet goedkoop zijn, tussen mooi en niet mooi zijn, is niet abrupt maar gradueel. In de tweewaardige semantiek kan een veranderlijke ofwel 0 ofwel 1 als waarheidswaarde hebben. Om gradaties in waarheidsgehalte te kunnen weergeven, gebruikt men bij vaaglogica [0,1] i.p.v. B als verzameling van waarheidswaarden. Zelfs met slechts 3 veranderlijken x, y en z ontstaan er reeds oneindig veel mogelijke toestanden waardoor waarheidstabellen onbruikbaar worden. De constanten 0 en 1 uit de taal van het propositierekenen krijgen respectievelijk 0 en 1 als waarheidswaarde. De voorbije decennia is er veel nagedacht over de volgende vraag: als proposities p en q respectievelijk waarheidswaarden a en b hebben (a in [0,1] en b in [0,1]), wat is dan de waarheidswaarde van p ∧ q, p ∨ q en ¬p? In onderstaande tabel geven we de 62 HOOFDSTUK 4. PROPOSITIEREKENEN in de praktijk meest gebruikte antwoorden op deze vraag. Elk van de rijen SEM1, SEM2 en SEM3 komt overeen met een andere semantiek. SEM1 SEM2 SEM3 p a a a q b b b p∧q min(a, b) a·b max(a + b − 1, 0) p∨q max(a, b) a+b−a·b min(a + b, 1) ¬p 1−a 1−a 1−a Men kan nagaan dat x ∨ x enkel in SEM1 steeds dezelfde waarheidswaarde heeft als x. Bovendien heeft x ∨ ¬x enkel in SEM3 steeds de waarheidswaarde 1. Wanneer we de betekenis van ≡ blijven behouden zoals voorheen (namelijk p ≡ q heeft waarheidswaarde 1 indien p en q dezelfde waarheidswaarde hebben; anders 0) en een tautologie een propositie is die waarheidswaarde 1 heeft in elke mogelijke toestand, dan is axioma 9 een tautologie in SEM1 maar niet in SEM2 en SEM3. Analoog is axioma 11 een tautologie in SEM3 maar niet in SEM1 en SEM2. 4.4.3 Verband tussen ≡ en = We eindigen dit luik over de semantiek met een opmerking over ≡. De waarheidswaarde van x ≡ y is waar indien de waarheidswaarden van x en y gelijk zijn. Toch hebben we een speciaal symbool ≡ gebruikt en niet het traditionele =. Beide symbolen zijn dan ook verschillend in gebruik. Een duidelijk verschil komt tot uiting in een propositie als 0≡0≡1 Bewijs dat dit een stelling is (syntactisch niveau) en ga na dat het een tautologie is (semantisch niveau), m.a.w. waar in elke toestand. Wanneer we echter schrijven 0 = 0 = 1 dan bedoelen we eigenlijk (0 ≡ 0) ∧ (0 ≡ 1) Ga na dat dit geen tautologie is. = is dus niet associatief maar ≡ wel. 4.5 Digitale schakelingen Specificatie en implementatie Een poort is een kleine elektronische eenheid die opgebouwd is uit ´e´en of meerdere transistoren. Dergelijke poorten kunnen 2 soorten ingangssignalen krijgen en uitgangssignalen voortbrengen: een laag signaal tussen 0 en 1 volt, en een hoog signaal tussen 2 en 5 volt. De uitvoer van de ene poort kan gebruikt worden als invoer voor een andere poort. Door op die manier poorten aan elkaar te hangen, bekomt men digitale schakelingen of circuits. Dit zijn de elementaire bouwstenen van de hardware van hedendaagse computers. Hier beschouwen we digitale schakelingen waar de uitvoer louter afhankelijk is van de huidige invoer; er komen dus b.v. geen poorten in voor waarvan de uitgang verbonden is met de ingang. Een schakeling kan beschreven worden door een schema dat een aantal poorten en hun onderlinge connecties weergeeft. Er bestaan vaste symbolen voor de verschillende types van poorten. Een NOT–poort zet een hoog signaal om in een laag signaal en omgekeerd. Een AND–poort brengt een hoog signaal voort indien alle invoersignalen hoog zijn, anders een laag signaal. Een OR–poort brengt een laag signaal voort indien alle invoersignalen laag 63 4.5. DIGITALE SCHAKELINGEN zijn, anders een hoog signaal. Een beschrijving van een circuit HA met 3 AND–poorten, 1 OR–poort en 2 NOT–poorten ziet er b.v. uit als volgt: c = AND(a, b); d = NOT(b); e = AND(a, d); f = NOT(a); g = AND(b, f ); s = OR(e, g) (4.1) De kleine letters komen daarbij overeen met de in– en uitgangssignalen. Vertrekkend van deze circuitbeschrijving kunnen we een propositie construeren die het gedrag van het circuit beschrijft. (c ≡ a ∧ b) ∧ (d ≡ ¬b) ∧ (e ≡ a ∧ d) ∧ (f ≡ ¬a) ∧ (g ≡ b ∧ f ) ∧ (s ≡ e ∨ g) d We gebruiken de tweewaardige semantiek: waarheidswaarde We noemen deze propositie HA. 1 correspondeert daarbij met een hoog signaal en 0 met een laag signaal. We kunnen dus de axioma’s en afleidingsregels van het propositierekenen gebruiken om een propositie die het gedrag weergeeft van een circuit symbolisch te manipuleren. Merk op dat we de ; vervangen hebben door ∧ en dat we eveneens alle kleine letters uit het Nederlandse alfabet gaan gebruiken als veranderlijken (omdat x, y en z niet volstaan als we digitale schakelingen van enige omvang willen bestuderen). In de tweewaardige semantiek zijn er 28 mogelijkheden om waarheidswaarde 0 of 1 toe te d In een aantal van die toestanden zal HA d waarheidskennen aan de veranderlijken uit HA. waarde 1 hebben. Deze toestanden komen overeen met de in de praktijk mogelijke signalen d 1 is, is b.v. als in– en uitvoer van de poorten van HA. Een van de toestanden waarin HA a 0 b 1 c 0 d 0 e 0 f 1 g 1 s 1 Men kan nagaan dat in elke toestand met a 0 b 0 c 1 d waarheidswaarde 0 heeft (ga ook na waarom deze situatie zich nooit kan voordoen in HA d het gedrag ervan circuit HA). (4.1) beschrijft de structuur van circuit HA, terwijl HA beschrijft. Verschillende circuits kunnen hetzelfde gedrag vertonen. Voorbeeld 37 De structuur van circuit C1 is d = NOT(AND(a, b)) Het gedrag van C1 is dus d ≡ ¬(a ∧ b) b1 . De structuur van circuit C2 is wat we ook noteren als C d = OR(NOT(a), NOT(b)) Het gedrag van C2 is dus d ≡ ¬a ∨ ¬b b2 . Uit stelling 29 (De Morgan) volgt dat C1 en C2 hetzelfde gedrag wat we ook noteren als C vertonen. Toch zijn het in de praktijk verschillende circuits want bij C1 gebruiken we 1 NOT– poort en 1 AND–poort, terwijl we voor C2 2 NOT–poorten en 1 OR–poort nodig hebben. 64 HOOFDSTUK 4. PROPOSITIEREKENEN Normaal gezien kent men eerst het gewenste gedrag (de specificatie, gegeven als een propositie S) en ontwerpt men vervolgens een circuit C daarvoor. b ⇒ S. Definitie 25 (Implementatie) Circuit C implementeert propositie S indien C b ⇒ S een stelling is, Opdat circuit C specificatie S zou implementeren, eisen we dus dat C of nog, vermits de propositielogica met de tweewaardige semantiek volledig en betrouwbaar b ⇒ S een tautologie is, d.w.z. waarheidswaarde 1 heeft in elke toestand. Indien C b is, dan C b b waarde 0 heeft, dan is de waarde van C ⇒ S steeds 1. Indien C waarde 1 heeft, dan is de b ⇒ S 1 op voorwaarde dat de waarde van S ook 1 is. C b is m.a.w. een versterking waarde van C of verstrenging van S (want als C 1 is, dan zal S ook 1 zijn). Om te weten of een circuit C een b van C bepalen en vervolgens specificatie S implementeert, moeten we dus eerst het gedrag C b ⇒ S (door te bewijzen dat het een stelling is of door na te gaan dat het een nagaan dat C tautologie is). b1 . Circuit C1 implementeert specifiVoorbeeld 38 Circuit C1 implementeert specificatie C b b2 . b catie C2 . Circuit C2 implementeert specificatie C1 . Circuit C2 implementeert specificatie C De bewijzen hiervan worden als oefening gelaten. Voorbeeld 39 Specificatie z⇒x wordt ge¨ımplementeerd door een circuit met structuur z=0 Immers het gedrag van dit circuit is z ≡ 0 en we hebben (z ≡ 0) ⇒ z ⇒ x want (z ≡ 0) ≡ ≡ ⇒ hst21, x ∧ 1 ≡ xi hst52, 0 ⇒ x ≡ 1i hst59(b), (x ≡ y) ∧ (y ⇒ z) ⇒ (x ⇒ z)i (z ≡ 0) ∧ 1 (z ≡ 0) ∧ (0 ⇒ x) z⇒x We kunnen dit ook op een alternatieve manier aantonen door na te gaan dat (z ≡ 0) ⇒ z ⇒ x een tautologie is (z ≡ 0) ⇒ z ⇒ x 0 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 Het resultaat staat in de vierde kolom. Een ander circuit dat ook de specificatie z ⇒ x implementeert heeft als structuur z = x. Ga dit zelf na als oefening. Voorbeeld 40 De optelling van bits verloopt als volgt + 1 1 1 0 + 0 1 0 1 + 0 0 1 1 + 0 0 0 0 65 4.5. DIGITALE SCHAKELINGEN en is dus van de algemene vorm a b s + c waarbij a en b de op te tellen bits zijn, s de minst significante bit van de som en c de overdrachtsbit. We willen een circuit dat deze optelling realiseert, m.a.w. waarbij a en b invoersignalen zijn en dat s en c oplevert als uitvoer, dus a 0 0 1 1 s 0 1 1 0 b 0 1 0 1 c 0 0 0 1 Wanneer we de kolom voor s en voor c vergelijken met de kolommen uit tabel 4.6, komen we tot de volgende specificatie (s ≡ (a 6≡ b)) ∧ (c ≡ a ∧ b) Men kan nagaan dat deze specificatie ge¨ımplementeerd wordt door het eerder vermelde circuit HA met structuur c = AND(a, b); d = NOT(b); e = AND(a, d); f = NOT(a); g = AND(b, f ); s = OR(e, g) We laten dit over als oefening; merk op dat het allicht handiger zal zijn om een calculationeel bewijs te leveren dan een waarheidstabel met 256 toestanden! De specificatie (s ≡ (a 6≡ b)) ∧ (c ≡ a ∧ b) is veel beknopter dan het gedrag (c ≡ a ∧ b) ∧ (d ≡ ¬b) ∧ (e ≡ a ∧ d) ∧ (f ≡ ¬a) ∧ (g ≡ b ∧ f ) ∧ (s ≡ e ∨ g) zoals we dat rechtstreeks van het circuit afgelezen hebben. De beknoptere specificatie vermeldt enkel de ingangs– en uitgangssignalen van de volledige schakeling en zegt niets over “interne draden”. Dit wordt beschouwd als een goede specificatie omdat overbodige details achterwege gelaten zijn en de vrijheid van de ontwerper van het circuit op die manier niet belemmerd wordt. Omwille van zijn functionaliteit, namelijk het optellen van bits, wordt circuit HA een halve opteller genoemd (Engels: half adder). Dergelijke schakelingen worden gebruikt als bouwstenen voor het optellen van bitgetallen. Voorbeeld 41 De optelling van 2 getallen van n bits heeft de algemene vorm + dn an−1 bn−1 dn−1 B.v. + 1 1 1 0 ... ... ... 0 1 1 a1 b1 d1 0 0 1 a0 b0 d0 1 1 0 De overdracht naar kolom i (met 0 ≤ i ≤ n) noteren we als ci . We hebben dan c0 ≡ 0 66 HOOFDSTUK 4. PROPOSITIEREKENEN dn ≡ cn De overdracht vanuit kolom i (met 0 ≤ i < n) is 1 als minstens 2 van ai , bi en ci 1 zijn, m.a.w. ci+1 ≡ (ai ∧ bi ) ∨ (bi ∧ ci ) ∨ (ci ∧ ai ) di (met 0 ≤ i < n) de minst significante bit van de som van ai , bi en ci . di is 1 als een oneven aantal van ai , bi en ci 1 zijn, m.a.w. di ≡ (ai ≡ bi ≡ ci ) Gebruik makend van de stellingen uit opgave 57 kunnen we bewijzen dat (a ≡ b ≡ c) ≡ ((a 6≡ b) 6≡ c) (a ∧ b) ∨ (b ∧ c) ∨ (c ∧ a) ≡ (a ∧ b) ∨ ((a 6≡ b) ∧ c) Merk de gelijkenis op tussen de sombit (a 6≡ b) 6≡ c en de overdracht (a ∧ b) ∨ ((a 6≡ b) ∧ c) die we bij de optelling van a, b en c moeten bepalen. (a 6≡ b) 6≡ c en (a 6≡ b) ∧ c kunnen bekomen worden als uitvoersignalen van een halve opteller met invoer a 6≡ b en c. a 6≡ b en a ∧ b kunnen op analoge manier bekomen worden als uitvoer van een halve opteller met invoer a en b. We kunnen m.a.w. a.d.h.v. 2 halve optellers en een OR–poort een digitale schakeling maken voor het optellen van 3 bits. Een dergelijke schakeling wordt een volledige opteller (Engels: full adder) genoemd. Dergelijke optellers kunnen aan elkaar geschakeld worden om bitgetallen op te tellen. NAND–poorten De stelling van de Morgan (stelling 29) verzekert ons dat de werking van een AND–poort kan gesimuleerd worden door gebruik te maken van 3 NOT–poorten en een OR–poort. Zo vertonen d = AND(a, b) en d = NOT(OR(NOT(a), NOT(b))) hetzelfde gedrag, namelijk d ≡ a ∧ b. Daarom volstaat het om NOT–poorten en OR–poorten te maken. De operator − ∧ waarvan de betekenis gegeven is in tabel 4.6 en die we axiomatisch zouden kunnen invoeren als x− ∧ y ≡ ¬(x ∧ y) is wat dat betreft nog krachtiger. Met een zogenaamde NAND–poort die deze operator implementeert (m.a.w. uitvoersignaal is 0 indien alle invoersignalen 1 zijn; anders is het uitvoersignaal 1), kan zowel een NOT–poort, een OR–poort als een AND–poort gesimuleerd worden! Er geldt immers ¬p ≡ p − ∧1 p ∧ q ≡ (p − ∧ q) − ∧1 p ∨ q ≡ (p − ∧ 1) − ∧ (q − ∧ 1) Bovendien heeft men voor het maken van een NAND–poort slechts 2 transistoren nodig, terwijl er voor een OR–poort en een AND–poort telkens 3 nodig zijn (en 1 voor een NOT– poort). In de praktijk bouwt men dan ook meestal digitale schakelingen uitsluitend gebruik makend van NAND–poorten. 4.5. DIGITALE SCHAKELINGEN 67 Oefeningen In onderstaande oefeningen mag je voor de bewijzen van stellingen enkel gebruik maken van: • de axioma’s uit Tabel 4.1 en axioma 15 • de stellingen uit Tabel 4.2, 4.3 en 4.4 met een kleiner volgnummer 1. We hebben reeds 2 bewijzen gegeven voor stelling 5. Geef nog 2 bewijzen, namelijk ´e´en waarbij je ¬x ≡ y ≡ x omzet in ¬y, en ´e´en waarbij je ¬x omzet in y ≡ x ≡ ¬y. Welk van de 4 bewijzen vind je zelf het elegantste en/of gemakkelijkste en waarom? 2. Bewijs onderstaande stellingen. (a) ¬¬x ≡ x (stelling 6, dubbele negatie) (b) ¬0 ≡ 1 (stelling 7, negatie van 0) (c) (x 6≡ y) ≡ ¬x ≡ y (stelling 8) 3. Bewijs onderstaande stellingen. (a) ((x 6≡ y) 6≡ z) ≡ (x 6≡ (y 6≡ z)) (stelling 11, associativiteit van 6≡) (b) ((x 6≡ y) ≡ z) ≡ (x 6≡ (y ≡ z)) (stelling 12, onderlinge associativiteit) (c) x 6≡ y ≡ z ≡ x ≡ y 6≡ z (stelling 13, onderlinge verwisselbaarheid) 4. Bewijs dat 0 het eenheidselement is van ∨, d.w.z. x ∨ 0 ≡ x (stelling 15). Vertrek in je bewijs van de meest gestructureerde kant. 5. Bewijs stelling 16, namelijk x ∨ (y ∨ z) ≡ (x ∨ y) ∨ (x ∨ z). Het is mogelijk een bewijs te leveren dat enkel gebruik maakt van axioma’s 7, 8 en 9. 6. Bewijs stelling 17, namelijk x ∨ y ≡ x ∨ ¬y ≡ x. Merk op dat x ∨ y ≡ x ∨ ¬y van dezelfde algemene vorm is als de rechterzijde van axioma 10. 7. Bewijs stelling 18, namelijk x ∧ y ≡ y ∧ x. 8. Bewijs stelling 20, namelijk x ∧ x ≡ x. 9. Bewijs stelling 22, namelijk x ∧ 0 ≡ 0. 10. Bewijs stelling 23, namelijk x ∧ (y ∧ z) ≡ (x ∧ y) ∧ (x ∧ z) 11. Bewijs stelling 24, namelijk x ∧ ¬x ≡ 0 12. Bewijs stelling 25 (a), namelijk x ∧ (x ∨ y) ≡ x 13. Bewijs stelling 25 (b), namelijk x ∨ (x ∧ y) ≡ x 14. Bewijs stelling 26 (b), namelijk x ∨ (¬x ∧ y) ≡ x ∨ y 15. Bewijs stelling 27, namelijk x ∨ (y ∧ z) ≡ (x ∨ y) ∧ (x ∨ z) 16. Bewijs stelling 28, namelijk x ∧ (y ∨ z) ≡ (x ∧ y) ∨ (x ∧ z) 68 HOOFDSTUK 4. PROPOSITIEREKENEN 17. Bewijs stelling 29 (a), namelijk ¬(x ∧ y) ≡ ¬x ∨ ¬y 18. Bewijs stelling 29 (b), namelijk ¬(x ∨ y) ≡ ¬x ∧ ¬y 19. Bewijs stelling 30, namelijk x ∧ y ≡ x ∧ ¬y ≡ ¬x 20. Bewijs stelling 32, namelijk x ∧ (y ≡ x) ≡ x ∧ y 21. Bewijs stelling 33, namelijk (x ≡ y) ∧ (z ≡ x) ≡ (x ≡ y) ∧ (z ≡ y) 22. Bewijs stelling 34, namelijk x ≡ y ≡ (x ∧ y) ∨ (¬x ∧ ¬y) 23. Bewijs stelling 35, namelijk x 6≡ y ≡ (¬x ∧ y) ∨ (x ∧ ¬y) 24. Bewijs onderstaande stellingen die kunnen gebruikt worden om ⇒ te herschrijven in termen van andere operatoren. (a) x ⇒ y ≡ ¬x ∨ y (stelling 36) (b) x ⇒ y ≡ x ∧ y ≡ x (stelling 37) (c) x ⇒ y ≡ ¬y ⇒ ¬x (stelling 38, contrapositie) 25. Bewijs stelling 40, namelijk x ⇒ (y ≡ z) ≡ x ⇒ y ≡ x ⇒ z 26. Bewijs stelling 41, namelijk x ⇒ (y ⇒ z) ≡ (x ⇒ y) ⇒ (x ⇒ z) 27. Bewijs stelling 42, namelijk x ∧ y ⇒ z ≡ x ⇒ (y ⇒ z) 28. Bewijs stelling 43, namelijk x ∧ (x ⇒ y) ≡ x ∧ y 29. Bewijs stelling 44, namelijk x ∧ (y ⇒ x) ≡ x 30. Bewijs stelling 45, namelijk x ∨ (x ⇒ y) ≡ 1 31. Bewijs stelling 46, namelijk x ∨ (y ⇒ x) ≡ y ⇒ x 32. Bewijs stelling 47, namelijk x ∨ y ⇒ x ∧ y ≡ x ≡ y 33. Bewijs stelling 48, namelijk x ⇒ x ≡ 1 34. Bewijs stelling 49, namelijk x ⇒ 1 ≡ 1 35. Bewijs stelling 50, namelijk 1 ⇒ x ≡ x 36. Bewijs stelling 51, namelijk x ⇒ 0 ≡ ¬x 37. Bewijs stelling 52, namelijk 0 ⇒ x ≡ 1 38. Bewijs onderstaande stellingen. (a) x ∧ y ⇒ x (stelling 53(b)) (b) x ∧ y ⇒ x ∨ y (stelling 53(c)) (c) x ∨ (y ∧ z) ⇒ x ∨ y (stelling 53(d)) (d) x ∧ y ⇒ x ∧ (y ∨ z) (stelling 53(e)) 69 4.5. DIGITALE SCHAKELINGEN 39. Bewijs onderstaande stellingen m.b.t. gevallenonderzoek. (a) (x ⇒ z) ∧ (y ⇒ z) ≡ (x ∨ y) ⇒ z (stelling 55) (b) (x ⇒ z) ∧ (¬x ⇒ z) ≡ z (stelling 56) 40. Bewijs stelling 58, namelijk (x ⇒ y) ∧ (y ⇒ x) ⇒ (x ≡ y) 41. Bewijs stelling 59(b), namelijk (x ≡ y) ∧ (y ⇒ z) ⇒ (x ⇒ z) 42. Bewijs stelling 59(c), namelijk (x ⇒ y) ∧ (y ≡ z) ⇒ (x ⇒ z) 43. Bewijs de stellingen uit Tabel 4.4. In onderstaande oefeningen mag je voor de bewijzen van stellingen gebruik maken van alle reeds eerder bewezen stellingen. Tenzij uitdrukkelijk anders vermeld, wordt er uit gegaan van de tweewaardige semantiek uit 4.4.1. 44. Bewijs de volgende stellingen. Een mogelijkheid is om een ketting op te stellen van x ≡ y naar x ⇒ y (voor de eerste stelling) waarbij je ≡ en ⇒ gebruikt om de schakels aan elkaar te hangen. (a) (x ≡ y) ⇒ x ⇒ y (b) (x ≡ y) ⇒ y ⇒ x 45. Bewijs de stelling van Shannon, namelijk r[v := x] ≡ (x ∧ r[v := 1]) ∨ (¬x ∧ r[v := 0]) waarbij r een willekeurige propositie is en v een willekeurige veranderlijke. 46. Bewijs de volgende stelling. Je kan gebruik maken van de stellingen uit Tabel 4.4. x ∧ y ⇒ (x ≡ y) 47. Bewijs (x ⇒ y) ⇒ (z ⇒ x) ⇒ (z ⇒ y) door aannemen van het antecedent x ⇒ y 48. Bewijs x⇒y⇒x door aannemen van het antecedent x 49. Bewijs (x ∨ y) ∧ z ≡ (x ∧ z) ∨ (y ∧ z) door gevallenonderzoek. 50. Bewijs de volgende stellingen (het kan handig zijn ze te bewijzen in de volgorde waarin ze opgegeven zijn). 70 HOOFDSTUK 4. PROPOSITIEREKENEN (a) x ⇒ y ⇒ x (b) x ⇒ y ⇒ z ≡ y ⇒ x ⇒ z (c) (x ⇒ y) ⇒ (z ⇒ x) ⇒ (z ⇒ y) (d) (x ⇒ y) ⇒ (y ⇒ z) ⇒ (x ⇒ z) (e) (x ⇒ y) ⇒ (x ∨ z) ⇒ (y ∨ z) (f) (x ⇒ y) ⇒ (x ∧ z) ⇒ (y ∧ z) 51. Bewijs de volgende stellingen. (a) ¬x ⇒ x ≡ x (b) ¬x ⇒ x ⇒ y 52. Bewijs de volgende stelling. Maak eventueel gebruik van wat je bewezen hebt in de vorige oefening. (¬x ⇒ ¬y) ⇒ (¬x ⇒ y) ⇒ x 53. Bepaal de waarheidswaarde van proposities (a) t.e.m. (f) in toestand S1 en S2 . (a) (b) (c) (d) (e) (f) ¬(x ∨ y) ¬x ∨ y ¬(x ∧ y) ¬x ∧ y (x ∨ y) ⇒ z x ∨ (y ⇒ z) toestand S1 x y z 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 toestand S2 x y z 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1 1 0 54. Bepaal de waarheidswaarde van de volgende proposities in alle toestanden. (a) x ∨ (y ∨ z) (b) x ∧ (y ∧ z) (c) x ∧ (y ∨ z) (d) x ∨ (y ∧ z) (e) ¬x ⇒ (x ∨ z) (f) ¬x ≡ (x ∨ z) (g) (¬x ≡ y) ∨ x (h) (x ≡ y) ≡ (x ⇒ y) ∧ (y ⇒ x) 55. Ga na dat de axioma’s uit Tabel 4.1 tautologie¨en zijn. 56. Welk van onderstaande proposities zijn tautologie¨en? Indien de propositie een tautologie is, geef dan een calculationeel bewijs waaruit blijkt dat de propositie een stelling is. Indien de propositie geen tautologie is, geef dan een voorbeeld van een toestand waarin de propositie niet waar is. (a) (x ∨ y) ∧ (x ⇒ z) ⇒ z ∨ y 71 4.5. DIGITALE SCHAKELINGEN (b) (x ∧ y) ∧ (x ⇒ z) ⇒ z ∧ y (c) ¬x ∧ (x ⇒ z) ⇒ ¬z 57. Bewijs de volgende stellingen: (a) (x ≡ y ≡ z) ≡ (x 6≡ y 6≡ z) (b) ¬(x ∧ y) ∧ (x ∨ y) ≡ (x 6≡ y) 58. Welk van onderstaande circuits implementeert specificatie (z ≡ x ∧ y) ∨ (z 6≡ x)? (a) z = AND(x, y) (b) z = NOT(x) 59. Toon aan dat ¬x x∧y x∨y ≡ ≡ ≡ x− ∧1 (x − ∧ y) − ∧1 (x − ∧ 1) − ∧ (y − ∧ 1) 60. Een producent van poorten voor digitale schakelingen beslist om de produktie van NOT– poorten en OR–poorten stop te zetten en in de toekomst enkel nog NOR–poorten te maken. Een NOR–poort is een poort waarvan het uitvoersignaal 1 is als alle invoersignalen 0 zijn. Anders is het uitvoersignaal 0. Waarom denk je dat hij die beslissing maakt? 61. Welke circuits implementeren onderstaande specificaties? (a) (z ≡ x) ∨ (z ≡ ¬x) (b) (z ≡ x) ∧ (z ≡ ¬x)
© Copyright 2024 ExpyDoc