Saltar al contenido

Lección 9: Contraejemplos

Una sola asignación concreta puede refutar una equivalencia o un argumento. Esta lección intermedia, de unos doce minutos, encuentra contraejemplos, los reproduce, los conserva como pruebas de regresión, y explica qué significa que no haya ninguno.

Nivel: intermedio12 min6 afirmaciones de esta lección fueron confirmadas por el comprobador exacto al compilar

Una sola asignación concreta puede refutar una equivalencia o un argumento. Encuentra contraejemplos, reprodúcelos y consérvalos como pruebas de regresión.

El primer paso compara la regla de entrada prevista con la versión de un colega, member OR (invited AND NOT banned), y zanja la cuestión con una asignación, un socio vetado, en la que las dos difieren. El segundo paso trata de la confianza: cada contraejemplo que muestra el motor lo reproduce un evaluador independiente antes de que lo veas, es una asignación completa que cualquiera puede reproducir, y lo correcto es convertirlo en una prueba. El tercer paso aplica la idea a los argumentos, donde un contraejemplo hace VERDADERAS todas las premisas y FALSA la conclusión, con discount -> member, member, por tanto discount como ejemplo inválido. El cuarto paso dice qué significa que no haya contraejemplo: la afirmación se cumple en todas las asignaciones que permiten los supuestos, que es una demostración dentro de ese alcance y no más allá.

Las tres afirmaciones de equivalencia y validez de la lección se verifican en cada construcción. Los ejercicios piden la asignación que expone la regla alternativa, una predicción de su salida, la clasificación de (A -> B) -> (B -> A), y el veredicto sobre un argumento con un aspersor.

La sección de pruebas se apoya directamente en esta lección: la página sobre contraejemplos como pruebas muestra la fila del primer paso convertida en prueba de regresión, y las páginas sobre pares de independencia generalizan «una fila que importa» a «un par por entrada».

Haz esta lección de forma interactiva en la app

Pasos

1. Una asignación lo decide

La regla de entrada prevista es (member OR invited) AND NOT banned. Un compañero escribió member OR (invited AND NOT banned). ¿Son lo mismo?

No. Con member=TRUE, invited=FALSE, banned=TRUE, la regla prevista deniega la entrada, pero la alternativa la permite: la prohibición no se aplicó a la vía de las socias. Basta un solo contraejemplo para refutar la equivalencia.

intended := (member OR invited) AND NOT banned · salidaalternative := member OR (invited AND NOT banned) · salida

member: la persona es socia; invited: la persona tiene una invitación; banned: la persona tiene prohibida la entrada;

Una asignación lo decide
#memberinvitedbannedintendedalternative
0FALSOFALSOFALSOFALSOFALSO
1FALSOFALSOVERDADEROFALSOFALSO
2FALSOVERDADEROFALSOVERDADEROVERDADERO
3FALSOVERDADEROVERDADEROFALSOFALSO
4VERDADEROFALSOFALSOVERDADEROVERDADERO
5VERDADEROFALSOVERDADEROFALSOVERDADERO
6VERDADEROVERDADEROFALSOVERDADEROVERDADERO
7VERDADEROVERDADEROVERDADEROFALSOVERDADERO

Compara intended con alternative y luego reproduce el contraejemplo en el diagrama.

not-equivalent intended / alternative · se cumple

2. Reprodúcelo y consérvalo

Cada contraejemplo que muestra Tangibool lo reproduce un evaluador independiente antes de que lo veas. Es una asignación completa, así que cualquiera puede reproducirlo.

Conviértelo en una prueba de regresión: conserva las entradas y escribe el resultado esperado a partir del requisito (aquí FALSE: quien tiene la entrada prohibida nunca entra), no a partir de la fórmula que tengas en ese momento.

alternative := member OR (invited AND NOT banned) · salida

member: la persona es socia; invited: la persona tiene una invitación; banned: la persona tiene prohibida la entrada;

Reprodúcelo y consérvalo
#memberinvitedbannedalternative
0FALSOFALSOFALSOFALSO
1FALSOFALSOVERDADEROFALSO
2FALSOVERDADEROFALSOVERDADERO
3FALSOVERDADEROVERDADEROFALSO
4VERDADEROFALSOFALSOVERDADERO
5VERDADEROFALSOVERDADEROVERDADERO
6VERDADEROVERDADEROFALSOVERDADERO
7VERDADEROVERDADEROVERDADEROVERDADERO

