Paradigmes i Llenguatges de Programaci oima.udg.edu/Docencia/3105200736/logica_breu.pdfResum...

60
Paradigmes i Llenguatges de Programaci´ o L` ogica de Primer Ordre per a Calcular Mateu Villaret IMA, UdG 9 d’abril de 2013

Transcript of Paradigmes i Llenguatges de Programaci oima.udg.edu/Docencia/3105200736/logica_breu.pdfResum...

Paradigmes i Llenguatges de ProgramacioLogica de Primer Ordre per a Calcular

Mateu Villaret

IMA, UdG

9 d’abril de 2013

Resum

IntroduccioFinalitat, orıgens i context

Logica ProposicionalSintaxi: proposicions, literals, formules, ...Semantica: interpretacio, model, satisfaccio logica, taules ...Deduccio: regles d’inferencia, solidesa i completesa.Resolucio: clausules, CNF, resolucio sistematicaResolucio a Prolog: clausules de Horn, SLD-resolucio eincompletesa

Logica de Primer Ordre (o de Predicats)SintaxiSemanticaDemostracio a logica de predicatsCNFUnificacioResolucio

Introduccio

La Programacio logica esta basada en:

I Llenguatge Logic: Logica de primer ordre (Horn)

I Sistema d’Inferencia: Resolucio (SLD)

Es un estil declaratiu:

I un programa sera una transcripcio de fets i regles sobre elproblema que volem resoldre i que conformaran una teoria

I un calcul sera una demostracio en la teoria del programa

Per exemple, una teoria sobre els naturals i la relacio suma, ollistes i la relacio ordenada, ...

Diferents logiques

I Logica proposicional

I Logica de predicats (o de primer ordre)

I Logica d’ordre superior

I Logica difusa

I Description Logics (Semantic web)

I Logica temporal

I ...

Orıgens

I Automatitzar la matematica, Hilbert (principis XX)

I Fracassa: Godel, Turing, (30’s)

I Algorisme de Resolucio/Unificacio per a LPO, Robinson(1965)

I PROLOG, Colmerauer, (70’s)

I CLP, Colmerauer, Lassez (finals 80’s)

I SAT-solvers, SMT, ... (2000’s)

Pros i Contres de la programacio logica

Avantatges:

I expressar coneixement independentment de la maquina...

I programes “matematics”, facil raonament sobre les sevespropietats

I programes curts, facil per al prototipatge

I Constraints

Inconvenients:

I mancances historiques: tipatge, aritmetica, E/S, grafics,...

I no es pur

I ineficiencia en alguns aspectes

Resum

IntroduccioFinalitat, orıgens i context

Logica ProposicionalSintaxi: proposicions, literals, formules, ...Semantica: interpretacio, model, satisfaccio logica, taules ...Deduccio: regles d’inferencia, solidesa i completesa.Resolucio: clausules, CNF, resolucio sistematicaResolucio a Prolog: clausules de Horn, SLD-resolucio eincompletesa

Logica de Primer Ordre (o de Predicats)SintaxiSemanticaDemostracio a logica de predicatsCNFUnificacioResolucio

Exemple

Suposem la seguent descripcio “geo-meteorologica”:

edinburgh → ventedinburgh → escociaescocia → plouvent ∧ plou → paraiguesgirat

edinburgh

Se’m girara el paraigues?

Exemple

Ho passem a Prolog:

vent :- edinburgh.

escocia :- edinburgh.

plou :- escocia.

paraiguesgirat :- vent , plou.

edinburgh.

?- paraiguesgirat.

yes

I Perque es aquesta la resposta correcta?Consequencia logica.

I Com ho sap Prolog?Deduccio.

Sintaxi

Formula

I tot sımbol de predicat p, q, r , . . . es una formula

I si F es una formula, llavors ¬F es una formula

I si F i G son formules, llavors F ∧ G i F ∨ G son formules

I si F es una formula llavors ( F ) es una formula.

I res mes es una formula

A part de les connectives ¬, ∧, i ∨, sovint se’n fan servir d’altrescom: →, ←, i ↔.

Semantica (i)

Interpretacio

Una interpretacio I sobre P, es una funcio

I : P → {0, 1}

AvaluacioDefinim evalI (F ) com segueix:

I Si F es un sımbol de predicat p, evalI (F ) = I (p)

I evalI (F ∧ G ) = 1 sii evalI (F ) = 1 i evalI (G ) = 1

I evalI (F ∨ G ) = 1 sii evalI (F ) = 1 o evalI (G ) = 1

I evalI (¬(F )) = 1 sii evalI (F ) = 0

Notacio: I |= F , sii evalI (F ) = 1.

Semantica (ii)

I Una interpretacio I es un model d’una formula F si I satisfaF , es a dir, si I |= F .

I Una formula F es satisfactible si te algun model, per tant, sihi ha alguna interpretacio que satisfaci F .

I Una formula F es insatisfactible (o es una contradiccio) sino te cap model.

I Una formula F es una tautologia (o es diu que es valida) sitota interpretacio es model de F .

I Una formula F es una consequencia logica d’una formula Gsi tot model de G tambe ho es de F . Implicacio logica:G |= F .

I Una formula F es logicament equivalent a una formula G sitot model de G tambe ho es de F i viceversa: I |= G siiI |= F .

Semantica (iii)

Graus de veritat:

F es valida sii ¬F es insatisfactible

Valides Satisfactibles pero no valides InsatisfactiblesG F ¬F ¬G

Taules de Veritat

evalI (p) evalI (q) evalI (¬p) evalI (p ∧ q) evalI (p ∨ q)

1 1 0 1 11 0 0 0 10 1 1 0 10 0 1 0 0

Amb taules de veritat podem demostrar implicacions logiques,satisfactibilitat de formules, contradiccions, tautologies, ...

Equivalencies logiques

F ∧ F (∨) ≡ F (∨) idempotencia de ∧ (i ∨)F ∧ G ≡ G ∧ F (∨) commutativitat de ∧ (i ∨)F ∧ (G ∧ H) ≡ (F ∧ G ) ∧ H associativitat de ∧F ∨ (G ∨ H) ≡ (F ∨ G ) ∨ H associativitat de ∨(F ∧ G ) ∨ H ≡ (F ∨ H) ∧ (G ∨ H) distributivitat 1(F ∨ G ) ∧ H ≡ (F ∧ H) ∨ (G ∧ H) distributivitat 2F ∧ (F ∨ G ) ≡ F absorcio 1F ∨ (F ∧ G ) ≡ F absorcio 2¬(F ∧ G ) ≡ ¬F ∨ ¬G De Morgan 1¬(F ∨ G ) ≡ ¬F ∧ ¬G De Morgan 2¬¬F ≡ F doble negacio

Regles d’inferencia (i)

En teoria de la demostracio el que es preten es disposar d’unmecanisme sintactic que ens permeti, mitjancant les regles dededuccio (o d’inferencia), obtenir una formula (conclusio) apartir d’altres (premisses).

{F1, . . . ,Fn} `R F0

