Logica voor Informatica 12 Normaalvormen Wouter Swierstra University of Utrecht 1
Vandaag We hebben gezien dat er verschillende normaalvormen zijn voor de propositionele logica. Maar hoe zit dat met de predikatenlogica? 2
Vandaag We hebben gezien dat er verschillende normaalvormen zijn voor de propositionele logica. Maar hoe zit dat met de predikatenlogica? Na vandaag volgen nog twee colleges over toepassingen van de logica binnen de informatica. logisch programmeren programmaverificatie 2
Vervulbaar equivalent ϕ en ψ zijn vervulbaar (semantisch) equivalent als voor elke model M en elke bedeling b geldt: M, b = ϕ M, b = ψ Notatie: ϕ ψ Stelling: Equivalenties uit propositielogica gelden ook voor predikatenlogica. Voorbeel: ϕ ψ ψ ϕ 3
Alfabetische variant Intuitief, zijn x.p (x) en y.p (y) hetzelfde Preciezer: x.p (x) y.p (y) We kunnen de gebonden variabele x hernoemen naar y om te laten zien dat ze inderdaad hetzelfde zijn. Twee formules heten alfabetische variant als ze door (een serie van) herbenoemingen gelijk gemaakt kunnen worden. 4
Alfabetische variant Intuitief, zijn x.p (x) en y.p (y) hetzelfde Preciezer: x.p (x) y.p (y) We kunnen de gebonden variabele x hernoemen naar y om te laten zien dat ze inderdaad hetzelfde zijn. Twee formules heten alfabetische variant als ze door (een serie van) herbenoemingen gelijk gemaakt kunnen worden. Voorbeeld van alfabetische variante formules: P (x) x(q(x) vr(x, v)) P (x) x(q(x) wr(x, w)) 4
Alfabetische variant De volgende formules zijn NIET alfabetische varianten: P (x) x(q(x) yr(x, y)) P (y) x(q(x) yr(x, y)) P (x) x(q(x) xr(x, x)) Let op: Twee formules zijn alleen alfabetische variant als we de gebonden variabelen herbenoemen. Stelling: Als ϕ en ψ alfabetische varianten zijn, dan ϕ ψ 5
Eenduidige formule Een formule ϕ heet eenduidig als geen variabele in ϕ zowel vrij als gebonden voorkomt, en elke variabele in ϕ slechts door een kwantor gebonden wordt. Voorbeeld: P (x) y(q(y) zr(y, z)) is eenduidig P (x) x(q(x) yq(x, y)) is NIET eenduidig xp (x) xq(x) is NIET eenduidig Stelling: Elke formule ϕ kan herschreven worden naar een eenduidig formule ψ zodat ϕ ψ. (genereer alfabetische variant van formule) 6
Eenduidige formule Waarom zijn eenduidige formules interessant? 7
Eenduidige formule Waarom zijn eenduidige formules interessant? Ze zijn een stuk eenvoudiger te manipuleren! We hoeven ons geen zorgen te maken over variable capture dat vrije variabelen plotseling gebonden worden tijdens een substitutie. Door eerst een formule eenduidig te maken, is het eenvoudiger om deze vervolgens verder te transformeren. 7
Normaalvormen in predikatenlogica Elke predikaten-formule kan herschreven worden tot een vervulbaar equivalente normaalvorm x 1... x n ϕ waar ϕ kwantorvrij (en in CNF vorm) is. In de rest van dit college gaan we de verschillende stappen toelichten die nodig zijn om deze normaalvorm te vinden. 8
Prenex normaalvorm Een predikaten-formule staat in prenex normaalvorm als alle kwantoren voorop staan. waar Q i {, } Q 1 x 1... Q n x n ϕ ϕ wordt de matrix genoemd, Q 1 x 1... Q n x n wordt de prefix genoemd. Stelling: For elke predikatenlogische formule bestaat een vervulbaar equivalent formule in prenex normaalvorm. 9
Vervulbaar equivalente formules Laat ϕ en ψ predikaten-formules zijn. De volgende equivalenties brengen kwantoren naar voren. x ϕ x ϕ x ϕ x ϕ ( x ϕ) ( x ψ) x (ϕ ψ) ( x ϕ) ( x ψ) x (ϕ ψ) x y ϕ y x ϕ x y ϕ y x ϕ 10
Vervulbaar equivalente formules x ϕ x ϕ Laat M en b willekeurige model en bedeling zijn, dan M, b = x ϕ er geldt niet M, b = x ϕ niet voor alle d D geldt M, b(x d) = ϕ er is een d D zodat niet M, b(x d) = ϕ er is een d D zodat M, b(x d) = ϕ M, b = x ϕ 11
Vervulbaar equivalente formules Laat ϕ en ψ predikaten-formules zijn. De volgende equivalenties brengen kwantoren naar voren. ( x ϕ) ψ x (ϕ ψ) ( x ϕ) ψ x (ϕ ψ) ( x ϕ) ψ x(ϕ ψ) ( x ϕ) ψ x(ϕ ψ) ϕ x ψ x(ϕ ψ) ϕ x ψ x(ϕ ψ) als x niet vrij in ψ voorkomt (ook voor ). als x niet vrij in ψ voorkomt (ook voor ). als x niet vrij in ψ voorkomt. als x niet vrij in ψ voorkomt. als x niet vrij in ϕ voorkomt. als x niet vrij in ϕ voorkomt. 12
Prenex normaalvorm P (x) x( y Q(x, y) z R(x, z) ) Stap 1: Indien nodig, zet de formule om in een eenduidige formule door gebonden variabelen te hernoemen. Voorbeeld: P (x) x( y Q(x, y) z R(x, z) ) P (x) u( y Q(u, y) z R(u, z) ) 13
Prenex normaalvorm P (x) x( y Q(x, y) z R(x, z) ) Stap 2: Elimineer alle voorkoens van en, en distribueer over de kwantoren: Voorbeeld: P (x) x( y Q(x, y) z R(x, z) ) P (x) u( y Q(u, y) z R(u, z) ) P (x) u( y Q(u, y) z R(u, z) ) P (x) u( y Q(u, y) z R(u, z) ) 14
Prenex normaalvorm P (x) x( y Q(x, y) z R(x, z) ) Stap 3: Breng alle kwantoren naar buiten: x ϕ ψ x (ϕ ψ) x ϕ ψ x (ϕ ψ) Voorbeeld: P (x) u( y Q(u, y) z R(u, z) ) P (x) u y z ( Q(u, y) R(u, z)) u y z (P (x) ( Q(u, y) R(u, z))) 15
Prenex normaalvorm P (x) x( y Q(x, y) z R(x, z) ) P (x) x( y Q(x, y) z R(x, z) ) P (x) u( y Q(u, y) z R(u, z) ) P (x) u( y Q(u, y) z R(u, z) ) P (x) u( y Q(u, y) z R(u, z) ) P (x) u y z ( Q(u, y) R(u, z)) u y z (P (x) ( Q(u, y) R(u, z))) 16
Skolemfunctie In predikaten-formule x y Q(x, y) y is afhankelijk van x: voor elke x is er een (van x afhankelijke) y. Een Skolemfunctie elimineert x door overal y te vervangen door f(x) voor een nieuw functiesymbol f (Skolemfunctie). x Q(x, f(x)) 17
Skolemfunctie Introduceer een nieuwe Skolemfunctie voor elke existentieel gekwantificeerde variabele. Een Skolemfunctie heeft als argument alle voorafgaande universeel gekwantificeerde variabelen. x 1... x n y Ψ x 1... x n Ψ[f(x 1,..., x n )/y] Herhaal totdat er geen existentiële kwantoren meer over zijn. Dit proces heeft Skolemiseren. 18
Skolemnormaalvorm Elke predikaten-formule kan geschreven worden in Skolemnormaalvorm, door Stap 1: de predikaten-formula omzetten in prenexnormaalvorm. Stap 2: Elimineer existentiële kwantoren door Skolemiseren. 19
Skolemnormaalvorm P (x) x( y Q(x, y) z R(x, z) ) Voorbeeld: u y z (P (x) ( Q(u, y) R(u, z))) u (P (x) ( Q(u, f 1 (u)) R(u, f 2 (u)))) Stelling: Als ϕ gesloten is, dan bestaat er een Skolemnormaalvorm ϕ van ϕ, zodat: ϕ is vervulbaar ϕ is vervulbaar 20
Skolemnormaalvorm De prenex (d.w.z. de rij universele kwantoren) van een predikaten-formule in Skolemnormaalvorm is overbodig. De Skolemnormaalvorm kan omgezet worden in CNF. 21
Het Volledig Plaatje Gegeven een predikatenlogische formule ϕ ϕ P renex Q 1 x 1... Q n x n ψ (ψ is kwantor vrij) Skolem x 1... x m χ (χ is kwantor vrij, m n) CNF x 1... x m L (L is literal) (CNF met alle variabelen universeel gekwantificeerd) 22
Het Volledig Plaatje Gegeven F P renex... Skolem... CNF F Stelling: Als F gesloten is, dan bestaat er een F zdd: F is vervulbaar F is vervulbaar Stelling: Als F gesloten is, dan geldt: F = F ( F = F geldt niet in het algemeen ) 23
Tot slot van het logica-deel Dit was een inleiding in de logica en logische technieken Zoals we hebben gezien, zijn er vele logische technieken, alleen al voor de klassieke propositielogica (semantisch en bewijstheoretisch) Belangrijk is die techniek(en) te gebruiken die voor de toepassing handig is en te allen tijde goed in de gaten te houden waar je precies mee bezig bent. Haal dus niet de verschillende begrippen (zoals logisch gevolg) voor verschillende logica s (propositie- vs. predikaten) door elkaar! 24