Professional Documents
Culture Documents
permiten simplificar los algoritmos, pero como contrapartida, con ellos reduci-
mos la expresividad del lenguaje. Por lo tanto, si queremos mantener la mayor
expresividad necesitaremos algoritmos de conversión al lenguaje reducido con
el que trabaje nuestro algoritmo.
Ejemplo 3.1.1
1. p, r y ¬q son literales; ¬r = r; q = ¬q.
Las cláusulas y los cubos son las fórmulas en forma normal negativa más
simples. En su definición, que vemos a continuación, distinguimos entre forma
normal negativa conjuntiva y forma normal negativa disyuntiva.
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 3
Las constantes lógicas y los literales son fórmulas en forma normal ne-
gativa conjuntiva y son fórmulas en forma normal negativa disyuntiva.
p ∧ ∧
∨ r̄ ∨ p
∧ ∧ s̄ r q̄
q p̄ p̄ s
A → B ≡ ¬A ∨ B, ¬(A → B) ≡ A ∧ ¬B,
¬(A ∧ B) ≡ ¬A ∨ ¬B, ¬(A ∨ B) ≡ ¬A ∧ ¬B,
I. T. en Informática de Sistemas
4 Lógica Computacional
A ∧ A ≡ A, ¬A ∧ A ≡ ⊥, ⊤ ∧ A ≡ A, ⊥ ∧ A ≡ ⊥,
A ∨ A ≡ A, ¬A ∨ A ≡ ⊤, ⊥ ∨ A ≡ A, ⊤ ∨ A ≡ ⊤,
3.2. ∆-árboles
pq̄s ¯
q stu pq̄r t̄w
Los elementos de las ∆-listas se escribirán ordenados respecto del orden lexi-
cográfico. Esto no influye en la validez de las transformaciones que vamos a
describir posteriormente, pero sı́ en la eficiencia de las mismas.
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 5
[α]λ
T1 ... Tn
[β]λ
T1 ... Tn
[α]qr [α]pqr
FNN([α]nil) = FNN([β]⊤) = ⊤
FNN([β]nil) = FNN([α]⊥) = ⊥
FNN([α]ℓ1 . . . ℓn ) = ℓ1 ∧ · · · ∧ ℓn
FNN([β]ℓ1 . . . ℓn ) = ℓ1 ∨ · · · ∨ ℓn
I. T. en Informática de Sistemas
6 Lógica Computacional
[α]ℓ1 . . . ℓn
FNN = ℓ1 ∧ · · · ∧ ℓn ∧ FNN(T1 ) ∧ · · · ∧ FNN(Tm )
T1 ... Tm
[β]ℓ1 . . . ℓn
FNN = ℓ1 ∨ · · · ∨ ℓn ∨ FNN(T1 ) ∨ · · · ∨ FNN(Tm )
T1 ... Tm
Ejemplo 3.2.3 Las fórmulas correspondientes a los ∆-árboles del ejemplo 3.2.2
son las siguientes:
FNN([β]nil) = ⊥
FNN([α]pq) = p ∧ ¬q
[β]nil
FNN = FNN([α]nil) ∨ FNN([α]pqr) = ⊤ ∨ (¬p ∧ q)
[α]nil [α]pqr
[α]pq
FNN = p ∧ ¬q ∧ FNN([β]pr) = p ∧ ¬q ∧ (¬p ∨ r)
[β]pr
[α]nil
FNN [β]pr [β]pq
= (¬p ∨ r) ∧ (p ∨ ¬q ∨ (q ∧ ¬r) ∨ (p ∧ ¬q ∧ r))
[α]qr [α]pqr
Por otra parte, toda fórmula en forma normal negativa restringida puede
ser escrita como ∆-árbol, por lo que podemos trabajar exclusivamente con
este tipo de representación. Por su definición, toda fórmula en forma normal
negativa restringida responde a uno de los siguientes esquemas:
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 7
1. ∆Árbol(ℓ1 ∧ · · · ∧ ℓn ) = [α]ℓ1 . . . ℓn .
[α]nil
2. ∆Árbol(A1 ∧ · · · ∧ Am ) =
∆Árbol(A1 ) ... ∆Árbol(Am )
[α]ℓ1 . . . ℓn
3. ∆Árbol(ℓ1 ∧ · · · ∧ ℓn ∧ A1 ∧ · · · ∧ Am ) =
∆Árbol(A1 ) . . . ∆Árbol(Am )
4. ∆Árbol(ℓ1 ∨ · · · ∨ ℓn ) = [β]ℓ1 . . . ℓn
[β]nil
5. ∆Árbol(A1 ∨ · · · ∨ Am ) =
∆Árbol(A1 ) ... ∆Árbol(Am )
[β]ℓ1 . . . ℓn
6. ∆Árbol(ℓ1 ∨ · · · ∨ ℓn ∨ A1 ∨ · · · ∨ Am ) =
∆Árbol(A1 ) . . . ∆Árbol(Am )
Ejemplo 3.2.4 Vamos a escribir la fórmula del ejemplo 3.1.1 como ∆-árbol:
∨
p ∧ ∧
∨ r̄ ∨ p
∆Árbol
∧ ∧ s̄ r q̄
q p̄ p̄ s
[β]p
[α]r̄ [α]p
=
[β]nil [β]q̄rs̄
[α]p̄q [α]p̄s
I. T. en Informática de Sistemas
8 Lógica Computacional
Sin embargo, dado que necesitamos trabajar con ∆-listas, al unir dos de
ellas deberemos eliminar, en su caso, la posible existencia de literales opuestos,
reemplazando la lista por una constante lógica.
pero también puede hacerse en un único recorrido del árbol, según establece
el siguiente resultado.
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 9
Ejemplo 3.2.5
[α]rs [α]nil
[rs/⊤] =
[β]prt [β]qst [β]pqt [β]pt [β]pqt
Todas las transformaciones que vamos a realizar sobre los ∆-árboles están
inducidas por el contenido de las ∆-listas y la relación de dominancia en la
estructura de árbol. La transformación básica del algoritmo es aquella que
conduce a la obtención de la forma restringida, es decir, aquella en la que no
existen subárboles que puedan ser reducidos a constantes de forma trivial.
a) η = [α]⊥ o η = [β]⊤.
b) Es un nodo monarı́o y su ∆-lista es nil.
c) Tiene un hijo que es hoja y cuya ∆-lista es nil.
d) Su ∆-lista es λ′ , la ∆-lista de su padre es λ y λ′ ∩ λ 6= nil.
I. T. en Informática de Sistemas
10 Lógica Computacional
η η
→
→
A1 ... Am [β]⊤ A1 ... Am
[α]⊥
→
→ [α]⊥
A1 ... Ak
[β]⊤
→
→ [β]⊤
A1 ... Ak
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 11
η Unión(η, η ′ )
→
→
A1 ... Am nil A1 . . . Am Am+1 . . . Am+k
η′
nil η
→
→
η A1 ... Am
A1 ... Am
η Unión(η, ℓ)
→
→
A1 ... Am ℓ A1 ... Am
I. T. en Informática de Sistemas
12 Lógica Computacional
λ1 ... λm λ1 ... λm
(5) (3)
1. [α]nil →
→ [α]nil →
→ [α]qr
[β]nil
[β]nil
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 13
A= [α]rs
[β]pt [β]pqt
No es difı́cil comprobar que la interpretación I tal que I(p) = 1 e I(q) = 0
es un modelo de A[rs/⊤], por lo que podemos extenderlo a un modelo de A
considerando I(r) = 1 e I(s) = 0.
3.4. Subreducción
[α]λ [α]λ
→
→
A1 ... Am A1 [λ/⊤] . . . Am [λ/⊤]
[β]λ [β]λ
→
→
A1 ... Am A1 [λ/⊥] . . . Am [λ/⊥]
I. T. en Informática de Sistemas
14 Lógica Computacional
[α]nil →
→ [α]nil →
→ [α]nil
Las variables de los literales puros pueden ser eliminadas en todo el árbol
aplicando el resultado siguiente, que es incorporado al algoritmo en el proceso
denominado reducción de literales puros.
[(∆Árbol(A), nil)]
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 15
Los nuevos elementos en esta lista se obtendrán al dividir los árboles disyun-
tivos separando los elementos de la disyunción, o bien al aplicar el proceso
de ramificación. De esta forma, si [(B1 , µ1 ), . . . , (Bm , µm )] es el flujo en un
instante cualquiera de la ejecución del algoritmo, entonces:
I. T. en Informática de Sistemas
16 Lógica Computacional
1. Todos los elementos del flujo son [α]⊥ o [β]nil, en cuyo caso la fórmula
inicial es insatisfacible.
2. Algún elemento del flujo es [α]nil o [β]⊤, en cuyo caso la fórmula inicial
es satisfacible, pudiendo además construir un modelo.
[β]ℓ1 . . . ℓn
[. . . , , µ , . . . ] →
→
B1 ... Bm
→
→ [. . . , ([α]ℓ1 , µ), . . . , ([α]ℓn , µ), (B1 , µ), . . . , (Bm , µ), . . . ]
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 17
la correspondiente reducción:
[α]λ
[. . . , , µ , . . . ] →
→
B1 ... Bn
[α]nil
→
→ [. . . ,
, µ ∪ λ , . . . ]
[. . . , (B, µ), . . . ] →
→ [. . . , (B[π/⊤], µ ∪ π), . . . ]
[. . . , (B, µ), . . . ] →
→ [. . . , (B[ℓ/⊤], µ∪{ℓ}), (B[ℓ/⊥], µ∪{ℓ̄}), . . . ]
I. T. en Informática de Sistemas
18 Lógica Computacional
3.7. Ejemplo 1
(p ∧ q) ∨ (p ∧ r) |= p ∧ (q ∨ r)
[α]p
[β]nil [β]p , nil
[α]pq [α]pr [α]qr
[α]nil
[β]nil [β]nil, p
[α]q [α]r [α]qr
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 19
[([α]⊥, pqr)]
3.8. Ejemplo 2
I. T. en Informática de Sistemas
20 Lógica Computacional
[α]p [α]⊥
[β]r [β]r
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 21
3.9. Ejemplo 3
1. La entrada al algoritmo es
[α]r
[(∆Árbol(¬A), nil)] = [β]prt [β]qst [β]pqt [β]s , nil
[α]qsr
[α]rs
, nil
[β]prt [β]qst [β]pqt
[α]rs
[rs/⊤], rs
[β]prt [β]qst [β]pqt
I. T. en Informática de Sistemas
22 Lógica Computacional
3.10. Ejemplo 4
A = (p ∧ (r ∨ q) ∧ (s → r)) ∨ (p ∧ r ∧ (q → s) ∧ (p → q))
B = ¬((r ∨ ¬q ∨ s) → p)
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 23
del algoritmo:
[α]nil
[β]nil [β]p
[(∆Árbol(A∧¬B), nil)] = , nil
[α]p [α]pr [α]qrs
[β]qr [β]rs [β]qs [β]pq
2. Restringir:
(actual.)
[α]nil →
→
[β]nil [β]p
[β]nil [β]p
[α]p
[β]nil
[α]p [α]pr
I. T. en Informática de Sistemas
24 Lógica Computacional
4. Restringir:
[α]nil →
→ [α]nil →
→ [β]nil
3.11. Ejemplo 5
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 25
[β]pr [β]pt
[β]nil [β]nil
∆Árbol(A2 ) = ; ∆Árbol(A3 ) = ;
[α]qt [α]pr [α]rt [α]qr
∆Árbol(¬A) = [α]pr
Por lo tanto, la entrada del algoritmo es:
[α]pr
Restringir
→
→ [β]nil [β]nil
→
→
, nil
[α]qt [α]pr [α]rt [α]qr
[α]nil
Comp.Red.
→
→ [β]nil [β]nil, pr
[α]qt [α]q
I. T. en Informática de Sistemas
26 Lógica Computacional
E.T.S.I.Informática
Tema 3: Método T∆S para la Lógica Proposicional. 27
E.T.S.I. Informática
Lógica Computacional: Relación 3
[α]nil [α]nil
[β]qr [β]pr
2. Transforme las siguientes fórmulas en ∆-árbol.
I. T. en Informática de Sistemas
28 Lógica Computacional
E.T.S.I. Informática
Lógica Computacional: Ejercicios propuestos 3
a) p → (q ∨ r), q → r, r → s |= p → ¬s
b) p → q, r → s, (s ∧ q) → t |= (p ∧ r) → t
c) p → (q → r), p → q, p |= r
d) p → (q ∨ r), q → r, r → s |= p → s
E.T.S.I.Informática