A les formules de l’esquerra les anomenarem axiomes i a lesformules que es poden obtenir a la banda dreta les anomenaremteoremes.Una derivacio o demostracio es una sequencia de formulesobtingudes a partir dels axiomes inicials, els axiomes logics o apartir d’aplicacions de les regles d’inferencia.

Regles d’inferencia (ii)

Per exemple, aquestes poden ser algunes regles d’inferencia:

I Modus Ponens:{A,A→ B} `MP B

I Modus Tollens:

{¬A,B → A} `MT ¬B

I Modus ”Mistakens”:

{A,B → A} `MM B

Quines de les anteriors regles son “correctes”?

Regles d’inferencia (iii)

SolidesaUna regla R es solida (correcta) quan:

si {F1, . . . ,Fn} `R F0 llavors {F1, . . . ,Fn} |= F0

Completesa

Un sistema d’inferencia1 R es complet quan

si {F1, . . . ,Fn} |= F0 llavors {F1, . . . ,Fn} `R F0

En general ens interessara un sistema d’inferencia complet basat enregles solides.

1Conjunt de regles + estrategia d’utilitzacio.

Resolucio (i)

Clausules

I Un literal es o be un sımbol de predicat o be un sımbol depredicat negat: p o ¬p.

I Una clausula es una disjuncio de literals:¬p1 ∨ . . . ∨ ¬pi ∨ pi+1 ∨ . . . ∨ pn

es pot veure tambe com un conjunt de literals.La clausula buida � es una clausula insatisfactible especial.

I Una formula esta en forma normal conjuntiva (CNF) si esuna conjuncio de clausules:

(l11 ∨ l12 ∨ · · · ∨ l1k1) ∧ . . . ∧ (ln1 ∨ ln2 ∨ · · · ∨ lnkn)

es pot veure tambe com un conjunt de clausules.

Resolucio (ii)

Tota formula te una corresponent CNF:

1. passar a formula escrita nomes per ∨,∧,¬2. passar les ¬ fins als sımbols de predicats

3. aplicar distributivitat

L’exemple inicial es passaria a CNF aixı:

edinburgh → vent ¬edinburgh ∨ ventedinburgh → escocia ¬edinburgh ∨ escociaescocia → plou ¬escocia ∨ plouvent ∧ plou → paraiguesgirat ¬vent ∨ ¬plou ∨ paraiguesgirat

edinburgh edinburgh

Resolucio (iii)

ResolucioSigui p un sımbol proposicional i C i D clausules, definim la reglad’inferencia resolucio com:

{p ∨ C , ¬p ∨ D} `Res {C ∨ D}

