04.05.2013 Views

Idag Kvantifikatorer Sista föreläsning Kvantifikatorer

Idag Kvantifikatorer Sista föreläsning Kvantifikatorer

Idag Kvantifikatorer Sista föreläsning Kvantifikatorer

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

DD1350 Logik för dataloger<br />

- Föreläsning 4 -<br />

Predikatlogik: Syntax<br />

<strong>Idag</strong><br />

• <strong>Kvantifikatorer</strong> och objektvariabler<br />

•Ekvivalens<br />

• Funktionssymboler<br />

• Fria och bundna variabler<br />

•Substitution<br />

• Läs boken kapitel 2.1 och 2.2<br />

Föreläsning 4 Dilian Gurov, VT 2009 3<br />

<strong>Kvantifikatorer</strong><br />

• Ett påstående att varje eller något<br />

objekt står i en viss relation till vissa<br />

andra objekt är också en sats!<br />

•Exempel:<br />

–”Varje student är yngre än någon lektor”<br />

–”Inte varje lista är sorterad”<br />

Föreläsning 4 Dilian Gurov, VT 2009 5<br />

<strong>Sista</strong> <strong>föreläsning</strong><br />

• Satslogik som formellt språk:<br />

syntax och semantik<br />

• Sundhet och fullständighet<br />

•Avgörbarhet<br />

• Boken kapitel 1.3, 1.4 och 1.5.1<br />

Föreläsning 4 Dilian Gurov, VT 2009 2<br />

Satser som relationer mellan objekt<br />

• Relationer mellan objekt är satser!<br />

•Exempel:<br />

–”7 är mindre än 9” 7, 9 M<br />

–”Listanlst är sorterad” lst S<br />

• Satser som relationer mellan objekt kan<br />

uttryckas med hjälp av predikat:<br />

–”7 är mindre än 9” M(7, 9)<br />

–”Listanlst är sorterad” S(lst)<br />

Föreläsning 4 Dilian Gurov, VT 2009 4<br />

<strong>Kvantifikatorer</strong><br />

• Kan uttryckas med hjälp av:<br />

– kvantifikatorer:<br />

• ∀ ”för alla” universell kvantifikator<br />

• ∃ ”för någon” existentiell kvantifikator<br />

– objekt-variabler: x, y, z<br />

över objekt ur ett objektuniversum<br />

•Exempel:<br />

–”Varje student är yngre än någon lektor”<br />

Föreläsning 4 Dilian Gurov, VT 2009 6<br />

1


Exempel<br />

•”Varje student är yngre än någon lektor”<br />

– ”student” och ”lektor” kan betraktas som<br />

egenskap S och L till objekt ur ett objektuniversum<br />

bestående av personer<br />

–”Varje person som är student är yngre än<br />

någon person som är lektor”<br />

–”För alla x, om x är student så finns y<br />

så att y är lektor och x är yngre än y”<br />

∀x (S(x) → ∃y (L(y) ∧ Y(x, y)))<br />

Föreläsning 4 Dilian Gurov, VT 2009 7<br />

Ekvivalens<br />

• Särskilda predikatet =<br />

betraktas vanligtvis som ”inbyggd” i<br />

predikatlogiken<br />

•Exempel:<br />

– ”max ett objekt har egenskapen E”<br />

∀x ∀y (E(x) ∧ E(y) → x = y)<br />

Föreläsning 4 Dilian Gurov, VT 2009 9<br />

Predikatlogik: Syntax<br />

•Översikt:<br />

–Termer<br />

• beskriver objekt med hjälp av variabler och<br />

funktionssymboler<br />

• obs: konstanter är funktionssymboler med 0<br />

argument!<br />

–Formler<br />

• predikat över termer<br />

obs: atomer är predikat med 0 argument!<br />

• negation, konjunktion, etc.<br />

• kvantifierade formler<br />

Föreläsning 4 Dilian Gurov, VT 2009 11<br />

Satser i predikatlogik<br />

•Atomer: p, q, r eller<br />

•Predikat över<br />

–konstanter a, b, c och/eller<br />

– kvantifierade objektvariabler x, y, z<br />

ur ett objektuniversum:<br />

P(a, b) ∃xP(x, b) ∃x ∀yP(x, y)<br />

Föreläsning 4 Dilian Gurov, VT 2009 8<br />

Funktionssymboler<br />

• Det är också vanligt att uttrycka<br />

relationer av funktionstyp med<br />

hjälp av funktionssymboler<br />

– ”varje person är yngre än sin far”<br />

•variant 1: ∀x ∀y (F(x, y) → Y(x, y))<br />

•variant 2: ∀xY(x, f(x))<br />

Föreläsning 4 Dilian Gurov, VT 2009 10<br />

