SlideShare una empresa de Scribd logo
Modificado y Adaptado por: LEONARDO BERNAL ZAMORA
Programación Lógica Forma normal de una fórmula Una fórmula se dice que está en forma normal si todos los cuantificadores han sido desplazados al principio de la fórmula. Algunas equivalencias útiles para alcanzar una forma normal    [ (   X) p(X) ]    (  X) [   p(X) ]    [ (  X) p(X) ]    (   X) [   p(X) ]  (   X) [ p(X)    q(X) ]    [ (  X) p(X) ]    [ (  X) q(X) ]  (   X) [ p(X)    q(X) ]    [ (   X) p(X) ]    [ (   X) q(X) ]
Reglas de Inferencia: Especialización Universal:  siempre es posible deducir la verificación de un caso concreto a partir de un cuantificador universal. (  X) p(X)   p(a) Sustitución:   permite la sustitución de cualquier proposición en una fórmula por otra biequivalente. Modus ponens:  de una implicación de la verificación de la premisa se verifica la conclusión. Axioma:  p    q Axioma:  p Teorema: q
Programación Lógica Modus tollens:  de una implicación y de la no verificación del consecuente, se concluye la no verificación de la premisa. Axioma:  p    q Axioma:  ¬q Teorema: ¬p Y - Introducción:  la fbf p  q puede ser inferida de las fbf p y q. Y- Eliminación:  la fbf p puede ser inferida de la fbf p  q. O - Introducción:   la fbf p    q puede ser inferida de la fbf p o de la fbf q. Reglas de Inferencia:
El Modus Ponens o razonamiento directo
El Modus Tollens o razonamiento indirecto
 