Habitualment es representa aixı:

p ∨ C ¬p ∨ D

C ∨ D

Resolucio (iv)

Completesa refutacional

Una regla de deduccio R sobre clausules, es refutacionalmentcompleta si, per a tot conjunt insatisfactible de clausules S , laclausula buida apareix a la clausura sota R de S .

I La resolucio2 es refutacionalment completa, per tant

si S es insatisfactible, llavors � ∈ Res∗(S)

I Pero com ens ho farem per demostrar amb resolucio:

{A1, . . . ,An} |= F

2Res∗(S) es resolucio sistematica, es a dir, fer resolucio de “tots amb tots”,afegir-hi les clausules resultants i iterar fins a trobar el punt fix.

Resolucio (v)

Tenim que:{A1, . . . ,An} |= F sii {A1, . . . ,An−1} |= An → Fpassant totes les premisses a l’altre costat, obtenim:

|= A1 → (A2 . . .→ (An → F ) . . .)

i com que: A→ (B → C ) ≡ (A ∧ B)→ C , podem escriure:

|= (A1 ∧ A2 ∧ . . . ∧ An)→ F

comprovem que la formula de dalt negada es insatisfactible:

(A1 ∧ A2 ∧ . . . ∧ An ∧ ¬F ) |= �

Com que la resolucio es refutacionalment completa:

