04.05.2013 Views

Predikat (öppna utsagor) Från predikat till logisk utsaga Predikat och ...

Predikat (öppna utsagor) Från predikat till logisk utsaga Predikat och ...

Predikat (öppna utsagor) Från predikat till logisk utsaga Predikat och ...

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.

<strong>Predikat</strong> (<strong>öppna</strong> <strong>utsagor</strong>) kolumnerna i följande tabell: Jämför<br />

Satslogik,<br />

satser (<strong>utsagor</strong>)<br />

P : Det regnar idag.<br />

Q : Månen är en ost.<br />

R : Peter har skägg.<br />

<strong>Predikat</strong>logik,<br />

<strong>predikat</strong> (<strong>öppna</strong> <strong>utsagor</strong>)<br />

P(x) : x ≥3.<br />

Q(x,y) : x – y = 0.<br />

R(x) : x har varit statsminister<br />

i Sverige.<br />

<strong>Predikat</strong> <strong>och</strong> <strong>logisk</strong>a operatorer som med satser kan man sätta ihop <strong>predikat</strong> med <strong>logisk</strong>a operatorer, exempelvis P(x)∧Q(x), ¬P(x) <strong>och</strong> Precis<br />

Negation<br />

P(x) Följande <strong>logisk</strong>a ekvivalenser<strong>och</strong> implikationer gäller: [∀x : P(x)] ∨[∀x : Q(x)] ⇒∀x : [P(x) ∨Q(x)] ∃x : [P(x) ∧Q(x)] ⇒[∃x : P(x)] ∧[∃x : Q(x)] ∀x : [P(x) ∧Q(x)] ⇔[∀x : P(x)] ∧[∀x : Q(x)] ∃x : [P(x) ∨Q(x)] ⇔[∃x : P(x)] ∨[∃x : Q(x)]<br />

Kvantorers ordning<br />

→Q(x), <strong>och</strong>påsåsättskapanya<strong>predikat</strong>.<br />

<strong>predikat</strong> med fler än en variabel <strong>och</strong> flera kvantorerkan ordningen påkvantorernaspela roll. Exempel: Betrakta <strong>predikat</strong>et man Har<br />

Argument<br />

Q(x,y) : x <strong>och</strong> y antas <strong>till</strong>höra samma universum, nämligen U som är mängden av de reella talen. Jämför de två<strong>utsagor</strong>na ∀y∃x : Q(x,y) <strong>och</strong>∃x∀y: Q(x,y). Vad betyder de? Är de sanna eller falska? Vad händer om U istället är mängden av de naturliga talen? där x≤y,<br />

<strong>Från</strong> <strong>predikat</strong> <strong>till</strong> <strong>logisk</strong> <strong>utsaga</strong> från <strong>predikat</strong>en kan man konstruera <strong>logisk</strong>a <strong>utsagor</strong> påföljande sätt: Utgående<br />

Specificera P(2) : 2 ≥3. (F)<br />

variabler Q(4,4) : 4 – 4 = 0. (S)<br />

R(Gunde Svan) : Gunde Svan har varit<br />

statsminister i Sverige. (F)<br />

Kvantifiera<br />

variabler<br />

finns något x sådant att P(x) är sant.)<br />

