Tema 9: Resolución en lógica de primer orden

Documentos relacionados
Tema 9: Modelos de Herbrand

Lógica informática ( )

Tema 8: Formas normales.

Lógica informática-docencia en Inglés

Lógica informática ( )

Lógica informática ( )

Tema 9: Resolución en lógica de primer orden

Lógica informática ( )

Lógica informática ( )

Soluciones del examen de Lógica informática (Grupos 1 y 2) del 23 de Septiembre de José A. Alonso Jiménez

Tema 4: Tableros semánticos

G e 1,7. LI Examen de Lógica informática (7 de Junio de 2004) 1. Ejercicio 1. Probar (E F ) G = (E G) (F G) (a) Mediante deducción natural.

Tema 8: Teorema de Herbrand. Tableros en lógica de primer orden

Lógica y Programación

Tema 8: Teorema de Herbrand. Tableros en lógica de primer orden

Tema 5: (Tecnologías Informáticas) Curso Dpto. Ciencias de la Computación Inteligencia Artificial Universidad de Sevilla

Lógica y Programación

Soluciones de exámenes de Lógica informática

Tema 14: Sustitución y Unificación

Lógica y Programación

Tema 2: Deducción natural proposicional

Tema 6: Programación Lógica: semántica declarativa. Lenguajes y Paradigmas de Programación

Deducción automática y programación lógica

Tema 2: Equivalencias y formas normales

Soluciones del examen de Lógica informática (Grupo 1) del 10 de Junio de José A. Alonso Jiménez

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Sintaxis y semántica

Lógica y Programación

Introducción LÓGICA COMPUTACIONAL PROGRAMACIÓN LÓGICA. Unificación. Ejemplos

LÓGICA Examen de lógica de primer orden Curso Ejercicio 1.1 Formalizar las siguientes frases con un lenguaje de primer orden:

Tema 4: Resolución de primer orden

1 Resolución en lógica de proposiciones RESOLUCIÓN. Índice General. César Ignacio García Osorio. Resolución

Tema 2: Lógica proposicional: Sintaxis y semántica

Lógica informática ( )

Semántica Operacional para la Programación en Lógica Lógica para Ciencias de la Computación

Formas clausulares Teoría de Herbrand Algoritmo de Herbrand Semidecidibilidad. Teoría de Herbrand. Lógica Computacional

Tema 1: Sintaxis y semántica de la lógica proposicional

Razonamiento automático

Algoritmo de unificación de Robinson

El algoritmo de Resolución

Forma Clausular. Forma Clausular

Lógica informática ( )

Entorno y herraminetas

Lógica y Programación

Lenguajes lógicos: cláusulas de Horn

Lógica Informática. (Tecnologías Informáticas) Curso

1. Formas normales en lógica de proposiciones FORMAS NORMALES. Índice. César Ignacio García Osorio Definiciones. Lógica

Tema 2: Métodos de Deducción para la Lógica Proposicional

Tema 4: Resolución proposicional

Tema 2: Métodos de Deducción para la Lógica Proposicional

Lógica informática ( )

Tema 12: Interpretaciones de Herbrand

Lógica informática ( )

Tema 3: Introducción a Prolog

Año: 2018 Régimen de Cursada: Semestral Carácter: Optativa Correlativas: Conceptos y Paradigmas de Lenguajes de Programación

Tema 4: (Tecnologías Informáticas) Curso Dpto. Ciencias de la Computación Inteligencia Artificial Universidad de Sevilla

Resolución en lógica de primer orden

Lógica de Primer orden. Sintaxis y Semántica Ejercicios del Tema 2

Soluciones de exámenes de

Lógica informática ( )

Tema 4: Lógicas Informática (Tecnologías Informáticas) Curso Dpto. Ciencias de la Computación Inteligencia Artificial Universidad de Sevilla

Lógica de Predicados de Primer Orden

Temas de Lógica matemática y fundamentos ( ) José A. Alonso Jiménez María J. Hidalgo Doblado

Lógica informática ( )

Tema 1: El sistema deductivo de Prolog

Tema 6: Representación lógica del conocimiento

Lógica de primer orden, unificación y resolución. Definición de estado y transición. Planificación en el mundo de los cubos. Brenda Aymerich, Oscar