{A1, . . . ,An} |= F sii {A1, . . . ,An,¬F} `Res∗ �

Resolucio sistematica

La Resolucio sistematica es un procediment de decisio (acaba)refutacionalment complet.

Resolucio sistematica

Res0(S) = SRes1(S) = S ∪ { resolents de cada parell

possible de clausules de S }. . .Resn+1(S) = Resn(S) ∪ { resolents possibles de cada

parell de clausules de Resn(S) }

La resolucio sistematica acaba: ∃k . Resk(S) = Resk+1(S) .

Clausules de Horn

Clausules de HornUna clausula es de Horn si te com a molt un literal positiu.

I Habitualment, els programes logics (Prolog) estan escritsamb clausules de Horn:I Fets: un sol literal positiu.I Regles: una clausula amb un literal positiu i algun de negatiu.I Queries: una clausula amb nomes literals negatius.

SLD-Resolucio

SLD-Resolucio (la resolucio del Prolog)

I S’agafa la clausula objectiu: ¬O1 ∨ · · · ∨ ¬On

I Es triala primera clausula del programa que tingui O1 en positiu (esa dir, un fet, o la consequencia d’una regla), p.ex:O1 ∨ ¬O ′1 ∨ · · · ∨ ¬O ′m i es fa la resolucio amb la clausulaobjectiu:

¬O1 ∨ · · · ∨ ¬On O1 ∨ ¬O ′1 ∨ · · · ∨ ¬O ′m¬O ′1 ∨ · · · ∨ ¬O ′m ∨ ¬O2 ∨ · · · ∨ ¬On

I Ara el nou objectiu es el resolent (la clausula resultant de ferla resolucio), si es � hem acabat amb exit.

I Si s’ha de fer backtracking, es buscara la seguent clausula pera resoldre O1 i si no n’hi ha cap es propagara el backtrackingcap a nivells superiors de la cerca.

I Si s’ha de fer backtracking i no queda alternatives es falla.

Exemple del paraigues

Aquesta seria una sequencia de passos de resolucio SLD (Prolog):

¬pg pg ∨ ¬v ∨ ¬pl

¬v ∨ ¬pl v ∨ ¬ed

¬ed ∨ ¬pl ed

¬pl pl ∨ ¬es¬es es ∨ ¬ed

¬ed ed�

L’arbre de cerca de Prolog (i)

Suposem la seguent descripcio “geo-meteorologica”3:

solMesCalent → escalfamentGlobalaugmentCO2 → escalfamentGlobalescalfamentGlobal → fonGelfonGel → albedoDecreixalbedoDecreix → eslcalfamentGlobal

augmentCO2

Es fon el gel?

Afegim ¬fonGel a la teoria (programa) i busquem la clausulabuida.

3L’albedo es el percentatge de radiacio retornada per una superfıcie.

L’arbre de cerca de Prolog (ii)

Tenim diversos camins per a obtenir la clausula buida:

¬fonGel ¬esGlob ∨ fonGel¬esGlob ¬solMC ∨ esGlob

¬solMC ??

Com que no sabem que fer amb ¬solMC hem de fer Backtrackingal primer lloc on tenim una alternativa, es a dir, en la demostraciode ¬esGlob:

¬fonGel ¬esGlob ∨ fonGel¬esGlob ¬aCO2 ∨ esGlob

¬aCO2 aCO2�

i si volem encara una altra demostracio? (;)

L’arbre de cerca de Prolog (iii)

¬fonGel ¬esGl ∨ fonGel¬esGlob ¬aldDec ∨ esGlob

¬alDec ¬fonGel ∨ alDec¬fonGel. . .

I Com veiem, anem un altre cop a l’objectiu ¬fonGel . Prologno recorda que ja ho ha intentat demostrar i segueix com sires... Per tant es reproduıran els passos de la transparenciaanterior. Es a dir, aquest programa te infinites maneres dedemostrar que es fon el gel.

I Aquesta cerca es pot representar en forma d’arbre...

L’arbre de cerca de Prolog (iv)

fonGel (1)

esGlob (2)

solMC (3) aCO2 (4)

yes(5) ;

albDec (6)

fonGel(7)

esGlob(8)

solMC(9) aCO2(10)

yes(11) ;

albDec(12)

. . .

S’indica entre parentesis, l’ordre de visita dels nodes.

Incompletesa de l’SLD-Resolucio (i)

Que passa si canviem l’ordre del nostre programa Prolog i enlloc defer-lo tal com havıem posat les regles el fem aixı?:

esGlob :- albDec.

esGlob :- solMC.

esGlob :- aCO2.

fonGel :- esGlob.

albDec :- fonGel.

aCO2.

?- fonGel.

Incompletesa de l’SLD-Resolucio (ii)

fonGel (1)

esGlob(2)

albDec(3)

fonGel(4)

esGlob(5)

albDec(6)

fonGel(7)

esGlob(8)

. . . (∞)

- -

- -

Incompletesa de l’SLD-Resolucio (iii)

I La implementacio de l’SLD resolucio de Prolog no escompleta.

I L’ordre dels fets i les regles condicionen eficiencia icompletitud.

Podriem recuperar la completitud:

I Loop checking: si comprovem a cada node de l’arbre si ja hemtractat l’objectiu, recuperem completesa i acabament, peronomes en el cas proposicional, no en logica de primer ordre.

I Recorregut en amplada: si fem el recorregut de l’arbre decerca en amplada, recuperem completes, pero no acabament.

Cap de les dues ”solucions”s’adopta a Prolog per raons d’eficiencia.

Mes expressivitat, pero a quin preu?

Sobre l’expressivitat

TEORIA: Tenim una classe amb el professor, la maria i en pere. Lamaria coneix a tothom. El professor coneix a tothom. En pereconeix a algu si la maria tambe el coneix.PREGUNTA: En pere es coneix?

Podem usar Logica de Primer Ordre:I Guany expressiu, gracies a: ∃, ∀, X , permet parlar de

relacions entre entitats no necessariament finites.I afirmar l’existencia d’objectes que satisfan cert predicatsI descriure propietats globals, universals.

I Perdua de decidibilitat en les questions logiques mesinteressants.

I De totes maneres tindrem ”semi-decidibilitat”.

Resum

IntroduccioFinalitat, orıgens i context

Logica ProposicionalSintaxi: proposicions, literals, formules, ...Semantica: interpretacio, model, satisfaccio logica, taules ...Deduccio: regles d’inferencia, solidesa i completesa.Resolucio: clausules, CNF, resolucio sistematicaResolucio a Prolog: clausules de Horn, SLD-resolucio eincompletesa

Logica de Primer Ordre (o de Predicats)SintaxiSemanticaDemostracio a logica de predicatsCNFUnificacioResolucio

De Logica proposicional a logica de predicats

En Logica de predicats tenim mes expressivitat:

I Els termes representen elements del contexte del que estemparlant (l’univers del discurs).

I Els predicats expressen relacions entre aquests elements.

I Les formules expressen proposicions (sentencies que soncertes o falses) sobre l’univers.

Sintaxi (i)

Disposem de:

I un conjunt de sımbols de funcioF = f , g , h, . . . , a, b, . . . , successor , zero... amb una aritat

I un conjunt de sımbols de variable X = X ,Y ,Z , . . .

Terme:

T :: a on a ∈ F , a te aritat 0| X X ∈ X| f (T1, . . . ,Tn) on f ∈ F , f te aritat n ≥ 1 (f es n-aria)

Sigui F = {f , g , a, b} i X = {X ,Y } on f te aritat 1, g aritat 2,a, b aritat 0.

mida termes

1 a b X Y2 f (a) f (b) f (X ) f (Y )3 g(a, a) g(a,X ) g(X ,Y ) f (f (a)) . . .4 g(f (a),X ) f (g(a,X )) f (g(Y , b)) g(X , f (b)) . . .

Sintaxi (ii)

Disposem tambe

I d’un conjunt de sımbols de predicat (relacions)P = p, q, r, . . . , esparell, home, . . . amb una aritat

Atom:

A :: q on q ∈ P, q te aritat 0| p(T1, . . . ,Tn) on p ∈ P, p te aritat n ≥ 1

Sigui P = {suma, esparell},F = {succ , zero} i X = {X ,Y } onesparell i succ tenen aritat 1, suma aritat 3 i zero aritat 0.

esparell(zero) esparell(succ(succ(X )))suma(zero, succ(zero), succ(zero)) suma(X , zero, succ(zero))suma(zero, succ(zero), zero)

Sintaxi (iii)

Formules:

I tot atom es una formula,

I si F i G son formules, llavors ¬(F ), (F ∧ G ) i (F ∨ G ) sonformules,

I si F es una formula, llavors ∀X (F ) i ∃X (F ), son formules siX apareix lliure a F ,

I res mes es una formula.

Sigui P = {suma, esparell},F = {succ , zero} i X = {X ,Y } onesparell i succ tenen aritat 1, suma aritat 3 i zero aritat 0.

esparell(succ(succ(zero)))∀X .esparell(X )∃X ∃Y suma(X ,Y , succ(zero))

Semantica (i)

Interpretacio, I :

I Un conjunt no buit D, anomenat domini de I ,

I per cada sımbol f n ∈ F , una funcio fI :n

D × . . .× D → D,

I per cada sımbol pn ∈ P, una funcio pI :n

D × . . .× D → {0, 1}.

Sigui P = {suma, esparell}iF = {succ , zero} on esparell isucc tenen aritat 1, suma aritat 3 i zero aritat 0.

Una possible interpretacio Nat es:

D = NzeroNat = 0succNat = λx . x + 1

sumaNat = λx , y , z . x + y == zesparellNat = λx . x mod 2 == 0

Semantica (i)

Interpretacio, I :

I Un conjunt no buit D, anomenat domini de I ,

I per cada sımbol f n ∈ F , una funcio fI :n

D × . . .× D → D,

I per cada sımbol pn ∈ P, una funcio pI :n

D × . . .× D → {0, 1}.

Sigui P = {suma, esparell}iF = {succ , zero} on esparell isucc tenen aritat 1, suma aritat 3 i zero aritat 0.

Una possible interpretacio Nat es:

D = NzeroNat = 0succNat = λx . x + 1

sumaNat = λx , y , z . x + y == zesparellNat = λx . x mod 2 == 0

Semantica (ii)

I Donada I , una assignacio α es una funcio α : X → DI .α[X → d ] es una assignacio identica en tot a α menys en queassocia d a X .

I Avaluacio d’un terme t segons una interpretacio I i unaassignacio α:

evalαI (t) :: Termes → D

I si X ∈ X llavors evalαI (X ) = α(X ),I si f ∈ F llavors

evalαI (f (t1, . . . , tn)) = fI (evalαI (t1), . . . , evalαI (tn))

I Avaluacio d’una formula F segons una interpretacio I :

evalαI (F ) :: Formules → {0, 1}

I si pn ∈ P llavorsevalαI (p(t1, . . . , tn)) = pI (evalαI (t1), . . . , evalαI (tn))...

Semantica (iii)

I ...I evalαI (F ∧ G ) = 1 sii evalαI (F ) = 1 i evalαI (G ) = 1I evalαI (F ∨ G ) = 1 sii evalαI (F ) = 1 o evalαI (G ) = 1I evalαI (¬(F )) = 1 sii evalαI (F ) = 0

I evalαI (∀X F ) = 1 sii evalα[X→d ]I (F ) = 1 per a tot d ∈ D

I evalαI (∃X F ) = 1 sii evalα[X→d ]I (F ) = 1 per algun d ∈ D

Normalment treballarem sense variables “lliures” per tant no estindran en conte les assignacions.Aixı, I satisfa F , I |= F , si i nomes si evalI (F ) = 1.Les nocions semantiques de logica proposicional s’hereden.Amb les propietats computacionals no passara el mateix...

Semantica (iii)

Sigui P = {q} i F = {s, a, b} on s, q tenen aritat 1 i a, b aritat0. Sigui la interpretacio I tal que, D = {∗, ]} iaI = ∗, bI = ], sI (]) = ∗, sI (∗) = ], qI (∗) = 1, qI (]) = 0 i sigui αuna assignacio qualsevol.

Avaluem ∀X q(s(X )):

evalαI (∀X q(s(X )))

evalα[X=∗]I (q(s(X ))) ∧ eval

α[X=]]I (q(s(X )))

qI (evalα[X=∗]I (s(X ))) ∧ qI (eval

α[X=]]I (s(X )))

qI (sI (evalα[X=∗]I (X ))) ∧ qI (sI (eval

α[X=]]I (X )))

qI (sI (∗)) ∧ qI (sI (]))

qI (]) ∧ qI (∗)0 ∧ 1

0

Mes equivalencies logiques

¬∀X H(X ) ≡ ∃X ¬H(X ) De Morgan 3¬∃X H(X ) ≡ ∀X ¬H(X ) De Morgan 4(∀X F ∧ G ) ≡ ∀X (F ∧ G ) si X no apareix a G(∀X F ∧ ∀X G ) ≡ ∀X (F ∧ G )(∃X F ∨ ∃X G ) ≡ ∃X (F ∨ G )

Compte amb les seguents no-equivalencies:

(∀X F ∨ ∀X G ) 6≡ ∀X (F ∨ G )

(∃X F ∧ ∃X G ) 6≡ ∃X (F ∧ G )

Consequencia logica

I Amb un nombre infinit de possibles termes...

{∀X sum(X , 0,X ),(∀X∀Y ∀Z sum(X ,Y ,Z )→ sum(X , s(Y ), s(Z )))

}|=?

sum(s(0), s(0), s(s(0)))

Que podem dir de la implicacio logica?I Com comprovar que tot model de les premises ho es de la

conclusio?I Quants models poden tenir les premises?I Ens serveix: negar la conclusio i intentar demostrar

insatisfactibilitat?

Procediments d’Herbrand

Teorema d’HerbrandUn conjunt de clausules C en CNF es insatisfactible

si i nomes sialgun subconjunt finit de la instanciacio ground

de C es insatisfactible

Per tant:

I servirara el mateix procediment: negar la conclusio i ajuntar-laamb la teoria per trobar la contradiccio,

I passar-ho a CNF, (lleugerament diferent que en proposicional)

I enlloc d’instanciar-la aplicar resolucio proposicional(ineficient!!) utilitzarem directament resolucio de primerordre.

Pas a CNF (i)

La transformacio d’una formula F a un conjunt de clausules Spreserva satisfactibilitat (equivalencia no):

I F es satisfactible si i nomes si ho es S

I S |= F (pero no necessariament F |= S)

Passos:

1. Eliminar els sımbols condicionals com →.

2. Moure les negacions cap als sımbols de predicat.

3. Eliminar els ∃ (Skolemitzacio): Tota occurrencia d’X lligadaper ∃X es substitueix per fX (Y1, . . . ,Yn), on Yi son lesvariables quantificades universalment per sobre de l’∃X , a mesfX es nou per a cada lligam.

4. Universals cap enfora evitant conflictes de noms de variables.

5. Distribucio de ∧ sobre ∨.

Pas a CNF (ii)

Obtenim formules amb el seguent format:

∀X1 . . . ∀Xm(l11 ∨ l12 ∨ · · · ∨ l1k1) ∧ . . . ∧ (ln1 ∨ ln2 ∨ · · · ∨ lnkn)

Per exemple:

∀X ( ∀Y (p(Y )→ q(X ,Y )) → ∃Y q(Y ,X ) )∀X ( ¬∀Y (¬p(Y ) ∨ q(X ,Y )) ∨ ∃Y q(Y ,X ) )∀X ( ∃Y ¬(¬p(Y ) ∨ q(X ,Y )) ∨ ∃Y q(Y ,X ) )∀X ( ∃Y (p(Y ) ∧ ¬q(X ,Y )) ∨ ∃Y q(Y ,X ) )∀X ( ∃Y (p(Y ) ∧ ¬q(X ,Y )) ∨ ∃Z q(Z ,X ) )∀X ( (p(fY (X )) ∧ ¬q(X , fY (X ))) ∨ q(fZ (X ),X ) )

( (p(fY (X )) ∨ q(fZ (X ),X )) ∧ (¬q(X , fY (X )) ∨ q(fZ (X ),X )) )

En CNF, els quantificadors universals no cal escriure’ls, essobreentenen.

Com definir una resolucio per a la logica de primer ordre?

Per fer la seguent resolucio de primer ordre passarem aproposicional.

p(t) ∨ Q ¬p(t ′) ∨ R

???

Regla de deduccio solida: instanciacio universal

∀X W (X ) ` ∀X0 . . . ∀Xn σ(W (X ))

