Lógica y Programación - Sintaxis y semántica de la lógica ...

26
L´ogicayProgramaci´on Sintaxis y sem´ antica de la l´ogica proposicional Antonia M. Ch´ avez, Carmen Graciani, Agust´ ın Riscos Dpto. Ciencias de la Computacion e Inteligencia Artificial Universidad de Sevilla

Transcript of Lógica y Programación - Sintaxis y semántica de la lógica ...

Page 1: Lógica y Programación - Sintaxis y semántica de la lógica ...

Logica y Programacion

Sintaxis y semantica de la logica proposicional

Antonia M. Chavez, Carmen Graciani, Agustın Riscos

Dpto. Ciencias de la Computacion e Inteligencia ArtificialUniversidad de Sevilla

Page 2: Lógica y Programación - Sintaxis y semántica de la lógica ...

Aplicaciones de la Logica Proposicional

La Logica es a los informaticos como la matematica a losarquitectos o fısicos.Es “el calculo de la informatica” (M. Y. Vardi).

• Analisis de las propiedades de los sitemas en su diseno,desarrollo, mantenimiento.

• Planificacion: manufactura automatica, robotica,programacion de vuelos en aerolıneas, ...

• Diseno y verificacion de circuitos ...

• Deduccion: resolucion de problemas SAT

• Resolucion de problemas de la vida real: horarios, rutas detransporte planificacion de obras, ...

Page 3: Lógica y Programación - Sintaxis y semántica de la lógica ...

Elementos de una logica

• Elementos de una logica:• Sintaxis: ¿que expresiones son formulas?• Semantica: ¿que significa que una formula F es consecuencia

de un conjunto de formulas S?: S |= F• Calculo: ¿que significa que una formula F puede deducirse a

partir de un conjunto de formulas S?: S ⊢ F

• Propiedades:• Potencia expresiva• Adecuacion: S ⊢ F =⇒ S |= F• Completitud: S |= F =⇒ S ⊢ F• Decidibilidad• Complejidad

Page 4: Lógica y Programación - Sintaxis y semántica de la lógica ...

Sintaxis de la logica proposicional

• Alfabeto proposicional:• Sımbolos proposicionales: p, p0, p1, ..., q, q0, q1, ...

• Constantes: ⊥, ⊤• Conectivas logicas: Negacion: ¬ Condicional: →

Conjuncion: ∧ Equivalencia: ↔Disyuncion: ∨

• Sımbolos auxiliares: (, ).

Page 5: Lógica y Programación - Sintaxis y semántica de la lógica ...

Sintaxis de la logica proposicional

Dado un conjunto SP de sımbolos proposicionales, se puede definirun lenguaje proposicional L(SP), que contiene todas las formulasposibles segun la siguiente definicion:

• Una formula proposicional es:• Un elemento de SP: (Formula atomica)• Si F y G son formulas, entonces: (¬ F ), (F ∧ G), (F ∨ G),

(F → G), (F ↔ G) tambien lo son.

• Ejemplos:• ((p → q) ∨ (q → p))• (p → (q ∨ (¬ r)))

Page 6: Lógica y Programación - Sintaxis y semántica de la lógica ...

Sintaxis de la logica proposicional

• Metavariables:• SP: conjunto de sımbolos proposicionales• FProp: conjunto de formulas proposicionales• Sımbolos proposicionales: p, p0, p1, ..., q, q0, q1, ..., r , ...

• Formulas proposicionales: F , F0, F1, ..., G , G0, G1, ...

• Eliminacion de parentesis:• Parentesis externos: (p → q) =⇒ p → q• Prioridad: ¬, ∧, ∨, →, ↔

(p ∨ (¬ q ∧ r)) → (s ∨ t) =⇒ p ∨ ¬ q ∧ r → s ∨ t((p ∧ ¬ q) ∨ r) → s =⇒ p ∧ ¬ q ∨ r → s

• Asociatividad: ∧ y ∨ asocian por la derechap ∧ (q ∧ r) =⇒ p ∧ q ∧ r

Page 7: Lógica y Programación - Sintaxis y semántica de la lógica ...

Sımbolos de una formula

