Está en la página 1de 7

Introduccin y Sintaxis de la Lgica de Proposiciones

Lgica Computacional 2017-2, Nota de clase 1


Favio Ezequiel Miranda Perea Araceli Liliana Reyes Cabello
Lourdes Del Carmen Gonzlez Huesca Pilar Selene Linares Arvalo

9 de febrero de 2017
Facultad de Ciencias UNAM

1. Introduccin
En muchos aspectos cotidianos hacemos referencia a la lgica, ya sea de forma explcita o implcita
pero estricta y formalmente
Qu es la lgica?

La habilidad para determinar respuestas correctas mediante un proceso estandarizado.


El estudio de la inferencia formal.
Una secuencia de afirmaciones verificadas
Razonamiento, lo opuesto a la intuicin.
La deduccin o derivacin de afirmaciones a partir de afirmaciones previas.
Rama de la filosofa que trata de las formas de razonamiento y pensamiento, especialmente la
inferencia y el mtodo cientfico.
Estudio de los principios de inferencia vlida.

Por qu estudiar lgica?

La lgica computacional, que es la que veremos en este curso, refleja el uso de la lgica en compu-
tacin, en cierto sentido es el clculo de la computacin, un fundamento matemtico para tratar la
informacin y razonar acerca del comportamiento de programas.
Adems proporciona un entrenamiento que lleva a formas correctas y precisas de razonamiento, en
particular permite generar descripciones libres de ambigedades.
Es relevante para cursos posteriores como inteligencia artificial, bases de datos o ingeniera de
software.
Muchos problemas computacionales involucran lgica en su representacin o solucin.
Si bien la lgica es una ciencia muy antigua y la computacin de reciente estudio, ambas se han
fundido durante el siglo pasado, de manera que hoy en da es difcil marcar una frontera entre ambas
ciencias.

1
1.1. Motivacin para la formalizacin del razonamiento correcto
La lgica ha sido pieza clave para estructurar el pensamiento y el razonamiento:

Dar un fundamento a las matemticas.

Eliminar errores del razonamiento.

Encontrar una forma eficiente para llegar a una justificacin de una conclusin, dada cierta infor-
macin en forma de premisas.

2. Argumentos lgicos
Un argumento lgico es una coleccin finita de afirmaciones (proposiciones) dividida en premisas y
conclusin. Las premisas y conclusin deben ser susceptibles de recibir un valor de verdad. El argumento
lgico puede ser correcto o incorrecto.
Un problema central de la lgica es verificar la correctud de un argumento lgico. Y una aplicacin
principal en computacin es:
Cmo sabemos que el cdigo que nos proporcione un programador es correcto, es decir, realmente el
programa siempre har lo que queremos?
Veamos algunos ejemplos:

Todos los hombres son mortales, Socrates es hombre. Por lo tanto Socrates es Mortal. Es correcto?

Nada es mejor que Superman, Un taco es mejor que nada. Por lo tanto un taco es mejor que
Superman. Es correcto?

Los borogrovos se ponen fefos durante el brilgo. Pac es un borogrovo y hay brilgo. Por lo tanto Pac
est fefo.Es correcto?

Pero, cmo decidir si un argumento es correcto? Por sentido comn, por votacin, por autoridad ?
Nosotros usaremos la lgica como un medio para decidir la validez de un argumento. Un argumento
es correcto o vlido si suponiendo que sus premisas son ciertas, entonces necesariamente la conclusin
tambin lo es. Obsrvese que las premisas se suponen siempre ciertas. En el anlisis de un argumento
lgico no importa el contenido sino la forma de las premisas.

La isla de los caballeros y los bribones En la isla de los caballeros y bribones slo hay dos clases de
habitantes, los caballeros que siempre dicen la verdad y los bribones que siempre mienten. Un nufrago
llega a la isla y encuentra dos habitantes: A y B. El habitante A afirma : Yo soy un bribn o B es un
caballero.
El acertijo consiste en averiguar cmo son A y B.

Representacin lgica:

p := A es un bribn, q := B es un caballero.
Entonces A dijo s := p q.

Para resolver el acertijo suponemos que A es bribn.

En tal caso s es mentira por lo que ambas p y q son falsas.

2
Si p es falsa entonces A no es bribn.

Contradiccin: A no puede ser bribn y no bribn a la vez.

De manera que A no es bribn y entonces es caballero y s es cierta. Pero como p es falsa, dado que A es
caballero entonces q debe ser cierta de manera que tambin B es caballero.

Especificacin de un sistema de cmputo Puede existir un sistema de cmputo y un estado