Symboler<br />

• Vi måste fixera två mängder:<br />

– funktionssymboler: f, g, h ∈F<br />

– predikatsymboler: P, Q, R∈P<br />

• Varje symbol kommer med sitt antal<br />

argument (”ställighet”, eng: arity)<br />

• Symboler med 0 argument:<br />

–konstanter: c ∈F<br />

–atomer: p, q, r ∈P<br />

Föreläsning 4 Dilian Gurov, VT 2009 12<br />

2


Syntax: Termer<br />

• I Backus-Naur form (BNF):<br />

t ::= x | c | f (t, … , t)<br />

Läs:<br />

–variabler x, y, z, … är termer<br />

–konstanter c är termer<br />

–om t 1 , …, t n är termer, och om f ∈F har n > 0<br />

argument, så är f (t 1 , …, t n ) en term<br />

– inga andra symbolsekvenser är termer<br />

Föreläsning 4 Dilian Gurov, VT 2009 13<br />

• I BNF:<br />

Syntax: Formler<br />

φ ::= P(t 1 , …, t n )|<br />

(¬φ) | (φ∧φ) | (φ∨φ) | (φ → φ) |<br />

(∀x φ) | (∃x φ)<br />

Läs:<br />

–om t 1, …, t n är termer, och om P∈P har n > 0<br />

argument, så är P(t 1, …, t n) en formel<br />

– etc. (som vanligt)<br />

Föreläsning 4 Dilian Gurov, VT 2009 15<br />

För många parenteser?<br />

•Exempel: ((∀x P(x)) ∧ (∃y Q(y)))<br />

•Konvention:<br />

– negation och kvantifikatorerna binder<br />

starkare än konjunktion och disjunktion<br />

– konjunktion och disjunktion binder starkare<br />

än implikation, som är högerassociativ<br />

∀x P(x) ∧∃y Q(y)<br />

Föreläsning 4 Dilian Gurov, VT 2009 17<br />

Exempel<br />

• Objektuniversum<br />

– naturliga talen: 0, 1, 2, 3, 4, …<br />

• Funktionssymboler<br />

–konstanter: 0, 1, 2, 3, 4, …<br />

– binära operationer: +, -<br />

•Termer:<br />

• 8<br />

• -(x, 3) eller x –3<br />

• + (6, -(5, y)) eller 6 + (5 – y)<br />

Föreläsning 4 Dilian Gurov, VT 2009 14<br />

Exempel<br />

• Objektuniversum …, -2, -1, 0, 1, 2, …<br />

• Funktionssymboler<br />

–konstanter: …, -2, -1, 0, 1, 2, …<br />

– binära operationer: +, -<br />

• Predikatsymboler<br />

– binära jämförelser:


Fria och bundna variabler<br />

• En förekomst av en variabel x i en formel φ är<br />

bunden om den ligger inom räckvidden för<br />

någon kvantifikator, och är fri annars<br />

• En kvantifikator ∀x eller ∃x binder alla fria<br />

förekomster av variabeln x inom sin räckvidd<br />

• Exempel: i formeln ∃y (P(x,y) ∧ ∃x Q(x,y))<br />

är första förekomsten av variabeln x fri, och<br />

den andra bunden<br />

Föreläsning 4 Dilian Gurov, VT 2009 19<br />

Variabelinfångande<br />

•Problem:<br />

P(x) ≡ ∃y (x < y) men<br />

P(y) ≡ ∃y (y < y) har inte samma mening!<br />

variabelinfångande (eng: variable capture)<br />

•Term t är fri för variabeln x i formeln φ<br />

om ingen fri förekomst av x i φ är i<br />

räckvidden av någon kvantifikator ∀y<br />

eller ∃y för någon variabel y i t<br />

Föreläsning 4 Dilian Gurov, VT 2009 21<br />

Substitution<br />

• För en variabel x, en term t och en<br />

formel φ, betecknar φ[t / x] formeln som<br />

är resultatet av substitutionen av varje<br />

fri förekomst av x i φ med t<br />

•Exempel:<br />

∃y (P(x,y) ∧∃xQ(x,y)) [x+1/x]<br />

= ∃y (P(x+1,y) ∧∃xQ(x,y))<br />

Föreläsning 4 Dilian Gurov, VT 2009 20<br />

Substitution igen<br />

•Substitutionen φ[t / x] undviker<br />

infångande om t är fri för x i φ<br />

• Problemet kan lösas med omdöpning:<br />

P(x) ≡ ∃y (x < y) och y kan döpas om till z<br />

P(x) ≡ ∃z (x < z) med samma mening, och<br />

P(y) ≡ ∃z (y < z)<br />

Föreläsning 4 Dilian Gurov, VT 2009 22<br />

4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!