Objektorienterad modellering och diskreta strukturer / design

Euklides, 200 f. Kr.
Objektorienterad modellering och
diskreta strukturer / design
Predikatlogik
Theorem
∀n . ∃p . prime(p) ∧ p > n
Lennart Andersson
Reviderad 2010–09–27
2010
OMD 2010
F9-1
Aktivitet
OMD 2010
F9-2
Aktivitet
Skriv ett uttryck som säger att
1. heltalet i är jämt. Använd ∃, ∗ och = men inte divisions- eller
restoperator.
Solution
∃n ∈ Z . i = 2n
Ibland måste man själv förstå att det behövs kvantorer. Skriv ett
uttryck som säger att summan av två heltal är alltid densamma
oberoende av i vilken ordning operanderna tages.
Solution
2. för alla heltal så är kvadraten på talet är större än eller lika
med talet.
∀n . ∀m . n + m = m + n
Solution
∀n ∈ Z . n2 ≥ n
OMD 2010
F9-3
OMD 2010
F9-4
Från matten
Predikatlogik
I kursen ’Analys i en variabel’ finns följande definition.
Låt f vara en funktion och antag att varje omgivning av
punkten a innehåller punkter ur Df . Då säges f ha
gränsvärdet A då x går mot a om det till varje tal > 0
finns ett tal δ = δ() > 0 sådant att
|x − a| < δ
⇒ |f (x) − A| < .
x ∈ Df
(∀x . P(x))
(∃x . P(x))
för alla x gäller P(x)
det finns ett x så att P(x)
Skriv ett predikatlogiskt uttryck som är sant precis när f har
gränsvärdet A då x går mot a.
Solution
∀ ∈ R+ . (∃δ ∈ R+ . (∀x ∈ Df . |x − a| < δ → |f (x) − A| < ))
OMD 2010
F9-5
Exempel
OMD 2010
F9-6
Aktivitet
Låt x och y vara vektorer med lika många element. Formulera med
predikatlogik
1. Alla värden som finns i x finns också i y .
Vad betyder
Solution
∀i . ∃j . xi = yj
∀i . xi ≤ xi+1
2. Varje element i x är mindre än motsvarande element i y .
∀i . ∀j . i = j ∨ xi 6= xj
Solution
∃i . ∀j . i 6= j → xi < xj
∀i . xi < yi
∀i . xi = yi
3. Alla element i x är mindre än varje element i y .
Solution
∀i . ∀j . xi < yj
4. Det största elementet i x är mindre än det minsta elementet i
y.
OMD 2010
F9-7
OMD 2010
F9-8
Bundna variabler
Exempel
prime(p) ∧ p > n
Definition
Förekomsten av en variabel v i ett uttryck F är bunden om F
innehåller ett uttryck på formen ∀v . G eller ∃v . G och
förekomsten av v finns i denna form. En förekomst av en variabel
som inte är bunden säges vara fri.
∃p . prime(p) ∧ p > n
(∃p . prime(p)) ∧ p > n
∀n . ∃p . prime(p) ∧ p > n
OMD 2010
F9-9
Aktivitet
OMD 2010
F9-10
Fermat-tal
Markera fria förekomster av variabler i
n
∀n ∈ {1, 2, 3, 4} . prime(22 + 1) =
(∀n . n > 0) ∨ (n = 0)
1
2
3
4
prime(22 + 1) ∧ prime(22 + 1) ∧ prime(22 + 1) ∧ prime(22 + 1)
OMD 2010
F9-11
OMD 2010
F9-12
Substitution
Substitution i aritmetiska uttryck
e och t är uttryck
x är en variabel
Om n är en numerisk literal
n[x\t]
M
=
n
e[x\t]
Om ett uttryck bara består av en variabel, v , har vi två fall
v [x\t]
v [x\t]
är det uttryck man får när man i e ersätter alla fria förekomster av
x med t
OMD 2010
F9-13
Substitution i sammansatta aritmetiska uttryck
(e1 − e2 )[x\t]
(e1 · e2 )[x\t]
(e1 /e2 )[x\t]
OMD 2010
M
=
M
=
M
=
M
=
M
=
t
om v och x är samma variabel
v
om v och x är olika variabler
OMD 2010
F9-14
Aktivitet
Högerleden i de fyra sista definitionerna av substitution tillåter två
tolkningar beträffande hur mycket som skall utsättas för den sista
substitutionen. Sätt ut parenteser så att det inte råder någon
tvekan i
(e1 [x\t] + e2 [x\t])
De återstående fallen handlar om sammansatta uttryck.
(e1 + e2 )[x\t]
M
=
(e1 [x\t] + e2 [x\t])
(e1 [x\t] − e2 [x\t])
(e1 [x\t] · e2 [x\t])
Vilken precedens skall substitutionsoperatorn ha relativt de
aritmetiska operatorerna för att man skall kunna utelämna
parenteserna i högerledet?
(e1 [x\t]/e2 [x\t])
F9-15
OMD 2010
F9-16
Stora”∧ och ∨
Aktivitet
Utför substitutionerna
n
^
(x · x)[x\x + 1] =
i=1
n
_
(y · x)[x\y + 1] =
(x · x)[x\x + 1][x\x + 1] =
OMD 2010
i=1
F9-17
Substitution i kvantifieringar
M
Pi
=
Pi
=
M
P1 ∧ · · · ∧ Pn = ∀i ∈ {1, . . . , n} . Pi
P1 ∨ · · · ∨ Pn = ∃i ∈ {1, . . . , n} . Pi
OMD 2010
F9-18
Substitution med namnkollision
om v och x är olika variabler och v inte är fri i t
(∀v . P)[x\t]
M
=
(∀v . P[x\t])
I det återstående fallet måste man byta namn på
kvantifieringsvariabeln till ett nytt namn, z, som inte förekommer i
P innan man kan substituera in t.
(∀v . P)[x\t]
om v och x är samma variabel
(∀v . P)[x\t]
OMD 2010
M
=
M
=
(∀z . ((P[v \z])[x\t]))
(∀v . P)
F9-19
OMD 2010
F9-20
Inferensregler
P[x\t]
∀x . P
P[x\t]
P
∀x . P
∃x . P
[E∀ ]
OMD 2010
Q
Q
F9-21
Räknelagar
OMD 2010
[E∃ ]
F9-22
de Morgans lagar
∀x . P ∧ Q = (∀x . P) ∧ (∀x . Q)
∀x . ∀y . P = ∀y . ∀x . P
OMD 2010
[P[x\a]]
..
.
∃x . P
[I∀ ]
[I∃ ]
¬∀x . P = ∃x . ¬P
¬∃x . P = ∀x . ¬P
F9-23
OMD 2010
F9-24