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

Anuncio
Lógica y Programación
Sintaxis y semántica de la lógica proposicional
Antonia M. Chávez, Carmen Graciani, Agustı́n Riscos
Dpto. Ciencias de la Computacion e Inteligencia Artificial
Universidad de Sevilla
Aplicaciones de la Lógica Proposicional
La Lógica es a los informáticos como la matemática a los
arquitectos o fı́sicos.
Es “el cálculo de la informática” (M. Y. Vardi).
• Análisis de las propiedades de los sitemas en su diseño,
desarrollo, mantenimiento.
• Planificación: manufactura automática, robótica,
programación de vuelos en aerolı́neas, ...
• Diseño y verificación de circuitos ...
• Deducción: resolución de problemas SAT
• Resolución de problemas de la vida real: horarios, rutas de
transporte planificación de obras, ...
Elementos de una lógica
• Elementos de una lógica:
• Sintaxis: ¿qué expresiones son fórmulas?
• Semántica: ¿qué significa que una fórmula F es consecuencia
de un conjunto de fórmulas S?: S |= F
• Cálculo: ¿qué significa que una fórmula F puede deducirse a
partir de un conjunto de fórmulas S?: S ⊢ F
• Propiedades:
• Potencia expresiva
• Adecuación: S ⊢ F =⇒ S |= F
• Completitud: S |= F =⇒ S ⊢ F
• Decidibilidad
• Complejidad
Sintaxis de la lógica proposicional
• Alfabeto proposicional:
• Sı́mbolos proposicionales: p, p0 , p1 , ..., q, q0 , q1 , ...
• Constantes: ⊥, ⊤
• Conectivas lógicas: Negación:
¬ Condicional:
→
Conjunción: ∧ Equivalencia: ↔
Disyunción: ∨
• Sı́mbolos auxiliares: (, ).
Sintaxis de la lógica proposicional
Dado un conjunto SP de sı́mbolos proposicionales, se puede definir
un lenguaje proposicional L(SP), que contiene todas las fórmulas
posibles según la siguiente definición:
• Una fórmula proposicional es:
• Un elemento de SP: (Fórmula atómica)
• Si F y G son fórmulas, entonces: (¬ F ), (F ∧ G ), (F ∨ G ),
(F → G ), (F ↔ G ) también lo son.
• Ejemplos:
• ((p → q) ∨ (q → p))
• (p → (q ∨ (¬ r )))
Sintaxis de la lógica proposicional
• Metavariables:
• SP: conjunto de sı́mbolos proposicionales
• FProp: conjunto de fórmulas proposicionales
• Sı́mbolos proposicionales: p, p0 , p1 , ..., q, q0 , q1 , ..., r , ...
• Fórmulas proposicionales: F , F0 , F1 , ..., G , G0 , G1 , ...
• Eliminación de paréntesis:
• Paréntesis 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 derecha
p ∧ (q ∧ r ) =⇒ p ∧ q ∧ r
Sı́mbolos de una fórmula
• Sı́mbolos proposicionales de una fórmula:
sp(p)
sp(¬ F )
sp(F ∧ G )
sp(F ∨ G )
sp(F → G )
sp(F ↔ G )
=
=
=
=
=
=
{p}
sp(F )
sp(F ) ∪ sp(G )
sp(F ) ∪ sp(G )
sp(F ) ∪ sp(G )
sp(F ) ∪ sp(G )
Semántica de la lógica proposicional
• La semántica debe proporcionarnos:
• Noción de verdad: función de verdad
• Significado de las fórmulas: especificación
• Noción de consecuencia lógica: conclusiones
• Valores de verdad: ⊥ y ⊤ (utilizaremos False y True)
Semántica de la lógica proposicional
• Funciones de verdad
• fv¬ : {False,
True} → {False, True}
True
si i = False
fv¬ (i) =
False si i = True
2
• fv∧ : {False,
True} → {False, True}
True
si i = j = True
fv∧ (i, j) =
False en otro caso
2
• fv∨ : {False,
True} → {False, True}
False si i = j = False
fv∨ (i, j) =
True
en otro caso
Semántica de la lógica proposicional
• Funciones de verdad
2
• fv→ : {False,
True} → {False, True}
False si i = True y j = False
fv→ (i, j) =
True
en otro caso
2
• fv↔ : {False,
True}
→
{False, True}
True
si i = j
fv↔ (i, j) =
False en otro caso
Semántica de la lógica proposicional
• Interpretación:
• Una interpretación I es un conjunto de sı́mbolos
proposicionales
• Interpretaciones: Conjunto de todas las interpretaciones
• sig : FProp × Interpretaciones → {False, True}
True
si p ∈ I
• sig (p, I ) =
False 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 ))
Semántica de la lógica proposicional
• Ejemplo:
F
I
sig (F , I ) =
=
=
=
=
=
=
=
=
= (p ∨ q) ∧ (¬q ∨ r )
= {p, r }
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
Semántica de la lógica proposicional
•
I = {p, r }
F =
•
(p
(True
∨
q)
∨
False)
True
True
∧
(¬q
∨
r)
∧
(¬False
∨
True)
∧
(True
∨
True)
∧
True
True
I = {r }
F =
(p
(False
∨
q)
∨
False)
False
False
∧
(¬q
∨
r)
∧
(¬False
∨
True)
∧
(True
∨
True)
∧
True
False
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
• Representación: I |= F
• Ejemplo: {p, r } |= (p ∨ q) ∧ (¬q ∨ r )
• Contramodelo
• I es contramodelo de F ⇐⇒ sig (F , I ) = False
• Representación: I 6|= F
• Ejemplo: {r } 6|= (p ∨ q) ∧ (¬q ∨ r )
• Modelos de una fórmula
• modelos(F ) = {I ∈ interpretaciones(F ) : I |= F }
Tablas de verdad
• Comprobación de todas las interpretaciones
p
True
True
True
True
False
False
False
False
q
True
True
False
False
True
True
False
False
r
True
False
True
False
True
False
True
False
(p → q)
True
True
False
False
True
True
True
True
(q → r )
True
False
True
True
True
False
True
True
(p → q) ∨ (q → r )
True
True
True
True
True
True
True
True
Validez y satisfactibilidad
• Fórmulas válidas o tautologı́as
• F es válida ⇐⇒ toda interpretación de F es modelo de F
• Representación: |= F
• Ejemplos: |= (p → p), |= (p → q) ∨ (q → p), 6|= (p → q)
• Fórmulas satisfacibles
• F es satisfacible ⇐⇒ tiene algún modelo
• F es insatisfacible ⇐⇒ no tiene ningún modelo
• Ejemplos:
(p → q) ∨ (q → r ) es satisfacible
(p ∧ (¬p)) no es satisfacible
(p ∧ (¬p)) es insatisfacible
(p → q) ∨ (q → r ) no es insatisfacible
Validez y satisfactibilidad
• Problema de la satisfacibilidad: Dada F determinar si es
satisfacible
• Problema de la validez: Dada F determinar si es válida
• Relaciones entre validez y satisfacibilidad
• F es válida ⇐⇒ ¬F es insatisfacible
• F es válida ⇒ F es satisfacible
• F es satisfacible 6⇒ ¬F es insatisfacible
• El problema de la satisfacibilidad es NP–completo
Conjuntos de fórmulas
• Sı́mbolos proposicionales de un conjunto de fórmulas
S
• sp(S) = {sp(F ) : F ∈ S}
• Ejemplo: sp({p ∧ q → r , p → s}) = {p, q, r , s}
• Interpretaciones de un conjunto de fórmulas
• interpretaciones(S) = {I ∈ Interpretaciones : I ⊆ sp(S)}
• Modelos de un conjunto de fórmulas
• I es modelo de S ⇐⇒ para toda F de S, I |= F
• Representación I |= S
• Ejemplo: {p, r } |= {(p ∨ q) ∧ ((¬q) ∨ r ), q → r }
• Contramodelo de un conjunto de fórmulas
• I es contramodelo de S ⇐⇒ para alguna F de S, I 6|= F
• Representación I 6|= S
• Ejemplo: {p, r } 6|= {(p ∨ q) ∧ ((¬q) ∨ r ), r → q}
Conjuntos de fórmulas
• Modelos de un conjunto de fórmulas
• modelos(S) = {I ∈ interpretaciones(S) : I |= S}
• Conjuntos consistentes e inconsistentes de fórmulas
• S es consistente ⇐⇒ S tiene algún modelo
• S es inconsistente ⇐⇒ S no tiene ningún 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
Consecuencia lógica
• F es consecuencia lógica de S ⇐⇒ para toda interpretación
I ∈ interpretaciones(S ∪ {F }), si I |= S entonces I |= F
• Representación: 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
Ejercicios
• Sean S = {p → (q → ¬r ), p ∨ s, (¬q ∧ r ) → s} y F = s ∨ ¬r .
Se pide comprobar que S |= F mediante la definición de
consecuencia lógica.
• Sean S = {(p ∧ ¬q) → r , (¬p ∨ r ), q → ¬r } y F = r → s. Se
pide comprobar que S |= F mediante la definición de
consecuencia lógica.
• Sean S = {a → ¬b, ¬a → (c ∨ b), b → (d ∧ a), d → ¬c} y
F = a ∨ ¬d. Se pide comprobar que S |= F mediante la
definición de consecuencia lógica.
• Sean S = {a → ¬b, ¬b → (c ∨ d), c → ¬d, d → (b ∧ ¬a)} y
F = b ∨ ¬d. Se pide comprobar que S |= F mediante la
definición de consecuencia 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 definición de
consecuencia lógica.
p
q
r
s
{p → (q → ¬r )
p∨s
(¬q ∧ r ) → s}
s ∨ ¬r
Ejercicios
• Sean S = {p → (q → ¬r ), p ∨ s, (¬q ∧ r ) → s} y F = s ∨ ¬r .
Se pide comprobar que S |= F mediante la definición de
consecuencia lógica. (False = 0, True = 1)
p
q
r
s
{p → (q → ¬r )
p∨s
(¬q ∧ r ) → s}
s ∨ ¬r
Ejercicios
• Sean S = {p → (q → ¬r ), p ∨ s, (¬q ∧ r ) → s} y F = s ∨ ¬r .
Se pide comprobar que S |= F mediante la definición de
consecuencia lógica. (False = 0, True = 1)
p
0
0
0
0
0
0
0
0
q
0
0
0
0
1
1
1
1
r
0
0
1
1
0
0
1
1
s
0
1
0
1
0
1
0
1
{p → (q → ¬r )
1
1
1
1
1
1
1
1
p∨s
0
1
0
1
0
1
0
1
(¬q ∧ r ) → s}
1
1
0
1
1
1
1
1
s ∨ ¬r
1
1
0
1
1
1
0
1
Ejercicios
• Sean S = {p → (q → ¬r ), p ∨ s, (¬q ∧ r ) → s} y F = s ∨ ¬r .
Se pide comprobar que S |= F mediante la definición de
consecuencia lógica. (False = 0, True = 1)
p
1
1
1
1
1
1
1
1
q
0
0
0
0
1
1
1
1
r
0
0
1
1
0
0
1
1
s
0
1
0
1
0
1
0
1
{p → (q → ¬r )
1
1
1
1
1
1
0
0
p∨s
1
1
1
1
1
1
1
1
(¬q ∧ r ) → s}
1
1
0
1
1
1
1
1
s ∨ ¬r
1
1
0
1
1
1
0
1
Referencias
• Chang, C.L. y Lee, R.C.T Symbolic Logic and Mechanical
Theorem 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 cálculo proposicional”
• Russell, S. y Norvig, P. Inteligencia artificial (un enfoque
moderno). (Prentice Hall Hispanoamericana, 1996)
• Cap. 6.4: “Lógica propositiva: un tipo de lógica muy sencillo”
Descargar