Semántica de Primer Orden. Semántica de Primer Orden

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Axiomática

Tema 2: Lógica Computacional para la IA: Lógica Proposicional

PROGRAMACIÓN LOGICA. Año 2017

Lógica informática ( )

Lógica informática ( )

Programación lógica. Cristian Andrés García Prieto Andrés Felipe López Becerra Miguel Ángel Borja Acevedo Jorge Andrés Solano Avila

Temas de Lógica matemática y fundamentos ( )

Temas de Lógica matemática y fundamentos ( )

Temas de Lógica informática ( ) José A. Alonso Jiménez Andrés Cordón Franco María J. Hidalgo Doblado

Unificación. Unificación

4 PRINCIPIO DE RESOLUCIÓN

Temas de Lógica informática ( ) José A. Alonso Jiménez Andrés Cordón Franco María J. Hidalgo Doblado

Temas de Lógica informática ( )

GUÍA DOCENTE DE LA ASIGNATURA

Matemáticas Discretas TC1003

Tema 7: Formas normales: Formas prenex y de Skolem

Aplicaciones de RA con OTTER

Introducción al razonamiento automático con OTTER

Lógica Computacional: Estrategias de Resolución

Transcripción:

Lógica informática Curso 2004 05 Tema 9: Resolución en lógica de primer orden José A. Alonso Jiménez Andrés Cordón Franco Grupo de Lógica Computacional Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla LI 2004 05 CcIa Resolución en lógica de primer orden 9.1

Introducción Ejemplos de consecuencia mediante resolución: Ejemplo 1: {( x)[p (x) Q(x)], ( x)p (x)} = ( x)q(x) syss {{ P (x), Q(x)}, {P (a)}, { Q(z)}} es inconsistente. 1 { P (x), Q(x)} Hipótesis 2 {P (a)} Hipótesis 3 { Q(z)} Hipótesis 4 {Q(a)} Resolvente de 1 y 2 con σ = [x/a] 5 Resolvente de 3 y 4 con σ = [z/a] Ejemplo 2: {( x)[p (x) Q(x)], ( x)[q(x) R(x)]} = ( x)[p (x) R(x)] syss {{ P (x), Q(x)}, { Q(y), R(y)}, {P (a)}, { R(a)}} es inconsistente. 1 { P (x), Q(x)} Hipótesis 2 { Q(y), R(y)} Hipótesis 3 {P (a)} Hipótesis 4 { R(a)} Hipótesis 5 {Q(a)} Resolvente de 1 y 2 con σ = [x/a] 6 {R(a)} Resolvente de 2 y 5 con σ = [y/a] 5 Resolvente de 3 y 4 con σ = ɛ LI 2004 05 CcIa Resolución en lógica de primer orden 9.2

Unificación: Unificadores Unificador: Def.: La sustitución σ es un unificador de los términos t 1 y t 2 si t 1 σ = t 2 σ. Def.: Los términos t 1 y t 2 son unificables si tienen algún unificador. Def.: t es una instancia común de t 1 y t 2 si existe una sustitución σ tal que t = t 1 σ = t 2 σ. Ejemplos: t 1 t 2 Unificador Instancia común f(x, g(z)) f(g(y), x) [x/g(z), y/z] f(g(z), g(z)) f(x, g(z)) f(g(y), x) [x/g(y), z/y] f(g(y), g(y)) f(x, g(z)) f(g(y), x) [x/g(a), y/a] f(g(a), g(a)) f(x, y) f(y, x) [x/a, y/a] f(a, a) f(x, y) f(y, x) [y/x] f(x, x) f(x, y) g(a, b) No tiene No tiene f(x, x) f(a, b) No tiene No tiene f(x) f(g(x)) No tiene No tiene Nota: Las anteriores definiciones se extienden a conjuntos de términos y de literales. LI 2004 05 CcIa Resolución en lógica de primer orden 9.3