on σ = {X 7→ s} i X0, . . . ,Xn son variables de s.

Per tant instanciarem universalment les dues clausules amb unasubstitucio σ que iguala (unifica) els literals que volem i faremcom en resolucio proposicional:

p(r) ∨ σ(Q) ¬p(r) ∨ σ(R)

σ(Q) ∨ σ(R)

on σ(p(t)) = σ(p(t ′)) = p(r)

Unificacio (i)

I La substitucio: σ = {X1 7→ t1, . . . ,Xn 7→ tn} (o{t1/X1, . . . , tn/Xn}) on Xi 6= Xj i les Xi son el dominiDom(σ) de la substitucio.

I L’aplicacio de σ a t consisteix en substituir simultaniamentcada ocurrencia d’Xi a t per ti . El resultat de la substitucio esdenota com a σ(t) (o tσ). Es pot extendre naturalment aliterals i clausules.La composicio de substitucions σ i σ′ es denota com σ′ ◦ σ ies aquella substitucio tal que σ′ ◦ σ(t) = σ′(σ(t)) = tσσ′.

Sigui σ = {X 7→ f (a,Y ),Y 7→ Z} i σ′ = {Y 7→ b,Z 7→ c} siguit = f (X , f (Y ,Z ))

σ(t) = f (f (a,Y ), f (Z ,Z ))σ′(t) = f (X , f (b, c))σ′ ◦ σ(t) = f (f (a, b), f (c , c))σ ◦ σ′(t) = f (f (a,Y ), f (b, c))

