Está en la página 1de 4

Trabajo de la asignatura LP: 2005–2006

Cálculo de secuentes
El cálculo de secuentes es otra forma de resolver los problemas de satisfacibilidad, validez y consecuencia lógica
para la lógica proposicional. En lı́neas generales se basa en considerar un objetivo inicial acorde con el problema
que se quiere resolver, y descomponerlo en subobjetivos cada vez más simples hasta llegar a situaciones cuya
solución sea trivial.
Un secuente es un par formado por dos conjuntos de fórmulas:

F1 , . . . , Fn ⊢ G1 , . . . , Gm
donde el conjunto {F1 , . . . , Fn } se denomina antecedente del secuente y el conjunto {G1 , . . . , Gm } se denomina
consecuente del secuente.
Intuitivamente un secuente representa el hecho de que si todas las fórmulas del antecedente son ciertas,
entonces alguna de las fórmulas del consecuente también lo es. Por tanto, el secuente anterior es equivalente
(desde el punto de vista semántico) a la siguiente fórmula:

(F1 ∧ F2 ∧ . . . ∧ Fn ) → (G1 ∨ G2 ∨ . . . ∨ Gm )
Las reglas del cálculo de secuentes establecen qué secuentes tienen que ser ciertos (subobjetivos) para que
un determinado secuente objetivo también lo sea. Estas reglas se presentan de la siguiente forma:

Secuentes subobjetivos
Secuente objetivo
Teniendo en cuenta la semántica de los secuentes, un secuente es trivialmente cierto si una misma fórmula
aparece tanto en el antecedente como en el consecuente. A este tipo de secuentes se les denomina axiomas y
dan lugar a la primera regla del cálculo de secuentes:

ˆ Regla del Axioma

Ax
Γ1 , F, Γ2 ⊢ ∆1 , F, ∆2

donde Γ1 , Γ2 , ∆1 y ∆2 son secuencias finitas de fórmulas.


El sentido de esta regla es el siguiente: cualquier secuente en el que una misma fórmula F aparezca tanto
en el antecedente como en el consecuente es cierto y no genera ningún subobjetivo.
El resto de las reglas del cálculo de secuentes sirven para “descomponer” una fórmula del secuente objetivo
(parte inferior de la regla) en secuentes subobjetivos (parte superior de la regla). Se clasifican según el tipo de
la fórmula en cuestión y si ésta se encuentra en el antecedente (I) o en el consecuente (D). Son las siguientes:

ˆ Reglas de la negación
Γ1 , Γ2 ⊢ F, ∆ F, Γ ⊢ ∆1 , ∆2
¬I ¬D
Γ1 , ¬F, Γ2 ⊢ ∆ Γ ⊢ ∆1 , ¬F, ∆2
ˆ Reglas de la disyunción
Γ1 , F, Γ2 ⊢ ∆ Γ1 , G, Γ2 ⊢ ∆ Γ ⊢ ∆1 , F, G, ∆2
∨I ∨D
Γ1 , F ∨ G, Γ2 ⊢ ∆ Γ ⊢ ∆1 , F ∨ G, ∆2
ˆ Reglas de la conjunción
Γ, F, G, Γ2 ⊢ ∆ Γ ⊢ ∆1 , F, ∆2 Γ ⊢ ∆1 , G, ∆2
∧I ∧D
Γ1 , F ∧ G, Γ2 ⊢ ∆ Γ ⊢ ∆1 , F ∧ G, ∆2
ˆ Reglas de la implicación
Γ1 , G, Γ2 ⊢ ∆ Γ1 , Γ2 ⊢ F, ∆ F, Γ ⊢ ∆1 , G, ∆2
→I →D
Γ1 , F → G, Γ2 ⊢ ∆ Γ ⊢ ∆1 , F → G, ∆2
ˆ Reglas de la equivalencia
Γ1 , F → G, G → F, Γ2 ⊢ ∆ Γ ⊢ ∆1 , F → G, ∆2 Γ ⊢ ∆1 , G → F, ∆2
↔I ↔D
Γ1 , F ↔ G, Γ2 ⊢ ∆ Γ ⊢ ∆1 , F ↔ G, ∆2
donde Γ, Γ1 , Γ2 , ∆, ∆1 y ∆2 son secuencias finitas de fórmulas.
El procedimiento usual para demostrar la validez de una fórmula cualquiera F mediante el cálculo de
secuentes consiste en considerar ⊢ F como secuente objetivo inicial, al que se van aplicando las reglas de
secuentes dando lugar a nuevos subobjetivos. Este proceso se repite hasta que todos los subobjetivos se han
eliminado (mediante la regla del axioma), en cuyo caso la fórmula inicial es válida; o hasta que se llegue a un
objetivo al que no se pueda aplicar ninguna regla de “descomposición”, en cuyo caso la fórmula inicial no es
válida.
Ejemplos de demostraciones usando el cálculo de secuentes:

ˆ Ejemplo 1:

– Objetivo inicial (1): ⊢ A → (B ∨ A)


– Aplicamos la regla →D a la primera fórmula del consecuente
– Subobjetivo obtenido (1.1): A ⊢ B ∨ A
– Aplicamos la regla ∨D a la primera fórmula del consecuente
– Subobjetivo obtenido (1.1.1): A ⊢ B, A
– Aplicamos la regla del axioma
– No quedan objetivos pendientes

ˆ Ejemplo 2:

– Objetivo inicial (1): ⊢ (A ∧ (A → B)) → B