Programación Lógica ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programación Lógica Ejercicios. Expresar como fbf en lógica de predicados los siguientes hechos A. Marco era un hombre. B. Marco era pompeyano (de Pompeya). C. Todos los pompeyanos eran romanos. D. César era un dirigente. E. Todos los romanos o bien eran leales a César o bien le odiaban. F. Todo el mundo es fiel a alguien.  G. La gente sólo trata de asesinar a aquellos dirigentes a los que no son leales. H. Marco intentó asesinar a César. I. Algún romano odia a César.
Programación Lógica A. hombre(marco) B. pompeyano(marco) C. (  X)(pompeyano(X)    romano(X)) D. dirigente(césar) E. (  X)(romano(X)    leal(X,césar)    odia(X,césar)) F. (  X)(hombre(X)      (  Y) leal(X,Y)  G. (  X)  (  Y) (hombre(X)    dirigente(Y)     intenta_asesinar(X,Y)       leal(X,Y))  H. intenta_asesinar(marco, césar) I. (  X) (romano(X)    odia(X, césar))
Programación Lógica Teorema + Axiomas (como fórmulas bien formadas, fbf) Teorema + Axiomas (como cláusulas) Método de resolución por refutación Unificación Demostración automática de teoremas + + Lo que queremos hacer ...
Programación Lógica IMPORTANTE: La demostración automática de teoremas lógicos es un procedimiento que involucra una mera actividad sintáctica, o de relación entre símbolos, ignorándose completamente el contenido semántico que resulta de la interpretación de las fórmulas.
Programación Lógica Fórmulas bien formadas (fbf) Son aquellas que cumplen ciertos requisitos en su estructura y definen la sintaxis del cálculo de predicados Una fórmula se dice bien formada si puede derivarse de alguna de las siguientes reglas de formación: 1. Cualquier fórmula atómica es una fbf. 2. Si p y q son fbf, entonces también serán fbf las siguientes: ¬p, p    q, p    q, p    q 3. Si X es una variable libre en la fbf p, entonces son fbf : (  X) p(X), (  X) p(X) 4. Cualquier fórmula que no pueda formarse a partir de estas reglas no es una fbf.
Programación Lógica Cláusula Es una fórmula que sólo contiene operadores disyuntivos y posiblemente negaciones sobre los átomos. Este tipo de fórmulas pueden ser expresadas por una única implicación. Así la fórmula: a 1     a 2     ...    a n      b 1     b 2     ...    b m se puede transformar en :   ¬(¬ a 1     ¬ a 2     ...    ¬ a n  )     b 1     b 2     ...    b m   ¬ a 1     ¬ a 2     ...    ¬ a n     b 1     b 2     ...    b m
Programación Lógica ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programación Lógica Proceso de paso a cláusulas: 1.  Eliminar los símbolos de implicación   2.  Mover las negaciones hasta las fórmulas atómicas   3.  Renombrar variables 4.  Eliminar los cuantificadores existenciales. 5.  Desplazar los cuantificadores universales   6.  Convertir los operadores AND en los más externos 7.  Eliminar los cuantificadores universales. 8.  Eliminar los conectores conjuntivos (AND). 9.  Renombrar las variables.
Programación Lógica Transformación a cláusulas Para ilustrar el proceso paso a paso emplearemos la siguiente fómula compleja como ejemplo: (  X){p(X)   {(  Y)[p(Y)    p(f(X,Y))]     (  Y)[q(X,Y)    p(Y)]}} 1.  Eliminar los símbolos de implicación ,  sustituyendo p    q por   p    q. Tras este primer paso, nuestra fómula se transforma en: (  X){  p(X)    {(  Y)[   p(Y)    p(f(X,Y))]      (  Y)[   q(X,Y)    p(Y)]}}
Programación Lógica 2.  Mover las negaciones hasta las fórmulas atómicas , para ello se emplean las leyes de Morgan y las transformaciones de cuantificadores existenciales y universales.    (p    q)       p       q    (p    q)       p       q    [ (   X) p(X) ]    (  X) [   p(X) ]    [ (  X) p(X) ]    (   X) [   p(X) ]  Aplicándolo sobre el ejemplo: (  X){  p(X)    {(  Y)[   p(Y)    p(f(X,Y))]      (  Y)[   q(X,Y)    p(Y)]}} (  X){   p(X)    {(  Y)[   p(Y)    p(f(X,Y))]    (  Y)[q(X,Y)       p(Y)]}}
Programación Lógica 3.  Renombrar variables , en aquellos casos en los que varias variables se hayan nombrado de igual forma. En nuestro caso esto ocurre con la variable Y que renombramos como Z en su segunda ocurrencia. Así nuestro ejemplo se transforma en: (  X){   p(X)    {(  Y)[   p(Y)    p(f(X,Y))]    (  Y)[q(X,Y)       p(Y)]}} (  X){   p(X)    {(  Y)[   p(Y)    p(f(X,Y))]    (  Z)[q(X,Z)       p(Z)]}}
Programación Lógica 4.  Eliminar los cuantificadores existenciales .  Las variables cuantificadas por este tipo de cuantificadores serán sustituidas por un tipo de función comodín denominada función de Skolem (proceso de skolemización). P.e. (  Z) q(X,Z) se transforma en  q(X, g(X)) en donde g(X) es la función de Skolem para este caso. Nótese que no sólo se eliminan los cuantificadores existenciales sino también las variables ligadas a los mismos. La función de Skolem introducida debe ser nueva en el universo de discurso, y además deberá ser función de todas las variables cuantificadas universalmente cuyos ámbitos incluyan el ámbito del cuantificador existencial que se pretende eliminar.
Programación Lógica Así nuestro ejemplo se transforma en: (  X){   p(X)    {(  Y)[   p(Y)    p(f(X,Y))]    (  Z)[q(X,Z)       p(Z)]}} (  X){   p(X)    {(  Y)[   p(Y)    p(f(X,Y))]    [q(X, g(X))       p(g(X))]}} Si el cuantificador existencial no se encuentra en el ámbito de ningún cuantificador universal, se usará una función de Skolem sin argumentos. Como en el siguiente ejemplo: (  Z) q(Z) se transforma en q(a) Donde el símbolo constante a referencia a la entidad que sabemos existe. Evidentemente a debe ser un símbolo que no haya sido empeado con anterioridad.
Programación Lógica 5.  Desplazar los cuantificadores universales,  de manera que queden al comienzo de la fórmula (prenex form). Estre proceso puede ser realizado por cuanto no existen ya variables distintas con el mismo nombre. (  X){   p(X)    {(  Y)[   p(Y)    p(f(X,Y))]    [q(X, g(X))       p(g(X))]}} (  X) (  Y){   p(X)    { [   p(Y)    p(f(X,Y))]    [q(X, g(X))       p(g(X))]}} 6.  Convertir los operadores conjuntivos (AND) en los más externos ,  para lo que se emplean las leyes distributivas. A la forma resultante se le denomina forma normal conjuntiva. Este paso se ejecuta sobre el ejemplo en dos pasos:
Programación Lógica Partiendo de la última expresión, (  X)(  Y){   p(X)    { [   p(Y)    p(f(X,Y))]    [q(X, g(X))       p(g(X))]}} se aplica primero la ley distributiva: (  X)(  Y){ {   p(X)    [   p(Y)    p(f(X,Y))]}     {   p(X)    [q(X, g(X))       p(g(X))]}} Aplicando de nuevo la ley distributiva y la asociativa: (  X)(  Y){ [   p(X)       p(Y)    p(f(X,Y))]     [   p(X)    q(X, g(X)) ]       [   p(X)       p(g(X))]}
Programación Lógica 7.  Eliminar los cuantificadores universales.  Se trata de una eliminación convencional, no teórica, pues se asume que toda variable que aparezca está cuantificada universalmente. La función de Skolem adquiere sentido, dado que al no aparecer otras variables que las universales, pueden eliminarse sus cuantificadores por convenio. En nuestro ejemplo: (  X)(  Y){ [   p(X)       p(Y)    p(f(X,Y))]     [   p(X)    q(X, g(X)) ]       [   p(X)       p(g(X))]} [   p(X)       p(Y)    p(f(X,Y))]     [   p(X)    q(X, g(X)) ]     [   p(X)       p(g(X))]
Programación Lógica 8.  Eliminar los conectores conjuntivos (AND).  Dado que la fómula se corresponde con una conjunción de subfómulas, éstas deberán verificarse por separado para que se verifique la fórmula principal.  Esto produce, en nuestro caso, el siguiente conjunto de fórmulas: [   p(X)       p(Y)    p(f(X,Y))]     [   p(X)    q(X, g(X)) ]     [   p(X)       p(g(X))]    p(X)       p(Y)    p(f(X,Y))    p(X)    q(X, g(X))     p(X)       p(g(X))
Programación Lógica 9.  Renombrar las variables .  para que no aparezca la misma variable en dos cláusulas.    p(X)       p(Y)    p(f(X,Y))    p(X)    q(X, g(X))     p(X)       p(g(X))    p(X)       p(Y)    p(f(X,Y))    p(U)    q(U, g(U))     p(W)       p(g(W)) ------ * * * ------ Mediante este proceso se termina en una representación en forma de cláusulas. Así de una una única fórmula pueden resultar varias cláusulas que son más modulares y de estructura más simple.
Programación Lógica A. hombre(marco) B. pompeyano(marco) C. (  X)(pompeyano(X)    romano(X)) D. dirigente(césar) E. (  X)(romano(X)    leal(X,césar)    odia(X,césar)) F. (  X)(hombre(X)      (  Y) leal(X,Y)  G. (  X)  (  Y) (hombre(X)    dirigente(Y)     intenta_asesinar(X,Y)       leal(X,Y))  H. intenta_asesinar(marco, césar) I. (  X) (romano(X)    odia(X, césar))
Programación Lógica Proceso de paso a cláusulas 1.  Eliminar los símbolos de implicación   A. hombre(marco) B. pompeyano(marco) C. (  X)(   pompeyano(X)    romano(X)) D. dirigente(césar) E. (  X)(   romano(X)    leal(X,césar)    odia(X,césar)) F. (  X)(   hombre(X)      (  Y) leal(X,Y)  G. (  X){ (  Y)       (hombre(X)     dirigente(Y)    intenta_asesinar(X,Y)           leal(X,Y)) } H. intenta_asesinar(marco, césar) I. (  X) (romano(X)    odia(X, césar))
Programación Lógica Proceso de paso a cláusulas 2.  Mover las negaciones hasta las fórmulas atómicas A. hombre(marco) B. pompeyano(marco) C. (  X)(   pompeyano(X)    romano(X)) D. dirigente(césar) E. (  X)(   romano(X)    leal(X,césar)    odia(X,césar)) F. (  X)(   hombre(X)      (  Y) leal(X,Y)  G. (  X)(  Y) (   hombre(X)      dirigente(Y)        intenta_asesinar(X,Y)       leal(X,Y)) H. intenta_asesinar(marco, césar) I. (  X) (romano(X)    odia(X, césar)) 3.Renombrar las variables
Programación Lógica Proceso de paso a cláusulas 4. Eliminar los cuantificadores existenciales A. hombre(marco) B. pompeyano(marco) C. (  X)(   pompeyano(X)    romano(X)) D. dirigente(césar) E. (  X)(   romano(X)    leal(X,césar)    odia(X,césar)) F. (  X)(   hombre(X)    leal(X, g(X)) G. (  X)(  Y) (   hombre(X)      dirigente(Y)       intenta_asesinar(X,Y)      leal(X,Y)) H. intenta_asesinar(marco, césar) I. romano(f)    odia(f, césar))
Programación Lógica Proceso de paso a cláusulas 5. Desplazar los cuantificadores universales 6. Convertir los operadores AND en los más externos A. hombre(marco) B. pompeyano(marco) C. (  X)(   pompeyano(X)    romano(X)) D. dirigente(césar) E. (  X)(   romano(X)    leal(X,césar)    odia(X,césar)) F. (  X)(   hombre(X)    leal(X, g(X)) G. (  X)(  Y) (   hombre(X)      dirigente(Y)       intenta_asesinar(X,Y)      leal(X,Y)) H. intenta_asesinar(marco, césar) I. romano(f)    odia(f, césar))
Programación Lógica Proceso de paso a cláusulas 7. Eliminar los cuantificadores universales A. hombre(marco) B. pompeyano(marco) C.    pompeyano(X)    romano(X) D. dirigente(césar) E.    romano(X)    leal(X,césar)    odia(X,césar) F.    hombre(X)    leal(X, g(X)) G.    hombre(X)       dirigente(Y)        intenta_asesinar(X,Y)       leal(X,Y) H. intenta_asesinar(marco, césar) I. romano(f)    odia(f, césar))
Programación Lógica Proceso de paso a cláusulas 8. Eliminar los conectores AND A. hombre(marco) B. pompeyano(marco) C.    pompeyano(X)    romano(X) D. dirigente(césar) E.    romano(X)    leal(X,césar)    odia(X,césar) F.    hombre(X)    leal(X, g(X)) G.    hombre(X)       dirigente(Y)        intenta_asesinar(X,Y)       leal(X,Y) H. intenta_asesinar(marco, césar) I1. romano(f)  I2. odia(f, césar))
Programación Lógica Proceso de paso a cláusulas 9. Renombrar las variables A. hombre(marco) B. pompeyano(marco) C.    pompeyano(X)    romano(X) D. dirigente(césar) E.    romano(Y)    leal(Y,césar)    odia(Y,césar) F.    hombre(Z)    leal(Z, g(Z) G.    hombre(W)       dirigente(K)        intenta_asesinar(W,K)       leal(W,K) H. intenta_asesinar(marco, césar) I1. romano(f)  I2. odia(f, césar))
Actividad de trabajo Independiente: Explique y desarrolle:

Más contenido relacionado

La actualidad más candente

Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de PilaPablo Guerra
 
Fundamentos De Algoritmia
Fundamentos De AlgoritmiaFundamentos De Algoritmia
Fundamentos De Algoritmia
cckokyco
 
3.4. Logica de predicados
3.4. Logica de predicados3.4. Logica de predicados
3.4. Logica de predicados
Humberto Chalate Jorge
 
Ejercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registrosEjercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registros
rasave
 
RESUMEN DE LA LÓGICA DE LOS PREDICADOS
RESUMEN DE LA LÓGICA DE LOS PREDICADOSRESUMEN DE LA LÓGICA DE LOS PREDICADOS
RESUMEN DE LA LÓGICA DE LOS PREDICADOS
Luis Díaz
 
Introduccion al Octave
Introduccion al OctaveIntroduccion al Octave
Introduccion al Octave
franpenabra
 
Relacion Simetrica
Relacion SimetricaRelacion Simetrica
Relacion Simetricageogenial
 
Leyes del álgebra en las proposiciones o algebra declarativa
Leyes del álgebra en las proposiciones o algebra declarativaLeyes del álgebra en las proposiciones o algebra declarativa
Leyes del álgebra en las proposiciones o algebra declarativa
rafasrules
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
Alvaro Enrique Ruano
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajes
Jean Bernard
 
Conclusiones y bibiografias
Conclusiones y bibiografiasConclusiones y bibiografias
Conclusiones y bibiografias
kleidermanch1989
 
Cuantificadores
CuantificadoresCuantificadores
Cuantificadores
Cristian Crised
 
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Videoconferencias UTPL
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
Clara Patricia Avella Ibañez
 
Equivalencia de automatas finitos determinista
Equivalencia de automatas finitos deterministaEquivalencia de automatas finitos determinista
Equivalencia de automatas finitos determinista
Atahualpa Acosta
 
Método de la regla falsa (o metodo de la falsa posición) MN
Método de la regla falsa (o metodo de la falsa posición) MNMétodo de la regla falsa (o metodo de la falsa posición) MN
Método de la regla falsa (o metodo de la falsa posición) MN
Tensor
 
Modelo Entidad Relacion
Modelo Entidad RelacionModelo Entidad Relacion
Modelo Entidad Relacion
Jesus Parra
 

La actualidad más candente (20)

Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
 
Fundamentos De Algoritmia
Fundamentos De AlgoritmiaFundamentos De Algoritmia
Fundamentos De Algoritmia
 
3.4. Logica de predicados
3.4. Logica de predicados3.4. Logica de predicados
3.4. Logica de predicados
 
Ejercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registrosEjercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registros
 
RESUMEN DE LA LÓGICA DE LOS PREDICADOS
RESUMEN DE LA LÓGICA DE LOS PREDICADOSRESUMEN DE LA LÓGICA DE LOS PREDICADOS
RESUMEN DE LA LÓGICA DE LOS PREDICADOS
 
Introduccion al Octave
Introduccion al OctaveIntroduccion al Octave
Introduccion al Octave
 
Relacion Simetrica
Relacion SimetricaRelacion Simetrica
Relacion Simetrica
 
Leyes del álgebra en las proposiciones o algebra declarativa
Leyes del álgebra en las proposiciones o algebra declarativaLeyes del álgebra en las proposiciones o algebra declarativa
Leyes del álgebra en las proposiciones o algebra declarativa
 
Reglas de Inferencia
Reglas de Inferencia Reglas de Inferencia
Reglas de Inferencia
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajes
 
Conclusiones y bibiografias
Conclusiones y bibiografiasConclusiones y bibiografias
Conclusiones y bibiografias
 
Teoria de grafos
Teoria de grafosTeoria de grafos
Teoria de grafos
 
Cuantificadores
CuantificadoresCuantificadores
Cuantificadores
 
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Equivalencia de automatas finitos determinista
Equivalencia de automatas finitos deterministaEquivalencia de automatas finitos determinista
Equivalencia de automatas finitos determinista
 
Método de la regla falsa (o metodo de la falsa posición) MN
Método de la regla falsa (o metodo de la falsa posición) MNMétodo de la regla falsa (o metodo de la falsa posición) MN
Método de la regla falsa (o metodo de la falsa posición) MN
 
Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
Modelo Entidad Relacion
Modelo Entidad RelacionModelo Entidad Relacion
Modelo Entidad Relacion
 

Destacado

LMF-T1: Sintaxis y semántica de la lógica proposicional
LMF-T1: Sintaxis y semántica de la lógica proposicionalLMF-T1: Sintaxis y semántica de la lógica proposicional
LMF-T1: Sintaxis y semántica de la lógica proposicional
José A. Alonso
 
Logica
LogicaLogica
Logicajordy
 
Logica
LogicaLogica
DETALLES DE CONCRETO ARMADO
DETALLES DE CONCRETO ARMADODETALLES DE CONCRETO ARMADO
DETALLES DE CONCRETO ARMADOAntonio Aparicio
 
Logica matematica experiencia 2
Logica matematica experiencia 2Logica matematica experiencia 2
Logica matematica experiencia 2
Luz Daly Guzman Romero
 
La reducción al absurdo
La reducción al absurdoLa reducción al absurdo
La reducción al absurdoLógica Usp-t
 
Tautologías
TautologíasTautologías
Lenguajes de Programacion
Lenguajes de  ProgramacionLenguajes de  Programacion
Lenguajes de Programacion
oscarfr56
 
Practicas prolog
Practicas prologPracticas prolog
Practicas prolog
maxsp5566
 
Reglas y leyes lógica
Reglas y leyes lógicaReglas y leyes lógica
Reglas y leyes lógicaBertha Vega
 
LOS HOMOPOLISACARIDOS Y HETEROPOLISACARIDOS
LOS HOMOPOLISACARIDOS Y HETEROPOLISACARIDOS  LOS HOMOPOLISACARIDOS Y HETEROPOLISACARIDOS
LOS HOMOPOLISACARIDOS Y HETEROPOLISACARIDOS
Nelson Barrios
 
Cálculo VLSM y subredes
Cálculo VLSM y subredesCálculo VLSM y subredes
Cálculo VLSM y subredes
Paulo Colomés
 
Leyes De Lógica
Leyes De LógicaLeyes De Lógica
Leyes De Lógica
Pablo Gandarilla C.
 

Destacado (14)

LMF-T1: Sintaxis y semántica de la lógica proposicional
LMF-T1: Sintaxis y semántica de la lógica proposicionalLMF-T1: Sintaxis y semántica de la lógica proposicional
LMF-T1: Sintaxis y semántica de la lógica proposicional
 
Logica
LogicaLogica
Logica
 
Logica
LogicaLogica
Logica
 
Logica
LogicaLogica
Logica
 
DETALLES DE CONCRETO ARMADO
DETALLES DE CONCRETO ARMADODETALLES DE CONCRETO ARMADO
DETALLES DE CONCRETO ARMADO
 
Logica matematica experiencia 2
Logica matematica experiencia 2Logica matematica experiencia 2
Logica matematica experiencia 2
 
La reducción al absurdo
La reducción al absurdoLa reducción al absurdo
La reducción al absurdo
 
Tautologías
TautologíasTautologías
Tautologías
 
Lenguajes de Programacion
Lenguajes de  ProgramacionLenguajes de  Programacion
Lenguajes de Programacion
 
Practicas prolog
Practicas prologPracticas prolog
Practicas prolog
 
Reglas y leyes lógica
Reglas y leyes lógicaReglas y leyes lógica
Reglas y leyes lógica
 
LOS HOMOPOLISACARIDOS Y HETEROPOLISACARIDOS
LOS HOMOPOLISACARIDOS Y HETEROPOLISACARIDOS  LOS HOMOPOLISACARIDOS Y HETEROPOLISACARIDOS
LOS HOMOPOLISACARIDOS Y HETEROPOLISACARIDOS
 
Cálculo VLSM y subredes
Cálculo VLSM y subredesCálculo VLSM y subredes
Cálculo VLSM y subredes
 
Leyes De Lógica
Leyes De LógicaLeyes De Lógica
Leyes De Lógica
 

Similar a Fbf

Calculo de predicados
Calculo de predicadosCalculo de predicados
Calculo de predicados
Diego Gonzalez
 
Lgica de predicados y sistemas formales
Lgica de predicados y sistemas formalesLgica de predicados y sistemas formales
Lgica de predicados y sistemas formalesMiguel Angel Zamora
 
LOGICA
LOGICALOGICA
LOGICA
KalinOsorio
 
Revista análisis numerico 1
Revista análisis numerico 1Revista análisis numerico 1
Revista análisis numerico 1
vicky200697
 
LI2011-T7: Deducción natural en lógica de primer orden
LI2011-T7: Deducción natural en lógica de primer ordenLI2011-T7: Deducción natural en lógica de primer orden
LI2011-T7: Deducción natural en lógica de primer orden
José A. Alonso
 
Teoría de la Interpolación
Teoría de la InterpolaciónTeoría de la Interpolación
Teoría de la Interpolación
Leonel Quintero
 
POLINOMIOS INTERPOLADORES
POLINOMIOS INTERPOLADORESPOLINOMIOS INTERPOLADORES
POLINOMIOS INTERPOLADORES
Jessenia Alacayo
 
Fourier.pdf
Fourier.pdfFourier.pdf
Analisis numerico
Analisis numericoAnalisis numerico
Analisis numerico
germary infante
 
Polinomios interpolantes
Polinomios interpolantesPolinomios interpolantes
Polinomios interpolantes9isaac
 
Ecuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no linealesEcuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no lineales
Ronny Malpica
 
La derivada
La derivadaLa derivada
220 derivadas parcialessegundaspolinomiostaylor
220 derivadas parcialessegundaspolinomiostaylor220 derivadas parcialessegundaspolinomiostaylor
220 derivadas parcialessegundaspolinomiostaylor
Osmar Catalino Rojas Orué
 
Deduccion predicados
Deduccion predicadosDeduccion predicados
Deduccion predicados
Jacky Leyva
 
Teoría de Interpolación
Teoría de InterpolaciónTeoría de Interpolación
Teoría de Interpolación
José Alejandro Barazarte
 
Aplicacion de las funciones atematicas a la vida diaria
Aplicacion de las funciones atematicas a la vida diariaAplicacion de las funciones atematicas a la vida diaria
Aplicacion de las funciones atematicas a la vida diariaJhunior Romero
 
Transformada inversa de laplace
Transformada inversa de laplaceTransformada inversa de laplace
Transformada inversa de laplaceDavid Palacios
 
Logica de primer orden
Logica de primer ordenLogica de primer orden
Logica de primer orden
samuel viñas
 
Calculo de Predicados
Calculo de PredicadosCalculo de Predicados
Calculo de Predicados
C-Reinoso45
 

Similar a Fbf (20)

Calculo de predicados
Calculo de predicadosCalculo de predicados
Calculo de predicados
 
Lgica de predicados y sistemas formales
Lgica de predicados y sistemas formalesLgica de predicados y sistemas formales
Lgica de predicados y sistemas formales
 
LOGICA
LOGICALOGICA
LOGICA
 
Revista análisis numerico 1
Revista análisis numerico 1Revista análisis numerico 1
Revista análisis numerico 1
 
LI2011-T7: Deducción natural en lógica de primer orden
LI2011-T7: Deducción natural en lógica de primer ordenLI2011-T7: Deducción natural en lógica de primer orden
LI2011-T7: Deducción natural en lógica de primer orden
 
Teoría de la Interpolación
Teoría de la InterpolaciónTeoría de la Interpolación
Teoría de la Interpolación
 
POLINOMIOS INTERPOLADORES
POLINOMIOS INTERPOLADORESPOLINOMIOS INTERPOLADORES
POLINOMIOS INTERPOLADORES
 
Fourier.pdf
Fourier.pdfFourier.pdf
Fourier.pdf
 
Analisis numerico
Analisis numericoAnalisis numerico
Analisis numerico
 
Polinomios interpolantes
Polinomios interpolantesPolinomios interpolantes
Polinomios interpolantes
 
Ecuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no linealesEcuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no lineales
 
La derivada
La derivadaLa derivada
La derivada
 
220 derivadas parcialessegundaspolinomiostaylor
220 derivadas parcialessegundaspolinomiostaylor220 derivadas parcialessegundaspolinomiostaylor
220 derivadas parcialessegundaspolinomiostaylor
 
Deduccion predicados
Deduccion predicadosDeduccion predicados
Deduccion predicados
 
Teoría de Interpolación
Teoría de InterpolaciónTeoría de Interpolación
Teoría de Interpolación
 
Aplicacion de las funciones atematicas a la vida diaria
Aplicacion de las funciones atematicas a la vida diariaAplicacion de las funciones atematicas a la vida diaria
Aplicacion de las funciones atematicas a la vida diaria
 
Transformada inversa de laplace
Transformada inversa de laplaceTransformada inversa de laplace
Transformada inversa de laplace
 
Logicaformal
LogicaformalLogicaformal
Logicaformal
 
Logica de primer orden
Logica de primer ordenLogica de primer orden
Logica de primer orden
 
Calculo de Predicados
Calculo de PredicadosCalculo de Predicados
Calculo de Predicados
 

Más de Leonardo Bernal Zamora: Docente, Internauta y convencido de la educación para todos

Introducción a la Ingeniería de Sistemas II 2013
Introducción a la Ingeniería de Sistemas II 2013Introducción a la Ingeniería de Sistemas II 2013

Más de Leonardo Bernal Zamora: Docente, Internauta y convencido de la educación para todos (20)

Conceptos y operaciones básicas
Conceptos y operaciones básicasConceptos y operaciones básicas
Conceptos y operaciones básicas
 
Operaciones lenguajes
Operaciones lenguajesOperaciones lenguajes
Operaciones lenguajes
 
Operaciones cadenas
Operaciones cadenasOperaciones cadenas
Operaciones cadenas
 
Introducción a la Ingeniería de Sistemas II 2013
Introducción a la Ingeniería de Sistemas II 2013Introducción a la Ingeniería de Sistemas II 2013
Introducción a la Ingeniería de Sistemas II 2013
 
Rea actividad 2
Rea actividad 2Rea actividad 2
Rea actividad 2
 
Rea
ReaRea
Rea
 
Busquedas en internet
Busquedas en internetBusquedas en internet
Busquedas en internet
 
Proyecto java
Proyecto javaProyecto java
Proyecto java
 
Clase 2 POO
Clase 2 POOClase 2 POO
Clase 2 POO
 
Clase5 POO
Clase5 POOClase5 POO
Clase5 POO
 
Clase 41
Clase 41Clase 41
Clase 41
 
Clase 4
Clase 4Clase 4
Clase 4
 
2 elementos pseudocodigo
2 elementos pseudocodigo2 elementos pseudocodigo
2 elementos pseudocodigo
 
Clase 23
Clase 23Clase 23
Clase 23
 
Clase 22
Clase 22Clase 22
Clase 22
 
Clase 1. lógica de la programación
Clase 1. lógica de la programaciónClase 1. lógica de la programación
Clase 1. lógica de la programación
 
Unidad 4 docentes colombianos
Unidad 4 docentes colombianosUnidad 4 docentes colombianos
Unidad 4 docentes colombianos
 
Prolog file
Prolog fileProlog file
Prolog file
 
Prolog 2011 2
Prolog 2011 2Prolog 2011 2
Prolog 2011 2
 
Practicas prolog2011 listas
Practicas prolog2011 listasPracticas prolog2011 listas
Practicas prolog2011 listas
 

Fbf

  • 1. Modificado y Adaptado por: LEONARDO BERNAL ZAMORA
  • 2. Programación Lógica Forma normal de una fórmula Una fórmula se dice que está en forma normal si todos los cuantificadores han sido desplazados al principio de la fórmula. Algunas equivalencias útiles para alcanzar una forma normal  [ (  X) p(X) ]  (  X) [  p(X) ]  [ (  X) p(X) ]  (  X) [  p(X) ] (  X) [ p(X)  q(X) ]  [ (  X) p(X) ]  [ (  X) q(X) ] (  X) [ p(X)  q(X) ]  [ (  X) p(X) ]  [ (  X) q(X) ]
  • 3. Reglas de Inferencia: Especialización Universal: siempre es posible deducir la verificación de un caso concreto a partir de un cuantificador universal. (  X) p(X)  p(a) Sustitución: permite la sustitución de cualquier proposición en una fórmula por otra biequivalente. Modus ponens: de una implicación de la verificación de la premisa se verifica la conclusión. Axioma: p  q Axioma: p Teorema: q
  • 4. Programación Lógica Modus tollens: de una implicación y de la no verificación del consecuente, se concluye la no verificación de la premisa. Axioma: p  q Axioma: ¬q Teorema: ¬p Y - Introducción: la fbf p  q puede ser inferida de las fbf p y q. Y- Eliminación: la fbf p puede ser inferida de la fbf p  q. O - Introducción: la fbf p  q puede ser inferida de la fbf p o de la fbf q. Reglas de Inferencia:
  • 5. El Modus Ponens o razonamiento directo
  • 6. El Modus Tollens o razonamiento indirecto
  • 7.  
  • 8.
  • 9. Programación Lógica Ejercicios. Expresar como fbf en lógica de predicados los siguientes hechos A. Marco era un hombre. B. Marco era pompeyano (de Pompeya). C. Todos los pompeyanos eran romanos. D. César era un dirigente. E. Todos los romanos o bien eran leales a César o bien le odiaban. F. Todo el mundo es fiel a alguien. G. La gente sólo trata de asesinar a aquellos dirigentes a los que no son leales. H. Marco intentó asesinar a César. I. Algún romano odia a César.
  • 10. Programación Lógica A. hombre(marco) B. pompeyano(marco) C. (  X)(pompeyano(X)  romano(X)) D. dirigente(césar) E. (  X)(romano(X)  leal(X,césar)  odia(X,césar)) F. (  X)(hombre(X)   (  Y) leal(X,Y)  G. (  X)  (  Y) (hombre(X)  dirigente(Y)  intenta_asesinar(X,Y)   leal(X,Y))  H. intenta_asesinar(marco, césar) I. (  X) (romano(X)  odia(X, césar))
  • 11. Programación Lógica Teorema + Axiomas (como fórmulas bien formadas, fbf) Teorema + Axiomas (como cláusulas) Método de resolución por refutación Unificación Demostración automática de teoremas + + Lo que queremos hacer ...
  • 12. Programación Lógica IMPORTANTE: La demostración automática de teoremas lógicos es un procedimiento que involucra una mera actividad sintáctica, o de relación entre símbolos, ignorándose completamente el contenido semántico que resulta de la interpretación de las fórmulas.
  • 13. Programación Lógica Fórmulas bien formadas (fbf) Son aquellas que cumplen ciertos requisitos en su estructura y definen la sintaxis del cálculo de predicados Una fórmula se dice bien formada si puede derivarse de alguna de las siguientes reglas de formación: 1. Cualquier fórmula atómica es una fbf. 2. Si p y q son fbf, entonces también serán fbf las siguientes: ¬p, p  q, p  q, p  q 3. Si X es una variable libre en la fbf p, entonces son fbf : (  X) p(X), (  X) p(X) 4. Cualquier fórmula que no pueda formarse a partir de estas reglas no es una fbf.
  • 14. Programación Lógica Cláusula Es una fórmula que sólo contiene operadores disyuntivos y posiblemente negaciones sobre los átomos. Este tipo de fórmulas pueden ser expresadas por una única implicación. Así la fórmula: a 1  a 2  ...  a n  b 1  b 2  ...  b m se puede transformar en : ¬(¬ a 1  ¬ a 2  ...  ¬ a n )  b 1  b 2  ...  b m ¬ a 1  ¬ a 2  ...  ¬ a n  b 1  b 2  ...  b m
  • 15.
  • 16. Programación Lógica Proceso de paso a cláusulas: 1. Eliminar los símbolos de implicación 2. Mover las negaciones hasta las fórmulas atómicas 3. Renombrar variables 4. Eliminar los cuantificadores existenciales. 5. Desplazar los cuantificadores universales 6. Convertir los operadores AND en los más externos 7. Eliminar los cuantificadores universales. 8. Eliminar los conectores conjuntivos (AND). 9. Renombrar las variables.
  • 17. Programación Lógica Transformación a cláusulas Para ilustrar el proceso paso a paso emplearemos la siguiente fómula compleja como ejemplo: (  X){p(X)  {(  Y)[p(Y)  p(f(X,Y))]   (  Y)[q(X,Y)  p(Y)]}} 1. Eliminar los símbolos de implicación , sustituyendo p  q por  p  q. Tras este primer paso, nuestra fómula se transforma en: (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]   (  Y)[  q(X,Y)  p(Y)]}}
  • 18. Programación Lógica 2. Mover las negaciones hasta las fórmulas atómicas , para ello se emplean las leyes de Morgan y las transformaciones de cuantificadores existenciales y universales.  (p  q)   p   q  (p  q)   p   q  [ (  X) p(X) ]  (  X) [  p(X) ]  [ (  X) p(X) ]  (  X) [  p(X) ] Aplicándolo sobre el ejemplo: (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]   (  Y)[  q(X,Y)  p(Y)]}} (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]  (  Y)[q(X,Y)   p(Y)]}}
  • 19. Programación Lógica 3. Renombrar variables , en aquellos casos en los que varias variables se hayan nombrado de igual forma. En nuestro caso esto ocurre con la variable Y que renombramos como Z en su segunda ocurrencia. Así nuestro ejemplo se transforma en: (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]  (  Y)[q(X,Y)   p(Y)]}} (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]  (  Z)[q(X,Z)   p(Z)]}}
  • 20. Programación Lógica 4. Eliminar los cuantificadores existenciales . Las variables cuantificadas por este tipo de cuantificadores serán sustituidas por un tipo de función comodín denominada función de Skolem (proceso de skolemización). P.e. (  Z) q(X,Z) se transforma en q(X, g(X)) en donde g(X) es la función de Skolem para este caso. Nótese que no sólo se eliminan los cuantificadores existenciales sino también las variables ligadas a los mismos. La función de Skolem introducida debe ser nueva en el universo de discurso, y además deberá ser función de todas las variables cuantificadas universalmente cuyos ámbitos incluyan el ámbito del cuantificador existencial que se pretende eliminar.
  • 21. Programación Lógica Así nuestro ejemplo se transforma en: (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]  (  Z)[q(X,Z)   p(Z)]}} (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]  [q(X, g(X))   p(g(X))]}} Si el cuantificador existencial no se encuentra en el ámbito de ningún cuantificador universal, se usará una función de Skolem sin argumentos. Como en el siguiente ejemplo: (  Z) q(Z) se transforma en q(a) Donde el símbolo constante a referencia a la entidad que sabemos existe. Evidentemente a debe ser un símbolo que no haya sido empeado con anterioridad.
  • 22. Programación Lógica 5. Desplazar los cuantificadores universales, de manera que queden al comienzo de la fórmula (prenex form). Estre proceso puede ser realizado por cuanto no existen ya variables distintas con el mismo nombre. (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]  [q(X, g(X))   p(g(X))]}} (  X) (  Y){  p(X)  { [  p(Y)  p(f(X,Y))]  [q(X, g(X))   p(g(X))]}} 6. Convertir los operadores conjuntivos (AND) en los más externos , para lo que se emplean las leyes distributivas. A la forma resultante se le denomina forma normal conjuntiva. Este paso se ejecuta sobre el ejemplo en dos pasos:
  • 23. Programación Lógica Partiendo de la última expresión, (  X)(  Y){  p(X)  { [  p(Y)  p(f(X,Y))]  [q(X, g(X))   p(g(X))]}} se aplica primero la ley distributiva: (  X)(  Y){ {  p(X)  [  p(Y)  p(f(X,Y))]}  {  p(X)  [q(X, g(X))   p(g(X))]}} Aplicando de nuevo la ley distributiva y la asociativa: (  X)(  Y){ [  p(X)   p(Y)  p(f(X,Y))]  [  p(X)  q(X, g(X)) ]  [  p(X)   p(g(X))]}
  • 24. Programación Lógica 7. Eliminar los cuantificadores universales. Se trata de una eliminación convencional, no teórica, pues se asume que toda variable que aparezca está cuantificada universalmente. La función de Skolem adquiere sentido, dado que al no aparecer otras variables que las universales, pueden eliminarse sus cuantificadores por convenio. En nuestro ejemplo: (  X)(  Y){ [  p(X)   p(Y)  p(f(X,Y))]  [  p(X)  q(X, g(X)) ]  [  p(X)   p(g(X))]} [  p(X)   p(Y)  p(f(X,Y))]  [  p(X)  q(X, g(X)) ]  [  p(X)   p(g(X))]
  • 25. Programación Lógica 8. Eliminar los conectores conjuntivos (AND). Dado que la fómula se corresponde con una conjunción de subfómulas, éstas deberán verificarse por separado para que se verifique la fórmula principal. Esto produce, en nuestro caso, el siguiente conjunto de fórmulas: [  p(X)   p(Y)  p(f(X,Y))]  [  p(X)  q(X, g(X)) ]  [  p(X)   p(g(X))]  p(X)   p(Y)  p(f(X,Y))  p(X)  q(X, g(X))  p(X)   p(g(X))
  • 26. Programación Lógica 9. Renombrar las variables . para que no aparezca la misma variable en dos cláusulas.  p(X)   p(Y)  p(f(X,Y))  p(X)  q(X, g(X))  p(X)   p(g(X))  p(X)   p(Y)  p(f(X,Y))  p(U)  q(U, g(U))  p(W)   p(g(W)) ------ * * * ------ Mediante este proceso se termina en una representación en forma de cláusulas. Así de una una única fórmula pueden resultar varias cláusulas que son más modulares y de estructura más simple.
  • 27. Programación Lógica A. hombre(marco) B. pompeyano(marco) C. (  X)(pompeyano(X)  romano(X)) D. dirigente(césar) E. (  X)(romano(X)  leal(X,césar)  odia(X,césar)) F. (  X)(hombre(X)   (  Y) leal(X,Y)  G. (  X)  (  Y) (hombre(X)  dirigente(Y)  intenta_asesinar(X,Y)   leal(X,Y))  H. intenta_asesinar(marco, césar) I. (  X) (romano(X)  odia(X, césar))
  • 28. Programación Lógica Proceso de paso a cláusulas 1. Eliminar los símbolos de implicación A. hombre(marco) B. pompeyano(marco) C. (  X)(  pompeyano(X)  romano(X)) D. dirigente(césar) E. (  X)(  romano(X)  leal(X,césar)  odia(X,césar)) F. (  X)(  hombre(X)   (  Y) leal(X,Y)  G. (  X){ (  Y)   (hombre(X)  dirigente(Y)  intenta_asesinar(X,Y)    leal(X,Y)) } H. intenta_asesinar(marco, césar) I. (  X) (romano(X)  odia(X, césar))
  • 29. Programación Lógica Proceso de paso a cláusulas 2. Mover las negaciones hasta las fórmulas atómicas A. hombre(marco) B. pompeyano(marco) C. (  X)(  pompeyano(X)  romano(X)) D. dirigente(césar) E. (  X)(  romano(X)  leal(X,césar)  odia(X,césar)) F. (  X)(  hombre(X)   (  Y) leal(X,Y)  G. (  X)(  Y) (  hombre(X)   dirigente(Y)   intenta_asesinar(X,Y)   leal(X,Y)) H. intenta_asesinar(marco, césar) I. (  X) (romano(X)  odia(X, césar)) 3.Renombrar las variables
  • 30. Programación Lógica Proceso de paso a cláusulas 4. Eliminar los cuantificadores existenciales A. hombre(marco) B. pompeyano(marco) C. (  X)(  pompeyano(X)  romano(X)) D. dirigente(césar) E. (  X)(  romano(X)  leal(X,césar)  odia(X,césar)) F. (  X)(  hombre(X)  leal(X, g(X)) G. (  X)(  Y) (  hombre(X)   dirigente(Y)   intenta_asesinar(X,Y)   leal(X,Y)) H. intenta_asesinar(marco, césar) I. romano(f)  odia(f, césar))
  • 31. Programación Lógica Proceso de paso a cláusulas 5. Desplazar los cuantificadores universales 6. Convertir los operadores AND en los más externos A. hombre(marco) B. pompeyano(marco) C. (  X)(  pompeyano(X)  romano(X)) D. dirigente(césar) E. (  X)(  romano(X)  leal(X,césar)  odia(X,césar)) F. (  X)(  hombre(X)  leal(X, g(X)) G. (  X)(  Y) (  hombre(X)   dirigente(Y)   intenta_asesinar(X,Y)   leal(X,Y)) H. intenta_asesinar(marco, césar) I. romano(f)  odia(f, césar))
  • 32. Programación Lógica Proceso de paso a cláusulas 7. Eliminar los cuantificadores universales A. hombre(marco) B. pompeyano(marco) C.  pompeyano(X)  romano(X) D. dirigente(césar) E.  romano(X)  leal(X,césar)  odia(X,césar) F.  hombre(X)  leal(X, g(X)) G.  hombre(X)   dirigente(Y)   intenta_asesinar(X,Y)   leal(X,Y) H. intenta_asesinar(marco, césar) I. romano(f)  odia(f, césar))
  • 33. Programación Lógica Proceso de paso a cláusulas 8. Eliminar los conectores AND A. hombre(marco) B. pompeyano(marco) C.  pompeyano(X)  romano(X) D. dirigente(césar) E.  romano(X)  leal(X,césar)  odia(X,césar) F.  hombre(X)  leal(X, g(X)) G.  hombre(X)   dirigente(Y)   intenta_asesinar(X,Y)   leal(X,Y) H. intenta_asesinar(marco, césar) I1. romano(f) I2. odia(f, césar))
  • 34. Programación Lógica Proceso de paso a cláusulas 9. Renombrar las variables A. hombre(marco) B. pompeyano(marco) C.  pompeyano(X)  romano(X) D. dirigente(césar) E.  romano(Y)  leal(Y,césar)  odia(Y,césar) F.  hombre(Z)  leal(Z, g(Z) G.  hombre(W)   dirigente(K)   intenta_asesinar(W,K)   leal(W,K) H. intenta_asesinar(marco, césar) I1. romano(f) I2. odia(f, césar))
  • 35. Actividad de trabajo Independiente: Explique y desarrolle: