Esta nota todavía está en construcción.

Esta nota es un esbozo y por lo tanto incompleta. Ampliandola ayudarás a mejorar esta página.

Esta nota tiene como bonus aprender Lean. Más información abajo.

Sabemos que la Lógica es la disposición natural de los seres humanos para pensar de forma coherente. Es una estructura del pensamiento que permite verificar si un razonamiento es correcto o incorrecto.

La proposición

Una proposición es una oración declarativa o una expresión matemática que es de tipo booleano o lógico: verdadero o falso, pero no puede ser ambas a la vez.

Por ejemplo:

  • “El hielo es caliente”. (Es una proposición, aunque sea Falsa).
  • “3 es mayor que 1”. (Es una proposición, y es Verdadera).

Entonces, que NO es proposición:

  • “¿Qué hora es?” (Las preguntas no son ni verdaderas ni falsas).
  • “¡Siéntate!” (Las órdenes tampoco).
  • “x + 2 = 5” (No sabemos cuánto vale “x”, así que no podemos decir si es verdad o mentira todavía).

Y entonces… Para qué Lean?

Nota

Estas secciones son opcionales, no es necesario usar Lean para aprender desde Lógica Proposicional hasta Teoría de Conjuntos pero es recomendable para poder verificar demostraciones (y poder hacerlas.)

Distinguiremos las secciones de Lean como: “En Lean”.

Lean básicamente es un lenguaje de programación de código abierto creado por Leonardo de Moura en Microsoft Research en 2013 (que rápido pasa el tiempo, no?). Lo que hace especial a este lenguaje es que es un asistente de demostraciones (o probador de teoremas dependiendo del idioma); en pocas palabras tu le dices que demostrar y como demostrar y te dice si es posible o no posible usando una sintaxis (te suena de algo?).

En este caso, podemos ver que 2 + 2 es verdadero, y del tipo de los "Nat"urales.

Para poder usar Lean se recomienda instalar Visual Studio Code, aunque también puedes usar la playground.

Si has instalado Lean en Visual Studio Code, y creado un proyecto en Lean con el nombre Repaso, te debería salir una estructura de directorio de la siguiente manera:

Repaso/
	Basic.lean
Main.lean
Repaso.lean

Por ahora, ignora Main.lean y crea un nuevo archivo llamado Logica.lean, con el siguente código:

-- 1. Definimos las variables P y Q como Proposiciones:
variable (P Q : Prop)
 
-- 2. Le pedimos a Lean que verifique *qué* son estas expresiones:
#print "Conectivos:" -- Imprime "Conectivos:"
#check P ∧ Q  -- Conjunción (Y)
#check P ∨ Q  -- Disyunción (O)
#check ¬P     -- Negación (No)

Verás que a la derecha se te abre una columna, llamada Lean Infoview (aparece también en el playground).

Retornaremos pronto a esto pero lo que necesitas saber es que en Lean todo tiene un “tipo” (como una etiqueta). Las Proposiciones tienen el tipo Prop (“Prop”osiciones). Por ejemplo, si escribimos 2 + 2 = 4 tal que en la imagen anterior, Lean reconoce que esto es algo que puede probarse (un Prop) y le asigna un resultado o tipo esperado (Nat, de los números naturales, )

Conectivos lógicos

Sabemos que al identificar una proposición, podemos darle un Valor de Verdad (o valor booleano si estás en computación), lo cual es simple:

  • Si la proposición coincide con la realidad → Verdadero/V (o 1).
  • Si no coincide → Falso/F (o 0).

La palabra “y”, AND (, conyunción)

Podemos usar la palabra “y” para conectar las proposiciones y crear una nueva proposición, sean esas proposiciones verdaderas o falsas. El resultado de esta conexión solo será verdad si ambas son verdad, de lo contrario será falsa:

  • significa ” y “.
  • En Lean: Se escribe (\and también funciona en el editor).

Para resumir todos los posibles casos, usamos lo que se llama una Tabla de Verdad:

111
100
010
000

La palabra “o”, OR (, disyunción)

También podemos conectar proposiciones usando la palabra “o”. Dada dos proposiciones cualquiera y , la afirmación ” o ”, significa que una o ambas proposiciones son verdaderas; solo es falsa si ambas son falsas.

  • significa ” o “.
  • En Lean: Se escribe (\or también funciona en el editor).

Resumiendo todos los casos posibles:

111
101
011
000

La palabra “no”, NOT (, negación)

En cambio, la palabra “no” invierte el valor de verdad de la proposición.

  • Si es “Está lloviendo” (V), entonces es “No está lloviendo” (F).
  • En Lean: Se escribe ¬ (\not también funciona en el editor).

