uitwerkingen van de opgaven uit het dictaat
uitwerkingen van de opgaven uit het dictaat
uitwerkingen van de opgaven uit het dictaat
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Inhoudsopgave<br />
Formeel Denken Opgavenbun<strong>de</strong>l<br />
Engelbert Hubbers en Freek Wiedijk<br />
13 <strong>de</strong>cember 2012<br />
1 Propositielogica 2<br />
2 Predikaatlogica 10<br />
3 Talen en automaten 20<br />
4 Discrete wiskun<strong>de</strong> 40<br />
5 Modale logica 57<br />
1
1 Propositielogica<br />
Opgave 1.A Vind zinnen <strong>uit</strong> <strong>de</strong> formele taal die <strong>het</strong>zelf<strong>de</strong> betekenen als <strong>de</strong> volgen<strong>de</strong> zinnen.<br />
(i) Het regent niet, noch schijnt <strong>de</strong> zon.<br />
Oplossing: ¬R ∧ ¬Z: <strong>het</strong> regent niet en <strong>de</strong> zon schijnt niet.<br />
(ii) De zon schijnt, tenzij <strong>het</strong> regent<br />
Oplossing: De betekenis <strong>van</strong> <strong>het</strong> woord ‘tenzij’ is een beetje ondui<strong>de</strong>lijk. Meestal wordt<br />
<strong>het</strong> gelezen als ‘De zon schijnt, behalve als <strong>het</strong> regent’. Vandaar dat er verschillen<strong>de</strong><br />
mogelijkhe<strong>de</strong>n zijn. In <strong>het</strong> bijzon<strong>de</strong>r zijn <strong>de</strong>ze verschillen<strong>de</strong> oplossingen niet logisch<br />
equivalent (zie <strong>de</strong>finitie 1.11).<br />
• R → ¬Z: als <strong>het</strong> regent schijnt <strong>de</strong> zon niet (merk op dat hier niets gezegd wordt<br />
over wanneer <strong>de</strong> zon dan wel schijnt: komt dat overeen met <strong>de</strong> betekenis <strong>van</strong><br />
‘tenzij’?),<br />
• ¬R → Z: als <strong>het</strong> niet regent schijnt <strong>de</strong> zon,<br />
• Z ↔ ¬R: <strong>de</strong> zon schijnt dan en slechts dan als <strong>het</strong> niet regent.<br />
(iii) Of <strong>de</strong> zon schijnt, of <strong>het</strong> regent. (We bedoelen dus niet allebei)<br />
Oplossing: Ook hier zijn er verschillen<strong>de</strong> mogelijkhe<strong>de</strong>n, maar in dit geval zijn <strong>de</strong> formules<br />
wel logisch equivalent. De eerste versie lijkt iets meer op <strong>de</strong> originele vraag dan<br />
<strong>de</strong> twee<strong>de</strong>.<br />
• (Z ∨ R) ∧ ¬(Z ∧ R): <strong>de</strong> zon schijnt of <strong>het</strong> regent, en niet allebei tegelijk,<br />
• (Z ∧ ¬R) ∨ (¬Z ∧ R): <strong>de</strong> zon schijnt en <strong>het</strong> regent niet of <strong>de</strong> zon schijnt niet en<br />
<strong>het</strong> regent wel.<br />
Merk op dat <strong>de</strong> formule Z ↔ ¬R <strong>de</strong>zelf<strong>de</strong> waarheidstabel heeft als <strong>de</strong> hierboven genoem<strong>de</strong><br />
oplossingen. Maar omdat <strong>de</strong> structuur <strong>van</strong> <strong>de</strong>ze formule helemaal niet meer<br />
lijkt op <strong>de</strong> oorspronkelijke zin, vin<strong>de</strong>n we <strong>de</strong>ze formule min<strong>de</strong>r goed als vertaling.<br />
Waarschijnlijk ten overvloe<strong>de</strong> maar simpelweg Z ∨ R is dus fout, want dit sl<strong>uit</strong> <strong>het</strong><br />
‘allebei’ niet <strong>uit</strong>.<br />
(iv) Er is alleen een regenboog als <strong>de</strong> zon schijnt en <strong>het</strong> regent.<br />
Oplossing: Deze oplossing heeft <strong>de</strong> voorkeur: RB → (Z ∧ R): als er een regenboog is,<br />
dan schijnt <strong>de</strong> zon en regent <strong>het</strong>, want alleen als <strong>de</strong> zon schijnt en <strong>het</strong> regent is er een<br />
regenboog.<br />
De volgen<strong>de</strong> optie vin<strong>de</strong>n we niet zo goed, maar nog wel enigszins ver<strong>de</strong>digbaar: RB ↔<br />
(Z ∧ R): er is een regenboog dan en slechts dan als <strong>de</strong> zon schijnt en <strong>het</strong> regent. Hier<br />
wordt <strong>het</strong> woordje ‘alleen’ wel erg sterk geïnterpreteerd: <strong>de</strong> bewering geldt blijkbaar<br />
ook <strong>de</strong> an<strong>de</strong>re kant op.<br />
Ver<strong>de</strong>r is <strong>het</strong> dui<strong>de</strong>lijk dat (Z ∧ R) → RB een te zwakke vertaling is <strong>van</strong> <strong>de</strong> zin. Dit is<br />
namelijk <strong>de</strong> vertaling <strong>van</strong> ‘Er is een regenboog als <strong>de</strong> zon schijnt en <strong>het</strong> regent’ en dus<br />
zou <strong>het</strong> woordje ‘alleen’ niets toevoegen.<br />
(v) Als ik b<strong>uit</strong>en ben, dan word ik nat, mits <strong>het</strong> regent.<br />
Oplossing: Het woordje ‘mits’ kan hier wor<strong>de</strong>n gezien als ‘en als’. Dat levert weer een<br />
aantal logisch equivalente formules. De eerste sl<strong>uit</strong> <strong>het</strong> beste aan bij <strong>de</strong> exacte tekst in<br />
<strong>de</strong> vraag.<br />
• Bui → (R → N): als ik b<strong>uit</strong>en ben en als <strong>het</strong> dan regent dan word ik nat,<br />
• R → (Bui → N): als <strong>het</strong> regent en als ik dan b<strong>uit</strong>en ben dan word ik nat,<br />
2
• (Bui ∧R) → N: als ik b<strong>uit</strong>en ben en <strong>het</strong> regent dan word ik nat.<br />
Het woordje ‘mits’ kan ook wor<strong>de</strong>n gezien als ‘op voorwaar<strong>de</strong> dat’ wat min of meer<br />
<strong>de</strong>zelf<strong>de</strong> betekenis heeft als ‘alleen als’ en dus kun je ook <strong>de</strong>ze formule gebruiken:<br />
• (Bui → N) → R: als ik nat word als ik b<strong>uit</strong>en ben, dan regent <strong>het</strong>.<br />
• Bui → (N → R): als ik b<strong>uit</strong>en ben en als ik dan nat word, dan regent <strong>het</strong>.<br />
Opgave 1.B Kun je f ↔ g ook <strong>uit</strong>drukken met behulp <strong>van</strong> <strong>de</strong> an<strong>de</strong>re symbolen?<br />
Oplossing: De formule f ↔ g is ook te schrijven als (f → g) ∧ (g → f) of als (f ∨ g) →<br />
(f ∧ g). Ook (f ∧ g) ∨ (¬f ∧ ¬g) is logisch equivalent.<br />
Opgave 1.C Vertaal <strong>de</strong> volgen<strong>de</strong> zinnen <strong>uit</strong> <strong>de</strong> formele taal naar <strong>het</strong> Ne<strong>de</strong>rlands:<br />
(i) R ↔ Z<br />
Oplossing: Het regent dan en slechts dan als <strong>de</strong> zon schijnt. (Of iets gebruikelijker in <strong>het</strong><br />
spraakgebruik: Het regent precies als <strong>de</strong> zon schijnt.) Merk op dat bijvoorbeeld <strong>de</strong> zin<br />
‘Als <strong>het</strong> regent dan schijnt <strong>de</strong> zon en als <strong>de</strong> zon schijnt regent <strong>het</strong>’ een prima vertaling<br />
is <strong>van</strong> <strong>de</strong> formule (R → Z) ∧ (Z → R) en die formule is weliswaar equivalent aan <strong>de</strong><br />
formule R ↔ Z, maar toch is die zin geen vertaling <strong>van</strong> <strong>de</strong> oorspronkelijke formule<br />
R ↔ Z.<br />
(ii) RB → (R ∧ Z)<br />
Oplossing: Als er een regenboog is, regent <strong>het</strong> en schijnt <strong>de</strong> zon.<br />
(iii) Bui → ¬ Bin<br />
Oplossing: Als ik b<strong>uit</strong>en ben dan ben ik niet binnen.<br />
(iv) Bui ∨ Bin<br />
Oplossing: Ik ben b<strong>uit</strong>en of ik ben binnen, of allebei.<br />
Opgave 1.D Schrijf <strong>de</strong> waarheidstabellen op <strong>van</strong>:<br />
(i) a ∨ ¬a<br />
Oplossing: Zorg dat je altijd begint met kolommen te maken voor alle atomen. In<br />
on<strong>de</strong>rstaan<strong>de</strong> tabellen zijn die kolommen met atomen nooit herhaald, maar dat mag<br />
natuurlijk wel. Zorg er ver<strong>de</strong>r voor dat je tabellen er verzorgd <strong>uit</strong>zien en leesbaar<br />
zijn. Merk op dat in on<strong>de</strong>rstaan<strong>de</strong> tabellen soms extra haakjes zijn opgenomen om <strong>het</strong><br />
parseren <strong>van</strong> <strong>de</strong> formules makkelijker te maken.<br />
a ¬a a ∨ ¬a<br />
0 1 1<br />
1 0 1<br />
(ii) (a → b) → a<br />
Oplossing:<br />
a b a → b (a → b) → a<br />
0 0 1 0<br />
0 1 1 0<br />
1 0 0 1<br />
1 1 1 1<br />
(iii) a → (b → a)<br />
Oplossing:<br />
3
a b b → a a → (b → a)<br />
0 0 1 1<br />
0 1 0 1<br />
1 0 1 1<br />
1 1 1 1<br />
(iv) a ∧ b → a<br />
Oplossing:<br />
a b (a ∧ b) (a ∧ b) → a<br />
0 0 0 1<br />
0 1 0 1<br />
1 0 0 1<br />
1 1 1 1<br />
(v) a ∧ (b → a)<br />
Oplossing:<br />
a b b → a a ∧ (b → a)<br />
0 0 1 0<br />
0 1 0 0<br />
1 0 1 1<br />
1 1 1 1<br />
(vi) ¬a → ¬b<br />
Oplossing:<br />
a b ¬a ¬b ¬a → ¬b<br />
0 0 1 1 1<br />
0 1 1 0 0<br />
1 0 0 1 1<br />
1 1 0 0 1<br />
Opgave 1.E Welke <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> proposities zijn logisch waar?<br />
Oplossing: Het antwoord wordt gevon<strong>de</strong>n door <strong>de</strong> waarheidstabellen op te schrijven. Staan<br />
er in <strong>de</strong> kolom on<strong>de</strong>r <strong>de</strong> formule alleen 1-en, dan is die formule logisch waar. Zodra er echter<br />
één of meer 0-en staan, is <strong>de</strong> formule niet logisch waar.<br />
Be<strong>de</strong>nk dat <strong>het</strong> <strong>uit</strong>sl<strong>uit</strong>end geven <strong>van</strong> een waarheidstabel normaal gesproken geen<br />
antwoord is op <strong>de</strong> vraag. Koppel altijd wat je in <strong>de</strong> tabel ziet aan wat er gevraagd<br />
wordt!<br />
In <strong>de</strong>ze <strong>uit</strong>werking is dat hierboven globaal gedaan door expliciet te zeggen hoe je ‘logisch<br />
waar of niet’ kunt aflei<strong>de</strong>n <strong>uit</strong> <strong>de</strong> tabel.<br />
(i) a ∨ ¬a<br />
Oplossing: Uit <strong>de</strong> waarheidstabel in opgave 1.D volgt dat a ∨ ¬a logisch waar is.<br />
(ii) a → (a → a)<br />
Oplossing: Logisch waar. Zie <strong>de</strong> laatste kolom <strong>uit</strong> <strong>de</strong>ze tabel:<br />
a a → a a → (a → a)<br />
0 1 1<br />
1 1 1<br />
(iii) a → a<br />
Oplossing: Logisch waar. Zie <strong>de</strong> twee<strong>de</strong> kolom <strong>uit</strong> <strong>de</strong> tabel <strong>van</strong> <strong>het</strong> vorige on<strong>de</strong>r<strong>de</strong>el.<br />
4
(iv) (a → b) → a<br />
Oplossing: Uit <strong>de</strong> 0-en in <strong>de</strong> overeenkomstige waarheidstabel in opgave 1.D blijkt dat<br />
(a → b) → a niet logisch waar is.<br />
(v) a → (b → a)<br />
Oplossing: Uit <strong>de</strong> 1-en in <strong>de</strong> overeenkomstige waarheidstabel in opgave 1.D blijkt dat<br />
a → (b → a) wel logisch waar is.<br />
(vi) a ∧ b → a<br />
Oplossing: Uit <strong>de</strong> 1-en in <strong>de</strong> overeenkomstige waarheidstabel in opgave 1.D blijkt dat<br />
a ∧ b → a wel logisch waar is.<br />
(vii) a ∨ (b → a)<br />
Oplossing: Niet logisch waar. Zie <strong>de</strong> laatste kolom <strong>uit</strong> <strong>de</strong>ze tabel:<br />
a b b → a a ∨ (b → a)<br />
0 0 1 1<br />
0 1 0 0<br />
1 0 1 1<br />
1 1 1 1<br />
(viii) a ∨ b → a<br />
Oplossing: Niet logisch waar. Zie <strong>de</strong> laatste kolom <strong>uit</strong> <strong>de</strong>ze tabel:<br />
a b a ∨ b (a ∨ b) → a<br />
0 0 0 1<br />
0 1 1 0<br />
1 0 1 1<br />
1 1 1 1<br />
Opgave 1.F Laat f en g proposities zijn. Ga na of <strong>de</strong> volgen<strong>de</strong> <strong>uit</strong>spraken kloppen. Verklaar<br />
je antwoor<strong>de</strong>n.<br />
Oplossing: Merk op dat alle <strong>uit</strong>spraken hier <strong>van</strong> <strong>het</strong> type ‘als. . . , dan. . . ’ zijn. Als <strong>de</strong><br />
<strong>uit</strong>spraak klopt moet je een re<strong>de</strong>nering geven die dat on<strong>de</strong>rsteunt. Als <strong>de</strong> <strong>uit</strong>spraak niet klopt<br />
kun je volstaan met een tegenvoorbeeld, maar je mag natuurlijk ook een algemene re<strong>de</strong>nering<br />
geven.<br />
Een bewijs <strong>van</strong> een ‘als. . . , dan. . . ’ bewering komt erop neer dat je mag aannemen wat<br />
er in <strong>het</strong> ‘als’ stuk staat en daar<strong>uit</strong> moet aflei<strong>de</strong>n wat er in <strong>het</strong> ‘dan’ stuk staat.<br />
Bij een tegenvoorbeeld moet je concrete formules f en g kiezen, waarbij je laat zien dat<br />
<strong>het</strong> ‘als’ stuk wel geldt, maar <strong>het</strong> ‘dan’ stuk niet.<br />
(i) Als |= f en |= g, dan |= f ∧ g.<br />
Oplossing: Klopt.<br />
Neem aan |= f en |= g. Dan geldt voor elk mo<strong>de</strong>l v dat v(f) = 1 en v(g) = 1. Vervolgens<br />
kun je bij zo’n mo<strong>de</strong>l v v(f ∧ g) <strong>uit</strong>rekenen met <strong>de</strong> waarheidstabel <strong>van</strong> ∧. Daar<strong>uit</strong> blijkt<br />
dat dan ook v(f ∧ g) = 1. Dus blijkbaar volgt <strong>uit</strong> <strong>de</strong> aanname dat voor elk mo<strong>de</strong>l v,<br />
v(f ∧ g) = 1. En dus per <strong>de</strong>finitie geldt dan |= f ∧ g. En dus klopt <strong>de</strong> oorspronkelijke<br />
<strong>uit</strong>spraak.<br />
(ii) Als niet |= f, dan |= ¬f.<br />
Oplossing: Klopt niet.<br />
Als we een tegenvoorbeeld willen vin<strong>de</strong>n waarvoor dus wel geldt dat ‘niet |= f’, moeten<br />
we in elk geval een f kiezen waarbij er minimaal een mo<strong>de</strong>l v1 is met v1(f) = 0. Dan<br />
volgt automatisch dat v(¬f) = 1. Maar om zeker te weten dat ‘|= ¬f’ niet geldt, moet<br />
er dus ook een mo<strong>de</strong>l v2 zijn met v2(¬f) = 0. Dat kan alleen maar als v2(f) = 1. Dus<br />
5
kunnen we alleen een tegenvoorbeeld vin<strong>de</strong>n als f dus in sommige mo<strong>de</strong>llen waar is en<br />
in an<strong>de</strong>re mo<strong>de</strong>llen niet waar. Gelukkig zijn daar genoeg mogelijkhe<strong>de</strong>n voor. Neem<br />
maar f = a. Dan geldt ‘niet |= a’ en toch geldt <strong>de</strong> conclusie ‘|= ¬a’ niet. En dus klopt<br />
<strong>de</strong> oorspronkelijke <strong>uit</strong>spraak niet.<br />
(iii) Als |= f of |= g, dan |= f ∨ g.<br />
Oplossing: Klopt.<br />
Neem aan |= f of |= g. Dan hebben we eigenlijk drie gevallen die we moeten bekijken<br />
en waarin we steeds <strong>de</strong>zelf<strong>de</strong> conclusie, namelijk |= f ∨ g moeten aflei<strong>de</strong>n.<br />
(1) |= f geldt. Dus voor elk mo<strong>de</strong>l v geldt v(f) = 1. Maar dan geldt ook voor elk<br />
mo<strong>de</strong>l v dat v(f ∨ g) = 1 omdat alleen <strong>het</strong> ‘waar’ zijn <strong>van</strong> f al garan<strong>de</strong>ert dat <strong>de</strong><br />
samengestel<strong>de</strong> formule f ∨ g ook waar is. Maar dan geldt per <strong>de</strong>finitie |= f ∨ g.<br />
(2) |= g geldt. Dit gaat volkomen analoog aan <strong>het</strong> vorige geval.<br />
(3) |= f geldt en |= g geldt. In <strong>het</strong> bijzon<strong>de</strong>r geldt dus |= f en bij <strong>de</strong> beschrijving<br />
<strong>van</strong> dat geval hebben we nergens gebruikt dat |= g al dan niet geldt, dus <strong>het</strong>zelf<strong>de</strong><br />
bewijs kan nog een keer gegeven wor<strong>de</strong>n.<br />
Dus in alle drie <strong>de</strong> gevallen geldt <strong>de</strong> conclusie. Dus geldt <strong>de</strong> conclusie dan ook on<strong>de</strong>r <strong>de</strong><br />
samengestel<strong>de</strong> aanname ‘|= f of |= g’. En dus klopt <strong>de</strong> oorspronkelijke <strong>uit</strong>spraak.<br />
(iv) Als (als |= f, dan |= g), dan |= f → g.<br />
Oplossing: Klopt niet.<br />
We hebben dus een voorbeeld nodig waarvoor ‘(als |= f, dan |= g)’ waar is. Dit is<br />
zelf ook weer een ‘als. . . , dan. . . ’ bewering en kan dus op twee manieren waar wor<strong>de</strong>n<br />
gemaakt.<br />
(1) Als |= f niet waar is.<br />
(2) Als |= f en |= g allebei waar zijn.<br />
Als we in één <strong>van</strong> <strong>de</strong>ze situaties kunnen laten zien dat |= f → g niet waar is, hebben<br />
we dus een tegenvoorbeeld gevon<strong>de</strong>n.<br />
Neem nu f = a en g = b. Als we nu naar <strong>de</strong> mo<strong>de</strong>llen <strong>van</strong> a → b kijken, zien we dat<br />
er vier verschillen<strong>de</strong> mo<strong>de</strong>llen zijn: v1(a) = 0 en v1(b) = 0, v2(a) = 0 en v2(b) = 1,<br />
v3(a) = 1 en v3(b) = 0, v4(a) = 1 en v4(b) = 1. In een waarheidstabel ziet dat er zo <strong>uit</strong>:<br />
mo<strong>de</strong>lnaam a b a → b<br />
v1 0 0 1<br />
v2 0 1 1<br />
v3 1 0 0<br />
v4 1 1 1<br />
Maar omdat bijvoorbeeld v1(a) = 0 volgt meteen dat |= a niet waar is. Dus voor <strong>de</strong>ze<br />
concrete keuze <strong>van</strong> f en g geldt ‘(als |= f, dan |= g)’. Echter, als we v3(a → b) gaan<br />
<strong>uit</strong>rekenen, zien we dat v3(a → b) = 0. Dus geldt |= f → g niet. En dus hebben<br />
we in<strong>de</strong>rdaad een tegenvoorbeeld gevon<strong>de</strong>n. En dus klopt <strong>de</strong> oorspronkelijke <strong>uit</strong>spraak<br />
niet.<br />
(v) Als |= ¬f, dan niet |= f.<br />
Oplossing: Klopt.<br />
Deze keer geven we <strong>het</strong> bewijs zon<strong>de</strong>r <strong>het</strong> woord ‘mo<strong>de</strong>l’ te gebruiken, maar door te<br />
beschrijven wat er in <strong>de</strong> waarheidstabellen gebeurt, zon<strong>de</strong>r <strong>de</strong> waarheidstabellen <strong>uit</strong><br />
te schrijven. Omdat <strong>de</strong> bewering moet wor<strong>de</strong>n bewezen voor elke f en g kun je ook<br />
6
helemaal geen tabel <strong>uit</strong>schrijven want je weet bijvoorbeeld niet welke atomen er in<br />
zitten. Maar je weet wel of er al dan niet 1-en en 0-en in <strong>de</strong> tabel voorkomen en dat is<br />
genoeg om <strong>de</strong>ze bewering te bewijzen.<br />
Neem aan |= ¬f. Dan bevat <strong>de</strong> kolom <strong>van</strong> ¬f alleen 1-en. En die <strong>van</strong> f dus alleen 0-en.<br />
Per <strong>de</strong>finitie geldt |= f dus niet. En dus klopt <strong>de</strong> <strong>uit</strong>spraak zelf wel.<br />
(vi) Als |= f ∨ g, dan |= f of |= g.<br />
Oplossing: Klopt niet.<br />
We zoeken een tegenvoorbeeld met |= f ∨ g maar toch niet |= f en niet |= g. Neem<br />
voor f = a en g = ¬a. Dan zijn er twee verschillen<strong>de</strong> mo<strong>de</strong>llen: v1 met v1(a) = 0 en<br />
v2 met v2(a) = 1. Hier<strong>uit</strong> volgt meteen dat v1(¬a) = 1 en v2(¬a) = 0. Uit v1(a) = 0<br />
volgt dat |= a niet geldt. En <strong>uit</strong> v2(¬a) = 0 volgt dat ook |= ¬a niet geldt. Echter,<br />
v1(a ∨ ¬a) = 1 en v2(a ∨ ¬a) = 1, dus geldt in<strong>de</strong>rdaad wel |= f ∨ g. En dus is dit een<br />
goed tegenvoorbeeld. En dus klopt <strong>de</strong> oorspronkelijke <strong>uit</strong>spraak niet.<br />
(vii) Als |= f → g, dan (als |= f, dan |= g).<br />
Oplossing: Klopt.<br />
Neem aan |= f → g. Dan geldt voor elk mo<strong>de</strong>l v dat v(f → g) = 1. Door te kijken hoe<br />
→ werkt zien we dat er twee manieren zijn waarop v(f → g) = 1 kan voorkomen:<br />
(1) v(f) = 0 (en <strong>de</strong> waar<strong>de</strong> <strong>van</strong> v(g) is niet <strong>van</strong> belang)<br />
(2) v(f) = 1 en v(g) = 1.<br />
We moeten in bei<strong>de</strong> gevallen laten zien dat ‘als |= f, dan |= g’ waar is.<br />
(1) Stel dat er een mo<strong>de</strong>l v is met v(f) = 0. Dat betekent automatisch dat |= f niet<br />
waar kan zijn en dus is <strong>de</strong> bewering ‘als |= f, dan |= g’ kloppend.<br />
(2) Dus hoeven we alleen nog maar te kijken naar <strong>de</strong> situatie dat alle mo<strong>de</strong>llen v(f) = 1<br />
geven. Maar dan volgt meteen <strong>uit</strong> <strong>de</strong> hierboven gemaakte gevalson<strong>de</strong>rscheiding dat<br />
v(g) = 1 voor alle mo<strong>de</strong>llen. Dus is ‘als |= f, dan |= g’ waar.<br />
Omdat in bei<strong>de</strong> situaties <strong>de</strong> conclusie ‘als |= f, dan |= g’ volgt, klopt <strong>de</strong> oorspronkelijke<br />
bewering dus.<br />
(viii) Als |= f ↔ g, dan (|= f dan en slechts dan als |= g).<br />
Oplossing: Klopt.<br />
Voor <strong>de</strong> afwisseling weer een keer een bewijs zon<strong>de</strong>r mo<strong>de</strong>llen, maar met waarheidstabellen.<br />
Neem aan |= f ↔ g. Dit betekent dat in <strong>de</strong> waarheidstabel <strong>de</strong> waarheidswaar<strong>de</strong>n <strong>van</strong> f<br />
en g op elke regel gelijk zijn (of allebei 0 of allebei 1). Als we nu ver<strong>de</strong>r aannemen dat<br />
|= f, dan heeft f dus alleen maar 1-en als waarheidswaar<strong>de</strong>n. Maar dan heeft g ook<br />
alleen maar 1-en. En dus geldt dan |= g. An<strong>de</strong>rsom geldt ook: als |= g waar is, dan<br />
heeft g allemaal 1-en in <strong>de</strong> waarheidstabel en f dus ook. Dus <strong>de</strong> hele bewering klopt.<br />
(ix) Als (|= f dan en slechts dan als |= g), dan |= f ↔ g.<br />
Oplossing: Klopt niet.<br />
Neem voor f = a en g = b. We hebben dan weer <strong>de</strong>zelf<strong>de</strong> vier mo<strong>de</strong>llen als bij on<strong>de</strong>r<strong>de</strong>el<br />
4. In <strong>het</strong> bijzon<strong>de</strong>r hebben we dus v1(a) = 0 en v1(b) = 0. Dus geldt |= a niet. En ook<br />
|= b geldt niet. De bewering ‘|= f dan en slechts dan als |= g’ is dan echter wel waar!<br />
Als we echter v3 bekijken dan zien we dat v3(a ↔ b) = 0. En dus geldt |= f ↔ g niet.<br />
En dus hebben we een tegenvoorbeeld gevon<strong>de</strong>n. En klopt <strong>de</strong> oorspronkelijke bewering<br />
niet.<br />
7
Opgave 1.G Laat zien dat <strong>de</strong> volgen<strong>de</strong> proposities telkens logisch equivalent aan elkaar zijn.<br />
Oplossing: Of proposities logisch equivalent zijn, kunnen we makkelijk zien aan <strong>de</strong><br />
waarheidstabellen. Twee proposities zijn alleen maar logisch equivalent als hun kolommen<br />
precies gelijk zijn.<br />
(i) (a ∧ b) ∧ c en a ∧ (b ∧ c)<br />
Oplossing: Deze proposities zijn logisch equivalent:<br />
a b c a ∧ b b ∧ c (a ∧ b) ∧ c a ∧ (b ∧ c)<br />
0 0 0 0 0 0 0<br />
0 0 1 0 0 0 0<br />
0 1 0 0 0 0 0<br />
0 1 1 0 1 0 0<br />
1 0 0 0 0 0 0<br />
1 0 1 0 0 0 0<br />
1 1 0 1 0 0 0<br />
1 1 1 1 1 1 1<br />
(ii) (a ∨ b) ∨ c en a ∨ (b ∨ c)<br />
Oplossing: Ook <strong>de</strong>ze proposities zijn logisch equivalent:<br />
a b c a ∨ b b ∨ c (a ∨ b) ∨ c a ∨ (b ∨ c)<br />
0 0 0 0 0 0 0<br />
0 0 1 0 1 1 1<br />
0 1 0 1 1 1 1<br />
0 1 1 1 1 1 1<br />
1 0 0 1 0 1 1<br />
1 0 1 1 1 1 1<br />
1 1 0 1 1 1 1<br />
1 1 1 1 1 1 1<br />
Opgave 1.H Laat f en g proposities zijn. Is <strong>de</strong> volgen<strong>de</strong> <strong>uit</strong>spraak waar? f ≡ g dan en<br />
slechts dan als |= f ↔ g.<br />
Oplossing: Deze <strong>uit</strong>spraak is te splitsen in twee <strong>de</strong>el<strong>uit</strong>spraken:<br />
1. Als f ≡ g dan |= f ↔ g. Stel f ≡ g, dan hebben f en g altijd <strong>de</strong>zelf<strong>de</strong> waarheidswaar<strong>de</strong><br />
in ie<strong>de</strong>re rij <strong>van</strong> <strong>de</strong> waarheidstabel (of allebei 0 of allebei 1). Maar dan heeft f ↔ g<br />
automatisch in elke rij een 1. En dus geldt |= f ↔ g is dan waar.<br />
2. Als |= f ↔ g, dan f ≡ g. Stel |= f ↔ g is waar. Dan staat op elke regel in <strong>de</strong> waarheidstabel<br />
voor f ↔ g dus een 1. Maar dat betekent dat in elk mo<strong>de</strong>l <strong>de</strong> waarheidswaar<strong>de</strong><br />
<strong>van</strong> f gelijk is aan die <strong>van</strong> g. En dat is precies wat f ≡ g ook <strong>uit</strong>drukt, dus f ≡ g is<br />
waar.<br />
De twee <strong>de</strong>el<strong>uit</strong>spraken zijn waar, dus <strong>de</strong> totale <strong>uit</strong>spraak is waar.<br />
Opgave 1.I Zijn <strong>de</strong> volgen<strong>de</strong> <strong>uit</strong>spraken waar?<br />
Oplossing: Ook <strong>de</strong>ze opgave kun je eenvoudig oplossen door <strong>de</strong> waarheidstabellen <strong>uit</strong> te<br />
schrijven en vervolgens <strong>de</strong> <strong>de</strong>finitie <strong>van</strong> ‘logisch gevolg’ te controleren.<br />
(i) a ∧ b |= a<br />
Oplossing: a ∧ b |= a is waar, want in ie<strong>de</strong>r mo<strong>de</strong>l waar a ∧ b waar is, is ook a waar.<br />
8
(ii) a ∨ b |= a<br />
Oplossing: a∨b |= a is niet waar; <strong>de</strong> bewering zegt dat als a∨b waar is voor een mo<strong>de</strong>l,<br />
dan moet ook a waar zijn in dat mo<strong>de</strong>l. Er zijn echter mo<strong>de</strong>llen te vin<strong>de</strong>n waarvoor dat<br />
niet geldt. Neem bijvoorbeeld <strong>het</strong> mo<strong>de</strong>l v met v(a) = 0 en v(b) = 1.<br />
(iii) a |= a ∨ b<br />
Oplossing: a |= a ∨ b is waar: als a waar is in een mo<strong>de</strong>l, dan is altijd ook a ∨ b waar<br />
in dat mo<strong>de</strong>l.<br />
(iv) a ∧ ¬a |= b<br />
Oplossing: a ∧ ¬a |= b is waar: als a ∧ ¬a waar is in een mo<strong>de</strong>l, dan is b ook waar<br />
in dat mo<strong>de</strong>l. Dit lijkt een foute bewering omdat a ∧ ¬a in geen enkel mo<strong>de</strong>l waar is.<br />
Echter, <strong>de</strong> woordjes ‘als’ en ‘dan’ maken <strong>de</strong> totale bewering waar, juist doordat <strong>het</strong> ‘als’<br />
<strong>de</strong>el nooit waar zal zijn.<br />
Je kunt <strong>het</strong> ook an<strong>de</strong>rsom bekijken: als <strong>de</strong> bewering a∧¬a |= b niet waar zou zijn, moet<br />
je een mo<strong>de</strong>l kunnen aanwijzen waarin b niet waar is en a ∧ ¬a wel. Dat laatste gaat<br />
natuurlijk niet lukken.<br />
9
2 Predikaatlogica<br />
Opgave 2.A Geef twee mogelijke vertalingen voor <strong>de</strong> volgen<strong>de</strong> zin.<br />
Sharon houdt <strong>van</strong> Maud; een aardige man houdt <strong>van</strong> zo’n knappe vrouw.<br />
Oplossing: Dit is een lastige opgave. Het probleem is dat in <strong>het</strong> Ne<strong>de</strong>rlands niet dui<strong>de</strong>lijk<br />
is wat er bedoeld wordt met zo’n knappe vrouw. Hier moet je dus je eigen interpretatie voor<br />
geven. Uiteraard mag je geen onzinnige interpretaties geven. Het is wel <strong>de</strong> bedoeling dat je<br />
hier iets ver<strong>de</strong>digbaars gebruikt. Het nu volgen<strong>de</strong> lijstje is dan ook niet volledig, maar bevat<br />
slechts voorbeel<strong>de</strong>n <strong>van</strong> interpretaties.<br />
(i) Heel zwak: interpreteer zo’n als een:<br />
H(s, m) ∧ ∀x ∈ M [A(x) → ∃y ∈ V [K(y) ∧ H(x, y)]]<br />
(ii) Interpreteer zo’n knappe vrouw als Sharon die nog knap is ook<br />
H(s, m) ∧ ∀x ∈ M [A(x) → (H(x, s) ∧ K(s))]<br />
(iii) Interpreteer zo’n knappe vrouw als Maud die nog knap is ook<br />
H(s, m) ∧ ∀x ∈ M [A(x) → (H(x, m) ∧ K(m))]<br />
(iv) Interpreteer zo’n knappe vrouw als alle vrouwen die knap zijn:<br />
H(s, m) ∧ ∀x ∈ M [A(x) → ∀y ∈ V [K(y) → H(x, y)]]<br />
(v) Interpreteer zo’n knappe vrouw als alle vrouwen die net zo knap zijn als Sharon:<br />
H(s, m) ∧ ∀x ∈ M [A(x) → ∀y ∈ V [(K(y) ↔ K(s)) → H(x, y)]]<br />
Let wel, hier staat dus niet dat Sharon knap is. Alleen maar dat als Sharon knap is,<br />
dan wordt een willekeurige vrouw die ook knap is bemind door aardige mannen. En<br />
als Sharon niet knap is, dan wordt een willekeurige vrouw die ook niet knap is bemind<br />
door aardige mannen.<br />
(vi) Interpreteer zo’n knappe vrouw als alle vrouwen die net zo knap zijn als Maud:<br />
H(s, m) ∧ ∀x ∈ M [A(x) → ∀y ∈ V [(K(y) ↔ K(m)) → H(x, y)]]<br />
(vii) Interpreteer zo’n knappe vrouw als knappe lesbiennes<br />
H(s, m) ∧ ∀x ∈ M [A(x) → ∀y1, y2 ∈ V [(K(y1) ∧ H(y1, y2)) → H(x, y1)]]<br />
Be<strong>de</strong>nk dat ∀y1, y2 ∈ V [f] een afkorting is voor ∀y1 ∈ V [∀y2 ∈ V [f]].<br />
Merk overigens op dat in geen enkele interpretatie die hier gegeven wordt <strong>de</strong> existentiële<br />
kwantor ∃x ∈ M is gebruikt, terwijl er in <strong>de</strong> tekst toch alleen maar ‘een aardige man’ staat.<br />
Ook dat heeft weer met <strong>de</strong> ondui<strong>de</strong>lijke interpretatie <strong>van</strong> <strong>het</strong> Ne<strong>de</strong>rlands te maken. Wat<br />
bedoelen we nu eigenlijk als we zeggen ‘een kind houdt <strong>van</strong> ijs’? Bedoelen we dan dat er<br />
ergens een kind is dat <strong>van</strong> ijs houdt of bedoelen we dan dat (normaal gesproken) alle kin<strong>de</strong>ren<br />
<strong>van</strong> ijs hou<strong>de</strong>n?<br />
10
Opgave 2.B Vertaal <strong>de</strong> on<strong>de</strong>rstaan<strong>de</strong> formules naar een zin in <strong>het</strong> Ne<strong>de</strong>rlands.<br />
Oplossing: Dit soort <strong>opgaven</strong> kun je <strong>het</strong> beste in stappen maken. Eerst geef je een<br />
Ne<strong>de</strong>rlandse zin die heel dicht bij <strong>de</strong> formule blijft. Vervolgens ga je in <strong>het</strong> Ne<strong>de</strong>rlands met<br />
voegwoor<strong>de</strong>n en woordvolgor<strong>de</strong>s spelen om er een dui<strong>de</strong>lijkere zin <strong>van</strong> te maken. Hierbij moet<br />
je er natuurlijk wel op letten dat <strong>de</strong> betekenis <strong>het</strong>zelf<strong>de</strong> blijft!<br />
<br />
<br />
(i) ∃x ∈ M L(x) ∧ ∃v ∈ V [K(v) ∧ I(v) ∧ H(x, v)]<br />
Oplossing:<br />
• Er is een man die lang is en er is een vrouw die knap en intelligent is en waar die<br />
man <strong>van</strong> houdt.<br />
• Er is een lange man en er is een knappe en intelligente vrouw waar die man <strong>van</strong><br />
houdt.<br />
• Er is een lange man die <strong>van</strong> een zekere knappe en intelligente vrouw houdt.<br />
Het woord zekere is hier toegevoegd om aan te geven dat <strong>de</strong>ze man niet <strong>van</strong> elke<br />
knappe en intelligente vrouw houdt maar <strong>van</strong> een of an<strong>de</strong>re vrouw waar<strong>van</strong> we<br />
alleen maar weten dat er minimaal één bestaat <strong>van</strong> dat type.<br />
<br />
<br />
(ii) ∃x ∈ M L(x) ∧ ∃v ∈ V [K(v) ∧ ¬I(v) ∧ H(x, v)] ∧ ∃w ∈ V [I(w) ∧ H(w, x)]<br />
Oplossing:<br />
• Er is een man die lang is en er is een vrouw die knap en niet intelligent is en waar<br />
die man <strong>van</strong> houdt en er is een vrouw die intelligent is en die <strong>van</strong> die man houdt.<br />
• Er is een lange man die <strong>van</strong> een zekere knappe, maar niet intelligente vrouw houdt<br />
en die zelf wordt bemind door een of an<strong>de</strong>re intelligente vrouw.<br />
De ∃v ∈ V en ∃w ∈ V sl<strong>uit</strong>en niet <strong>uit</strong> dat die v en w <strong>de</strong>zelf<strong>de</strong> vrouw kunnen zijn.<br />
Echter omdat er een extra gegeven is dat v niet en w wel intelligent is, weten we<br />
zeker dat <strong>het</strong> hier om verschillen<strong>de</strong> vrouwen gaat.<br />
Opgave 2.C Formaliseer <strong>de</strong> volgen<strong>de</strong> zin.<br />
Sharon is knap; er is een man die lekker in zijn vel zit <strong>van</strong> wie zij houdt.<br />
Hierbij wordt ge<strong>de</strong>finieerd dat iemand lekker in zijn vel zit als hij of zij <strong>van</strong> zich zelf houdt.<br />
Oplossing: Gebruikmakend <strong>van</strong> <strong>de</strong> woor<strong>de</strong>nboeken op pagina 11 en 12 kan dit zo geformaliseerd<br />
wor<strong>de</strong>n:<br />
K(s) ∧ ∃x ∈ M [H(x, x) ∧ H(s, x)]<br />
Opgave 2.D Formaliseer <strong>de</strong> volgen<strong>de</strong> zinnen.<br />
(i) Voor ie<strong>de</strong>re x en y geldt: x houdt <strong>van</strong> y alleen als x lekker in zijn of haar vel zit.<br />
Oplossing: Be<strong>de</strong>nk dat ‘alleen als’ niet <strong>het</strong>zelf<strong>de</strong> is als ‘dan en slechts dan als’. Dus<br />
∀x, y ∈ V ∪ M[H(x, y) → H(x, x)] is goed en ∀x, y ∈ V ∪ M[H(x, y) ↔ H(x, x)] niet.<br />
(ii) Voor ie<strong>de</strong>re x en y geldt: x houdt <strong>van</strong> y als die lekker in zijn of haar vel zit.<br />
Oplossing: ∀x, y ∈ V ∪ M[H(y, y) → H(x, y)]<br />
(iii) Voor ie<strong>de</strong>re x en y geldt: x houdt precies dan <strong>van</strong> y als y lekker in zijn of haar vel zit.<br />
Oplossing: ∀x, y ∈ V ∪ M[H(y, y) ↔ H(x, y)]<br />
11
(iv) Er is iemand die <strong>van</strong> alle mensen houdt.<br />
Oplossing: ∃x ∈ V ∪ M [∀y ∈ V ∪ M[H(x, y)]]<br />
Opgave 2.E (i) Ga na dat F2 in mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I1 niet geldt. Geldt F1<br />
wel?<br />
Oplossing:<br />
F1 := ∀x ∈ D∃y ∈ D K(x, y)<br />
F2 := ∃x ∈ D∀y ∈ D K(x, y)<br />
Dus ongeacht <strong>van</strong> welk mo<strong>de</strong>l of welke interpretaie wij gebruiken wil F1 zeggen dat voor<br />
alle x in <strong>het</strong> domein er een y in datzelf<strong>de</strong> domein gekozen kan wor<strong>de</strong>n waarvoor <strong>de</strong><br />
relatie K(x, y) geldt.<br />
En F2 wil zeggen dat er een x in <strong>het</strong> domein gekozen kan wor<strong>de</strong>n waarvoor <strong>de</strong> relatie<br />
K(x, y) geldt voor elke y in dat zelf<strong>de</strong> domein.<br />
Wat betekent dat nu in mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I1:<br />
D alle stu<strong>de</strong>nten in <strong>het</strong> lokaal<br />
K(x, y) x heeft een lager stu<strong>de</strong>ntnummer dan y<br />
Er wordt al verklapt dat F2 niet geldt in mo<strong>de</strong>l M1 on<strong>de</strong>r <strong>de</strong>ze interpretatie. Dus je<br />
moet laten zien dat F2 niet waar is. Omdat F2 er<strong>uit</strong> ziet als ∃x ∈ D[f] betekent dat dat<br />
je voor alle x ∈ D moet laten zien dat <strong>de</strong> bewering f niet waar is. En analoog omdat<br />
<strong>de</strong>ze f zelf er<strong>uit</strong> ziet als ∀y ∈ D[g] betekent dat dat je voor alle x ∈ D moet laten zien<br />
dat er een y ∈ D bestaat waarvoor g niet waar is.<br />
Omdat er maar eindig veel stu<strong>de</strong>nten (zeg n met n ≥ 1) in <strong>het</strong> lokaal zitten, kun je ze<br />
op hun nummers sorteren. En omdat <strong>de</strong> nummers ook uniek zijn kunnen we spreken<br />
over <strong>het</strong> laagste nummer en <strong>het</strong> hoogste nummer. Op grond <strong>van</strong> <strong>de</strong>ze or<strong>de</strong>ning geven<br />
we <strong>de</strong> stu<strong>de</strong>nten een naam: s1 is <strong>de</strong> stu<strong>de</strong>nt met <strong>het</strong> laagste nummer en sn <strong>de</strong> stu<strong>de</strong>nt<br />
met <strong>het</strong> hoogste nummer.<br />
Als F2 waar is, moet je dus een stu<strong>de</strong>nt x kunnen kiezen waarvoor geldt dat hij een lager<br />
nummer heeft dan <strong>de</strong> nummers <strong>van</strong> alle stu<strong>de</strong>nten in <strong>het</strong> lokaal. De enige kanshebber<br />
voor x is natuurlijk <strong>de</strong> stu<strong>de</strong>nt met <strong>het</strong> laagste nummer, dus s1. (Dui<strong>de</strong>lijk toch?) Dus<br />
kies je x = s1. Dat betekent dat je ver<strong>de</strong>r moet bepalen of <strong>de</strong> formule<br />
∀y ∈ D K(s1, y)<br />
geldt of niet. Omdat s1 <strong>het</strong> laagste stu<strong>de</strong>ntnummer heeft, geldt <strong>de</strong>ze formule voor <strong>de</strong><br />
meeste stu<strong>de</strong>nten y wel. Echter, voor alle stu<strong>de</strong>nten y in <strong>het</strong> lokaal geldt <strong>de</strong> bewering<br />
niet. Want s1 zit namelijk zelf ook in dat lokaal en dus zou <strong>de</strong> formule<br />
K(s1, s1)<br />
ook waar moeten zijn en dat is zeker niet waar: s1 heeft geen lager stu<strong>de</strong>ntnummer dan<br />
s1.<br />
Omdat s1 onze enige kanshebber was om met succes <strong>de</strong> rol <strong>van</strong> x te spelen, weten we<br />
nu dus dat <strong>de</strong> formule<br />
F2 := ∃x ∈ D∀y ∈ D K(x, y)<br />
niet geldt in mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I1.<br />
12
Grote vraag is: kan dit niet wat korter wor<strong>de</strong>n opgeschreven? Ja, dat kan wel. In <strong>het</strong><br />
bovenstaan<strong>de</strong> verhaal zijn heel veel <strong>van</strong>zelfspreken<strong>de</strong> <strong>de</strong>tails <strong>uit</strong>geschreven. Hieron<strong>de</strong>r<br />
een kortere variant:<br />
Sorteer <strong>de</strong> stu<strong>de</strong>nten oplopend op hun unieke stu<strong>de</strong>ntnummer. Geef ze in<br />
die volgor<strong>de</strong> een naam waarbij s1 <strong>de</strong> stu<strong>de</strong>nt is met <strong>het</strong> laagste nummer en<br />
sn die met <strong>het</strong> hoogste nummer. Stel dat F2 wel waar is. Dan zijn er twee<br />
mogelijkhe<strong>de</strong>n voor x.<br />
• x = si met i ∈ {2, . . . , n}. Dan geldt K(si, s1) niet, dus zeker niet<br />
∀y ∈ D K(x, y). Dus is dit geen goe<strong>de</strong> keuze voor x.<br />
• x = s1. Dan geldt K(s1, s1) niet en dus ook hier geldt ∀y ∈ D K(x, y))<br />
niet, want ook s1 ∈ D.<br />
Dus we kunnen geen x vin<strong>de</strong>n die F2 waarmaakt en dus geldt F2 niet in dit<br />
mo<strong>de</strong>l.<br />
Nu <strong>de</strong> vraag of F1 geldt in dit mo<strong>de</strong>l. Of met an<strong>de</strong>re woor<strong>de</strong>n: is <strong>het</strong> zo dat er voor<br />
elke stu<strong>de</strong>nt x er een stu<strong>de</strong>nt y gekozen kan wor<strong>de</strong>n die een hoger stu<strong>de</strong>ntnummer heeft<br />
dan x. Ook dit is niet mogelijk. Omdat F1 <strong>van</strong> <strong>de</strong> vorm ∀x ∈ D [∃y ∈ D K(x, y)] is,<br />
zijn we nu tevre<strong>de</strong>n zodra we één x kunnen aanwijzen waarvoor er geen y bestaat zodat<br />
K(x, y) waar is.<br />
Kies nu maar voor x <strong>de</strong> stu<strong>de</strong>nt sn die <strong>het</strong> hoogste stu<strong>de</strong>ntnummer <strong>uit</strong> <strong>het</strong> lokaal heeft.<br />
We hebben eer<strong>de</strong>r al laten zien dat dat kan. Bij <strong>de</strong>ze sn is er geen enkele y te vin<strong>de</strong>n<br />
waarvoor <strong>het</strong> stu<strong>de</strong>ntnummer hoger is; <strong>het</strong> is immers op z’n hoogst gelijk als we weer<br />
sn zelf kiezen. En dus hebben we met stu<strong>de</strong>nt sn een stu<strong>de</strong>nt gevon<strong>de</strong>n waarbij we geen<br />
stu<strong>de</strong>nt kunnen vin<strong>de</strong>n met een hoger stu<strong>de</strong>ntnummer. Dus F1 geldt niet in mo<strong>de</strong>l M1<br />
on<strong>de</strong>r interpretatie I1.<br />
(ii) Ga na dat F1 in mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I2 geldt. Geldt F2 ook?<br />
Oplossing: Dit is interpretatie I2:<br />
D alle stu<strong>de</strong>nten in <strong>het</strong> lokaal<br />
K(x, y) x is niet ou<strong>de</strong>r dan y<br />
We moeten laten zien dat F1 wel geldt on<strong>de</strong>r <strong>de</strong>ze interpretatie I2. Dat betekent dat<br />
we voor elke x moeten laten zien dat we een y kunnen kiezen waarvoor K(x, y) waar is.<br />
Of met an<strong>de</strong>re woor<strong>de</strong>n: je moet een soort algoritme hebben om bij gegeven x een y te<br />
kiezen zodanig dat K(x, y) waar is.<br />
Hier is dat algoritme eenvoudig: kies y namelijk maar gelijk aan die gegeven x. Dan<br />
geldt K(x, y) want <strong>de</strong> leeftijd <strong>van</strong> x is <strong>de</strong> leeftijd <strong>van</strong> y en dus is x niet ou<strong>de</strong>r dan y.<br />
Op een soortgelijke manier kunnen we ook laten zien dat F2 geldt in mo<strong>de</strong>l M1 on<strong>de</strong>r<br />
interpretatie I2. Hier is <strong>het</strong> voldoen<strong>de</strong> om een verstandige x te kiezen. Zostraks hebben<br />
we <strong>de</strong> stu<strong>de</strong>nten gesorteerd op stu<strong>de</strong>ntnummer, nu doen we dat op leeftijd. Het grote<br />
verschil is dat <strong>de</strong> leeftij<strong>de</strong>n niet uniek hoeven te zijn, zelfs niet als je leeftijd niet zoals<br />
gebruikelijk meet in jaren, maar in secon<strong>de</strong>n of nog kleinere eenhe<strong>de</strong>n. Dus we kunnen<br />
hier niet spreken over <strong>de</strong> jongste of <strong>de</strong> oudste stu<strong>de</strong>nt. Er kunnen namelijk meer<strong>de</strong>re<br />
stu<strong>de</strong>nten <strong>de</strong> laagste leeftijd hebben. Of met an<strong>de</strong>re woor<strong>de</strong>n <strong>de</strong> <strong>de</strong>elverzameling <strong>van</strong><br />
jongste stu<strong>de</strong>nten bevat minstens één element. Gelukkig is dat hier goed genoeg. Neem<br />
voor x maar één <strong>van</strong> <strong>de</strong> stu<strong>de</strong>nten <strong>uit</strong> die <strong>de</strong>elverzameling <strong>van</strong> jongste stu<strong>de</strong>nten. Voor<br />
alle stu<strong>de</strong>nten y geldt dan dat of x even oud is als y, of x is echt jonger dan y. In alle<br />
gevallen is x dus niet ou<strong>de</strong>r dan y en geldt F2 dus in mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I2.<br />
13
(iii) Kijk om je heen en ga na of F1 in <strong>het</strong> mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I3 geldt. Ga ook<br />
na of F2 geldt.<br />
Oplossing: Dit is interpretatie I3:<br />
D alle stu<strong>de</strong>nten in <strong>het</strong> lokaal<br />
K(x, y) x zit naast y<br />
In mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I3 is <strong>het</strong> niet dui<strong>de</strong>lijk of F1 waar is of niet. Dat hangt<br />
namelijk af <strong>van</strong> <strong>de</strong> concrete situatie in <strong>het</strong> lokaal. Als er ergens een stu<strong>de</strong>nt zit zon<strong>de</strong>r<br />
directe buren, kun je hem als tegenvoorbeeld gebruiken. Immers kies je hem als x, kun<br />
je geen stu<strong>de</strong>nt y vin<strong>de</strong>n die naast hem zit. Als er nergens stu<strong>de</strong>nten apart zitten, is<br />
F1 wel waar. Bij elke stu<strong>de</strong>nt x die je kiest heb je een algoritme om een stu<strong>de</strong>nt y te<br />
kiezen zodat K(x, y) waar is: neem namelijk één <strong>van</strong> zijn buren.<br />
F2 is altijd niet waar in mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I3. De formule zegt namelijk<br />
dat er één stu<strong>de</strong>nt moet zijn die naast alle stu<strong>de</strong>nten moet zitten. Nu kun je nog wel<br />
proberen om een klas met twee stu<strong>de</strong>nten te nemen of een klas waarin alle tafels in een<br />
soort ster staan waar één stu<strong>de</strong>nt in <strong>het</strong> mid<strong>de</strong>n naast alle an<strong>de</strong>re stu<strong>de</strong>nten kan zitten,<br />
maar je krijgt <strong>het</strong> nooit voor elkaar om een situatie te hebben waar je een stu<strong>de</strong>nt kunt<br />
kiezen die ook naast zichzelf zit. En dat is wel wat er volgens F2 zou moeten gel<strong>de</strong>n<br />
on<strong>de</strong>r interpretatie I3.<br />
Opgave 2.F Ga na dat G2 waar is in mo<strong>de</strong>l M4 on<strong>de</strong>r interpretatie I8, maar niet in mo<strong>de</strong>l<br />
M3 on<strong>de</strong>r interpretatie I7. Ofwel: ((Q,
(ii) On<strong>de</strong>r interpretatie I10 betekent G2 dat voor ie<strong>de</strong>re x ∈ Q er een y ∈ Q is zodat y = 2·x.<br />
Dit is waar: kies een x en kies daarna voor y maar <strong>het</strong> getal 2 · x.<br />
Opgave 2.I We bekijken als mo<strong>de</strong>l <strong>de</strong> lan<strong>de</strong>n <strong>van</strong> Europa met <strong>de</strong> volgen<strong>de</strong> interpretatie I11.<br />
L verzameling <strong>van</strong> lan<strong>de</strong>n <strong>van</strong> Europa<br />
n Ne<strong>de</strong>rland<br />
d D<strong>uit</strong>sland<br />
i Ierland<br />
G(x, y) x grenst aan y<br />
D(x, y, z) x, y en z hebben een drielan<strong>de</strong>npunt met elkaar<br />
(i) Formaliseer <strong>de</strong> zin “Ne<strong>de</strong>rland en D<strong>uit</strong>sland <strong>de</strong>len een drielan<strong>de</strong>npunt”<br />
Oplossing: De meest voor <strong>de</strong> hand liggen<strong>de</strong> formule is ∃x ∈ L [D(n, d, x)], maar er<br />
zijn genoeg alternatieven te be<strong>de</strong>nken: ∃x ∈ L [D(n, d, x)], ∃x ∈ L [D(x, d, n)], ∃y ∈<br />
L [D(y, n, d)], . . .<br />
(ii) Welke <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> formules is waar in dit mo<strong>de</strong>l on<strong>de</strong>r <strong>de</strong>ze interpretatie:<br />
(1) G3 := ∀x ∈ L∃y ∈ L[G(x, y)]<br />
Oplossing: G3 betekent dat voor elk land x er een land y is dat grenst aan x. Dit<br />
is niet waar, want <strong>het</strong> geldt bijvoorbeeld niet voor eilan<strong>de</strong>n als IJsland en Malta.<br />
(2) G4 := ∀x, y ∈ L[(∃z ∈ L D(x, y, z)) → G(x, y)]<br />
Oplossing: G4 betekent dat voor alle lan<strong>de</strong>n x en y geldt dat als er een land z is<br />
dat een drielan<strong>de</strong>npunt heeft met x en y, dan grenzen x en y aan elkaar. Dit is<br />
waar: als twee lan<strong>de</strong>n een drielan<strong>de</strong>npunt hebben, dan grenzen ze automatisch aan<br />
elkaar.<br />
(3) G5 := ∀x ∈ L[G(i, x) → ∃y ∈ L[D(i, x, y)]].<br />
Oplossing: G5 betekent dat als een land grenst aan Ierland dan heeft <strong>het</strong> daar<br />
ook een drielan<strong>de</strong>npunt mee. Dit is niet waar: neem <strong>het</strong> Verenigd Koninkrijk: dat<br />
grenst aan Ierland (via <strong>het</strong> gebied Noord-Ierland) maar heeft er geen drielan<strong>de</strong>npunt<br />
mee gemeen. (Als i als interpretatie IJsland zou hebben, zou G5 waar zijn,<br />
want G(i, x) is altijd onwaar (voor ie<strong>de</strong>re x), dus is <strong>de</strong> implicatie altijd waar.)<br />
Opgave 2.J Be<strong>de</strong>nk zelf een mo<strong>de</strong>l M5 en een interpretatie I12 zodat<br />
(M5, I12) |= ∀x ∈ D∃y ∈ E[R(x, y) ∧ ¬R(y, x) ∧ ¬R(y, y)]<br />
Oplossing: Neem bijvoorbeeld<br />
• als mo<strong>de</strong>l M5 <strong>de</strong> natuurlijke getallen en als interpretatie I12:<br />
D N<br />
E N<br />
R(x, y) x < y<br />
Check zelf dat <strong>de</strong> formule geldt als je bij x ∈ N voor y <strong>de</strong> waar<strong>de</strong> x + 1 kiest.<br />
• als mo<strong>de</strong>l M5 <strong>de</strong> verzameling alle mensen en <strong>de</strong> va<strong>de</strong>r <strong>van</strong> relatie en als interpretatie<br />
I12:<br />
D alle mensen<br />
E alle mensen<br />
R(x, y) y is <strong>de</strong> va<strong>de</strong>r <strong>van</strong> x<br />
Merk op dat R(x, y) met x is <strong>de</strong> va<strong>de</strong>r <strong>van</strong> y niet werkt.<br />
15
Bij <strong>de</strong>ze opgave dient eigenlijk nog gezegd te wor<strong>de</strong>n dat <strong>de</strong> domeinen D en E wel wat met<br />
elkaar te maken moeten hebben. Bij Formeel Denken gaan we hier niet echt ver<strong>de</strong>r op in,<br />
maar bij Beweren en Bewijzen zul je zien dat elke relatie R(x, y) een type heeft, bijvoorbeeld<br />
N → Q → {0, 1}. Dit betekent dat x ∈ N en y ∈ Q moet zitten en vervolgens levert R(x, y)<br />
dan een 1 of 0 als <strong>de</strong> relatie in <strong>de</strong> gegeven interpretatie al dan niet waar is. Bij <strong>de</strong>ze opgave<br />
schrijven we zowel R(x, y) als R(y, x). Omdat <strong>het</strong> type <strong>van</strong> R vastligt als D → E → {0, 1},<br />
moet dus x ∈ D, x ∈ E, y ∈ D en y ∈ E! Dus een mo<strong>de</strong>l <strong>de</strong>finiëren waarbij D <strong>de</strong> verzameling<br />
auto’s is en E <strong>de</strong> verzameling fietsen en dan R(x, y) interpreteren als ‘x is sneller dan y’ is<br />
een beetje gek omdat een auto namelijk nooit een fiets is of omgekeerd. In dit geval zou je<br />
dan ook een superdomein V , <strong>de</strong> verzameling <strong>van</strong> voertuigen, kunnen toevoegen en <strong>het</strong> type<br />
<strong>van</strong> R <strong>de</strong>finiëren als V → V → {0, 1}. In dat geval kun je zon<strong>de</strong>r problemen zowel R(x, y) als<br />
R(y, x) schrijven zon<strong>de</strong>r iets onzinnigs te beweren. Heb je niets begrepen <strong>van</strong> <strong>de</strong>ze opmerking,<br />
hoef je je voorlopig nog geen zorgen te maken. Het komt bij Beweren en Bewijzen aan bod.<br />
Opgave 2.K Beschouw <strong>de</strong> interpretatie I13:<br />
M domein <strong>van</strong> <strong>de</strong> mensen;<br />
V (x) x is vrouw;<br />
O(x, y) x is ou<strong>de</strong>r <strong>van</strong> y;<br />
G(x, y) x is getrouwd met y.<br />
Formaliseer <strong>de</strong> volgen<strong>de</strong> zinnen in <strong>de</strong> predikaatlogica met gelijkheid.<br />
(i) Ie<strong>de</strong>reen heeft precies één moe<strong>de</strong>r.<br />
Oplossing:<br />
∀x ∈ M [ ∃y ∈ M [ V (y) ∧ O(y, x)<br />
]<br />
∧<br />
∀y, z ∈ M [ (V (y) ∧ O(y, x) ∧ V (z) ∧ O(z, x)) → y = z<br />
]<br />
]<br />
In <strong>de</strong>ze formule speelt x <strong>de</strong> rol <strong>van</strong> iemand, <strong>de</strong> y en z spelen <strong>de</strong> rol <strong>van</strong> moe<strong>de</strong>rs. De<br />
eerste y wordt gebruikt om aan te tonen dat er een moe<strong>de</strong>r is, <strong>de</strong> twee<strong>de</strong> wordt samen<br />
met <strong>de</strong> z gebruikt om te laten zien dat er maximaal één moe<strong>de</strong>r is. Strikt genomen<br />
hebben die twee y’s dus niets met elkaar te maken. Als <strong>de</strong> twee<strong>de</strong> y op elke plaats<br />
ver<strong>van</strong>gen was door een w was <strong>de</strong> formule ook goed geweest. Let ook op <strong>de</strong> scope <strong>van</strong><br />
die x: ook in <strong>het</strong> twee<strong>de</strong> stuk (≤ 1 moe<strong>de</strong>rs), moet je wel terug kunnen verwijzen naar<br />
je oorspronkelijke persoon x.<br />
Een alternatieve oplossing die net zo goed is:<br />
∀x ∈ M [ ∃y ∈ M [ V (y) ∧ O(y, x)<br />
∧<br />
∀z ∈ M[(V (z) ∧ O(z, x)) → y = z]<br />
]<br />
]<br />
Het grote verschil is dat <strong>de</strong> y nu maar één keer gebon<strong>de</strong>n wordt en zowel gebruikt wordt<br />
om aan te tonen dat er minimaal één moe<strong>de</strong>r is als om aan te tonen dat elke ‘an<strong>de</strong>re’<br />
moe<strong>de</strong>r <strong>de</strong>zelf<strong>de</strong> blijkt te zijn.<br />
16
(ii) Ie<strong>de</strong>reen heeft precies twee oma’s.<br />
Oplossing:<br />
∀x ∈ M [ ∃y, z ∈ M [ y = z ∧<br />
∃u ∈ M[V (y) ∧ O(y, u) ∧ O(u, x)]∧<br />
∃u ∈ M[V (z) ∧ O(z, u) ∧ O(u, x)]<br />
]<br />
∧<br />
∀y, z, v ∈ M [ (y = z ∧<br />
∃u ∈ M[V (y) ∧ O(y, u) ∧ O(u, x)]∧<br />
∃u ∈ M[V (z) ∧ O(z, u) ∧ O(u, x)]∧<br />
∃u ∈ M[V (v) ∧ O(v, u) ∧ O(u, x)]) → (v = y ∨ v = z)<br />
]<br />
]<br />
De x speelt weer <strong>de</strong> rol <strong>van</strong> iemand, <strong>de</strong> y en z spelen <strong>de</strong> rol <strong>van</strong> <strong>de</strong> twee verschillen<strong>de</strong><br />
oma’s en <strong>de</strong> u speelt <strong>de</strong> rol <strong>van</strong> <strong>de</strong> va<strong>de</strong>r of moe<strong>de</strong>r <strong>van</strong> x en tegelijkertijd <strong>het</strong> kind <strong>van</strong><br />
<strong>de</strong> oma’s.<br />
(iii) Ie<strong>de</strong>re getrouw<strong>de</strong> man heeft precies één echtgenote.<br />
Oplossing: Een eerste poging is:<br />
∀x ∈ M [∃y ∈ M [G(x, y)] → (∀z1, z2 ∈ M[G(x, z1) ∧ G(x, z2) → z1 = z2])]<br />
Deze zin zegt dat voor ie<strong>de</strong>re persoon x <strong>het</strong> volgen<strong>de</strong> geldt: Als x getrouwd is, dan is<br />
er maar één persoon met wie x getrouwd is (want als x met z1 en met z2 getrouwd is,<br />
dan z1 = z2).<br />
Het zegt echter niets over <strong>het</strong> man zijn en <strong>het</strong> vrouw zijn <strong>van</strong> <strong>de</strong> echtgenote. We moeten<br />
<strong>de</strong> formule dus iets aanpassen:<br />
∀x ∈ M [ ¬V (x) ∧ ∃y ∈ M[G(x, y)]<br />
→<br />
(∀z1, z2 ∈ M[G(x, z1) ∧ G(x, z2) → z1 = z2 ∧ V (z1)])<br />
]<br />
Merk op dat we na <strong>de</strong> → niets meer over y kunnen zeggen. Echter, omdat die ∀z1 in<br />
<strong>het</strong> bijzon<strong>de</strong>r ook die eer<strong>de</strong>rgenoem<strong>de</strong> y moet bevatten, volgt <strong>uit</strong> <strong>de</strong> V (z1) toch dat die<br />
ene persoon waarmee <strong>de</strong> man x getrouwd is een vrouw meot zijn.<br />
Opgave 2.L Gebruik interpretatie I13 <strong>van</strong> opgave 2.K. Formaliseer <strong>de</strong> volgen<strong>de</strong> eigenschappen.<br />
(i) S(x, y): x en y hebben samen een kind gemaakt.<br />
Oplossing: Definieer<br />
S(x, y) := x = y ∧ ∃z ∈ M[O(x, z) ∧ O(y, z)]<br />
Dan zijn x en y twee verschillen<strong>de</strong> personen en er is een persoon z waar zowel x als y<br />
ou<strong>de</strong>r <strong>van</strong> is. (Als we x = y weglaten zou S(x, x) ook waar zijn, maar <strong>de</strong> zin bedoelt<br />
niet te zeggen dat iemand met zichzelf een kind heeft gemaakt. . . )<br />
17
(ii) B(x, y): x is broer <strong>van</strong> y (pas op: zie ook volgen<strong>de</strong> item).<br />
Oplossing: Definieer<br />
B(x, y) := ¬V (x) ∧ x = y ∧ ∃q, r ∈ M[q = r ∧ O(q, x) ∧ O(q, y) ∧ O(r, x) ∧ O(r, y)]<br />
Dan is x een broer <strong>van</strong> y als x man is (en niet <strong>de</strong>zelf<strong>de</strong> is als y), en er twee verschillen<strong>de</strong><br />
ou<strong>de</strong>rs q en r zijn, die ou<strong>de</strong>r zijn <strong>van</strong> ie<strong>de</strong>r <strong>van</strong> <strong>de</strong>ze twee kin<strong>de</strong>ren.<br />
(iii) H(x, y): x is halfzus <strong>van</strong> y.<br />
Oplossing: Definieer<br />
H(x, y) := V (x) ∧ x = y∧<br />
∃o1, o2, o3 ∈ M[o1 = o2 ∧ o2 = o3 ∧ o3 = o1 ∧<br />
O(o1, x) ∧ O(o2, x) ∧ O(o2, y) ∧ O(o3, y)]<br />
Dan is x een halfzus <strong>van</strong> y als x vrouw is, en er drie ou<strong>de</strong>rs o1, o2, o3 zijn waarbij x kind<br />
is <strong>van</strong> o1 en o2 en y kind is <strong>van</strong> o2 en o3. Bovendien moeten <strong>de</strong>ze drie ou<strong>de</strong>rs verschillend<br />
zijn.<br />
Vertaal terug naar <strong>de</strong> omgangstaal.<br />
(iv) ∃x∈M∀y∈M O(x, y). Geldt dit?<br />
Oplossing: “Er is een persoon x die ou<strong>de</strong>r is <strong>van</strong> alle mensen.” Dit geldt niet.<br />
(v) ∀z1∈M∀z2∈M[(∃x∈M∃y1∈M∃y2∈M O(x, y1) ∧ O(y1, z1) ∧ O(x, y2) ∧ O(y2, z2)) →<br />
¬(∃w∈M(O(z1, w) ∧ O(z2, w)))]. Geldt dit?<br />
Oplossing: “Ie<strong>de</strong>r tweetal mensen dat een gemeenschappelijke grootou<strong>de</strong>r heeft, heeft<br />
geen gemeenschappelijk kind”. Dit geldt niet. (Realiseer je dat <strong>het</strong> “tweetal mensen”<br />
waar <strong>het</strong> over gaat ook één en <strong>de</strong>zelf<strong>de</strong> persoon kan zijn! Dan zie je meteen dat <strong>het</strong> niet<br />
geldt.)<br />
Opgave 2.M Gegeven <strong>de</strong> interpretatie I14<br />
D N;<br />
P (x, y, z) x + y = z;<br />
M(x, y, z) x · y = z.<br />
Formaliseer<br />
Oplossing: Bij <strong>de</strong>ze opgave hebben we straks <strong>de</strong> formalisatie <strong>van</strong> x = 0 en x = 1 nodig.<br />
Daar beginnen we mee.<br />
• x = 0 als a · x = x voor alle a. Dus <strong>de</strong>finieer<br />
x = 0 := ∀a ∈ D[M(a, x, x)]<br />
• x = 1 als x · a = a voor alle a. Dus <strong>de</strong>finieer<br />
x = 1 := ∀a ∈ D[M(x, a, a)]<br />
(i) x < y.<br />
Oplossing: x < y: dit is waar wanneer x + r = y en r = 0.<br />
Definieer:<br />
x < y := ∃r ∈ D[P (x, r, y) ∧ r = 0]<br />
18
(ii) x | y (x is <strong>de</strong>ler <strong>van</strong> y).<br />
Oplossing: x|y (x is <strong>de</strong>ler <strong>van</strong> y): er is een getal z zodat x · z = y. Definieer<br />
x|y := ∃z ∈ D[M(x, z, y)]<br />
(iii) x is priemgetal.<br />
Oplossing: x is priem: x is niet 1 en <strong>het</strong> heeft geen factoren an<strong>de</strong>rs dan 1 en zichzelf.<br />
Definieer<br />
x is priem := x = 1 ∧ ¬∃y, z ∈ D[M(y, z, x) ∧ y = x ∧ z = x ∧ y = 1 ∧ z = 1]<br />
Een an<strong>de</strong>re formalisatie gebruikt <strong>de</strong> zojuist ge<strong>de</strong>finieer<strong>de</strong> x|y.<br />
x is priem := x = 1 ∧ ∀y ∈ D[(y|x) → (y = 1 ∨ y = x)]<br />
19
3 Talen en automaten<br />
Opgave 3.A In voorbeeld 3.5 heb je voorbeel<strong>de</strong>n gezien <strong>van</strong> beschrijvingen <strong>van</strong> talen. Probeer<br />
<strong>het</strong> nu zelf.<br />
(i) Beschrijf L1 ∩ L2.<br />
Oplossing: L1 ∩ L2 bestaat <strong>uit</strong> <strong>de</strong> woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm a n b n die een even aantal a’s<br />
bevatten, dus L1 ∩ L2 = {a n b n | n ∈ N, n is even}. Een an<strong>de</strong>re manier om dit te<br />
beschrijven is L1 ∩ L2 = {a 2n b 2n | n ∈ N}<br />
(ii) Beschrijf L2 ∩ L4.<br />
Oplossing: L2 ∩L4 bestaat <strong>uit</strong> <strong>de</strong> woor<strong>de</strong>n w <strong>van</strong> <strong>de</strong> vorm a n b n waarvoor geldt w = w R .<br />
Dat geldt alleen als n = 0, dus als w = λ, dus L2 ∩ L4 = {λ}.<br />
(iii) Beschrijf L3 ∩ L4.<br />
Oplossing: L3 ∩ L4 bestaat dan <strong>uit</strong> <strong>de</strong> woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm wcv waarvoor geldt:<br />
|w| = |v|, w bevat geen b en v bevat geen a en wcv = v R cw R . Dat kan alleen als w en v<br />
allebei <strong>uit</strong> alleen c’s bestaan, dus L3 ∩L4 = {c n | n ∈ N, n is oneven} = {c 2n+1 | n ∈ N}.<br />
Opgave 3.B Gebruik <strong>de</strong> <strong>de</strong>finities <strong>uit</strong> voorbeeld 3.5.<br />
(i) Bewijs dat L1 = L1 ∗<br />
Oplossing: Om L1 = L1 ∗ te bewijzen laten we zien dat L1 ⊆ L1 ∗ en L1 ∗ ⊆ L1. Het<br />
eerste is bekend: voor elk woord w in L1 kun je in <strong>de</strong> <strong>de</strong>finitie <strong>van</strong> L1 ∗ k = 1 nemen en<br />
w1 = w en dan heb je bewezen dat w ∈ L1 ∗ . Voor <strong>het</strong> twee<strong>de</strong> <strong>de</strong>el: als w ∈ L1 ∗ dan<br />
is w <strong>van</strong> <strong>de</strong> vorm w1 · · · wk met k ≥ 0 en alle wi hebben een even aantal a’s (want elke<br />
wi ∈ L1). Maar dan heeft w zelf ook een even aantal a’s, en dus w ∈ L1.<br />
(ii) Geldt L2L2 = L2? Geef een bewijs of een tegenvoorbeeld.<br />
Oplossing: Nee. abab ∈ L2L2 en abab ∈ L2.<br />
∗<br />
? Geef een bewijs of een tegenvoorbeeld.<br />
Oplossing: L1 = {w | w bevat een oneven aantal a’s}. Het antwoord is ‘nee’, want<br />
∗<br />
aa ∈ L1 en aa ∈ L1. (Be<strong>de</strong>nk dat L1<br />
(iii) Geldt L1 = L1<br />
∗<br />
betekent dat je eerst <strong>het</strong> complement <strong>van</strong> L1<br />
neemt en daarna pas <strong>de</strong> Kleene afsl<strong>uit</strong>ing.)<br />
(iv) Voor welke talen <strong>uit</strong> voorbeeld 3.5 geldt L = LR ? (Alleen antwoord, geen bewijs.)<br />
Oplossing: Alleen voor L1 en L4.<br />
Bij L1 draai je woor<strong>de</strong>n om die een even aantal a’s hebben en dat veran<strong>de</strong>rt <strong>het</strong> aantal<br />
a’s natuurlijk niet. Bij L2 gaat <strong>het</strong> mis: bbaa ∈ L2 R maar bbaa ∈ L2. Bij L3 gaat <strong>het</strong><br />
ook mis: bca ∈ L3 R maar bca ∈ L3. Bij L4 gaat <strong>het</strong> om omgedraai<strong>de</strong> palindromen en<br />
per <strong>de</strong>finitie is een omgedraai<strong>de</strong> palindroom weer een palindroom.<br />
Opgave 3.C (i) Laat zien dat we <strong>de</strong> operator ?, waarbij a ? staat voor 0 of 1 keer a niet<br />
hoeven toe te voegen aan <strong>de</strong> reguliere expressies, omdat we hem al kunnen maken.<br />
Oplossing: We kunnen a ? <strong>de</strong>finiëren als a ∪ λ.<br />
(ii) Wat is L(∅ab ∗ )?<br />
Oplossing: L(∅ab ∗ ) = L(∅)L(a)L(b ∗ ) = ∅{a}{b} ∗ en dat zijn <strong>de</strong> woor<strong>de</strong>n w1w2w3 zodat<br />
w1 ∈ ∅, w2 ∈ {a} en w3 ∈ {b} ∗ . Maar er is geen w1 ∈ ∅, dus L(∅ab ∗ ) = ∅.<br />
(iii) Geef een reguliere expressie die <strong>de</strong> taal L5 := {w ∈ {a, b} ∗ | w bevat minstens één a}<br />
beschrijft.<br />
Oplossing: (a∪b) ∗ a(a∪b) ∗ . De minimale a staat in <strong>het</strong> mid<strong>de</strong>n <strong>van</strong> <strong>de</strong> expressie; zowel<br />
daarvoor als daarna kan er een willekeurig rijtje <strong>van</strong> a’s en b’s komen en zo’n willekeurig<br />
rijtje (eventueel <strong>van</strong> lengte 0) wordt met (a ∪ b) ∗ weergegeven. Een an<strong>de</strong>re expressie die<br />
<strong>de</strong>zelf<strong>de</strong> taal genereert is b ∗ a(a ∪ b) ∗ .<br />
20
(iv) Geef een reguliere expressie die <strong>de</strong> taal L1 <strong>uit</strong> voorbeeld 3.5 beschrijft.<br />
Oplossing: (b ∗ ab ∗ ab ∗ ) ∗ b ∗ . Het i<strong>de</strong>e is dat <strong>de</strong> ingewikkel<strong>de</strong> expressie b ∗ ab ∗ ab ∗ een reguliere<br />
expressie is die elk woord met precies twee a’s erin beschrijft. Door nu (b ∗ ab ∗ ab ∗ ) ∗<br />
te nemen krijg je dus 0 of meer rijtjes met precies twee a’s en daarmee kun je bijna alle<br />
rijtjes met een even aantal a’s maken. De enige die je dan nog mist is als je 0 a’s hebt:<br />
in dat geval moet je nog een b ∗ toevoegen om woor<strong>de</strong>n als bbb te kunnen maken. Die<br />
b ∗ mag overigens ook vooraan wor<strong>de</strong>n geschreven, dus b ∗ (b ∗ ab ∗ ab ∗ ) ∗ is ook een goe<strong>de</strong><br />
oplossing. Ver<strong>de</strong>r is (b ∪ ab ∗ a) ∗ ook correct.<br />
(v) Laat zien dat L(ab(ab) ∗ ) = L(a(ba) ∗ b).<br />
Oplossing: L(ab(ab) ∗ ) bestaat <strong>uit</strong> woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm ab gevolgd door n keer ab (met<br />
n ≥ 0). Maar ab gevolgd door n keer ab is <strong>de</strong>zelf<strong>de</strong> string als a gevolgd door n keer ba,<br />
gevolgd door b. En <strong>de</strong> woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> laatste vorm zijn precies <strong>de</strong> taal L(a(ba) ∗ b).<br />
Je kunt <strong>het</strong> ook op <strong>de</strong> volgen<strong>de</strong> manier bewijzen. Een willekeurig woord <strong>uit</strong> L(ab(ab) ∗ )<br />
ziet er<strong>uit</strong> als ab(ab) n met n ∈ N. Maar zo’n willekeurig woord kunnen we herschrijven:<br />
ab(ab) n = ab(ab) · · · (ab)<br />
= abab · · · ab<br />
= ababa · · · bab<br />
= a(ba)(ba) · · · (ba)b<br />
= a(ba) n b<br />
en dat is een woord <strong>uit</strong> L(a(ba) ∗ b). Dus L(ab(ab) ∗ ) ⊆ L(a(ba) ∗ b). Het bewijs dat ook<br />
L(a(ba) ∗ b) ⊆ L(ab(ab) ∗ ) gaat analoog.<br />
Merk op dat <strong>het</strong> algemene bewijs dat hier gegeven is (met · · · ) alleen maar klopt voor<br />
n ≥ 3; ga zelf na dat je voor n = 0, 1, 2 een soortgelijk herschrijfbewijs kunt opschrijven<br />
(maar dan zon<strong>de</strong>r · · · ).<br />
Wie niet houdt <strong>van</strong> bewijzen met · · · erin, moet even wachten op <strong>het</strong> volgen<strong>de</strong> hoofdstuk<br />
waarin bewijzen met inductie wor<strong>de</strong>n <strong>uit</strong>gelegd. Heel in <strong>het</strong> kort is dat een manier om<br />
aan <strong>de</strong> hand <strong>van</strong> een bewijs voor een specifiek simpel geval (basisstap) en een bewijs <strong>van</strong><br />
een metho<strong>de</strong> om <strong>uit</strong> een simpel geval een iets moeilijker geval af te lei<strong>de</strong>n (inductiestap),<br />
een bewijs voor alle gevallen te maken. Hier ziet dat er zo <strong>uit</strong> (maar dit hoef je nu<br />
natuurlijk nog niet te begrijpen).<br />
Basisstap. Elk woord in L(ab(ab) ∗ ) ziet er<strong>uit</strong> als ab(ab) n met n ∈ N. Het kleinste<br />
woord krijgen we dus als n = 0 en dat is dus ab. Het is meteen dui<strong>de</strong>lijk dat ab ook in<br />
L(a(ba) ∗ b) zit. Dus voor n = 0 geldt <strong>het</strong> dat ab(ab) n = a(ba) n b.<br />
Inductiestap. We nemen nu aan dat we al weten dat <strong>de</strong> gewenste eigenschap geldt voor<br />
een of an<strong>de</strong>re n ∈ N. In dit geval betekent dat dus dat we weten dat voor zekere n<br />
geldt dat ab(ab) n = a(ba) n b. Dit noemen we <strong>de</strong> inductiehypothese (IH). Nu moeten we<br />
bewijzen dat dan ook geldt ab(ab) n+1 = a(ba) n+1 b. Dat gaan we nu laten zien:<br />
ab(ab) n+1 = ab(ab) n (ab)<br />
21<br />
= ab(ab) n ab<br />
IH = a(ba) n bab<br />
= a(ba) n (ba)b<br />
= a(ba) n+1 b
Op <strong>de</strong> plaats waar IH staat, passen we <strong>de</strong> inductiehypothese toe op <strong>het</strong> eerste <strong>de</strong>el <strong>van</strong><br />
<strong>de</strong> string.<br />
Doordat we nu weten dat <strong>de</strong> eigenschap voor n = 0 geldt, weten we met <strong>de</strong> inductiestap<br />
dat hij ook voor n = 1 geldt. Maar dan weten we door nogmaals <strong>de</strong> inductiestap toe<br />
te passen dat hij ook voor n = 2 geldt. En zo ver<strong>de</strong>r gaand, kun je aantonen dat<br />
voor elke n ∈ N geldt dat ab(ab) n = a(ba) n b. Maar dat betekent dat elk woord in<br />
L(ab(ab) ∗ ) ook in L(a(ba) ∗ b) zit. Dus L(ab(ab) ∗ ) ⊆ L(a(ba) ∗ b). Het bewijs dat ook<br />
L(a(ba) ∗ b) ⊆ L(ab(ab) ∗ ) waar is, gaat analoog natuurlijk.<br />
Opgave 3.D Laat zien dat <strong>de</strong> volgen<strong>de</strong> talen regulier zijn.<br />
(i) L6 := {w ∈ {a, b} ∗ | ie<strong>de</strong>re a in w wordt direct gevolgd door een b},<br />
Oplossing: Een reguliere expressie voor L6 is (b ∪ ab) ∗ . (NB: een woord <strong>uit</strong> L6 hoeft<br />
niet noodzakelijk een a te bevatten.) Een an<strong>de</strong>re oplossing is (b ∗ (ab) ∗ ) ∗ .<br />
(ii) L7 := <strong>de</strong> taal <strong>van</strong> alle goedgevorm<strong>de</strong> integer-expressies. Deze bestaan <strong>uit</strong> <strong>de</strong> symbolen<br />
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, maar ze beginnen nooit met een 0 (behalve <strong>het</strong> getal 0 zelf<br />
natuurlijk) en mogen eventueel wor<strong>de</strong>n voorafgegaan door een + of een −.<br />
Oplossing: Een reguliere expressie voor L7 is<br />
((+ ∪ − ∪ λ)(1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9)(0 ∪ 1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9) ∗ ) ∪ 0<br />
Bij <strong>de</strong>ze oplossing is er voor gekozen dat je wel 0 zelf kunt maken, maar niet +0 of<br />
−0. Hoe kun je <strong>de</strong>ze oplossing aanpassen om toch ook −0 toe te staan? Let wel: met<br />
integer-expressies wor<strong>de</strong>n dus eigenlijk alleen getallen bedoeld, al dan niet voorzien <strong>van</strong><br />
een teken en geen rekenkundige operaties zoals hierna.<br />
(iii) L8 := <strong>de</strong> taal <strong>van</strong> alle goedgevorm<strong>de</strong> rekenkundige expressies zon<strong>de</strong>r haakjes. Deze<br />
bestaan <strong>uit</strong> natuurlijke getallen met daartussen <strong>de</strong> operatoren +, − of ×, bijvoorbeeld<br />
7 + 3 × 29 − 78. (Hint: maak eerst een reguliere expressie voor <strong>de</strong> natuurlijke getallen;<br />
zo’n getal begint (bijna) nooit met een 0.)<br />
Oplossing: Het bijna nooit beginnen met een 0 levert <strong>de</strong> volgen<strong>de</strong> gevalson<strong>de</strong>rscheiding<br />
op: ofwel we hebben <strong>het</strong> getal 0, ofwel we hebben een getal dat nooit met een 0 begint:<br />
r := (0 ∪ (1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9)(0 ∪ 1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9) ∗ )<br />
Een reguliere expressie voor L8 is dan (r(+∪−∪×)) ∗ r. Merk op dat <strong>de</strong>ze expressie ook<br />
expressies zon<strong>de</strong>r operator genereert als bijvoorbeeld 37. Dat kun je voorkomen door<br />
<strong>de</strong> ∗ één keer <strong>uit</strong> te pakken: (r(+ ∪ − ∪ ×)) ∗ r(+ ∪ − ∪ ×)r.<br />
Opgave 3.E Welke <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> reguliere expressies beschrijven <strong>de</strong>zelf<strong>de</strong> taal? Toon <strong>het</strong><br />
aan of geef een string die wel in <strong>de</strong> ene en niet in <strong>de</strong> an<strong>de</strong>re taal zit.<br />
(i) b ∗ (aab) ∗ .<br />
(ii) b ∗ (baa) ∗ b.<br />
(iii) bb ∗ (aab) ∗ .<br />
Oplossing: We geven <strong>de</strong> talen even een naam: L := L(b ∗ (aab) ∗ ), L ′ := L(b ∗ (baa) ∗ b) en<br />
L ′′ := L(bb ∗ (aab) ∗ ).<br />
(i) L = L ′ , want λ zit in L maar niet in L ′ .<br />
(ii) L = L ′′ , want λ zit in L maar niet in L ′′ .<br />
(iii) L ′ = L ′′ , want<br />
22
• Als w ∈ L ′ , dan is w <strong>van</strong> <strong>de</strong> vorm b . . . b baa . . . baa b met n keer b en m keer baa<br />
(n, m ≥ 0). Als m = 0 zit dit woord zeker in L ′′ . ALs m > 0, dan kunnen we dit<br />
woord ook lezen als b . . . b b aab . . . aab met n+1 keer b en m keer aab, dus w ∈ L ′′ .<br />
In herschrijfregels ziet dit er zo <strong>uit</strong>:<br />
w = b n (baa) m b<br />
= b n (baa) · · · (baa)b<br />
= b n baa · · · baab<br />
= b n baab · · · aabaab<br />
= bb n aab · · · aabaab<br />
= bb n (aab) · · · (aab)(aab)<br />
= bb n (aab) m ∈ L ′′<br />
Ook hier geldt <strong>het</strong> algemene bewijs alleen als m ≥ 3 is; toon zelf aan dat <strong>de</strong> stelling<br />
ook klopt als m = 0, 1, 2.<br />
• Als w ∈ L ′′ , dan is w <strong>van</strong> <strong>de</strong> vorm b b . . . b aab . . . aab met n + 1 keer b en m keer<br />
aab (n, m ≥ 0). Als m = 0 zit dit woord zeker in L ′ . Als m > 0, dan kunnen we<br />
dit woord ook lezen als b . . . b baa . . . baa b met n keer b en m keer baa, dus w ∈ L ′ .<br />
Analoog als hierboven kan er ook een bewijs met herschrijfregels wor<strong>de</strong>n gegeven.<br />
Opgave 3.F (i) Laat zien dat <strong>de</strong> taal <strong>van</strong> gebalanceer<strong>de</strong> haakjesexpressies contextvrij is.<br />
Dat zijn expressies over {(, )} waarbij ie<strong>de</strong>r openingshaakje altijd precies één sl<strong>uit</strong>haakje<br />
heeft, dus bijvoorbeeld (( )(( ))) en (( ))( ) zijn gebalanceerd, maar (( )( ))) niet.<br />
Oplossing: Gebalanceer<strong>de</strong> haakjesexpressies, zoals (()(())) en (())(), maak je met <strong>de</strong><br />
volgen<strong>de</strong> grammatica:<br />
of met<br />
S → SS | (S) | λ<br />
S → (S)S | λ<br />
(ii) Laat zien dat L1 <strong>uit</strong> voorbeeld 3.5 contextvrij is.<br />
Oplossing: L1:<br />
S → bS | aT | λ<br />
T → bT | aS<br />
(iii) Laat zien dat L2 <strong>uit</strong> voorbeeld 3.5 contextvrij is. (Kijk naar voorbeeld 3.13.)<br />
Oplossing: L2:<br />
S → aSb | λ<br />
(iv) Laat zien dat L3 <strong>uit</strong> voorbeeld 3.5 contextvrij is.<br />
Oplossing: L3:<br />
S → ASB | c<br />
A → a | c<br />
B → b | c<br />
23
Bouw <strong>de</strong> strings op <strong>van</strong><strong>uit</strong> <strong>het</strong> mid<strong>de</strong>n en plaats <strong>de</strong> mid<strong>de</strong>lste c pas in <strong>de</strong> laatste stap.<br />
Als je die c eer<strong>de</strong>r plaatst verlies je <strong>de</strong> controle om <strong>de</strong> lengte <strong>van</strong> w en v gelijk te hou<strong>de</strong>n.<br />
(v) Laat zien dat L4 <strong>uit</strong> voorbeeld 3.5 contextvrij is.<br />
Oplossing: L4:<br />
S → aSa | bSb | cSc | a | b | c | λ<br />
Bouw we<strong>de</strong>rom <strong>de</strong> woor<strong>de</strong>n op <strong>van</strong><strong>uit</strong> <strong>het</strong> mid<strong>de</strong>n.<br />
Opgave 3.G Bekijk <strong>de</strong> grammatica G1:<br />
(i) Schrijf G1 als een tripel 〈Σ, V, R〉.<br />
Oplossing:<br />
S → AS | Sb | λ<br />
A → aA | λ<br />
G1 = 〈{a, b}, {S, A}, {S → AS, S → Sb, S → λ, A → aA, A → λ}〉<br />
(ii) Geef een productie die laat zien dat aabb ∈ L(G1).<br />
Oplossing: Er zijn verschillen<strong>de</strong> producties mogelijk. Hier twee voorbeel<strong>de</strong>n:<br />
S → AS → aAS → aaAS → aaS → aaSb → aaSbb → aabb<br />
S → AS → ASb → ASbb → Abb → aAbb → aaAbb → aabb<br />
(iii) Kun je binnen drie minuten een productie geven die laat zien dat bbaa ∈ L(G1)?<br />
Oplossing: Nee, dat zal niet lukken want bbaa ∈ L(G1). Het bewijs daar<strong>van</strong> kunnen<br />
we nu nog niet geven, maar we komen er op terug in een latere opgave.<br />
Opgave 3.H Gegeven is <strong>de</strong> volgen<strong>de</strong> grammatica voor <strong>de</strong> taal L12.<br />
S → aSb | A | λ<br />
A → aAbb | abb<br />
De hulpsymbolen zijn dit keer S en A en Σ = {a, b}.<br />
(i) Geef <strong>de</strong> productie <strong>van</strong> abb en <strong>van</strong> aabb.<br />
Oplossing: Produceer abb via S → A → abb. Produceer aabb via S → aSb → aaSbb →<br />
aabb.<br />
(ii) Welke woor<strong>de</strong>n zitten in L12?<br />
Oplossing:<br />
• λ, door <strong>de</strong> regel S → λ<br />
• woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm a n Sb n met n ∈ N, geproduceerd door regel S → aSb<br />
• <strong>het</strong> hulpsymbool A produceert woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm a m b 2m met m ∈ N en m ≥ 1:<br />
abb,aabbbb,aaabbbbbb,... Dit is eenvoudig in te zien, omdat <strong>de</strong> productieregels voor<br />
A alleen gebruik maken <strong>van</strong> A zelf (geen S).<br />
• <strong>de</strong> regel S → A zorgt ervoor dat een S ver<strong>van</strong>gen kan wor<strong>de</strong>n door dat wat A<br />
produceert: a m b 2m dus. En a n Sb n levert dus a n a m b 2m b n met n, m ∈ N en m ≥ 1.<br />
Dit kan vereenvoudigd wor<strong>de</strong>n tot a n+m b n+2m met n, m ∈ N en m ≥ 1.<br />
24
Dit bij elkaar genomen levert <strong>de</strong> algemene vorm:<br />
L12 = {a n+m b n+2m | n, m ∈ N}<br />
De m ≥ 1 wordt opgeheven doordat je ook 0 keer <strong>de</strong> regel S → A kunt toepassen.<br />
We kunnen dit ook an<strong>de</strong>rs schrijven, namelijk als<br />
L12 := {a k b k+l | k ≥ 0, k ≥ l ≥ 0}.<br />
Opgave 3.I We bekijken nogmaals <strong>de</strong> taal behoren<strong>de</strong> bij G1 <strong>uit</strong> opgave 3.G. Er is daar al<br />
opgemerkt dat bbaa ∈ L(G1).<br />
(i) Is<br />
P (w) := w bevat geen ba als <strong>de</strong>elwoord<br />
een invariant voor G1 die bewijst dat bbaa ∈ L(G1)?<br />
Oplossing: Nee, want P (bA) geldt (want bA bevat niet <strong>het</strong> <strong>de</strong>elwoord ba) en A → aA<br />
is een productieregel <strong>van</strong> <strong>de</strong> grammatica, maar er geldt dui<strong>de</strong>lijk niet P (baA). Dus is<br />
P helemaal geen invariant.<br />
(ii) Is<br />
P (w) := w bevat geen ba en geen bA als <strong>de</strong>elwoord<br />
een invariant voor G1 die bewijst dat bbaa ∈ L(G1)?<br />
Oplossing: Nee, ook niet. Het tegenvoorbeeld <strong>uit</strong> <strong>het</strong> vorige on<strong>de</strong>r<strong>de</strong>el werkt nu niet<br />
meer omdat P (bA) niet geldt, maar er is wel een an<strong>de</strong>r tegenvoorbeeld. Nu geldt<br />
namelijk wel P (bS), maar P (bAS) niet terwijl S → AS wel een productieregel is.<br />
(iii) Is<br />
P (w) := w bevat geen ba en geen bA en geen bS als <strong>de</strong>elwoord<br />
een invariant voor G1 die bewijst dat bbaa ∈ L(G1)?<br />
Oplossing: Nee, nog steeds niet. Nu geldt wel P (SaA), maar via <strong>de</strong> regel S → Sb geldt<br />
SaA → SbaA en P (SbaA) geldt niet.<br />
Opgave 3.J Gebruik invarianten om te bewijzen dat:<br />
(i) bba ∈ L12.<br />
Oplossing: Een invariant is nu<br />
P (w) := w = λ of w = S, of w begint met een A of een a<br />
we zullen <strong>het</strong> bewijs hier heel <strong>uit</strong>voerig geven. Daartoe nummeren we eerst alle productieregels:<br />
S<br />
S<br />
S<br />
1<br />
→ aSb<br />
2<br />
→ A<br />
3<br />
→ λ<br />
A 4 → aAbb<br />
A 5 → abb<br />
Het is meteen dui<strong>de</strong>lijk dat P (S) geldt. Nu moeten we nog laten zien dat <strong>de</strong> invariant<br />
on<strong>de</strong>r <strong>de</strong> productieregels behou<strong>de</strong>n blijft. Dus als P (v) geldt voor zekere v en v → v ′<br />
dan moet ook P (v ′ ) gel<strong>de</strong>n. Omdat onze invariant <strong>van</strong> <strong>het</strong> type “w heeft één <strong>van</strong> <strong>de</strong>ze<br />
vier vormen” is, betekent dat dat we een grote gevalson<strong>de</strong>rscheiding moeten maken.<br />
25
• v = λ. In dit geval is er geen enkele productieregel toepasbaar en dus valt hier<br />
niets te controleren. In <strong>het</strong> bijzon<strong>de</strong>r geldt dus in al die gevallen P (v ′ ).<br />
• v = S. In dit geval moeten <strong>de</strong> eerste drie regels gecontroleerd wor<strong>de</strong>n. Uit <strong>de</strong> regels<br />
hierboven zien we meteen dat v ′ dan één <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> vormen heeft: v ′ = aSb,<br />
v ′ = A of v ′ = λ. En in alle drie <strong>de</strong> gevallen geldt P (v ′ ). Dus ook dit geval is in<br />
or<strong>de</strong>.<br />
• v begint met een A. In dit geval moeten we nog meer gevallen on<strong>de</strong>rschei<strong>de</strong>n omdat<br />
<strong>het</strong> mogelijk is dat in <strong>de</strong> rest <strong>van</strong> v ook nog hulpsymbolen staan. We schrijven ze<br />
hieron<strong>de</strong>r op, gevolgd door <strong>de</strong> mogelijke productieregels. Met v = A . . . bedoelen<br />
we dat v begint met A en er in <strong>de</strong> rest geen hulpsymbolen A of S staan. Met<br />
v = A . . . S . . . bedoelen we dat v begint met een A en er in <strong>de</strong> staart minimaal<br />
één keer een S staat.<br />
A . . .<br />
A . . .<br />
A . . . S . . .<br />
A . . . S . . .<br />
A . . . S . . .<br />
A . . . S . . .<br />
A . . . S . . .<br />
A . . . A . . .<br />
A . . . A . . .<br />
A . . . A . . .<br />
A . . . A . . .<br />
4<br />
→ aAbb . . .<br />
5<br />
→ abb<br />
1<br />
→ A . . . aSb . . .<br />
2<br />
→ A . . . A . . .<br />
3<br />
→ A . . . λ . . .<br />
4<br />
→ aAbb . . . S . . .<br />
5<br />
→ abb . . . S . . .<br />
4<br />
→ aAbb . . . A . . .<br />
4<br />
→ A . . . aAbb . . .<br />
5<br />
→ abb . . . A . . .<br />
5<br />
→ A . . . abb . . .<br />
We zien meteen dat alle mogelijke v ′ ofwel met een a ofwel met een A beginnen en<br />
dus geldt in alle gevallen P (v ′ ).<br />
• v begint met een a. We maken een soortgelijke analyse <strong>van</strong> <strong>de</strong> mogelijkhe<strong>de</strong>n:<br />
a . . . S . . .<br />
a . . . S . . .<br />
a . . . S . . .<br />
a . . . A . . .<br />
a . . . A . . .<br />
1<br />
→ a . . . aSb . . .<br />
2<br />
→ a . . . A . . .<br />
3<br />
→ a . . . λ . . .<br />
4<br />
→ a . . . aAbb . . .<br />
5<br />
→ a . . . abb . . .<br />
Ook hier zien we dat v ′ altijd met een a begint en dus geldt P (v ′ ) altijd.<br />
Op dit moment hebben we dus bewezen dat P een invariant is <strong>van</strong> <strong>de</strong> grammatica.<br />
Omdat P (bba) niet geldt moet dus wel gel<strong>de</strong>n bba ∈ L12.<br />
Zoals gezegd is dit bewijs heel <strong>uit</strong>voerig opgeschreven. Natuurlijk mag je <strong>het</strong> ook an<strong>de</strong>rs<br />
doen. Voor <strong>het</strong> geval v begint met een a kun je bijvoorbeeld volstaan met iets als: er is<br />
geen enkele productieregel die <strong>de</strong> eerste letter veran<strong>de</strong>rt en dus begint v ′ automatisch<br />
ook met een a.<br />
(ii) aabbb niet geproduceerd kan wor<strong>de</strong>n via <strong>de</strong> grammatica voor L3 die je in opgave 3.F<br />
gemaakt hebt.<br />
26
Oplossing: Een invariant is hier<br />
P (w) := w bevat een S of een c<br />
We<strong>de</strong>rom geldt P (S). Ver<strong>de</strong>r geldt dat P een invariant is on<strong>de</strong>r <strong>de</strong> productieregels.<br />
Immers <strong>de</strong> regels voor A en B veran<strong>de</strong>ren <strong>het</strong> aantal S-en niet en vermin<strong>de</strong>ren <strong>het</strong><br />
aantal c’s niet. En <strong>de</strong> regels voor S laten ofwel <strong>het</strong> aantal S-en gelijk ofwel neemt <strong>het</strong><br />
aantal c’s met één toe. Dui<strong>de</strong>lijk is ook dat aabbb geen S en geen c bevat. Dus P (aabbb)<br />
geldt niet en dus aabbb ∈ L3.<br />
(iii) aabbb niet geproduceerd kan wor<strong>de</strong>n via <strong>de</strong> grammatica voor L4 die je in opgave 3.F<br />
gemaakt hebt.<br />
Oplossing: Een voor <strong>de</strong> hand liggen<strong>de</strong> keuze als invariant is<br />
P (w) := <strong>het</strong> eerste symbool <strong>van</strong> w is <strong>het</strong>zelf<strong>de</strong> als <strong>het</strong> laatste<br />
Dan geldt P (S). Echter, in tegenstelling tot <strong>de</strong> verwachting blijft <strong>de</strong>ze eigenschap niet<br />
behou<strong>de</strong>n on<strong>de</strong>r <strong>de</strong> productieregels. Stel bijvoorbeeld dat v = SS. Dan geldt P (v).<br />
Maar we hebben dan <strong>de</strong> productie SS → Sc. En P (Sc) geldt dui<strong>de</strong>lijk niet. Hier merk<br />
je echt dat <strong>de</strong> invariant behou<strong>de</strong>n moet blijven voor alle woor<strong>de</strong>n v en in <strong>het</strong> bijzon<strong>de</strong>r<br />
dus ook voor woor<strong>de</strong>n als v = SS die je helemaal nooit met <strong>de</strong>ze grammatica kunt<br />
maken!<br />
Toch is <strong>de</strong> essentie <strong>van</strong> <strong>de</strong> invariant niet slecht. We hoeven hem alleen maar <strong>uit</strong> te<br />
brei<strong>de</strong>n om problemen als hierboven te voorkomen. Neem<br />
P (w) := <strong>het</strong> eerste symbool <strong>van</strong> w is <strong>het</strong>zelf<strong>de</strong> als <strong>het</strong> laatste en w bevat<br />
maximaal één S die dan ook nog eens precies in <strong>het</strong> mid<strong>de</strong>n <strong>van</strong> w staat<br />
Dui<strong>de</strong>lijk is dat P (S) weer geldt. Voor <strong>de</strong> productieregels maken we <strong>de</strong> volgen<strong>de</strong> gevalson<strong>de</strong>rscheiding.<br />
• v bevat geen S. Dan is <strong>het</strong> heel simpel: er zijn geen productieregels toepasbaar<br />
dus voor alle v ′ met v → v ′ geldt P (v ′ ).<br />
• v bevat precies één S die in <strong>het</strong> mid<strong>de</strong>n staat <strong>van</strong> v. Dus v = xySzx met x ∈<br />
{a, b, c}, y, z ∈ {a, b, c} ∗ en |y| = |z|. De volgen<strong>de</strong> producties zijn dan mogelijk:<br />
xySzx → xyaSazx<br />
xySzx → xybSbzx<br />
xySzx → xycSczx<br />
xySzx → xyazx<br />
xySzx → xybzx<br />
xySzx → xyczx<br />
En <strong>het</strong> is meteen dui<strong>de</strong>lijk dat P (v ′ ) geldt voor al <strong>de</strong>ze mogelijkhe<strong>de</strong>n. Dus is P<br />
een invariant <strong>van</strong> <strong>de</strong> grammatica. Dui<strong>de</strong>lijk is ook dat P (aabbb) niet geldt. Dus<br />
aabbb ∈ L4.<br />
27
Opgave 3.K (i) Bekijk <strong>de</strong> volgen<strong>de</strong> grammatica over alfabet {a, b, c}:<br />
S → A | B<br />
A → abS | λ<br />
B → bcS | λ<br />
Ga na of je <strong>de</strong> volgen<strong>de</strong> woor<strong>de</strong>n kunt produceren met <strong>de</strong>ze grammatica: abab, bcabbc,<br />
abba. Lukt dat, geef dan een productie. Lukt dat niet, geef dan een geschikte invariant<br />
waarmee je dit zou kunnen bewijzen.<br />
Oplossing: abab en bcabbc kunnen wel geproduceerd wor<strong>de</strong>n:<br />
S → A → abS → abA → ababS → ababA → abab<br />
S → B → bcS → bcA → bcabS → bcabB → bcabbcS → bcabbcB → bcabbc<br />
Het woord abba kan niet wor<strong>de</strong>n geproduceerd. Bekijk maar <strong>de</strong> eigenschap<br />
P (w) := <strong>het</strong> laatste symbool <strong>van</strong> w dat geen hulpsymbool is, is geen a<br />
Dit is een invariant. Omdat S geen niet-hulpsymbolen bevat, geldt P (S) automatisch.<br />
Stel nu dat we een v hebben met P (v). Dan is <strong>het</strong> laatste symbool dat geen hulpsymbool<br />
is geen a, maar een b of c. We on<strong>de</strong>rschei<strong>de</strong>n weer twee gevallen:<br />
• Er staan alleen maar hulpsymbolen in v. Dan zijn we op <strong>de</strong>zelf<strong>de</strong> manier als voor<br />
S meteen klaar.<br />
• Er is echt een laatste niet-hulpsymbool aanwezig. Noem dat x. We maken nu ver<strong>de</strong>r<br />
on<strong>de</strong>rscheid naar <strong>de</strong> in v aanwezige hulpsymbolen en hun bijbehoren<strong>de</strong> producties.<br />
– Als er een hulpsymbool voor x staat, dan maakt <strong>het</strong> niet <strong>uit</strong> welke productieregel<br />
we daarop toepassen. Omdat er alleen maar dingen voor x veran<strong>de</strong>ren,<br />
blijft x <strong>het</strong> laatste niet-hulpsymbool dat dus automatisch ongelijk aan a blijft.<br />
– Als er een A achter x staat kunnen er twee productieregels wor<strong>de</strong>n toegepast:<br />
. . . x . . . A . . . → . . . x . . . abS . . .<br />
. . . x . . . A . . . → . . . x . . . λ . . .<br />
Omdat er op <strong>de</strong> . . . achter <strong>de</strong> x alleen maar hulpsymbolen kunnen staan, is in<br />
<strong>het</strong> eerste geval <strong>het</strong> laatste niet-hulpsymbool <strong>de</strong> b direct voor <strong>de</strong> S gewor<strong>de</strong>n<br />
en dus ongelijk aan a. In <strong>het</strong> twee<strong>de</strong> geval is x <strong>het</strong> laatste niet-hulpsymbool<br />
gebleven en dus ook nog steeds ongelijk aan a. In bei<strong>de</strong> gevallen geldt P (v ′ )<br />
dus.<br />
– Als er een B achter x staat, krijg je twee analoge gevallen. In <strong>het</strong> ene geval<br />
wordt <strong>het</strong> laatste niet-hulpsymbool een c en in <strong>het</strong> an<strong>de</strong>re geval blijft <strong>het</strong> weer<br />
x. Dus ook nu geldt P (v ′ ) voor alle mogelijkhe<strong>de</strong>n.<br />
– Als er een S achter <strong>de</strong> x staat zijn er ook twee mogelijkhe<strong>de</strong>n. Maar bei<strong>de</strong><br />
leveren alleen maar an<strong>de</strong>re hulpsymbolen op en dus blijft x automatisch <strong>het</strong><br />
laatste niet-hulpsymbool (en dus ongelijk aan a). Dus ook in dit geval geldt<br />
P (v ′ ).<br />
28
Dus P is in<strong>de</strong>rdaad een invariant. Echter, <strong>het</strong> laatste niet-hulpsymbool <strong>van</strong> abba is een<br />
a en dus geldt P (abba) niet en kan dat woord dus niet geproduceerd wor<strong>de</strong>n.<br />
(ii) Beschrijf <strong>de</strong> reguliere taal L13 die <strong>de</strong>ze grammatica produceert met een reguliere expressie.<br />
Oplossing: De taal L13 die <strong>de</strong>ze grammatica produceert wordt ook gegeven door <strong>de</strong><br />
reguliere expressie ((ab) ∪ (bc)) ∗ , in an<strong>de</strong>re woor<strong>de</strong>n L13 = L ((ab) ∪ (bc)) ∗ .<br />
(iii) Maak een rechtslineaire grammatica voor <strong>de</strong> taal L14 bestaan<strong>de</strong> <strong>uit</strong> woor<strong>de</strong>n <strong>van</strong> <strong>de</strong><br />
vorm ab . . . aba (dus a’s en b’s om en om met vooraan en achteraan een a; zorg dat je<br />
ook a krijgt).<br />
Oplossing: Een rechts-lineaire grammatica voor <strong>de</strong> woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm ab . . . aba is<br />
S → abS | a<br />
Een an<strong>de</strong>re mogelijkheid die natuurlijk ook goed is:<br />
S → aB<br />
B → bS | λ<br />
Opgave 3.L Geef rechtslineaire grammatica’s voor <strong>de</strong> talen <strong>uit</strong> opgave 3.D:<br />
(i) L6 := {w ∈ {a, b} ∗ | ie<strong>de</strong>re a in w wordt direct gevolgd door een b},<br />
Oplossing:<br />
S → abS | bS | λ<br />
(ii) L7 := <strong>de</strong> taal <strong>van</strong> alle goedgevorm<strong>de</strong> integer-expressies. Deze bestaan <strong>uit</strong> <strong>de</strong> symbolen<br />
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, maar ze beginnen nooit met een 0 (behalve <strong>het</strong> getal 0 zelf<br />
natuurlijk) en mogen eventueel wor<strong>de</strong>n voorafgegaan door een + of een −.<br />
Oplossing:<br />
S → +T | −T | T<br />
T → 0 | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C<br />
C → 0C | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C | λ<br />
(iii) L8 := <strong>de</strong> taal <strong>van</strong> alle goedgevorm<strong>de</strong> rekenkundige expressies zon<strong>de</strong>r haakjes. Deze<br />
bestaan <strong>uit</strong> natuurlijke getallen met daartussen <strong>de</strong> operatoren +, − of ×, bijvoorbeeld<br />
7 + 3 × 29 − 78.<br />
Oplossing:<br />
S → 0 | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C<br />
C → 0C | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C | λ | A<br />
A → +S | −S | ×S<br />
Merk op dat in <strong>de</strong>ze <strong>uit</strong>werking een rekenkundige expressie ook kan bestaan <strong>uit</strong> één<br />
getal zon<strong>de</strong>r operatoren.<br />
Opgave 3.M Hieron<strong>de</strong>r tonen we een grammatica voor een klein ge<strong>de</strong>elte <strong>van</strong> <strong>de</strong> Engelse<br />
taal.<br />
29
S = 〈zin〉 → 〈on<strong>de</strong>rwerpvorm〉〈werkwoordvorm〉.<br />
〈zin〉 → 〈on<strong>de</strong>rwerpvorm〉〈werkwoordvorm〉〈lij<strong>de</strong>ndvoorwerpvorm〉.<br />
〈on<strong>de</strong>rwerpvorm〉 → 〈eigennaam〉 | 〈lidwoord〉〈zelfstandignaamwoord〉<br />
〈eigennaam〉 → John | Jill<br />
〈zelfstandignaamwoord〉 → bicycle | mango<br />
〈lidwoord〉 → a | the<br />
〈werkwoordvorm〉 → 〈werkwoord〉 | 〈bijwoord〉〈werkwoord〉<br />
〈werkwoord〉 → eats | ri<strong>de</strong>s<br />
〈bijwoord〉 → slowly | frequently<br />
〈bijvoeglijknaamwoordlijst〉 → 〈bijvoeglijknaamwoord〉〈bijvoeglijknaamwoordlijst〉 | λ<br />
〈bijvoeglijknaamwoord〉 → big | juicy | yellow<br />
〈lij<strong>de</strong>ndvoorwerpvorm〉 → 〈bijvoeglijknaamwoordlijst〉〈eigennaam〉<br />
〈lij<strong>de</strong>ndvoorwerpvorm〉 → 〈lidwoord〉〈bijvoeglijknaamwoordlijst〉〈zelfstandignaamwoord〉<br />
(i) Is <strong>de</strong>ze grammatica rechtslineair?<br />
Oplossing: Deze grammatica is contextvrij, maar niet rechts-lineair (bijvoorbeeld <strong>de</strong><br />
eerste productieregel voldoet niet).<br />
(ii) Laat zien hoe je <strong>de</strong> volgen<strong>de</strong> zin produceert: Jill frequently eats a big juicy yellow mango.<br />
Oplossing:<br />
• <br />
• →. (R2)<br />
• →. (R3.1)<br />
• →Jill. (R4.2)<br />
• →Jill. (R7.2)<br />
• →Jill frequently . (R9.2)<br />
• →Jill frequently eats . (R8.1)<br />
• →Jill frequently eats .<br />
(R13)<br />
• →Jill frequently eats a . (R6.1)<br />
• →Jill frequently eats a .<br />
(R10.1)<br />
• →Jill frequently eats a big . (R11.1)<br />
• →Jill frequently eats a big .<br />
(R10.1)<br />
• →Jill frequently eats a big juicy .<br />
(R11.2)<br />
• →Jill frequently eats a big juicy
Opgave 3.N Bekijk <strong>de</strong> volgen<strong>de</strong> automaat M1.<br />
M1 :<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
q0<br />
a<br />
q1<br />
a<br />
b b<br />
a<br />
q3<br />
b<br />
q2<br />
<br />
<br />
a<br />
b<br />
In <strong>de</strong>ze automaat is Q = {q0, q1, q2, q3}, F = {q3} en Σ = {a, b}.<br />
(i) Ga voor <strong>de</strong> volgen<strong>de</strong> woor<strong>de</strong>n na of ze geaccepteerd wor<strong>de</strong>n: abaab, aaaba, bab, λ en<br />
aabbab.<br />
Oplossing: De woor<strong>de</strong>n wor<strong>de</strong>n op <strong>de</strong> volgen<strong>de</strong> manier verwerkt:<br />
abaab : q0 a → q1 b → q3 a → q0 a → q1 b → q3<br />
aaaba : q0 a → q1 a → q2 a → q3 b → q2 a → q3<br />
bab : q0 b → q2 a → q3 b → q2<br />
λ : q0<br />
aabbab : q0 a → q1 a → q2 b → q2 b → q2 a → q3 b → q2<br />
Alleen <strong>de</strong> woor<strong>de</strong>n abaab en aaaba eindigen in een eindtoestand (q3), dus alleen die twee<br />
woor<strong>de</strong>n wor<strong>de</strong>n geaccepteerd.<br />
(ii) Gel<strong>de</strong>n <strong>de</strong> volgen<strong>de</strong> <strong>uit</strong>spraken? Geef steeds een tegenvoorbeeld of een bewijs.<br />
(1) Als w geaccepteerd wordt, dan wordt wabba ook geaccepteerd.<br />
Oplossing: Dit is waar. Stel dat w geaccepteerd wordt, dan zit <strong>de</strong> automaat na <strong>het</strong><br />
lezen <strong>van</strong> w dus in toestand q3. Vervolgens moet <strong>van</strong><strong>uit</strong> q3 dan nog <strong>de</strong> string abba<br />
gelezen wor<strong>de</strong>n: q3 a → q0 b → q2 b → q2 a → q3. En dus bevindt <strong>de</strong> automaat zich na<br />
<strong>het</strong> lezen <strong>van</strong> wabba ook in een eindtoestand en wordt dat woord dus geaccepteerd.<br />
(2) Als w geaccepteerd wordt, dan wordt wab niet geaccepteerd.<br />
Oplossing: Dit is waar. Bewijs <strong>het</strong> nu zelf analoog aan <strong>het</strong> vorige geval.<br />
(3) Als w niet geaccepteerd wordt, dan wordt waa ook niet geaccepteerd.<br />
Oplossing: Dit is niet waar. Neem bijvoorbeeld w = a. Dan wordt w niet<br />
geaccepteerd, maar waa wordt wel geaccepteerd.<br />
(4) Als w niet geaccepteerd wordt, dan wordt wbb ook niet geaccepteerd.<br />
Oplossing: Dit is waar. Als <strong>de</strong> automaat na w geëindigd is en w is niet geaccepteerd,<br />
zit hij dus in q0, q1 of q2. Maar <strong>van</strong><strong>uit</strong> elk <strong>van</strong> <strong>de</strong>ze toestan<strong>de</strong>n ga je na <strong>het</strong><br />
verwerken <strong>van</strong> bb naar toestand q2 en dat is geen eindtoestand en dus wordt wbb<br />
in<strong>de</strong>rdaad niet geaccepteerd.<br />
Opgave 3.O Conclu<strong>de</strong>er <strong>uit</strong> <strong>de</strong> grammatica G3 dat<br />
(i) (aba) k ab ∈ L(M1) voor k ≥ 0,<br />
Oplossing: S → abaS → . . . → (aba) k S → (aba) k ab voor ie<strong>de</strong>re k ≥ 0. Dus eerst k<br />
keer <strong>de</strong> regel S → abaS toepassen en dan één keer <strong>de</strong> regel S → ab.<br />
(ii) aab k a ∈ L(M1) voor k ≥ 0,<br />
Oplossing: S → aaB → aabB → aabbB → . . . → aab k B → aab k a voor ie<strong>de</strong>re k ≥ 0.<br />
Dus eerst <strong>de</strong> regel S → aaB toepassen, dan k − 1 keer regel B → bB en tenslotte één<br />
keer B → a.<br />
31
(iii) als w ∈ L(M1), dan ook abaw ∈ L(M1),<br />
Oplossing: S → abaS en omdat w geaccepteerd is weet je ook dat er een S → . . . → w<br />
bestaat. Maar dan bestaat dus ook S → abaS → . . . → abaw.<br />
(iv) als w ∈ L(M1), dan ook aaaaw ∈ L(M1),<br />
Oplossing: S → aaB → aaaaS en je weet ook dat S → . . . → w bestaat, dus ook<br />
S → aaB → aaaaS → . . . → aaaaw.<br />
Opgave 3.P Maak een rechtslineaire grammatica bij <strong>de</strong> eindige automaat M0, zoals boven<br />
gedaan voor M1. Verklein <strong>de</strong>ze grammatica door overbodige productieregels en hulpsymbolen<br />
weg te laten.<br />
Oplossing: Introduceer S voor q0, A voor q1, B voor q2 en C voor q3.<br />
S → aA | bC<br />
A → bA | aB<br />
B → aC | bB | λ<br />
C → aC | bC<br />
Omdat A, B en C recursief naar zichzelf verwijzen, kun je die niet elimineren door substitutie.<br />
Echter, omdat elke productie die naar C gaat nooit tot een woord dat geaccepteerd wordt zal<br />
lei<strong>de</strong>n, kan <strong>de</strong>ze C weggelaten wor<strong>de</strong>n zon<strong>de</strong>r dat <strong>de</strong> taal die bij <strong>de</strong> grammatica hoort wijzigt.<br />
Je krijgt dan:<br />
S → aA<br />
A → bA | aB<br />
B → bB | λ<br />
Opgave 3.Q Maak een eindige automaat die <strong>de</strong> taal <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> grammatica accepteert.<br />
S → abS | aA | bB<br />
A → aA | λ<br />
B → bB | λ<br />
Oplossing: Eerst eens kijken welke woor<strong>de</strong>n er zoal geproduceerd kunnen wor<strong>de</strong>n: a,<br />
aa, aaa, b, bb, bbb, aba, abaa, abaaa, abb, abbb, abbb, ababa, ababaa, ababaaa, ababb, ababbb,<br />
ababbbb,. . . . De taal waar <strong>het</strong> hier om gaat lijkt dan ook <strong>de</strong> taal L((ab) ∗ (aa ∗ ∪ bb ∗ )) te zijn.<br />
Een automaat die diezelf<strong>de</strong> taal accepteert is:<br />
b<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
q0<br />
a<br />
b<br />
q1<br />
a<br />
q2 a<br />
b<br />
q3<br />
a<br />
q4<br />
b<br />
a,b<br />
32
Opgave 3.R Bekijk <strong>de</strong> eindige automaat M3:<br />
M3 :<br />
b<br />
<br />
<br />
q0 <br />
<br />
b<br />
a<br />
b<br />
<br />
q1<br />
a<br />
<br />
q2<br />
<br />
Maak een rechtslineaire grammatica die L(M3) genereert.<br />
Oplossing: Eerst weer eens kijken welke woor<strong>de</strong>n allemaal geaccepteerd wor<strong>de</strong>n: λ, b, bb,<br />
bbb, ab, abab, bab, bbab, aab, aaab, aaaab, . . . . Is dit misschien <strong>de</strong> taal <strong>van</strong> alle woor<strong>de</strong>n die<br />
niet op een a eindigen? Introduceer weer S voor q0, A voor q1 en B voor q2 en je krijgt <strong>de</strong><br />
grammatica:<br />
S → bS | aA | λ<br />
A → bS | aB<br />
B → bS | aB<br />
Opvallend is dat <strong>de</strong> laatste twee regels min of meer <strong>het</strong>zelf<strong>de</strong> zijn. Als je hier goed over<br />
na<strong>de</strong>nkt, kun je inzien dat je <strong>de</strong> grammatica kunt reduceren tot:<br />
S → bS | aA | λ<br />
A → bS | aA<br />
En als je dan nog ver<strong>de</strong>r na<strong>de</strong>nkt zie je dat <strong>de</strong> simpelere automaat<br />
M ′ 3 :<br />
<strong>de</strong>zelf<strong>de</strong> taal accepteert als M3.<br />
b<br />
<br />
<br />
q0<br />
Opgave 3.S Bekijk <strong>de</strong> eindige automaat M4:<br />
M4 :<br />
b<br />
<br />
<br />
q0<br />
(i) Maak een rechtslineaire grammatica die L(M4) genereert.<br />
Oplossing:<br />
<br />
<br />
a<br />
b<br />
a<br />
S → bS | aA<br />
A → aA | bS | λ<br />
(ii) Geef een (eenvoudige) beschrijving <strong>van</strong> L(M4).<br />
Oplossing: Door sterk te letten op <strong>de</strong> structuur <strong>van</strong> <strong>de</strong> automaat kom je al snel tot<br />
<strong>de</strong>ze beschrijving: {b k aa l (bb m aa n ) p | k, l, m, n, p ≥ 0} of L(b ∗ aa ∗ (bb ∗ aa ∗ ) ∗ ). Echter, als<br />
je wat ver<strong>de</strong>r kijkt, zie je dat <strong>de</strong> taal L(M4) eigenlijk gekarakteriseerd wordt door <strong>het</strong><br />
feit dat <strong>het</strong> laatste symbool een a moet zijn. Maar dat betekent dat <strong>de</strong> taal ook zo kan<br />
wor<strong>de</strong>n beschreven: L(M4) = L((a ∪ b) ∗ a).<br />
33<br />
b<br />
<br />
<br />
q1<br />
q1<br />
<br />
<br />
a<br />
a<br />
a
(iii) Als we alle toestan<strong>de</strong>n eindtoestand maken, welke taal accepteert M4 dan?<br />
Oplossing: {a, b} ∗ (alle woor<strong>de</strong>n over {a, b}).<br />
(iv) Als we <strong>de</strong> eindtoestan<strong>de</strong>n en <strong>de</strong> niet-eindtoestan<strong>de</strong>n omwisselen, welke taal accepteert<br />
M4 dan?<br />
Oplossing: Het complement <strong>van</strong> L(M4), dwz. alle woor<strong>de</strong>n over {a, b} die niet in<br />
L(M4) zitten. Uit <strong>de</strong> structuur <strong>van</strong> <strong>de</strong> automaat volgt <strong>de</strong> beschrijving: {b k (aa l bb m ) p |<br />
k, l, m, p ≥ 0}. In termen <strong>van</strong> reguliere expressies krijgen we dan <strong>de</strong> beschrijving<br />
L(b ∗ (aa ∗ bb ∗ ) ∗ ). Echter, als we even herinneren dat L(M4) = L((a ∪ b) ∗ a), dan is <strong>het</strong><br />
complement natuurlijk alles dat niet op een a eindigt. Dus wat op een b eindigt of λ.<br />
Dus een simpelere beschrijving voor <strong>het</strong> complement <strong>van</strong> L(M4) is L((a ∪ b) ∗ b ∪ λ).<br />
Opgave 3.T Maak een eindige automaat die <strong>de</strong> taal L15 := {(ab) k (aba) l | k, l ≥ 0} over<br />
Σ = {a, b} accepteert.<br />
Oplossing: Deze opgave staat bekend als een erg lastige opgave!<br />
<br />
q0<br />
q7<br />
<br />
a<br />
a <br />
b<br />
b<br />
b<br />
q6 <br />
a<br />
q2<br />
a<br />
<br />
<br />
<br />
<br />
q1 <br />
<br />
a,b<br />
b<br />
<br />
a<br />
b <br />
q3<br />
<br />
Hoe vind je nu zo’n automaat? Een combinatie <strong>van</strong> na<strong>de</strong>nken en proberen om zo min mogelijk<br />
toestan<strong>de</strong>n toe te voegen. Een reconstructie:<br />
1. λ ∈ L15 dus begintoestand q0 moet tevens eindtoestand zijn.<br />
2. q0 b → . . . ? Merk op dat woor<strong>de</strong>n <strong>uit</strong> L15 nooit met een b beginnen, dus weten we meteen<br />
dat er een put q1 nodig is met q0 b → q1.<br />
3. q0 a → . . . ? Omdat a ∈ L15 moet er een nieuwe toestand q2 gemaakt wor<strong>de</strong>n die geen<br />
eindtoestand is en q0 a → q2.<br />
4. q1 a → q1 en q1 b → q1 want q1 is <strong>de</strong> put.<br />
5. q2 a → . . . ? Omdat woor<strong>de</strong>n nooit met aa beginnen, moet a naar <strong>de</strong> put, dus q2 a → q1.<br />
6. q2 b → . . . ? Omdat ab ∈ L15 moet b naar een eindtoestand: q0 of een nieuwe.<br />
• Als q2 b → q0 dan wordt aba niet geaccepteerd, dus dat kan niet.<br />
Er moet dus een nieuwe eindtoestand q3 wor<strong>de</strong>n toegevoegd: q2 b → q3.<br />
7. q3 a → . . . ? Omdat aba ∈ L15 moet a naar een eindtoestand: q0, q3 of een nieuwe.<br />
• Als q3 a → q0 dan wordt abaab geaccepteerd, terwijl abaab ∈ L15, dus dat kan niet.<br />
34<br />
b<br />
q5<br />
<br />
a<br />
a<br />
<br />
q4<br />
b
• Als q3 a → q3 dan wordt abaa geaccepteerd, terwijl abaa ∈ L15, dus dat kan ook<br />
niet.<br />
Er moet dus een nieuwe eindtoestand q4 wor<strong>de</strong>n toegevoegd: q3 a → q4.<br />
8. q3 b → . . . ? Omdat woor<strong>de</strong>n nooit met abb beginnen, moet b naar <strong>de</strong> put: q3 b → q1.<br />
9. q4 a → . . . ? Omdat abaa ∈ L15 mag a niet naar een eindtoestand en omdat abaaba ∈ L15<br />
mag a niet naar <strong>de</strong> put. Dus naar q2 of naar een nieuwe niet-eindtoestand.<br />
• Als q4 a → q2 dan wordt abaab geaccepteerd, terwijl abaab ∈ L15, dus dat kan niet.<br />
Er moet dus een nieuwe niet-eindtoestand q5 wor<strong>de</strong>n toegevoegd: q4 a → q5.<br />
10. q4 b → . . . ? Omdat abab ∈ L15 moet b naar een eindtoestand: q0, q3, q4 of een nieuwe.<br />
• Als q4 b → q0 dan wordt ababaaba naar <strong>de</strong> put gestuurd, terwijl ababaaba ∈ L15, dus<br />
dat kan niet.<br />
• Als q4 b → q3 dan zijn er geen problemen, dus laten we dit maar proberen en kijken<br />
of we <strong>de</strong> automaat af kunnen maken.<br />
Dus q4 b → q3.<br />
11. q5 a → . . . ? Omdat woor<strong>de</strong>n nooit met abaaa beginnen, moet a naar <strong>de</strong> put: q5 a → q1.<br />
12. q5 b → . . . ? Omdat abaab ∈ L15, moet b naar een niet-eindtoestand. Omdat abaaba ∈<br />
L15, mag b niet naar <strong>de</strong> put. Dus <strong>de</strong> kandidaten zijn: q2, q5 of een nieuwe nieteindtoestand.<br />
• Als q5 b → q2 dan wordt abaabb geaccepteerd, terwijl abaabb ∈ L15, dus dat kan niet.<br />
• Als q5 b → q5 dan wordt abaaba naar <strong>de</strong> put gestuurd, terwijl abaaba ∈ L15, dus dat<br />
kan ook niet.<br />
Er moet dus een nieuwe niet-eindtoestand q6 wor<strong>de</strong>n toegevoegd: q5 b → q6.<br />
13. q6 a → . . . ? Omdat abaaba ∈ L15 moet a naar een eindtoestand: q0, q3, q4 of een nieuwe.<br />
14. q6<br />
• Als q6 a → q0 dan wordt abaabaab geaccepteerd, terwijl abaabaab ∈ L15, dus dat kan<br />
niet.<br />
• Als q6 a → q3 dan wordt weer abaabaab geaccepteerd, terwijl abaabaab ∈ L15, dus<br />
dat kan ook niet.<br />
• Als q6 a → q4 dan wordt abaababa geaccepteerd, terwijl abaababa ∈ L15, dus dat kan<br />
ook niet.<br />
Er moet dus een nieuwe eindtoestand q7 wor<strong>de</strong>n toegevoegd: q6 a → q7.<br />
b<br />
→ . . . ? Omdat woor<strong>de</strong>n nooit met abaabb kunnen beginnen, moet b naar <strong>de</strong> put:<br />
q6 b → q1.<br />
15. q7 a → . . . ? Omdat abaabaa ∈ L15 moet a naar een niet-eindtoestand: q2, q5, q6 of een<br />
nieuwe.<br />
35
16. q7<br />
• Als q7 a → q2 dan wordt abaabaab geaccepteerd, terwijl abaabaab ∈ L15, dus dat kan<br />
niet.<br />
• Als q7 a → q5 dan zijn er geen problemen. Je kunt hier dan meteen <strong>de</strong> loop <strong>van</strong> <strong>de</strong><br />
laatste aba-blokken herkennen.<br />
Dus q7 a → q5.<br />
b<br />
→ . . . ? Omdat woor<strong>de</strong>n nooit beginnen met abaabab, moet b naar <strong>de</strong> put. Dus<br />
q7 b → q1.<br />
En nu hebben we een geldige automaat waar precies <strong>de</strong> juiste woor<strong>de</strong>n in wor<strong>de</strong>n geaccepteerd!<br />
Opgave 3.U Maak een eindige automaat die <strong>de</strong> taal L16 := {(ab) k x(ab) l | x ∈ {a, b}, k, l ≥<br />
0} over Σ = {a, b} accepteert.<br />
Oplossing: Deze is waarschijnlijk iets makkelijker dan <strong>de</strong> vorige, maar <strong>de</strong>sondanks nog<br />
vrij lastig. (Ga voor jezelf na dat woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm (ab) k a(ab) l en (ab) k b(ab) l in<strong>de</strong>rdaad<br />
geaccepteerd wor<strong>de</strong>n.)<br />
<br />
q0<br />
<br />
b<br />
<br />
q1<br />
a<br />
b <br />
q2<br />
<br />
a<br />
<br />
b<br />
q3<br />
<br />
b<br />
a<br />
b<br />
a<br />
<br />
q4<br />
a<br />
<br />
<br />
<br />
q5<br />
<br />
Hoe vind je <strong>de</strong>ze automaat nu? We gebruiken hier een an<strong>de</strong>re metho<strong>de</strong> dan bij opgave 3.T.<br />
In <strong>het</strong> <strong>dictaat</strong> staat al beschreven hoe je <strong>van</strong><strong>uit</strong> een rechtslineaire grammatica vrij eenvoudig<br />
een <strong>de</strong>terministische automaat kunt maken. Dus beginnen we hier ook maar met <strong>het</strong> maken<br />
<strong>van</strong> zo’n rechtslineaire grammatica.<br />
S → abS | aA | bA<br />
A → abA | λ<br />
Helaas werkt <strong>het</strong> algoritme <strong>uit</strong> <strong>het</strong> <strong>dictaat</strong> niet direct. Dat komt doordat er overlap is: <strong>de</strong> a is<br />
zowel <strong>het</strong> begin <strong>van</strong> abS als <strong>van</strong> aA. Dus zorgen we ervoor dat we een equivalente grammatica<br />
maken waar die overlap is verdwenen door een extra hulpsymbool in te voeren.<br />
S → aP | bA<br />
P → bS | A<br />
A → abA | λ<br />
Helaas hebben we nu een overgang P → A geïntroduceerd en dan werkt <strong>het</strong> algoritme ook<br />
niet. Dus ver<strong>van</strong>gen we <strong>de</strong> grammatica weer door een equivalente grammatica.<br />
S → aP | bA<br />
P → bS | abA | λ<br />
A → abA | λ<br />
Ga na dat <strong>de</strong>ze in<strong>de</strong>rdaad equivalent is! De grammatica die we nu hebben is <strong>van</strong> <strong>de</strong> goe<strong>de</strong><br />
vorm en we kunnen dus <strong>het</strong> algoritme erop los laten door voor elk hulpsymbool een toestand<br />
36<br />
a,b
te maken (S → q0, P → q1 en A → q2).<br />
<br />
q0<br />
<br />
b<br />
<br />
q1<br />
a<br />
b <br />
q2 ab<br />
<br />
<br />
Vervolgens breken we <strong>de</strong> woor<strong>de</strong>n bij <strong>de</strong> pijlen op door extra toestan<strong>de</strong>n te maken:<br />
<br />
q0<br />
<br />
b<br />
<br />
q1<br />
a<br />
ab<br />
b <br />
q2<br />
<br />
a<br />
En als we nu nog een put toevoegen krijgen we precies <strong>de</strong> automaat die we hierboven al<br />
had<strong>de</strong>n laten zien.<br />
a<br />
<br />
b<br />
q0 <br />
<br />
q2 <br />
q4<br />
<br />
<br />
b<br />
b a b<br />
a<br />
<br />
b<br />
<br />
<br />
q1 <br />
q3 <br />
q5 a,b<br />
a<br />
a <br />
Echter, er is nog een kleinere automaat die <strong>de</strong>zelf<strong>de</strong> taal voortbrengt. Als we namelijk naar<br />
<strong>de</strong> toestan<strong>de</strong>n q3 en q4 kijken dan zien we dat ze precies <strong>de</strong>zelf<strong>de</strong> <strong>uit</strong>gaan<strong>de</strong> pijlen hebben:<br />
een a-pijl naar put q5 en een b-pijl naar q2. Maar dat betekent dat we die twee toestan<strong>de</strong>n<br />
ook samen mogen nemen, zon<strong>de</strong>r dat <strong>de</strong> taal veran<strong>de</strong>rt.<br />
<br />
q0<br />
<br />
b<br />
<br />
q1<br />
a<br />
<br />
b <br />
q2<br />
<br />
a<br />
b<br />
q3<br />
<br />
a<br />
b<br />
b a<br />
<br />
b<br />
<br />
<br />
q3 <br />
q5<br />
a<br />
NB: Indien je op <strong>de</strong>zelf<strong>de</strong> manier te werk was gegaan als beschreven bij opgave 3.T dan had<br />
je meteen <strong>de</strong>ze kleinere automaat gekregen.<br />
Opgave 3.V Bekijk <strong>de</strong> automaat M5 die (input) getallen in ‘normale’ <strong>de</strong>cimale notatie accepteert.<br />
Zo’n getal mag eventueel beginnen met een + of een −, maar niet met een 0, behalve<br />
natuurlijk als <strong>het</strong> <strong>van</strong> <strong>de</strong> vorm 0, 5 is, want dan is <strong>het</strong> weer wel goed. In <strong>het</strong> diagram staat<br />
0 . . . 9 voor één <strong>van</strong> <strong>de</strong> cijfers <strong>uit</strong> 0 t/m 9 enz.<br />
M5 :<br />
<br />
q0<br />
1...9<br />
<br />
<br />
q3<br />
<br />
0...9<br />
0 <br />
q1 <br />
+− 0<br />
<br />
1...9<br />
q2<br />
37<br />
,<br />
<br />
q4<br />
<br />
,<br />
a,b<br />
<br />
<br />
q4 0...9
(i) Vind je <strong>de</strong> automaat M5 goed? Wor<strong>de</strong>n alle ‘juiste’ getallen geaccepteerd en alle ‘foute’<br />
verworpen?<br />
Oplossing: Nee, <strong>de</strong> automaat is niet goed. Om te beginnen is hij niet <strong>de</strong>terministisch:<br />
er ontbreekt een put om bijvoorbeeld <strong>van</strong><strong>uit</strong> q0 een komma te kunnen verwerken.<br />
Daarnaast accepteert <strong>de</strong> automaat ook nog eens vreem<strong>de</strong> getallen: bijvoorbeeld ‘+0’,<br />
‘-0’ en ‘+37,’. Zijn getallen zon<strong>de</strong>r komma in <strong>de</strong>cimale notatie? En kan een getal in<br />
<strong>de</strong>cimale notatie met een komma eindigen? Hier staan we dat niet toe, maar je kunt<br />
daarover <strong>van</strong> mening verschillen. Als jij hier an<strong>de</strong>rs over <strong>de</strong>nkt, zorg dan dat jouw<br />
automaat overeenkomt met jouw i<strong>de</strong>e over <strong>de</strong>cimale getallen.<br />
(ii) Pas M5 aan als je <strong>het</strong> er niet mee eens bent.<br />
Oplossing: Er moeten verschillen<strong>de</strong> problemen wor<strong>de</strong>n opgelost:<br />
• Om te voorkomen dat getallen op een komma kunnen eindigen: voeg een toestand<br />
q5 toe waar <strong>de</strong> ‘komma’ pijlen <strong>uit</strong> q1 en q3 naar toe wijzen en <strong>van</strong> q5 naar q4 een<br />
0 . . . 9 pijl.<br />
• Om te voorkomen dat er getallen zon<strong>de</strong>r komma wor<strong>de</strong>n geaccepteerd: zorg dat q1<br />
en q3 niet langer eindtoestan<strong>de</strong>n zijn.<br />
• Tenslotte moet er een put wor<strong>de</strong>n toegevoegd: maak een nieuwe q6 waar alle<br />
‘verbo<strong>de</strong>n’ symbolen naar toe gaan.<br />
M5 ′ :<br />
<br />
q0<br />
1...9<br />
0 <br />
q1 <br />
+− 0<br />
<br />
q2<br />
<br />
1...9<br />
<br />
<br />
q3 , <br />
q5<br />
<br />
0...9<br />
,<br />
,<br />
+−,<br />
+−0...9 <br />
<br />
q6 <br />
<br />
<br />
<br />
+−,<br />
0...9<br />
<br />
+−,<br />
q4 0...9<br />
<br />
+−<br />
<br />
+−,0...9<br />
(iii) Geef een rechtslineaire grammatica die <strong>de</strong>zelf<strong>de</strong> taal als M5 genereert.<br />
Oplossing: De volgen<strong>de</strong> grammatica accepteert precies <strong>de</strong> taal <strong>van</strong> <strong>de</strong> originele M5,<br />
dus inclusief <strong>de</strong> foute getallen als ‘+37,’.<br />
S → 0A | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B | +C | −C<br />
A → , D | λ<br />
B → , D | λ | 0B | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B<br />
C → 0A | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B<br />
D → λ | 0D | 1D | 2D | 3D | 4D | 5D | 6D | 7D | 8D | 9D<br />
38
En voor M5 ′ wordt <strong>het</strong>:<br />
S → 0A | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B | +C | −C<br />
A → , D<br />
B → , D | 0B | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B<br />
C → 0A | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B<br />
D → 0E | 1E | 2E | 3E | 4E | 5E | 6E | 7E | 8E | 9E<br />
E → λ | 0E | 1E | 2E | 3E | 4E | 5E | 6E | 7E | 8E | 9E<br />
39
4 Discrete wiskun<strong>de</strong><br />
Opgave 4.A Bewijs dat er in een boom <strong>van</strong> een punt p naar een an<strong>de</strong>r punt q precies één<br />
pad bestaat.<br />
Oplossing: Deze opgave is nagenoeg geheel gebaseerd op <strong>de</strong>finitie 4.2. Volgens die <strong>de</strong>finitie<br />
is een boom een samenhangen<strong>de</strong> graaf zon<strong>de</strong>r cykels. We moeten twee beweringen bewijzen:<br />
• Er is minimaal één pad <strong>van</strong> p naar q.<br />
• Er is maximaal één pad <strong>van</strong> p naar q.<br />
Het eerste volgt meteen <strong>uit</strong> <strong>de</strong> <strong>de</strong>finitie <strong>van</strong> samenhangend: tussen ie<strong>de</strong>r tweetal punten<br />
bestaat een pad. Dus ook tussen onze punten p en q.<br />
Het twee<strong>de</strong> is makkelijk in te zien, maar moeilijk helemaal precies te bewijzen. Een<br />
gebruikelijke techniek om aan te tonen dat er maximaal één pad is, is om aan te nemen dat<br />
er twee verschillen<strong>de</strong> pa<strong>de</strong>n zijn en dan tot een tegenspraak te komen:<br />
p = x0 → x1 → x2 → · · · → xn−1 → xn = q en p = y0 → y1 → y2 → · · · → ym−1 → ym = q<br />
We proberen aan te tonen dat we hiermee een cykel kunnen maken, wat een tegenspraak is.<br />
Het eenvoudige argument dat we dan dus ook een cykel<br />
p = x0 → x1 → x2 → · · · → xn−1 → xn = q = ym → ym−1 → ym−2 → · · · → y1 → y0 = p<br />
hebben, gaat niet op omdat dit misschien geen pad is. Volgens <strong>de</strong> <strong>de</strong>finitie <strong>van</strong> pa<strong>de</strong>n mogen<br />
we elke lijn maar één keer doorlopen in een pad en dat is hier niet gegaran<strong>de</strong>erd. Bekijk maar<br />
eens <strong>het</strong> volgen<strong>de</strong> plaatje.<br />
b<br />
p a d q<br />
c<br />
Er zijn dui<strong>de</strong>lijk twee pa<strong>de</strong>n p → a → b → d → q en p → a → c → d → q, maar als je ze<br />
achter elkaar zet krijg je<br />
p → a → b → d → q → d → c → a → p<br />
en daarin komen <strong>de</strong> lijnen (p, a) en (d, q) twee keer voor en dus is <strong>het</strong> geen pad en dus ook<br />
geen cykel. Maar door <strong>de</strong> dubbelvoorkomen<strong>de</strong> lijnen weg te laten kun je wel altijd een cykel<br />
vin<strong>de</strong>n. Hier bijvoorbeeld<br />
a → b → d → c → a<br />
En dus hebben we toch een tegenspraak. In <strong>het</strong> bijzon<strong>de</strong>r is <strong>het</strong> niet nodig dat onze tegenvoorbeeldcykel<br />
door <strong>de</strong> speciale punten p en q gaat! Het algemene bewijs is te lastig en laten<br />
we daarom weg. We volstaan met <strong>het</strong> i<strong>de</strong>e om zo’n cykel te construeren:<br />
• Verwij<strong>de</strong>r <strong>het</strong> gemeenschappelijke beginstuk <strong>van</strong> <strong>de</strong> twee pa<strong>de</strong>n zodat je in een p ′ begint<br />
waar <strong>de</strong> twee pa<strong>de</strong>n meteen in <strong>de</strong> eerste stap verschillend zijn. Je hebt dan dus nog<br />
steeds twee pa<strong>de</strong>n, alleen nu <strong>van</strong> p ′ naar q.<br />
40
• Bepaal <strong>het</strong> eerste punt waar <strong>de</strong> twee pa<strong>de</strong>n elkaar weer kruisen. Omdat dat in elk geval<br />
in q gebeurt, weet je zeker dat <strong>het</strong> een keer moet gebeuren. Noem dit punt q ′ . We<br />
hebben dan twee pa<strong>de</strong>n <strong>van</strong> p ′ naar q ′ .<br />
• Omdat we p ′ en q ′ op <strong>de</strong>ze manier geconstrueerd hebben, weten we nu dat we wel een<br />
echt pad krijgen als we eerst <strong>het</strong> ene pad <strong>van</strong> p ′ naar q ′ nemen en er vervolgens <strong>het</strong><br />
twee<strong>de</strong> pad achterstevoren, dus <strong>van</strong> q ′ naar p ′ achter plakken.<br />
• In <strong>het</strong> bijzon<strong>de</strong>r is dit pad een cykel en dus kunnen we geen boom hebben als er twee<br />
pa<strong>de</strong>n tussen p en q bestaan. Dus kan er maximaal één zo’n pad bestaan.<br />
Opgave 4.B Een brug in een graaf G is een lijn l waarvoor geldt: als je l <strong>uit</strong> G weglaat,<br />
wordt <strong>het</strong> aantal componenten verhoogd. Bewijs dat in een boom ie<strong>de</strong>re lijn een brug is.<br />
Oplossing: Kies maar eens een willekeurige lijn. Die lijn verbindt twee punten p en q<br />
en is dus in <strong>het</strong> bijzon<strong>de</strong>r een pad <strong>van</strong> p naar q. Op grond <strong>van</strong> opgave 4.A weten we nu dat<br />
als we <strong>de</strong>ze lijn weghalen, daarmee <strong>het</strong> enige pad tussen p en q is verdwenen. Dus zitten p<br />
en q niet meer in <strong>de</strong>zelf<strong>de</strong> component en is door <strong>het</strong> weghalen <strong>het</strong> aantal componenten dus<br />
verhoogd. Dus was <strong>de</strong>ze willekeurige lijn een brug. Maar dan is elke lijn in een boom dus een<br />
brug.<br />
Opgave 4.C Bewijs dat voor alle n ≥ 1 geldt dat <strong>de</strong> Kn precies 1<br />
2n(n − 1) lijnen heeft.<br />
Oplossing: Elk punt in Kn heeft graad n − 1. Dus <strong>van</strong><strong>uit</strong> elk punt vertrekken er n − 1<br />
lijnen. Er zijn n punten, dus op die manier tellen we n(n − 1) lijnen. Echter, omdat elk punt<br />
zowel beginpunt als eindpunt is, hebben we nu alle lijnen dubbel geteld. Dus <strong>het</strong> aantal lijnen<br />
n(n − 1).<br />
in Kn is 1<br />
2<br />
Opgave 4.D Ga na welke <strong>van</strong> <strong>de</strong> on<strong>de</strong>rstaan<strong>de</strong> grafen isomorf zijn:<br />
G1 G2 G3<br />
1 2 5 6 a b<br />
3 4 7 8 c d<br />
Als twee grafen isomorf zijn, geef dan een bijbehorend isomorfisme. En als twee grafen<br />
niet isomorf zijn, leg dan <strong>uit</strong> waarom zo’n isomorfisme niet kan bestaan.<br />
Oplossing: Isomorfe grafen hebben evenveel punten met <strong>de</strong>zelf<strong>de</strong> gra<strong>de</strong>n. In G2 hebben<br />
alle punten graad 2, in <strong>de</strong> an<strong>de</strong>re twee grafen niet. Dus G2 is niet isomorf met <strong>de</strong> an<strong>de</strong>re twee<br />
grafen. G1 en G3 zijn wel isomorf: een isomorfisme is 1 ↦→ b, 2 ↦→ a, 3 ↦→ c en 4 ↦→ d.<br />
Opgave 4.E Hier is een plattegrond G <strong>van</strong> een dorpje, waarbij <strong>de</strong> straten aangegeven wor<strong>de</strong>n<br />
door lijntjes. Op ie<strong>de</strong>r hoekpunt bevindt zich een kroeg. De kroegen zijn aangegeven door<br />
punten, genummerd <strong>van</strong> 1 t/m 12:<br />
11 12<br />
1 2 3 4 5 6 7<br />
8 9 10<br />
41
Formuleer <strong>de</strong> volgen<strong>de</strong> vragen in termen <strong>van</strong> Hamilton- of Euler-circ<strong>uit</strong>s/pa<strong>de</strong>n en beantwoord<br />
ze:<br />
(i) Is <strong>het</strong> mogelijk, een wan<strong>de</strong>ling te maken waarbij je ie<strong>de</strong>re straat precies één keer doorloopt?<br />
Zo ja, geef dan zo’n wan<strong>de</strong>ling. Zo nee, leg <strong>uit</strong> waarom niet.<br />
Oplossing: Een wan<strong>de</strong>ling waarbij je ie<strong>de</strong>re straat–dus ie<strong>de</strong>r lijntje–precies één keer<br />
doorloopt is een Euler-pad. De vraag is dus eigenlijk of er een Euler-pad bestaat. Met<br />
stelling 4.13 is dit makkelijk te beantwoor<strong>de</strong>n. Hiervoor moeten we <strong>de</strong> gra<strong>de</strong>n <strong>van</strong> <strong>de</strong><br />
kroegen–<strong>de</strong> punten–bepalen.<br />
punt graad punt graad punt graad punt graad<br />
1 2 4 4 7 3 10 3<br />
2 4 5 4 8 4 11 4<br />
3 4 6 4 9 2 12 4<br />
Alleen <strong>de</strong> punten 7 en 10 hebben oneven graad, dus volgens <strong>de</strong> stelling <strong>van</strong> Euler bestaat<br />
er een Euler-pad. Een concreet voorbeeld <strong>van</strong> zo’n pad is: 7, 12, 5, 10, 7, 6, 12, 11, 4,<br />
8, 1, 2, 11, 3, 9, 8, 2, 3, 4, 5, 6, 10.<br />
(ii) Is <strong>het</strong> mogelijk, een wan<strong>de</strong>ling te maken waarbij je ie<strong>de</strong>re straat precies één keer doorloopt<br />
en bovendien begint en eindigt bij kroeg 3? Zo ja, geef dan zo’n wan<strong>de</strong>ling. Zo<br />
nee, leg <strong>uit</strong> waarom niet.<br />
Oplossing: Nu is <strong>de</strong> vraag eigenlijk of er een Euler-cykel bestaat. Het antwoord daarop<br />
komt weer <strong>uit</strong> <strong>de</strong> stelling <strong>van</strong> Euler. Die stelt dat een Euler-cykel alleen bestaat als elk<br />
punt een even graad heeft. We hebben al gezien dat dat hier niet <strong>het</strong> geval is en dus<br />
bestaat er geen Euler-cykel. (En zeker geen die begint en eindigt bij punt 3.)<br />
(iii) Bestaat er een kroegentocht waarin ie<strong>de</strong>re kroeg precies één keer voorkomt? Zo ja, geef<br />
dan zo’n tocht. Zo nee, leg <strong>uit</strong> waarom niet.<br />
Oplossing: Nu gaat <strong>de</strong> wan<strong>de</strong>ling door alle punten en gaat <strong>het</strong> dus om <strong>de</strong> vraag<br />
of er een Hamilton-pad bestaat. Zo’n pad bestaat in<strong>de</strong>rdaad. Neem bijvoorbeeld<br />
12,7,10,6,5,4,11,3,9,8,1,2.<br />
Opgave 4.F Hieron<strong>de</strong>r vind je twee plattegron<strong>de</strong>n <strong>van</strong> huizen.<br />
(i) Teken bij elke plattegrond <strong>de</strong> bijbehoren<strong>de</strong> graaf, waarbij je <strong>de</strong> vertrekken (inclusief <strong>het</strong><br />
b<strong>uit</strong>engebied) door punten voorstelt en <strong>de</strong> <strong>de</strong>uren door lijnen. Be<strong>de</strong>nk dat punten in<br />
een graaf een naam moeten hebben!<br />
Oplossing:<br />
42
a b<br />
d<br />
e<br />
g<br />
c<br />
f<br />
a<br />
e<br />
b<br />
c d<br />
(ii) Zoek voor elk huis <strong>uit</strong> of <strong>het</strong> mogelijk is een rondwan<strong>de</strong>lingetje te maken waarin je ie<strong>de</strong>re<br />
<strong>de</strong>ur precies één keer gebruikt en bij je <strong>uit</strong>gangspunt terugkeert. Verklaar je antwoord.<br />
Oplossing: Omdat <strong>de</strong> <strong>de</strong>uren overeenkomen met <strong>de</strong> lijnen in <strong>de</strong> graaf, wordt hier dus<br />
gevraagd of er een Euler-cykel is. Dus moeten we weer <strong>de</strong> gra<strong>de</strong>n gaan tellen.<br />
a b c d e f g<br />
Eerste huis 4 2 2 2 4 2 4<br />
Twee<strong>de</strong> huis 2 4 2 2 4<br />
In bei<strong>de</strong> huizen hebben alle punten een even graad, dus kun je volgens <strong>de</strong> stelling <strong>van</strong><br />
Euler (4.13) een Euler-cykel maken. Bijvoorbeeld a, g, d, a, b, e, f, c, g, e, a in <strong>het</strong> eerste<br />
huis en e, a, b, c, e, b, d, e in <strong>het</strong> twee<strong>de</strong> huis.<br />
(iii) Zoek voor elk huis <strong>uit</strong> of <strong>het</strong> mogelijk is een rondwan<strong>de</strong>lingetje te maken waarin je ie<strong>de</strong>r<br />
vertrek (en <strong>de</strong> tuin) precies één keer bezoekt en bij je <strong>uit</strong>gangspunt terugkeert. Verklaar<br />
je antwoord.<br />
Oplossing: Omdat <strong>de</strong> vertrekken met <strong>de</strong> punten overeenkomen wordt er nu dus om<br />
een Hamilton-circ<strong>uit</strong> gevraagd. Bij <strong>het</strong> eerste huis is zo’n pad wel mogelijk. Neem<br />
bijvoorbeeld g, d, a, b, e, f, c, g.<br />
In <strong>het</strong> twee<strong>de</strong> huis is zo’n pad niet mogelijk. In een Hamilton-circ<strong>uit</strong> moet namelijk<br />
ie<strong>de</strong>re lijn die aan een punt met graad twee ligt voorkomen (we moeten dat punt immers<br />
in en <strong>uit</strong>). Als we die lijnen ec, cb, ea, ab, ed en db tekenen, zien we dat we <strong>het</strong> circ<strong>uit</strong><br />
niet af kunnen maken. Zowel punt e als b komt in drie <strong>van</strong> <strong>de</strong>ze lijnen voor en in een<br />
Hamilton-circ<strong>uit</strong> mag elk punt maar in twee lijnen voorkomen.<br />
Opgave 4.G Welke <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> grafen hebben een Hamilton-circ<strong>uit</strong>? Verklaar je antwoord.<br />
a<br />
d<br />
g<br />
b<br />
e<br />
h<br />
c<br />
f<br />
i<br />
Oplossing: Bij <strong>de</strong> eerste graaf is er wel een Hamilton-circ<strong>uit</strong> mogelijk, bijvoorbeeld<br />
a, b, c, i, f, e, h, g, d, a:<br />
43<br />
a<br />
d<br />
g<br />
b<br />
e<br />
h<br />
c<br />
f<br />
i
a<br />
d<br />
g<br />
Bij <strong>de</strong> twee<strong>de</strong> graaf is <strong>het</strong> niet mogelijk om een Hamilton-circ<strong>uit</strong> te maken. Zoals we al bij<br />
opgave 4.F hebben gezien, moeten we over elke lijn die aan een punt <strong>van</strong> graad 2 ligt. We<br />
moeten dus over alle horizontale lijnen in <strong>het</strong> mid<strong>de</strong>n. Als we bij een punt links beginnen,<br />
gaan we dus eerst naar rechts, dan weer naar links, dan weer naar rechts, maar dan kunnen we<br />
helaas niet meer terug terwijl dat wel zou moeten voor een Hamilton-circ<strong>uit</strong>. Een Hamiltonpad<br />
is natuurlijk wel mogelijk: a, b, c, f, e, d, g, h, i.<br />
Opgave 4.H Zij G <strong>de</strong> kubus-graaf, met als P <strong>de</strong> verzameling <strong>van</strong> <strong>de</strong> acht hoekpunten, en<br />
als L <strong>de</strong> verzameling <strong>van</strong> <strong>de</strong> twaalf ribben.<br />
(i) Is G planair?<br />
Oplossing: Hieron<strong>de</strong>r zie je twee representaties <strong>van</strong> <strong>de</strong> kubus-graaf. Dat <strong>de</strong> graaf<br />
planair is volgt overdui<strong>de</strong>lijk <strong>uit</strong> <strong>het</strong> twee<strong>de</strong> plaatje.<br />
H G<br />
E F<br />
D C<br />
A B<br />
b<br />
e<br />
h<br />
c<br />
f<br />
i<br />
E F<br />
H G<br />
D C<br />
A B<br />
(ii) Heeft G een Hamilton-circ<strong>uit</strong>?<br />
Oplossing: Ja, kijk maar naar A, B, F, E, H, G, C, D, A:<br />
E F<br />
H G<br />
D C<br />
A B<br />
(iii) Heeft G een Euler-circ<strong>uit</strong>?<br />
Oplossing: Nee, <strong>de</strong> graaf G heeft geen Euler-circ<strong>uit</strong> want alle punten hebben oneven<br />
graad terwijl <strong>de</strong> stelling <strong>van</strong> Euler juist zegt dat alle punten even graad moeten hebben<br />
wil er een Euler-circ<strong>uit</strong> bestaan.<br />
Verklaar telkens je antwoord!<br />
Opgave 4.I Laat zien dat <strong>de</strong> Petersen-graaf een Hamilton-pad heeft, maar geen Hamiltoncykel.<br />
Oplossing: Een Hamilton-pad is bijvoorbeeld ab, cd, ae, bc, <strong>de</strong>, ac, bd, ce, ad, be. Omdat er<br />
geen lijn is tussen ab en be kan dit pad in elk geval niet tot een circ<strong>uit</strong> wor<strong>de</strong>n <strong>uit</strong>gebreid.<br />
Dat er in <strong>het</strong> algemeen geen Hamilton-circ<strong>uit</strong> in <strong>de</strong> Petersen-graaf zit is moeilijk te bewijzen.<br />
Hier geven we een bewijs gebaseerd op kleuring. Dit moet te begrijpen zijn, maar<br />
44
<strong>het</strong> hoeft <strong>uit</strong>eraard niet op een toets of tentamen gereproduceerd te wor<strong>de</strong>n. We gaan <strong>de</strong><br />
Petersen-graaf in drie kleuren proberen te ver<strong>de</strong>len. Dat doen we door <strong>de</strong> lijnen die op <strong>het</strong><br />
circ<strong>uit</strong> liggen afwisselend rood en groen te kleuren en <strong>de</strong> lijnen die niet op <strong>het</strong> circ<strong>uit</strong> liggen<br />
blauw te kleuren. De Petersen-graaf heeft 10 punten en 15 lijnen. Een Hamilton-circ<strong>uit</strong> heeft<br />
dus 10 lijnen. We vin<strong>de</strong>n <strong>het</strong> een goe<strong>de</strong> kleuring als geen enkel punt twee lijnen met <strong>de</strong>zelf<strong>de</strong><br />
kleuren heeft. Dit betekent dus meteen dat er 5 ro<strong>de</strong>, 5 groene en 5 blauwe lijnen moeten<br />
zijn. Het bewijs dat er geen Hamilton-circ<strong>uit</strong> is, komt er op neer dat we laten zien dat zo’n<br />
kleuring niet bestaat.<br />
We bewijzen <strong>het</strong> <strong>uit</strong> <strong>het</strong> ongerijm<strong>de</strong>: we nemen aan dat <strong>het</strong> wel waar is en lei<strong>de</strong>n dan een<br />
tegenspraak af. Stel dat zo’n kleuring wel bestaat. Dan weten we zeker dat er <strong>van</strong> <strong>de</strong> vijf<br />
b<strong>uit</strong>enste lijnen ab<strong>de</strong>, <strong>de</strong>bc, bcae, aecd en cdab er minimaal twee <strong>de</strong>zelf<strong>de</strong> kleur hebben. (Om<br />
<strong>de</strong> simpele re<strong>de</strong>n dat je nu eenmaal geen vijf verschillen<strong>de</strong> kleuren hebt.) Zeg dat <strong>de</strong>bc en<br />
aecd allebei rood zijn. Door <strong>de</strong> graaf te draaien, kun je inzien dat <strong>het</strong> niet <strong>uit</strong>maakt welke<br />
twee lijnen je rood kiest. Ver<strong>de</strong>r kun je ook nagaan dat <strong>het</strong> niet <strong>uit</strong>maakt welke kleur je kiest.<br />
Deze twee ro<strong>de</strong> lijnen betekenen dat <strong>de</strong> lijn bcae automatisch een an<strong>de</strong>re kleur heeft. Zeg<br />
groen. Maar dat betekent dan ook meteen dat <strong>de</strong> twee lijnen bcad en aebd blauw moeten zijn.<br />
ab<br />
<strong>de</strong> ce<br />
cd<br />
ac be<br />
ad bd<br />
bc ae<br />
Kijken we nu ver<strong>de</strong>r in <strong>de</strong> b<strong>uit</strong>enste lijnen dan zien we dat ofwel <strong>de</strong> lijn ab<strong>de</strong> groen en <strong>de</strong> lijn<br />
cdab blauw moet zijn ofwel net an<strong>de</strong>rsom. In elk geval betekent dat dat <strong>de</strong> lijn abce rood<br />
moet zijn. De an<strong>de</strong>re twee kleuren zijn <strong>uit</strong> punt ab immers al gebruikt.<br />
ab<br />
<strong>de</strong> ce<br />
cd<br />
ac be<br />
ad bd<br />
bc ae<br />
Maar dan hebben we een probleem. De lijn cead moet groen zijn omdat hij tussen een ro<strong>de</strong><br />
en een blauwe lijn inzit. Maar net zo moet <strong>de</strong> lijn cebd groen zijn. En dan komen er dus twee<br />
groene en een ro<strong>de</strong> lijn samen in <strong>het</strong> punt ce.<br />
45
ab<br />
<strong>de</strong> ce<br />
cd<br />
ac be<br />
ad bd<br />
bc ae<br />
En dat mocht niet bij een goe<strong>de</strong> kleuring. Dus bestaat zo’n kleuring niet. En dus zit er ook<br />
geen Hamilton-circ<strong>uit</strong> in <strong>de</strong> Petersen-graaf.<br />
Opgave 4.J Bepaal <strong>het</strong> kleurgetal <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> grafen.<br />
Oplossing: De standaardtechniek om te laten zien dat een (eindige) graaf een bepaald<br />
kleurgetal heeft, is om zo’n kleuring te geven. En vervolgens dient dan te wor<strong>de</strong>n <strong>uit</strong>gelegd<br />
waarom <strong>het</strong> niet met min<strong>de</strong>r kleuren kan.<br />
Het is dui<strong>de</strong>lijk dat <strong>de</strong> linkergraaf niet met één kleur gekleurd kan wor<strong>de</strong>n, dus <strong>het</strong> kleurgetal<br />
is 2. Bij <strong>de</strong> rechtergraaf kunnen we in <strong>het</strong> mid<strong>de</strong>n <strong>de</strong> K4 zien zitten. Maar in <strong>de</strong> K4 zijn alle<br />
punten buren <strong>van</strong> elkaar en dus zijn daar vier kleuren voor nodig. En dus is <strong>het</strong> kleurgetal<br />
<strong>van</strong> <strong>de</strong> hele graaf ook 4.<br />
Opgave 4.K Laat zien dat als een bipartite graaf een Hamilton-pad toelaat <strong>het</strong> aantal ro<strong>de</strong><br />
en <strong>het</strong> aantal blauwe punten hoogstens één verschilt.<br />
46
Oplossing: Een bipartite graaf kun je altijd op<strong>de</strong>len in een aantal ro<strong>de</strong> punten en een<br />
aantal blauwe punten waarbij alle lijnen telkens een rood en een blauw punt met elkaar<br />
verbin<strong>de</strong>n. Een Hamilton-pad doet alle punten precies één keer aan. In een bipartite graaf<br />
betekent dat dat zo’n Hamilton-pad afwisselend een rood en een blauw punt aandoet, want<br />
er zijn immers geen directe verbindingen tussen punten met <strong>de</strong>zelf<strong>de</strong> kleur. Begin je met een<br />
rood punt dan eindig je ofwel met een blauw punt ofwel weer met een rood punt. In <strong>het</strong><br />
eerste geval heb je precies evenveel ro<strong>de</strong> als blauwe punten. In <strong>het</strong> twee<strong>de</strong> geval heb je exact<br />
één rood punt meer dan dat je blauwe punten hebt. Uiteraard werkt <strong>het</strong> argument <strong>het</strong>zelf<strong>de</strong><br />
als je begonnen was met een blauw punt.<br />
Opgave 4.L Op <strong>de</strong> Volksuniversiteit wor<strong>de</strong>n er heel wat vreem<strong>de</strong> talen aangebo<strong>de</strong>n: Arabisch,<br />
Bulgaars, Chinees, Deens, Egyptisch, Fries en Grieks. Bij <strong>het</strong> maken <strong>van</strong> <strong>het</strong> rooster<br />
voor <strong>de</strong> cursussen, moet <strong>de</strong> roostermaker met twee zaken rekeninghou<strong>de</strong>n:<br />
• Het gebouw met tien lokalen kan alleen in zijn geheel gehuurd wor<strong>de</strong>n, dus hoe meer cursussen<br />
er parallel gegeven kunnen wor<strong>de</strong>n, hoe goedkoper <strong>het</strong> voor <strong>de</strong> Volksuniversiteit<br />
is.<br />
• Sommige stu<strong>de</strong>nten hebben zich voor verschillen<strong>de</strong> cursussen ingeschreven en die betreffen<strong>de</strong><br />
talen mogen dus niet tegelijk gegeven wor<strong>de</strong>n. In on<strong>de</strong>rstaan<strong>de</strong> tabel betekent<br />
een ∗ op een bepaal<strong>de</strong> positie, dat <strong>de</strong> taal <strong>uit</strong> die rij niet mag samen vallen met <strong>de</strong> taal<br />
<strong>uit</strong> die kolom.<br />
A B C D E F G<br />
A * * * *<br />
B * * * * *<br />
C * * * *<br />
D * * * *<br />
E *<br />
F * * *<br />
G * * *<br />
Hoeveel verschillen<strong>de</strong> lesblokken zal <strong>de</strong> roostermaker gebruiken om aan bei<strong>de</strong> eisen te voldoen?<br />
Oplossing: Het minimale aantal verschillen<strong>de</strong> lesblokken komt overeen met <strong>het</strong> kleurgetal<br />
<strong>van</strong> <strong>de</strong> graaf waarbij <strong>de</strong> punten <strong>de</strong> talen weergeven en <strong>de</strong> lijnen aangeven welke talen er niet<br />
tegelijk mogen wor<strong>de</strong>n gegeven.<br />
We beginnen bij taal A en lopen door <strong>de</strong> tabel heen om alle lijnen te bepalen en zodra we<br />
weten dat we zeker een nieuwe kleur nodig hebben wijzen we zo’n kleur toe aan een taal. Op<br />
grond <strong>van</strong> symmetrie hoeven we alleen <strong>de</strong> helft rechtsboven te bekijken. Deze metho<strong>de</strong> zorgt<br />
ervoor dat we een minimale kleuring krijgen.<br />
• Taal A moet een kleur hebben: zwart.<br />
• A en B mogen niet samenvallen, dus B moet een an<strong>de</strong>re kleur hebben: rood.<br />
• A en C mogen niet samenvallen, dus C is niet zwart, maar kan misschien nog wel rood<br />
zijn.<br />
• A en D mogen niet samenvallen, dus D is niet zwart, maar kan misschien nog wel rood<br />
zijn.<br />
47
• A en G mogen niet samenvallen, dus G is niet zwart, maar kan misschien nog wel rood<br />
zijn.<br />
• B en C mogen niet samenvallen, dus C is niet zwart en niet rood, dus C moet een nieuwe<br />
kleur hebben: groen.<br />
• B en D mogen niet samenvallen, dus D is niet zwart en niet rood, maar kan misschien<br />
nog wel groen zijn.<br />
• B en E mogen niet samenvallen, dus E is niet rood, maar kan misschien nog wel zwart<br />
of groen zijn.<br />
• B en G mogen niet samenvallen, dus G is niet zwart en niet rood, maar kan misschien<br />
nog wel groen zijn.<br />
• C en D mogen niet samenvallen, dus D is niet zwart, niet rood en niet groen, dus D<br />
moet een nieuwe kleur krijgen: blauw.<br />
• C en F mogen niet samenvallen, dus F is niet groen, maar kan misschien nog wel zwart,<br />
rood of blauw zijn.<br />
• D en F mogen niet samenvallen, dus F is niet groen en niet blauw, maar kan misschien<br />
nog wel zwart of rood zijn.<br />
• Omdat E alleen maar niet mag samenvallen met B, weten we dat E zwart, groen of<br />
blauw mag zijn. We kiezen zwart.<br />
• F en G mogen niet samenvallen, dus G is niet zwart, niet rood en heeft ook niet <strong>de</strong>zelf<strong>de</strong><br />
kleur als F.<br />
• Er zijn ver<strong>de</strong>r geen beperkingen meer, dus hebben we nog wat vrijheid om <strong>de</strong> kleuren<br />
<strong>van</strong> F en G te kiezen. Zeg F wordt zwart en G groen.<br />
Uitein<strong>de</strong>lijk is <strong>de</strong> graaf dus met vier kleuren gekleurd: zwart voor Arabisch, Egyptisch en<br />
Fries, rood voor Bulgaars, groen voor Chinees en Grieks en blauw voor Deens.<br />
G F<br />
B C<br />
De roostermaker heeft dus vier verschillen<strong>de</strong> lesblokken nodig.<br />
Opgave 4.M Definieer met recursie <strong>de</strong> rij an door:<br />
A<br />
a0 = 3<br />
E<br />
D<br />
an+1 = a 2 n − 2an voor n ≥ 0<br />
48
Geef <strong>de</strong> waar<strong>de</strong> <strong>van</strong> a5.<br />
Oplossing:<br />
a1 = a 2 0 − 2a0 = 3 2 − 2 · 3 = 3<br />
a2 = a 2 1 − 2a1 = 3 2 − 2 · 3 = 3<br />
a3 = a 2 2 − 2a2 = 3 2 − 2 · 3 = 3<br />
a4 = a 2 3 − 2a3 = 3 2 − 2 · 3 = 3<br />
a5 = a 2 4 − 2a4 = 3 2 − 2 · 3 = 3<br />
Opgave 4.N Definieer met recursie <strong>de</strong> rij bn door:<br />
Geef <strong>de</strong> waar<strong>de</strong> <strong>van</strong> b5.<br />
Oplossing:<br />
b0 = 4<br />
bn+1 = b 2 n − 2bn voor n ≥ 0<br />
b1 = b 2 0 − 2b0 = 4 2 − 2 · 4 = 16 − 8 = 8<br />
b2 = b 2 1 − 2b1 = 8 2 − 2 · 8 = 64 − 16 = 48<br />
b3 = b 2 2 − 2b2 = 48 2 − 2 · 48 = 2304 − 96 = 2208<br />
b4 = b 2 3 − 2b3 = 2208 2 − 2 · 2208 = 4875264 − 4416 = 4870848<br />
b5 = b 2 4 − 2b4 = 4870848 2 − 2 · 4870848 = 23725160239104 − 9741696 = 23725150497408<br />
Opgave 4.O Bekijk <strong>de</strong> rij cn ge<strong>de</strong>finieerd door:<br />
1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843, 1364, 2207, 3571, 5778, 9349, . . .<br />
Geef een recursieve formule voor cn.<br />
Oplossing: Vanaf <strong>het</strong> <strong>de</strong>r<strong>de</strong> getal is <strong>het</strong> telkens zo dat <strong>de</strong> twee voorgaan<strong>de</strong> getallen bij<br />
elkaar opgeteld <strong>het</strong> nieuwe getal geven. Er moeten dus twee startwaar<strong>de</strong>n gegeven wor<strong>de</strong>n en<br />
daarna kan <strong>de</strong> recursie gebruikt wor<strong>de</strong>n.<br />
c0 = 1<br />
c1 = 3<br />
cn+1 = cn + cn−1 voor n ≥ 1<br />
Opgave 4.P De Maple-programma’s <strong>uit</strong> voorbeeld 4.23 zijn niet erg robuust. Indien er voor<br />
m een niet natuurlijk getal of 0 wordt gebruikt, zal Maple in een oneindige lus terechtkomen.<br />
Probeer <strong>de</strong> programma’s zo aan te passen dat er een juiste <strong>uit</strong>komst wordt bepaald indien<br />
n, m ∈ Z.<br />
Oplossing: Als <strong>het</strong> goed is kun je volgen wat on<strong>de</strong>rstaan<strong>de</strong> programma’s doen. Wat<br />
betreft syntax kan <strong>het</strong> in Maple overigens wel korter wor<strong>de</strong>n opgeschreven, maar dat was hier<br />
niet <strong>het</strong> doel.<br />
49
multZ := proc (n ,m)<br />
i f m=0<br />
then 0<br />
else<br />
i f m
Opgave 4.R Gegeven is een rij an ge<strong>de</strong>finieerd door<br />
a0 = 0<br />
an+1 = an + 2n + 1 voor n ≥ 0<br />
Bewijs dat voor elke n ∈ N geldt: an = n 2 .<br />
Oplossing: We beginnen weer met <strong>het</strong> expliciet opschrijven <strong>van</strong> ons predikaat P (n).<br />
IH: Definieer P (n) als: an = n 2 .<br />
Basisstap n = 0: P (0) geldt want a0 = 0 en 0 2 = 0.<br />
Inductiestap: We nemen aan dat P (n) geldt. Dus an = n 2 . Nu willen we laten zien dat<br />
P (n + 1) ook geldt. We moeten dus laten zien dat<br />
an+1 = (n + 1) 2<br />
Zoals gebruikelijk beginnen we <strong>de</strong> linkerkant <strong>van</strong> <strong>de</strong>ze vergelijking te herschrijven om<br />
<strong>uit</strong>ein<strong>de</strong>lijk op <strong>de</strong> rechterkant <strong>uit</strong> te komen.<br />
an+1 = an + 2n + 1 (<strong>de</strong>finitie an+1)<br />
= n 2 + 2n + 1 (IH)<br />
= (n + 1) 2 (rekenregels)<br />
En dat was precies wat we moesten laten zien.<br />
Dus geldt an = n 2 in<strong>de</strong>rdaad voor alle n ∈ N.<br />
Opgave 4.S In opgave 4.C heb je bewezen dat voor elke n ≥ 1 geldt dat <strong>de</strong> graaf Kn precies<br />
1<br />
2<br />
n(n − 1) lijnen heeft. Bewijs dat nu nog eens, maar dan met inductie naar n.<br />
Oplossing: Het bewijs volgt <strong>het</strong> gebruikelijke patroon.<br />
IH: Definieer P (n) als: Kn heeft precies 1<br />
2n(n − 1) lijnen.<br />
Basisstap n = 1: P (1) geldt want <strong>de</strong> K1 bestaat <strong>uit</strong> één punt en nul lijnen. En natuurlijk<br />
· 1 · (1 − 1) = 0.<br />
geldt ook 1<br />
2<br />
Inductiestap: Neem aan dat P (n) geldt. Dan willen we laten zien dat P (n + 1) ook geldt.<br />
We moeten dus laten zien dat <strong>de</strong> Kn+1 precies 1<br />
2 (n + 1)n lijnen heeft. We doen dit door<br />
Kn+1 op te bouwen <strong>uit</strong> Kn. Het is niet zo moeilijk in te zien dat <strong>de</strong> Kn+1 is opgebouwd<br />
<strong>uit</strong> Kn en één extra punt, waarbij er <strong>van</strong><strong>uit</strong> dat extra punt precies één lijn loopt naar<br />
n(n − 1) lijnen heeft. Maar dan<br />
elk punt <strong>van</strong> Kn. Met <strong>de</strong> IH weten we dat Kn precies 1<br />
2<br />
51
is <strong>het</strong> aantal lijnen <strong>van</strong> Kn+1 gelijk aan:<br />
n + 1<br />
2<br />
n(n − 1) = 2<br />
2<br />
1<br />
n + n(n − 1) (noemers gelijkmaken)<br />
2<br />
= 2n n(n − 1)<br />
+ (breuken vermenigvuldigen)<br />
2 2<br />
= 2n + n(n − 1)<br />
(breuken optellen)<br />
2<br />
= 2n + n2 − n<br />
(haakjes <strong>uit</strong>werken)<br />
2<br />
= n2 + n<br />
(vereenvoudigen)<br />
2<br />
= (n + 1)n<br />
(b<strong>uit</strong>en haakjes halen)<br />
2<br />
= 1<br />
(n + 1)n (herschrijven)<br />
2<br />
En dat was precies wat we moesten bewijzen.<br />
Dus voor alle n ≥ 1 geldt P (n).<br />
Opgave 4.T Bewijs met inductie dat voor alle n ∈ N, 2 n ≥ n.<br />
Oplossing: We gaan met inductie bewijzen dat voor alle n ∈ N 2 n ≥ n.<br />
IH: Definieer P (n) als: 2 n ≥ n.<br />
Basisstap n = 0: P (0) geldt want 2 0 = 1 ≥ 0.<br />
Inductiestap: Neem aan dat P (n) geldt. Dan willen we laten zien dat P (n + 1) ook klopt:<br />
2 n+1 P (n)<br />
n<br />
= 2 · 2 ≥ 2 · n<br />
Dus nu is <strong>de</strong> vraag of 2n ≥ n + 1? Dat geldt niet voor alle n ∈ N. Het geldt alleen<br />
voor n ≥ 1. Dus <strong>uit</strong> P (1) kunnen we in<strong>de</strong>rdaad P (2) bewijzen en <strong>uit</strong> P (2) weer P (3)<br />
en ver<strong>de</strong>r. Maar <strong>uit</strong> P (0) kunnen we dus op <strong>de</strong>ze manier nog niet bewijzen dat P (1)<br />
geldt! Dus onze basisstap schiet te kort. Gelukkig kunnen we dat oplossen door een<br />
extra basisstap toe te voegen:<br />
Basisstap n = 1: P (1) geldt want 2 1 = 2 ≥ 1.<br />
We hebben nu P (0) en P (1) apart bewezen en vervolgens met inductie P (n) voor n ≥ 2.<br />
Maar dan hebben we dus voor alle n ∈ N bewezen dat 2 n ≥ n.<br />
Opgave 4.U We hebben al een mooie formule voor <strong>de</strong> som <strong>van</strong> <strong>de</strong> rij<br />
1 + 2 + 3 + 4 + 5 + · · · + n =<br />
Wat is <strong>het</strong> verband met <strong>het</strong> volgen<strong>de</strong> plaatje?<br />
• • • • •<br />
• • • • ◦<br />
• • • ◦ ◦<br />
• • ◦ ◦ ◦<br />
• ◦ ◦ ◦ ◦<br />
◦ ◦ ◦ ◦ ◦<br />
52<br />
(n + 1)n<br />
.<br />
2
Oplossing: Denk aan oppervlakten. Wat is <strong>de</strong> formule voor <strong>de</strong> oppervlakte <strong>van</strong> een<br />
rechthoek? Wat is hier <strong>de</strong> breedte en wat is hier <strong>de</strong> lengte? En waarom moet je <strong>het</strong> door<br />
twee <strong>de</strong>len?<br />
Opgave 4.V Hoeveel rijtjes kunnen we maken <strong>van</strong> lengte n met daarin alleen <strong>de</strong> getallen 1<br />
tot en met 5? Dit kunnen we ook weer recursief oplossen. Noem <strong>het</strong> aantal rijtjes <strong>van</strong> lengte<br />
n an. Een rijtje <strong>van</strong> lengte 1 kunnen we op vijf manieren maken, dus a1 = 5. Een rijtje <strong>van</strong><br />
lengte n+1 kunnen we maken door eerst een rijtje <strong>van</strong> lengte n te maken en daar een element<br />
achter te zetten. Dus an+1 := 5 · an. Herinner je nu even <strong>de</strong> <strong>de</strong>finitie <strong>van</strong> machtsverheffen.<br />
Bewijs met inductie dat voor alle n, an = 5 n .<br />
Oplossing: Voor alle dui<strong>de</strong>lijkheid: <strong>het</strong> gaat hier om rijtjes waar <strong>de</strong> getallen 1 tot en met<br />
5 best dubbel in mogen voorkomen. Dat kun je bijvoorbeeld al aflei<strong>de</strong>n <strong>uit</strong> <strong>het</strong> feit dat er ook<br />
een rijtje <strong>van</strong> lengte 6 gemaakt moet kunnen wor<strong>de</strong>n.<br />
IH: Definieer P (n) als an = 5 n .<br />
Basisstap n = 1: a1 = 5 = 5 1 dus P (1) klopt.<br />
Inductiestap: Neem aan dat P (n) geldt. We moeten nu bewijzen dat ook P (n + 1) geldt.<br />
an+1 = 5 · an<br />
P (n)<br />
= 5 · 5 n = 5 n+1<br />
Dus in<strong>de</strong>rdaad kunnen we P (n + 1) aflei<strong>de</strong>n <strong>uit</strong> P (n).<br />
Dus voor alle n ∈ N, n ≥ 1 geldt an = 5 n .<br />
Merk op dat we nu alleen maar naar rijtjes <strong>van</strong> lengte 1 of meer hebben gekeken. Als je<br />
echter ook alle mogelijke rijtjes <strong>van</strong> lengte 0 meeneemt, blijkt <strong>het</strong> ook te kloppen. Het enige<br />
dat veran<strong>de</strong>rt in dit bewijs is dat <strong>de</strong> basis bij n = 0 zit. Controleer zelf dat <strong>het</strong> voor n = 0<br />
in<strong>de</strong>rdaad ook geldt. (Of met an<strong>de</strong>re woor<strong>de</strong>n: be<strong>de</strong>nk hoeveel verschillen<strong>de</strong> rijtjes <strong>van</strong> lengte<br />
0 bestaan.)<br />
Opgave 4.W Bewijs met inductie dat 1 + 3 + 5 + 7 + · · · + (2n − 1) = n 2 . Wat is <strong>het</strong> verband<br />
met <strong>het</strong> volgen<strong>de</strong> plaatje?<br />
◦ • ◦ • ◦<br />
• • ◦ • ◦<br />
◦ ◦ ◦ • ◦<br />
• • • • ◦<br />
◦ ◦ ◦ ◦ ◦<br />
Oplossing: Definieer <strong>de</strong> rij sn recursief als volgt<br />
s1 = 1<br />
sn = sn−1 + 2n − 1 voor n ≥ 2<br />
Dus sn = 1 + 3 + . . . + (2n − 1). We moeten met inductie bewijzen dat sn = n 2 .<br />
IH: Definieer P (n) als sn = n 2 .<br />
Basisstap n = 1: s1 = 1 = 1 2 , dus P (1) geldt.<br />
53
Inductiestap: Uit P (n) gaan we P (n + 1) bewijzen.<br />
sn+1 = sn + 2(n + 1) − 1<br />
P (n)<br />
= n 2 + 2(n + 1) − 1 = n 2 + 2n + 2 − 1 = n 2 + 2n + 1 = (n + 1) 2<br />
En dus kunnen we P (n + 1) in<strong>de</strong>rdaad bewijzen als P (n) geldt.<br />
En dus weten we nu dat voor n ∈ N, n ≥ 1 1 + 3 + . . . + (2n − 1) = n 2 . (Merk op dat <strong>het</strong> bij<br />
<strong>de</strong>ze opgave geen zin heeft om over n = 0 te praten.)<br />
In <strong>het</strong> plaatje zou je weer <strong>de</strong> link met oppervlakten moeten kunnen zien.<br />
Opgave 4.X Bewijs dat er in <strong>de</strong> 2e △vP aan <strong>de</strong> rand allemaal eentjes staan.<br />
Oplossing: De punten op <strong>de</strong> rand hebben ofwel coördinaten (n, 0) ofwel (n, n). Per<br />
<strong>de</strong>finitie <strong>van</strong> 2e △vP staat er dus n<br />
n<br />
0 respectievelijk n . En die zijn bei<strong>de</strong> per <strong>de</strong>finitie 1<br />
voor elke n.<br />
Opgave 4.Y Laat zien dat ook <strong>de</strong> 4e △vP gelijk is aan <strong>de</strong> 1e △vP.<br />
Oplossing: Voordat we dit formeel gaan bewijzen met inductie, eerst informeel <strong>het</strong><br />
achterliggen<strong>de</strong> i<strong>de</strong>e. In <strong>de</strong> 4e △vP staat op coördinaat (n, k) <strong>de</strong> coëfficiënt <strong>van</strong> x k in <strong>de</strong><br />
veelterm (1 + x) n . Wat we nu straks formeel willen bewijzen is dat <strong>de</strong> term in 4e △vP op<br />
positie (n+1, k) kan wor<strong>de</strong>n verkregen door <strong>de</strong> getallen op posities (n, k−1) en (n, k) bij elkaar<br />
op te tellen, precies zoals in <strong>de</strong> 1e △vP. Dat kunnen we doen door <strong>de</strong> veelterm (1 + x) n+1<br />
te ontbin<strong>de</strong>n tot (1 + x)(1 + x) n wat natuurlijk weer gelijk is aan (1 + x) n + x(1 + x n ). Hoe<br />
kun je nu <strong>de</strong> coëfficiënt <strong>van</strong> x k bepalen in <strong>de</strong>ze veelterm? Nou, die krijg je natuurlijk door <strong>de</strong><br />
coëfficient <strong>van</strong> x k in <strong>de</strong> veelterm <strong>van</strong> (1 + x) n te nemen en die op te tellen bij <strong>de</strong> coëfficiënt<br />
<strong>van</strong> x k in <strong>de</strong> veelterm x(1 + x) n . Maar die laatste is natuurlijk precies <strong>de</strong> coëfficiënt <strong>van</strong> x k−1<br />
in <strong>de</strong> veelterm (1 + x) n . En daarmee hebben we precies <strong>de</strong> getallen gevon<strong>de</strong>n die volgens <strong>de</strong><br />
4e △vP op <strong>de</strong> posities (n, k) en (n, k − 1) staan.<br />
Nu <strong>het</strong> formele bewijs. We laten zien dat alle coëfficiënten in <strong>de</strong> n-e rij <strong>van</strong> 1e △vP gelijk<br />
zijn aan die in <strong>de</strong> n-e rij <strong>van</strong> 4e △vP. Door vervolgens inductie op n toe te passen, kunnen<br />
we dus <strong>uit</strong>ein<strong>de</strong>lijk voor elke rij bewijzen dat <strong>de</strong> entries <strong>het</strong>zelf<strong>de</strong> zijn. Voordat we <strong>het</strong> bewijs<br />
<strong>uit</strong>schrijven introduceren we eerst een afkorting voor <strong>de</strong> coëfficiënt <strong>van</strong> x k in een veelterm<br />
f(x):<br />
[f(x)] |k<br />
Twee prettige eigenschappen <strong>van</strong> <strong>de</strong>ze operatie zijn:<br />
[f(x) + g(x)] |k = [f(x)] |k + [g(x)] |k (1)<br />
[x · f(x)] |k = [f(x)] |k−1 als k > 0 (2)<br />
Bere<strong>de</strong>neer zelf dat (1) geldt. Hier bewijzen we (2) Neem aan dat <strong>de</strong>g(f(x)) = p.<br />
[x · f(x)] |k<br />
<br />
= x<br />
=<br />
<br />
[f(x)] |0 + [f(x)] |1 x + · · · + [f(x)] |k−1 x k−1 + · · · + [f(x)] |p x p<br />
|k<br />
<br />
[f(x)] |0 x + [f(x)] |1 x 2 + · · · + [f(x)] |k−1 x k + · · · + [f(x)] |p x p+1<br />
= [f(x)] |k−1<br />
Ga voor jezelf na dat geldt: [f(x) + g(x)] |k = [f(x)] |k + [g(x)] |k .<br />
54<br />
|k
Defineer nu <strong>de</strong> bewering P (n) alsvolgt:<br />
P (n) := ∀k ∈ {0, . . . , n}[4e △vP (n,k) = 1e △vP (n,k)]<br />
De stelling die we nu moeten bewijzen is: P (n) geldt voor alle n ∈ N. Zoals gezegd gaat <strong>het</strong><br />
bewijs met inductie naar n.<br />
Basisstap n = 0: We moeten dus bewijzen dat voor alle k ∈ {0} geldt dat 4e △vP (0,k) =<br />
1e △vP (0,k), dus alleen maar voor k = 0. Bewijs:<br />
Dus voor n = 0 geldt P (n).<br />
4e △vP (0,0) = (1 + x) 0<br />
|0<br />
= x 0<br />
|0<br />
= 1<br />
= 1e △vP (0,0)<br />
Inductiestap: Uit P (n) gaan we P (n + 1) bewijzen. We moeten nu dus laten zien dat voor<br />
alle k ∈ {0, . . . , n + 1} geldt dat<br />
4e △vP (n+1,k) = 1e △vP (n+1,k)<br />
We maken een gevalson<strong>de</strong>rscheiding voor k.<br />
• k = 0. Bewijs:<br />
En dus geldt (3) voor k = 0.<br />
• 0 < k < n + 1. Bewijs:<br />
4e △vP (n+1,0) = (1 + x) n+1<br />
|0<br />
n+1 = [1 + x] |0<br />
= 1 n+1<br />
= 1<br />
= 1e △vP (n+1,0)<br />
4e △vP (n+1,k) = (1 + x) n+1<br />
|k<br />
(4)<br />
= [(1 + x)(1 + x) n ] |k (5)<br />
(3)<br />
= [(1 + x) n + x(1 + x) n ] |k (6)<br />
= [(1 + x) n ] |k + [x(1 + x) n ] |k (7)<br />
= [(1 + x) n ] |k + [(1 + x) n ] |k−1 (8)<br />
= 4e △vP (n,k) + 4e △vP (n,k−1) (9)<br />
= 1e △vP (n,k) + 1e △vP (n,k−1) (10)<br />
= 1e △vP (n+1,k) (11)<br />
Merk op dat (4) niets an<strong>de</strong>rs is dan <strong>de</strong> <strong>de</strong>finitie <strong>van</strong> 4e △vP. Ver<strong>de</strong>r zijn (5) en (6)<br />
<strong>het</strong> resultaat <strong>van</strong> een eenvoudige berekening. En (7) volgt <strong>uit</strong> (6) en eigenschap<br />
55
(1). Ver<strong>de</strong>r volgt (8) <strong>uit</strong> (7) en eigenschap (2). En (9) is niets an<strong>de</strong>rs dan twee keer<br />
<strong>de</strong> <strong>de</strong>finitie <strong>van</strong> 4e △vP toepassen. Pas in (10) passen we <strong>de</strong> inductiehypothese<br />
toe, maar dan wel meteen twee keer. En tot slot is (11) een toepassing <strong>van</strong> <strong>de</strong><br />
<strong>de</strong>finitie <strong>van</strong> 1e △vP. Alles bij elkaar hebben we nu bewezen dat (3) geldt voor<br />
0 < k < n + 1.<br />
• k = n + 1. Bewijs:<br />
En dus geldt (3) voor k = n + 1.<br />
4e △vP (n+1,n+1) = (1 + x) n+1<br />
=<br />
|n+1<br />
n+1 [1 + x] |1<br />
= 1 n+1<br />
= 1<br />
= 1e △vP (n+1,n+1)<br />
En dus geldt (3) voor alle k ∈ {0, . . . , n + 1}. Maar dan geldt dus dat P (n + 1) geldt.<br />
Merk overigens op dat je voor <strong>de</strong> gevallen k = 0 en k = n + 1 helemaal geen inductie<br />
gebruikt!<br />
En dus is nu voor alle n ∈ N bewezen dat P (n) geldt.<br />
Opgave 4.Z Laat zien hoe je in <strong>de</strong> driehoek <strong>van</strong> Pascal kunt vin<strong>de</strong>n hoeveel manieren er<br />
zijn om vier objecten <strong>uit</strong> een collectie <strong>van</strong> zes objecten te kiezen. Wat is <strong>de</strong> notatie voor <strong>de</strong><br />
bijbehoren<strong>de</strong> binomiaalcoëfficiënt?<br />
Oplossing: Voor <strong>de</strong> n-e rij <strong>uit</strong> <strong>de</strong> driehoek <strong>van</strong> Pascal geldt dat <strong>het</strong> m-e getal aangeeft op<br />
hoeveel manier je m − 1 objecten <strong>uit</strong> een collectie <strong>van</strong> n − 1 objecten kunt pakken. Be<strong>de</strong>nk<br />
dat <strong>de</strong> eerste 1 telkens betekent dat je op precies één manier ‘niets’ kunt pakken <strong>uit</strong> een serie<br />
objecten. Dat klinkt misschien gek, maar probeer <strong>het</strong> maar als volgt te begrijpen. Stel dat<br />
je op twee manieren ‘niets’ kunt pakken. Dan moet je verschil kunnen aangeven tussen die<br />
twee resultaten. Maar omdat je niets gepakt hebt is er geen verschil te zien. En dus was <strong>het</strong><br />
eigenlijk <strong>de</strong>zelf<strong>de</strong> manier.<br />
Hier moet je dus <strong>het</strong> vijf<strong>de</strong> getal <strong>uit</strong> <strong>de</strong> zeven<strong>de</strong> rij pakken:<br />
1<br />
1 1<br />
1 2 1<br />
1 3 3 1<br />
1 4 6 4 1<br />
1 5 10 10 5 1<br />
1 6 15 20 15 6 1<br />
1 7 21 35 35 21 7 1<br />
De bijbehoren<strong>de</strong> binomiaalcoëfficiënt is 6<br />
4 .<br />
Let wel: <strong>de</strong> 0-e rij <strong>uit</strong> zo’n driehoek bestaat niet. Je kunt <strong>het</strong> wel hebben over een rij<br />
met naam 0, maar <strong>de</strong> eerste rij die je tegenkomt is per <strong>de</strong>finitie <strong>de</strong> eerste rij en niet <strong>de</strong> nul<strong>de</strong><br />
rij! Op <strong>de</strong>zelf<strong>de</strong> manier kun je niet spreken over <strong>het</strong> nul<strong>de</strong> element. Vandaar dat je hier <strong>het</strong><br />
vijf<strong>de</strong> element <strong>uit</strong> <strong>de</strong> zeven<strong>de</strong> rij pakt, daar waar je misschien <strong>het</strong> vier<strong>de</strong> element <strong>uit</strong> <strong>de</strong> zes<strong>de</strong><br />
rij had verwacht.<br />
56
5 Modale logica<br />
Opgave 5.A De formule ♦R betekent dus <strong>het</strong>zelf<strong>de</strong> als ¬¬R. Vind een formule zon<strong>de</strong>r<br />
<strong>het</strong> symbool ‘’ die <strong>het</strong>zelf<strong>de</strong> betekent als R. Vertaal zowel R als <strong>de</strong> formule die je hebt<br />
gevon<strong>de</strong>n in een Ne<strong>de</strong>rlandse zin.<br />
Oplossing: R ≡ ¬♦¬R. R betekent ‘Het is noodzakelijk dat <strong>het</strong> regent’. ¬♦¬R<br />
betekent ‘Het is niet mogelijk dat <strong>het</strong> niet regent’.<br />
Opgave 5.B Nu wordt ‘U is noodzakelijk’ symbolisch opgeschreven als U, en ‘U is onmogelijk’<br />
als ¬U of ¬♦U. Geef twee verschillen<strong>de</strong> formules <strong>van</strong> <strong>de</strong> modale logica die ‘U is<br />
contingent’ <strong>uit</strong>drukken.<br />
Oplossing: ¬U ∧ ♦U en ♦U ∧ ♦¬U.<br />
Opgave 5.C Gebruik <strong>het</strong> woor<strong>de</strong>nboek:<br />
G ik heb geld<br />
K ik koop iets<br />
en vertaal <strong>de</strong> volgen<strong>de</strong> Ne<strong>de</strong>rlandse zinnen naar formules <strong>van</strong> <strong>de</strong> modale logica:<br />
(i) Het is mogelijk dat ik iets koop zon<strong>de</strong>r dat ik geld heb.<br />
Oplossing: ♦(K ∧ ¬G). De oorspronkelijke zin lijkt onmogelijk (als we kopen op afbetaling<br />
b<strong>uit</strong>en beschouwing laten). Een alternatieve vertaling is (♦K) ∧ ¬G. Die is ook<br />
onmogelijk.<br />
(ii) Het is noodzakelijk dat als ik iets koop dat ik dan ook geld heb.<br />
Oplossing: (K → G). Dit lijkt een noodzakelijk ware zin.<br />
(iii) Het is mogelijk dat als ik iets koop dat ik dan geen geld heb.<br />
Oplossing: Hier is <strong>het</strong> erg afhankelijk <strong>van</strong> hoe je <strong>de</strong> zin interpreteert. Doe je dat<br />
als ♦(K → ¬G), dan is <strong>het</strong> een noodzakelijk ware bewering. Immers K → ¬G is<br />
bijvoorbeeld waar als je niets koopt, ongeacht of je geld hebt of niet. Dus ♦(K → ¬G)<br />
is dan noodzakelijk waar. Als je echter <strong>de</strong> alternatieve interpretatie ♦(K ∧ ¬G) neemt,<br />
dan hebben we hierboven al gezien dat die onmogelijk waar is.<br />
Welke <strong>van</strong> <strong>de</strong>ze zinnen lijken je waar? Leg <strong>uit</strong> waarom.<br />
Opgave 5.D Geef bij <strong>de</strong> volgen<strong>de</strong> formules <strong>van</strong> <strong>de</strong> modale logica <strong>de</strong> vorm die aan <strong>de</strong> officiële<br />
grammatica voldoet, en teken <strong>de</strong> bijbehoren<strong>de</strong> bomen.<br />
(i) (a)<br />
Oplossing: a; <br />
<br />
<br />
<br />
a<br />
(ii) a → a<br />
Oplossing: (a → a); →<br />
<br />
<br />
<br />
<br />
a<br />
57<br />
a
(iii) (a) → a<br />
Oplossing: (a → a); →<br />
<br />
<br />
<br />
<br />
a<br />
(iv) (a → a)<br />
Oplossing: (a → a); <br />
<br />
→<br />
<br />
<br />
a a<br />
(v) ¬a → ¬a<br />
Oplossing: (¬a → ¬a); →<br />
a<br />
<br />
<br />
¬<br />
¬<br />
<br />
<br />
a <br />
(vi) ♦a → ♦a<br />
Oplossing: (♦a → ♦a); →<br />
<br />
<br />
♦<br />
<br />
a<br />
<br />
<br />
<br />
a ♦<br />
(vii) a → ♦a<br />
Oplossing: (a → ♦a); →<br />
<br />
<br />
<br />
<br />
<br />
a a<br />
(viii) ♦a ∧ b → ♦a ∨ ¬c<br />
Oplossing: ((♦a ∧ b) → (♦a ∨ ¬c)); →<br />
Opgave 5.E Gebruik <strong>het</strong> volgen<strong>de</strong> woor<strong>de</strong>nboek:<br />
58<br />
♦<br />
♦<br />
<br />
a<br />
<br />
<br />
∧<br />
<br />
<br />
∨<br />
<br />
<br />
b ♦ ¬<br />
<br />
<br />
a <br />
<br />
a<br />
<br />
c
K ik ben klaar<br />
H ik ga naar huis<br />
Vertaal voor ie<strong>de</strong>r <strong>van</strong> <strong>de</strong> logica’s <strong>uit</strong> <strong>de</strong> tabel (behalve voor <strong>de</strong> programma-logica) <strong>de</strong> formule<br />
¬K → ¬♦H<br />
naar <strong>het</strong> Ne<strong>de</strong>rlands.<br />
Oplossing:<br />
(i) Modaal: Als ik niet klaar ben dan is <strong>het</strong> niet mogelijk dat ik naar huis ga.<br />
(ii) Epistemisch: Als ik niet klaar ben dan is <strong>het</strong> strijdig met mijn kennis dat ik naar huis<br />
ga.<br />
(iii) Doxastisch: Als ik niet klaar ben dan is <strong>het</strong> strijdig met mijn geloof dat ik naar huis ga.<br />
(iv) Temporeel: Als ik niet klaar ben dan niet soms ga ik naar huis. Als ik niet klaar ben<br />
dan ga ik nooit naar huis.<br />
(v) Deontisch: Als ik niet klaar ben dan niet mag ik naar huis gaan. Als ik niet klaar ben<br />
dan mag ik niet naar huis gaan.<br />
Opgave 5.F Maak een tabel <strong>van</strong> modale logica’s en axiomaschema’s, waarin je aangeeft<br />
in welke logica’s welke schema’s gel<strong>de</strong>n. Zet <strong>de</strong> logica’s <strong>uit</strong> <strong>de</strong> lijst op pagina 64 langs <strong>de</strong><br />
linkerkant <strong>van</strong> <strong>de</strong> tabel en <strong>de</strong> axiomaschema’s aan <strong>de</strong> bovenkant. Zet nu een ‘+’ in <strong>de</strong> tabel<br />
wanneer je <strong>de</strong>nkt dat <strong>het</strong> schema in <strong>de</strong> logica geldt, en een ‘−’ wanneer je <strong>de</strong>nkt dat dat niet<br />
altijd zo hoeft te zijn. Zo maak je dus een tabel met 36 plussen en minnen.<br />
Oplossing:<br />
distr. refl. sym. trans. Eucl. ser.<br />
K T B 4 5 D<br />
Modaal + 1 + 2 + 3 + 4 + 5 + 6<br />
Epistemisch + 7 + 8 + 9 + 10 -/+ 11 + 12<br />
Doxastisch + 13 - 14 + 15 + 16 -/+ 17 - 18<br />
Temporeel + 19 + 20 - 21 + 22 - 23 + 24<br />
Deontisch + 25 - 26 - 27 -/+ 28 -/+ 29 -/+ 30<br />
Programma + 31 - 32 - 33 - 34 - 35 + 36<br />
Hieron<strong>de</strong>r <strong>de</strong> <strong>uit</strong>leg waarom er een ‘+’ of een ‘-’ staat. In <strong>het</strong> bijzon<strong>de</strong>r is hier discussie<br />
over mogelijk, dus als je <strong>het</strong> ergens dui<strong>de</strong>lijk niet mee eens bent, geef dan door wat er mis is<br />
met onze re<strong>de</strong>nering. In <strong>het</strong> bijzon<strong>de</strong>r heeft <strong>het</strong> geen zin om <strong>de</strong>ze re<strong>de</strong>neringen <strong>uit</strong> <strong>het</strong> hoofd<br />
te leren! Op een toets of tentamen moet je zelf een argument kunnen geven waarom een<br />
bepaal<strong>de</strong> eigenschap wel of niet geldt.<br />
1. (Modaal) Als g noodzakelijk <strong>uit</strong> f volgt en f is noodzakelijk, dan is g zelf ook noodzakelijk.<br />
2. Als f noodzakelijk is, dan is f waar.<br />
3. Als f waar is, dan is <strong>de</strong> mogelijkheid dat f waar is noodzakelijk.<br />
4. Als f noodzakelijk is, dan is f ook noodzakelijk op grond <strong>van</strong> logisch re<strong>de</strong>neren.<br />
5. Als f mogelijk is, dan is ♦f ook noodzakelijk.<br />
59
6. Elk reflexief systeem is ook serieel.<br />
7. (Epistemisch) Als we weten dat <strong>uit</strong> f g volgt en we weten dat f waar is dan weten we<br />
ook dat g geldt.<br />
8. Alleen ware feiten f kunnen gekend wor<strong>de</strong>n.<br />
9. Als f waar is, dan weet je dat <strong>het</strong> niet strijdig is met je kennis.<br />
10. Je weet wat je weet.<br />
11. Dit betekent zoiets als: je weet wat je niet weet. Als iets niet strijdig is met wat je weet,<br />
dan weet je dat ook. Niet ie<strong>de</strong>reen vindt dat dit re<strong>de</strong>lijk is.<br />
12. Elk reflexief systeem is ook serieel.<br />
13. (Doxastisch) Als je gelooft dat f g impliceert en je gelooft f dan ligt <strong>het</strong> voor <strong>de</strong> hand<br />
ook g te geloven.<br />
14. Niet alles wat je gelooft is waar.<br />
15. Als iets waar is, geloof je dan dat <strong>het</strong> niet strijdig is met je geloof?<br />
16. Als je iets gelooft, geloof je (vast) ook wel dat je dat gelooft.<br />
17. Als iets niet strijdig is met je geloof, is dat dan een re<strong>de</strong>n om <strong>het</strong> dan zelf ook maar te<br />
geloven?<br />
18. Mensen kunnen best in strijdige dingen geloven.<br />
19. (Temporeel) Als altijd geldt dat f g impliceert en ver<strong>de</strong>r geldt f altijd dan moet g ook<br />
wel altijd gel<strong>de</strong>n.<br />
20. Als f altijd geldt, dan moet <strong>het</strong> in <strong>het</strong> bijzon<strong>de</strong>r nu gel<strong>de</strong>n. (Nb. hier gebruiken we <strong>de</strong><br />
LTL interpretatie <strong>uit</strong> sectie 5.6; er zijn ook an<strong>de</strong>re temporele logica’s.)<br />
21. On<strong>de</strong>r <strong>de</strong> LTL interpretatie dat nu een on<strong>de</strong>r<strong>de</strong>el <strong>van</strong> <strong>de</strong> toekomst is, volgt <strong>uit</strong> <strong>het</strong> feit<br />
dat f nu waar is automatisch dat <strong>het</strong> altijd een keer waar is? Nee, neem maar een<br />
eigenschap f die alleen <strong>van</strong>daag waar is. Dan geldt voor <strong>van</strong>daag ♦f wel. Maar voor<br />
morgen geldt ♦f niet. En dus geldt ♦f niet. (In zekere zin betekent ♦f dat f<br />
oneindig vaak waar is: op elk moment is er een later moment waarop f waar is.)<br />
22. Als iets <strong>van</strong>af nu altijd waar is, dan is <strong>het</strong> ook altijd waar <strong>van</strong>af elk later moment dan<br />
nu.<br />
23. Als iets ooit waar is, hoeft dat niet te betekenen dat <strong>het</strong> altijd ooit waar is. Zie <strong>het</strong><br />
voorbeeld tegen symmetrie.<br />
24. Als iets altijd waar is, dan is <strong>het</strong> zeker ooit waar.<br />
25. (Deontisch) Als <strong>het</strong> zo is dat je g moet doen indien je f doet en je moet f doen, dan<br />
moet je ook g doen.<br />
26. Uit <strong>het</strong> feit dat je f moet doen volgt niet dat je f ook doet.<br />
60
27. Als je f doet dan volgt daar<strong>uit</strong> niet dat dat moet mogen.<br />
28. Als je f moet doen, moet je dan ook f moeten?<br />
29. Als je f mag doen, moet dat dan ook mogen?<br />
30. Het klinkt niet onre<strong>de</strong>lijk om aan te nemen dat als je iets moet, je <strong>het</strong> ook mag. Aan <strong>de</strong><br />
an<strong>de</strong>re kant, soms moet je naar <strong>de</strong> wc terwijl dat <strong>van</strong> <strong>de</strong> docent niet mag. Ver<strong>de</strong>r is dit<br />
axioma equivalent aan f ∧ ¬f. En <strong>het</strong> komt best voor dat je tegenstrijdige dingen<br />
moet. Een zogenaam<strong>de</strong> ‘double bind’. Neem bijvoorbeeld een gebodsbord met daarop<br />
<strong>de</strong> tekst ‘negeer dit bord’.<br />
31. (Programma) Als na executie geldt dat f g impliceert en na executie geldt f, dan moet<br />
g ook na executie gel<strong>de</strong>n.<br />
32. Het feit dat f geldt na executies betekent niet dat f nu geldt.<br />
33. Het feit dat f nu geldt betekent niet dat na executie <strong>het</strong> moet zijn dat na executie f<br />
kan gel<strong>de</strong>n.<br />
34. Als f na executie geldt, betekent dat nog niet dat na een twee<strong>de</strong> executie f weer geldt.<br />
35. Als f na executie kan gel<strong>de</strong>n, betekent dat nog niet dat <strong>het</strong> na executie moet zijn dat<br />
<strong>het</strong> na executie kan gel<strong>de</strong>n.<br />
36. Als f na executie moet gel<strong>de</strong>n, dan kan <strong>het</strong> na executie zeker gel<strong>de</strong>n.<br />
Opgave 5.G Ga <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> formules f na in welke werel<strong>de</strong>n x <strong>van</strong> ons voorbeeld <strong>van</strong><br />
een Kripke-mo<strong>de</strong>l ze waar zijn, ofwel, voor welke x er geldt dat x f. Welke zijn in <strong>het</strong> hele<br />
mo<strong>de</strong>l waar, ofwel, voor welke geldt M1 |= f?<br />
(i) a<br />
Oplossing: Als x ∈ {x1, x2, x4} dan geldt a ∈ V (x) en dus x a. Omdat x ∈ V (x3)<br />
geldt x3 a. En dus ook M1 |= a.<br />
(ii) a<br />
Oplossing: R(x1) = {x2} en x2 a, dus x1 a. R(x2) = {x1, x2}, x1 a en x2 a,<br />
dus x2 a. R(x3) = {x1} en x1 a, dus x3 a. R(x4) = ∅ en dus automatisch<br />
x4 a, want er is geen enkele wereld waarvoor er iets gecontroleerd hoeft te wor<strong>de</strong>n.<br />
En dus M1 |= a.<br />
(iii) ♦a<br />
Oplossing: R(x1) = {x2} en x2 a, dus x1 ♦a. R(x2) = {x1, x2} en x1 a, dus<br />
x2 ♦a. R(x3) = {x1} en x1 a, dus x3 ♦a. R(x4) = ∅ en dus automatisch x4 ♦a,<br />
want ♦a vereist dat er een toegankelijke wereld <strong>van</strong><strong>uit</strong> x4 is. En dus M1 |= ♦a.<br />
(iv) a → a<br />
Oplossing: We hebben al gezien dat x1 a, x2 a en x4 a. En dus weten<br />
we ook meteen met <strong>de</strong> waarheidstabel <strong>van</strong> → dat x1 a → a, x2 a → a en<br />
x4 a → a. Ver<strong>de</strong>r weten we dat x3 a maar x3 a. En dus x3 a → a. En<br />
dus M1 |= a → a.<br />
(v) a → a<br />
Oplossing: R(x1) = {x2} en x2 a, dus x1 a. En dus ook x1 a → a.<br />
R(x2) = {x1, x2}, x1 a en x2 a, dus x2 a. En dus ook x2 a → a.<br />
61
R(x3) = {x1} en x1 a, dus x3 a. En dus ook x3 a → a. R(x4) = ∅ en<br />
dus automatisch x4 a. En dus ook x4 a → a. En dus M1 |= a → a.<br />
(vi) a → ♦a<br />
Oplossing: R(x1) = {x2}. We hebben al gezien dat x2 ♦a. Dus x1 ♦a. En<br />
dus ook x1 a → ♦a. R(x2) = {x1, x2}. We weten al dat x1 ♦a en x2 ♦a.<br />
Dus x2 ♦a. En dus ook x2 a → ♦a. Omdat x3 a weten we meteen dat<br />
x3 a → ♦a. R(x4) = ∅. En dus meteen x4 ♦a. En dus ook x4 a → ♦a. En<br />
dus M1 |= a → ♦a.<br />
Opgave 5.H (i) Bestaat er een Kripke-mo<strong>de</strong>l M2 zodat M2 |= a maar M2 |= a? Als<br />
je antwoord ‘ja’ is: geef een voorbeeld <strong>van</strong> zo’n mo<strong>de</strong>l M2. Als je antwoord ‘nee’ is:<br />
waarom niet?<br />
Oplossing: Nee, zo’n mo<strong>de</strong>l M2 bestaat niet. Stel dat er wel een mo<strong>de</strong>l M2 = 〈W, R, V 〉<br />
bestaat met M2 |= a en M2 |= a. Dan bestaat er dus een x ∈ W met x a en<br />
x a. Er zijn dan twee mogelijkhe<strong>de</strong>n voor R(x): leeg of niet-leeg. Als R(x) = ∅<br />
geldt automatisch x a en dus hebben we een tegenspraak. Dus R(x) = ∅. Maar<br />
voor alle y ∈ R(x) geldt dat y a want R(x) ⊆ W en M2 |= a betekent dat y a voor<br />
alle y ∈ W geldt. Maar dan geldt x a en we hebben weer een tegenspraak. Dus kan<br />
zo’n mo<strong>de</strong>l niet bestaan.<br />
(ii) Bestaat er een Kripke-mo<strong>de</strong>l M3 zodat M3 |= a maar M3 |= ♦a? Als je antwoord ‘ja’<br />
is: geef een voorbeeld <strong>van</strong> zo’n mo<strong>de</strong>l M3. Als je antwoord ‘nee’ is: waarom niet?<br />
Oplossing: Ja. Neem M3 = 〈W, R, V 〉 met W = {x1}, R(x1) = ∅ en V (x1) = {a}. In<br />
een diagram ziet dat er zo <strong>uit</strong>:<br />
M3 :<br />
Omdat x1 a geldt M3 |= a. Maar omdat R(x1) = ∅ geldt x1 ♦a en dus ook<br />
M3 |= ♦a.<br />
Opgave 5.I (i) Bestaat er een Kripke-mo<strong>de</strong>l M4 dat serieel is maar niet reflexief? Als<br />
je antwoord ‘ja’ is: geef een voorbeeld <strong>van</strong> zo’n mo<strong>de</strong>l M4. Als je antwoord ‘nee’ is:<br />
waarom niet?<br />
Oplossing: Laat je bij <strong>de</strong>ze opgave niet foppen: een mo<strong>de</strong>l is serieel als <strong>het</strong> voor alle f<br />
aan axioma D voldoet en reflexief als <strong>het</strong> voor alle f aan axioma T voldoet. Een mo<strong>de</strong>l<br />
geven dat voor bijvoorbeeld f = a voldoet aan die axioma’s wil dus nog niet zeggen<br />
dat <strong>het</strong> mo<strong>de</strong>l in<strong>de</strong>rdaad serieel of reflexief is! In <strong>het</strong> algemeen is <strong>het</strong> zelfs vrij lastig te<br />
bewijzen dat een mo<strong>de</strong>l serieel of reflexief is. Echter, <strong>de</strong> karakterisering die in sectie 5.5<br />
wordt gegeven is veel handiger:<br />
• Een mo<strong>de</strong>l is serieel als er <strong>uit</strong> elke wereld minstens één pijl vertrekt.<br />
• Een mo<strong>de</strong>l is reflexief als er <strong>van</strong><strong>uit</strong> ie<strong>de</strong>re wereld een pijl naar zichzelf is.<br />
Nu terug naar <strong>de</strong>ze opgave. Het antwoord is ja; zo’n mo<strong>de</strong>l bestaat. Neem M4 =<br />
〈W, R, V 〉 met W = {x1, x2}, R(x1) = {x1}, R(x2) = {x1}, V (x1) = {a} en V (x2) = ∅.<br />
In een diagram ziet dat er zo <strong>uit</strong>:<br />
M4 :<br />
x1<br />
62<br />
<br />
x1<br />
a<br />
<br />
a<br />
x2
Omdat R(x1) = R(x2) = {x1} gaat er dus <strong>van</strong><strong>uit</strong> elke wereld minimaal één pijl en is<br />
M4 dus serieel. Het mo<strong>de</strong>l is echter niet reflexief: <strong>van</strong><strong>uit</strong> x2 is er geen pijl naar x2 zelf.<br />
Omdat we hier laten zien dat <strong>het</strong> mo<strong>de</strong>l niet reflexief is, kunnen we ook één specifieke<br />
formule f pakken en laten zien dat M4 |= f → f. We nemen hiervoor f = a. Omdat<br />
R(x2) = {x1} en a ∈ V (x1) geldt x2 a. Echter, omdat a ∈ V (x2) geldt x2 a niet.<br />
En dus geldt x2 a → a. En dus geldt M4 |= a → a. Dus M4 is niet reflexief.<br />
(ii) Bestaat er een Kripke-mo<strong>de</strong>l M5 dat reflexief is maar niet serieel? Als je antwoord ‘ja’<br />
is: geef een voorbeeld <strong>van</strong> zo’n mo<strong>de</strong>l M5. Als je antwoord ‘nee’ is: waarom niet?<br />
Oplossing: Nee, zo’n mo<strong>de</strong>l M5 bestaat niet. M5 is reflexief betekent dat x ∈ R(x)<br />
voor alle x ∈ W . Dus is er in elk geval een pijl <strong>van</strong><strong>uit</strong> x naar zichzelf. In <strong>het</strong> bijzon<strong>de</strong>r<br />
is er dus minimaal één pijl <strong>van</strong><strong>uit</strong> x en dus is M5 serieel. Dus M5 kan niet wel reflexief<br />
en toch niet serieel zijn.<br />
Opgave 5.J Druk <strong>de</strong> volgen<strong>de</strong> zinnen <strong>uit</strong> in LTL. Je mag in je vertalingen alle operatoren<br />
<strong>van</strong> LTL gebruiken.<br />
(i) Er komt een moment waarna <strong>de</strong> <strong>uit</strong>spraak a altijd waar zal zijn.<br />
Oplossing: FGa of FX Ga. Bij <strong>de</strong> twee<strong>de</strong> versie leg je nadruk op <strong>het</strong> feit dat ‘waarna’<br />
een volgend moment inhoudt.<br />
(ii) De <strong>uit</strong>spraken a en b zijn om <strong>de</strong> beurt waar.<br />
Oplossing: De formule G((a → X (¬a ∧ b)) ∧ (b → X (¬b ∧ a))) lijkt misschien goed,<br />
maar is <strong>het</strong> niet. In een situatie waarin altijd ¬a ∧ ¬b geldt, is genoem<strong>de</strong> formule waar,<br />
terwijl dui<strong>de</strong>lijk is dat a en b niet om <strong>de</strong> beurt waar zijn. We kunnen <strong>de</strong> formule echter<br />
een klein beetje aanpassen door te eisen dat altijd één <strong>van</strong> <strong>de</strong> twee waar moet zijn:<br />
G((a ∨ b) ∧ (a → X (¬a ∧ b)) ∧ (b → X (¬b ∧ a))).<br />
(iii) Telkens als a waar wordt, dan is b na enige tijd ook waar.<br />
Oplossing: G(a → Fb). Een formule die in <strong>de</strong> buurt <strong>van</strong> <strong>de</strong>ze betekenis komt is<br />
G(a U b). Maar feitelijk is <strong>de</strong>ze twee<strong>de</strong> versie sterker in die zin dat hij eist dat a waar<br />
blijft totdat b waar is (<strong>het</strong> moment waarop b waar wordt niet meegeteld) terwijl dat<br />
gezien <strong>de</strong> zin in <strong>het</strong> Ne<strong>de</strong>rlands helemaal niet hoeft.<br />
Opgave 5.K Definieer <strong>de</strong> operator U in termen <strong>van</strong> R.<br />
Oplossing: f U g ≡ ¬(¬f R ¬g). Het bewijs hiervoor gaat alsvolgt. We weten al<br />
¬(¬f U ¬g) ≡ f R g. Maar dan ¬f U ¬g ≡ ¬(f R g). Dit geldt voor alle f en g en in<br />
<strong>het</strong> bijzon<strong>de</strong>r dus ook voor ¬f en ¬g. Dus krijgen we ¬¬f U ¬¬g ≡ ¬(¬f R ¬g). Oftewel<br />
f U g ≡ ¬(¬f R ¬g).<br />
Opgave 5.L Definieer <strong>de</strong> operator G en F in termen <strong>van</strong> U en R. Je mag hierbij <strong>de</strong> proposities<br />
⊤ en ⊥ gebruiken die respectievelijk altijd waar en altijd onwaar zijn.<br />
Oplossing: Gf ≡ ⊥ R f en Ff ≡ ⊤ U f. Be<strong>de</strong>nk bij <strong>de</strong> eerste gelijkheid dat ⊥ R f<br />
betekent dat f geldt totdat ⊥ geldt. Maar omdat ⊥ nooit geldt, zal f dus altijd moeten<br />
gel<strong>de</strong>n. Bij <strong>de</strong> twee<strong>de</strong> gelijkheid moeten we be<strong>de</strong>nken dat ⊤ U f twee dingen impliceert. Ten<br />
eerste dat f ooit een keer moet gel<strong>de</strong>n, wat dus al equivalent is aan Ff. Ten twee<strong>de</strong> wordt<br />
er <strong>de</strong> extra eis verlangd dat tot <strong>het</strong> moment dat f geldt, <strong>de</strong> propositie ⊤ waar is. Hoewel<br />
dit technisch gesproken een extra eis is, is dit in <strong>de</strong> praktijk helemaal geen extra voorwaar<strong>de</strong><br />
omdat ⊤ nu eenmaal altijd geldt.<br />
Opgave 5.M Laat zien dat je alle LTL operatoren (behalve X ) kunt <strong>de</strong>finiëren met <strong>de</strong> W<br />
operator. Je mag hierbij weer <strong>de</strong> proposities ⊤ en ⊥ gebruiken.<br />
63
Oplossing:<br />
f R g ≡ g W (f ∧ g)<br />
Gf ≡ ⊥ R f<br />
≡ f W (⊥ ∧ f)<br />
≡ f W ⊥<br />
Ff ≡ ¬G¬f<br />
≡ ¬(¬f W ⊥)<br />
f U g ≡ f W g ∧ Fg<br />
≡ f W g ∧ ¬(¬g W ⊥)<br />
Opgave 5.N Beschouw <strong>het</strong> LTL Kripke-mo<strong>de</strong>l M6 = 〈W, R, V 〉. Dus met W = {xi | i ∈ N}<br />
en xj ∈ R(xi) als i ≤ j. Definieer V nu als volgt:<br />
a ∈ V (xi) <strong>de</strong>sda i is een tweevoud<br />
b ∈ V (xi) <strong>de</strong>sda i is een drievoud<br />
Ga na of <strong>de</strong> volgen<strong>de</strong> eigenschappen gel<strong>de</strong>n:<br />
(i) x1 F(a ∧ b)<br />
Oplossing: Omdat x6 ∈ R(x1) en x6 a en x6 b, geldt x1 F(a ∧ b).<br />
(ii) x6 G(a ∨ b)<br />
Oplossing: Omdat x7 ∈ R(x6) en x7 a en x7 b, geldt x7 a ∨ b. En dus<br />
x6 G(a ∨ b).<br />
(iii) M6 GF(a U b)<br />
Oplossing: Zij xi ∈ W . We moeten laten zien wegens G dat dan voor alle j ≥ i geldt<br />
xj F(a U b). Dus laten zien wegens F dat er voor alle j ≥ i een k ≥ j is met<br />
xk a U b. Dus laten zien wegens U dat er voor alle j ≥ i een k ≥ j is en een l ≥ k<br />
zodat xl b en er voor alle m met k ≤ m < l geldt dat xm a. Merk op dat <strong>het</strong> niet<br />
<strong>uit</strong>maakt wat i is. Het gaat er om dat we voor elke j ≥ i een algoritme kunnen vin<strong>de</strong>n<br />
om <strong>de</strong> k en l te vin<strong>de</strong>n. Dat doen we door modulo 6 te gaan rekenen. Dat levert <strong>het</strong><br />
volgen<strong>de</strong> plaatje op.<br />
x 0<br />
<br />
<br />
<br />
x <br />
<br />
<br />
1 x <br />
<br />
2<br />
x <br />
<br />
3<br />
x <br />
<br />
4<br />
x5 a b <br />
<br />
a <br />
b <br />
a <br />
<br />
<br />
<br />
<br />
• j ≡6 0 (afkorting voor als j mod 6 = 0). Neem dan k = j + 2 en l = j + 3. Omdat<br />
alle m met k ≤ m < l niets an<strong>de</strong>rs is dan m = k geldt xl b en voor alle m met<br />
k ≤ m < l geldt xm a. Dus geldt xk a U b. Dus geldt xj F(a U b).<br />
64
• j ≡6 1. Neem dan k = j + 1 en l = j + 2.<br />
• j ≡6 2. Neem dan k = j en l = j + 1.<br />
• j ≡6 3. Neem dan k = j + 5 en l = j + 6.<br />
• j ≡6 4. Neem dan k = j + 4 en l = j + 5.<br />
• j ≡6 5. Neem dan k = j + 3 en l = j + 4.<br />
Opgave 5.O Welke <strong>van</strong> <strong>de</strong> axiomaschema’s <strong>uit</strong> <strong>de</strong> tabel op pagina 65 gel<strong>de</strong>n in LTL?<br />
Oplossing:<br />
• Distributief geldt want als in alle werel<strong>de</strong>n geldt dat f → g waar is en je weet dat in<br />
alle werel<strong>de</strong>n f waar is, dan moet ook in alle werel<strong>de</strong>n g waar zijn.<br />
• Reflexief geldt want G omvat ook nu.<br />
• Symmetrisch geldt niet omdat je niet terug in <strong>de</strong> tijd kunt. Stel a ∈ V (x0) en a ∈ V (xi)<br />
met i ≥ 1. In LTL geldt dat x0 ∈ R(x1) maar wel x1 ∈ R(x0). Dus hebben we x0 a<br />
maar x0 ♦a. En dus x0 a → ♦a.<br />
• Transitief geldt want als formule f <strong>van</strong>af nu in elke toestand geldt, dan geldt ook <strong>van</strong><strong>uit</strong><br />
elke toestand f.<br />
• Euclidisch geldt niet omdat je niet terug in <strong>de</strong> tijd kunt. Neem weer a ∈ V (x0) en<br />
a ∈ V (xi) met i ≥ 1. Omdat x0 ∈ R(x0) geldt x0 a. Maar omdat x0 ∈ R(x1) en wel<br />
x1 ∈ R(x0) weten we dat x1 ♦a zou moeten gel<strong>de</strong>n om x0 ♦a waar te laten zijn.<br />
Maar x1 ♦a omdat men <strong>van</strong><strong>uit</strong> x1 alleen maar in werel<strong>de</strong>n kan komen waar a niet<br />
waar is. Dus hebben we x0 ♦a maar x0 ♦a. En dus x0 ♦a → ♦a.<br />
• Serieel geldt want <strong>van</strong><strong>uit</strong> elke wereld gaan er oneindig veel pijlen.<br />
65