Logica voor Informatica
Mehdi Dastani
Introductie predicatenlogica
Semantiek van Predicatenlogica
Gottlob Frege
Semantiek
Tot nu toe hebben we het alleen gehad over
de syntax van een predikatenlogische taal T.
Nu gaan we over naar de semantiek.
Een model voor een predicatenlogische taal
T is M=<D,I> waar:
Een niet-leeg domein D van objecten
Een interpretatie-functie I
Interpretaties
Given a domain D, een interpretatie(functie)
I interpreteert
Constante c
I(c) = d∈D
Functiesymbool fn
I(fn) = hin : Dn → D
Predicaatsymbool Pn
I(Pn) = Rn ⊆ Dn
Voorbeeld
D=
Gegeven I met
(verz. natuurlijke getallen)
I(0) = 0
I(S) = Succ
I(+) = +
zdd
zdd
I( +( S(0) , S(0) ) ) =
=
=
=
Succ(0)=1 ,…
+(1,1)=2 ,…
I(+)( I(S(0)) , I(S(0)) )
+( I(S)(I(0)) , I(S)(I(0)) )
+(Succ(0), Succ(0))
+(1, 1) = 2
Bedelingen (Assignments)
Een bedeling is een functie b : VAR → D die de
variabelen afbeeldt op objecten in het domein D.
Voorbeeld: VAR = {x,y,z,…} en D = {Jan, Piet, Auto,…}
b1(x)=Jan,
b2(x)=Piet,
b3(x)=Auto,
…
b1(y)=Piet,
b2(y)=Jan,
b3(y)=Piet,
b1(z)=auto
b2(z)=auto
b3(z)=Piet
Dezelfde object
…
…
…
Waardering van Termen
Een interpretatie I beeldt CON, FUN en PRE van
predikatenlogische taal T af op objecten, functies
en relaties in het domein D.
Een bedelingen b beeldt VAR van T af op
objecten in het domain D.
Given een interpretatie I en een bedeling b, een
waardering is een functie WI,b: TER → D die
termen afbeeldt op objecten in D.
Waardering van Termen
Given een interpretatie I en een bedeling b, een
waardering is een functie WI,b: TER → D die
termen afbeeldt op objecten in D.
WI,b(t) = I(t)
als t een constante is
WI,b(t) = b(t)
als t een variabele is, dus iedere
variabele heeft een waarde in D
WI,b(fn(t1,…, tn))
=
I(fn)(WI,b(t1),…, WI,b(tn))
Varianten van bedelingen
We definieren een relatie =x op bedelingen
b’ =x b
“b’ is een x-variant van b”, of
“b’ is gelijk aan b, evt. op x na”
b’ =x b ⇔ voor alle variabelen y ≠ x: b’(y) = b(y)
(en voor alle constanten, functie- en predicatensymbolen
zijn b en b’ ook gelijk)
M.a.w. b’ en b kunnen alleen in hun waarde voor x
verschillen, dus niet noodzakelijk b(x) = b’(x)
Valuatie
Wat betekent het dat “formule ϕ van
predikatenlogische taal T waar is in M=<D,I>” ?
Gegeven een model M en een bedeling b, een
valuatie is een functie VM,b:FOR→{true,false} zdd
VM,b(Pn(t1,…, tn)) = true
VM,b(¬ ϕ) = true
VM,b(ϕ∧ψ) = true
VM,b(ϕ∨ψ) = true
VM,b(ϕ→ψ) = true
VM,b(ϕ↔ψ) = true
⇔
⇔
⇔
⇔
⇔
⇔
< VM,b(t1) ,…, VM,b(tn) > ∈ I(Pn)
VM,b(ϕ) = false
VM,b(ϕ)=true en VM,b(ψ)=true
VM,b(ϕ)=true of VM,b(ψ)=true
als VM,b(ϕ)=true dan VM,b(ψ)=true
VM,b(ϕ)=true desda VM,b(ψ)=true
Valuatie (kwantoren)
Gegeven een model M en een bedeling b, een
valuatie is een functie VM,b:FOR→{true,false} zdd
VM,b(∃x ϕ) = true
⇔
VM,b’ (ϕ)=true voor een b’=x b
VM,b(∀x ϕ) = true
⇔
VM,b’ (ϕ)=true voor alle b’=x b
Vervulbaarheid (Satisfactie) ⊨
Zij M=<D,I> een model van de predikatenlogische
taal T, b een bedeling, en ϕ een formule uit T.
We zeggen dat M en b de formule ϕ vervullen als
VM,b(ϕ) = true
Notatie: M,b ⊨ ϕ
Dus:
M,b ⊨ ϕ
⇔
VM,b(ϕ) = true
Voorbeeld: Er is een even
natuurlijk getal ∃x Even(x)
Zij D= , M=<D, I > een model met
I(Even) = Even = {2,4,6,…}, en bedeling b
M,b ⊨ ∃x Even(x)
⇔ VM,b(∃x Even(x)) = true
⇔ VM,b(Even(x)) = true voor een b’ met b’ =x b
⇔ er is b’ en n∈D : VM,b’(Even(x)) = true en
b’(x)=n en b’(y) = b(y) voor alle y ≠ x
⇔ er is b’ en n∈D : VM,b’(x)∈ I(Even)
⇔ er is n∈D : n ∈ Even = {2,4,6,…}
⇔ true
Waarheid en Contingentie
Een formule ϕ is waar in een model M
Een formule ϕ is onwaar in een model M
Notatie: M ⊨ ϕ
Als voor alle bedeling b geldt: M,b ⊨ ϕ
Notatie: M ⊭ ϕ
Als voor alle bedeling b geldt: M,b ⊭ ϕ
Een formule ϕ is contingent in een model M
Als ϕ waar noch onwaar is in M
Logisch gevolg
Een predikatenlogische formule ψ is een logisch
gevolg van predikatenlogische formules ϕ1,…,ϕn
Notatie: ϕ1,…,ϕn ⊨ ψ
Als voor elk model M geldt dat
M ⊨ ϕ1∧…∧ϕn implies M ⊨ ψ
© Copyright 2026 ExpyDoc