Viendo los casos en una Tabla de Verdad:

01
10

En Lean (Parte 1)

Aquí viene algo interesante de Lean.

  • En papel, escribimos “2 + 2 = 5” y decimos “Tiene un Valor de Verdad, falso”.
  • En Lean, escribimos 2 + 2 = 5 y Lean dice: “Vale, esto es una Proposición (Prop), es una frase válida gramaticalmente”.
  • Sin embargo, si intentas demostrarla (crear un teorema), Lean te detendrá y dirá: “¡Alto! No puedo encontrar una prueba para esto”.

En Lean, distinguirás entre enunciar algo (escribir la frase) y demostrarlo (probar que es verdad).

Ahora, retornando al código anterior, para ver su “resultado” tendrás una columna llamada Lean InfoView. Normalmente en Visual Studio Code se abre sola a la derecha, tal como se ve en la imagen:

Si no te aparece, haz clic en el ícono de Lean (el ) y presiona Toggle Lean InfoView o presiona Ctrl+Shift+Enter.

Ahora coloca el cursor del texto (no el del mouse) en la línea que dice #check P ∧ Q, al final de esa línea. Si has hecho todo al pie de la letra, verás que en el InfoView te aparece lo siguiente:

Nos afirma que es una Proposición. Y ahora, si ponemos el cursor en Q, veremos que nos da un tipo esperado, otra proposición:

Así se entiende y se verifica un tipo en Lean.

La implicación ()

Se escribe y se lee “Si , entonces o "". Importante saber que:

  • es el antecedente (La condición).
  • es el consecuente (La conclusión).

Esta proposición SOLO ES FALSA cuando la condición se cumple pero la conclusión es falsa. En todos los otros casos, es verdadera.

Por ejemplo, supongamos que nuestra proposición es una promesa: “Si sacas 20 en el examen (), te compro un auto ().

  1. Sacas 20 (V) y te compro el auto (V) → V.
  2. Sacas 20 (V) y NO te compro el auto (F) → F.
  3. No sacas 20 (F).
    • Aquí viene lo curioso: Si no sacas 20, yo no estoy obligado a nada. Si te compro el auto o no, no he roto mi promesa. Por tanto, la implicación sigue siendo Verdadera.

Resumido en la siguiente tabla de verdad:

111
100
011
001

La Bicondicional ()

El “si y solo si”, agarra dos proposiciones: , Lo cual se leería como si y solo si . Esto indica que las dos son Verdaderas si y solo si, ambas proposiciones tienen el mismo valor de verdad.

Por ejemplo, si P y Q son verdaderas la proposición resultante es Verdadera, si P y Q son falsas la proposición resultante es Verdadera; es decir tienen el mismo valor de verdad de forma que la proposición resultante da el valor Verdadero.

En cambio, si ambos tienen diferente valor de verdad, entonces la proposición resultante da el valor de verdad Falso.

Visto en la siguiente tabla de verdad:

111
100
010
001

Una equivalencia lógica () es entonces, es una relación entre dos proposiciones, no un operador/conectivo. Por ejemplo, se dice que cuando la columna de está llena de valores de verdad V. (es decir, es una tautología, ya se verá más tarde).

Casos especiales: Tautología

Casos especiales: Contradicción

Las proposiciones que no sean ni tautologías ni contradicciones las llamamos Contingentes. También una equivalencia lógica puede entenderse como una tautología.

En Lean (Parte 2)

En el mismo archivo Logica.lean, agrega lo siguiente:

#check P -> Q -- Implicación (Si P entonces Q)
#check P <-> Q -- Bicondicional
#eval false <-> true -- Ejemplo de un bicondicional

PD: Lean entiende que el -> es una flecha . No te preocupes por ello.

Revisa ahora la entrada.

Luego veremos cómo verificar si una proposición es verdadera o falsa.

Definiciones y demostraciones

Definición

Una definición es una explicación exacta y sin ambigüedad del significado de un término o frase matemática. Daremos algunos ejemplos, aunque asumiremos que todos están familiarizados con los números naturales: y los números enteros.. Ejemplos:

  • Definición 1: Un entero es par si existe un entero , tal que . Ejemplo
  • Definición 2: Un número entero es impar si existe un entero tal que . Ejemplo
  • Definición 3: Dos proposiciones compuestas y son lógicamente equivalentes si y sólo si sus tablas de verdad coinciden en todos los casos posibles. Ejemplo

