Pontificia Universidad Católica de Chile Escuela de Ingenierı́a Departamento de Ciencia de la Computación Solución Tarea 2 IIC2212 - Lógica para ciencia de la computación Primer Semestre, 2004 1. a) Supongamos que Σ ∪ {ϕ} y Σ ∪ {¬ϕ} no son FS. Entonces, existen Σ1 ⊆ Σ y Σ2 ⊆ Σ finitos, tales que: σ 2 Σ1 ∪ {ϕ} para todo σ σ 2 Σ1 ∪ {¬ϕ} para todo σ. Como Σ es FS, sabemos que existe σ1 tal que σ1 Σ1 y σ1 Σ2 . Luego, σ1 2 ϕ y σ1 2 ¬ϕ. (⇒⇐). b) No. Basta con tomar Σ = {a , b, ¬a ∨ ¬b} y vemos que todos los subconjuntos de Σ con número par de elementos son satisfactibles, pero Σ no lo es. 2. 3. a) Sean: σ1 una valuación cualquiera. C1 el conjunto que contiene a toda fórmula ϕ ∈ C tal que σ1 (ϕ)=1. C2 el conjunto que contiene a toda fórmula ϕ ∈ C tal que σ1 (ϕ)=0. Vemos que C1 ∪ C2 = C y C1 ∩ C2 = φ, por lo que solo falta demostrar que C1 y C2 son no vacı́os. Tenemos tres casos posibles: C2 = φ. No puede suceder, ya que en este caso C serı́a satisfactible. C1 = φ. No puede suceder, ya que como C solo contiene cláusulas y ∈ / C, la valuación ¬σ1 satisfacerı́a a C. C1 6= φ y C2 6= φ. Por descarte esta se cumple. Entonces, C1 y C2 son no vacı́as. b) Como para cualquier σ, σ C1 y σ 2 C2 , no existe ningún σ1 tal que σ1 C1 ∪ C2 , luego C1 ∪ C2 es insatisfactible y C también. Sin embargo, dado que el antecedente también indica que ∈ C, sabemos que en general, esto no es verdadero porque perfectamente podrı́a pertenecer a C. Un posible algoritmo es el siguiente: a) Aplicar resolución a {ϕ} ∪ {¬ψ}. b) Si se llega a ir a j. c) Generar γ. d) Aplicar resolución a {γ} ∪ {¬ϕ}. e) Si no se llega a ir a c. f) Aplicar resolución a {γ} ∪ {¬ψ}. g) Si se llega a ir a c. h) i) j) Agregar γ a la lista de fórmulas encontradas. Ir a c. Salir. Este algoritmo es completo, siempre y cuando la función generadora de γ esté bien construida y no deje de lado algunos tipos de fórmula. Una buena opción para evadir este problema es hacer que la función genere γ aleatoriamente. 4. a) La respuesta es no. Se debe demostrar por lo tanto que no existe un caso en el que es posible resolver más de un literal. Demostrando por contradicción, suponemos que existen dos cláusulas que poseen dos o más literales que pueden ser resueltos en forma múltiple. Podrı́amos resumir el siguiente caso: l1 ∨ l2 ∨ ... ∨ ln ∨ c1 l1 ∨ l2 ∨ ... ∨ ln ∨ c2 c1 ∨ c2 C1 (cláusula 1) C2 (cláusula 2) Suponemos esto cierto para n ≥ 2. Como la resolución es completa, podemos deducir que {C1 , C2 } {¬(c1 ∨ c2 )} {¬(c1 ∨ c2 )} luego ∀σ/σ {C1 , C2 } ⇒ σ {¬c1 ∧ ¬c2 } Sin embargo, podemos considerar la siguiente valuación: σ(l1 ) = 0, σ(l2 ) = σ(l3 ) = ... = σ(ln ) = 1σ(c1 ) = σ(c2 ) = 1 Con esto C1 y C2 se hacen verdaderas, pero también σ 2 {¬c1 ∨ ¬c2 } teniendo entonces una ⇒⇐ b) Para demostrar que, dado Σ ∪ {C} `r ψ y Σ ∪ {¬C} `r ψ entonces Σ `r ψ, con C una cláusula cualquiera, y sin usar que la resolución es completa o correcta, debemos demostrar entonces que existe un árbol de refutación por resolución para Σ ∪ {¬ψ} Para demostrar tenemos dos casos: i. Si C o ¬C no se usaron en las demostraciones correspondientes (al menos en una de las dos: Σ ∪ {C} `r ψ o Σ ∪ {¬C} `r ψ no se usó), entonces trivialmente podemos suponer que existe un árbol de refutación donde no participa C o ¬C y por lo tanto Σ `r ψ ii. Si en cambio, en ambas demostraciones se usó la cláusula C y ¬C, correspondientemente, podemos generalizar y decir que la cláusula C y su negado (¬C) son del tipo: { l1 ∨ l2 ∨ ... ∨ ln } = C {l1 ∧ l2 ∧ ... ∧ ln } = C Si ambas demostraciones usaron C o ¬C, esto quiere decir que C o ¬C fue usado en su totalidad para poder realizar la resolución. Esto se ve de forma sencilla en el caso de Σ ∪ {C} `r ψ, ya que si resolvimos para eliminar por ej., un l1 , necesitaremos luego resolver con todo el resto de los li de la cláusula, por lo que también 2 podemos suponer que en el caso Σ ∪ {¬C} `r ψ pasa en forma equivalente, ya que si no fuera ası́, la demostración dirı́a que Σ ∪ {lj } `r ψ en vez de Σ ∪ {¬C} `r ψ con un j arbitrario en el caso de un literal que necesitara solamente, o con el conjunto de literales que necesitara en el caso que fueran más de uno y menos que el total de ¬C (acá la conclusión se basa en la estructura de ¬C, compuesta por literales “sueltos”). Luego sabemos que en ambos casos se usan todos los literales. En particular, en Σ ∪ {¬C} `r ψ tendremos un árbol de refutación tal en que participará cada uno de los li de ¬C. Si a éste árbol podemos eliminarle los pasos de resolución con los literales de ¬C, entonces el árbol de resolución de Σ ∪ {¬C} `r ψ siendo modificado a que no use ¬C, obtiene por resultado l1 ∨ l2 ∨ ... ∨ ln . Luego por método de resolución demostramos que Σ ∪ {¬ψ} `r {l1 ∨ l2 ∨ ... ∨ ln }. Por otro lado decir que Σ∪{C} `r ψ es lo mismo que decir que Σ∪{l1 ∨l2 ∨...∨ln } `r ψ. Entonces simplemente colgando el árbol de resolución de Σ ∪ {C} `r ψ a el árbol obtenido en Σ ∪ {¬ψ} `r {l1 ∨ l2 ∨ ... ∨ ln } (considerando en ésta el árbol que llega hasta la cláusula {l1 ∨l2 ∨...∨ln } que ya vimos anteriormente) podemos concluir que Σ `r ψ, ya que lo que obtendremos finalmente es que Σ ∪ {¬ψ} `r (recordemos que Σ ∪ {C} `r ψ es lo mismo que decir que Σ ∪ {C} ∪ {¬ψ} `r ). 5. Para este ejercicio consideremos la siguiente representación en lógica proposicional: v1 : “El sujeto A dice la verdad” v2 : “El sujeto B dice la verdad” v3 : “El sujeto D dice la verdad” v4 : “El sujeto C dice la verdad” a : “El fallecido gritó antes de morir” b : “El fallecido estaba alterado” c : “Fue un horrible asesinato” La representación es la siguiente: Respecto a lo que declara A: v1 Respecto a lo que declara B: v2 Respecto a lo que declara D: v3 Respecto a lo que declara C: v4 ↔ ((a ∨ b) → c) ↔ (a ∧ v2 ) ↔ (¬v4 ∧ ¬b) ↔ ¬c Uno de ellos miente: (v1 ∧ v2 ∧ v3 ∧ ¬v4 ) ∨ (v1 ∧ v2 ∧ ¬v3 ∧ v4 ) ∨ (v1 ∧ ¬v2 ∧ v3 ∧ v4 ) ∨ (¬v1 ∧ v2 ∧ v3 ∧ v4 ) Entonces tenemos que nuestra base de conocimientos Σ consiste en lo siguiente: {v1 ↔ ((a∨b), v2 ↔ (a∧v2 ), v3 ↔ (¬v4 ∧¬b), v4 ↔ ¬c, (v1 ∧v2 ∧v3 ∧¬v4 ) ∨ (v1 ∧v2 ∧¬v3 ∧v4 ) ∨ (v1 ∧ ¬v2 ∧ v3 ∧ v4 ) ∨ (¬v1 ∧ v2 ∧ v3 ∧ v4 )} Transformando el conjunto a F.N.C., nos queda Σ como lo siguiente: { ¬v1 ∨ ¬a ∨ c, ¬v1 ∨ ¬b ∨ c, v1 ∨ a ∨ b, v1 ∨ ¬c, ¬v2 ∨ a, ¬v3 ∨ ¬v4 , ¬v3 ∨ ¬b, v3 ∨ v4 ∨ b, 3 ¬v4 ∨ ¬c, v4 ∨ c, v1 ∨ v2 , v1 ∨ v3 , v1 ∨ v4 , v2 ∨ v3 , v2 ∨ v4 , v3 ∨ v4 , ¬v4 , ∨¬v3 ∨ ¬v1 ∨ ¬v2 } Sospechamos que el que miente es el sujeto C. Por resolución, debemos demostrar que Σ `r ¬v4 que es lo mismo que encontrar un árbol de refutación por resolución para Σ ∪ {v4 }. La resolución es la siguiente (enumeramos las cláusulas de la F.N.C que forman Σ ∪ {v4 } para partir y de ellas vamos aplicando resolución): 1 ¬v1 ∨ ¬a ∨ c 2 ¬v1 ∨ ¬b ∨ c 3 v1 ∨ a ∨ b 4 v1 ∨ ¬c 5 ¬v2 ∨ a 6 ¬v3 ∨ ¬v4 7 ¬v3 ∨ ¬b 8 v3 ∨ v4 ∨ b 9 ¬v4 ∨ ¬c 10 v4 ∨ c 11 v1 ∨ v2 12 v1 ∨ v3 13 v1 ∨ v4 14 v2 ∨ v3 15 v2 ∨ v4 16 v3 ∨ v4 17 ¬v4 , ∨¬v3 ∨ ¬v1 ∨ ¬v2 18 ¬v4 Proof: 19 20 21 22 23 24 25 20 ¬c ¬v3 ¬v1 ∨ ¬a v2 v1 a ¬a (se (se (se (se (se (se (se (se genera genera genera genera genera genera genera genera entre entre entre entre entre entre entre entre 9 y 18) 6 y 18) 1 y 19) 14 y 20) 12 y 20) 5 y 22) 21 y 23) 24 y 25) Q.E.D. 6. a) En esta pregunta de la tarea lo que se pide es demostrar lo mismo que se demostró en la pregunta anterior, antes con resolución, pero ahora usando cálculo de secuentes. Podemos abusar de las transformaciones usadas para realizar la resolución y partir desde Σ en F.N.C. para demostrar que Σ `s {¬v4 }. Entonces tenemos lo siguiente: 4 Un conjunto de fórmulas ∆ que contiene, en forma enumerada, las siguientes fórmulas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ¬v1 ∨ ¬a ∨ c ¬v1 ∨ ¬b ∨ c v1 ∨ a ∨ b v1 ∨ ¬c ¬v2 ∨ a ¬v3 ∨ ¬v4 ¬v3 ∨ ¬b v3 ∨ v4 ∨ b ¬v4 ∨ ¬c v4 ∨ c v1 ∨ v2 v1 ∨ v3 v1 ∨ v4 v2 ∨ v3 v2 ∨ v4 v3 ∨ v4 ¬v4 , ∨¬v3 ∨ ¬v1 ∨ ¬v2 Lo que deseamos demostrar es que ∆ `s {¬v4 }. Para ello partimos con: {∆} {∆, v4 } {∆ - {6}, ¬v3 ∨ ¬v4 , v4 } ⇒s ⇒s ⇒s {¬v4 } {} {} De aqui obtenemos 2 raı́ces: 1 y 2 por aplicación de reglas de disyunción 1 {∆-{6}, ¬v4 , v4 } {∆-{6}, v4 } {v4 } ⇒s ⇒s ⇒s {} {v4 } {v4 } 2 {∆-{6}, ¬v3 , v4 } {∆-{6}, v4 } {∆-{6, 9}, ¬v4 ∨ ¬c, v4 } ⇒s ⇒s ⇒s {} {v3 } {v3 } De aqui obtenemos 2 raı́ces: 3 y 4 3 {∆-{6, 9}, ¬v4 , v4 } {∆-{6, 9}, v4 } {v4 } ⇒s ⇒s ⇒s {v3 } { v3 , v4 } {v4 } 4 {∆-{6, 9}, ¬c, v4 } {∆-{6, 9}, v4 } {∆-{6, 9, 10}, v4 ∨ c, v4 } ⇒s ⇒s ⇒s {v3 } { v3 , c} { v3 , c} 5 De aqui obtenemos 2 raı́ces: 5 y 6 5 {∆-{6, 9, 10}, c, v4 } {c} ⇒s ⇒s { v3 , c} {c} 6 {∆-{6, 9, 10}, v4 } {∆-{6, 9, 10, 12}, v1 ∨ v3 , v4 } ⇒s ⇒s { v3 , c} { v3 , c} De aqui obtenemos 2 raı́ces: 7 y 8 7 {∆-{6, 9, 10, 12}, v3 , v4 } {v3 } ⇒s ⇒s { v3 , c} {v3 } 8 {∆-{6, 9, 10, 12}, v1 , v4 } {∆-{6, 9, 10, 12, 14}, v2 ∨ v3 , v1 , v4 } ⇒s ⇒s { v3 , c} { v3 , c} De aqui obtenemos 2 raı́ces: 9 y 10 9 10 {∆-{6, 9, 10, 12, 14}, v3 , v1 , v4 } {v3 } ⇒s ⇒s { v3 , c} {v3 } {∆-{6, 9, 10, 12, 14}, v1 , v2 , v4 } {∆-{6, 9, 10, 12, 14, 16}, v3 ∨ v4 , v1 , v2 , v4 } ⇒s ⇒s { v3 , c} { v3 , c} De aqui obtenemos 2 raı́ces: 11 y 12 11 {∆-{6, 9, 10, 12, 14, 16}, v3 , v1 , v2 , v4 } {v3 } ⇒s ⇒s { v3 , c} {v3 } 12 {∆-{6, 9, 10, 12, 14, 16}, v1 , v2 , v4 } {∆-{1, 6, 9, 10, 12, 14, 16}, ¬v1 ∨ ¬a ∨ c, v1 , v2 , v4 } ⇒s ⇒s { v3 , c} { v3 , c} Acá tenemos un caso especial. Podemos obtener 3 raı́ces: 13, 14 y 15, debido a que usar la regla de Disyunción para 2 instancias de ∨ en la fórmula que se le aplica, equivale a separar la raı́z en 3 ramas e instancias diferentes, ya que de todas maneras será éste el número de raı́ces totales que se obtendrán de aplicar la regla de Disyunción dos veces seguidas. 6 13 {∆-{1, 6, 9, 10, 12, 14, 16}, ¬v1 , v1 , v2 , v4 } {∆-{1, 6, 9, 10, 12, 14, 16}, v1 , v2 , v4 } {v1 } ⇒s ⇒s ⇒s { v3 , c} { v1 , v3 , c} {v1 } 14 {∆-{1, 6, 9, 10, 12, 14, 16}, c, v1 , v2 , v4 } {c} ⇒s ⇒s { v3 , c} {c} 15 {∆-{1, 6, 9, 10, 12, 14, 16}, ¬a, v1 , v2 , v4 } {∆-{1, 6, 9, 10, 12, 14, 16}, v1 , v2 , v4 } {∆-{1, 5, 6, 9, 10, 12, 14, 16}, ¬v2 ∨ a, v1 , v2 , v4 } ⇒s ⇒s ⇒s { v3 , c} { v3 , a, c} { v3 , a, c} Podemos obtener 2 raı́ces: 16 y 17 : 16 {∆-{1, 5, 6, 9, 10, 12, 14, 16}, ¬v2 , v1 , v2 , v4 } {∆-{1, 5, 6, 9, 10, 12, 14, 16}, v1 , v2 , v4 } {v2 } ⇒s ⇒s ⇒s { v3 , a, c} { v2 , v3 , a, c} {v2 } 17 {∆-{1, 5, 6, 9, 10, 12, 14, 16}, a, v1 , v2 , v4 } {a} ⇒s ⇒s { v3 , a, c} {a} Con esta última tautologı́a terminamos de demostrar, al lograr un árbol inverso que tiene en todas sus hojas tautologı́as del tipo X ⇒s X. La demostración se hizo usando el mecanismo de inversión de reglas del cálculo de secuentes b) Demostrar las siguientes afirmaciones sin tener en cuenta que el cálculo de secuentes es un sistema de demostración correcto y completo. i. Σ ∪ {ϕ} `s ψ si y sólo si Σ `s (ϕ → ψ) La implicación ⇒ es trivial, puesto que si tenemos: Σ ∪ {ϕ} `s ψ Σ, ϕ ⇒s ψ entonces por regla de implicación Σ ⇒s (ϕ → ψ) Para demostrar la implicación ⇐, podemos considerar que la fórmula ϕ → ψ equivale lógicamente a ¬ϕ ∨ ψ. Por lo que nos queda es: Σ ⇒s ¬ϕ∨ ψ Σ, ϕ ⇒s ψ Que es lo mismo que: Σ ∪ {ϕ} `s ψ 7 ii. Si Σ ∪ {ϕ} `s ψ y Σ ∪ {¬ϕ} `s ψ entonces Σ `s ψ Por una parte, si yo tengo Σ ∪ {ϕ} `s ψ y Σ ∪ {¬ϕ} `s ψ, entonces puedo obtener usando la regla de Disyunción: Σ ∪ {ϕ ∨ ¬ϕ} `s ψ. Si miramos la definición de un secuente, en la estructura que posee, sabremos que la parte de la izquierda de un secuente está compuesta por la intersección de las diversas fórmulas que forman el conjunto de ese lado. En nuestro caso tenemos: Σ ∪ {ϕ ∨ ¬ϕ} `s ψ Σ, {ϕ ∨ ¬ϕ} ⇒s ψ La coma representa la intersección en el conjunto de fórmulas del lado izquierdo del secuente, y {ϕ ∨ ¬ϕ} es una fórmula que es siempre verdadera. En realidad lo que tendremos acá es sólo Σ, puesto que Σ intersección una fórmula siempre verdadera, dependerá exclusivamente de Σ para sus valuaciones y valor de verdad. Por este sencillo argumento podemos concluir que si Σ ∪ {ϕ} `s ψ y Σ ∪ {¬ϕ} `s ψ entonces Σ `s ψ iii. {φ ∧ ¬φ} `s ϕ para todo ϕ. La demostración es trivial puesto que si parto de: {φ} ⇒s {φ} luego: {φ, ¬φ} ⇒s {} Por expansión {φ, ¬φ} ⇒s ϕ {φ ∧ ¬φ} ⇒s ϕ Q.E.D. iv. Si Σ ∪ {φ ∨ ψ, φ} `s χ entonces Σ ∪ {φ} `s χ. Σ ∪ {φ ∨ ψ, φ} `s χ es posible de expresar de una manera lógicamente equivalente de la siguiente forma: Σ ∪ {φ ∨ ψ, φ} `s χ Σ ∪ {φ ∨ ψ, φ} ⇒s χ Σ ∪ {φ} ∪ {φ ∨ ψ} ⇒s χ Nos fijamos que Σ ∪ {φ} ∪ {φ ∨ ψ} ⇒s χ podrı́a ser resuelto entonces en otras dos demostraciones diferentes (se usa el inverso de la regla, pero no pensando en la regla, sino en el significado lógico de ∨ en el conjunto de fórmulas {φ ∨ ψ}): Σ ∪ {φ} ∪ {ψ} ⇒s χ Σ ∪ {φ} ∪ {φ} ⇒s χ Esta última en particular se puede resumir por lógica convencional como: Σ∪{φ} ⇒s χ Luego Σ ∪ {φ} `s χ. 8