Unificación: Composición de sustituciones Composición de sustituciones: Def.: La composición de las sustituciones σ 1 y σ 2 es la sustitución σ 1 σ 2 definida por x(σ 1 σ 2 ) = (xσ 1 )σ 2, para toda variable x. Ejemplo: Si σ 1 = [x/f(z, a), y/w] y σ 2 = [x/b, z/g(w)], entonces xσ 1 σ 2 = (xσ 1 )σ 2 = f(z, a)σ 2 = f(zσ 2, aσ 2 ) = f(g(w), a) yσ 1 σ 2 = (yσ 1 )σ 2 = wσ 2 = w zσ 1 σ 2 = (zσ 1 )σ 2 = zσ 2 = g(w) wσ 1 σ 2 = (wσ 1 )σ 2 = wσ 2 = w Por tanto, σ 1 σ 2 = [x/f(g(w), a), y/w, z/g(w)]. Def.: La substitución identidad es la sustitución ɛ tal que, para todo x, xɛ = x. Propiedades: 1. Asociativa: σ 1 (σ 2 σ 3 ) = (σ 1 σ 2 )σ 3 2. Neutro: σɛ = ɛσ = σ. LI 2004 05 CcIa Resolución en lógica de primer orden 9.4

Unificación: Comparación de sustituciones Comparación de sustituciones: Def.: La sustitución σ 1 es más general que la σ 2 si existe una sustitución σ 3 tal que σ 2 = σ 1 σ 3, Se representa por σ 2 σ 1. Def.: Las sustituciones σ 1 y σ 2 son equivalentes si σ 1 σ 2 y σ 2 σ 1. Se representa por σ 1 σ 2. Ejemplos: Sean σ 1 = [x/g(z), y/z], σ 2 = [x/g(y), z/y] y σ 3 = [x/g(a), y/a]. Entonces, 1. σ 1 = σ 2 [y/z] 2. σ 2 = σ 1 [z/y] 3. σ 3 = σ 1 [z/a] 4. σ 1 σ 2 5. σ 3 σ 1 Ejemplo: [x/a, y/a] [y/x], ya que [x/a, y/a] = [y/x][x/a, y/a]. LI 2004 05 CcIa Resolución en lógica de primer orden 9.5

Unificación: Unificador de máxima generalidad Unificador de máxima generalidad: Def.: La sustitución σ es un unificador de máxima generalidad (UMG) de los términos t 1 y t 2 si σ es un unificador de t 1 y t 2. σ es más general que cualquier unificador de t 1 y t 2. Ejemplos: 1. [x/g(z), y/z] es un UMG de f(x, g(z)) y f(g(y), x). 2. [x/g(y), z/y] es un UMG de f(x, g(z)) y f(g(y), x). 3. [x/g(a), y/a] no es un UMG de f(x, g(z)) y f(g(y), x). Nota: Las anterior definición se extienden a conjuntos de términos y de literales. LI 2004 05 CcIa Resolución en lógica de primer orden 9.6

Unificación: Algoritmo de unificación Notación de lista: (a 1,..., a n ) representa una lista cuyos elementos son a 1,..., a n. (a R) representa una lista cuyo primer elemento es a y resto es R. () representa la lista vacía. Unificadores de listas de términos: Def.: σ es un unificador de (s 1..., s n ) y (t 1..., t n ) si s 1 σ = t 1 σ,..., s n σ = t n σ. Def.: (s 1..., s n ) y (t 1..., t n ) son unificables si tienen algún unificador. Def.: σ es un unificador de máxima generalidad (UMG) de (s 1..., s n ) y (t 1..., t n ) si σ es un unificador de (s 1..., s n ) y (t 1..., t n ) más general que cualquier otro. Aplicación de una sustitución a una lista de ecuaciones: (s 1 = t 1,..., s n = t n )σ = (s 1 σ = t 1 σ,..., s n σ = t n σ). Algoritmo de unificación de listas de términos: Entrada: Una lista de ecuaciones L = (s 1 = t 1,..., s n = t n ) y una sustitución σ. Salida: Un UMG de las listas (s 1..., s n ) y (t 1..., t n ), si son unificables; No unificables, en caso contrario. LI 2004 05 CcIa Resolución en lógica de primer orden 9.7

