Las Simples Leyes del Razonamiento
Es un verdadero placer observar cómo el pensamiento humano, al igual que los fenómenos eléctricos, sigue leyes de una sencillez y belleza asombrosas. Estos principios lógicos no son solo abstracciones, sino los cimientos sobre los cuales construimos máquinas capaces de "razonar" junto a nosotros.
¿Qué es una Proposición?
Llamamos proposición a cualquier afirmación que posea la maravillosa propiedad de ser, sin asomo de duda, verdadera ( ) o falsa ( ). En este estudio, no nos detendremos tanto en el significado literario de las palabras, sino en la fuerza de su valor de verdad.
| Expresión | ¿Es Proposición? | Valor de Verdad |
|---|---|---|
"Elixir corre sobre la BEAM" |
Sí |
|
" " |
Sí |
|
"¡Qué maravilloso es el mundo!" |
No |
Exclamación |
" " |
No |
Enunciado abierto (depende de ) |
|
En el arte de la programación, estas proposiciones son las que dirigen el flujo de nuestras ideas a través de estructuras como |
Conectivos Lógicos: El Entrelazado de las Ideas
Para formar pensamientos más complejos, debemos unir nuestras proposiciones simples mediante conectivos, tal como unimos cables para que la corriente fluya.
Negación ( )
Es un acto sencillo pero potente: invierte el valor de lo que se afirma. Si es una verdad, será, por necesidad natural, una falsedad.
|
|
|
|
# La negación en Elixir
not true # => false
not false # => true
Conjunción ( )
Es nuestro "y" cotidiano. Solo brilla con la verdad cuando ambas partes que la componen son, por sí mismas, verdaderas.
|
|
|
|
|
|
|
|
|
|
|
|
# La conjunción en Elixir
true and true # => true
true and false # => false
Disyunción ( )
Es el "o" de las posibilidades. Basta con que al menos una de las proposiciones sea verdadera para que todo el conjunto lo sea.
|
|
|
|
|
|
|
|
|
|
|
|
# La disyunción en Elixir
true or false # => true
false or false # => false
Implicación ( )
"Si sucede esto, entonces aquello". Es la ley de la consecuencia. Fíjense bien: solo se considera falsa cuando la promesa se rompe, es decir, cuando partiendo de una verdad ( ) llegamos a una falsedad ( ).
|
Esta implicación es la base de todo sistema inteligente: |
Tablas de Verdad: Observando todas las Posibilidades
Las tablas de verdad son como nuestros diarios de laboratorio; nos permiten anotar qué sucede en cada combinación posible de circunstancias.
Cuantificadores: De lo Particular a lo Universal
Cuando necesitamos expresar afirmaciones sobre conjuntos enteros de elementos (no solo sobre valores específicos), recurrimos a los cuantificadores. Son la herramienta que nos permite pasar del "uno" al "todos".
Cuantificador Universal ( )
"Para todo elemento del conjunto, se cumple la propiedad ."
Es decir: para todo número natural, sumar cero no lo altera. Basta encontrar un solo contraejemplo para demoler una afirmación universal.
Cuantificador Existencial ( )
"Existe al menos un elemento del conjunto para el cual se cumple ."
Es decir: existe un entero cuyo cuadrado es 4 (por ejemplo, o ).
|
En el mundo de la IA, los cuantificadores son esenciales para expresar restricciones. Por ejemplo: "Para todo estado del tablero ( ), existe al menos una jugada legal ( )" es una propiedad que un agente de ajedrez debe verificar constantemente. |
Leyes de la Armonía Lógica (Tautologías)
Existen ciertas formas de pensar que son, sin importar las circunstancias, siempre verdaderas. Conocerlas es como conocer las leyes de la inducción; nos permiten simplificar lo complejo.
Leyes de De Morgan
Estas leyes nos enseñan cómo negar con elegancia pensamientos compuestos:
# Primera Ley de De Morgan en acción:
# En vez de negar la conjunción completa:
not (user.is_admin and user.is_active)
# Podemos expresar con la misma fuerza:
not user.is_admin or not user.is_active
# Segunda Ley de De Morgan:
# En vez de:
not (a or b)
# Equivale a:
not a and not b
Otras Tautologías Fundamentales
| Nombre | Expresión |
|---|---|
Identidad |
; |
Dominación |
; |
Doble Negación |
|
Contraposición |
|
Modus Ponens |
|
|
La contraposición es una herramienta poderosa en la demostración de teoremas y en la lógica de los agentes: para probar que "si llueve, el suelo se moja", basta demostrar que "si el suelo no está mojado, no llovió". |
La Lógica como Fundamento del Agente
Estas leyes no son abstracciones vacías. Cuando un agente racional evalúa su entorno y decide actuar, está ejecutando — en el fondo — cadenas de implicaciones lógicas sobre sus perceptos. El case de Elixir, con su pattern matching, es la encarnación computacional del modus ponens:
# El pattern matching como razonamiento lógico:
# "Si el percepto coincide con este patrón, entonces ejecuta esta acción"
case percepto do
%{temperatura: t} when t > 100 -> :apagar_sistema # p → q
%{bateria: b} when b < 10 -> :modo_ahorro # r → s
_ -> :continuar_operacion # default
end