Sesión 1

Anuncio
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Bases Formales de la Computación
Cálculo de
Predicados
Formalización
de Programas
Gerardo M. Sarria M.
Pontificia Universidad Javeriana
27 de marzo de 2009
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
CÁLCULO PROPOSICIONAL Y DE PREDICADOS
Contenido
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
1
Lógica en General
2
Cálculo Proposicional
3
Cálculo de Predicados
4
Formalización de Programas
Cálculo de
Predicados
Formalización
de Programas
¿Por qué la lógica?
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Especificación formal – sin ambigüedad
Razonamiento formal – prueba de propiedades de sistemas
Herramientas para la automatización de razonamiento
¿Por qué la lógica?
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Especificación formal – sin ambigüedad
Razonamiento formal – prueba de propiedades de sistemas
Herramientas para la automatización de razonamiento
Las Ciencias de la Computación tratan el desarrollo de
programas y hardware.
La Lógica en las Ciencias de la Computación es usada:
en el diseño de software y hardware seguro y confiable
en la verificación de programas existentes y diseño de
hardware
para proveer formalismos adecuados para la
automatización
Lógica en las Ciencias de la Computación
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Diseño de circuitos
Satisfacción de restricciones
Planificación
Verificación de software y hardware (model checking)
Bases de datos
Provador de teoremas en matemáticas
Deducción
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Deducción significa que una cosa se sigue lógicamente de otra:
Formalización
de Programas
KB ⊧ α
De la base de conocimiento KB se deduce la sentencia α
si y solo si
α es verdadero en todos los mundos donde KB es verdadero
Deducción
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
E.g., de la KB que contiene “América ganó” y “Pasto ganó”
se deduce que “Tanto América ganó como Pasto ganó”
Cálculo de
Predicados
Formalización
de Programas
E.g., de x + y = 4 se deduce que 4 = x + y
Deducción es una relación entre sentencias (i.e., sintaxis)
que es basado en la semántica
Saltar la lógica mal usada
Deducción
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Dios es amor.
El amor es ciego.
Steve Wonder es ciego.
Por lo tanto, Steve Wonder es Dios.
Me dijeron que Yo soy nadie.
Nadie es perfecto.
Entonces, yo soy perfecto.
Pero, solo Dios es perfecto.
Por lo tanto, Yo soy Dios.
Si Steve Wonder es Dios, Yo soy Steve Wonder!!!!
Por Dios, soy ciego!!!
Modelos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los lógicos usualmente piensan en términos de modelos, los
cuales son mundos formalmente estructurados.
Modelos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los lógicos usualmente piensan en términos de modelos, los
cuales son mundos formalmente estructurados.
Se dice que m es un modelo de una sentencia α si α es
verdadero en m
Modelos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los lógicos usualmente piensan en términos de modelos, los
cuales son mundos formalmente estructurados.
Se dice que m es un modelo de una sentencia α si α es
verdadero en m
M(α) es el conjunto de todos los modelos de α
Modelos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los lógicos usualmente piensan en términos de modelos, los
cuales son mundos formalmente estructurados.
Se dice que m es un modelo de una sentencia α si α es
verdadero en m
M(α) es el conjunto de todos los modelos de α
Entonces KB ⊧ α si y solo si M(KB) ⊆ M(α)
Modelos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los lógicos usualmente piensan en términos de modelos, los
cuales son mundos formalmente estructurados.
Se dice que m es un modelo de una sentencia α si α es
verdadero en m
M(α) es el conjunto de todos los modelos de α
Entonces KB ⊧ α si y solo si M(KB) ⊆ M(α)
x
x
E.g. KB = América ganó y Pasto ganó
α = América ganó
M(
)
x
x x
x
x
x
x
x
x
xx
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x xx
x
x
x
x
x
x
M(KB)
x
x
x
x
x
x
x
x
Cálculo Proposicional
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Combinación entre proposiciones y operadores Booleanos.
Ejemplo:
“si yo estudio bastante y yo hago todas las tareas entonces yo
sacaré una buena nota.”
Proposiciones atómicas (pueden ser cierto o falso):
Yo estudio bastante
Yo hago todas las tareas
Yo sacaré una buena nota
Sintaxis
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Las variables proposicionales (booleanas) usualmente son
denotadas como p, q, s, . . .
Los conectivos: ∧ “y”, ∨ “o”, ¬ “no”, → “implica”, ↔
“equivalente”
Fórmula proposicional:
Cada variable proposicional es una fórmula, tambien
llamada fórmula atómica o simplemente átomo
true y false son fórmulas (también denotados ⊺ y –)
Si A1 , . . . , An son fórmulas, donde n ≥ 2, entonces
(A1 ∧ . . . ∧ An ) y (A1 ∨ . . . ∨ An ) son fórmulas
Si A es una fórmula, entonces ¬A es una fórmula
Si A y B son fórmulas, entonces (A → B) y (A ↔ B) son
fórmulas.
Subfórmulas
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplo:
((p ∧ q) → (q ∨ ¬p ∨ s))
Subfórmulas inmediatas:
(p ∧ q) y (q ∨ ¬p ∨ s)
Subfórmulas:
((p ∧ q) → (q ∨ ¬p ∨ s))
(p ∧ q) y (q ∨ ¬p ∨ s)
p; q; ¬p; s
Notación: A[B] significa B ocurre en A como una subfórmula
Semántica: Interpretación
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Una interpretación I asigna valores de verdad a las variables
proposicionales
I ∶ P → {1, 0}
0, 1 son llamados valores de verdad o también valores
booleanos.
Si I (p) = 1, entonces p es true en I .
Si I (p) = 0, entonces p es false en I .
Interpretación
Gerardo M.
Sarria M.
Lógica en
General
Se extiende I a todas las fórmulas:
Cálculo
Proposicional
1
I (true) = 1 y I (false) = 0.
Cálculo de
Predicados
2
I (A1 ∧ . . . ∧ An ) = 1 si y solo si I (Ai ) = 1 para todo i.
Formalización
de Programas
3
I (A1 ∨ . . . ∨ An ) = 1 si y solo si I (Ai ) = 1 para algún i.
4
I (¬A) = 1 si y solo si I (A) = 0.
5
I (A → B) = 1 si y solo si I (A) = 0 o I (B) = 1.
6
I (A ↔ B) = 1 si y solo si I (A) = I (B).
Notación:
I ⊧ A si I (A) = 1
I ⊭ A si I (A) = 0
(A es true en I )
(A es false en I )
Tablas de Verdad
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Tabla de verdad:
A
1
1
0
0
B
1
0
1
0
¬A
0
0
1
1
A∧B
1
0
0
0
A∨B
1
1
1
0
A⇒B
1
0
1
1
A⇔B
1
0
0
1
Satisfacibilidad y Validez
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Si una fórmula A es cierta en I , se dice que I satisface a A
y que I es un modelo de A, denotado por I ⊧ A.
A es satisfacible si es cierta es alguna interpretación.
A es válida si es cierta en toda interpretación.
Dos fórmulas A y B son llamadas equivalentes, denotado
A ≡ B si ellas tienen los mismos modelos.
Satisfacibilidad y Validez
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplo:
A = p ∧ ¬q → q ∨ ¬p
Se conoce cómo calcular el valor de verdad de A dada una
interpretación I .
Si I = {p = 0; q = 0}, entonces I (A) = 1.
Satisfacibilidad y Validez
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplo:
A = p ∧ ¬q → q ∨ ¬p
Se conoce cómo calcular el valor de verdad de A dada una
interpretación I .
Si I = {p = 0; q = 0}, entonces I (A) = 1.
Ahora se consideran todas las posibles interpretaciones:
p q p ∧ ¬q → q ∨ ¬p
0 0
1
0 1
1 0
1 1
Satisfacibilidad y Validez
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplo:
A = p ∧ ¬q → q ∨ ¬p
Se conoce cómo calcular el valor de verdad de A dada una
interpretación I .
Si I = {p = 0; q = 0}, entonces I (A) = 1.
Ahora se consideran todas las posibles interpretaciones:
p q p ∧ ¬q → q ∨ ¬p
0 0
1
0 1
1
1 0
1 1
Satisfacibilidad y Validez
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplo:
A = p ∧ ¬q → q ∨ ¬p
Se conoce cómo calcular el valor de verdad de A dada una
interpretación I .
Si I = {p = 0; q = 0}, entonces I (A) = 1.
Ahora se consideran todas las posibles interpretaciones:
p q p ∧ ¬q → q ∨ ¬p
0 0
1
0 1
1
1 0
0
1 1
Satisfacibilidad y Validez
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplo:
A = p ∧ ¬q → q ∨ ¬p
Se conoce cómo calcular el valor de verdad de A dada una
interpretación I .
Si I = {p = 0; q = 0}, entonces I (A) = 1.
Ahora se consideran todas las posibles interpretaciones:
p q p ∧ ¬q → q ∨ ¬p
0 0
1
0 1
1
1 0
0
1 1
1
Satisfacibilidad y Validez
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplo:
A = p ∧ ¬q → q ∨ ¬p
Se conoce cómo calcular el valor de verdad de A dada una
interpretación I .
Si I = {p = 0; q = 0}, entonces I (A) = 1.
Ahora se consideran todas las posibles interpretaciones:
p q p ∧ ¬q → q ∨ ¬p
0 0
1
¿Esta fórmula es satisfacible?
0 1
1
1 0
0
1 1
1
Satisfacibilidad y Validez
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplo:
A = p ∧ ¬q → q ∨ ¬p
Se conoce cómo calcular el valor de verdad de A dada una
interpretación I .
Si I = {p = 0; q = 0}, entonces I (A) = 1.
Ahora se consideran todas las posibles interpretaciones:
p q p ∧ ¬q → q ∨ ¬p
0 0
1
¿Esta fórmula es satisfacible? Si
0 1
1
1 0
0
1 1
1
Satisfacibilidad y Validez
Gerardo M.
Sarria M.
Lógica en
General
Ejemplo:
A = p ∧ ¬q → q ∨ ¬p
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Se conoce cómo calcular el valor de verdad de A dada una
interpretación I .
Si I = {p = 0; q = 0}, entonces I (A) = 1.
Ahora se consideran todas las posibles interpretaciones:
p q p ∧ ¬q → q ∨ ¬p
0 0
1
¿Esta fórmula es satisfacible? Si
0 1
1
1 0
0
1 1
1
¿Esta fórmula es válida?
Satisfacibilidad y Validez
Gerardo M.
Sarria M.
Lógica en
General
Ejemplo:
A = p ∧ ¬q → q ∨ ¬p
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Se conoce cómo calcular el valor de verdad de A dada una
interpretación I .
Si I = {p = 0; q = 0}, entonces I (A) = 1.
Ahora se consideran todas las posibles interpretaciones:
p q p ∧ ¬q → q ∨ ¬p
0 0
1
¿Esta fórmula es satisfacible? Si
0 1
1
1 0
0
1 1
1
¿Esta fórmula es válida? No
Equivalencia
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
p
0
0
1
1
q
0
1
0
1
p ∧ ¬q → q ∨ ¬p
1
1
0
1
Equivalencia
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
p
0
0
1
1
q
0
1
0
1
p ∧ ¬q → q ∨ ¬p
1
1
0
1
¬p ∨ q
Equivalencia
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
p
0
0
1
1
q
0
1
0
1
p ∧ ¬q → q ∨ ¬p
1
1
0
1
¬p ∨ q
1
Equivalencia
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
p
0
0
1
1
q
0
1
0
1
p ∧ ¬q → q ∨ ¬p
1
1
0
1
¬p ∨ q
1
1
Equivalencia
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
p
0
0
1
1
q
0
1
0
1
p ∧ ¬q → q ∨ ¬p
1
1
0
1
¬p ∨ q
1
1
0
Equivalencia
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
p
0
0
1
1
q
0
1
0
1
p ∧ ¬q → q ∨ ¬p
1
1
0
1
¬p ∨ q
1
1
0
1
Equivalencia
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
p
0
0
1
1
q
0
1
0
1
p ∧ ¬q → q ∨ ¬p
1
1
0
1
¬p ∨ q
1
1
0
1
Se tiene entonces que p ∧ ¬q → q ∨ ¬p es equivalente a ¬p ∨ q
Conexión entre Nociones
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
1
Una fórmula A es válida si y solo si ¬A es insatisfacible.
Conexión entre Nociones
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
1
Una fórmula A es válida si y solo si ¬A es insatisfacible.
Formalización
de Programas
2
Una fórmula A es satisfacible si y solo si ¬A es no válida.
Conexión entre Nociones
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
1
Una fórmula A es válida si y solo si ¬A es insatisfacible.
Formalización
de Programas
2
Una fórmula A es satisfacible si y solo si ¬A es no válida.
3
Una fórmula A es válida si y solo si A es equivalente a
true.
Conexión entre Nociones
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
1
Una fórmula A es válida si y solo si ¬A es insatisfacible.
Formalización
de Programas
2
Una fórmula A es satisfacible si y solo si ¬A es no válida.
3
Una fórmula A es válida si y solo si A es equivalente a
true.
4
Dos fórmulas A y B son equivalentes si y solo si la fórmula
A ↔ es válida.
Equivalencias Útiles
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
A ≡ B si y solo si A ⊧ B y B ⊧ A
(A ∧ B)
(A ∨ B)
((A ∧ B) ∧ C )
((A ∨ B) ∨ C )
¬(¬A)
(A ⇒ B)
(A ⇒ B)
(A ⇔ B)
¬(A ∧ B)
¬(A ∨ B)
(A ∧ (B ∨ C ))
(A ∨ (B ∧ C ))
≡
≡
≡
≡
≡
≡
≡
≡
≡
≡
≡
≡
(B ∧ A) conmutativa de ∧
(B ∨ A) conmutativa de ∨
(A ∧ (B ∧ C )) asociativa de ∧
(A ∨ (B ∨ C )) asociativa de ∨
A eliminación doble negación
(¬B ⇒ ¬A) contraposición
(¬A ∨ B) eliminación implicación
((A ⇒ B) ∧ (B ⇒ A)) eliminación bicondicional
(¬A ∨ ¬B) De Morgan
(¬A ∧ ¬B) De Morgan
((A ∧ B) ∨ (A ∧ C )) distributiva de ∧ sobre ∨
((A ∨ B) ∧ (A ∨ C )) distributiva de ∨ sobre ∧
Métodos de Prueba Deductiva
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los métodos de prueba se dividen en dos clases:
Métodos de Prueba Deductiva
Gerardo M.
Sarria M.
Lógica en
General
Los métodos de prueba se dividen en dos clases:
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Aplicación de reglas de inferencia
Generación legı́tima (adecuada) de nuevas sentencias a
partir de las viejas
Prueba = una secuencia de aplicación de reglas de
inferencia
Puede usarse las reglas de inferencia como operadores en
un algoritmo de búsqueda estandar
Normalmente requiere la traducción de las sentencias a
una forma normal
Métodos de Prueba Deductiva
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Chequeo del Modelo (Model Checking)
Enumeración de la tabla de verdad (siempre exponencial
en n)
Backtracking mejorado
Búsqueda heurı́stica en el espacio del modelo (sólido pero
incompleto)
e.g., algoritmos minconflictos y ascención de colinas
Resolución
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Forma Normal Conjuntiva (CNF—universal)
conjunción de disyunciones de literales
´¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¸¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹¶
clausulas
E.g., (A ∨ ¬B) ∧ (B ∨ ¬C ∨ ¬D)
Resolución
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Forma Normal Conjuntiva (CNF—universal)
conjunción de disyunciones de literales
´¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¸¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹¶
clausulas
E.g., (A ∨ ¬B) ∧ (B ∨ ¬C ∨ ¬D)
Lema Solidez (Soundness):
Sea A ≡ L1 ∨ . . . ∨ Ln . Si ∃Li ≡ ¬Lj , entonces A es válida.
Resolución
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Forma Normal Conjuntiva (CNF—universal)
conjunción de disyunciones de literales
´¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¸¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹¶
clausulas
E.g., (A ∨ ¬B) ∧ (B ∨ ¬C ∨ ¬D)
Lema Solidez (Soundness):
Sea A ≡ L1 ∨ . . . ∨ Ln . Si ∃Li ≡ ¬Lj , entonces A es válida.
Lema Completitud (Completeness):
Sea A ≡ L1 ∨ . . . ∨ Ln . Si A es válida, entonces ∃Li ≡ ¬Lj .
Resolución
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Forma Normal Conjuntiva (CNF—universal)
conjunción de disyunciones de literales
´¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¸¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹¶
clausulas
E.g., (A ∨ ¬B) ∧ (B ∨ ¬C ∨ ¬D)
Lema Solidez (Soundness):
Sea A ≡ L1 ∨ . . . ∨ Ln . Si ∃Li ≡ ¬Lj , entonces A es válida.
Lema Completitud (Completeness):
Sea A ≡ L1 ∨ . . . ∨ Ln . Si A es válida, entonces ∃Li ≡ ¬Lj .
Teorema:
Una fórmula en CNF A ≡ B1 ∧ . . . ∧ Bn es válida si y solo si
∀Bk , ∃Li ≡ ¬Lj .
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
¿Qué se puede decir de las siguientes aserciones?
α es válido si y solo si Verdadero ⊧ α
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
¿Qué se puede decir de las siguientes aserciones?
α es válido si y solo si Verdadero ⊧ α
Verdadero es válido en todos los modelos. Si α es válido
entonces se mantiene la relación de deducción.
Similarmente para el caso contrario.
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
¿Qué se puede decir de las siguientes aserciones?
α es válido si y solo si Verdadero ⊧ α
Verdadero es válido en todos los modelos. Si α es válido
entonces se mantiene la relación de deducción.
Similarmente para el caso contrario.
Para cualquier α, Falso ⊧ α
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
¿Qué se puede decir de las siguientes aserciones?
α es válido si y solo si Verdadero ⊧ α
Verdadero es válido en todos los modelos. Si α es válido
entonces se mantiene la relación de deducción.
Similarmente para el caso contrario.
Para cualquier α, Falso ⊧ α
Falso no es cierto en ningún modelo, de manera que α es
cierto en todos los modelos donde Falso sea cierto.
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
¿Qué se puede decir de las siguientes aserciones?
α es válido si y solo si Verdadero ⊧ α
Verdadero es válido en todos los modelos. Si α es válido
entonces se mantiene la relación de deducción.
Similarmente para el caso contrario.
Para cualquier α, Falso ⊧ α
Falso no es cierto en ningún modelo, de manera que α es
cierto en todos los modelos donde Falso sea cierto.
α ⊧ β si y solo si (α ⇒ β) es válida
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
¿Qué se puede decir de las siguientes aserciones?
α es válido si y solo si Verdadero ⊧ α
Verdadero es válido en todos los modelos. Si α es válido
entonces se mantiene la relación de deducción.
Similarmente para el caso contrario.
Para cualquier α, Falso ⊧ α
Falso no es cierto en ningún modelo, de manera que α es
cierto en todos los modelos donde Falso sea cierto.
α ⊧ β si y solo si (α ⇒ β) es válida
α ⇒ β se mantiene en todos los modelos donde β es cierto
o donde ¬α se mantiene. Es precisamente el caso donde
α ⇒ β es válido.
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Considere un vocabulario con sólo cuatro proposiciones
A, B, C , D. ¿Cuántos modelos hay para las siguientes
sentencias?
(A ∧ B) ∨ (B ∧ C )
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Considere un vocabulario con sólo cuatro proposiciones
A, B, C , D. ¿Cuántos modelos hay para las siguientes
sentencias?
(A ∧ B) ∨ (B ∧ C )
6
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Considere un vocabulario con sólo cuatro proposiciones
A, B, C , D. ¿Cuántos modelos hay para las siguientes
sentencias?
(A ∧ B) ∨ (B ∧ C )
6
A∨B
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Considere un vocabulario con sólo cuatro proposiciones
A, B, C , D. ¿Cuántos modelos hay para las siguientes
sentencias?
(A ∧ B) ∨ (B ∧ C )
6
A∨B
12
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Considere un vocabulario con sólo cuatro proposiciones
A, B, C , D. ¿Cuántos modelos hay para las siguientes
sentencias?
(A ∧ B) ∨ (B ∧ C )
6
A∨B
12
A⇔B ⇔C
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Considere un vocabulario con sólo cuatro proposiciones
A, B, C , D. ¿Cuántos modelos hay para las siguientes
sentencias?
(A ∧ B) ∨ (B ∧ C )
6
A∨B
12
A⇔B ⇔C
4
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Demuestre para cada una de las siguientes sentencias, si es
válida, Satisfacible o ninguna de las dos.
Humo ⇒ Humo
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Demuestre para cada una de las siguientes sentencias, si es
válida, Satisfacible o ninguna de las dos.
Humo ⇒ Humo
Válida
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Demuestre para cada una de las siguientes sentencias, si es
válida, Satisfacible o ninguna de las dos.
Humo ⇒ Humo
Válida
Humo ⇒ Fuego
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Demuestre para cada una de las siguientes sentencias, si es
válida, Satisfacible o ninguna de las dos.
Humo ⇒ Humo
Válida
Humo ⇒ Fuego
Satisfacible
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Demuestre para cada una de las siguientes sentencias, si es
válida, Satisfacible o ninguna de las dos.
Humo ⇒ Humo
Válida
Humo ⇒ Fuego
Satisfacible
(Humo ⇒ Fuego) ⇒ (¬Humo ⇒ ¬Fuego)
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Demuestre para cada una de las siguientes sentencias, si es
válida, Satisfacible o ninguna de las dos.
Humo ⇒ Humo
Válida
Humo ⇒ Fuego
Satisfacible
(Humo ⇒ Fuego) ⇒ (¬Humo ⇒ ¬Fuego)
Satisfacible
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Demuestre para cada una de las siguientes sentencias, si es
válida, Satisfacible o ninguna de las dos.
Humo ⇒ Humo
Válida
Humo ⇒ Fuego
Satisfacible
(Humo ⇒ Fuego) ⇒ (¬Humo ⇒ ¬Fuego)
Satisfacible
Humo ∨ Fuego ∨ ¬Fuego
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Demuestre para cada una de las siguientes sentencias, si es
válida, Satisfacible o ninguna de las dos.
Humo ⇒ Humo
Válida
Humo ⇒ Fuego
Satisfacible
(Humo ⇒ Fuego) ⇒ (¬Humo ⇒ ¬Fuego)
Satisfacible
Humo ∨ Fuego ∨ ¬Fuego
Válida
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Demuestre para cada una de las siguientes sentencias, si es
válida, Satisfacible o ninguna de las dos.
Humo ⇒ Humo
Válida
Humo ⇒ Fuego
Satisfacible
(Humo ⇒ Fuego) ⇒ (¬Humo ⇒ ¬Fuego)
Satisfacible
Humo ∨ Fuego ∨ ¬Fuego
Válida
((Humo ∧ Calor ) ⇒ Fuego) ⇔ ((Humo ⇒
Fuego) ∨ (Calor ⇒ Fuego))
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Demuestre para cada una de las siguientes sentencias, si es
válida, Satisfacible o ninguna de las dos.
Humo ⇒ Humo
Válida
Humo ⇒ Fuego
Satisfacible
(Humo ⇒ Fuego) ⇒ (¬Humo ⇒ ¬Fuego)
Satisfacible
Humo ∨ Fuego ∨ ¬Fuego
Válida
((Humo ∧ Calor ) ⇒ Fuego) ⇔ ((Humo ⇒
Fuego) ∨ (Calor ⇒ Fuego))
Válida
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Demuestre para cada una de las siguientes sentencias, si es
válida, Satisfacible o ninguna de las dos.
Humo ⇒ Humo
Válida
Humo ⇒ Fuego
Satisfacible
(Humo ⇒ Fuego) ⇒ (¬Humo ⇒ ¬Fuego)
Satisfacible
Humo ∨ Fuego ∨ ¬Fuego
Válida
((Humo ∧ Calor ) ⇒ Fuego) ⇔ ((Humo ⇒
Fuego) ∨ (Calor ⇒ Fuego))
Válida
(Humo ⇒ Fuego) ⇒ ((Humo ∧ Calor ) ⇒ Fuego)
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Demuestre para cada una de las siguientes sentencias, si es
válida, Satisfacible o ninguna de las dos.
Humo ⇒ Humo
Válida
Humo ⇒ Fuego
Satisfacible
(Humo ⇒ Fuego) ⇒ (¬Humo ⇒ ¬Fuego)
Satisfacible
Humo ∨ Fuego ∨ ¬Fuego
Válida
((Humo ∧ Calor ) ⇒ Fuego) ⇔ ((Humo ⇒
Fuego) ∨ (Calor ⇒ Fuego))
Válida
(Humo ⇒ Fuego) ⇒ ((Humo ∧ Calor ) ⇒ Fuego)
Válida
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Dado el siguiente párrafo, ¿puede demostrar que el unicornio es
un animal mitológico? ¿que es mágico? ¿que tiene cuernos?
Si el unicornio es un animal mitológico, entonces es
inmortal, pero si no es mitológico, entonces es un
mamı́fero mortal. Si el unicornio es inmortal o
mamı́fero, entonces tiene cuernos. El unicornio es
mágico si tiene cuernos.
Pros y Contras de la Lógica Proposicional
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
La lógica proposicional es declarativa: piezas de sintaxis
corresponden a hechos
Pros y Contras de la Lógica Proposicional
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
La lógica proposicional es declarativa: piezas de sintaxis
corresponden a hechos
Cálculo de
Predicados
Formalización
de Programas
La lógica proposicional permite información
parcial/disjuntiva/negativa
(a diferencia de la mayorı́a de estructuras de datos y bases
de datos)
Pros y Contras de la Lógica Proposicional
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
La lógica proposicional es declarativa: piezas de sintaxis
corresponden a hechos
Cálculo de
Predicados
Formalización
de Programas
La lógica proposicional permite información
parcial/disjuntiva/negativa
(a diferencia de la mayorı́a de estructuras de datos y bases
de datos)
La lógica proposicional es composicional:
el significado de B1,1 ∧ P1,2 es derivado del significado de
B1,1 y de P1,2
Pros y Contras de la Lógica Proposicional
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
El significado en la lógica proposicional es independiente del
contexto
(a diferencia del lenguaje natural, donde el significado
depende del contexto)
Pros y Contras de la Lógica Proposicional
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
El significado en la lógica proposicional es independiente del
contexto
(a diferencia del lenguaje natural, donde el significado
depende del contexto)
La lógica proposicional tiene un poder expresivo muy limitado
(a diferencia del lenguaje natural)
E.g., no se puede decir “los hoyos causan brisa en cuadros
adyacentes” excepto escribiendo una sentencia para cada
cuadro
Cálculo de Predicados (FOL)
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Mientras que la lógica proposicional asume un mundo que
contiene hechos, la lógica de primer orden (como el lenguaje
natural) asume que el mundo contiene
Objetos: gente, casas, números, teorias, Ronald
McDonald, colores, juegos de baseball, guerras, siglos . . .
Relaciones: rojo, redondo, falso, primo, hermano de, más
grande que, dentro, parte de, tiene color, occurió después,
pertenece, viene entre, . . .
Funciones: padre de, mejor amigo, tercera entrada de, uno
más que, el final del . . .
FOL: Elementos Básicos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Constantes
Predicados
Funciones
Variables
Conectivos
Igualdad
Cuantificadores
ReyJohn, 2, UCB, . . .
Hermano, >, . . .
Sqrt, PiernaIzquierdaDe, . . .
x, y , a, b, . . .
∧ ∨ ¬ ⇒⇔
=
∀∃
Sentencias Atómicas
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Sentencia atómica
=
predicado(termino1 , . . . , terminon )
o termino1 = termino2
Término
=
funcion(termino1 , . . . , terminon )
o constante o variable
Cálculo de
Predicados
Formalización
de Programas
Sentencias Atómicas
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Sentencia atómica
=
predicado(termino1 , . . . , terminon )
o termino1 = termino2
Término
=
funcion(termino1 , . . . , terminon )
o constante o variable
Cálculo de
Predicados
Formalización
de Programas
E.g.,
Hermano(ReyJohn, RicardoCorazondeLeon)
> (Longitud(PiernaIzquierdaDe(Ricardo)),
Longitud(PiernaIzquierdaDe(ReyJohn)))
Sentencias Complejas
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Sentencias complejas están hechas de sentencias atómica
usando conectivos
Sentencias Complejas
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Sentencias complejas están hechas de sentencias atómica
usando conectivos
¬S,
S1 ∧ S2 ,
S1 ∨ S2 ,
S1 ⇒ S2 ,
S1 ⇔ S2
Sentencias Complejas
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Sentencias complejas están hechas de sentencias atómica
usando conectivos
¬S,
E.g.
S1 ∧ S2 ,
S1 ∨ S2 ,
S1 ⇒ S2 ,
S1 ⇔ S2
Hermano(ReyJohn, Ricardo) ⇒
Hermano(Ricardo, ReyJohn)
>(1, 2) ∨ ≤(1, 2)
>(1, 2) ∧ ¬>(1, 2)
Verdad en la Lógica de Primer Orden
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Las sentencias son verdaderas con respecto a un modelo y una
interpretación
Verdad en la Lógica de Primer Orden
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Las sentencias son verdaderas con respecto a un modelo y una
interpretación
Un modelo contiene ≥ 1 objetos (elementos del dominio) y
relaciones entre ellos
Verdad en la Lógica de Primer Orden
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Las sentencias son verdaderas con respecto a un modelo y una
interpretación
Un modelo contiene ≥ 1 objetos (elementos del dominio) y
relaciones entre ellos
La interpretation especifica referencias para
sı́mbolos de constante → objetos
sı́mbolos de predicado → relaciones
sı́mbolos de función → relaciones funcionales
Verdad en la Lógica de Primer Orden
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Las sentencias son verdaderas con respecto a un modelo y una
interpretación
Un modelo contiene ≥ 1 objetos (elementos del dominio) y
relaciones entre ellos
La interpretation especifica referencias para
sı́mbolos de constante → objetos
sı́mbolos de predicado → relaciones
sı́mbolos de función → relaciones funcionales
Una sentencia atómica predicado(termino1 , . . . , terminon ) es
verdadera sii los objetos referidos por termino1 , . . . , terminon
están en la relación referida por predicado
Ejemplo
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Considere la interpretación en la cual
Ricardo → Ricardo Corazón de León
John → el malvado Rey John
Hermano → la relación de hermandad
Ejemplo
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Considere la interpretación en la cual
Ricardo → Ricardo Corazón de León
John → el malvado Rey John
Hermano → la relación de hermandad
Bajo esta interpretación, Hermano(Ricardo, John) es verdadera
solo en el caso en que Ricardo Corazón de León y el malvado
Rey John estén en la relación de hermandad en el modelo
Cuantificación Universal
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∀⟨variables⟩⟨sentencia⟩
Cuantificación Universal
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∀⟨variables⟩⟨sentencia⟩
Todos en la Javeriana son inteligentes:
∀x En(x, Javeriana) ⇒ Inteligente(x)
Cuantificación Universal
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∀⟨variables⟩⟨sentencia⟩
Todos en la Javeriana son inteligentes:
∀x En(x, Javeriana) ⇒ Inteligente(x)
∀x P es verdadero en un modelo m sii P es verdadero con x
siendo cada objeto posible en el modelo
Cuantificación Universal
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∀⟨variables⟩⟨sentencia⟩
Todos en la Javeriana son inteligentes:
∀x En(x, Javeriana) ⇒ Inteligente(x)
∀x P es verdadero en un modelo m sii P es verdadero con x
siendo cada objeto posible en el modelo
En general, es equivalente a la conjunción de instanciaciones de
P
(En(ReyJohn, Javeriana) ⇒ Inteligente(ReyJohn))
∧ (En(Ricardo, Javeriana) ⇒ Inteligente(Ricardo))
∧ (En(Javeriana, Javeriana) ⇒ Inteligente(Javeriana))
∧ ...
Un Error Común a Evadir
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Normalmente, ⇒ es conectivo principal con ∀
Un Error Común a Evadir
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Normalmente, ⇒ es conectivo principal con ∀
Error común: usar ∧ como el conectivo principal con ∀:
∀x En(x, Javeriana) ∧ Inteligente(x)
significa “Todos están en la javeriana y todos son inteligentes”
Cuantificación Existencial
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∃⟨variables⟩⟨sentencia⟩
Cuantificación Existencial
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∃⟨variables⟩⟨sentencia⟩
Alguien en MIT es inteligente:
∃x En(x, MIT ) ∧ Inteligente(x)
Cuantificación Existencial
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∃⟨variables⟩⟨sentencia⟩
Alguien en MIT es inteligente:
∃x En(x, MIT ) ∧ Inteligente(x)
∃x P es verdadero en un modelo m sii P es verdadero con x
siendo algún objeto posible en el modelo
Cuantificación Existencial
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∃⟨variables⟩⟨sentencia⟩
Alguien en MIT es inteligente:
∃x En(x, MIT ) ∧ Inteligente(x)
∃x P es verdadero en un modelo m sii P es verdadero con x
siendo algún objeto posible en el modelo
En general, es equivalente a la disyunción de instanciaciones de
P
(En(ReyJohn, MIT ) ∧ Inteligente(ReyJohn))
∨ (En(Ricardo, MIT ) ∧ Inteligente(Ricardo))
∨ (En(MIT , MIT ) ∧ Inteligente(MIT ))
∨ ...
Otro Error Común a Evadir
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Normalmente, ∧ es conectivo principal con ∃
Otro Error Común a Evadir
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Normalmente, ∧ es conectivo principal con ∃
Error común: usar ⇒ como el conectivo principal con ∃:
∃x En(x, MIT ) ⇒ Inteligente(x)
es verdadero si hay alguien que no esté en MIT!
Propiedades de los Cuantificadores
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∀x ∀y es lo mismo que ∀y ∀x (¿por qué?)
Propiedades de los Cuantificadores
Gerardo M.
Sarria M.
Lógica en
General
∀x ∀y es lo mismo que ∀y ∀x (¿por qué?)
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∃x ∃y es lo mismo que ∃y ∃x (¿por qué?)
Propiedades de los Cuantificadores
Gerardo M.
Sarria M.
Lógica en
General
∀x ∀y es lo mismo que ∀y ∀x (¿por qué?)
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∃x ∃y es lo mismo que ∃y ∃x (¿por qué?)
∃x ∀y no es lo mismo que ∀y ∃x
Propiedades de los Cuantificadores
Gerardo M.
Sarria M.
Lógica en
General
∀x ∀y es lo mismo que ∀y ∀x (¿por qué?)
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∃x ∃y es lo mismo que ∃y ∃x (¿por qué?)
∃x ∀y no es lo mismo que ∀y ∃x
∃x ∀y Ama(x, y )
“Existe una persona que ama a todos en el mundo”
Propiedades de los Cuantificadores
Gerardo M.
Sarria M.
Lógica en
General
∀x ∀y es lo mismo que ∀y ∀x (¿por qué?)
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
∃x ∃y es lo mismo que ∃y ∃x (¿por qué?)
∃x ∀y no es lo mismo que ∀y ∃x
∃x ∀y Ama(x, y )
“Existe una persona que ama a todos en el mundo”
∀y ∃x Ama(x, y )
“Todos en el mundo son amados por lo menos por una
persona”
Propiedades de los Cuantificadores
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Dualidad de cuantificadores: cada uno puede ser expresado
usando el otro
Propiedades de los Cuantificadores
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Dualidad de cuantificadores: cada uno puede ser expresado
usando el otro
∀x Gusta(x, Helado)
¬∃x ¬Gusta(x, Helado)
∃x Gusta(x, Brocoli)
¬∀x ¬Gusta(x, Brocoli)
Ejemplos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los hermanos son amigos
Ejemplos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los hermanos son amigos
∀x, y Hermano(x, y ) ⇒ Amigo(x, y ).
Ejemplos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los hermanos son amigos
∀x, y Hermano(x, y ) ⇒ Amigo(x, y ).
“Amigo” es simétrico
Ejemplos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los hermanos son amigos
∀x, y Hermano(x, y ) ⇒ Amigo(x, y ).
“Amigo” es simétrico
∀x, y Amigo(x, y ) ⇔ Amigo(y , x).
Ejemplos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Los hermanos son amigos
∀x, y Hermano(x, y ) ⇒ Amigo(x, y ).
Formalización
de Programas
“Amigo” es simétrico
∀x, y Amigo(x, y ) ⇔ Amigo(y , x).
La mamá de uno es un padre femenino de uno
Ejemplos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los hermanos son amigos
∀x, y Hermano(x, y ) ⇒ Amigo(x, y ).
“Amigo” es simétrico
∀x, y Amigo(x, y ) ⇔ Amigo(y , x).
La mamá de uno es un padre femenino de uno
∀x, y Mama(x, y ) ⇔ (Femenino(x) ∧ Padre(x, y )).
Ejemplos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los hermanos son amigos
∀x, y Hermano(x, y ) ⇒ Amigo(x, y ).
“Amigo” es simétrico
∀x, y Amigo(x, y ) ⇔ Amigo(y , x).
La mamá de uno es un padre femenino de uno
∀x, y Mama(x, y ) ⇔ (Femenino(x) ∧ Padre(x, y )).
Un primo hermano es un hijo de un hermano de un padre
Ejemplos
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Los hermanos son amigos
∀x, y Hermano(x, y ) ⇒ Amigo(x, y ).
“Amigo” es simétrico
∀x, y Amigo(x, y ) ⇔ Amigo(y , x).
La mamá de uno es un padre femenino de uno
∀x, y Mama(x, y ) ⇔ (Femenino(x) ∧ Padre(x, y )).
Un primo hermano es un hijo de un hermano de un padre
∀x, y PrimoHermano(x, y ) ⇔
∃(p, ps) Padre(p, x) ∧ Hermano(ps, p) ∧ Padre(ps, y )
Igualdad
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
termino1 = termino2 es verdadero bajo una interpretación dada
si y solo si termino1 y termino2 se refieren al mismo objeto
Igualdad
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
termino1 = termino2 es verdadero bajo una interpretación dada
si y solo si termino1 y termino2 se refieren al mismo objeto
E.g.,
1 = 2 y ∀x × (Sqrt(x), Sqrt(x)) = x son satisfacibles
2 = 2 es válido
Igualdad
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
termino1 = termino2 es verdadero bajo una interpretación dada
si y solo si termino1 y termino2 se refieren al mismo objeto
E.g.,
1 = 2 y ∀x × (Sqrt(x), Sqrt(x)) = x son satisfacibles
2 = 2 es válido
E.g., la definición de Hermano en términos de Padre:
∀x, y Hermano(x, y ) ⇔ [¬(x = y ) ∧ ∃m, f ¬(m = f ) ∧
Padre(m, x) ∧ Padre(f , x) ∧ Padre(m, y ) ∧ Padre(f , y )]
Reducción a Inferencia Proposicional
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Suponga que la KB contiene solo lo siguiente:
∀x Rey (x) ∧ Avaro(x) ⇒ Malvado(x)
Rey (John)
Avaro(John)
Hermano(Ricardo, John)
Reducción a Inferencia Proposicional
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Suponga que la KB contiene solo lo siguiente:
∀x Rey (x) ∧ Avaro(x) ⇒ Malvado(x)
Rey (John)
Avaro(John)
Hermano(Ricardo, John)
Instanciando la sentencia universal en todas las posibles
formas, se tiene
Rey (John) ∧ Avaro(John) ⇒ Malvado(John)
Rey (Ricardo) ∧ Avaro(Ricardo) ⇒ Malvado(Ricardo)
Rey (John)
Avaro(John)
Hermano(Ricardo, John)
Reducción a Inferencia Proposicional
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
La nueva KB está proposicionalizada: sı́mbolos de proposición
son
Rey (John), Avaro(John), Malvado(John), Rey (Ricardo) etc.
Reducción a Inferencia Proposicional
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
La nueva KB está proposicionalizada: sı́mbolos de proposición
son
Rey (John), Avaro(John), Malvado(John), Rey (Ricardo) etc.
Problema:
La proposicionalización parece generar cantidades irrelevantes
de sentencias.
E.g.
∀x Rey (x) ∧ Avaro(x) ⇒ Malvado(x)
Rey (John)
∀y Avaro(y )
Hermano(Ricardo, John)
Unificación
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Se puede obtener la inferencia inmediatamente si se encuentra
una sustitución θ tal que Rey (x) y Avaro(x) corresponda con
Rey (John) y Avaro(y )
Unificación
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Se puede obtener la inferencia inmediatamente si se encuentra
una sustitución θ tal que Rey (x) y Avaro(x) corresponda con
Rey (John) y Avaro(y )
θ = {x/John, y /John} funciona
Unificación
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Se puede obtener la inferencia inmediatamente si se encuentra
una sustitución θ tal que Rey (x) y Avaro(x) corresponda con
Rey (John) y Avaro(y )
θ = {x/John, y /John} funciona
Unify(α, β) = θ if αθ = βθ
Unificación
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Se puede obtener la inferencia inmediatamente si se encuentra
una sustitución θ tal que Rey (x) y Avaro(x) corresponda con
Rey (John) y Avaro(y )
θ = {x/John, y /John} funciona
Unify(α, β) = θ if αθ = βθ
p
Conoce(Mao, x)
Conoce(Mao, x)
Conoce(Mao, x)
Conoce(Mao, x)
q
Conoce(Mao, Pat)
Conoce(y , Jime)
Conoce(y , Madre(y ))
Conoce(x, Jime)
θ
Unificación
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Se puede obtener la inferencia inmediatamente si se encuentra
una sustitución θ tal que Rey (x) y Avaro(x) corresponda con
Rey (John) y Avaro(y )
θ = {x/John, y /John} funciona
Unify(α, β) = θ if αθ = βθ
p
Conoce(Mao, x)
Conoce(Mao, x)
Conoce(Mao, x)
Conoce(Mao, x)
q
Conoce(Mao, Pat)
Conoce(y , Jime)
Conoce(y , Madre(y ))
Conoce(x, Jime)
θ
{x/Pat}
Unificación
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Se puede obtener la inferencia inmediatamente si se encuentra
una sustitución θ tal que Rey (x) y Avaro(x) corresponda con
Rey (John) y Avaro(y )
θ = {x/John, y /John} funciona
Unify(α, β) = θ if αθ = βθ
p
Conoce(Mao, x)
Conoce(Mao, x)
Conoce(Mao, x)
Conoce(Mao, x)
q
Conoce(Mao, Pat)
Conoce(y , Jime)
Conoce(y , Madre(y ))
Conoce(x, Jime)
θ
{x/Pat}
{x/Jime, y /Mao}
Unificación
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Se puede obtener la inferencia inmediatamente si se encuentra
una sustitución θ tal que Rey (x) y Avaro(x) corresponda con
Rey (John) y Avaro(y )
θ = {x/John, y /John} funciona
Unify(α, β) = θ if αθ = βθ
p
Conoce(Mao, x)
Conoce(Mao, x)
Conoce(Mao, x)
Conoce(Mao, x)
q
Conoce(Mao, Pat)
Conoce(y , Jime)
Conoce(y , Madre(y ))
Conoce(x, Jime)
θ
{x/Pat}
{x/Jime, y /Mao}
{y /Mao, x/Madre(Mao)}
Unificación
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Se puede obtener la inferencia inmediatamente si se encuentra
una sustitución θ tal que Rey (x) y Avaro(x) corresponda con
Rey (John) y Avaro(y )
θ = {x/John, y /John} funciona
Unify(α, β) = θ if αθ = βθ
p
Conoce(Mao, x)
Conoce(Mao, x)
Conoce(Mao, x)
Conoce(Mao, x)
q
Conoce(Mao, Pat)
Conoce(y , Jime)
Conoce(y , Madre(y ))
Conoce(x, Jime)
θ
{x/Pat}
{x/Jime, y /Mao}
{y /Mao, x/Madre(Mao)}
falla
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
La ley dice que es un crimen para un Estadounidense vender
armas a naciones hostiles. Corea del Sur, enemigo de Estados
Unidos, tiene algunos misiles, y todos sus misiles les fueron
vendidos por el Coronel West, quien es Estadounidense.
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
La ley dice que es un crimen para un Estadounidense vender
armas a naciones hostiles. Corea del Sur, enemigo de Estados
Unidos, tiene algunos misiles, y todos sus misiles les fueron
vendidos por el Coronel West, quien es Estadounidense.
Pruebe que el Col. West es un criminal
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
. . . es un crimen para un Estadounidense vender armas a
naciones hostiles:
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
. . . es un crimen para un Estadounidense vender armas a
naciones hostiles:
Estadounidense(x) ∧ Arma(y ) ∧ Vende(x, y , z) ∧ Hostil(z) ⇒
Criminal(x)
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
. . . es un crimen para un Estadounidense vender armas a
naciones hostiles:
Formalización
de Programas
Estadounidense(x) ∧ Arma(y ) ∧ Vende(x, y , z) ∧ Hostil(z) ⇒
Criminal(x)
Corea del sur . . . tiene algunos misiles, i.e.,
∃ x Tiene(Corea del sur , x) ∧ Misil(x):
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
. . . es un crimen para un Estadounidense vender armas a
naciones hostiles:
Estadounidense(x) ∧ Arma(y ) ∧ Vende(x, y , z) ∧ Hostil(z) ⇒
Criminal(x)
Corea del sur . . . tiene algunos misiles, i.e.,
∃ x Tiene(Corea del sur , x) ∧ Misil(x):
Tiene(Corea del sur , M1 ) y Misil(M1 )
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
. . . es un crimen para un Estadounidense vender armas a
naciones hostiles:
Estadounidense(x) ∧ Arma(y ) ∧ Vende(x, y , z) ∧ Hostil(z) ⇒
Criminal(x)
Corea del sur . . . tiene algunos misiles, i.e.,
∃ x Tiene(Corea del sur , x) ∧ Misil(x):
Tiene(Corea del sur , M1 ) y Misil(M1 )
. . . todos sus misiles les fueron vendidos por el Coronel West
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
. . . es un crimen para un Estadounidense vender armas a
naciones hostiles:
Estadounidense(x) ∧ Arma(y ) ∧ Vende(x, y , z) ∧ Hostil(z) ⇒
Criminal(x)
Corea del sur . . . tiene algunos misiles, i.e.,
∃ x Tiene(Corea del sur , x) ∧ Misil(x):
Tiene(Corea del sur , M1 ) y Misil(M1 )
. . . todos sus misiles les fueron vendidos por el Coronel West
∀x Misil(x) ∧ Tiene(Corea del sur , x) ⇒
Vende(West, x, Corea del sur )
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Misiles son armas:
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Misiles son armas:
Misil(x) ⇒ Arma(x)
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Misiles son armas:
Misil(x) ⇒ Arma(x)
Un enemigo de Estados Unidos cuenta como “hostil”:
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Misiles son armas:
Misil(x) ⇒ Arma(x)
Un enemigo de Estados Unidos cuenta como “hostil”:
Enemigo(x, Estados Unidos) ⇒ Hostil(x)
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Misiles son armas:
Misil(x) ⇒ Arma(x)
Un enemigo de Estados Unidos cuenta como “hostil”:
Enemigo(x, Estados Unidos) ⇒ Hostil(x)
West, quien es un Estadounidense . . .
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Misiles son armas:
Misil(x) ⇒ Arma(x)
Un enemigo de Estados Unidos cuenta como “hostil”:
Enemigo(x, Estados Unidos) ⇒ Hostil(x)
West, quien es un Estadounidense . . .
Estadounidense(West)
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Misiles son armas:
Misil(x) ⇒ Arma(x)
Un enemigo de Estados Unidos cuenta como “hostil”:
Enemigo(x, Estados Unidos) ⇒ Hostil(x)
West, quien es un Estadounidense . . .
Estadounidense(West)
El pais Corea del sur, un enemigo de Estados Unidos . . .
Ejemplo de una Base de Conocimiento
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Misiles son armas:
Misil(x) ⇒ Arma(x)
Un enemigo de Estados Unidos cuenta como “hostil”:
Enemigo(x, Estados Unidos) ⇒ Hostil(x)
West, quien es un Estadounidense . . .
Estadounidense(West)
El pais Corea del sur, un enemigo de Estados Unidos . . .
Enemigo(Corea del sur , Estados Unidos)
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Algunos estudiantes tomaron Francés en la primavera de
2001.
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Algunos estudiantes tomaron Francés en la primavera de
2001.
∃x Estudiante(x) ∧ Toma(x, Frances, Primavera2001)
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Algunos estudiantes tomaron Francés en la primavera de
2001.
∃x Estudiante(x) ∧ Toma(x, Frances, Primavera2001)
Todo estudiantes que toma Francés lo aprueba.
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Algunos estudiantes tomaron Francés en la primavera de
2001.
∃x Estudiante(x) ∧ Toma(x, Frances, Primavera2001)
Todo estudiantes que toma Francés lo aprueba.
∀x, s Estudiante(x) ∧ Toma(x, Frances, s) ⇒
Aprueba(x, Frances, s)
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Algunos estudiantes tomaron Francés en la primavera de
2001.
∃x Estudiante(x) ∧ Toma(x, Frances, Primavera2001)
Todo estudiantes que toma Francés lo aprueba.
∀x, s Estudiante(x) ∧ Toma(x, Frances, s) ⇒
Aprueba(x, Frances, s)
Solo un estudiante tomó Griego en la primavera de 2001.
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Algunos estudiantes tomaron Francés en la primavera de
2001.
∃x Estudiante(x) ∧ Toma(x, Frances, Primavera2001)
Todo estudiantes que toma Francés lo aprueba.
∀x, s Estudiante(x) ∧ Toma(x, Frances, s) ⇒
Aprueba(x, Frances, s)
Solo un estudiante tomó Griego en la primavera de 2001.
∃x Estudiante(x) ∧ Toma(x, Griego, Primavera2001) ∧
∀y y ≠ x ⇒ ¬Toma(y , Griego, Primavera2001)
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Toda persona que compra una póliza de seguros es
inteligente.
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Toda persona que compra una póliza de seguros es
inteligente.
∀x Persona(x) ∧ (∃y , z Poliza(y ) ∧ Compra(x, y , z)) ⇒
Inteligente(x)
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Toda persona que compra una póliza de seguros es
inteligente.
∀x Persona(x) ∧ (∃y , z Poliza(y ) ∧ Compra(x, y , z)) ⇒
Inteligente(x)
Ninguna persona compra un póliza cara.
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Toda persona que compra una póliza de seguros es
inteligente.
∀x Persona(x) ∧ (∃y , z Poliza(y ) ∧ Compra(x, y , z)) ⇒
Inteligente(x)
Ninguna persona compra un póliza cara.
∀x, y , z Persona(x) ∧ Poliza(y ) ∧ Cara(y ) ⇒
¬Compra(x, y , z)
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Toda persona que compra una póliza de seguros es
inteligente.
∀x Persona(x) ∧ (∃y , z Poliza(y ) ∧ Compra(x, y , z)) ⇒
Inteligente(x)
Ninguna persona compra un póliza cara.
∀x, y , z Persona(x) ∧ Poliza(y ) ∧ Cara(y ) ⇒
¬Compra(x, y , z)
Existe un agente que vende pólizas solo a personas que no
están aseguradas.
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Toda persona que compra una póliza de seguros es
inteligente.
∀x Persona(x) ∧ (∃y , z Poliza(y ) ∧ Compra(x, y , z)) ⇒
Inteligente(x)
Ninguna persona compra un póliza cara.
∀x, y , z Persona(x) ∧ Poliza(y ) ∧ Cara(y ) ⇒
¬Compra(x, y , z)
Existe un agente que vende pólizas solo a personas que no
están aseguradas.
∃x Agente(x) ∧ ∀y , z Poliza(y ) ∧ Vende(x, y , z) ⇒
(Persona(z) ∧ ¬Asegurada(z))
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Los polı́ticos pueden mentir a algunos todo el tiempo, y
pueden mentir a todos algún tiempo, pero no pueden
mentir a todos todo el tiempo.
Ejercicios
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Represente las siguientes sentencias en la lógica de primer
orden.
Los polı́ticos pueden mentir a algunos todo el tiempo, y
pueden mentir a todos algún tiempo, pero no pueden
mentir a todos todo el tiempo.
∀x Politico(x) ⇒
(∃y ∀t Persona(y ) Mentir (x, y , t))∧
(existst∀y Persona(y ) ⇒ Mentir (x, y , t))∧
¬(∀t∀y Persona(y ) ⇒ Mentir (x, y , t))
Formalización de Programas
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Un programa es una secuencia de sı́mbolos que pueden ser
analizados de acuerdo a unas reglas sintácticas, y que expresan
un significado de acuerdo a la interpretación de los elementos
atómicos y conectivos del lenguaje.
Los elementos atómicos y conectivos son llamados asignación
(statements).
Una asignación en un lenguaje de programación puede ser
considerado como una función que transforma el estado de una
computación.
Formalización de Programas
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplo:
Si las variables (x, y ) tienen los valores (8, 7) en un estado s,
entonces el resultado de ejecutar la siguiente asignación:
x := 2*y + 1
es el estado s ′ en el cual (x, y ) = (15, 7)
Formalización de Programas
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplo:
Si las variables (x, y ) tienen los valores (8, 7) en un estado s,
entonces el resultado de ejecutar la siguiente asignación:
x := 2*y + 1
es el estado s ′ en el cual (x, y ) = (15, 7)
Queremos razonar sobre los estados de una computación
Formalización de Programas
Gerardo M.
Sarria M.
Lógica en
General
Entonces, en vez de decir que
Cálculo
Proposicional
Cálculo de
Predicados
x := 2*y + 1
transforma el estado
Formalización
de Programas
(x, y )
a
(x ′ = 2y + 1, y ′ = y )
queremos encontrar los predicados p(x, y ), p ′ (x ′ , y ′ ) tal que si
p(x, y ) es cierto en el estado s, entonces p ′ (x ′ , y ′ ) es cierto
después de ejecutar la asignación.
Formalización de Programas
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplo:
Para x := 2*y + 1, pruebe que x ≤ 7 después de ejecutar la
asignación.
Si 2y + 1 ≤ 7 es verdad antes de la ejecución, se puede deducir
que y ≤ 3.
Formalización de Programas
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplo:
Para x := 2*y + 1, pruebe que x ≤ 7 después de ejecutar la
asignación.
Si 2y + 1 ≤ 7 es verdad antes de la ejecución, se puede deducir
que y ≤ 3.
En general, una asignación sustituye el valor de una expresión
en una de las variables. Si un predicado ya es true usando la
sustitución, el predicado será true (sin sustitución) siguiendo
la ejecución.
Precondición más débil
Gerardo M.
Sarria M.
Lógica en
General
Se caracteriza el estado de un programa listando los valores de
todas las variables en el programa.
Cálculo
Proposicional
Cálculo de
Predicados
Se define la precondición P de un programa S como el estado
inicial de S, y la postcondición Q como el estado final de S:
Formalización
de Programas
{P} S {Q}
Precondición más débil
Gerardo M.
Sarria M.
Lógica en
General
Se caracteriza el estado de un programa listando los valores de
todas las variables en el programa.
Cálculo
Proposicional
Cálculo de
Predicados
Se define la precondición P de un programa S como el estado
inicial de S, y la postcondición Q como el estado final de S:
Formalización
de Programas
{P} S {Q}
El objetivo es encontrar aquellos estados I , tal que el programa
iniciando en un estado i ∈ I , garantice terminar en un estado
que cumpla Q.
Este conjunto I es definido por la precondición más débil
(weakest precondition o wp) del programa y la
postcondición.
Precondición más débil
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Si un programa S comienza en un estado que satisface
wp(S, Q), se garantiza que terminará en un estado que
satisfaga Q.
Todos los programas satisfacen true
Ningún programa satisface false
Precondición más débil
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Si un programa S comienza en un estado que satisface
wp(S, Q), se garantiza que terminará en un estado que
satisfaga Q.
Todos los programas satisfacen true
Ningún programa satisface false
Ley del milagro excluido:
∀S, wp(S, false) = false
Precondición más débil
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Para cualquier programa S y postcondiciones Q, R tal que
Q → R,
wp(S, Q) → wp(S, R)
Precondición más débil
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Para cualquier programa S y postcondiciones Q, R tal que
Q → R,
wp(S, Q) → wp(S, R)
Para una asignación simple:
wp(⟦x ∶= E⟧, Q) = Q[x = E ]
Precondición más débil
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Ejemplos:
wp(⟦a ∶= 7⟧, a = 7) = (7 = 7) = true
Cálculo de
Predicados
Formalización
de Programas
wp(⟦a ∶= 7⟧, a = 6) = (7 = 6) = false
wp(⟦a ∶= 7⟧, b = c) = (b = c)
wp(⟦a ∶= 2 ∗ b + 1⟧, a = 13) = (2 × b + 1 = 7) = (b = 6)
wp(⟦a ∶= a − b⟧, a > b) = (a − b > b) = (a > 2 × b)
Precondición más débil
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Para secuencias de expresiones:
wp(⟦S1 ; S2 ⟧, Q) = wp(S1 , wp(S2 , Q))
Precondición más débil
Gerardo M.
Sarria M.
Para secuencias de expresiones:
wp(⟦S1 ; S2 ⟧, Q) = wp(S1 , wp(S2 , Q))
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Ejemplos:
wp(⟦a ∶= a + b; b ∶= a ∗ b⟧, b > a) =
wp(⟦a ∶= a + b⟧, wp(⟦b ∶= a ∗ b⟧, b > a))
wp(⟦b ∶= a ∗ b⟧, b > a) = (a ∗ b > a) =
(b > 1 ∧ a ≥ 0) ∨ (b < 1 ∧ a ≤ 0)
wp(⟦a ∶= a + b⟧, (b > 1 ∧ a ≥ 0) ∨ (b < 1 ∧ a ≤ 0)) =
(b > 1 ∧ (a + b) ≥ 0) ∨ (b < 1 ∧ (a + b) ≤ 0) =
(b > 1 ∧ a ≥ −b) ∨ (b < 1 ∧ a ≤ −b)
Gerardo M.
Sarria M.
Lógica en
General
Cálculo
Proposicional
Cálculo de
Predicados
Formalización
de Programas
Fin de la Presentación
Descargar