Unificación: Algoritmo de unificación Procedimiento unif(l, σ): 1. Si L = (), entonces unif(l, σ) = σ. 2. Si L = (t = t L ), entonces unif(l, σ) = unif(l, σ). 3. Si L = (f(t 1,..., t m ) = f(t 1..., t m ) L ), entonces unif(l, σ) = unif((t 1 = t 1,..., t m = t m L ), σ). 4. Si L = (x = t L ) (ó L = (t = x L )) y x no aparece en t, entonces unif(l, σ) = unif(l [x/t], σ[x/t]). 5. Si L = (x = t L ) (ó L = (t = x L )) y x aparece en t, entonces unif(l, σ) = No unificables. 6. Si L = (f(t 1,..., t m ) = g(t 1..., t m ) L ), entonces unif(l, σ) = No unificables. 7. Si L = (f(t 1,..., t m ) = f(t 1..., t p ) L ) y m p, entonces unif(l, σ) = No unificables. LI 2004 05 CcIa Resolución en lógica de primer orden 9.8

Unificación: Algoritmo de unificación Algoritmo de unificación de dos términos: Entrada: Dos términos t 1 y t 2. Salida: Un UMG de t 1 y t 2, si son unificables; No unificables, en caso contrario. Procedimiento: unif((t 1 = t 2 ), ɛ). Ejemplo 1: Unificar f(x, g(z)) y f(g(y), x): unif((f(x, g(z)) = f(g(y), x)), ɛ) = unif((x = g(y), g(z) = x), ɛ) por 3 = unif((g(z) = x)[x/g(y)], ɛ[x/g(y)]) por 4 = unif((g(z) = g(y)), [x/g(y)]) = unif((z = y), [x/g(y)]) por 3 = unif((), [x/g(y)][z/y]) por 4 = unif((), [x/g(y), z/y]) = [x/g(y), z/y] por 1 LI 2004 05 CcIa Resolución en lógica de primer orden 9.9

Unificación: Algoritmo de unificación Ejemplo 2: Unificar f(x, b) y f(a, y): unif((f(x, b) = f(a, y), ɛ) = unif((x = a, b = y), ɛ) por 3 = unif((b = y)[x/a], ɛ[x/a]) por 4 = unif((b = y), [x/a]) = unif((), [x/a][y/b]) por 4 = [x/a, y/b]) por 1 Ejemplo 3: Unificar f(x, x) y f(a, b): unif((f(x, x) = f(a, b)), ɛ) = unif((x = a, x = b), ɛ) por 3 = unif((x = b)[x/a], ɛ[x/a]) por 4 = unif((a = b), [x/a]) = No unificable por 6 Ejemplo 4: Unificar f(x, g(y)) y f(y, x): unif((f(x, g(y)) = f(y, x)), ɛ) = unif((x = y, g(y) = x), ɛ) por 3 = unif((g(y) = x)[x/y], ɛ[x/y]) por 4 = unif((g(y) = y), [x/y]) = No unificable por 5 LI 2004 05 CcIa Resolución en lógica de primer orden 9.10

Unificación: Algoritmo de unificación Ejemplo 5: Unificar j(w, a, h(w)) y j(f(x, y), x, z) unif((j(w, a, h(w)) = j(f(x, y), x, z))ɛ) = unif((w = f(x, y), a = x, h(w) = z), ɛ) por 3 = unif((a = x, h(w) = z)[w/f(x, y)], ɛ[w/f(x, y)]) por 4 = unif((a = x, h(f(x, y)) = z), [w/f(x, y)]) = unif((h(f(x, y)) = z)[x/a], [w/f(x, y)][x/a]) por 4 = unif((h(f(a, y)) = z), [w/f(a, y), x/a]) = unif((), [w/f(a, y), x/a][z/h(f(a, y))]) por 4 = [w/f(a, y), x/a, z/h(f(a, y))) por 1 Ejemplo 6: Unificar j(w, a, h(w)) y j(f(x, y), x, y) unif((j(w, a, h(w)) = j(f(x, y), x, y))ɛ) = unif((w = f(x, y), a = x, h(w) = y), ɛ) por 3 = unif((a = x, h(w) = y)[w/f(x, y)], ɛ[w/f(x, y)]) por 4 = unif((a = x, h(f(x, y)) = y), [w/f(x, y)]) = unif((h(f(x, y)) = y)[x/a], [w/f(x, y)][x/a]) por 4 = unif((h(f(a, y)) = y), [w/f(a, y), x/a]) = No unificable por 5 LI 2004 05 CcIa Resolución en lógica de primer orden 9.11

