Materia: #algoritmos_y_estructuras_de_datos
Tags:
Lógica
La lógica proposicional es un sistema de lógica basado en fórmulas estructuradas con ciertos simbolos, siguiendo una semantica y una sintactica clara, y que indica el valor de verdad de la misma. El objeto mas basico de la lógica proposicional es una fórmula atomica, que solemos notar con letras.
Por ejemplo,
Nosotros vamos a trabajar con una serie de simbolos que nos van a permitir unir fórmulas atomicas para armar estructuras mas complejas. Especificamente, veremos:
-
o lógico (representado como
) -
y lógico (representado como
) -
Negación lógica (representado como
) -
Implicacion (representado como
) -
Doble implicacion (representado como
)
A su vez, estos operadores tienen una logica muy basica, basada en las tablas de verdad, que nos indican como funcionan y alteran los valores de verdad en cada caso. Las tablas son, dados
Con estas simples reglas, podemos formar fórmulas como
Nos interesan mucho, en particular, lo que son las equivalencias. En particular, ser capaces de determinar si dos o mas fórmulas son equivalentes entre si. Decimos que esto sucede, cuando tienen exactamente los mismos valores de verdad. La equivalencia se suele notar con la doble implicacion. De este modo, podemos decir cosas como:
Todas estas son propiedades super utiles y practicas, asi que recomiendo tenerlas a mano.
Existe otra cuestion mas, que son las valuaciones. Una valuacion es una función
De aca, las reglas antes mencionadas son deducibles, pero aca estan explicadas para mas accesibilidad:
Llamamos tautologías a aquellas fórmulas lógicas p que para toda valuacion
Analogamente, decimos que una fórmula lógica es satisfacible si existe por lo menos una valuacion
Lógica trivaluada secuencial
Existen ciertas cuestiones que no podemos representar en un modelo de verdadero y falso. Por ejemplo, si tenemos un predicado
Existe un problema, y es que no siempre podemos caer en numeros que podamos comparar. Si nos ingresan numeros naturales, o incluso reales, o yendo al caso, hasta complejos, no tendremos ningun problema. También podrian ingresar fórmulas matematicas, y no deberia haber ningun contratiempo a primera vista, pero si que lo hay. Vean en la tabla lo que sucede en el ultimo caso: estamos dividiendo por 0, lo cual esta prohibido en las matematicas. O bueno, mas que prohibido, no definido, porque lleva a contradicciones.
Es para este tipo de casos que necesitamos ampliar nuestro sistema lógico. Evidentemente, no podemos abarcar todas las fórmulas simplemente con verdadero y f also, asi que se creo un sistema nuevo: la lógica trivaluada, que como dice su nombre, tiene tres valores de verdad. Ahora vamos a contar con verdadero y falso, como siempre, pero también con indefinido, notado a veces por el simbolo
Ahora, podemos definir la operacion de antes, resultando en que
La primera parte ya la conocemos, es la lógica trivaluada de la que venimos hablando. Pero la ultima parte, la de secuencial, es la que mas interesante vuelve todo esto. Ahora ya no evaluaremos las fórmulas de manera conmutativa, de ahora en adelante, el orden de las operaciones nos sera sumamente relevante. Vamos a tener nuevos simbolos que se tengan que leer estrictamente de izquierda a derecha, que notaremos con una
Las tablas revisitadas quedarian:
Sistema deductivo
Ahora bien, todo excelente con este sistema de lógica y demas, pero no nos sirve de nada si no podemos relacionar fórmulas diferentes. Es decir, si siempre hablamos de cosas independientes, no vamos a llegar muy lejos. Es por eso que existen los sistemas deductivos, en los que buscamos probar una fórmula en particular, a la que llamaremos conclusión, en base a unas otras, a las que llamaremos premisas.
Una forma de notar todo esto es la siguiente:
Donde el conjunto
Leasé el conjunto de premisas
Ahora que aclaramos todo esto, podemos pasar a lo pesado. Resulta que la elección de estas reglas lógicas es muy importante, ya que solo deberiamos ser capaces de construir pruebas validas. Es decir, no podemos permitirnos la posibilidad de satisfacer pruebas a conclusiones erroneas.
En particular, y de forma muy resumida, tenemos las siguientes reglas:
Donde
Dandole un cierre a todo esto, vamos a definir unos terminos más. Llamaremos teorema a toda fórmula lógica
Lógica de primer orden
Finalmente, llegamos a la parte final: la lógica de primer orden, o la lógica de predicados. Empecemos por un ejemplo, que va a ser mas fácil. Consideremos la frase:
Si siguieramos con la lógica proposicional seguro llamariamos a la frase
Ser estudiante
Ser profesor
Ser más joven que
Podemos plantearlo como funciones. Vamos a llamar a nuestras variables individuos, es decir, entidades indivisibles y distintiva. En nuestro ejemplo, los individuos serian los estudiantes y los profesores, o las personas
yendo al caso.
A su vez, vamos a tener predicados, que son funciones que toman por entrada individuos, hacen alguna operacion y devuelven el estado de verdad de la operacion hecha. Continuando con la frase, podemos tener
un predicado que sea
Por ultimo, vamos a introducir el concepto de los cuantificadores. Estos son simbolos que nos van a hacer mas facil la escritura de las fórmulas. En particular, tenemos dos: el para todo, que notamos
(también llamado para algún), y que notamos
Con todo esto en la mesa, vamos a poder constuir estructuras complejas como la frase de antes, sin perder ninguna informacion primordial. Utilizando nuestros ejemplos de antes, una fórmula equivalente a la frase podria ser:
Esta no es la unica fórmula que se puede constuir y tener el mismo significado. Podriamos haber usado otros prodicados, o ordenarla de manera diferente, el punto es que ahora la frase es inequivoca y no hay informacion que se pueda perder, que es lo que mas nos interesa.
En general, a la hora de usar cuantificadores, vamos a escribirlos tipados. Esto quiere decir, que vamos a requerir que la variable sea de algun tipo especifico. Lo notamos:
Que se leerian como para todo
Existen un par de reglas utiles a la hora de trabajar con los cuantificadores. Primero es lo que sucede al usar la negación en los mismos. Resulta que, si negamos un cuantificador universal, obtenemos un cuantificador existencial pero con el predicado negado, y viceversa. Todo esto quiere decir que:
Lo cual es una regla muy util y practica, pero no la unica. También hay formas de generalizar fórmulas: en particular, decimos que un cuantificador universal generaliza la conjunción, y un cuantificador existencial generaliza la disyunción. Es decir:
En el mundo de la lógica de primer orden, existen unas claras reglas sintacticas que todo LPO (lenguaje de primer orden) debe seguir. En particular, requiere:
-
Un conjunto
de símbolos de función cada uno con aridad (cantidad de argumentos) -
Un conjunto numberable
de constantes: . -
Un conjunto
de símbolos de predicado cada uno con aridad
El simbolo
A su vez, llamamos terminos al conjunto de todas las constantes y variables dentro del LPO. Las fórmulas atomicas son todo símbolo de predicado con aridad 0. Finalmente, les decimos fórmulas a todas las fórmulas atomicas dentro del LPO, y todas las que puedas formar con las operaciones lógicas antes vistas.
Combinando esto con los cuantificadores, tenemos los conceptos de variable libre y variable ligada, que a primera vista no parecen ser de mucho interes pero resultan ser mas que utiles. En particular, llamamos variable ligada a una ocurrencia de
Existe una operacion mas que todavia no mencionamos: la sustitución. Dada una variable
Ahora bien, dado cualquier lenguaje de primer orden
-
Para toda constante
, se tiene que -
Para toda
de aridad , se tiene que -
Para todo predicado
de aridad , se tiene que -
es la relación de identidad sobre
Con esto de la estructura podemos terminar de definir conceptos importantes para mas adelante. En particular, dado un lenguaje
Notemos que
Finalmente, decimos que una fórmula
Para terminar, mostraremos unas reglas algo complejas pero muy utiles. Las reglas del sistema deductivo para los cuantificadores universales y existenciales. En particular son:
Teniendo en cuenta que ni en