Guarda el contraejemplo como prueba de alternative con el valor esperado FALSE y observa cómo falla.

3. Contraejemplos de argumentos

En un argumento, un contraejemplo hace TRUE todas las premisas y FALSE la conclusión.

Premisas discount -> member y member; conclusión discount. El contraejemplo discount=FALSE, member=TRUE muestra una socia sin descuento: las premisas lo permiten, así que la conclusión no se sigue.

p1 — discount -> member · premisap2 — member · premisaconclusion — discount · conclusión

member: la persona es socia; discount: la persona obtiene un descuento;

Contraejemplos de argumentos
#discountmemberp1p2conclusion
0FALSOFALSOVERDADEROFALSOFALSO
1FALSOVERDADEROVERDADEROVERDADEROFALSO
2VERDADEROFALSOFALSOFALSOVERDADERO
3VERDADEROVERDADEROVERDADEROVERDADEROVERDADERO

Comprueba la validez, añade después la premisa member -> discount y vuelve a comprobar.

invalid · se cumple

4. Sin contraejemplo: demostrado, dentro del alcance

Cuando la comprobación exacta no encuentra ningún contraejemplo, la afirmación se cumple para todas las asignaciones que permiten los supuestos indicados. Eso es una demostración, algo que ningún número de ejemplos superados puede dar.

Aquí premium OR member y member coinciden solo gracias al supuesto premium -> member (todo cliente prémium es socio). Desactiva el supuesto y aparecerá un contraejemplo. Si los supuestos son inconsistentes, los resultados solo se cumplen de forma vacua, y Tangibool lo indica.

either := premium OR member · salidajust_member := member · salida

premium: el cliente tiene un plan prémium; member: la persona es socia;

Sin contraejemplo: demostrado, dentro del alcance
#premiummembereitherjust_memberk1Ámbito
0FALSOFALSOFALSOFALSOVERDADEROen ámbito
1FALSOVERDADEROVERDADEROVERDADEROVERDADEROen ámbito
2VERDADEROFALSOVERDADEROFALSOFALSOexcluida
3VERDADEROVERDADEROVERDADEROVERDADEROVERDADEROen ámbito

Compara either con just_member, luego desactiva el supuesto y vuelve a comparar.

equivalent either / just_member · se cumple

Ejercicios

  1. Encuentra una asignación en la que la alternativa deje entrar a alguien que la regla prevista rechaza. (find-assignment)
  2. Para alternative := member OR (invited AND NOT banned), predice la salida para una socia con la entrada prohibida y sin invitación: member=TRUE, invited=FALSE, banned=TRUE. (predict-output)
  3. ¿(A -> B) -> (B -> A) vale siempre TRUE? Clasifícala. (classify)
  4. Premisas: sprinkler -> wet_lawn y wet_lawn. Conclusión: sprinkler. ¿Válido o no? Si no lo es, da un contraejemplo. (argument-validity)

Haz esta lección de forma interactiva en la app

Preguntas

¿Un contraejemplo puede estar equivocado?

El motor reproduce cada testigo con un evaluador independiente antes de mostrarlo, y etiqueta el resultado si la reproducción falla. Lo que no puede juzgar es si la asignación es realista, y ahí entran los supuestos.

¿Y si dos fórmulas son equivalentes?

Entonces no hay contraejemplo, y el comprobador lo dice después de examinar todas las filas dentro del alcance. Eso es una demostración de equivalencia dentro de los supuestos enunciados, el punto del cuarto paso.

Relacionado

Herramientas

Véase también

Lecciones

Generado a partir del motor de Tangibool, semántica tangibool-semantics/1, motor 1.0.0, compilación . Cada tabla, mapa, simplificación y veredicto de estas páginas lo calculó el motor de Tangibool al compilar el sitio, y cada afirmación la volvió a comprobar el mismo verificador exacto que usa la app. Los límites se indican donde aplican. © 2026 Foreranger LTD.