Cómo se puede observar, las definiciones se suelen expresar como proposiciones condicionales, aunque lo más adecuado sería expresarlas como proposiciones bicondicionales. Es decir la definición 1, debería ser técnicamente: “un número entero  es par si, y sólo si, existe un entero , tal que 1.

Teorema

Un teorema es una proposición matemática que es verdadera y puede ser (y ha sido) verificada como verdadera; los teoremas usualmente son proposiciones condicionales del tipo , aunque el enunciado o proposición a veces oculta este hecho.

Ejemplo:

Proposición: Las soluciones de la ecuación son:

Proposición: Si es una solución de la ecuación , entonces la ecuación sería .

Las dos proposiciones dicen lo mismo pero la segunda muestra el hecho de que es una proposición condicional.

Cuando un teorema se expresa como una proposición condicional , la proposición se llama hipótesis y la proposición se llama tesis. También hay teoremas que simplemente son proposiciones, ejemplo: “Existen infinitos números primos”.

Demostración

Una demostración de un teorema es una verificación escrito que muestra que el teorema es verdadero. Consiste de una sucesión de afirmaciones , tales que cada afirmación tiene una o más razones que justifican su validez, que pueden ser hipótesis, definiciones, afirmaciones anteriores en la demostración o proposiciones matemáticas ya demostradas y la última afirmación , es la tesis que queremos demostrar.

En las demostraciones se usan atajos llamados Reglas de Inferencia:

Reglas de Inferencia

Modus Ponens (MP)

Supongamos que tenemos una premisa (proposición) : “Si ocurre , entonces ocurre “. Entonces se dice que es verdadera y que la condición () se cumplió, por lo tanto la consecuencia () TIENE que haberse cumplido.

Modus Tollens (MT)

Esta es una ley de negación del consecuente o ley de contraposición: En cambio si tenemos y no se cumple (), entonces no se cumple. “Por lo tanto, no “.

Silogismo hipotetico

También es una forma de argumento valido en el que consiste en un silogismo con una sentencia condicional para una o ambas de sus proposiciones. Tenemos las dos proposiciones:

Por lo tanto . Por ejemplo:

  • : Estudio mucho.
  • : Aprobé el parcial.
  • : Me dan el titulo.

Si sabemos que (Si estudio mucho, aprobaré el parcial) y (Si apruebo el examen, me darán el titulo), por lo tanto (Si estudio mucho, me darán el titulo).

Silogismo disyuntivo

También es otra forma de argumento valido en el que consiste también en un silogismo con una sentencia condicional pero que una de sus condiciones es falsa. Por ejemplo, tenemos 2 proposiciones:

  • : El postre es helado.
  • : El postre es pastel. Sabemos que:
  • El postre es helado o pastel ().
  • El postre NO es helado. ().

Por lo tanto, el postre es Pastel ().

Tipos de demostraciones

Demostración directa

Esta es la forma natural de demostrar un teorema, se usa casi siempre para probar una implicación del tipo “Si , entonces ” (); es suficiente demostrar que es verdadera siempre que lo sea usando nuestras reglas de inferencia.

Por ejemplo:

Supongamos el esquema:

  • Proposiciones:
  • Queremos demostrar .
  • Demostración:
    • Supongamos que tenemos y es verdadero. entonces, por consiguiente es verdadera; usaremos la segunda proposición y si es verdadera, entonces, **por definición, implica .
Demostración por contrarrecíproca

Esta ley dice que es idéntica a . Entonces, si quieres probar , puedes probar que al negar el consecuente, se niega obligatoriamente el antecedente.

Por ejemplo:

Supongamos el esquema:

  • Proposiciones:
    • : Es un pez
    • : Sabe nadar
  • Queremos demostrar .
  • Demostración:
    • Supongamos que no es verdad () que sabe nadar. En consecuencia, es un pez. En el que no es verdad que es un pez (). (usando MT)
  • En resumen:
    1. Premisa (Dato que ya sabíamos)
    2. Hipótesis Auxiliar (la suposición)
    3. Modus Tollens entre 1) y 2)
Demostración por recíproca

La estructura es, idéntica a la contrarrecíproca (), pero no es un método de demostración para la implicación original () . Por ello, se usa más a la hora de demostrar bicondicionales: Por ejemplo:

Supongamos el esquema:

  • Proposiciones:
    • : Un número entero es par.
    • : es impar
  • Queremos demostrar .
  • Demostración:
    • Sabemos que si es par, entonces es impar.
    • Por definición, existe un entero impar, tal que .
    • Restando en ambos lados (usando teclas), tenemos: .
    • En consecuencia, es par.