particular del mismo con las siguientes caractersticas?

1. El sistema est en modo multiusuario si y slo si se comporta normalmente.

2. Si el sistema se comporta normalmente, su ncleo funciona.

3. El ncleo no funciona o el sistema est en modo de interrupcin.

4. Si el sistema no est en modo multiusuario entonces est en modo de interrupcin.

5. El sistema no est en modo de interrupcin.

Cmo resolvemos este problema?

2.1. Caractersticas de un argumento lgico


Los argumentos involucran individuos (personas, objetos, cosas en general): los hombres, Socrates,
un taco, Superman, etc..

Los individuos tienen propiedades: ser mortal, ser mejor, etc

Los argumentos se forman mediante proposiciones, clasificadas como premisas y conclusin del
argumento.

Una proposicin es una oracin que puede calificarse como verdadera o falsa.

Las proposiciones pueden ser compuestas.

Un argumento puede ser correcto (vlido) o incorrecto (invlido)

Un argumento nunca es verdadero ni falso.

3. Sistema lgico
3.1. Componentes de un sistema lgico
Cualquier sistema lgico consta al menos de las siguientes tres componentes:

Sintaxis: lenguaje formal que se utilizar como medio de expresin.

Semntica: mecanismo que proporciona significado al lenguaje formal dado por la sintaxis.

Teora de la prueba: coleccin de mecanismos puramente sintcticos cuyo propsito fundamental es


obtener o identificar las expresiones vlidas, respecto a la semntica, de un lenguaje, en particular
se encarga de decidir la correctud de un argumento lgico por medios puramtente sintcticos.

3
3.2. Propiedades de un sistema lgico
Consistencia: se refiere a que en el sistema lgico no hay contradicciones.

Correctud: las reglas del sistema no pueden obtener una inferencia falsa a partir de una verdadera.

Completud: no hay sentencias verdaderas que no se puedan demostrar en el sistema. Es decir, todo
lo verdadero es demostrable.

4. Lgica proposicional
La lgica proposicional es el sistema lgico ms simple. Se encarga del manejo de proposiciones me-
diante conectivos lgicos.
Una proposicin es un enunciado que puede calificarse de verdadero o falso, por ejemplo:

El es bribn

Tu eres caballero

Hoy es jueves.

Hay vida en Marte.

NO son proposiciones: Llueve?, el perro azul, Viva Pancho Villa!, el cerro de la silla, juan perez, etc.

4.1. El lenguaje PROP


Definimos ahora un lenguaje formal para la lgica de proposiciones. El alfabeto de este lenguaje consta
de:

Smbolos o variables proposicionales (un nmero infinito): p1 , . . . , pn , . . .

Constantes lgicas: , >

Conectivos u operadores lgicos: , , , ,

Smbolos auxiliares: (, )

El conjunto de expresiones o frmulas atmicas, denotado ATOM consta de:

Las variables proposicionales: p1 , . . . , pn , . . ..

Las constantes , >.

Las expresiones que formarn nuestro lenguaje PROP, llamadas usualmente frmulas, se definen re-
cursivamente como sigue:

1. Si ATOM entonces PROP. Es decir, toda frmula atmica es una frmula.

2. Si PROP entonces () PROP

3. Si , PROP entonces
( ), ( ), ( ), ( ) PROP.

4
4. Son todas.
La ltima clusula de la definicin garantiza que el conjunto PROP es el mnimo conjunto cerrado bajo
las tres primeras reglas.

La definicin anterior puede darse en la llamada forma de Backus-Naur para definir gramticas como
sigue:
, ::= V arP | | > | () | ( ) | ( ) | ( ) | ( )
V arP ::= p1 | p2 | . . . | pn | . . .

4.2. Precedencia y Asociatividad de los Operadores Lgicos


Para evitar el uso de parntesis al mximo definimos la siguiente precedencia de operadores de mayor
a menor:

,


De manera que la operacin a realizar primero es la dada por el conectivo de mayor precedencia.
Veamos algunos ejemplos:
p r es (p) r
pqr es p (q r)

p q r es (p) q  r 
p q r s t es p q r s (t)
p q q s es (p q) ((q) s)
Obsrvese que los operadores , tienen la misma precedencia de manera que expresiones como pqr
son ambiguas y no pueden ni deben ser utilizadas.

Acerca de la asociatividad, los operadores , , son asociativos de manera que expresiones como
p q r o p p s t estn libres de ambigedades.
Por otra parte el operador no es asociativo pero adoptaremos la convencin usual de asociarlo a la
derecha, es decir expresiones del estilo 1 2 3 se entendern como 1 (2 3 )

