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 2024 ExpyDoc