¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Tablas de verdad y equivalencia lógica

Después de esta lección: Puedo construir una tabla de verdad y decidir si dos enunciados son equivalentes.

Lección de 55 min5 comandosLaboratorio de compiladores y arquitectura: gcc, flex, bison y RISC-V en una VM

Dos reglas que parecen distintas

Una tabla de verdad es una lista con todos los casos posibles de una afirmación lógica y el resultado de cada uno. Con ella decides si dos reglas dicen exactamente lo mismo.

Un servicio de la universidad escribe: «No es cierto que tengas carné y matrícula». Otro programador escribe: «No tienes carné o no tienes matrícula». ¿Dejan pasar a las mismas personas? Con una tabla lo compruebas en cuatro filas.

Al final de esta lección

Nota

Puedo construir una tabla de verdad y decidir si dos enunciados son equivalentes.

Palabras clave

PalabraQué significa
Proposiciónuna frase que es verdadera o falsa, nunca las dos cosas
Conectivouna palabra que une proposiciones: y, o, no, implica
Tabla de verdadla lista de todos los casos con el resultado de cada uno
Implicaciónla promesa «si P, entonces Q»
Equivalentesdos enunciados con la misma tabla de verdad
Tautologíaun enunciado verdadero en todos los casos

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Una proposición es verdadera o falsa

Una proposición es una frase que solo puede ser verdadera o falsa. «Hoy llueve» lo es. «¿Qué hora es?» no lo es.

Los conectivos unen proposiciones. y es verdadero solo si las dos lo son. o es falso solo si las dos son falsas. no cambia verdadero por falso. Una tabla de verdad los recoge en todos los casos.

Ejemplo resuelto: y, o, no

PQP y QP o Qno P
FalsoFalsoFalsoFalsoVerdadero
FalsoVerdaderoFalsoVerdaderoVerdadero
VerdaderoFalsoFalsoVerdaderoFalso
VerdaderoVerdaderoVerdaderoVerdaderoFalso

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Python calcula y, o, no

Comando
python3 -c "print(True and False, True or False, not True)"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

La tabla de no P

Comando
python3 -c "for p in (False, True): print(p, not p)"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Una implicación solo falla en un caso

La implicación «si P, entonces Q» es una promesa. Una tienda dice: «Si gastas más de 50 euros, el envío es gratis».

Solo rompe la promesa quien gasta más de 50 euros y paga el envío. Si gastas 20 euros, la tienda no ha prometido nada, y la promesa sigue en pie. En Python se escribe (not p) or q.

Ejemplo resuelto: si P, entonces Q

P: gastas más de 50Q: envío gratisPromesa
NoNoSe cumple
NoSíSe cumple
SíNoSe rompe
SíSíSe cumple

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Las cuatro filas de la implicación

Comando
python3 -c "for f in ((0,0),(0,1),(1,0),(1,1)): print(f[0], f[1], int(not f[0] or f[1]))"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que, si P es falso, la implicación «si P, entonces Q» también es falsa. No es así. Con P falso nadie ha roto la promesa, y la implicación es verdadera. Solo es falsa con P verdadero y Q falso.

Equivalentes: misma tabla en todas las filas

Dos enunciados son equivalentes si, en cada fila, dan el mismo resultado. Basta una fila distinta para que no lo sean.

Esta revisión fila por fila es una prueba por casos. Comprueba la regla de los dos servicios: «no (P y Q)» frente a «no P o no Q». Las dos columnas coinciden, así que dejan pasar a las mismas personas.

Ejemplo resuelto: la regla de los dos servicios

PQno (P y Q)no P o no Q
FalsoFalsoVerdaderoVerdadero
FalsoVerdaderoVerdaderoVerdadero
VerdaderoFalsoVerdaderoVerdadero
VerdaderoVerdaderoFalsoFalso

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Python comprueba las cuatro filas

Comando
python3 -c "print(all((not (p and q)) == ((not p) or (not q)) for p in (0, 1) for q in (0, 1)))"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Una pareja que no es equivalente

Comando
python3 -c "print(all((not (p and q)) == ((not p) and (not q)) for p in (0, 1) for q in (0, 1)))"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Sobre este laboratorio y su código: Laboratorio de compiladores y arquitectura: gcc, flex, bison y RISC-V en una VM

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.