Unificacio (ii)

I Unificacio es, donats dos termes s ?= t, decidir si existeixalguna substitucion (unificador) σ tal que σ(s) = σ(t).

I La unificabilitat es pot decidir en temps polinomic.

I Donada una equacio solucionable s ?= t, l’unificador mesgeneral (σ = mgu(s, t)) es aquell tal que qualsevol altreunificador σ′ d’s i t, es una particularitzacio de σ, es a dir,que existeix una substitucio ρ tal que: σ′ = ρ ◦ σ.

I Generalitzem els conceptes a problemes d’unificacio: conjuntsd’equacions {s1 ?= t1, . . . , sn

?= tn}.

Unificacio (iii)

Procediment d’unificacio, (si unifica dona el mgu):

1. P ∪ {t ?= t} =⇒ P

2. P ∪ {f (t1, . . . , tn) ?= f (s1, . . . , sn)} =⇒ P⋃

1≤i≤n{ti?= si}

3. P ∪ {f (t1, . . . , tn) ?= g(s1, . . . , sn)} =⇒ CLASH (f 6= g)

4. P ∪ {X ?= t} =⇒ P{X 7→ t} ∪ {X ?= t} si X ∈ vars(P) iX /∈ vars(t). Si t = Y i X o Y no apareixen a la resta delproblema, no aplicarem la regla.