Resolución: Separación de variables Separación de variables Def.: La sustitución [x 1 /t 1,..., x n /t n ] es un renombramiento si todos los t i son variables. Prop.: Si θ es un renombramiento, entonces C Cθ. Def.: Las cláusulas C 1 y C 2 están separadas sin no tienen ninguna variable común. Def.: Una separación de las variables de C 1 y C 2 es un par de renombramientos (θ 1, θ 2 ) tales que C 1 θ 1 y C 2 θ 2 están separadas. Ejemplo: Una separación de variables de C 1 = {P (x), Q(x, y)} y C 2 = {R(f(x, y))} es (θ 1 = [x/x 1, y/y 1 ], θ 2 = [x/x 2, y/y 2 ]). LI 2004 05 CcIa Resolución en lógica de primer orden 9.12

Resolución: Resolvente binaria Resolución binaria: Def.: La cláusula C es una resolvente binaria de las cláusulas C 1 y C 2 si existen una separación de variables (θ 1, θ 2 ) de C 1 y C 2, un literal L 1 C 1, un literal L 2 C 2 y un UMG σ de L 1 θ 1 y L c 2 θ 2 tales que C = (C 1 θ 1 σ {L 1 θ 1 σ 1 }) (C 2 θ 2 σ {L 2 θ 2 σ}). Ejemplo: Sean C 1 = { P (x), Q(f(x))}, C 2 = { Q(x), R(g(x))}, L 1 = Q(f(x)), L 2 = Q(x), θ 1 = [x/x 1 ], θ 2 = [x/x 2 ], L 1 θ 1 = Q(f(x 1 )), L c 2 θ 2 = Q(x 2 ), σ = [x 2 /f(x 1 )] Entonces, C = { P (x 1 ), R(g(f(x 1 )))} es una resolvente binaria de C 1 y C 2. LI 2004 05 CcIa Resolución en lógica de primer orden 9.13

Resolución: Factorización Factorización: Def.: La cláusula C es un factor de la cláusula D si existen dos literales L 1 y L 2 en D que son unificables y C = Dσ {L 2 σ} donde σ es un UMG de L 1 y L 2. Ejemplo: Sean D = {P (x, y), P (y, x), Q(a)} L 1 = P (x, y) L 2 = P (y, x) σ = [y/x] Entonces, C = {P (x, x), Q(a)} es un factor de D. LI 2004 05 CcIa Resolución en lógica de primer orden 9.14

Resolución Ejemplos de refutación por resolución: Refutación de S = {{ P (x, f(x, y))}, {P (a, z), Q(z, v)}, {Q(u, a)}} 1 { P (x, f(x, y))} Hipótesis 2 {P (a, z), Q(z, v)} Hipótesis 3 {Q(u, a)} Hipótesis 4 { Q(f(a, y), v)} Resolvente de 1 y 2 con σ = [x/a, z/f(a, y)] 5 Resolvente de 3 y 4 con σ = [u/f(a, y), v/a] Refutación de S = {{P (x)}, { P (f(x))}} 1 {P (x)} Hipótesis 2 { P (f(x))} Hipótesis 3 Resolvente de 1 y 2 con θ 1 = ɛ, θ 2 = [x/x ], σ = [x/f(x )] Refutación de S = {{P (x, y), P (y, x)}, { P (u, v), P (v, u)}} 1 {P (x, y), P (y, x)} Hipótesis 2 { P (u, v), P (v, u)} Hipótesis 3 {P (x, x)} Factor de 1 con [y/x] 4 { P (u, u)} Factor de 2 con [v/u] 5 Resolvente de 3 y 4 con [x/u] LI 2004 05 CcIa Resolución en lógica de primer orden 9.15

Resolución Definiciones Sea S un conjunto de cláusulas. La sucesión (C 1,..., C n ) es una demostración por resolución de la cláusula C a partir de S si C = C n y para todo i {1,..., n} se verifica una de las siguientes condiciones: C i S; existen j, k < i tales que C i es una resolvente de C j y C k existe j < i tal que C i es un factor de C j La cláusula C es demostrable por resolución a partir de S si existe una demostración por resolución de C a partir de S. Una refutación por resolución de S es una demostración por resolución de la cláusula vacía a partir de S. Se dice que S es refutable por resolución si existe una refutación por resolución a partir de S. LI 2004 05 CcIa Resolución en lógica de primer orden 9.16