– Aplicamos la regla →D a la primera fórmula del consecuente
– Subobjetivo obtenido (1.1): A ∧ (A → B) ⊢ B
– Aplicamos la regla ∧I a la primera fórmula del antecedente
– Subobjetivo obtenido (1.1.1): A, A → B ⊢ B
– Aplicamos la regla →I a la segunda fórmula del antecedente
– Subobjetivos obtenidos (1.1.1.2): A ⊢ A, B y (1.1.1.1): A, B ⊢ B
– Continuamos con el subobjetivo (1.1.1.2): A ⊢ A, B
– Aplicamos la regla del axioma
– Continuamos con el subobjetivo (1.1.1.1): A, B ⊢ B
– Aplicamos la regla del axioma
– No quedan objetivos pendientes

Descripción del trabajo


En este trabajo se pide realizar una implementación interactiva del cálculo de secuentes que actúe de forma
similar a como se han descrito los ejemplos de la sección anterior. Más concretamente:

1. Implementar el tipo abstracto de dato secuente, junto con una función de impresión en pantalla que
presente las fórmulas del antecedente lı́nea a lı́nea enumeradas con números enteros negativos, a con-
tinuación una lı́nea de separación y finalmente las fórmulas del consecuente lı́nea a lı́nea enumeradas
con números enteros positivos, tal y como se ve en el siguiente ejemplo donde se presenta el secuente
p, p → q, q ⊢ ¬q, ¬p ∧ r:

[-3] P
[-2] (P -> Q)
[-1] Q
|-----------------------------------------------------
[+1] (- Q)
[+2] ((- P) & R)
2. Implementar el procedimiento prueba-secuente que recibe como argumento un secuente y comienza un
proceso interactivo de demostración de dicho secuente. En dicho proceso interactivo el usuario podrá
indicar con un número la fórmula a la que quiere que se le aplique una regla de descomposición del
cálculo de secuentes. Un número positivo hará referencia a la fórmula con dicha numeración dentro del
consecuente del secuente objetivo. Un número negativo hará referencia a la fórmula con dicha numeración
dentro del antecedente del secuente objetivo. El cero indicará que se quiere aplicar la regla del axioma.
Si la regla se puede aplicar con éxito y genera nuevos subobjetivos, estos se enumeran tal y como se ha
indicado en los ejemplos de la sección anterior. Si la regla no se puede aplicar con éxito, el sistema indicará
con un mensaje el fallo. En cualquier caso, se presentará el nuevo secuente objetivo a considerar, si es que
quedan. Si no quedan secuentes objetivo, el proceso terminará indicado que la prueba ha finalizado con
éxito.
Un ejemplo de sesión es el siguiente:

Demostrador de secuentes
--------------------------
Objetivo 1:
|--------------------------------------------------------------
[+1] ((A & (A -> B)) -> B)
Acción a realizar: 1
Descomponiendo la fórmula [1] ((A & (A -> B)) -> B)
Objetivo 1.1:
[-1] (A & (A -> B))
|--------------------------------------------------------------
[+1] B
Acción a realizar: 1
Descomponiendo la fórmula [1] B
La fórmula no se puede descomponer más
Objetivo 1.1:
[-1] (A & (A -> B))
|--------------------------------------------------------------
[+1] B
Acción a realizar: 0
El secuente no es un axioma
Objetivo 1.1:
[-1] (A & (A -> B))
|--------------------------------------------------------------
[+1] B
Acción a realizar: -1
Descomponiendo la fórmula [-1] (A & (A -> B))
Objetivo 1.1.1:
[-2] A
[-1] (A -> B)
|--------------------------------------------------------------
[+1] B
Acción a realizar: -1
Descomponiendo la fórmula [-1] (A -> B)
Objetivo 1.1.1.2:
[-2] A
[-1] B
|--------------------------------------------------------------
[+1] B
Acción a realizar: 0
El secuente es un axioma
Continuamos con el siguiente objetivo
Objetivo 1.1.1.1:
[-1] A
|--------------------------------------------------------------
[+1] A
[+2] B
Acción a realizar: 0
El secuente es un axioma
La demostración ha terminado

3. Implementar el procedimiento prueba-formula-secuentes que recibe como argumento una fórmula


proposicional y comprueba su validez utilizando el cálculo de secuentes.
4. Implementar el procedimiento prueba-consecuencia-secuentes que recibe como argumentos un con-
junto de fórmulas S y una fórmula F y comprueba si F es consecuencia lógica de S utilizando el cálculo
de secuentes.

Se proporciona una versión compilada del demostrador basado en el cálculo de secuentes para poder realizar
más ejemplos y solventar dudas acerca de la funcionalididad del mismo. Se utiliza de la siguiente forma:

> (load "secuentes.fas")


;; Cargando el fichero "secuentes.fas ...
;; Loaded file secuentes.fas
T
> (prueba-formula-secuentes ’((a & (a -> b)) -> b))
...
> (prueba-consecuencia-secuentes ’(a (a -> b)) ’b)
...

Evaluación
A la hora de realizar el trabajo hay que tener en cuenta lo siguiente:

ˆ El trabajo es individual. Si se concluye que un trabajo ha sido realizado por varios alumnos, la nota total
será repartida entre dichos alumnos.
ˆ La nota del trabajo es de 4 puntos sobre la nota final de la asignatura.

ˆ El desarrollo del trabajo ha de estar convenientemente documentado. Se ruega no incluir comentarios en


mitad del código para mejorar su legibilidad.
ˆ El envı́o del trabajo se ralizará via WEB desde la página de la asignatura mediante un formulario desar-
rollado a tal efecto.

También podría gustarte