next up previous contents
Next: Inferencia lógica Up: Interpretación lógica Previous: Sintaxis de programas en   Contents


Semántica de programas en lógica

Tal como surge de la definición sintáctica de los programas en lógica, los mismos se estructuran a partir de conceptos elementales que llamamos átomos. Dichos átomos tienen una estructura lexicográfica bien definida: sucesión de caracteres válidos en un vocabulario dado. Pero lo que es importante, es que carecen de todo valor semántico, y es por ello que a los lenguajes con esta concepción se les llama lenguajes de manipulación simbólica. Esta carencia de valor semántico también es aplicable a los símbolos funcionales y predicativos. Sin embargo todo usuario al escribir un programa tiene una intencionalidad semántica bien definida. Así en el ejemplo de la introducción, pocos pueden dudar que lo que se pretende con dicho programa es establecer relaciones familiares entre personas. Por otra parte, cuando se plantea una pregunta, la misma tiene también un valor semántico preciso para el usuario.

Esta (aparente) falta de conexión entre los objetos sintácticos y el significado asociado a los mismos, no impide que los sistemas que procesan programas en lógica los evalúen de acuerdo a las expectativas semánticas del programa en cuestión. Desde el punto de vista de la interpretación lógica, la explicación proviene del hecho que cada invocación para la ejecución de un programa es considerada como una fórmula a ser demostrada como consecuencia lógica de la teoría formada por las reglas del programa. Esto significa que para cualquier interpretación que hace verdaderos los elementos del programa, hará también verdadera a la fórmula de la pregunta.

Definición 3.3 (Interpretación)
Sea $ R$ un programa en lógica, con sus vocabularios:

Sea $ D$ un conjunto (dominio) dado.

Una interpretación $ I(D)$ sobre el programa $ R$ asigna:

i.
a cada elemento de $ V$, un elemento de $ D$.
ii.
a cada elemento $ f$ de $ F$, una función de

$\displaystyle D^n \longrightarrow D
$

siendo $ n$ la aridad del símbolo $ f$.

iii.
a cada elemento $ p$ de $ P$ una función de

$\displaystyle D^n \longrightarrow ($verdadero$\displaystyle ,$falso$\displaystyle )
$

siendo $ n$ la aridad del símbolo $ p$.

Definición 3.4 (Satisfacción lógica)
Una interpretación $ I(D)$ satisface a una fórmula $ f$, ssi su aplicación sobre la fórmula da como resultado «verdadero».

Una interpretación $ I(D)$ satisface a un conjunto de fórmulas $ R$, ssi satisface a toda fórmula de $ R$.

Definición 3.5 (Consecuencia lógica o deducción)
Una fórmula $ f$ es consecuencia lógica, o se deduce, de un conjunto de fórmulas $ R$, ssi para todo dominio $ D$, toda interpretación $ I(D)$ que satisface $ R$, satisface también a $ f$.

Notación 1
Si $ f$ es consecuencia lógica de $ R$, se escribirá $ R \models f$.

El concepto de consecuencia lógica es el que permite determinar la forma en que los programas en lógica son evaluados. La aparente falta de conexión que aparecía entre los elementos sintácticos y sus significados, se resuelve al considerar una invocación de ejecución de un programa como una fórmula que debe probarse como consecuencia lógica de éste. Es decir que dicha fórmula debe ser satisfecha para toda interpretación que satisfaga al programa, lo que en definitiva libera a la prueba de todo valor semántico que pudiera haberle asignado el usuario en el momento de la concepción del programa.

De acuerdo a lo que se acaba de presentar, una ejecución corresponde a una prueba de consecuencia lógica, y ésta según la definición implicaría una desmostración que involucraría a toda intrepretación posible del programa a evaluar. Existen sin embargo otros mecanismos, basados en la derivación sintáctica, que permiten realizar el proceso de la prueba en forma más simple.


next up previous contents
Next: Inferencia lógica Up: Interpretación lógica Previous: Sintaxis de programas en   Contents
Cesar Ballardini
2003-10-14
Hosted by www.Geocities.ws

1