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.

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

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

Saved successfully!

Ooh no, something went wrong!