Resolución Demostraciones por resolución Def.: Sean S 1,..., S n formas clausales de las fórmulas F 1,..., F n y S una forma clausal de F. Una demostración por resolución de F a partir de {F 1,..., F n } es una refutación por resolución de S 1... S n S. Def.: La fórmula F es demostrable por resolución a partir de {F 1,..., F n } si existe una demostración por resolución de F a partir de {F 1,..., F n }. Se representa por {F 1,..., F n } Res F. Ejemplo: (tema 8 p. 21) {( x)[p (x) Q(x)], ( x)p (x)} Res ( x)q(x) 1 { P (x), Q(x)} Hipótesis 2 {P (a)} Hipótesis 3 { Q(z)} Hipótesis 4 {Q(a)} Resolvente de 1 y 2 con [x/a] 5 Resolvente de 3 y 4 con [z/a] LI 2004 05 CcIa Resolución en lógica de primer orden 9.17

Resolución Ejemplo: (tema 8 p. 21) {( x)[p (x) Q(x)], ( x)[q(x) R(x)] Res ( x)[p (x) R(x)]} 1 { P (x), Q(x)} Hipótesis 2 { Q(y), R(y)} Hipótesis 3 {P (a)} Hipótesis 4 { R(a)} Hipótesis 5 {Q(a)} Resolvente de 1 y 2 con [x/a] 6 {R(a)} Resolvente de 2 y 5 con [y/a] 5 Resolvente de 6 y 4 con Ejemplo: (tema 6 p. 55) Res ( x)[p (x) ( y)p (y)] 1 {P (x)} Hipótesis 2 { P (f(x))} Hipótesis 3 Resolvente de 1 y 2 con θ 2 = [x/x ], σ = [x/f(x )] LI 2004 05 CcIa Resolución en lógica de primer orden 9.18

Resolución Ejemplo: Res ( x)( y) (P (y, x) P (y, y)) Forma clausal: ( x)( y) (P (y, x) P (y, y)) ( x)( y) ((P (y, x) P (y, y)) ( P (y, y) P (y, x))) ( x)( y) (( P (y, x) P (y, y)) ( P (y, y) P (y, x))) ( x)( y) (( P (y, x) P (y, y)) (P (y, y) P (y, x))) ( x)( y) (( P (y, x) P (y, y)) (P (y, y) P (y, x))) ( x)( y)(( P (y, x) P (y, y)) (P (y, y) P (y, x))) sat ( y)(( P (y, a) P (y, y)) (P (y, y) P (y, a))) {{ P (y, a), P (y, y)}, {P (y, y), P (y, a)}} Refutación: 1 { P (y, a), P (y, y)} Hipótesis 2 {P (y, y), P (y, a)} Hipótesis 3 { P (a, a)} Factor de 1 con [y/a] 4 { P (a, a)} Factor de 2 con [y/a] 5 Resolvente de 3 y 4 LI 2004 05 CcIa Resolución en lógica de primer orden 9.19

Resolución Ejemplo (Paradoja del barbero de Russell): En una isla pequeña hay sólo un barbero. El gobernador de la isla ha publicado la siguiente norma: El barbero afeita a todas las personas que no se afeitan a sí misma y sólo a dichas personas. Demostrar que la norma es inconsistente. Representación: ( x)[afeita(b, x) afeita(x, x)] Forma clausal: ( x)[afeita(b, x) afeita(x, x)] ( x)[(afeita(b, x) afeita(x, x)) ( afeita(x, x) afeita(b, x))] ( x)[( afeita(b, x) afeita(x, x)) ( afeita(x, x) afeita(b, x))] ( x)[( afeita(b, x) afeita(x, x)) (afeita(x, x) afeita(b, x))] {{ afeita(b, x), afeita(x, x)}, {afeita(x, x), afeita(b, x)}} Refutación: 1 { afeita(b, x), afeita(x, x)} Hipótesis 2 {afeita(x, x), afeita(b, x)} Hipótesis 3 { afeita(b, b)} Factor de 1 con [x/b] 4 {afeita(b, b)} Factor de 2 con [x/b] 5 Resolvente de 3 y 4 LI 2004 05 CcIa Resolución en lógica de primer orden 9.20