5. P ∪ {X ?= t} =⇒ OCCUR-CHECK (si X ∈ vars(t) i X 6= t)

El proces acaba quan produım un OCCUR-CHECK o un CLASH,no unificables; o quan no es poden aplicar mes regles i llavorsl’unificador es pot obtenir del que ha quedat que naturalmenttindra la forma:

{X1?= t1, . . . ,Xm

?= tm}

on les variables son resoltes...

Unificacio (iv)

Per exemple, unifiquem:

{p(f (X , g(X )), h(Y ),V

)?= p(Y , h(V ), f (g(Z ),W ))

)}

{f (X , g(X )) ?= Y , h(Y ) ?= h(V ),V ?= f (g(Z ),W )}{Y ?= f (X , g(X )), h(f (X , g(X ))) ?= h(V ),V ?= f (g(Z ),W )}{Y ?= f (X , g(X )), f (X , g(X )) ?= V ,V ?= f (g(Z ),W )}{Y ?= f (X , g(X )),V ?= f (X , g(X )), f (X , g(X )) ?= f (g(Z ),W )}{Y ?= f (X , g(X )),V ?= f (X , g(X )),X ?= g(Z ), g(X ) ?= W }{Y ?= f (g(Z ), g(g(Z ))),V ?= f (g(Z ), g(g(Z ))),X ?= g(Z ), g(g(Z )) ?= W }{Y ?= f (g(Z ), g(g(Z ))),V ?= f (g(Z ), g(g(Z ))),X ?= g(Z ),W ?= g(g(Z ))}