Demostración por contradicción (o Reducción al absurdo)

Si queremos demostrar que es verdad, empezamos suponiendo que es verdadera, y que esa suposición lleva a una contradicción (para una proposición , se tiene que es verdadera, por lo tanto, se contradice).

Por ejemplo:

Supongamos el esquema:

  • Proposiciones:
    • : es un número irracional.
  • Queremos demostrar .
  • Definición: Un número racional es un número real de la forma , donde y son enteros, y . Un número irracional es un número real que no es racional, es decir no puede ser expresado de la forma .
  • Demostración:
    • Suponemos que no es verdad que es un número irracional (es decir, asumimos que es un número racional).
      • Entonces, por definición sabemos que y sabemos que pertenecen a los enteros (), y que .
      • Primero nos tendríamos que deshacer de la raíz cuadrada, por lo cual elevamos la otra parte (usando teclas) al cuadrado, tal que: . Debemos entonces encontrar una contradicción. Hay que despejar y , por lo tanto dividimos 2 en ambos lados (usando teclas).
      • Lo cual nos quedaría y tenemos que ahora despejar (usando teclas), lo cual nos quedaría que .
    • Aquí es donde volvemos entonces a la definición de par: . Tenemos lo mismo en esa ecuación : es par, y por lo tanto, siempre será un numero par, es decir es par.
    • Aquí entonces, podemos hallar un entero tal que , ya tenemos nuestra segunda ecuación.
      • Remplazamos con : .
      • Simplificando la ecuación obtenida: y dividiendo ambos lados de la ecuación obtenemos .
    • Tenemos un descubrimiento clave: es par también. Ahora sabemos que son pares. Recordando la hipótesis, sabemos que (no se puede simplificar la fracción, es racional), y una de las características es que estos pares tienen como 2 a divisor común, por lo que la fracción se puede simplificar más, y, por consecuente, la suposición de ser un número racional es falsa.
    • Por lo tanto, es un número irracional.
Demostración por contraejemplo

Antes de continuar, debemos de saber que las conjeturas son proposiciones cuya verdad o falsedad aún no ha sido verificada, pero hay indicios de que son verdaderas. Ejemplo: La conjetura de Goldbach: “Cualquier número entero par mayor que 2 es la suma de 2 primos”.

Por ello, un contraejemplo es el método más rápido para demostrar que una proposición universal (“Para todo…”, “Todos los…”, “Siempre…”) es falsa. Solo se necesita un caso donde la afirmación no se cumple.

Por ejemplo:

Supongamos el esquema:

  • Proposición: “Para todo número real , si , entonces “.
  • El punto: Buscar un número que cumpla el antecedente () pero no el consecuente (, es decir se debe cumplir que ).
  • Demostración:
    • Obtenemos un número par 4 la cual cumple el antecedente ().
    • Si hacemos vemos que . (Cuidado con esa concha de mango, pudiera ser verdadero SI .)

Algebra de Proposiciones

Una Ley Proposicional es una fórmula que siempre resulta en una Equivalencia Lógica (es decir, el bicondicional entre ambos lados es una tautología).

A través de las equivalencias lógicas es posible transformar las fórmulas y, en algunos casos, obtener extensiones más simples. Algunas equivalencias lógicas importantes:

  • Doble negación:
  • Leyes Independientes:
  • Leyes Asociativas:
  • Leyes Conmutativas:
  • Leyes Distributivas: Permiten “multiplicar” un conector sobre una suma/resta lógica.
  • Leyes de Identidad o Elemento Neutro: ,
  • Leyes de Dominación: ,
  • Leyes de Complementación:
    1. . (Tercer Excluido)
    2. . (Contradicción)
    3. . (Doble negación) ,
  • Leyes de DeMorgan: Estas leyes te permiten “distribuir” la negación dentro de un paréntesis, pero al hacerlo, obligan al conector a cambiar.
  • Contra positiva o contra recíproca
  • Implicación
  • Ley del Condicional
  • Ley de la Absorción: Estas leyes son los atajos más útiles para simplificar rápidamente. Ocurren cuando tienes una variable afuera y esa misma variable está adentro con el conector opuesto.

Otras propiedades importantes de la equivalencias lógica son las reglas de sustitución. Sean y formulas.

Suponga que y entonces:

Reglas de sustitución… ) ) )

Implicación Lógica

Teoría de conjuntos

Footnotes

  1. En términos matemáticos, una Definición es una proposición bicondicional en la que se suele omitir el “solo si” del “si y solo si” (por eso técnicamente).