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 ...
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