2. Historia y fundamentos de la lógica formal

La lógica formal nació como una forma de estudiar razonamientos correctos y evolucionó hasta convertirse en una base esencial de la matemática, la computación y los lenguajes de programación.

2.1 Introducción

La lógica formal estudia la estructura de los razonamientos sin depender del tema concreto del que hablan. No se centra en si una frase trata sobre personas, números, programas o circuitos, sino en si la relación entre las afirmaciones está bien construida.

Esta idea es muy importante en programación: un programa puede manipular datos distintos, pero sus condiciones, decisiones y reglas deben tener una estructura lógica correcta.

2.2 Qué significa "formal"

En lógica, la palabra formal indica que se analiza la forma del razonamiento. Se dejan de lado detalles secundarios del lenguaje natural y se trabaja con símbolos, reglas y estructuras precisas.

La lógica formal permite estudiar la validez de un razonamiento por su estructura, no por la intuición o por el contenido particular de sus frases.

Por ejemplo, los siguientes razonamientos tienen la misma forma:

  • Si llueve, la calle se moja. Llueve. Entonces, la calle se moja.
  • Si el usuario es administrador, puede editar. El usuario es administrador. Entonces, puede editar.

Aunque hablan de situaciones diferentes, ambos siguen el mismo patrón lógico.

2.3 Origen de la lógica clásica

Uno de los antecedentes más importantes de la lógica formal se encuentra en la obra de Aristóteles, en la antigua Grecia. Su estudio de los silogismos buscaba identificar cuándo una conclusión se obtiene correctamente a partir de ciertas premisas.

Un silogismo clásico tiene una estructura como esta:

Todos los humanos son mortales.
Sócrates es humano.
Por lo tanto, Sócrates es mortal.

La importancia de este ejemplo no está solo en su contenido, sino en que muestra cómo una conclusión puede derivarse de reglas generales y hechos concretos.

2.4 De la lógica del lenguaje a la lógica simbólica

Durante muchos siglos, la lógica se expresó principalmente mediante lenguaje natural. Con el tiempo, matemáticos y filósofos comenzaron a usar símbolos para representar afirmaciones y relaciones lógicas con mayor precisión.

Este paso fue fundamental porque el lenguaje natural puede ser ambiguo. La lógica simbólica reduce esa ambigüedad mediante expresiones más exactas.

Lenguaje natural Idea lógica Forma simbólica aproximada
No está activo Negación ¬p
Está activo y tiene permiso Conjunción p ∧ q
Está activo o tiene permiso Disyunción p ∨ q
Si está activo, puede ingresar Implicación p → q

2.5 George Boole y el álgebra booleana

En el siglo XIX, George Boole desarrolló una forma algebraica de trabajar con valores lógicos. En lugar de operar solo con números, su álgebra permitía operar con valores como verdadero y falso.

El álgebra booleana es una de las bases de la computación moderna. Las computadoras trabajan internamente con señales binarias, y muchas decisiones de los programas se expresan mediante operaciones booleanas.

const tieneUsuario = true;
const tienePassword = true;

const formularioCompleto = tieneUsuario && tienePassword;

console.log(formularioCompleto);

En este ejemplo, la variable formularioCompleto almacena un valor booleano: verdadero o falso.

2.6 Frege y la lógica moderna

Gottlob Frege impulsó la lógica moderna al proponer un sistema formal más potente para representar razonamientos matemáticos. Su trabajo ayudó a desarrollar la lógica de predicados, que permite hablar de objetos, propiedades, relaciones y cuantificadores.

Gracias a este enfoque se pueden expresar afirmaciones más ricas que las de la lógica proposicional. Por ejemplo:

  • Todos los usuarios activos pueden ingresar.
  • Existe al menos un producto sin stock.
  • Cada pedido pertenece a un cliente.

Más adelante estudiaremos este tipo de expresiones mediante predicados, variables y cuantificadores.

2.7 Lógica y computación

La relación entre lógica y computación es profunda. Antes de que existieran las computadoras modernas, ya se estudiaban preguntas sobre procedimientos, demostraciones, reglas formales y cálculo mecánico.

La programación heredó muchas de esas ideas:

  • Un algoritmo es una secuencia precisa de pasos.
  • Una condición se evalúa como verdadera o falsa.
  • Un programa puede verse como un sistema de reglas.
  • Una base de datos filtra información usando expresiones lógicas.
  • Un circuito digital combina señales mediante compuertas lógicas.

2.8 Principios básicos de la lógica clásica

La lógica clásica se apoya en varios principios fundamentales. Estos principios ayudan a entender cómo se manejan los valores verdadero y falso.

Principio Idea Ejemplo
Identidad Una proposición es igual a sí misma Si p es verdadero, p es verdadero
No contradicción Una proposición no puede ser verdadera y falsa al mismo tiempo No puede ocurrir p y no p simultáneamente
Tercero excluido Una proposición es verdadera o falsa p o no p

2.9 Validez y verdad

Un punto central de la lógica formal es distinguir entre verdad y validez. La verdad se refiere al valor de una proposición. La validez se refiere a la estructura de un argumento.

Un argumento puede ser válido por su forma, incluso si alguna premisa concreta no describe correctamente la realidad.

Por ejemplo:

Si un número es múltiplo de 4, entonces es par.
12 es múltiplo de 4.
Por lo tanto, 12 es par.

La conclusión se obtiene correctamente a partir de las premisas. Ese tipo de relación será importante cuando estudiemos argumentos e inferencias.

2.10 Lógica formal en código

Cuando escribimos una condición en un programa, estamos creando una pequeña estructura lógica. Si esa estructura no coincide con la regla que queremos representar, el programa puede comportarse mal.

const stock = 15;
const pagoAprobado = true;

if (stock > 0 && pagoAprobado) {
  console.log("La compra puede realizarse");
} else {
  console.log("La compra no puede realizarse");
}

La condición combina dos proposiciones: hay stock y el pago fue aprobado. La compra solo avanza cuando ambas son verdaderas.

2.11 Por qué importa conocer la historia

Conocer la historia de la lógica ayuda a entender que muchos conceptos usados en programación no son invenciones aisladas. Tienen raíces en siglos de estudio sobre razonamiento, lenguaje, demostración y cálculo.

Cuando usamos operadores como &&, || o !, estamos aplicando ideas que provienen de la lógica formal y del álgebra booleana.

2.12 Qué debes recordar de este tema

  • La lógica formal estudia la estructura de los razonamientos.
  • Aristóteles sistematizó formas clásicas de inferencia como el silogismo.
  • La lógica simbólica usa símbolos para reducir ambigüedades del lenguaje natural.
  • El álgebra booleana es una base directa de la computación moderna.
  • La lógica formal permite escribir condiciones, algoritmos y reglas con mayor precisión.

2.13 Conclusión

La lógica formal evolucionó desde el análisis de argumentos hasta convertirse en una herramienta fundamental para la matemática, la computación y la programación. Sus símbolos y reglas permiten expresar razonamientos de manera precisa.

En el próximo tema estudiaremos las proposiciones y los enunciados lógicos.