Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lectura Semana 3 PDF
Lectura Semana 3 PDF
En el capı́tulo anterior pudimos observar que las tablas de verdad se pueden construir
de manera mecánica para determinar la validez de un razonamiento. Sin embargo este
proceso puede ser extremadamente largas si el número de variables es grande, con lo cual
determinar si una expresión booleana es válida, resulta frecuentemente, un problema te-
dioso y difı́cil de manipular. Queremos entonces una alternativa para determinar validez
de expresiones booleanas que pueda ser mecánicamente realizada por una máquina y que
sea mucho más eficiente. Con este fin introducimos un sistema para construir demostracio-
nes que involucren expresiones de la lógica proposicional y este capı́tulo brinda las bases
para comprender el sistema que se utilizará en el capı́tulo 4.
Una forma muy usual de definir conjuntos es establecer las propiedades que deben satisfa-
cer sus elementos. Por ejemplo, mediante la frase: “Sea A el conjunto de todos los números
39
Cartilla Herramientas de Lógica Computacional Expresiones aritméticas y notación de sustitución tex
enteros mayores que −1 y menores que 100”; estamos señalando a todos los elementos del
conjunto A, una lista exhaustiva de ellos es también una definición del conjunto pero no
es necesario explicar que serı́a extensa y tediosa, por ello es que en matemática es común
recurrir a la siguiente definición:
aquı́, mediante x estamos representando a cualquier número que cumpla con la propiedad
de ser entero, mayor que −1 y menor que 100. Claramente cualquier número que satisfaga
esta propiedad pertenecerá a A y con la letra x estamos simbolizando a cualquiera de las
posibilidades. Cuando se utiliza de esta forma, x recibe el nombre de variable, puesto que
su valor puede variar entre diversas alternativas posibles, 100 para ser precisos en el caso
de nuestro ejemplo.
Una de las nociones fundamentales en Informática es el concepto de variable. Una variable
es un mecanismo de notación que se toma prestado de la matemática que aporta concisión
y precisión cuando es necesario representar ideas complejas, en resumen podemos decir
que:
Una variable es un sı́mbolo que se asocia a cualquier elemento de un conjunto predefinido.
Las expresiones aritméticas son muy utilizadas en la matemática básica que se enseña
en la escuela secundaria, por lo tanto consideraremos cierta familiaridad con ellas. Con
frecuencia aparecen variables en las expresiones aritméticas, como por ejemplo:
(−5) · (3 + x) o (4 + x) /2.
A partir de esta definición sólo son expresiones aritméticas aquellas construı́das utilizando
las reglas anteriores. Es decir, hemos establecido la sintaxis de las expresiones aritméticas,
con el término sintaxis nos estamos refiriendo a las leyes o reglas que aseguran que una
determinada sucesión de sı́mbolos pertenece a una determinada clase o tiene cierta estruc-
tura. Por lo tanto para reconocer si estamos frente a una expresión aritmética debemos
analizar si tal sucesión de sı́mbolos aritméticos puede construirse siguiendo las reglas.
40
Cartilla Herramientas de Lógica Computacional Expresiones aritméticas y notación de sustitución tex
Para contestar esta pregunta, comenzamos observando que por la regla 1, el número 3 es
una expresión aritmética y por la regla 2, también lo es x. Ahora usando la regla 5, sigue
que (3 + x) es una expresión aritmética y otra vez la regla 5 y la regla 1 nos garantizan
que ((3 + x) · 2) es una expresión aritmética.
La regla 1 nos dice que 2 es una expresión aritmética, pero de acuerdo a la regla 5 el
sı́mbolo · correspondiente a la multiplicación es un operador binario, es decir necesita dos
operandos, aquı́ sólo tenemos uno. Observemos además que la única expresión que puede
construirse usando un operando es mediante el sı́mbolo − que corresponde al operador
unario de la negación. Concluı́mos que la expresión (·2) no es una expresión aritmética.
Evaluar una expresión aritmética consiste en realizar las operaciones que se indican sobre
los operandos que en ella aparecen, está claro en el caso en que sólo existan constantes
como operandos, pero como ya mencionamos anteriormente una expresión puede con-
tener variables, en este caso evaluar una expresión requiere conocer que valores deben
considerarse para esas variables, para esto introducimos el concepto de estado.
Por ejemplo, en el estado (x, 5) , (y, 6) la variable x está asociada al valor 5 y la variable
y está asociada al valor 6.
Ahora entonces podemos definir qué entendemos por evaluar una expresión E en un
estado.
41
Cartilla Herramientas de Lógica Computacional Sustitución
o también
(x + z) [x, z := z + 1, 4] = ((z + 1) + (4)) = z + 5
(x + z) [x, w := z + 1, 4] = ((z + 1) + z) = 2z + 1
Convención: La sustitución tiene mayor jerarquı́a que cualquier otra operación, es decir
tiene precedencia sobre operaciones entre expresiones.
42
Cartilla Herramientas de Lógica Computacional Sustitución y variables ocultas
Por lo tanto en caso de que el orden deba alterarse, es necesario el uso de paréntesis, por
ejemplo
Cuando es necesario abreviar escritura, es usual nombrar expresiones para luego utilizar
este nombre en otras expresiones, por ejemplo podemos dar el nombre Q a una expresión
como: √
−b + b2 − 4 · a · c
Q:
2·a
para luego escribir la expresión x = Q
Sin embargo, la expresión x = Q tiene tres variables ocultas, a, b y c que deben tenerse
en cuenta cuando se realice una sustitución. Por ejemplo, la sustitución
(x = Q) [b := 5]
43
Cartilla Herramientas de Lógica Computacional Igualdad y sustitución. Regla de Leibniz
Recordemos que una regla de inferencia consiste en un mecanismo por el cual bajo el
supuesto de verdad de expresiones llamadas premisas se deriva la veracidad de otra ex-
presión llamada conclusión. Es decir, una regla de inferencia asegura que si las premisas
son teoremas, la conclusión también será un teorema. Aquı́ adoptaremos un formato es-
pecial para las reglas de inferencia en general: las premisas se describirán mediante una
lista, una bajo la otra y luego de trazar una lı́nea se escribirá la conclusión.
La regla de inferencia de la sustitución utiliza una expresión E, una lista de variables v,
y la correspondiente lista de expresiones F , ası́ tenemos
E
Sustitución : (3.1)
E [v := F ] ,
esta regla asegura que si E es un teorema, entonces también E es un teorema después de
haber reemplazado todas las ocurrencias de v por las correspondientes expresiones de F .
Observemos que una regla de inferencia como la sustitución (3.1), es un esquema que
representa una infinidad de reglas, una para cada combinación de la expresión E, la lista
de variables v, y la lista de expresiones F , podrı́amos considerar a E y x del ejemplo
anterior y F : j + 5 y tendrı́amos:
2 · x/2 = x 2 · x/2 = x
o bien
(2 · x/2 = x) [x := j + 5] 2 · (j + 5) /2 = j + 5
Hasta ahora hemos hablado del significado de evaluar una expresión aritmética E en un
estado. Supongamos que consideramos una expresión un poco más compleja en donde
participa la igualdad, como por ejemplo E = F , en este caso evaluar la expresión en un
estado arroja como resultado verdadero (True) si las expresiones E y F tienen el mismo
valor y falso (false) si tienen distintos valores
Vamos a ver algunos ejemplos, en donde utilizaremos la relación de igualdad entre expre-
siones aritméticas.
44
Cartilla Herramientas de Lógica Computacional Igualdad y sustitución. Regla de Leibniz
Simetrı́a : (x = y) = (y = x) (3.3)
X = Y, Y = Z
T ransitividad : (3.4)
X=Z
Utilizaremos la regla (3.4) del siguiente modo: de X = Y e Y = Z concluimos que X = Z.
45
Cartilla Herramientas de Lógica Computacional Sistemas deductivos
46
Cartilla Herramientas de Lógica Computacional Sistemas deductivos
Las reglas de inferencia permiten derivar fórmulas de otras fórmulas. Una fórmula es un
teorema del sistema formal si es un axioma, o puede ser generado a partir de un axioma
o de algún teorema ya demostrado usando las reglas de inferencia. Una demostración de
que una fórmula es un teorema es un argumento que muestra cómo las reglas de inferencia
son utilizadas para producir la fórmula.
En este curso usaremos un sistema deductivo conocido como Cálculo Ecuacional. Vamos
ahora a dar un detalle de los elementos señalados arriba que serán los que conformen el
sistema deductivo con el que trabajaremos:
Alfabeto: El alfabeto con el que construiremos las expresiones o palabras estará cons-
tituı́do por los siguientes sı́mbolos:
constantes: las constantes True y false se usarán para los valores verdadero
y falso respectivamente.
variables: las variables proposicionales o booleanas que representarán los
valores True o false. Se usarán generalmente las letras p, q, y r
para nombrar a estas variables.
operador unario: negación ¬.
equivalencia ≡
disyunción ∨
conjunción ∧
operadores binarios:
no equivalencia 6≡
implicación ⇒
consecuencia ⇐
Fórmulas: Las expresiones bien formadas o fórmulas del cálculo proposicional serán las
que se obtienen a partir de las siguientes reglas:
47
Cartilla Herramientas de Lógica Computacional Sistemas deductivos
Reglas de Las reglas de inferencia usadas serán las que ya presentamos para la rela-
Inferen- ción de igualdad en el Capı́tulo 1. Además, la equivalencia entre expresiones
cia: booleanas satisfacerá las siguientes propiedades:
P =Q
E [r := P ] = E [r := Q]
P
P [r := R]
Axiomas: Los axiomas serán introducidos gradualmente. El cálculo proposicional tal co-
mo se presenta aquı́ no pretende la minimalidad en el número de reglas de
inferencia y axiomas, dado que su principal objetivo es su utilización para rea-
lizar demostraciones que apuntan a la derivación y verificación de programas.
Caso 3.2 La conclusión de una regla de inferencia cuyas premisas son teoremas (ya de-
mostrados) es un teorema.
Caso 3.3 Una expresión booleana que se demuestra equivalente a un teorema es un teo-
rema.
48
Cartilla Herramientas de Lógica Computacional Propiedades a evaluar en los conectivos lógicos
Recordar los axiomas y teoremas del capı́tulo siguiente puede ser una labor titánica si
se carece de elementos para recordar los nombres de las reglas. Asi que es pertinente
mencionar propiedades de los conectivos lógicos que deseamos estudiar; algunas de ellas
serán válidas y constituirán axiomas o teoremas de nuestro sistema deductivo.
3.7.1: Asociatividad
Se dice que un operador binario ? sobre un conjunto dado cumple la propiedad asocia-
tiva si se cumple lo siguiente: Para cualesquiera elementos a, b, c del conjunto, se cumple
que a ? (b ? c) = (a ? b) ? c.
Como ejemplo de esta situación, considere la suma de números. Por ejemplo, 5+3+2+2.
Nótese que el valor de esta suma se puede calcular sin ambiguedad y la respuesta es 12.
¿Qué podrı́a causar la ambiguedad? El hecho que la suma es una operación binaria, por
lo cual la respuesta podrı́a depender de la forma como se agrupe de a dos sumandos la
expresión anterior. Por ejemplo, ((5 + 3) + (2 + 2)), (5 + (3 + (2 + 2))), etc. Pero se cumple
la propiedad asociativa de la suma en el conjunto de los números enteros, de manera que
no importa la forma en que se agrupe la expresión anterior, el resultado será el mismo.
De esta manera, si tenemos un axioma que afirma que para cualesquiera letras propo-
sicionales p, q, r se cumple que p ∨ (q ∨ r) = (p ∨ q) ∨ r, esta regla serı́a el axioma de
asociatividad de la disyunción (∨). Por ejemplo, vimos que la equivalencia (≡) cumple
también la propiedad asociativa.
Preguntas para el estudiante
Se dice que un operador binario ? sobre un conjunto dado cumple la propiedad con-
mutativa (también llamada propiedad de simetrı́a) si se cumple lo siguiente: Para cua-
lesquiera elementos a, b del conjunto, se cumple que a ? b = b ? a.
Como ejemplo de esta situación, considere la multiplicación de números. Por ejemplo, “el
producto de los números naturales mayores que 2 y menores que 5 ”. Nótese que el valor
de esta multiplicación se puede calcular sin ambiguedad y la respuesta es 12. ¿Qué podrı́a
49
Cartilla Herramientas de Lógica Computacional Propiedades a evaluar en los conectivos lógicos
3.7.3: Reflexividad
Se dice que un operador binario y booleano ? sobre un conjunto dado cumple la propiedad
reflexiva si se cumple lo siguiente: Para cualquier elemento a del conjunto, se cumple
que a ? a.
Como ejemplo de esta situación, considere la equivalencia. Vimos un axioma que nos decı́a
p ≡ p. Por tanto, decimos que dicha regla es el axioma de Reflexividad de ≡. De igual
manera, mencionamos que la igualdad (=) es una operación que cumple la propiedad
reflexiva. Nótese que no tiene sentido hablar de propiedad reflexiva en un operador como
la suma (+) de números, dado que este no es un operador booleano y por tanto no se
puede decir que una expresión como a + a sea verdadera o falsa.
Preguntas para el estudiante
3.7.4: Distributividad
Dados dos operadores binarios ?, ◦ sobre un conjunto dado, se dice que se cumple la
propiedad distributiva de ? sobre ◦ si sucede lo siguiente: Para cualesquiera elementos
a, b, c del conjunto, se cumple que a ? (b ◦ c) = (a ? b) ◦ (a ? c).
50
Cartilla Herramientas de Lógica Computacional Propiedades a evaluar en los conectivos lógicos
Dado un operador binario ? sobre un conjunto dado, se dice que un elemento e del conjunto
es identidad de ? (o elemento neutro de ?) si se cumple lo siguiente: Para cualquier
elementos a del conjunto, se cumple que a ? e = e ? a = a.
Como ejemplo de esta situación, considere la suma de números. Sabemos que 3 + 0 = 3 =
0 + 3; en general, sumar 0 a un número entero no modifica el resultado previo. En ese
caso, decimos que 0 es la identidad de la suma. Nótese que el número 1 es identidad de
la multiplicación de números enteros.
De esta manera, si tenemos un axioma que afirma que para cualquier letra proposicional
p se cumple que p ∨ False = p, esta regla dirı́a que False es la identidad de la disyunción
(∨). Por ejemplo, vimos que True es la identidad de la conjunción (∧). Es de mencionar
que no todos los operadores binarios sobre un conjunto tienen identidad.
Preguntas para el estudiante
¿Cuál es la identidad de ≡?
51
Cartilla Herramientas de Lógica Computacional Ejercicios
Dado un operador binario ? sobre un conjunto dado, se dice que un elemento e del conjunto
es elemento absorvente de ? (o un “cero” de ?) si se cumple lo siguiente: Para cualquier
elementos a del conjunto, se cumple que a ? e = e ? a = e.
Como ejemplo de esta situación, considere la multiplicación de números. Sabemos que
3 + ×0 = 0 × 3 = 0; en general, la multiplicación de un número por cero es igual a cero.
En ese caso, decimos que 0 es elemento absorvente de la multiplicación.
De esta manera, si tenemos un axioma que afirma que para cualquier letra proposicional p
se cumple que p ∨ True = True, esta regla se llamarı́a la regla del “cero de la disyunción
(∨)”. Por ejemplo, vimos que False es el cero de la conjunción (∧). Es de mencionar que
no todos los operadores binarios sobre un conjunto tienen un elemento absorvente.
Preguntas para el estudiante
a) (x + 2) [x := 6]
b) (x + 2) [x := x + 6]
c) (x · x) [x := x + 1]
d) (x + z) [y := z]
e) (x · (z + 1)) [x := z + 1]
a) (x + y) [x, y := 6, 3 · z]
b) (x + 2) [x, y := y + 5, x + 6]
c) (x · (y − z)) [x, y := z + 1, z]
d) (x + y) [y, x := 6, 3 · x]
52
Cartilla Herramientas de Lógica Computacional Ejercicios
e) (x · (z + 1)) [x, y, z := z, y, x]
a) (x + 2) [x := 6] [y := x]
b) (x + 2) [x := y + 6] [y := x − 6]
c) (x + y) [x := y] [y := 3 · x]
d) (x · (z + 1)) [x, y, z := z, y, x] [z := y]
e) (4 · x · x + 4 · y · x + y · y) [x, y := y, x] [y := 3]
4. Completar utilizando la regla de Leibniz. En cada caso decidir cuales son las expre-
siones E, X e Y . Dar todas las respuestas posibles.
x= x+2
a)
4·x+y = ?
2·y+1= 5
b)
x + (2 · y + 1) · w = ?
x+1= y
c)
3 · (x + 1) + 3 · x + 1 = ?
x= y
d)
x+x= ?
7= y+1
e)
7·x+7·y = ?
E [z := X] E [z := Y ]
(a) (x + y) · (x + y) (x + y) · (y + x)
(b) (x + y) · (x + y) (y + x) · (y + x)
(c) x+y+w+x x+y·w+x
(d) x·y·x (y + w) · y · x
(e) x·y·x y·x·x
53
Cartilla Herramientas de Lógica Computacional Ejercicios
54