5. Definiciones Recursivas y el Principio de Induccin


Las definiciones recursivas son omnipresentes en ciencias de la computacin, la definicin del lenguaje
PROP es un ejemplo de esta clase de definiciones que consisten en definir propiedades o funciones en
una estructura de datos mediante un anlisis de casos de las distintas formas sintcticas que definen a la
estructura de datos correspondiente.

Veamos un ejemplo de definicin recursiva, la funcin np : PROP N que devuelve el nmero de


parntesis de una frmula dada. Se define como sigue:
np() = 0 si es atmica
np(()) = np() + 2
np(( ? )) = np() + np() + 2

5
Si se desean probar propiedades acerca de estructuras o funciones definidas recursivamente como
nuestro lenguaje PROP, como por ejemplo que np() siempre es un nmero par, lo adecuado es usar el
llamado principio de induccin estructural que enunciamos a continuacin.

Definicin 1 (Principio de Induccin Estructural para PROP) Sea P una propiedad acerca de fr-
mulas del lenguaje PROP. Para probar que toda frmula PROP tiene la propiedad P basta demostrar
lo siguiente:

Caso base: toda variable proposicional tiene la propiedad P.

Hiptesis de induccin: suponer que se cumple la propiedad P para y .

Paso inductivo: mostrar, usando la hiptesis de induccin, que

1. () cumple P.
2. ( ? ) cumple con P, donde ? {, , , }.

5.1. Algunas funciones de importancia


Las siguientes funciones sern de utilidad ms adelante. Su definicin recursiva se deja como ejercicio:

Profundidad de una frmula: depth() devuelve la profundidad o altura del rbol de anlisis sintc-
tico de .

Nmero de conectivos de una frmula: con() devuelve el nmero de conectivos de .

Variables de una frmula: vars() devuelve el conjunto o lista de variables que figuran en (sin
repeticiones).

Atmicas en una frmula: atom() devuelve el nmero de presencias de frmulas atmicas en .

Las siguientes relaciones entre algunas de las funciones recin especificadas deben verificarse mediante
induccin estructural:

con() < 2depth()

depth() con().

atom() 2con() + 1.

6. Sustitucin
Una operacin sintctica fundamental de las frmulas proposicionales es la sustitucin: en una frmula
dada , una variable proposicional p cambia por una frmula . As se genera una nueva frmula denotada
[p := ] obtenida al sustituir todas las presencias de p en por . Esta operacin se conoce como

6
sustitucin textual y se define recursivamente como sigue:
p[p := ] =
q[p := ] = q, si p 6= q
>[p := ] = >
[p := ] =
()[p := ] = ([p := ])
( )[p := ] = ([p := ] [p := ])
( )[p := ] = ([p := ] [p := ])
( )[p := ] = ([p := ] [p := ])
( )[p := ] = ([p := ] [p := ])

Anlogamente se define la sustitucin simultnea de n variables proposicionales por n frmulas [p1 , . . . , pn :=


1 , . . . , n ], tambin denotada como [~ ~ ].
p :=
La operacin de sustitucin tiene las siguientes propiedades que deben mostrarse usando induccin
estructural:
Si p no figura en entonces [p := ] = .
Si p 6= q y p no figura en entonces

[p := ][q := ] = [q := ][p := [q := ]]

Si p 6= q1 , . . . , qn y p no figura en 1 , . . . .n entonces
~ ] = [~q :=
[~q, p := , ~ ][p := ]

Algunos ejemplos correspondientes a las propiedades anteriores son:


(p q r)[s := t p] = p q r, pues s no figura en p q r.
Ejemplificamos ahora la segunda propiedad
(q r t s)[r := p t][t := p q] =
(q (p t) t s)[t := p q] =
q (p (p q)) (p q) s

Claramente r 6= t y r
/ V ars(p q) donde V ars es la funcin que obtiene el conjunto de variables
proposicionales de una frmula, en particular V ars(p q) = {p, q}, y tenemos

(q r t s)[t := p q][r := (p t)[t := p q]] =


(q r t s)[t := p q][r := p (p q)] =
(q r (p q) s)[r := p (p q)] =
q (p (p q)) (p q) s

Un ejemplo de la tercera propiedad es:


(r t (q p s))[r, p, s := p s, t, r][q := p r] =
((p s) t (q t r))[q := p r] =
((p s) t ((p r) t r)) =
(r t (q p s))[r, p, s, q := p s, t, r, p r]

También podría gustarte