P(x). (P(x) är sant för alla x.) P(x). (Det : ∃x∊U : ∀x∊U<br />

(U utgörs av ett universum av <strong>till</strong>åtna värden på x.)<br />

av kvantifierade <strong>predikat</strong> negationen <strong>till</strong> att P(x)är<br />

x för alla x? Jo, att det finns (åtminstone) ett att P(x)ärfalskt. Med symbolerfås är Vad<br />

sådant ¬[∀x : P(x)] ⇔∃x : [¬P(x)]. sant<br />

x att det finns sådant sant för alla x, d v s med symboler<br />

¬[∃x : P(x)] ⇔∀x : [¬P(x)]. <strong>till</strong> Negationen<br />

är att<br />

P(x)är falskt attP(x)är<br />

med kvantorer kontrollerar man giltighet hos argument som innehåller kvantorer? Hur<br />

Är följande ett giltigt argument? Alla matematiker är knäppskallar. Det finns matematiker som bor i Göteborg. Detfinnsknäppskallarsombori Göteborg.<br />

Exempel:<br />

1


Argument med kvantorer (forts.): Formalisera argumentet! M(x) : x är matematiker. K(x) : x är en knäppskalle. Exempel<br />

Prolog<br />

<strong>Predikat</strong>logik,<br />

<strong>predikat</strong> (<strong>öppna</strong> <strong>utsagor</strong>)<br />

→K(x)] x bor i Göteborg. Argumentet kan dåskrivas: ∀x : [M(x) ∃x : [M(x) ∧G(x)] ∃x : [K(x) ∧G(x)]. G(x) :<br />

ett programspråk för logikprogrammering. Det är uppbyggt av fakta, regler<strong>och</strong> frågor. <strong>Predikat</strong>en (<strong>öppna</strong> <strong>utsagor</strong>na) definieras i allmänhet som en blandning av fakta <strong>och</strong> regler. Dessa kallas klausuler för <strong>predikat</strong>et. är Prolog<br />

P(x) : x ≥3.<br />

Q(x,y) : x – y = 0.<br />

Prolog<br />

p(X) :- X >= 3.<br />

q(X,Y) :- X – Y =:= 0.<br />

Prolog mer i detalj<br />

∀X förståProlog lite mer i detalj kan vi använda det <strong>till</strong> att avgöra om argument är giltiga eller ej. att Genom<br />

Prolog<br />

(klausul)<br />

p(X) :- X >= 3.<br />

Betydelse<br />

(<strong>logisk</strong> <strong>utsaga</strong>)<br />

: [(X ≥3) →p(X)]<br />

Argument med kvantorer (forts.): Beviset blir att den andra hypotesen ger att M(x0) <strong>och</strong> G(x0) är sant för något x0. För detta x0ger dåden första hypotesen att K(x0) Exempel<br />

Komma igång med Prolog<br />

Skriv in <strong>predikat</strong>en i en fil (ett på varje rad) med ett namn som<br />

slutar på .pl, exempelvis test.pl.<br />

Starta Prolog genom att skriva kommandot pl.<br />

Ladda in <strong>predikat</strong>en i filen test.pl genom att skriva antingen<br />

consult(test). eller [test]. vid kommandoprompten (?-) i Prolog.<br />

Glöm inte punkterna.<br />

Testa <strong>predikat</strong>en i filen, exempelvis genom ?- p(3).<br />

Yes<br />

?- p(0).<br />

No<br />

där Yes, som skrivs ut av Prolog, betyder att den <strong>logisk</strong>a <strong>utsaga</strong>n<br />

p(3) : 3 >= 3 är sann <strong>och</strong> No betyder att den <strong>logisk</strong>a <strong>utsaga</strong>n p(0) :<br />

0 >=3 är falsk.<br />

Avsluta Prolog genom att skriva halt. vid kommandoprompten.<br />

sant. Därmed är slutsatsen K(x0) ∧G(x0) sann <strong>och</strong> argumentet är giltigt. är<br />

Prolog mer i detalj<br />

Logisk <strong>utsaga</strong><br />

Prolog<br />

→K(x)]<br />

:- m(X). /* regel */ ∧G(x)]k(X) g(x0). /* fakta */<br />

∧G(x)]m(x0). : [M(x) ∀x : [M(x) ∃x [K(x) : ∃x knäppskallar. <strong>och</strong> matematiker med exemplet tar Vi<br />

/* fakta */<br />

?- k(X), g(X). /* fråga */<br />

2


Logisk fullständighet<br />

Satslogik Digitalteknik ∧∨¬ (AND-grindar)<br />

1<br />

0som<br />

helst kan konstrueras med hjälp Jämför satslogik med digitalteknik:<br />

typer av grindar. SF ∧-grindar ∨-grindar (OR-grindar) ¬-grindar(NOT-grindar) krets digital Vilken tre dessa endast av<br />

Logisk fullständighet räcker det med dessa tre typer av grindar? Varför<br />

IN1(p) IN2(q)<br />

UT<br />

0 0 u1 0 1 u2 1 0 u3 1 1 u4 (¬p) ∧(¬q) (¬p) ∧q<br />

p ∧(¬q) tredje<strong>och</strong>p ∧q den önskadeutsignalenpå disjunktivnormalform. ∨fårman med 1:a önskaren man raderdär de <strong>utsagor</strong>somsvararmot Genomattsättaihopde fjärde. påden påden andra, påden precispåförstaraden, 1:a produceraren<br />

3

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

Saved successfully!

Ooh no, something went wrong!