Resolucio i Factoritzacio

Sistema de demostracio refutacionalment complet

1. Resolucio.

A ∨ C ¬A′ ∨ D

Cσ ∨ Dσon σ = mgu(A,A′)

2. Factoritzacio.

A ∨ A′ ∨ C

Aσ ∨ Cσon σ = mgu(A,A′)

Per tant podem definir (com abans) ResFact∗(S) d’un conjunt declausules S de manera que: si T |= F llavors � ∈ Resfact∗(S) onS es la CNF de T ∧ ¬F .

I Cada vegada que fem servir una clausula reanomenaremvariables per evitar confusio.

SLD-resolucio de primer ordre

La teoria de la suma

∀X .suma(X , 0,X )∀X ,Y ,Z .suma(X ,Y ,Z )→ suma(X , s(Y ), s(Z ))

La demostracio amb SLD-resolucio de que:

suma(s(0), s(0), s(s(0)))

es:

¬suma(s(0), s(0), s(s(0))) ¬suma(X , Y , Z) ∨ suma(X , s(Y ), s(Z))

¬suma(s(0), 0, s(0))

X 7→ s(0),Y 7→ 0,Z 7→ s(0)

suma(X ′, 0, X ′)

�[X ′ 7→ s(0)]

on anotem en vermell els unificadors utilitzats a cada pas deresolucio.

El ”nou”arbre de cerca

En passar la teoria de la suma

∀X .suma(X , 0,X )∀X ,Y ,Z .suma(X ,Y ,Z )→ suma(X , s(Y ), s(Z ))

a Prolog, ens queda:suma(X,0,X).

suma(X,s(Y),s(Z)) :- suma(X,Y,Z).

Podem preguntar si:

| ?- suma(s(0),s(0),s(s(0))).

En els arbres de cerca Prolog, tambe anotarem les substitucions acada branca.En l’exemple actual es trivial.

Procediment de decisio

I Un procediment de decisio per a clausules en logica depredicats ens permetria, donat una teoria (programa) i unaformula (pregunta), respondre’ns (en un temps finit) si en casque la pregunta fos consequencia logica del programa i noaltrament.

I En logica de predicats no pot existir tal procediment dedecisio.

I La demostracio es pot obtenir codificant el problema del’aturada com a una pregunta en un programa ”tipus prolog”.

I El que si tenim es semidecidibilitat per a calcular laconsequencia logica.

De demostracions a calculs

I La resolucio que implementa el Prolog no es completa.

I Prolog no controla l’occur-check en la unificacio (eficiencia).

I Prolog ens permet calcular demostrant. En la cerca de laclausula buida d’aquesta teoria + query negada:

{ suma(X , 0,X ),¬suma(X ,Y ,Z ) ∨ suma(X , s(Y ), s(Z )),¬suma(A,B, s(s(0))) }

se’ns calculen els valors d’A i de B automaticament amb laresolucio/unificacio.

I Com garantir que es miren tots els camins quan ens cal?(multiples respostes)

I Prolog proporciona predicats extra-logics per a controlarl’arbre de cerca, el tall: !.