• Sımbolos proposicionales de una formula:sp(p) = {p}sp(¬ F ) = sp(F )sp(F ∧ G ) = sp(F ) ∪ sp(G )sp(F ∨ G ) = sp(F ) ∪ sp(G )sp(F → G ) = sp(F ) ∪ sp(G )sp(F ↔ G ) = sp(F ) ∪ sp(G )

Page 8: Lógica y Programación - Sintaxis y semántica de la lógica ...

Semantica de la logica proposicional

• La semantica debe proporcionarnos:• Nocion de verdad: funcion de verdad• Significado de las formulas: especificacion• Nocion de consecuencia logica: conclusiones

• Valores de verdad: ⊥ y ⊤ (utilizaremos False y True)

Page 9: Lógica y Programación - Sintaxis y semántica de la lógica ...

Semantica de la logica proposicional

• Funciones de verdad• fv¬ : {False, True} → {False, True}

fv¬(i) =

{

True si i = FalseFalse si i = True

• fv∧ : {False, True}2 → {False, True}

fv∧(i , j) =

{

True si i = j = TrueFalse en otro caso

• fv∨ : {False, True}2 → {False, True}

fv∨(i , j) =

{

False si i = j = FalseTrue en otro caso

Page 10: Lógica y Programación - Sintaxis y semántica de la lógica ...

Semantica de la logica proposicional

• Funciones de verdad• fv→ : {False, True}2 → {False, True}

fv→(i , j) =

{

False si i = True y j = FalseTrue en otro caso

• fv↔ : {False, True}2 → {False, True}

fv↔(i , j) =

{

True si i = jFalse en otro caso

Page 11: Lógica y Programación - Sintaxis y semántica de la lógica ...

Semantica de la logica proposicional

• Interpretacion:• Una interpretacion I es un conjunto de sımbolos

proposicionales

• Interpretaciones: Conjunto de todas las interpretaciones

• sig : FProp × Interpretaciones → {False,True}

• sig(p, I ) =

{

True si p ∈ IFalse en otro caso

• sig(¬F , I ) = fv¬(sig(F , I ))• sig(F ∧ G , I ) = fv∧(sig(F , I ), sig(G , I ))• sig(F ∨ G , I ) = fv∨(sig(F , I ), sig(G , I ))• sig(F → G , I ) = fv→(sig(F , I ), sig(G , I ))• sig(F ↔ G , I ) = fv↔(sig(F , I ), sig(G , I ))

Page 12: Lógica y Programación - Sintaxis y semántica de la lógica ...

Semantica de la logica proposicional

• Ejemplo: F = (p ∨ q) ∧ (¬q ∨ r)I = {p, r}

sig(F , I ) = sig((p ∨ q) ∧ (¬q ∨ r), I )= fv∧(sig(p ∨ q, I ), sig(¬q ∨ r , I ))= fv∧(sig(p ∨ q, I ), sig(¬q ∨ r , I ))= fv∧(fv∨(sig(p, I ), sig(q, I )),

fv∨(sig(¬q, I ), sig(r , I )))= fv∧(fv∨(True,False), fv∨(fv¬(sig(q, I )),True))= fv∧(True, fv∨(fv¬(False),True))= fv∧(True, fv∨(True,True))= fv∧(True,True)= True

Page 13: Lógica y Programación - Sintaxis y semántica de la lógica ...

Semantica de la logica proposicional

• I = {p, r}

F = (p ∨ q) ∧ (¬q ∨ r)(True ∨ False) ∧ (¬False ∨ True)

True ∧ (True ∨ True)True ∧ True

True

• I = {r}

F = (p ∨ q) ∧ (¬q ∨ r)(False ∨ False) ∧ (¬False ∨ True)

False ∧ (True ∨ True)False ∧ True

False

Page 14: Lógica y Programación - Sintaxis y semántica de la lógica ...

Modelos y contramodelos

• interpretaciones(F ) = {I ∈ Interpretaciones : I ⊆ sp(F )}

• |interpretaciones(F )| = 2|sp(F )|

• Modelo• I es modelo de F ⇐⇒ sig(F , I ) = True• Representacion: I |= F• Ejemplo: {p, r} |= (p ∨ q) ∧ (¬q ∨ r)

• Contramodelo• I es contramodelo de F ⇐⇒ sig(F , I ) = False• Representacion: I 6|= F• Ejemplo: {r} 6|= (p ∨ q) ∧ (¬q ∨ r)

• Modelos de una formula• modelos(F ) = {I ∈ interpretaciones(F ) : I |= F}

Page 15: Lógica y Programación - Sintaxis y semántica de la lógica ...

Tablas de verdad

• Comprobacion de todas las interpretaciones

p q r (p → q) (q → r) (p → q) ∨ (q → r)

True True True True True True

True True False True False True

True False True False True True

True False False False True True

False True True True True True

False True False True False True

False False True True True True

False False False True True True

Page 16: Lógica y Programación - Sintaxis y semántica de la lógica ...

Validez y satisfactibilidad

• Formulas validas o tautologıas• F es valida ⇐⇒ toda interpretacion de F es modelo de F• Representacion: |= F• Ejemplos: |= (p → p), |= (p → q) ∨ (q → p), 6|= (p → q)

• Formulas satisfacibles• F es satisfacible ⇐⇒ tiene algun modelo• F es insatisfacible ⇐⇒ no tiene ningun modelo• Ejemplos:

(p → q) ∨ (q → r) es satisfacible(p ∧ (¬p)) no es satisfacible(p ∧ (¬p)) es insatisfacible(p → q) ∨ (q → r) no es insatisfacible

Page 17: Lógica y Programación - Sintaxis y semántica de la lógica ...

Validez y satisfactibilidad

• Problema de la satisfacibilidad: Dada F determinar si essatisfacible

• Problema de la validez: Dada F determinar si es valida

• Relaciones entre validez y satisfacibilidad• F es valida ⇐⇒ ¬F es insatisfacible• F es valida ⇒ F es satisfacible• F es satisfacible 6⇒ ¬F es insatisfacible

• El problema de la satisfacibilidad es NP–completo

Page 18: Lógica y Programación - Sintaxis y semántica de la lógica ...

Conjuntos de formulas

• Sımbolos proposicionales de un conjunto de formulas• sp(S) =

{sp(F ) : F ∈ S}• Ejemplo: sp({p ∧ q → r , p → s}) = {p, q, r , s}

• Interpretaciones de un conjunto de formulas• interpretaciones(S) = {I ∈ Interpretaciones : I ⊆ sp(S)}

• Modelos de un conjunto de formulas• I es modelo de S ⇐⇒ para toda F de S, I |= F• Representacion I |= S• Ejemplo: {p, r} |= {(p ∨ q) ∧ ((¬q) ∨ r), q → r}

• Contramodelo de un conjunto de formulas• I es contramodelo de S ⇐⇒ para alguna F de S, I 6|= F• Representacion I 6|= S• Ejemplo: {p, r} 6|= {(p ∨ q) ∧ ((¬q) ∨ r), r → q}

Page 19: Lógica y Programación - Sintaxis y semántica de la lógica ...

Conjuntos de formulas

• Modelos de un conjunto de formulas• modelos(S) = {I ∈ interpretaciones(S) : I |= S}

• Conjuntos consistentes e inconsistentes de formulas• S es consistente ⇐⇒ S tiene algun modelo• S es inconsistente ⇐⇒ S no tiene ningun modelo• Ejemplos:

{(p ∨ q) ∧ ((¬q) ∨ r), p → r} es consistente{(p ∨ q) ∧ ((¬q) ∨ r), p → r ,¬r} no es consistente{(p ∨ q) ∧ ((¬q) ∨ r), p → r ,¬r} es inconsistente{(p ∨ q) ∧ ((¬q) ∨ r), p → r} no es inconsistente

Page 20: Lógica y Programación - Sintaxis y semántica de la lógica ...

Consecuencia logica

• F es consecuencia logica de S ⇐⇒ para toda interpretacionI ∈ interpretaciones(S ∪ {F}), si I |= S entonces I |= F

• Representacion: S |= F

• Ejemplos:{p → q, q → r} |= p → r{p} 6|= p ∧ q{p} 6|= ¬r

• Las siguientes condiciones son equivalentes:• {F1, ..., Fn} |= G• |= (F1 ∧ ... ∧ Fn) → G• {F1, ..., Fn,¬G} es inconsistente

Page 21: Lógica y Programación - Sintaxis y semántica de la lógica ...

Ejercicios

• Sean S = {p → (q → ¬r), p ∨ s, (¬q ∧ r) → s} y F = s ∨ ¬r .Se pide comprobar que S |= F mediante la definicion deconsecuencia logica.

• Sean S = {(p ∧ ¬q) → r , (¬p ∨ r), q → ¬r} y F = r → s. Sepide comprobar que S |= F mediante la definicion deconsecuencia logica.

• Sean S = {a → ¬b,¬a → (c ∨ b), b → (d ∧ a), d → ¬c} yF = a ∨ ¬d . Se pide comprobar que S |= F mediante ladefinicion de consecuencia logica.

• Sean S = {a → ¬b,¬b → (c ∨ d), c → ¬d , d → (b ∧ ¬a)} yF = b ∨ ¬d . Se pide comprobar que S |= F mediante ladefinicion de consecuencia logica.

Page 22: Lógica y Programación - Sintaxis y semántica de la lógica ...

Ejercicios

• Sean S = {p → (q → ¬r), p ∨ s, (¬q ∧ r) → s} y F = s ∨ ¬r .Se pide comprobar que S |= F mediante la definicion deconsecuencia logica.

p q r s {p → (q → ¬r) p ∨ s (¬q ∧ r) → s} s ∨ ¬r

Page 23: Lógica y Programación - Sintaxis y semántica de la lógica ...

Ejercicios

• Sean S = {p → (q → ¬r), p ∨ s, (¬q ∧ r) → s} y F = s ∨ ¬r .Se pide comprobar que S |= F mediante la definicion deconsecuencia logica. (False = 0, True = 1)

p q r s {p → (q → ¬r) p ∨ s (¬q ∧ r) → s} s ∨ ¬r

Page 24: Lógica y Programación - Sintaxis y semántica de la lógica ...

Ejercicios

• Sean S = {p → (q → ¬r), p ∨ s, (¬q ∧ r) → s} y F = s ∨ ¬r .Se pide comprobar que S |= F mediante la definicion deconsecuencia logica. (False = 0, True = 1)

p q r s {p → (q → ¬r) p ∨ s (¬q ∧ r) → s} s ∨ ¬r

0 0 0 0 1 0 1 10 0 0 1 1 1 1 10 0 1 0 1 0 0 00 0 1 1 1 1 1 10 1 0 0 1 0 1 10 1 0 1 1 1 1 10 1 1 0 1 0 1 00 1 1 1 1 1 1 1

Page 25: Lógica y Programación - Sintaxis y semántica de la lógica ...

Ejercicios

• Sean S = {p → (q → ¬r), p ∨ s, (¬q ∧ r) → s} y F = s ∨ ¬r .Se pide comprobar que S |= F mediante la definicion deconsecuencia logica. (False = 0, True = 1)

p q r s {p → (q → ¬r) p ∨ s (¬q ∧ r) → s} s ∨ ¬r

1 0 0 0 1 1 1 11 0 0 1 1 1 1 11 0 1 0 1 1 0 01 0 1 1 1 1 1 11 1 0 0 1 1 1 11 1 0 1 1 1 1 11 1 1 0 0 1 1 01 1 1 1 0 1 1 1

Page 26: Lógica y Programación - Sintaxis y semántica de la lógica ...

Referencias

• Chang, C.L. y Lee, R.C.T Symbolic Logic and MechanicalTheorem Proving. (Academic Press, 1973)

• Cap. 2: “The propositional logic”

• Genesereth, M.R. Computational Logic• Cap. 2: “Propositional logic”

• Nilsson, N.J. Inteligencia artificial (Una nueva sıntesis).(McGraw–Hill, 2000)

• Cap. 13: “El calculo proposicional”

• Russell, S. y Norvig, P. Inteligencia artificial (un enfoquemoderno). (Prentice Hall Hispanoamericana, 1996)

• Cap. 6.4: “Logica propositiva: un tipo de logica muy sencillo”