Adecuación y completitud de la resolución Propiedades: Si C es una resolvente de C 1 y C 2, entonces {C 1, C 2 } = C. Si D es un factor de C entonces C = D. Si S, entonces S es inconsistente. Si el conjunto de cláusulas S es refutable por resolución, entonces S es inconsistente. Teor.: El cálculo de resolución (para la lógica de primer orden sin igualdad) es adecuado y completo; es decir, Adecuado: S Res F = S = F Completo: S = F = S Res F LI 2004 05 CcIa Resolución en lógica de primer orden 9.21

Interpretaciones de Herbrand Def.: El universo de Herbrand de L es el conjunto de los términos básicos de L. Se representa por UH(L). Def.: Una interpretación I = (U, I) de L es una intepretación de Herbrand si U es el universo de Herbrand de L; I(c) = c, para cada constante c de L; I(f) = f, para cada símbolo de función f de L. Def.: La base de Herbrand de L es el conjunto de los átomos básicos de L. representa por BH(L). Prop.: Una interpretación de Herbrand queda determinada por un subconjunto de la base de Herbrand, el conjunto de átomos básicos verdaderos en esa interpretación. Ejemplo: Si C = {a, b, c}, F = y R = {P/1}, entonces las interpretaciones de Herbrand de L son n 1 2 3 4 5 6 7 8 I n (P ) {c} {b} {b, c} {a} {a, c} {a, b} {a, b, c} IH n {P (c)} {P (b)} {P (b), P (c)} {P (a)} {P (a), P (c)} {P (a), P (b)} {P (a), P (b), P (c)} Se LI 2004 05 CcIa Resolución en lógica de primer orden 9.22

Modelos de Herbrand Modelos de Herbrand: Nota: Las definiciones de universo de Herbrand, base de Herbrand e interpretación de Herbrand definidas para un lenguaje se extienden a fórmulas y conjuntos de fórmulas considerando el lenguaje formado por los símbolos no lógicos que aparecen. Def.: Un modelo de Herbrand de una fórmula F es una interpretación de Herbrand de F que es modelo de F. Def.: Un modelo de Herbrand de un conjunto de fórmulas S es una interpretación de Herbrand de S que es modelo de S. Ejemplo: Los modelos de Herbrand de {P (a) P (b), P (b) P (c), P (a) P (c)} son {P (b), P (c)}, {P (a), P (c)} y {P (a), P (b), P (c)}. Ejemplo: Sea S = {( x)( y)[q(b, x) P (a) R(y)], P (b) ( z)( u)q(z, u)}. Entonces, UH(S) = {a, b} BH(S) = {P (a), P (b), Q(a, a), Q(a, b), Q(b.a), Q(b, b), R(a), R(b)} Un modelo de Herbrand de S es {P (a)}. LI 2004 05 CcIa Resolución en lógica de primer orden 9.23

Cálculo de modelo de Herbrand Cálculo de modelo de Herbrand Ejemplo 1: Cálculo de modelo de Herbrand de {( x)[p (x) Q(x)], P (a), Q(b)} 1 { P (x), Q(x)} Hipótesis 2 {P (a)} Hipótesis 3 { Q(b)} Hipótesis 4 {Q(a)} Resolvente de 1 y 2 5 { P (b)} Resolvente de 1 y 3 Modelo de Herbrand: U = {a, b}, I(P ) = {a}, I(Q) = {a}. Ejemplo 2: Cálculo de modelo de Herbrand de {( x)[p (x) P (s(x))], P (0)} 1 { P (x), P (s(x))} Hipótesis 2 {P (0)} Hipótesis 3 {P (s(0))} Resolvente de 1 y 2 4 {P (s(s(0)))}.. Resolvente de 1 y 3. Modelo de Herbrand: U = {0, s(0), s(s(0)),...} I(P ) = {P (0), P (s(0)), P (s(s(0))),..., } LI 2004 05 CcIa Resolución en lógica de primer orden 9.24

Determinación de no consecuencia por resolución Ejemplo de determinación de no consecuencia por resolución Enunciado: Comprobar, por resolución, que ( x)[p (x) Q(x)] = ( x)p (x) ( x)q(x). Reducción 1: Comprobar que es consistente {( x)[p (x) Q(x)], (( x)p (x) ( x)q(x))} Reducción 2: Comprobar que es consistente {{P (x), Q(x)}, { P (a)}, { Q(b)}} Resolución: 1 {P (x), Q(x)} Hipótesis 2 { P (a)} Hipótesis 3 { Q(b)} Hipótesis 4 {Q(a)} Resolvente de 1 y 2 5 {P (b)} Resolvente de 1 y 3 Modelo: U = {a, b}, I(P ) = {b}, I(Q) = {a}. LI 2004 05 CcIa Resolución en lógica de primer orden 9.25

Tableros semánticos Fórmulas gamma y beta Las fórmulas gamma, junto con sus componentes, son ( x)f F [x/t] (con t un término básico) ( x)f F [x/t] (con t un término básico) Las fórmulas beta, junto con sus componentes, son ( x)f F [x/a] (con a una nueva constante) ( x)f F [x/a] (con a una nueva constante) LI 2004 05 CcIa Resolución en lógica de primer orden 9.26

Tableros semánticos Ejemplo de consecuencia mediante tablero: {( x)[p (x) Q(x)], ( x)p (x)} T ab ( x)q(x) 1 ( x)[p (x) Q(x)] 2 ( x)p (x) 3 ( x)q(x) 4 P (a) (2) 5 P (a) Q(a) (1) 6 P (a) (5) Cerrada (6 y 4) 7 Q(a) (5) 8 Q(a) (3) Cerrada (7 y 8) LI 2004 05 CcIa Resolución en lógica de primer orden 9.27

Tableros semánticos Ejemplo de consecuencia mediante tablero: {( x)[p (x) Q(x)], ( x)[q(x) R(x)]} T ab ( x)[p (x) R(x)] 1 ( x)[p (x) Q(x)] 2 ( x)[q(x) R(x)] 3 ( x)[p (x) R(x)] 4 (P (a) R(a)) (3) 5 P (a) (4) 6 R(a) (4) 7 P (a) Q(a) (1) 8 Q(a) R(a) (2) 9 P (a) (7) Cerrada (5 y 9) 11 Q(a) (8) Cerrada (10 y 11) 10 Q(a) (7) 12 R(a) (8) Cerrada (6 y 12) LI 2004 05 CcIa Resolución en lógica de primer orden 9.28

Tableros semánticos Ejemplo de no consecuencia mediante tablero: ( x)[p (x) Q(x)] = ( x)p (x) ( x)q(x). 1 ( x)[p (x) Q(x)] 2 (( x)p (x) ( x)q(x)) 3 ( x)p (x) (2) 4 ( x)q(x) (2) 5 P (a) (3) 6 Q(b) (4) 7 P (a) Q(a) (1) 8 P (b) Q(b) (1) 9 P (a) (6) Cerrada (5 y 9) 11 P (b) (8) Abierta 10 Q(a) (7) Contramodelo: U = {a, b}, I(P ) = {b}, I(Q) = {a}. 12 Q(b) (8) Cerrada (6 y 12) LI 2004 05 CcIa Resolución en lógica de primer orden 9.29

Bibliografía Fitting, M. First-Order Logic and Automated Theorem Proving (2nd ed.) (Springer, 1996) pp. 137 141. M.L. Bonet Apuntes de LPO. (Univ. Politécnica de Cataluña, 2003) pp. 34 40. C.L. Chang y R.C.T. Lee Symbolic logic and mechanical theorem proving (Academic Press, 1973) pp. 70 99. J.I. García, P.A. García y J.M. Urbano Fundamentos lógicos de la programación. (Universidad de Granada, 2002) pp. 45 66 M. Genesereth Computational Logic (Chapter 9: Relational Resolution) (Stanford University, 2003) S. Hölldobler Computational logic. (U. de Dresden, 2004) pp. 71 74. M. Ojeda e I. Pérez Lógica para la computación (Vol. 2: Lógica de Primer Orden) (Ágora, 1997) pp. 138 164. L. Paulson Logic and proof (U. Cambridge, 2002) pp. 50 61. U. Schöning Logic for computer scientists (Birkäuser, 1989) pp. 79 96. LI 2004 05 CcIa Resolución en lógica de primer orden 9.30