Capítulo 6 — ¿Cómo se demuestra una afirmación?
En los capítulos anteriores ya hemos demostrado muchas cosas. Probamos que ciertas fórmulas eran equivalentes, que algunas relaciones definían funciones, que dos conjuntos coincidían, que ciertos objetos existían y que otros eran únicos. En el capítulo 5, además, seguimos cadenas de consecuencias dentro de una estructura axiomática y vimos que una regla familiar no puede utilizarse antes de haberla justificado.
Sin embargo, todavía no hemos detenido la marcha para estudiar las formas de demostración que estaban actuando en esos argumentos. A veces partíamos de las hipótesis y avanzábamos hasta la conclusión. Otras veces separábamos dos direcciones. En algunos problemas dividíamos la situación en casos; en otros suponíamos que la conclusión fallaba y observábamos qué se volvía imposible. Cuando el objetivo era existencial, buscábamos un objeto; cuando pedía unicidad, comparar un candidato con cualquier otro era parte esencial de la tarea.
Este capítulo hará explícita esa arquitectura.
La pregunta no será simplemente «¿qué métodos de prueba existen?». Una lista de nombres —prueba directa, contraposición, contradicción, casos— puede aprenderse con rapidez y, aun así, servir de muy poco. Antes de escoger una técnica debemos comprender qué afirmación tenemos delante y qué tendría que quedar establecido para poder decir que está demostrada.
Ése será el principio rector:
La forma del objetivo orienta la arquitectura de la prueba, pero no proporciona por sí sola el contenido matemático que la completa.
Saber que una afirmación tiene la forma \(P\Rightarrow Q\) nos dice que debemos justificar el paso desde \(P\) hasta \(Q\). No nos dice qué definición, identidad, estimación o idea intermedia hará posible ese paso. Reconocer la arquitectura evita empezar a ciegas; descubrir el contenido que la llena será una cuestión distinta, que retomaremos con mayor profundidad en el capítulo 7.
Comenzaremos, por tanto, antes de cualquier técnica particular: aprenderemos a leer una afirmación como una lista de obligaciones.
6.1. ¿Qué obliga a hacer la forma del objetivo?
Consideremos una afirmación sencilla:
Para todo \(x\in A\), si \(P(x)\), entonces \(Q(x)\).
Podemos escribirla como
\[ \forall x\in A\;\bigl(P(x)\Rightarrow Q(x)\bigr). \]
Antes de intentar demostrarla, conviene preguntarnos qué tendría que ocurrir para que el argumento fuese completo.
La cuantificación universal nos impide escoger un elemento especialmente favorable. Debemos trabajar con un \(x\in A\) arbitrario. La implicación nos permite suponer \(P(x)\) y nos obliga a llegar a \(Q(x)\). Por tanto, una arquitectura natural es:
\[ \boxed{ \begin{aligned} x\in A\text{ arbitrario} &\longrightarrow P(x)\text{ como hipótesis}\\ &\longrightarrow Q(x)\text{ como objetivo}. \end{aligned} } \]
Esto todavía no es una prueba. Es el esqueleto de una prueba posible.
Entre \(P(x)\) y \(Q(x)\) puede haber un paso inmediato o diez ideas difíciles. Tal vez necesitemos desplegar una definición, introducir un objeto auxiliar, usar un teorema anterior o separar casos. La forma lógica nos ha dicho dónde empezar y qué final necesitamos alcanzar; no ha construido el puente.
Leer la conclusión antes de calcular
Una dificultad frecuente al comenzar a demostrar es empezar a manipular expresiones antes de decidir qué se está tratando de establecer. Supongamos que tenemos conjuntos \(A,B,C\) y queremos demostrar
\[ A\cap(B\cup C)\subseteq (A\cap B)\cup C. \]
Podríamos comenzar a dibujar diagramas o a aplicar leyes de conjuntos. Pero la forma del objetivo ya contiene una instrucción más elemental.
Demostrar
\[ X\subseteq Y \]
significa demostrar
\[ \forall x\;(x\in X\Rightarrow x\in Y). \]
Por ello, nuestro trabajo comienza así:
- tomar un elemento arbitrario \(x\in A\cap(B\cup C)\);
- utilizar esa pertenencia como dato;
- demostrar \(x\in(A\cap B)\cup C\).
Ahora sí podemos desplegar las definiciones:
\[ x\in A\cap(B\cup C) \]
nos dice simultáneamente que
\[ x\in A \]
y que
\[ x\in B\cup C. \]
La segunda pertenencia significa que ocurre al menos una de estas alternativas:
\[ x\in B \qquad\text{o}\qquad x\in C. \]
Si \(x\in B\), entonces junto con \(x\in A\) obtenemos \(x\in A\cap B\), y por tanto
\[ x\in(A\cap B)\cup C. \]
Si \(x\in C\), la misma conclusión se obtiene directamente. En ambos casos llegamos al conjunto de destino.
La demostración completa podría escribirse sin toda esta conversación preparatoria:
Demostración. Sea \(x\in A\cap(B\cup C)\). Entonces \(x\in A\) y \(x\in B\cup C\). Si \(x\in B\), entonces \(x\in A\cap B\) y, por tanto, \(x\in(A\cap B)\cup C\). Si \(x\in C\), también \(x\in(A\cap B)\cup C\). Luego
\[ A\cap(B\cup C)\subseteq(A\cap B)\cup C. \]
\(\square\)
Lo importante aquí no es la identidad de conjuntos. Es la disciplina previa: la inclusión nos dijo qué forma debía tener la prueba. La disyunción apareció después, al desplegar la pertenencia a una unión, y por eso surgió naturalmente una prueba por casos.
Una forma puede contener otras formas
Las obligaciones de prueba suelen estar anidadas.
En el ejemplo anterior, el objetivo exterior era una inclusión. Eso produjo una implicación universal. Después, una de las hipótesis se convirtió en una disyunción:
\[ x\in B\cup C \quad\Longleftrightarrow\quad x\in B\ \text{o}\ x\in C. \]
El argumento tuvo entonces una estructura dentro de otra:
\[ \text{universal} \;\supset\; \text{implicación} \;\supset\; \text{casos}. \]
Esta observación será importante durante todo el capítulo. Una demostración real rara vez consiste en aplicar una única etiqueta de principio a fin. Podemos comenzar con una prueba directa y encontrar dentro de ella una existencia que requiera construir un testigo; o iniciar una demostración de unicidad y necesitar una contradicción local; o probar una equivalencia y usar técnicas distintas en cada dirección.
Por eso conviene hablar de arquitectura y no sólo de «método».
Si el objetivo es una igualdad
Supongamos ahora que queremos demostrar
\[ A=B. \]
¿Qué exige exactamente esta conclusión?
Para conjuntos, la igualdad significa que tienen los mismos elementos. Una manera operativa de probarlo es establecer las dos inclusiones:
\[ A\subseteq B \qquad\text{y}\qquad B\subseteq A. \]
Cada inclusión vuelve a convertirse en una implicación sobre un elemento arbitrario. La arquitectura completa es, por tanto,
\[ \boxed{ A=B \quad\Longleftarrow\quad \bigl(A\subseteq B\bigr)\ \text{y}\ \bigl(B\subseteq A\bigr). } \]
Obsérvese que no basta demostrar sólo una dirección. De
\[ A\subseteq B \]
no se sigue que \(A=B\). El conjunto \(A\) podría ser una parte propia de \(B\).
La misma idea aparece en un bicondicional:
\[ P\Longleftrightarrow Q. \]
Para demostrarlo debemos justificar
\[ P\Rightarrow Q \]
y también
\[ Q\Rightarrow P. \]
Las dos direcciones pueden ser muy distintas. Que una resulte inmediata no vuelve innecesaria la otra.
Más adelante estudiaremos esta estructura con detalle. Por ahora basta retener la regla de lectura: cuando la conclusión afirma equivalencia, debemos identificar todas las direcciones que forman parte de ella.
Si el objetivo es existencial
Consideremos ahora
\[ \exists x\in A\;P(x). \]
Aquí la obligación cambia por completo. Ya no tenemos que tratar a todos los elementos de \(A\). Basta encontrar uno que funcione.
Pero hay dos tareas, no una:
- producir o justificar un candidato \(a\in A\);
- verificar que cumple \(P(a)\).
Esquemáticamente,
\[ \boxed{ \text{elegir }a \quad+\quad a\in A \quad+\quad P(a). } \]
Un candidato sin verificación no es una prueba.
Por ejemplo, sea \(f:\mathbb R\to\mathbb R\) dada por
\[ f(x)=x^2+1. \]
Queremos probar que existe un real cuya imagen es \(5\):
\[ \exists x\in\mathbb R\;(f(x)=5). \]
Podemos elegir \(x=2\). Pero la frase «tomemos \(x=2\)» no completa el argumento. Debemos comprobar:
\[ 2\in\mathbb R \]
y
\[ f(2)=2^2+1=5. \]
Entonces sí tenemos un testigo válido.
En este ejemplo encontramos el testigo explícitamente. No todas las pruebas de existencia serán así. En §6.7 distinguiremos cuidadosamente entre una construcción, una elección apoyada en resultados previos y una existencia que se obtiene sin exhibir de manera efectiva el objeto.
Si el objetivo exige unicidad
La notación
\[ \exists!x\in A\;P(x) \]
contiene dos obligaciones diferentes:
\[ \text{existe al menos uno} \]
y
\[ \text{existe a lo sumo uno}. \]
En símbolos, podemos organizarla como
\[ \exists x\in A\;P(x) \]
junto con
\[ \forall x,y\in A\; \bigl(P(x)\land P(y)\Rightarrow x=y\bigr). \]
Encontrar un candidato sólo resuelve la primera mitad.
Esta separación ya apareció en el capítulo 5 con neutros, inversos y soluciones de ecuaciones. Ahora la convertimos en arquitectura general. Una demostración de unicidad suele comenzar suponiendo que hay dos candidatos \(x\) e \(y\) que cumplen la misma propiedad y tratando de demostrar
\[ x=y. \]
De nuevo, la forma del objetivo no nos dice cómo obtendremos esa igualdad. Tal vez usemos cancelación, una desigualdad, una propiedad de orden, una inyectividad o una contradicción. Pero sí nos dice qué debemos comparar.
Si queremos refutar una universal
La palabra «demostrar» no siempre significa confirmar la afirmación que alguien propone. A veces la tarea correcta es mostrar que es falsa.
Supongamos que se afirma
\[ \forall x\in A\;P(x). \]
Su negación es
\[ \exists x\in A\;\neg P(x). \]
Por tanto, para refutar la universal basta encontrar un solo elemento del dominio que viole la propiedad y verificar la violación.
Consideremos la afirmación:
Para toda función \(f:\mathbb R\to\mathbb R\), si \(f(0)=0\), entonces \(f\) es inyectiva.
Para refutarla necesitamos una función con dos características:
- que satisfaga la hipótesis \(f(0)=0\);
- que no sea inyectiva.
Tomemos
\[ f(x)=x^2. \]
Se cumple
\[ f(0)=0. \]
Pero
\[ f(1)=1=f(-1), \]
aunque
\[ 1\ne-1. \]
Por tanto, \(f\) no es inyectiva. Hemos construido un contraejemplo completo.
No bastaría escribir simplemente «\(f(x)=x^2\)». Un contraejemplo también tiene obligaciones: debe pertenecer al dominio de la afirmación, satisfacer sus hipótesis y violar exactamente su conclusión.
Hipótesis disponibles y objetivo pendiente
Una forma útil de leer cualquier problema de demostración es separar dos columnas conceptuales:
\[ \boxed{ \text{qué puedo usar} \qquad\Big|\qquad \text{qué debo obtener}. } \]
En la primera columna entran:
- hipótesis explícitas;
- definiciones ya activadas por esas hipótesis;
- resultados anteriores que realmente sean aplicables;
- propiedades del dominio que hayan sido establecidas.
En la segunda columna entra la forma precisa de la conclusión.
Esta separación parece elemental, pero previene errores profundos. Si la conclusión es «\(f\) es inyectiva», no sirve demostrar que \(f\) es sobreyectiva. Si el objetivo es una igualdad de conjuntos, una sola inclusión no basta. Si pedimos existencia, una descripción sin testigo o sin argumento de existencia queda incompleta. Si pedimos unicidad, verificar un candidato no excluye otros.
También ayuda a detectar razonamientos circulares. Si colocamos silenciosamente en la columna de «lo que puedo usar» aquello mismo que estamos intentando demostrar, el argumento puede parecer fluido aunque no haya avanzado.
Una prueba no es la historia de cómo encontramos la idea
Hay una última distinción importante.
El camino mediante el cual descubrimos una demostración puede incluir tanteos, ejemplos, cálculos fallidos, dibujos, conjeturas y cambios de estrategia. La prueba final no necesita reproducir toda esa historia. Debe presentar una cadena verificable que vaya desde los datos aceptados hasta la conclusión.
Por ejemplo, quizá descubramos una inclusión dibujando varios diagramas. El diagrama puede sugerir la afirmación y ayudarnos a encontrar una ruta. Pero si el objetivo es demostrar una inclusión entre conjuntos abstractos, la prueba final debe justificar por qué todo elemento del primer conjunto pertenece al segundo.
De manera análoga, comprobar veinte valores puede sugerir una proposición universal, pero no sustituye el argumento para un elemento arbitrario.
En el capítulo 7 volveremos a la pregunta del descubrimiento. Aquí trabajaremos principalmente con la arquitectura verificable de la prueba terminada.
Antes de escribir una prueba, identifica:
- el dominio de los objetos;
- las hipótesis que puedes usar;
- la forma exacta del objetivo;
- las obligaciones que esa forma genera.
Sólo después tiene sentido preguntar qué estrategia matemática permitirá cumplirlas.
Un pequeño mapa de obligaciones
Sin convertirlo en un recetario, podemos resumir las formas que aparecerán en este capítulo:
| Objetivo | Obligación inicial |
|---|---|
| \(\forall x\in A\,P(x)\) | tomar \(x\in A\) arbitrario y demostrar \(P(x)\) |
| \(P\Rightarrow Q\) | suponer \(P\) y demostrar \(Q\) |
| \(P\Leftrightarrow Q\) | demostrar \(P\Rightarrow Q\) y \(Q\Rightarrow P\) |
| \(A\subseteq B\) | tomar \(x\in A\) arbitrario y demostrar \(x\in B\) |
| \(A=B\) | demostrar \(A\subseteq B\) y \(B\subseteq A\) |
| \(\exists x\in A\,P(x)\) | justificar un testigo \(a\in A\) y verificar \(P(a)\) |
| \(\exists!x\in A\,P(x)\) | probar existencia y además unicidad |
| refutar \(\forall x\in A\,P(x)\) | producir \(a\in A\) con \(\neg P(a)\) |
La tabla no decide por nosotros. Sólo transforma una frase matemática en una tarea precisa.
Comprobación. Supongamos que queremos demostrar:
Si \(f:A\to B\) y \(g:B\to C\) son inyectivas, entonces \(g\circ f:A\to C\) es inyectiva.
¿Cuál es la obligación inmediata? ¿Qué datos podemos usar?
Respuesta razonada. El objetivo «\(g\circ f\) es inyectiva» debe desplegarse antes de hacer cálculos. Tomamos \(x,y\in A\) y suponemos
\[ (g\circ f)(x)=(g\circ f)(y). \]
Debemos demostrar \(x=y\).
La hipótesis de que \(g\) es inyectiva permite pasar de
\[ g(f(x))=g(f(y)) \]
a
\[ f(x)=f(y). \]
Después, la inyectividad de \(f\) permite concluir
\[ x=y. \]
La prueba completa es breve porque, una vez desplegado el objetivo, las hipótesis encajan exactamente con las dos etapas necesarias. La arquitectura no inventó las propiedades de \(f\) y \(g\), pero permitió ver cómo debían utilizarse.
Lo que esta lectura todavía no resuelve
Algunos problemas se vuelven casi automáticos una vez que entendemos su forma. Otros no.
Saber que debemos demostrar \(Q\) a partir de \(P\) no nos dice siempre qué hacer con \(P\). Saber que necesitamos un testigo no nos dice dónde encontrarlo. Saber que dos objetos deben ser iguales no nos dice qué comparación será útil.
Ahí comienza la matemática que no cabe en una tabla.
En las próximas secciones estudiaremos varias arquitecturas fundamentales: prueba directa, dos direcciones, contraposición, contradicción, casos, existencia y unicidad. Las aprenderemos como maneras de organizar obligaciones, no como comandos que se aplican mecánicamente.
Comenzaremos con la más transparente: partir de las hipótesis y avanzar hasta la conclusión.
6.2. Prueba directa: avanzar desde lo que sabemos
La arquitectura más inmediata para una implicación
\[ P\Rightarrow Q \]
consiste en aceptar \(P\) como hipótesis y construir, a partir de ella, una cadena de razones que termine en \(Q\). A esta forma de argumento la llamaremos prueba directa.
El esquema mínimo es
\[ \boxed{ \begin{aligned} P &\longrightarrow \text{consecuencias justificadas}\\ &\longrightarrow Q. \end{aligned} } \]
La palabra «directa» puede inducir a error si la entendemos como «fácil», «corta» o «sin ideas auxiliares». Una prueba directa puede ser larga y puede necesitar definiciones, resultados anteriores, construcciones intermedias o varios pasos ingeniosos. Lo que la caracteriza es otra cosa: trabajamos bajo las hipótesis de la afirmación y avanzamos hacia la conclusión, sin reemplazar globalmente la implicación por una forma lógicamente equivalente.
Esto enlaza con una distinción del capítulo anterior. Una definición puede proporcionarnos información apenas sabemos que un objeto la satisface. En una prueba directa, buena parte del trabajo consiste precisamente en preguntar:
¿Qué puedo extraer de las hipótesis y qué tendría que obtener para reconocer la conclusión?
No hay que demostrar la hipótesis
Supongamos que queremos probar
Si una función \(f:A\to B\) es inyectiva y \(f(x)=f(y)\), entonces \(x=y\).
La afirmación parece casi tautológica porque la conclusión forma parte de la definición de inyectividad. Pero conviene observar la arquitectura.
No debemos demostrar que \(f\) es inyectiva. Eso es una hipótesis. Tampoco debemos demostrar que \(f(x)=f(y)\). También se nos concede dentro del antecedente. Nuestro trabajo comienza después de aceptar ambos datos.
Desplegamos la definición:
\[ \begin{aligned} f\text{ es inyectiva} \quad\Longrightarrow\quad &\forall u,v\in A,\\ &f(u)=f(v)\Rightarrow u=v. \end{aligned} \]
Aplicándola a \(u=x\) y \(v=y\), la igualdad \(f(x)=f(y)\) produce directamente \(x=y\).
La demostración puede escribirse en una línea, pero la lección es más general: en una implicación no tenemos que justificar el antecedente; tenemos que justificar que, siempre que el antecedente se cumple, la conclusión también se cumple.
Esto evita un error frecuente. Si queremos demostrar
\[ P\Rightarrow Q, \]
no sirve comenzar demostrando \(P\) para un caso especial y después demostrar \(Q\) en ese mismo caso. Eso podría establecer que \(P\) y \(Q\) son verdaderas en una situación concreta, pero todavía no justificaría la dependencia lógica entre ellas.
Del dato a la meta mediante definiciones
Consideremos ahora un ejemplo donde la conclusión no aparece de inmediato.
Sean \(A,B,C\) conjuntos y supongamos que
\[ A\subseteq B. \]
Queremos probar
\[ A\cap C\subseteq B\cap C. \]
Leemos primero el objetivo. Para demostrar la inclusión, tomamos un elemento arbitrario
\[ x\in A\cap C \]
y debemos obtener
\[ x\in B\cap C. \]
La hipótesis de pertenencia nos da dos datos:
\[ x\in A \qquad\text{y}\qquad x\in C. \]
La hipótesis global \(A\subseteq B\) transforma el primero en
\[ x\in B. \]
Ahora tenemos exactamente las dos condiciones necesarias para concluir
\[ x\in B\cap C. \]
Así queda probado el resultado.
Proposición. Si \(A\subseteq B\), entonces, para todo conjunto \(C\),
\[ A\cap C\subseteq B\cap C. \]
Demostración. Sea \(x\in A\cap C\). Entonces \(x\in A\) y \(x\in C\). Como \(A\subseteq B\), se sigue que \(x\in B\). Por tanto, \(x\in B\cap C\). Puesto que \(x\) era arbitrario,
\[ A\cap C\subseteq B\cap C. \]
\(\square\)
La prueba es directa, pero contiene varias capas: una cuantificación universal implícita sobre los elementos, la definición de inclusión y la definición de intersección. Ninguna capa fue añadida por intuición ornamental; cada una apareció porque alguna hipótesis o algún objetivo la exigía.
Las flechas de una prueba no tienen que ser equivalencias
En una prueba directa solemos encadenar consecuencias:
\[ P\Rightarrow R_1\Rightarrow R_2\Rightarrow\cdots\Rightarrow Q. \]
No necesitamos que cada paso pueda recorrerse en sentido contrario.
Ésta es una diferencia importante entre una cadena de consecuencias y una cadena de equivalencias. Si desde \(P\) obtenemos \(R\), y desde \(R\) obtenemos \(Q\), entonces hemos demostrado que \(P\) implica \(Q\), aunque \(Q\) no implique \(R\) ni \(R\) implique \(P\).
Por ejemplo, de
\[ x>3 \]
podemos concluir
\[ x>0 \]
y de ahí
\[ x^2>0. \]
La cadena
\[ x>3\Rightarrow x>0\Rightarrow x^2>0 \]
es perfectamente útil para avanzar. Pero no podemos invertirla: \(x^2>0\) no implica \(x>0\), pues también vale para números negativos no nulos.
Una prueba directa puede, por supuesto, contener equivalencias locales. Lo que no debemos hacer es tratarlas como requisito universal. Para probar una implicación sólo necesitamos preservar la verdad hacia adelante desde las hipótesis hasta la conclusión.
Un ejemplo con funciones: usar una propiedad dentro de otra
Sean
\[ f:A\to B \qquad\text{y}\qquad g:B\to C. \]
Supongamos que la composición
\[ g\circ f:A\to C \]
es inyectiva. Queremos demostrar que \(f\) es inyectiva.
Antes de comenzar, desplegamos el objetivo. Debemos tomar \(x,y\in A\), suponer
\[ f(x)=f(y) \]
y demostrar
\[ x=y. \]
A partir de la igualdad de imágenes podemos aplicar \(g\) a ambos lados:
\[ g(f(x))=g(f(y)). \]
Esto equivale a
\[ (g\circ f)(x)=(g\circ f)(y). \]
Como \(g\circ f\) es inyectiva, concluimos
\[ x=y. \]
Ya hemos satisfecho la definición de inyectividad de \(f\).
Proposición. Si \(g\circ f\) es inyectiva, entonces \(f\) es inyectiva.
Demostración. Sean \(x,y\in A\) y supongamos \(f(x)=f(y)\). Aplicando \(g\) a ambos miembros obtenemos
\[ g(f(x))=g(f(y)), \]
es decir,
\[ (g\circ f)(x)=(g\circ f)(y). \]
La composición es inyectiva, luego \(x=y\). Por tanto, \(f\) es inyectiva. \(\square\)
Aquí aparece una característica importante de la prueba directa: una hipótesis puede no ser utilizable en su forma original hasta que construyamos la situación a la que se aplica. La inyectividad de \(g\circ f\) habla de igualdades entre valores de la composición. Partíamos, en cambio, de una igualdad entre valores de \(f\). Aplicar \(g\) fue el paso que hizo coincidir nuestros datos con la forma de la hipótesis disponible.
No toda hipótesis tiene que usarse inmediatamente
En una demostración algo más larga, algunas hipótesis permanecen inactivas durante varios pasos. Esto no significa que sean irrelevantes.
Supongamos que \(R\) es una relación sobre un conjunto \(A\) y que sabemos que \(R\) es simétrica y transitiva. Queremos demostrar:
Si \(xRy\), entonces \(xRx\).
La hipótesis particular es
\[ xRy. \]
La simetría nos da
\[ yRx. \]
Ahora disponemos simultáneamente de
\[ xRy \qquad\text{y}\qquad yRx. \]
La transitividad puede aplicarse con el elemento intermedio \(y\), y obtenemos
\[ xRx. \]
La prueba completa es:
Demostración. Supongamos \(xRy\). Como \(R\) es simétrica, \(yRx\). Por transitividad, de \(xRy\) y \(yRx\) se sigue \(xRx\). \(\square\)
La hipótesis de transitividad estaba disponible desde el comienzo, pero no era aplicable hasta producir una segunda relación mediante simetría. Esto ilustra una regla útil: una hipótesis puede necesitar que fabriquemos primero las condiciones que permiten activarla.
Una afirmación universal añade una capa
Muchas proposiciones matemáticas tienen la forma
\[ \forall x\in A\; \bigl(P(x)\Rightarrow Q(x)\bigr). \]
Una prueba directa debe respetar ambas capas:
- elegir \(x\in A\) arbitrario;
- suponer \(P(x)\);
- demostrar \(Q(x)\).
La palabra arbitrario importa. No significa que elijamos un objeto al azar, sino que no utilizaremos ninguna propiedad especial que no esté garantizada para todo elemento del dominio considerado.
Por ejemplo, queremos demostrar:
Para todo real \(x\), si \(x\ge 2\), entonces \(x^2\ge 2x\).
Sea \(x\in\mathbb R\) y supongamos
\[ x\ge2. \]
Entonces
\[ x-2\ge0. \]
Además, de \(x\ge2\) se sigue \(x\ge0\). El producto de dos reales no negativos es no negativo, de modo que
\[ x(x-2)\ge0. \]
Al desarrollar,
\[ x^2-2x\ge0, \]
y por tanto
\[ x^2\ge2x. \]
Hemos usado propiedades del orden de los reales. No podríamos trasladar esta prueba mecánicamente a un cuerpo arbitrario: allí la relación \(\ge\) puede no estar siquiera definida. El dominio no es un dato decorativo; determina qué reglas forman parte de la caja de herramientas disponible.
Elegir una representación que haga visible la conclusión
En algunos argumentos directos, el paso decisivo consiste en reescribir una hipótesis de una forma que se conecte con la definición del objetivo.
Sea \(n\) un entero. Supongamos que existen enteros \(a\) y \(b\) tales que
\[ n=6a+10b. \]
Queremos demostrar que \(n\) es par.
La conclusión «\(n\) es par» significa que debemos exhibir un entero \(k\) con
\[ n=2k. \]
La hipótesis ya contiene casi esa forma:
\[ n=6a+10b =2(3a+5b). \]
Como \(a,b\in\mathbb Z\), también
\[ 3a+5b\in\mathbb Z. \]
Tomando
\[ k=3a+5b, \]
obtenemos
\[ n=2k. \]
Por definición, \(n\) es par.
El argumento no consistió simplemente en «hacer álgebra». La definición de paridad fijó la forma que queríamos alcanzar, y la factorización por \(2\) reorganizó la hipótesis para que esa forma apareciera.
Podemos resumir este tipo de movimiento como
\[ \begin{aligned} \text{hipótesis} &\longrightarrow \text{representación útil}\\ &\longrightarrow \text{definición del objetivo}. \end{aligned} \]
¿Cuándo se termina una prueba directa?
Una demostración termina cuando hemos satisfecho exactamente la obligación que generaba el objetivo.
Si el objetivo era
\[ f\text{ es inyectiva}, \]
terminamos cuando, para entradas arbitrarias, hemos demostrado
\[ f(x)=f(y)\Rightarrow x=y. \]
Si el objetivo era
\[ A\subseteq B, \]
terminamos cuando un elemento arbitrario de \(A\) ha quedado demostrado como elemento de \(B\).
Si el objetivo era
\[ n\text{ es par}, \]
terminamos cuando hemos producido la representación exigida por la definición.
Seguir calculando después de haber alcanzado la conclusión puede ocultar dónde terminó realmente el argumento. Detenerse en el punto correcto también forma parte de escribir una prueba legible.
Qué no es una prueba directa completa
Comparemos tres intentos de demostrar:
Si \(g\circ f\) es inyectiva, entonces \(f\) es inyectiva.
Intento A.
Como \(g\circ f\) es inyectiva, entonces \(f\) es inyectiva.
La conclusión puede ser correcta, pero falta el vínculo. Se ha repetido esencialmente el enunciado sin demostrarlo.
Intento B.
Sean \(x,y\in A\). Como \(g\circ f\) es inyectiva, tenemos \(x=y\).
Aquí la hipótesis se usa fuera de sus condiciones de aplicación. La inyectividad no permite concluir \(x=y\) para dos entradas arbitrarias: requiere primero saber que sus imágenes bajo \(g\circ f\) son iguales.
Intento C.
Sean \(x,y\in A\) y supongamos \(f(x)=f(y)\). Entonces \(g(f(x))=g(f(y))\), así que \((g\circ f)(x)=(g\circ f)(y)\). Como \(g\circ f\) es inyectiva, \(x=y\).
Éste sí cumple la obligación exacta de demostrar que \(f\) es inyectiva.
La diferencia entre B y C es pequeña en longitud y enorme en lógica. C explicita la condición que permite activar la hipótesis decisiva.
Para demostrar directamente
\[ P\Rightarrow Q, \]
trabajamos suponiendo \(P\) y construimos una cadena de inferencias justificadas hasta obtener \(Q\).
La cadena puede usar definiciones, resultados anteriores y objetos auxiliares. Sus pasos no tienen que ser equivalencias; basta que preserven correctamente la consecuencia hacia la conclusión.
Comprobación
Sean \(f:A\to B\) y \(g:B\to C\). Decide si la siguiente afirmación puede demostrarse directamente con los datos disponibles:
Si \(f\) es sobreyectiva y \(g\) es sobreyectiva, entonces \(g\circ f\) es sobreyectiva.
¿Qué obligación genera el objetivo y cómo se activan las dos hipótesis?
Respuesta razonada. Para probar que \(g\circ f\) es sobreyectiva debemos tomar un elemento arbitrario
\[ c\in C \]
y encontrar \(a\in A\) tal que
\[ (g\circ f)(a)=c. \]
Como \(g\) es sobreyectiva, para ese \(c\) existe algún \(b\in B\) con
\[ g(b)=c. \]
Ahora usamos la sobreyectividad de \(f\): para ese \(b\) existe algún \(a\in A\) tal que
\[ f(a)=b. \]
Entonces
\[ (g\circ f)(a) =g(f(a)) =g(b) =c. \]
Como \(c\) era arbitrario, \(g\circ f\) es sobreyectiva.
La prueba avanza de manera directa, pero contiene dos elecciones existenciales anidadas. La forma global es una implicación; dentro de ella, la definición del objetivo nos obliga a construir una preimagen para un elemento arbitrario del codominio.
Lo que la prueba directa deja abierto
Cuando las hipótesis se despliegan y conducen de manera natural a la conclusión, la prueba directa suele ser la arquitectura más transparente. Pero no siempre ocurre así.
Podemos encontrarnos con una implicación en la que trabajar desde \(P\) no revela ninguna ruta razonable hacia \(Q\), mientras que negar \(Q\) produce información mucho más concreta. En ese momento no cambiaremos la afirmación que queremos demostrar: cambiaremos la forma equivalente desde la que la atacamos.
Antes de llegar allí, estudiaremos otra obligación fundamental que ya apareció varias veces: demostrar una afirmación que exige dos direcciones.
6.3. Dos direcciones: bicondicionales y doble inclusión
Algunos objetivos no piden llegar a una conclusión en una sola dirección. Piden demostrar que dos condiciones contienen exactamente la misma información o que dos conjuntos tienen exactamente los mismos elementos.
En esos casos aparece una obligación doble.
Para un bicondicional,
\[ P\Longleftrightarrow Q, \]
debemos demostrar
\[ P\Rightarrow Q \]
y
\[ Q\Rightarrow P. \]
Para una igualdad de conjuntos,
\[ A=B, \]
una estrategia fundamental es demostrar
\[ A\subseteq B \]
y
\[ B\subseteq A. \]
Las dos estructuras son cercanas porque la igualdad de conjuntos puede leerse elemento a elemento:
\[ A=B \quad\Longleftrightarrow\quad \forall x\;(x\in A\Longleftrightarrow x\in B). \]
Pero conviene no confundirlas. El símbolo \(=\) expresa igualdad de objetos; el símbolo \(\Longleftrightarrow\) conecta proposiciones. La relación entre ambos aparece porque podemos traducir la igualdad de conjuntos en equivalencia de condiciones de pertenencia.
Probar una dirección no prueba la equivalencia
Supongamos que queremos demostrar:
Para una función \(f:A\to B\), las siguientes condiciones son equivalentes:
- \(f\) es inyectiva;
- para todos \(x,y\in A\), si \(x\ne y\), entonces \(f(x)\ne f(y)\).
La primera condición se expresa como
\[ f(x)=f(y)\Rightarrow x=y. \]
La segunda, como
\[ x\ne y\Rightarrow f(x)\ne f(y). \]
Estas dos implicaciones son contrapositivas entre sí. Por tanto, sabemos por lógica que son equivalentes.
Pero si el ejercicio pide demostrar la equivalencia, escribir sólo
Si \(f\) es inyectiva y \(x\ne y\), entonces \(f(x)\ne f(y)\)
no basta. Eso establece una dirección:
\[ (1)\Rightarrow(2). \]
Todavía falta justificar
\[ (2)\Rightarrow(1). \]
Veamos ambas.
De (1) a (2). Supongamos que \(f\) es inyectiva y tomemos \(x,y\in A\) con \(x\ne y\). Si ocurriera \(f(x)=f(y)\), la inyectividad implicaría \(x=y\), contradiciendo la hipótesis. Por tanto,
\[ f(x)\ne f(y). \]
De (2) a (1). Supongamos ahora que
\[ x\ne y\Rightarrow f(x)\ne f(y) \]
para todos \(x,y\in A\). Queremos demostrar que \(f\) es inyectiva. Tomemos \(x,y\in A\) y supongamos
\[ f(x)=f(y). \]
Si \(x\ne y\), la hipótesis daría
\[ f(x)\ne f(y), \]
lo cual contradice la igualdad que acabamos de suponer. Luego
\[ x=y. \]
Así, \(f\) es inyectiva.
La equivalencia ha quedado probada porque hemos cerrado las dos obligaciones.
Las direcciones pueden necesitar ideas distintas
Nada obliga a que
\[ P\Rightarrow Q \]
y
\[ Q\Rightarrow P \]
se demuestren del mismo modo.
Consideremos la siguiente caracterización de los subconjuntos estables introducidos en el capítulo 5. Sea \(f:A\to A\) y \(S\subseteq A\). Recordemos que \(S\) es estable bajo \(f\) cuando
\[ \forall x\in S\;(f(x)\in S). \]
Queremos demostrar:
\(S\) es estable bajo \(f\) si y sólo si
\[ f(S)\subseteq S. \]
La primera dirección comienza con estabilidad. Sea
\[ y\in f(S). \]
Por definición de imagen, existe \(x\in S\) tal que
\[ y=f(x). \]
Como \(S\) es estable,
\[ f(x)\in S. \]
Luego \(y\in S\). Así,
\[ f(S)\subseteq S. \]
La dirección inversa parte de una hipótesis de conjuntos. Supongamos
\[ f(S)\subseteq S \]
y tomemos \(x\in S\). Por definición de imagen,
\[ f(x)\in f(S). \]
La inclusión da entonces
\[ f(x)\in S. \]
Como esto vale para todo \(x\in S\), el conjunto es estable.
Las dos pruebas utilizan definiciones distintas en órdenes distintos. La primera comienza con un elemento de la imagen y recupera una preimagen. La segunda comienza con un elemento de \(S\) y observa dónde cae su imagen. La equivalencia es simétrica como afirmación; su demostración no tiene por qué ser simétrica como recorrido.
Doble inclusión
Pasemos ahora a la igualdad de conjuntos.
Para demostrar
\[ A=B, \]
es suficiente probar
\[ A\subseteq B \]
y
\[ B\subseteq A. \]
Esta técnica se llama doble inclusión.
No se trata de una convención arbitraria. Proviene de la definición extensional de igualdad: dos conjuntos son iguales cuando tienen los mismos elementos. La primera inclusión impide que \(A\) tenga elementos que falten en \(B\); la segunda impide que \(B\) tenga elementos que falten en \(A\).
Veamos un ejemplo que no depende de un diagrama particular.
Sean \(A,B,C\) conjuntos. Demostraremos
\[ A\cap(B\cup C) = (A\cap B)\cup(A\cap C). \]
Primera inclusión
Tomemos
\[ x\in A\cap(B\cup C). \]
Entonces
\[ x\in A \]
y
\[ x\in B\cup C. \]
La segunda condición significa que
\[ x\in B \qquad\text{o}\qquad x\in C. \]
Si \(x\in B\), entonces
\[ x\in A\cap B. \]
Si \(x\in C\), entonces
\[ x\in A\cap C. \]
En cualquiera de los dos casos,
\[ x\in(A\cap B)\cup(A\cap C). \]
Por tanto,
\[ A\cap(B\cup C) \subseteq (A\cap B)\cup(A\cap C). \]
Segunda inclusión
Ahora tomemos
\[ x\in(A\cap B)\cup(A\cap C). \]
Entonces ocurre una de dos cosas:
\[ x\in A\cap B \]
o
\[ x\in A\cap C. \]
En el primer caso, \(x\in A\) y \(x\in B\); en el segundo, \(x\in A\) y \(x\in C\). En ambos casos,
\[ x\in A \]
y además
\[ x\in B\cup C. \]
Por tanto,
\[ x\in A\cap(B\cup C). \]
Así,
\[ (A\cap B)\cup(A\cap C) \subseteq A\cap(B\cup C). \]
Las dos inclusiones prueban la igualdad.
La segunda dirección no es «obvia» porque se parece a la primera
Cuando dos direcciones tienen estructuras parecidas, aparece la tentación de escribir:
La otra inclusión es análoga.
A veces esa abreviación es legítima para un lector experimentado. En un capítulo dedicado precisamente a aprender arquitectura de pruebas, conviene ser más cuidadosos.
Hay que preguntar:
- ¿qué objetos cambian de papel?;
- ¿qué definiciones se despliegan en cada dirección?;
- ¿la misma transformación realmente funciona al revés?;
- ¿hay algún paso que en una dirección usa sólo implicación y no equivalencia?
En el ejemplo distributivo anterior, las dos inclusiones son efectivamente cercanas, pero no idénticas. En una dirección comenzamos con una intersección que contiene una unión; en la otra, con una unión de dos intersecciones.
Hasta dominar la técnica, escribir ambas direcciones evita ocultar un posible salto.
Una inclusión puede ser estricta
¿Por qué insistimos tanto en la segunda inclusión? Porque una sola inclusión es compatible con una diferencia real entre los conjuntos.
Tomemos
\[ A=\{1\} \qquad\text{y}\qquad B=\{1,2\}. \]
Tenemos
\[ A\subseteq B, \]
pero
\[ A\ne B. \]
Para demostrar igualdad, conocer una inclusión sólo descarta un tipo de diferencia. Todavía podría haber elementos adicionales en el conjunto mayor.
Lo mismo ocurre con una implicación. De
\[ P\Rightarrow Q \]
no podemos concluir
\[ P\Longleftrightarrow Q. \]
La recíproca
\[ Q\Rightarrow P \]
es una afirmación adicional que necesita justificación.
Una caracterización: convertir una propiedad en una equivalencia
Las equivalencias son especialmente valiosas porque permiten cambiar de descripción.
Consideremos una función
\[ f:A\to B. \]
Demostraremos:
\(f\) es sobreyectiva si y sólo si
\[ f(A)=B. \]
Esta equivalencia conecta una definición cuantificada con una igualdad de conjuntos.
Primera dirección. Supongamos que \(f\) es sobreyectiva. Siempre tenemos
\[ f(A)\subseteq B \]
porque \(f\) toma valores en \(B\).
Para la otra inclusión, tomemos \(y\in B\). Por sobreyectividad, existe \(x\in A\) tal que
\[ f(x)=y. \]
Entonces
\[ y\in f(A). \]
Por tanto,
\[ B\subseteq f(A), \]
y las dos inclusiones dan
\[ f(A)=B. \]
Segunda dirección. Supongamos ahora
\[ f(A)=B. \]
Sea \(y\in B\). La igualdad implica
\[ y\in f(A). \]
Por definición de imagen, existe \(x\in A\) tal que
\[ f(x)=y. \]
Como \(y\) era arbitrario, \(f\) es sobreyectiva.
La primera dirección contiene internamente una doble inclusión; la segunda convierte inmediatamente la igualdad de conjuntos en una existencia. Una equivalencia puede, por tanto, contener arquitecturas más pequeñas dentro de cada dirección.
Equivalencias múltiples
A veces queremos demostrar que tres o más condiciones son equivalentes:
\[ P,\qquad Q,\qquad R. \]
Una posibilidad es demostrar todas las implicaciones por pares. Para tres condiciones eso produciría hasta seis direcciones:
\[ P\Rightarrow Q,\quad Q\Rightarrow P, \]
\[ P\Rightarrow R,\quad R\Rightarrow P, \]
\[ Q\Rightarrow R,\quad R\Rightarrow Q. \]
Pero suele bastar mucho menos.
Si demostramos un ciclo
\[ P\Rightarrow Q\Rightarrow R\Rightarrow P, \]
entonces cada condición implica las otras dos. Por ejemplo,
\[ Q\Rightarrow R\Rightarrow P \]
da \(Q\Rightarrow P\), y
\[ R\Rightarrow P\Rightarrow Q \]
da \(R\Rightarrow Q\).
También puede ser conveniente escoger una condición central y demostrar
\[ P\Longleftrightarrow Q \]
y
\[ Q\Longleftrightarrow R. \]
Entonces la transitividad de la implicación conecta \(P\) y \(R\).
La elección entre una estrella, un ciclo u otra organización depende de qué direcciones sean más naturales. Aquí vuelve a aparecer una idea importante: la forma del objetivo fija qué debe quedar probado, pero permite varias arquitecturas suficientes.
Cuidado con cadenas de equivalencias
Una escritura como
\[ P \Longleftrightarrow Q \Longleftrightarrow R \]
afirma más que una cadena de implicaciones.
Cada símbolo \(\Longleftrightarrow\) exige equivalencia en ambos sentidos. Si sólo sabemos
\[ P\Rightarrow Q \]
y
\[ Q\Rightarrow R, \]
podemos concluir
\[ P\Rightarrow R, \]
pero no
\[ P\Longleftrightarrow R. \]
Esto es especialmente importante en cálculos algebraicos. Supongamos que partimos de
\[ x=1 \]
y elevamos al cuadrado:
\[ x^2=1. \]
El paso
\[ x=1\Rightarrow x^2=1 \]
es correcto. Pero no es una equivalencia sobre los reales, porque
\[ x^2=1 \]
también permite
\[ x=-1. \]
Por tanto, escribir
\[ x=1 \Longleftrightarrow x^2=1 \]
sería falso.
Cuando transformamos una condición durante una demostración de equivalencia, debemos comprobar que los pasos señalados como reversibles realmente lo sean.
Doble inclusión sin perseguir elementos
La doble inclusión mediante elementos es la técnica más robusta para comenzar, pero no es la única manera de demostrar igualdad de conjuntos.
Si ya conocemos resultados que producen inclusiones, podemos utilizarlos directamente.
Por ejemplo, si sabemos
\[ A\subseteq B \]
y
\[ B\subseteq C, \]
entonces la transitividad de la inclusión da
\[ A\subseteq C. \]
Si además sabemos
\[ C\subseteq A, \]
podemos concluir
\[ A=C. \]
No hace falta reiniciar desde un elemento arbitrario si las inclusiones necesarias ya están justificadas.
El principio general es el mismo que en §6.2: usar resultados anteriores es legítimo cuando sus hipótesis se verifican y su conclusión coincide con la obligación actual.
Comprobación
Sea \(f:A\to B\). Demuestra la equivalencia:
\[ \begin{aligned} f\text{ es inyectiva} &\Longleftrightarrow \forall S,T\subseteq A,\\ &\qquad f(S\cap T)=f(S)\cap f(T). \end{aligned} \]
Antes de leer la respuesta, identifica qué parte de la igualdad vale para toda función y en qué dirección será necesaria la inyectividad.
Respuesta razonada.
Primero observemos que, para cualquier función,
\[ f(S\cap T)\subseteq f(S)\cap f(T). \]
En efecto, si
\[ y\in f(S\cap T), \]
existe \(x\in S\cap T\) con \(f(x)=y\). Como \(x\in S\) y \(x\in T\), tenemos
\[ y\in f(S) \]
y
\[ y\in f(T). \]
Por tanto,
\[ y\in f(S)\cap f(T). \]
Ahora supongamos que \(f\) es inyectiva. Queremos demostrar la inclusión inversa. Sea
\[ y\in f(S)\cap f(T). \]
Entonces existen \(s\in S\) y \(t\in T\) tales que
\[ f(s)=y=f(t). \]
La inyectividad implica
\[ s=t. \]
Ese elemento común pertenece a \(S\cap T\), y su imagen es \(y\). Así,
\[ y\in f(S\cap T). \]
Hemos probado
\[ f(S\cap T)=f(S)\cap f(T). \]
Esto demuestra una dirección de la equivalencia.
Para la recíproca, supongamos que la igualdad vale para todos los subconjuntos \(S,T\subseteq A\). Tomemos \(x_1,x_2\in A\) y supongamos
\[ f(x_1)=f(x_2). \]
Elegimos
\[ S=\{x_1\}, \qquad T=\{x_2\}. \]
Si \(x_1\ne x_2\), entonces
\[ S\cap T=\varnothing, \]
por lo que
\[ f(S\cap T)=f(\varnothing)=\varnothing. \]
Pero la igualdad de imágenes \(f(x_1)=f(x_2)\) muestra que
\[ f(S)\cap f(T) \]
contiene ese valor común y, por tanto, no es vacío. Esto contradice la hipótesis
\[ f(S\cap T)=f(S)\cap f(T). \]
Luego
\[ x_1=x_2. \]
Así, \(f\) es inyectiva.
Este ejemplo muestra algo que conviene conservar: las dos direcciones pueden tener naturalezas muy distintas. La primera usa doble inclusión; la segunda elige subconjuntos especialmente informativos y obtiene una contradicción local.
Para demostrar
\[ P\Longleftrightarrow Q, \]
deben cerrarse ambas obligaciones:
\[ P\Rightarrow Q \qquad\text{y}\qquad Q\Rightarrow P. \]
Para demostrar
\[ A=B, \]
la doble inclusión exige:
\[ A\subseteq B \qquad\text{y}\qquad B\subseteq A. \]
Las dos direcciones no tienen por qué usar la misma idea ni tener la misma dificultad.
Hacia una forma equivalente más conveniente
Hasta ahora hemos mantenido el objetivo y trabajado cada dirección desde sus hipótesis. Pero una implicación puede tener otra forma lógicamente equivalente que resulte más manejable.
En particular,
\[ P\Rightarrow Q \]
es equivalente a
\[ \neg Q\Rightarrow\neg P. \]
Demostrar esta segunda implicación no significa probar «la otra dirección» del bicondicional. Significa demostrar la contraposición de la misma implicación original.
Ésa será nuestra siguiente arquitectura.
6.4. Contraposición: cambiar el objetivo sin cambiar la afirmación
Para una implicación
\[ P\Rightarrow Q, \]
la lógica clásica garantiza la equivalencia
\[ P\Rightarrow Q \quad\Longleftrightarrow\quad \neg Q\Rightarrow\neg P. \]
La segunda implicación se llama contraposición de la primera.
Demostrar una implicación por contraposición consiste, por tanto, en demostrar
\[ \neg Q\Rightarrow\neg P \]
en lugar de trabajar directamente desde \(P\) hacia \(Q\).
La afirmación que estamos demostrando no cambia. Cambia la forma desde la cual intentamos alcanzarla.
Contraposición no es recíproco
La implicación recíproca de
\[ P\Rightarrow Q \]
es
\[ Q\Rightarrow P. \]
En general, la recíproca no es equivalente a la implicación original.
En cambio, la contraposición
\[ \neg Q\Rightarrow\neg P \]
sí lo es.
Conviene fijar las cuatro formas:
| Forma | Expresión |
|---|---|
| original | \(P\Rightarrow Q\) |
| recíproca | \(Q\Rightarrow P\) |
| contraria | \(\neg P\Rightarrow\neg Q\) |
| contraposición | \(\neg Q\Rightarrow\neg P\) |
La original y la contraposición son lógicamente equivalentes. La recíproca y la contraria también son equivalentes entre sí, pero no tienen por qué coincidir con la original.
Por ejemplo,
Si un entero es múltiplo de \(4\), entonces es par
es verdadero.
Su contraposición
Si un entero no es par, entonces no es múltiplo de \(4\)
también es verdadera.
Pero su recíproca
Si un entero es par, entonces es múltiplo de \(4\)
es falsa: \(2\) es par y no es múltiplo de \(4\).
¿Por qué puede ayudar?
A veces la conclusión \(Q\) tiene una forma difícil de construir directamente, mientras que su negación \(\neg Q\) proporciona información concreta.
Consideremos:
Si una función \(f:A\to B\) es inyectiva, entonces para todos \(x,y\in A\),
\[ x\ne y\Rightarrow f(x)\ne f(y). \]
Podemos demostrarlo directamente, pero la contraposición de la implicación interior es
\[ f(x)=f(y)\Rightarrow x=y, \]
que es exactamente la definición de inyectividad.
Aquí la contraposición no introduce ninguna idea nueva: simplemente revela que la forma equivalente coincide con una hipótesis disponible.
Primer ejemplo: una propiedad de conjuntos
Sea \(f:A\to B\) y sean \(S,T\subseteq A\).
Queremos demostrar:
Si \(S\cap T\ne\varnothing\), entonces
\[ f(S)\cap f(T)\ne\varnothing. \]
Una prueba directa también es natural: tomar un elemento común \(x\in S\cap T\) y observar que \(f(x)\) pertenece a ambas imágenes.
Pero si nos piden demostrar la implicación equivalente
Si
\[ f(S)\cap f(T)=\varnothing, \]
entonces
\[ S\cap T=\varnothing, \]
estamos viendo la contraposición exacta.
Supongamos que
\[ f(S)\cap f(T)=\varnothing. \]
Si hubiera \(x\in S\cap T\), entonces
\[ f(x)\in f(S) \]
y
\[ f(x)\in f(T), \]
por lo que
\[ f(x)\in f(S)\cap f(T), \]
contradiciendo que esa intersección es vacía.
Luego
\[ S\cap T=\varnothing. \]
Obsérvese un detalle: dentro de una prueba por contraposición puede aparecer una pequeña contradicción local. Eso no convierte automáticamente toda la prueba en “prueba por contradicción”. La arquitectura global sigue siendo:
\[ \neg Q\Rightarrow\neg P. \]
Segundo ejemplo: una función y su imagen
Consideremos una función
\[ f:A\to B \]
y la afirmación:
Si \(f\) no es sobreyectiva, entonces existe \(b\in B\) tal que
\[ f(a)\ne b \]
para todo \(a\in A\).
En realidad, esta afirmación es casi una lectura directa de la negación de sobreyectividad. Recordemos:
\[ \begin{aligned} f\text{ es sobreyectiva} \quad\Longleftrightarrow\quad &\forall b\in B,\\ &\exists a\in A\;(f(a)=b). \end{aligned} \]
Negando,
\[ \begin{aligned} f\text{ no es sobreyectiva} &\Longleftrightarrow \exists b\in B,\\ &\qquad \forall a\in A\;(f(a)\ne b). \end{aligned} \]
Aquí la forma negada no complica el problema: lo aclara.
Este tipo de situación es una buena señal para la contraposición en problemas más generales: cuando negar la conclusión produce una hipótesis más manejable que la conclusión original.
Un ejemplo donde la forma directa es incómoda
Queremos demostrar:
Si \(n^2\) es impar, entonces \(n\) es impar.
La prueba directa comienza con
\[ n^2=2k+1 \]
para algún entero \(k\) y debe terminar mostrando
\[ n=2m+1 \]
para algún entero \(m\).
Esa ruta no es imposible, pero no conecta de manera evidente ambas representaciones.
La contraposición dice:
Si \(n\) no es impar, entonces \(n^2\) no es impar.
Sobre los enteros, “no impar” equivale a “par”. Así, basta demostrar:
Si \(n\) es par, entonces \(n^2\) es par.
Sea
\[ n=2m. \]
Entonces
\[ n^2=4m^2=2(2m^2), \]
y como \(2m^2\in\mathbb Z\), concluimos que \(n^2\) es par.
Por contraposición,
\[ n^2\text{ impar} \Rightarrow n\text{ impar}. \]
Este ejemplo es clásico, pero aquí nos interesa la arquitectura: la negación de la conclusión transforma el objetivo en una propiedad que interactúa de forma inmediata con el cuadrado.
La negación debe ser correcta
La contraposición exige negar \(Q\) y \(P\) con precisión.
Si
\[ P:\quad x>3, \]
entonces
\[ \neg P:\quad x\le3, \]
no “\(x<3\)”.
Si
\[ Q:\quad \forall y\in B\;R(y), \]
entonces
\[ \neg Q:\quad \exists y\in B\;\neg R(y). \]
Una negación incorrecta produce una implicación distinta.
Consideremos:
Si todos los elementos de \(S\) pertenecen a \(T\), entonces
\[ S\subseteq T. \]
La negación de “\(S\subseteq T\)” es
\[ \exists x\in S\;(x\notin T), \]
no “ningún elemento de \(S\) pertenece a \(T\)”.
Negar bien no es un detalle previo a la técnica: es parte de la técnica.
Contraposición con cuantificadores
Supongamos que queremos demostrar:
Para todo \(x\in A\), si \(P(x)\), entonces \(Q(x)\).
La forma completa es
\[ \forall x\in A\; \bigl(P(x)\Rightarrow Q(x)\bigr). \]
Podemos demostrar para un \(x\) arbitrario la contraposición
\[ \neg Q(x)\Rightarrow\neg P(x). \]
Eso produce
\[ \forall x\in A\; \bigl(\neg Q(x)\Rightarrow\neg P(x)\bigr), \]
que es equivalente a la afirmación original.
Es importante mantener el mismo dominio y la misma dependencia del elemento \(x\). No estamos negando toda la proposición universal; estamos contraponiendo la implicación que aparece dentro de ella.
Negar toda la universal produciría
\[ \exists x\in A\; \bigl(P(x)\land\neg Q(x)\bigr), \]
que representa un contraejemplo, no una contraposición.
Contraposición frente a contradicción
Estas dos técnicas suelen confundirse porque ambas utilizan negaciones.
Para demostrar
\[ P\Rightarrow Q \]
por contraposición, el objetivo se reemplaza por la implicación equivalente
\[ \neg Q\Rightarrow\neg P. \]
La prueba tiene un objetivo positivo y explícito: desde \(\neg Q\) debemos llegar a \(\neg P\).
En una prueba por contradicción, en cambio, suponemos que la afirmación que queremos demostrar es falsa y tratamos de derivar una imposibilidad.
En forma esquemática:
\[ \text{Contraposición: } \neg Q \longrightarrow \cdots \longrightarrow \neg P. \]
\[ \text{Contradicción: } \neg(P\Rightarrow Q) \longrightarrow \cdots \longrightarrow \bot. \]
Como
\[ \neg(P\Rightarrow Q) \Longleftrightarrow P\land\neg Q, \]
una contradicción para una implicación suele comenzar suponiendo simultáneamente \(P\) y \(\neg Q\).
La diferencia conceptual es importante: en contraposición queremos probar una nueva conclusión; en contradicción queremos mostrar que una suposición es imposible.
Un mismo teorema puede admitir ambas
Tomemos la afirmación:
Si \(x^2\) es par, entonces \(x\) es par.
Por contraposición:
\[ x\text{ impar} \Rightarrow x^2\text{ impar}. \]
Eso se prueba directamente escribiendo
\[ x=2k+1 \]
y desarrollando
\[ x^2=4k^2+4k+1 =2(2k^2+2k)+1. \]
Por contradicción, podríamos suponer a la vez:
\[ x^2\text{ es par} \]
y
\[ x\text{ es impar}, \]
y derivar que \(x^2\) es impar, contradiciendo la primera hipótesis.
Ambos argumentos son válidos. Pero no son la misma arquitectura.
¿Cuándo conviene intentar contraposición?
No existe una regla infalible, pero hay señales útiles.
La contraposición puede ser especialmente natural cuando:
- \(Q\) es difícil de construir directamente, pero \(\neg Q\) tiene una forma concreta;
- la hipótesis \(P\) es una propiedad positiva y su negación es fácil de reconocer;
- la conclusión implica una restricción fuerte, como inyectividad, divisibilidad, no vacuidad o pertenencia;
- una definición disponible se parece más a \(\neg Q\Rightarrow\neg P\) que a \(P\Rightarrow Q\).
Sin embargo, estas señales no convierten la contraposición en una receta. Si la prueba directa es más clara, no hay ninguna obligación de usar la forma indirecta.
Un ejemplo con relaciones
Sea \(R\) una relación transitiva sobre \(A\). Queremos demostrar:
Si \(xRy\) y \(yRz\), entonces \(xRz\).
Aquí la prueba directa es inmediata porque ésa es exactamente la propiedad de transitividad.
Intentar una contraposición produciría:
Si no \(xRz\), entonces no ocurre que \(xRy\) y \(yRz\).
Equivalente a:
\[ \neg(xRz) \Rightarrow \bigl(\neg(xRy)\vee\neg(yRz)\bigr). \]
La afirmación es correcta, pero pedagógicamente peor: introduce una disyunción que la definición original no necesitaba.
Esto muestra el otro lado de la técnica: una forma equivalente puede ser lógicamente válida y, sin embargo, menos útil.
Comprobación
Sea \(f:A\to B\). Demuestra por contraposición:
Si \(f\) es inyectiva y
\[ f(S)\cap f(T)\ne\varnothing, \]
entonces
\[ S\cap T\ne\varnothing \]
para todos \(S,T\subseteq A\).
Respuesta razonada.
La conclusión es
\[ S\cap T\ne\varnothing. \]
Su negación es
\[ S\cap T=\varnothing. \]
La hipótesis relevante que queremos negar es
\[ f(S)\cap f(T)\ne\varnothing, \]
cuya negación es
\[ f(S)\cap f(T)=\varnothing. \]
Por contraposición, basta demostrar:
Si
\[ S\cap T=\varnothing, \]
entonces
\[ f(S)\cap f(T)=\varnothing. \]
Supongamos
\[ S\cap T=\varnothing. \]
Si hubiera
\[ y\in f(S)\cap f(T), \]
existirían \(s\in S\) y \(t\in T\) tales que
\[ f(s)=y=f(t). \]
Como \(f\) es inyectiva,
\[ s=t. \]
Ese elemento pertenecería tanto a \(S\) como a \(T\), de modo que
\[ s\in S\cap T, \]
contradiciendo que la intersección es vacía.
Por tanto,
\[ f(S)\cap f(T)=\varnothing. \]
La contraposición queda demostrada y, con ella, la implicación original.
Este ejemplo muestra además que la inyectividad es exactamente la hipótesis que impide que dos elementos distintos, uno de cada conjunto, colapsen en la misma imagen.
Para demostrar
\[ P\Rightarrow Q, \]
podemos demostrar la forma equivalente
\[ \neg Q\Rightarrow\neg P. \]
Esto no es demostrar la recíproca \(Q\Rightarrow P\) ni es automáticamente una prueba por contradicción. La clave es negar correctamente y conservar las mismas dependencias y dominios.
Hacia la contradicción
La contraposición sustituye una implicación por otra equivalente y conserva una meta explícita:
\[ \neg Q\Rightarrow\neg P. \]
Hay problemas en los que incluso esa meta no es la forma más natural. A veces lo útil es asumir que la afirmación que queremos demostrar falla y seguir las consecuencias hasta llegar a una imposibilidad.
Ésa es la arquitectura de la prueba por contradicción.
6.5. Prueba por contradicción: mostrar que la alternativa es imposible
La prueba por contradicción parte de una idea sencilla:
Si negar la afirmación que queremos demostrar nos obliga a aceptar algo imposible, entonces esa negación no puede ser correcta.
En símbolos, si queremos demostrar una proposición \(P\), asumimos temporalmente
\[ \neg P \]
y tratamos de derivar una contradicción:
\[ \neg P \quad\Longrightarrow\quad \cdots \quad\Longrightarrow\quad \bot. \]
Aquí \(\bot\) representa una imposibilidad lógica: una situación en la que obtenemos simultáneamente una afirmación y su negación, o cualquier otra incompatibilidad con hechos ya establecidos.
Una vez alcanzada la contradicción, concluimos que la suposición \(\neg P\) era falsa. Por tanto,
\[ P \]
debe ser verdadera.
Qué hay que negar
La parte más delicada suele aparecer antes de comenzar la prueba: debemos negar la afirmación completa que queremos demostrar.
Si nuestro objetivo es
\[ P\Rightarrow Q, \]
entonces su negación no es simplemente \(\neg Q\).
Sabemos que
\[ \neg(P\Rightarrow Q) \Longleftrightarrow P\land\neg Q. \]
Por tanto, una prueba por contradicción de una implicación comienza típicamente suponiendo al mismo tiempo:
\[ P \]
y
\[ \neg Q. \]
Ésta es una diferencia estructural con la contraposición.
En contraposición comenzamos con
\[ \neg Q \]
y debemos demostrar
\[ \neg P. \]
En contradicción comenzamos con
\[ P\land\neg Q \]
y debemos demostrar que esa combinación es imposible.
Un ejemplo elemental con funciones
Consideremos la afirmación:
Si \(f:A\to B\) es inyectiva y \(x,y\in A\) satisfacen
\[ f(x)=f(y), \]
entonces
\[ x=y. \]
Una prueba directa sería inmediata, porque la conclusión es exactamente lo que proporciona la definición de inyectividad.
Pero podemos escribir también una prueba por contradicción.
Supongamos que
\[ f(x)=f(y) \]
y que, contra lo que queremos demostrar,
\[ x\ne y. \]
Como \(f\) es inyectiva, de
\[ f(x)=f(y) \]
se sigue
\[ x=y. \]
Hemos obtenido simultáneamente
\[ x=y \]
y
\[ x\ne y. \]
La suposición \(x\ne y\) es imposible. Por tanto,
\[ x=y. \]
El argumento es correcto, aunque más largo que la prueba directa. Esto ilustra un principio importante: la contradicción es una arquitectura válida, no necesariamente la más conveniente.
Una contradicción debe depender de la suposición
Supongamos que queremos demostrar \(P\) y comenzamos suponiendo \(\neg P\).
Durante la prueba recordamos que
\[ 1\ne 2. \]
Eso es verdadero, pero no es una contradicción.
Tampoco serviría escribir simplemente una afirmación falsa como
\[ 1=2 \]
sin haberla deducido de nuestras hipótesis.
La contradicción tiene que surgir mediante una cadena de inferencias válidas a partir de:
- las hipótesis originales;
- la negación temporal del objetivo;
- definiciones o resultados previamente disponibles.
De otro modo no hemos demostrado que la negación del objetivo conduzca a una imposibilidad.
La estructura correcta es:
\[ \begin{aligned} \text{hipótesis}+\neg P &\Longrightarrow\cdots\\ &\Longrightarrow R\land\neg R. \end{aligned} \]
La contradicción final funciona porque muestra que el conjunto de supuestos con el que comenzamos no puede ser simultáneamente verdadero.
La contradicción puede adoptar formas distintas
No siempre veremos literalmente una expresión del tipo
\[ R\land\neg R. \]
También cuentan como contradicciones situaciones incompatibles con propiedades ya establecidas.
Por ejemplo:
\[ 0=1 \]
es imposible en un cuerpo, porque la definición exige
\[ 0\ne1. \]
Del mismo modo,
\[ x<x \]
es imposible en un orden estricto.
En los reales,
\[ x^2<0 \]
es imposible para todo \(x\in\mathbb R\).
Y para conjuntos,
\[ a\in\varnothing \]
es imposible por definición.
En todos los casos, la fuerza de la contradicción procede de que hemos alcanzado una afirmación incompatible con el contexto matemático vigente.
Un ejemplo de no existencia
Demostremos:
No existe un entero \(n\) que sea simultáneamente par e impar.
Podemos expresar el objetivo como
\[ \neg\exists n\in\mathbb Z\; \bigl(n\text{ par}\land n\text{ impar}\bigr). \]
Para una prueba por contradicción suponemos la negación:
\[ \exists n\in\mathbb Z\; \bigl(n\text{ par}\land n\text{ impar}\bigr). \]
Sea entonces \(n\) un entero par e impar.
Por paridad, existen \(a,b\in\mathbb Z\) tales que
\[ n=2a \]
y
\[ n=2b+1. \]
Igualando,
\[ 2a=2b+1. \]
Por tanto,
\[ 2(a-b)=1. \]
El miembro izquierdo es par y el derecho es impar. Equivalentemente,
\[ 1 \]
sería divisible por \(2\), lo cual es imposible en \(\mathbb Z\).
Así no existe un entero que sea par e impar a la vez.
La prueba no consistió en comprobar muchos enteros. La negación del objetivo nos dio un candidato hipotético y las dos definiciones incompatibles produjeron la contradicción.
Contradicción en una afirmación universal
Consideremos:
Para todo real \(x\),
\[ x^2+1>0. \]
Queremos demostrar
\[ \forall x\in\mathbb R\;(x^2+1>0). \]
Tomemos \(x\in\mathbb R\) arbitrario. Supongamos, para obtener una contradicción, que
\[ x^2+1\le0. \]
Entonces
\[ x^2\le-1. \]
Pero para todo real,
\[ x^2\ge0. \]
Así tendríamos simultáneamente
\[ x^2\ge0 \]
y
\[ x^2\le-1. \]
Eso es imposible porque \(0>-1\).
Por tanto,
\[ x^2+1>0. \]
Como \(x\) era arbitrario, la afirmación vale para todo real.
Aquí la contradicción ocurre dentro de una prueba universal: primero fijamos un elemento arbitrario y luego negamos la propiedad que queremos demostrar para ese elemento.
El papel de la negación en existencia y universalidad
La estructura de la negación determina qué objetos aparecen en la prueba.
Si queremos demostrar
\[ \forall x\in A\;P(x), \]
su negación es
\[ \exists x\in A\;\neg P(x). \]
Por contradicción supondríamos que existe un contraejemplo.
En cambio, si queremos demostrar
\[ \exists x\in A\;P(x), \]
su negación es
\[ \forall x\in A\;\neg P(x). \]
Entonces una prueba por contradicción de existencia comienza suponiendo que ningún elemento del dominio cumple la propiedad.
Estas dos formas no son intercambiables.
Un ejemplo de existencia por contradicción
Supongamos que \(A\) es un conjunto finito no vacío y que
\[ f:A\to A \]
es inyectiva.
Queremos demostrar que \(f\) es sobreyectiva.
Una prueba directa requeriría mostrar que cada elemento de \(A\) tiene una preimagen. En conjuntos finitos, podemos usar un hecho estructural: una función inyectiva de un conjunto finito en sí mismo no puede “perder” un valor sin dejar espacio insuficiente para imágenes distintas.
La demostración que sigue utiliza el principio elemental de conteo según el cual no pueden colocarse \(n\) elementos distintos en sólo \(n-1\) posiciones. Aquí lo aceptamos explícitamente como hecho previo de aritmética finita, no como consecuencia automática de la palabra «inyectiva». En §11.8 demostraremos el lema general: si existe una inyección \(I_m\to I_n\), entonces \(m\le n\), y justificaremos por qué un subconjunto propio de un conjunto finito tiene menos elementos. Ese resultado cierra formalmente la dependencia que estamos anticipando.
Veamos la forma por contradicción.
Supongamos que \(f\) no es sobreyectiva. Entonces existe
\[ a\in A \]
que no pertenece a la imagen:
\[ a\notin f(A). \]
Así,
\[ f(A)\subseteq A\setminus\{a\}. \]
Pero \(f\) es inyectiva, de modo que los \(|A|\) elementos de \(A\) tienen imágenes distintas. Eso obligaría a que el subconjunto
\[ A\setminus\{a\} \]
contuviera al menos \(|A|\) elementos distintos.
Sin embargo,
\[ |A\setminus\{a\}|=|A|-1. \]
La desigualdad
\[ |A|\le |A|-1 \]
es imposible.
Por tanto, \(f\) debe ser sobreyectiva.
La contradicción no es puramente lógica; utiliza la finitud del conjunto. Si \(A\) fuera infinito, la conclusión podría fallar. Por ejemplo,
\[ f:\mathbb N\to\mathbb N, \qquad f(n)=n+1, \]
es inyectiva pero no sobreyectiva si \(\mathbb N=\{0,1,2,\dots\}\).
Esto muestra por qué las hipótesis importan incluso en una técnica indirecta: la contradicción sólo es válida dentro del contexto que la produce.
Contradicción y principio del tercero excluido
En lógica clásica, la prueba por contradicción utiliza el principio de que una proposición no puede ser falsa si su negación conduce a una imposibilidad.
En particular, para demostrar \(P\) asumimos \(\neg P\) y derivamos \(\bot\).
Este razonamiento es estándar en la matemática clásica que usamos en el libro.
No desarrollaremos aquí lógicas alternativas ni fundamentos constructivos. Basta registrar que nuestras reglas de negación, contraposición y contradicción se entienden dentro de ese marco clásico.
Una contradicción local dentro de una prueba directa
Supongamos que queremos demostrar directamente que una función \(f:A\to B\) es inyectiva.
Tomamos \(x,y\in A\) y suponemos
\[ f(x)=f(y). \]
Tal vez el argumento continúe:
Si \(x\ne y\), entonces se produciría una incompatibilidad con otra propiedad; por tanto \(x=y\).
El marco global sigue siendo una prueba directa de la inyectividad: comenzamos con la hipótesis requerida por la definición y terminamos en la conclusión requerida.
Dentro de esa arquitectura hemos usado una contradicción para justificar un paso.
Esto es normal. Las técnicas de prueba pueden anidarse.
Por eso es más preciso describir la arquitectura global por la obligación principal que organiza el argumento, y reconocer técnicas locales allí donde aparezcan.
Una contradicción no autoriza cualquier conclusión intermedia
Existe una regla lógica importante: si un conjunto de hipótesis lleva a una contradicción, entonces esas hipótesis no pueden ser todas verdaderas a la vez.
Pero durante la escritura debemos mantener claro qué supuesto está siendo descargado.
Si comenzamos con hipótesis aceptadas \(H\) y añadimos temporalmente \(\neg P\), y de
\[ H\land\neg P \]
derivamos una contradicción, entonces concluimos \(P\) bajo las hipótesis \(H\).
No concluimos que alguna de las hipótesis originales de \(H\) sea falsa. El supuesto temporal que introdujimos precisamente para la contradicción es \(\neg P\).
Esta disciplina evita confundir qué parte del argumento está en cuestión.
Un ejemplo donde la contradicción es natural
Demostremos:
No existe un número racional cuyo cuadrado sea \(2\).
Equivalente a:
\[ \sqrt{2}\notin\mathbb Q. \]
Supondremos lo contrario:
\[ \sqrt{2}\in\mathbb Q. \]
Entonces existen enteros \(a,b\), con \(b\ne0\), tales que
\[ \sqrt{2}=\frac{a}{b}. \]
Podemos elegir la fracción en términos mínimos, es decir,
\[ \gcd(a,b)=1. \]
Al elevar al cuadrado,
\[ 2=\frac{a^2}{b^2}, \]
de donde
\[ a^2=2b^2. \]
Así \(a^2\) es par, y por el resultado sobre la paridad de los cuadrados, \(a\) es par. Escribimos
\[ a=2k. \]
Sustituyendo,
\[ 4k^2=2b^2, \]
por lo que
\[ b^2=2k^2. \]
Entonces \(b\) también es par.
Así \(a\) y \(b\) son ambos divisibles por \(2\), contradiciendo que la fracción \(a/b\) estuviera en términos mínimos.
Por tanto,
\[ \sqrt{2}\notin\mathbb Q. \]
Este ejemplo es clásico y aparece en muchos manuales, por lo que no lo usaremos como rasgo distintivo del capítulo. Aquí cumple una función precisa: mostrar una contradicción que no adopta inicialmente la forma \(R\land\neg R\), sino que termina violando una condición de coprimalidad elegida al comienzo.
¿Cuándo conviene intentar contradicción?
Como antes, no hay algoritmo infalible. Puede ser una buena arquitectura cuando:
- la negación del objetivo produce una hipótesis concreta;
- queremos demostrar una no existencia;
- el objetivo afirma unicidad y su negación produce dos candidatos distintos;
- una propiedad global se vuelve difícil de construir directamente;
- el contexto contiene una restricción fuerte que una negación puede violar;
- un intento de contraposición no ofrece una meta más manejable.
Pero usar contradicción no debe ser una reacción automática ante una prueba difícil. Una prueba directa suele revelar mejor la dependencia entre hipótesis y conclusión cuando está disponible.
Contraposición y contradicción, lado a lado
Para demostrar
\[ P\Rightarrow Q, \]
comparemos las dos arquitecturas:
Contraposición
\[ \neg Q \quad\Longrightarrow\quad \cdots \quad\Longrightarrow\quad \neg P. \]
Objetivo local: demostrar \(\neg P\).
Contradicción
\[ P\land\neg Q \quad\Longrightarrow\quad \cdots \quad\Longrightarrow\quad \bot. \]
Objetivo local: demostrar que la combinación \(P\land\neg Q\) es imposible.
Las dos técnicas pueden usar pasos semejantes, pero no descargan las mismas suposiciones ni persiguen la misma meta intermedia.
Comprobación
Sea \(f:A\to A\) una función y supongamos que
\[ f(f(x))=x \]
para todo \(x\in A\).
Demuestra por contradicción que \(f\) es inyectiva.
Respuesta razonada.
Queremos demostrar que
\[ f(x)=f(y)\Rightarrow x=y. \]
Supongamos, para obtener una contradicción, que existen \(x,y\in A\) tales que
\[ f(x)=f(y) \]
pero
\[ x\ne y. \]
Aplicamos \(f\) a ambos lados de la igualdad:
\[ f(f(x))=f(f(y)). \]
Por la hipótesis,
\[ f(f(x))=x \]
y
\[ f(f(y))=y. \]
Por tanto,
\[ x=y. \]
Esto contradice la suposición
\[ x\ne y. \]
Luego no pueden existir dos entradas distintas con la misma imagen. Por tanto, \(f\) es inyectiva.
El argumento podría escribirse también de manera directa: de \(f(x)=f(y)\) aplicamos \(f\) y obtenemos \(x=y\). La versión por contradicción es deliberadamente más larga porque aquí queremos hacer visible la arquitectura.
Para demostrar una afirmación \(P\) por contradicción:
- suponemos temporalmente \(\neg P\);
- combinamos esa suposición con las hipótesis disponibles;
- derivamos una incompatibilidad real;
- concluimos que \(\neg P\) es imposible y, por tanto, \(P\) es verdadera.
La contradicción debe ser consecuencia de la suposición añadida y de inferencias válidas; no basta introducir una afirmación falsa sin justificación.
Hacia las pruebas por casos
La contradicción explota una alternativa imposible. La siguiente arquitectura trabaja con una situación diferente: varias alternativas pueden ser posibles, pero juntas cubren todos los objetos relevantes.
Cuando el problema cambia de comportamiento según una propiedad —por ejemplo, según un número sea positivo, cero o negativo— podemos dividir el dominio y demostrar la conclusión en cada región.
Ésa es la demostración por casos.
6.6. Demostración por casos: dividir sin perder nada
A veces una afirmación debe demostrarse para objetos que pueden comportarse de maneras distintas. En lugar de forzar una única cadena de razonamiento, dividimos el problema en situaciones y demostramos la conclusión en cada una.
Ésa es la idea de una demostración por casos.
En su forma más simple, si sabemos que siempre ocurre
\[ P\vee Q, \]
y podemos demostrar
\[ P\Rightarrow R \]
y también
\[ Q\Rightarrow R, \]
entonces concluimos
\[ R. \]
La estructura es:
\[ \boxed{ \begin{aligned} P\vee Q,\quad P\Rightarrow R,\quad Q\Rightarrow R \\ \Longrightarrow\quad R. \end{aligned} } \]
La dificultad principal no suele estar en escribir «Caso 1» y «Caso 2». Está en justificar que no hemos dejado ningún objeto fuera.
Exhaustividad antes que exclusividad
Los casos deben ser exhaustivos: todo objeto relevante debe caer en al menos uno.
No es necesario que sean mutuamente excluyentes.
Por ejemplo, si queremos demostrar una propiedad para todo real \(x\), podemos separar:
- Caso 1: \(x\ge0\);
- Caso 2: \(x\le0\).
Los casos se solapan cuando \(x=0\), pero juntos cubren todos los reales. Si la misma conclusión se obtiene en ambos, el solapamiento no causa ningún problema.
En cambio, los casos
- \(x>0\);
- \(x<0\)
no son exhaustivos: dejan fuera \(x=0\).
La regla esencial es:
Los casos pueden solaparse; lo que no pueden hacer es dejar un hueco.
Un primer ejemplo: valor absoluto
Demostremos que para todo real \(x\),
\[ |x|\ge x. \]
La definición del valor absoluto ya sugiere los casos:
\[ |x|= \begin{cases} x, & x\ge0,\\ -x, & x<0. \end{cases} \]
Caso 1: \(x\ge0\). Entonces
\[ |x|=x, \]
de modo que
\[ |x|\ge x. \]
Caso 2: \(x<0\). Entonces
\[ |x|=-x. \]
Como \(x<0\), tenemos
\[ -x>x, \]
y por tanto
\[ |x|>x. \]
En ambos casos,
\[ |x|\ge x. \]
La división no fue arbitraria. La definición del objeto ya estaba dada por casos y, por tanto, proporcionaba una partición natural del problema.
Los casos deben venir de algún dato matemático
Una prueba por casos es más convincente cuando la división responde a una estructura real del problema:
- signo de una cantidad;
- paridad;
- pertenencia a conjuntos;
- disyunción en una hipótesis;
- comportamiento definido por tramos;
- posibilidad de que una cantidad sea cero o no cero.
Dividir porque sí puede multiplicar el trabajo sin aportar claridad.
Supongamos que queremos demostrar para todo entero \(n\) que
\[ n(n+1) \]
es par.
Una división natural es:
- \(n\) es par;
- \(n\) es impar.
Estos casos son exhaustivos para los enteros.
Si \(n\) es par, entonces \(n(n+1)\) es par porque contiene el factor par \(n\).
Si \(n\) es impar, entonces \(n+1\) es par, así que el producto vuelve a tener un factor par.
La conclusión queda demostrada.
Aquí la clasificación par/impar no es una decoración: identifica cuál de los dos factores consecutivos aporta la divisibilidad por \(2\).
Una disyunción en la hipótesis produce casos
En §6.1 apareció el ejemplo
\[ x\in B\cup C. \]
Por definición,
\[ x\in B\vee x\in C. \]
Eso da inmediatamente dos casos.
De forma general, si una hipótesis tiene la forma
\[ P\vee Q, \]
y queremos demostrar \(R\), podemos intentar:
- bajo \(P\), demostrar \(R\);
- bajo \(Q\), demostrar \(R\).
No necesitamos decidir de antemano cuál de los dos ocurre. Basta demostrar que cualquiera de las alternativas conduce a la misma conclusión.
Casos que se solapan
Consideremos la afirmación:
Si \(x\in A\cup B\), entonces
\[ x\in (A\cup C)\cup(B\cup C). \]
Podemos dividir según:
- \(x\in A\);
- \(x\in B\).
Si \(x\) pertenece a ambos, ambos casos se aplican. Eso no invalida el argumento.
En el primer caso,
\[ x\in A\subseteq A\cup C \]
y por tanto
\[ x\in (A\cup C)\cup(B\cup C). \]
En el segundo caso,
\[ x\in B\subseteq B\cup C, \]
y llegamos a la misma conclusión.
La prueba funciona porque la unión garantiza exhaustividad, no exclusividad.
Casos definidos por una dicotomía real
Hay divisiones donde sí obtenemos casos mutuamente excluyentes.
Por ejemplo, para un real \(x\):
\[ x=0 \qquad\text{o}\qquad x\ne0. \]
No hay solapamiento y no hay hueco.
Esta dicotomía es especialmente útil cuando una operación exige una condición de no nulidad.
Supongamos que trabajamos en un cuerpo \(F\) y queremos analizar las soluciones de
\[ ax=b. \]
La división natural es:
- Caso 1: \(a=0\);
- Caso 2: \(a\ne0\).
En el segundo caso existe \(a^{-1}\) y podemos escribir
\[ x=a^{-1}b. \]
En el primero, no podemos multiplicar por \(a^{-1}\) porque ese inverso no existe. Debemos distinguir además:
- si \(b=0\), todo \(x\in F\) satisface la ecuación;
- si \(b\ne0\), no hay soluciones.
La prueba por casos impide precisamente aplicar una operación fuera de su dominio de validez.
Casos anidados
Una demostración puede contener casos dentro de casos.
El ejemplo anterior ya tiene esta forma:
\[ a=0 \quad\text{o}\quad a\ne0. \]
Dentro de \(a=0\) distinguimos:
\[ b=0 \quad\text{o}\quad b\ne0. \]
La estructura queda:
- Caso 1: \(a=0\).
- Subcaso 1a: \(b=0\).
- Subcaso 1b: \(b\ne0\).
- Caso 2: \(a\ne0\).
La única exigencia es que cada nivel de división sea exhaustivo respecto del caso en que se encuentra.
No repetir trabajo innecesariamente
Una mala organización por casos puede duplicar pasos que son comunes a todas las ramas.
Supongamos que para demostrar \(R\) desde \(P\vee Q\) necesitamos primero una consecuencia \(S\) que se deduce de una hipótesis común \(H\) y después:
- bajo \(P\), usar \(S\) para llegar a \(R\);
- bajo \(Q\), usar \(S\) para llegar a \(R\).
No conviene volver a demostrar \(S\) dentro de cada caso. Es más claro obtener primero
\[ H\Rightarrow S \]
y abrir la división después.
La arquitectura debería mostrar qué parte del argumento es común y dónde comienza realmente la bifurcación.
Un ejemplo con funciones
Sea
\[ f:\mathbb R\to\mathbb R, \qquad f(x)=|x|. \]
Queremos demostrar que
\[ f(x)^2=x^2 \]
para todo real \(x\).
La definición de \(|x|\) sugiere dos casos.
Caso 1: \(x\ge0\). Entonces
\[ f(x)=x, \]
y
\[ f(x)^2=x^2. \]
Caso 2: \(x<0\). Entonces
\[ f(x)=-x, \]
por lo que
\[ f(x)^2=(-x)^2=x^2. \]
La conclusión es la misma en ambos casos.
Podríamos también demostrarlo usando la identidad conocida
\[ |x|^2=x^2, \]
si ésta ya estuviera disponible. Pero si precisamente estamos justificando esa identidad, la definición por tramos hace natural la prueba por casos.
El orden de los casos puede importar para la claridad
Cuando un caso es excepcional y los demás siguen una regla general, suele ser mejor aislar primero la excepción.
Por ejemplo, al estudiar
\[ \frac{x^2-1}{x-1}, \]
el valor \(x=1\) requiere atención porque el denominador se anula.
Una organización clara es:
- Caso 1: \(x=1\);
- Caso 2: \(x\ne1\).
En el segundo caso podemos factorizar y cancelar:
\[ \frac{x^2-1}{x-1} = \frac{(x-1)(x+1)}{x-1} = x+1. \]
Pero esta identidad no puede aplicarse en \(x=1\) a la expresión original, porque allí no está definida.
La división por casos protege las condiciones de validez de cada paso.
Probar por casos no significa probar ejemplos
Hay una diferencia esencial entre:
- dividir un dominio en clases exhaustivas;
- comprobar algunos valores concretos.
Para demostrar una propiedad de todos los enteros no basta verificar \(n=0,1,2,3\).
En cambio, demostrarla para los dos casos
\[ n\text{ par} \qquad\text{o}\qquad n\text{ impar} \]
sí puede bastar, porque esos dos casos cubren todos los enteros.
Cada caso sigue siendo universal dentro de su clase.
Casos y contradicción
Una rama puede cerrarse por contradicción.
Supongamos que queremos demostrar una propiedad \(R\) para todo objeto y dividimos:
- Caso 1: \(P\);
- Caso 2: \(\neg P\).
Tal vez en el segundo caso las hipótesis globales hagan imposible \(\neg P\). Entonces esa rama queda cerrada porque no contiene objetos admisibles.
No hay obligación de producir una construcción positiva en cada caso si una rama resulta vacía bajo las hipótesis.
Comprobación
Sea \(f:\mathbb R\to\mathbb R\) definida por
\[ f(x)= \begin{cases} x+1, & x\ge0,\\ 1-x, & x<0. \end{cases} \]
Demuestra que
\[ f(x)\ge1 \]
para todo \(x\in\mathbb R\).
Respuesta razonada.
Tomamos \(x\in\mathbb R\) arbitrario.
Caso 1: \(x\ge0\). Entonces
\[ f(x)=x+1\ge1. \]
Caso 2: \(x<0\). Entonces
\[ -x>0, \]
y por tanto
\[ f(x)=1-x=1+(-x)>1. \]
En ambos casos,
\[ f(x)\ge1. \]
Los casos son exhaustivos porque todo real satisface exactamente una de las condiciones
\[ x\ge0 \qquad\text{o}\qquad x<0. \]
La prueba no depende de probar valores particulares; en cada rama trabajamos con un elemento arbitrario sujeto sólo a la condición del caso.
Una prueba por casos es válida cuando:
- las alternativas cubren todos los objetos permitidos;
- en cada alternativa se demuestra la misma conclusión;
- cada paso utilizado dentro de un caso respeta las hipótesis de ese caso.
Los casos pueden solaparse. La exhaustividad es obligatoria; la exclusividad no.
Hacia la existencia
Hasta aquí hemos estudiado arquitecturas cuyo objetivo principal era una implicación, una equivalencia o una afirmación universal.
Cuando el objetivo cambia a
\[ \exists x\in A\;P(x), \]
la tarea ya no consiste en controlar todos los objetos, sino en justificar que al menos uno existe.
Eso abre una nueva distinción: encontrar un testigo, construirlo o demostrar que debe existir aunque no lo exhibamos explícitamente.
Ése será el siguiente paso.
6.7. Existencia: encontrar, construir o garantizar un objeto
Una afirmación existencial tiene la forma
\[ \exists x\in A\;P(x). \]
Para demostrarla debemos justificar que al menos un elemento del dominio satisface la propiedad.
En su forma más visible, la prueba consiste en exhibir un testigo:
\[ a\in A \qquad\text{y}\qquad P(a). \]
Pero no todas las pruebas de existencia se parecen. A veces el objeto está delante de nosotros y sólo hay que verificarlo. A veces debemos construirlo a partir de las hipótesis. Y, en otros casos, un argumento demuestra que necesariamente existe algún objeto, aunque la prueba no nos diga cuál es de manera explícita.
Por eso conviene separar tres preguntas:
- ¿qué objeto necesitamos?
- ¿cómo sabemos que pertenece al dominio correcto?
- ¿cómo verificamos que satisface todas las condiciones?
Un testigo no es sólo un nombre
Consideremos:
Existe un real \(x\) tal que
\[ x^2-5x+6=0. \]
Podemos proponer
\[ x=2. \]
Pero una prueba no termina con «tomemos \(x=2\)». Debemos verificar:
\[ 2\in\mathbb R \]
y
\[ 2^2-5\cdot2+6 = 4-10+6 = 0. \]
Ahora sí hemos demostrado la existencia.
La estructura es:
\[ \boxed{ \begin{aligned} &\text{proponer un testigo}\\ &+\ \text{verificar dominio}\\ &+\ \text{verificar propiedad}. \end{aligned} } \]
Si el objetivo incluye varias condiciones,
\[ \exists x\in A\; \bigl(P(x)\land Q(x)\land R(x)\bigr), \]
el testigo debe cumplirlas todas.
Un ejemplo con conjuntos
Sean \(A\) y \(B\) conjuntos no vacíos. Queremos demostrar:
Si \(A\cap B\ne\varnothing\), entonces existe un elemento que pertenece simultáneamente a \(A\) y a \(B\).
En símbolos,
\[ A\cap B\ne\varnothing \Rightarrow \exists x\;(x\in A\land x\in B). \]
Aquí la existencia ya está contenida en la hipótesis.
La condición
\[ A\cap B\ne\varnothing \]
significa precisamente que existe algún
\[ x\in A\cap B. \]
Y por definición de intersección,
\[ x\in A \qquad\text{y}\qquad x\in B. \]
No hemos construido el elemento mediante una fórmula; lo hemos obtenido al desplegar el significado de «no vacío».
Construir un testigo a partir de las hipótesis
Ahora consideremos una situación donde el testigo no viene dado.
Sean \(a,b\in\mathbb R\) con
\[ a<b. \]
Queremos demostrar:
Existe un real \(c\) tal que
\[ a<c<b. \]
Una elección natural es el punto medio:
\[ c=\frac{a+b}{2}. \]
Debemos verificar las dos desigualdades.
De
\[ a<b \]
obtenemos
\[ 2a<a+b, \]
y dividiendo por \(2>0\),
\[ a<\frac{a+b}{2}=c. \]
También,
\[ a+b<2b, \]
de donde
\[ c=\frac{a+b}{2}<b. \]
Por tanto,
\[ a<c<b. \]
El testigo fue construido utilizando los datos del problema.
La idea del punto medio es contenido matemático; la forma existencial sólo nos decía que necesitábamos producir algún objeto entre \(a\) y \(b\).
La fórmula del testigo debe estar bien definida
Construir un objeto exige comprobar que la expresión usada tiene sentido.
Supongamos que queremos resolver en un cuerpo \(F\)
\[ ax=b. \]
Si \(a\ne0\), podemos proponer
\[ x=a^{-1}b. \]
Esta fórmula es legítima porque la hipótesis \(a\ne0\) garantiza la existencia de \(a^{-1}\).
Después verificamos:
\[ ax = a(a^{-1}b) = (aa^{-1})b = 1b = b. \]
Así hemos probado existencia de solución.
Pero si no tuviéramos \(a\ne0\), escribir \(a^{-1}b\) sería ilegítimo. Una fórmula familiar no constituye un testigo si alguna de sus partes no está definida bajo las hipótesis disponibles.
Existencia por elección entre casos
A veces podemos demostrar existencia sin una fórmula única.
Queremos demostrar:
Para todo real \(x\), existe un real \(y\ge0\) tal que
\[ y^2=x^2. \]
Podemos dividir en casos.
Si
\[ x\ge0, \]
elegimos
\[ y=x. \]
Entonces \(y\ge0\) y \(y^2=x^2\).
Si
\[ x<0, \]
elegimos
\[ y=-x. \]
Entonces \(y>0\) y
\[ y^2=(-x)^2=x^2. \]
En ambos casos existe un testigo.
Aquí la existencia se demuestra mediante una construcción dependiente del caso:
\[ y= \begin{cases} x, & x\ge0,\\ -x, & x<0. \end{cases} \]
Es, naturalmente, el valor absoluto:
\[ y=|x|. \]
La prueba muestra cómo una construcción por casos puede terminar condensándose en una definición familiar.
Existencia sin exhibir el objeto de forma explícita
No toda prueba existencial termina con una fórmula como
\[ x=\frac{a+b}{2}. \]
Consideremos una función continua
\[ f:[0,1]\to\mathbb R \]
tal que
\[ f(0)<0 \qquad\text{y}\qquad f(1)>0. \]
Un resultado del análisis —el teorema del valor intermedio— afirma que existe
\[ c\in(0,1) \]
tal que
\[ f(c)=0. \]
Si utilizamos ese teorema, podemos demostrar existencia de \(c\) sin disponer necesariamente de una expresión cerrada para él.
La prueba sería:
- \(f\) es continua en \([0,1]\);
- \(0\) está entre \(f(0)\) y \(f(1)\);
- por el teorema del valor intermedio existe \(c\in(0,1)\) con \(f(c)=0\).
El objeto queda garantizado, aunque no se calcule.
No desarrollaremos aquí el teorema del valor intermedio; pertenece al análisis. El ejemplo sólo muestra una distinción lógica:
demostrar existencia no siempre significa proporcionar una fórmula explícita para el objeto.
Existencia constructiva y existencia no constructiva
En sentido amplio, llamamos constructiva a una prueba que proporciona un procedimiento, una fórmula o un objeto verificable que satisface la propiedad.
Por ejemplo,
\[ c=\frac{a+b}{2} \]
construye explícitamente un real entre \(a\) y \(b\).
Una prueba no constructiva, en el sentido elemental que usaremos aquí, demuestra que algún objeto debe existir sin identificarlo necesariamente de forma concreta.
No entraremos en las distinciones más profundas de lógica constructiva. Nos basta la diferencia práctica entre:
\[ \text{“aquí está un testigo”} \]
y
\[ \text{“algún testigo debe existir”}. \]
Ambas pueden ser demostraciones matemáticas válidas dentro del marco clásico.
Un ejemplo clásico de existencia no constructiva elemental
Demostremos:
Existen números irracionales \(a\) y \(b\) tales que
\[ a^b \]
es racional.
Consideremos
\[ \alpha=(\sqrt{2})^{\sqrt{2}}. \]
Hay dos posibilidades.
Caso 1: \(\alpha\) es racional.
Entonces tomamos
\[ a=\sqrt{2}, \qquad b=\sqrt{2}. \]
Ambos son irracionales y
\[ a^b=\alpha \]
es racional.
Caso 2: \(\alpha\) es irracional.
Tomamos entonces
\[ a=\alpha, \qquad b=\sqrt{2}. \]
Ambos son irracionales y
\[ a^b = \left((\sqrt{2})^{\sqrt{2}}\right)^{\sqrt{2}} = (\sqrt{2})^2 = 2, \]
que es racional.
En cualquiera de los dos casos existen irracionales \(a\) y \(b\) con potencia racional.
La prueba establece existencia, pero no decide cuál de las dos parejas desempeña el papel de testigo sin información adicional sobre \(\alpha\).
Éste es precisamente el rasgo no constructivo elemental que queríamos observar.
No disponer de una fórmula no demuestra que sea imposible construir un testigo
La distinción anterior describe lo que proporciona un argumento, no una propiedad inalterable del objeto cuya existencia se afirma. Una demostración puede garantizar un testigo sin nombrarlo; otra demostración del mismo resultado podría llegar a exhibirlo. Tampoco debemos identificar automáticamente «no tenemos una expresión cerrada» con «no hay construcción posible»: un procedimiento justificado que determine el objeto buscado puede ser una construcción, aunque no termine en una fórmula elemental.
En la prueba por casos con \(\alpha=(\sqrt 2)^{\sqrt 2}\) no se ha decidido cuál de las dos parejas presentadas cumple la condición. Eso basta para que ese argumento, tal como está escrito, no seleccione un testigo de modo explícito. No demuestra que nadie pueda encontrar uno mediante otra idea. De modo parecido, cuando invocamos el teorema del valor intermedio, sólo vimos que nuestra invocación garantizaba un cero de \(f\); no examinamos si, bajo datos adicionales sobre \(f\), sería posible calcular o aproximar tal cero mediante un procedimiento.
Comprobación. Al leer «existe un elemento \(x\) con la propiedad \(P(x)\)» sin que aparezca una fórmula para \(x\), ¿podemos concluir que ninguna prueba dará jamás un testigo explícito?
Respuesta razonada. No. La existencia se ha establecido, pero la falta de un testigo exhibido caracteriza la información aportada hasta ese punto de la argumentación. Para concluir que no existe ningún procedimiento de construcción habría que formular y justificar otra afirmación, mucho más fuerte. En este capítulo no necesitamos esa teoría: debemos identificar qué nos autoriza a decir la prueba que realmente tenemos.
Existencia no significa unicidad
Si encontramos un testigo, hemos probado
\[ \exists x\in A\;P(x). \]
No hemos probado
\[ \exists!x\in A\;P(x). \]
Por ejemplo,
\[ x^2=1 \]
tiene al menos una solución real:
\[ x=1. \]
Pero también
\[ x=-1 \]
es solución.
Exhibir \(1\) demuestra existencia y nada más.
Esta separación será el centro de §6.8.
El dominio forma parte de la existencia
Consideremos la ecuación
\[ x^2+1=0. \]
Sobre los reales,
\[ \nexists x\in\mathbb R\;(x^2+1=0). \]
Sobre los complejos,
\[ \exists x\in\mathbb C\;(x^2+1=0), \]
pues
\[ i^2+1=0. \]
La misma expresión algebraica puede definir un problema existencial distinto cuando cambia el dominio.
Por eso, una prueba de existencia debe indicar con precisión dónde vive el testigo.
Un error frecuente: verificar la propiedad y olvidar el dominio
Supongamos que se pide demostrar:
Existe un entero \(n\) tal que
\[ n^2=9. \]
Elegimos \(n=3\) y verificamos
\[ 3^2=9. \]
También sabemos
\[ 3\in\mathbb Z. \]
Aquí ambas obligaciones son triviales, pero ambas existen.
En problemas más abstractos, comprobar sólo una ecuación puede no bastar. El candidato puede satisfacer la identidad y, sin embargo, no pertenecer al conjunto permitido.
Existencia parametrizada
Muchas afirmaciones tienen la forma
\[ \forall x\in A\;\exists y\in B\;P(x,y). \]
Aquí el testigo \(y\) puede depender de \(x\).
Para demostrar la afirmación debemos:
- fijar \(x\in A\) arbitrario;
- construir o garantizar un \(y\in B\) apropiado;
- verificar \(P(x,y)\).
Por ejemplo:
Para todo real \(x\), existe un real \(y\) tal que
\[ y>x. \]
Tomamos un real arbitrario \(x\) y elegimos
\[ y=x+1. \]
Entonces
\[ y\in\mathbb R \]
y
\[ y=x+1>x. \]
La elección depende de \(x\), lo cual es perfectamente legítimo porque el cuantificador existencial aparece después del universal.
Esto contrasta con
\[ \exists y\in\mathbb R\;\forall x\in\mathbb R\;(y>x), \]
que pediría un único real mayor que todos los reales y es falso.
La arquitectura de existencia debe respetar el orden de cuantificadores.
Construir hacia atrás, verificar hacia adelante
En muchas pruebas existenciales ocurre una diferencia entre descubrimiento y presentación.
Para encontrar un testigo podemos trabajar hacia atrás.
Si queremos
\[ f(x)=b, \]
quizá resolvamos informalmente la ecuación y obtengamos un candidato.
Pero la prueba final debe verificar hacia adelante:
- definimos el candidato;
- comprobamos que está permitido;
- sustituimos;
- demostramos que cumple la propiedad.
Por ejemplo, para
\[ ax+b=c \]
con \(a\ne0\), podemos descubrir
\[ x=a^{-1}(c-b). \]
La prueba no consiste en decir «despejando obtenemos». Debemos verificar:
\[ a\bigl(a^{-1}(c-b)\bigr)+b = c. \]
Esta verificación convierte una intuición algebraica en una prueba existencial completa.
Comprobación
Sea \(f:A\to B\) una función sobreyectiva y sea
\[ S\subseteq B. \]
Demuestra que para todo \(y\in S\) existe \(x\in A\) tal que
\[ f(x)=y. \]
Después identifica exactamente dónde se usa la hipótesis de sobreyectividad.
Respuesta razonada.
Tomemos un elemento arbitrario
\[ y\in S. \]
Como
\[ S\subseteq B, \]
tenemos
\[ y\in B. \]
La sobreyectividad de
\[ f:A\to B \]
afirma:
\[ \forall b\in B\;\exists a\in A\;(f(a)=b). \]
Podemos aplicarla al elemento \(y\in B\). Por tanto, existe
\[ x\in A \]
tal que
\[ f(x)=y. \]
La hipótesis de sobreyectividad se usa exactamente al pasar de
\[ y\in B \]
a la existencia de una preimagen \(x\in A\).
No necesitamos construir una fórmula para \(x\). La definición de sobreyectividad ya garantiza su existencia.
Para demostrar
\[ \exists x\in A\;P(x), \]
hay que justificar al menos:
- que algún candidato pertenece a \(A\);
- que satisface \(P\).
El testigo puede exhibirse, construirse a partir de los datos o quedar garantizado por un resultado previo. Existencia no implica unicidad.
Hacia la unicidad
Una prueba existencial responde:
¿hay al menos un objeto con esta propiedad?
La unicidad añade otra pregunta:
¿puede haber más de uno?
Estas obligaciones son independientes. En la siguiente sección aprenderemos a demostrar que dos candidatos cualesquiera deben coincidir.
6.8. Unicidad: existir no basta
Una afirmación de unicidad tiene la forma
\[ \exists!x\in A\;P(x). \]
Como vimos antes, esta notación contiene dos obligaciones independientes:
\[ \boxed{ \text{existencia} \quad+\quad \text{a lo sumo uno}. } \]
La primera pide demostrar
\[ \exists x\in A\;P(x). \]
La segunda pide demostrar que no puede haber dos objetos distintos con la misma propiedad. Una forma estándar de escribirla es
\[ \forall x,y\in A\; \bigl(P(x)\land P(y)\Rightarrow x=y\bigr). \]
Por tanto,
\[ \exists!x\in A\;P(x) \]
puede descomponerse como
\[ \begin{aligned} &\left(\exists x\in A\;P(x)\right)\\ &\qquad\land \left( \forall x,y\in A\; (P(x)\land P(y)\Rightarrow x=y) \right). \end{aligned} \]
Esta separación es esencial porque encontrar un ejemplo demuestra existencia, pero no unicidad.
Un primer ejemplo
Queremos demostrar:
Existe un único real \(x\) tal que
\[ x+3=7. \]
La existencia es inmediata: tomamos
\[ x=4 \]
y verificamos
\[ 4+3=7. \]
Para la unicidad, supongamos que \(x\) e \(y\) son dos soluciones:
\[ x+3=7 \]
y
\[ y+3=7. \]
Entonces
\[ x+3=y+3. \]
Cancelando \(3\),
\[ x=y. \]
Por tanto, la solución es única.
El argumento completo no termina cuando encontramos \(4\). La segunda parte explica por qué cualquier solución debe coincidir con \(4\), o equivalentemente, por qué dos soluciones cualesquiera deben coincidir entre sí.
Dos formas habituales de demostrar unicidad
Hay dos arquitecturas muy frecuentes.
Forma A: comparar dos candidatos
Suponemos que
\[ P(x) \qquad\text{y}\qquad P(y) \]
y demostramos
\[ x=y. \]
Ésta es la forma más simétrica:
\[ \boxed{ P(x)+P(y) \longrightarrow x=y. } \]
Forma B: fijar el candidato construido
Si en la parte de existencia ya hemos construido un objeto concreto \(a\), podemos demostrar que cualquier otro candidato \(x\) debe satisfacer
\[ x=a. \]
Esquemáticamente:
\[ P(x) \longrightarrow x=a. \]
Ambas formas prueban “a lo sumo uno”. La elección depende de cuál produzca una prueba más clara.
Unicidad del neutro
En el capítulo 5 vimos este patrón en una estructura algebraica.
Supongamos que una operación binaria \(\star\) sobre un conjunto \(A\) tiene dos elementos neutros \(e\) y \(e'\).
Por ser \(e\) neutro,
\[ e\star e'=e'. \]
Por ser \(e'\) neutro,
\[ e\star e'=e. \]
Por tanto,
\[ e=e'. \]
La prueba es notablemente breve. No necesita construir el neutro; sólo muestra que, si existen dos, deben coincidir.
Así hemos probado a lo sumo uno, no existencia.
Para demostrar que existe un neutro único necesitamos además saber que al menos uno existe.
Unicidad de inversos
Supongamos que \(A\) tiene una operación asociativa con neutro \(e\), y que un elemento \(a\in A\) tiene dos inversos \(b\) y \(c\):
\[ a\star b=e, \qquad b\star a=e, \]
y
\[ a\star c=e, \qquad c\star a=e. \]
Entonces
\[ b = b\star e = b\star(a\star c). \]
Por asociatividad,
\[ b\star(a\star c) = (b\star a)\star c. \]
Como \(b\star a=e\),
\[ (b\star a)\star c = e\star c = c. \]
Luego
\[ b=c. \]
La prueba muestra otra característica frecuente: la unicidad se obtiene haciendo interactuar dos candidatos mediante la estructura disponible.
La unicidad puede depender de una hipótesis decisiva
Consideremos la ecuación
\[ ax=b \]
en un cuerpo \(F\).
Si
\[ a\ne0, \]
sabemos que existe
\[ a^{-1}. \]
La solución
\[ x=a^{-1}b \]
existe.
Ahora probemos unicidad.
Sean \(x,y\in F\) dos soluciones:
\[ ax=b \]
y
\[ ay=b. \]
Entonces
\[ ax=ay. \]
Como \(a\ne0\), podemos cancelar \(a\) y obtener
\[ x=y. \]
La hipótesis \(a\ne0\) es decisiva.
Si \(a=0\) y \(b=0\), la ecuación se convierte en
\[ 0x=0, \]
que es satisfecha por todo \(x\in F\).
Hay existencia, pero no unicidad siempre que el cuerpo tenga al menos dos elementos, lo que está garantizado por
\[ 0\ne1. \]
La unicidad no es una propiedad automática de una ecuación; depende de las hipótesis.
Existencia y unicidad pueden probarse en órdenes distintos
A veces resulta natural demostrar primero existencia y después unicidad.
Otras veces es más fácil comenzar con “a lo sumo uno” y construir el objeto al final.
Por ejemplo, si queremos demostrar que una función \(f:A\to B\) tiene una única inversa, podemos primero mostrar:
Si \(g\) y \(h\) son inversas de \(f\), entonces \(g=h\).
Después, en otro argumento, demostramos que una inversa existe bajo ciertas hipótesis.
El orden de presentación no altera la obligación lógica:
\[ \begin{aligned} \text{exactamente uno} &= \text{al menos uno}\\ &\quad+\text{a lo sumo uno}. \end{aligned} \]
Unicidad mediante inyectividad
La inyectividad es una herramienta natural para unicidad.
Supongamos que
\[ f:A\to B \]
es inyectiva y queremos resolver
\[ f(x)=b. \]
Si existen dos soluciones \(x_1,x_2\in A\), entonces
\[ f(x_1)=b=f(x_2). \]
La inyectividad da
\[ x_1=x_2. \]
Por tanto, para cada \(b\in B\) hay a lo sumo una solución de
\[ f(x)=b. \]
Si además \(f\) es sobreyectiva, entonces para cada \(b\in B\) hay al menos una solución. Juntando ambas propiedades, para cada \(b\in B\) existe una única preimagen.
Así, una función biyectiva satisface:
\[ \forall b\in B\;\exists!x\in A\;(f(x)=b). \]
Ésta es precisamente la base de la existencia de la función inversa.
Unicidad mediante una desigualdad
No toda prueba de unicidad usa igualdad algebraica o inyectividad.
Supongamos que queremos demostrar que un conjunto ordenado tiene a lo sumo un máximo.
Sean \(m\) y \(n\) dos máximos de un mismo conjunto \(S\).
Como \(m\) es máximo y \(n\in S\),
\[ n\le m. \]
Como \(n\) es máximo y \(m\in S\),
\[ m\le n. \]
Por antisimetría,
\[ m=n. \]
La estructura es la misma: dos candidatos se comparan hasta forzar coincidencia.
Unicidad mediante contradicción
También podemos demostrar “a lo sumo uno” suponiendo que existen dos candidatos distintos.
Supongamos que \(P(x)\) describe la solución de un problema y queremos probar unicidad.
Podemos asumir:
\[ P(x), \qquad P(y), \qquad x\ne y, \]
y derivar una contradicción.
Entonces no pueden existir dos candidatos distintos.
Por ejemplo, sea \(f:A\to B\) inyectiva. Para un \(b\in B\), supongamos que hay dos preimágenes distintas:
\[ f(x)=b, \qquad f(y)=b, \qquad x\ne y. \]
De las dos primeras igualdades obtenemos
\[ f(x)=f(y). \]
La inyectividad da
\[ x=y, \]
contradicción.
Por tanto, la preimagen, si existe, es única.
“A lo sumo uno” admite el caso de ninguno
La afirmación
\[ \forall x,y\in A\; (P(x)\land P(y)\Rightarrow x=y) \]
no garantiza que exista algún \(x\) con \(P(x)\).
Puede cumplirse vacíamente.
Por ejemplo, en los reales la ecuación
\[ x^2+1=0 \]
no tiene soluciones.
Sin embargo, es cierto que tiene a lo sumo una solución si formulamos ingenuamente esa condición como
\[ \begin{aligned} \forall x,y\in\mathbb R,\quad &(x^2+1=0)\land(y^2+1=0)\\ &\Rightarrow x=y. \end{aligned} \]
No hay candidatos que puedan violarla.
De hecho, la ecuación tiene cero soluciones, no una.
Este ejemplo muestra por qué “a lo sumo uno” no debe confundirse con “exactamente uno”.
Unicidad parametrizada
Muchas afirmaciones tienen la forma
\[ \forall a\in A\;\exists!b\in B\;P(a,b). \]
Para cada entrada \(a\), debemos demostrar:
- existencia de algún \(b\);
- unicidad de ese \(b\).
El objeto único puede depender de \(a\).
Por ejemplo, para todo real \(a\) existe un único real \(b\) tal que
\[ a+b=0. \]
La existencia se obtiene tomando
\[ b=-a. \]
Para la unicidad, supongamos
\[ a+b=0 \]
y
\[ a+c=0. \]
Entonces
\[ a+b=a+c. \]
Cancelando \(a\),
\[ b=c. \]
Así,
\[ \forall a\in\mathbb R\;\exists!b\in\mathbb R\;(a+b=0). \]
La notación \(-a\) queda legitimada como nombre de ese objeto único.
La unicidad legitima notación
Éste es un papel conceptual importante.
Antes de demostrar unicidad, una descripción puede referirse a varios objetos.
Después de demostrar existencia y unicidad, podemos introducir una notación definida sin ambigüedad.
Por ejemplo:
- “el neutro aditivo”;
- “el inverso multiplicativo de \(a\)”;
- “la imagen inversa” en un contexto apropiado;
- “la solución” de una ecuación bajo hipótesis que garantizan unicidad.
La palabra el tiene contenido matemático: presupone que el objeto está determinado de manera única.
Un ejemplo con funciones
Supongamos que \(f:A\to B\) es biyectiva.
Queremos demostrar:
Para todo \(b\in B\) existe un único \(a\in A\) tal que
\[ f(a)=b. \]
Existencia. Como \(f\) es sobreyectiva, para todo \(b\in B\) existe al menos un \(a\in A\) con
\[ f(a)=b. \]
Unicidad. Supongamos que \(a_1,a_2\in A\) satisfacen
\[ f(a_1)=b \]
y
\[ f(a_2)=b. \]
Entonces
\[ f(a_1)=f(a_2). \]
Como \(f\) es inyectiva,
\[ a_1=a_2. \]
Por tanto,
\[ \forall b\in B\;\exists!a\in A\;(f(a)=b). \]
Ahora podemos definir
\[ f^{-1}(b) \]
como ese único elemento de \(A\) cuya imagen es \(b\).
La función inversa no aparece mágicamente por invertir una flecha; su definición se apoya en una existencia y una unicidad previamente justificadas.
Comprobación
Sea \(F\) un cuerpo y fija \(a,b\in F\) con
\[ a\ne0. \]
Demuestra que existe un único \(x\in F\) tal que
\[ ax+b=0. \]
Respuesta razonada.
Primero probamos existencia.
Como \(a\ne0\), existe \(a^{-1}\). Tomamos
\[ x=-a^{-1}b. \]
Entonces
\[ \begin{aligned} ax+b &=a(-a^{-1}b)+b\\ &=-(aa^{-1})b+b\\ &=-b+b\\ &=0. \end{aligned} \]
Por tanto, existe al menos una solución.
Ahora probamos unicidad.
Sean \(x,y\in F\) dos soluciones:
\[ ax+b=0 \]
y
\[ ay+b=0. \]
Entonces
\[ ax+b=ay+b. \]
Cancelando aditivamente \(b\),
\[ ax=ay. \]
Como \(a\ne0\), la cancelación multiplicativa da
\[ x=y. \]
Por tanto, existe una única solución.
Podemos escribirla como
\[ x=-a^{-1}b. \]
La fórmula obtenida en la parte de existencia queda ahora identificada como la solución, no sólo como una solución.
Para demostrar
\[ \exists!x\in A\;P(x), \]
hay dos obligaciones:
- existencia: demostrar que al menos un objeto satisface \(P\);
- unicidad: demostrar que dos objetos cualesquiera que satisfacen \(P\) deben ser iguales.
“A lo sumo uno” no implica “existe uno”. Ambas partes deben estar justificadas.
Hacia la integración de arquitecturas
Ya tenemos las formas fundamentales del capítulo:
- prueba directa;
- dos direcciones;
- contraposición;
- contradicción;
- casos;
- existencia;
- unicidad.
La siguiente tarea será aprender a reconocer cómo pueden combinarse y cuándo una afirmación debe ser refutada en lugar de demostrada.
Eso nos permitirá cerrar el mapa de arquitecturas antes de pasar a los ejercicios.
6.9. Integrar arquitecturas: elegir, combinar y saber cuándo refutar
Ya conocemos varias formas fundamentales de prueba. El paso siguiente no consiste en memorizar una tabla más grande, sino en aprender a reconocer qué obligación domina el problema y qué arquitectura permite cumplirla con mayor claridad.
No existe un algoritmo que, leyendo únicamente los símbolos del enunciado, produzca la demostración. La forma lógica orienta; el contenido matemático decide qué camino funciona.
Por eso, ante un nuevo problema, una pregunta más útil que
«¿Qué método tengo que usar?»
es
«¿Qué debo dejar demostrado y qué información me dan realmente las hipótesis?»
A partir de ahí podemos decidir si conviene avanzar directamente, cambiar a una forma equivalente, dividir en casos, construir un objeto o buscar una refutación.
La forma exterior organiza primero
Consideremos una afirmación con varias capas:
\[ \forall x\in A\; \bigl(P(x)\Rightarrow \exists!y\in B\;Q(x,y)\bigr). \]
Antes de pensar en detalles, podemos leer sus obligaciones de fuera hacia dentro:
- tomar un \(x\in A\) arbitrario;
- suponer \(P(x)\);
- demostrar existencia de algún \(y\in B\) con \(Q(x,y)\);
- demostrar que cualquier otro \(y'\in B\) con \(Q(x,y')\) coincide con \(y\).
El argumento final puede contener una construcción para la existencia y una prueba directa o por contradicción para la unicidad.
La afirmación no tiene «un método». Tiene una arquitectura compuesta.
Un ejemplo integrador: una involución es biyectiva
Sea
\[ f:A\to A \]
una función que satisface
\[ f(f(x))=x \]
para todo \(x\in A\).
Queremos demostrar que \(f\) es biyectiva.
El objetivo “biyectiva” se descompone en dos obligaciones:
\[ \text{inyectiva} \qquad\text{y}\qquad \text{sobreyectiva}. \]
Las dos partes requieren recorridos distintos.
Inyectividad
Tomemos \(x,y\in A\) y supongamos
\[ f(x)=f(y). \]
Aplicando \(f\) a ambos lados,
\[ f(f(x))=f(f(y)). \]
La hipótesis de involución da
\[ x=y. \]
Por tanto, \(f\) es inyectiva.
Sobreyectividad
Tomemos ahora un elemento arbitrario
\[ y\in A. \]
Para demostrar sobreyectividad necesitamos construir una preimagen.
Elegimos
\[ x=f(y). \]
Entonces
\[ f(x) = f(f(y)) = y. \]
Por tanto, todo \(y\in A\) tiene una preimagen y \(f\) es sobreyectiva.
Hemos concluido que \(f\) es biyectiva.
La demostración combina dos arquitecturas:
- una prueba directa para la inyectividad;
- una prueba existencial para la sobreyectividad.
Además, la misma hipótesis
\[ f(f(x))=x \]
cumple dos funciones distintas según el objetivo que estamos resolviendo.
La técnica se elige localmente
En una prueba larga conviene decidir la arquitectura obligación por obligación.
Supongamos que queremos demostrar
\[ P\Longleftrightarrow Q. \]
Podemos probar
\[ P\Rightarrow Q \]
directamente y
\[ Q\Rightarrow P \]
por contraposición.
No hay ninguna exigencia de simetría metodológica.
Del mismo modo, una doble inclusión puede tener:
- una dirección inmediata por definición;
- otra que necesite una prueba por casos.
Una prueba de unicidad puede comenzar directamente comparando candidatos y cerrar un paso intermedio por contradicción.
La combinación es normal. Lo importante es que cada transición esté justificada y que todas las obligaciones del objetivo queden cerradas.
Elegir una arquitectura no es etiquetar después
Podríamos leer una demostración terminada y decir:
«Aquí hubo contradicción.»
Eso describe una parte de su forma, pero todavía no explica por qué esa forma era útil.
Una buena lectura estratégica pregunta:
- ¿qué hacía difícil la prueba directa?;
- ¿qué información apareció al negar la conclusión?;
- ¿qué disyunción obligó a separar casos?;
- ¿qué objeto necesitaba construirse?;
- ¿qué comparación forzó la unicidad?
Así empezamos a pasar de reconocer pruebas a entender por qué funcionan.
El capítulo 7 llevará esta pregunta mucho más lejos. Aquí sólo necesitamos que la elección de arquitectura sea consciente y verificable.
Un mapa inicial, no un algoritmo
La siguiente tabla puede servir como primera orientación:
| Forma del objetivo o situación | Primera pregunta útil |
|---|---|
| \(P\Rightarrow Q\) | ¿Puedo avanzar directamente desde \(P\) hasta \(Q\)? |
| \(P\Rightarrow Q\) con \(Q\) difícil de alcanzar | ¿Es más manejable \(\neg Q\Rightarrow\neg P\)? |
| negación del objetivo muy restrictiva | ¿Conduce naturalmente a una contradicción? |
| \(P\Longleftrightarrow Q\) | ¿He separado y probado las dos direcciones? |
| \(A=B\) | ¿Puedo demostrar las dos inclusiones? |
| hipótesis \(P\vee Q\) o dominio naturalmente dividido | ¿Los casos cubren todo lo posible? |
| \(\exists x\,P(x)\) | ¿Puedo exhibir, construir o garantizar un testigo? |
| \(\exists!x\,P(x)\) | ¿He separado existencia y unicidad? |
| afirmación universal sospechosa | ¿Existe un contraejemplo que satisfaga las hipótesis y viole la conclusión? |
La tabla no decide la prueba. Sólo transforma una consigna vaga en preguntas matemáticas más precisas.
Cuando la afirmación es falsa
Hasta ahora la mayoría de los ejercicios nos han pedido demostrar afirmaciones verdaderas. Pero ante una afirmación nueva no debemos presuponer que existe una prueba.
Consideremos:
Para toda función \(f:A\to B\) y todos los subconjuntos \(S,T\subseteq A\),
\[ f(S\cap T)=f(S)\cap f(T). \]
Sabemos que siempre vale una inclusión:
\[ f(S\cap T)\subseteq f(S)\cap f(T). \]
¿Vale necesariamente la igualdad?
No.
Tomemos
\[ A=\{1,2\}, \qquad B=\{0\}, \]
y definamos
\[ f(1)=0, \qquad f(2)=0. \]
Elijamos
\[ S=\{1\}, \qquad T=\{2\}. \]
Entonces
\[ S\cap T=\varnothing, \]
de modo que
\[ f(S\cap T)=f(\varnothing)=\varnothing. \]
Pero
\[ f(S)=\{0\} \]
y
\[ f(T)=\{0\}, \]
por lo que
\[ f(S)\cap f(T)=\{0\}. \]
Así,
\[ f(S\cap T)\ne f(S)\cap f(T). \]
La afirmación universal queda refutada.
Qué debe verificar un contraejemplo
Un contraejemplo completo no es un objeto que «parece problemático». Debe pasar tres controles:
- pertenecer al dominio correcto;
- satisfacer todas las hipótesis;
- hacer falsa la conclusión.
En el ejemplo anterior:
- \(f\) es efectivamente una función \(A\to B\);
- \(S\) y \(T\) son subconjuntos de \(A\);
- la igualdad propuesta falla.
Sólo después de esas verificaciones tenemos una refutación.
La búsqueda sistemática de contraejemplos se estudiará en el capítulo 9. Aquí nos basta entender su función lógica.
Un solo contraejemplo basta para una universal
Si una afirmación tiene la forma
\[ \forall x\in A\;P(x), \]
su negación es
\[ \exists x\in A\;\neg P(x). \]
Por tanto, basta un testigo de fallo.
No necesitamos demostrar que la propiedad falla muchas veces.
Esto produce una asimetría fundamental:
- para probar una universal debemos controlar todos los elementos;
- para refutarla basta uno.
En cambio, encontrar muchos ejemplos favorables nunca demuestra por sí solo una universal.
Un ejemplo favorable no es una prueba
Supongamos que alguien conjetura:
Para todo entero positivo \(n\),
\[ n^2+n+41 \]
es primo.
Podemos comprobar muchos valores y encontrar números primos.
Eso puede apoyar la conjetura, pero no demuestra la universal.
De hecho, para
\[ n=41, \]
obtenemos
\[ 41^2+41+41 = 41(41+1+1) = 41\cdot43, \]
que no es primo.
Un solo valor destruye la afirmación universal.
La lección no es buscar siempre números grandes o fórmulas famosas. Es distinguir entre:
\[ \text{evidencia por ejemplos} \]
y
\[ \text{demostración}. \]
Antes de refutar, identificar exactamente la universal
Un contraejemplo debe atacar la afirmación correcta.
Si el enunciado dice
Para todo \(x\in A\), si \(P(x)\), entonces \(Q(x)\),
el contraejemplo debe satisfacer
\[ P(x) \]
y violar
\[ Q(x). \]
Un elemento con \(\neg P(x)\) no refuta la implicación.
Por ejemplo, para refutar
Si un entero es múltiplo de \(4\), entonces es múltiplo de \(8\),
no sirve elegir \(6\): no es múltiplo de \(4\).
Sí sirve elegir
\[ 4, \]
porque satisface la hipótesis y no la conclusión.
Así, un contraejemplo a
\[ P\Rightarrow Q \]
debe realizar exactamente
\[ P\land\neg Q. \]
Equivalencias y cadenas: conservar el sentido de cada flecha
Al integrar técnicas es fácil escribir demasiado deprisa una cadena como
\[ P \Longleftrightarrow Q \Longleftrightarrow R. \]
Cada doble flecha afirma dos implicaciones.
Si alguna transformación sólo está justificada en una dirección, debemos escribir
\[ P\Rightarrow Q \]
y conservar esa orientación.
Por ejemplo, sobre los reales,
\[ x=y \Rightarrow x^2=y^2, \]
pero la recíproca es falsa:
\[ x^2=y^2 \]
permite
\[ x=y \qquad\text{o}\qquad x=-y. \]
Cambiar una flecha simple por una doble puede convertir un razonamiento correcto en uno falso.
Equivalencias múltiples: escoger suficientes conexiones
Si queremos demostrar equivalencia entre tres condiciones
\[ P,\quad Q,\quad R, \]
no necesitamos demostrar todas las implicaciones posibles.
Un ciclo
\[ P\Rightarrow Q, \qquad Q\Rightarrow R, \qquad R\Rightarrow P \]
es suficiente.
También puede bastar demostrar
\[ P\Longleftrightarrow Q \]
y
\[ Q\Longleftrightarrow R. \]
La transitividad completa las conexiones restantes.
La elección debe minimizar trabajo sin ocultar dependencias.
Diagnosticar una prueba que no avanza
Si una prueba se atasca, conviene revisar la arquitectura antes de hacer más cálculos.
Podemos preguntar:
- ¿he desplegado correctamente la definición del objetivo?;
- ¿estoy intentando demostrar una hipótesis en vez de usarla?;
- ¿me falta una dirección de una equivalencia?;
- ¿he elegido casos exhaustivos?;
- ¿estoy intentando probar una universal que quizá sea falsa?;
- ¿la contraposición ofrece información más concreta?;
- ¿la negación del objetivo produce una contradicción útil?;
- ¿en una existencia, sé qué tipo de testigo necesito?;
- ¿en una unicidad, estoy comparando realmente dos candidatos?
Estas preguntas no resuelven el problema, pero pueden localizar el tipo de bloqueo.
La demostración final y la búsqueda de la demostración
Hay una diferencia entre
\[ \text{encontrar una prueba} \]
y
\[ \text{presentar una prueba}. \]
Para encontrarla podemos probar ejemplos, trabajar hacia atrás, cambiar de representación, formular conjeturas auxiliares y abandonar intentos.
La prueba final elimina la mayor parte de ese recorrido y conserva una cadena verificable.
En este capítulo hemos estudiado principalmente esa cadena final.
En el capítulo 7 nos preguntaremos qué hacer cuando todavía no sabemos cuál debería ser esa cadena.
Comprobación integradora
Sea
\[ f:A\to B. \]
Considera las siguientes afirmaciones:
- \(f\) es biyectiva.
- Para todo \(b\in B\) existe un único \(a\in A\) tal que \(f(a)=b\).
Demuestra que son equivalentes e identifica qué parte usa sobreyectividad y cuál usa inyectividad.
Respuesta razonada.
De 1 a 2
Supongamos que \(f\) es biyectiva.
Sea \(b\in B\) arbitrario.
Como \(f\) es sobreyectiva, existe
\[ a\in A \]
tal que
\[ f(a)=b. \]
Esto prueba existencia.
Para unicidad, supongamos que
\[ f(a_1)=b \]
y
\[ f(a_2)=b. \]
Entonces
\[ f(a_1)=f(a_2). \]
Como \(f\) es inyectiva,
\[ a_1=a_2. \]
Por tanto, para cada \(b\in B\) existe una única preimagen.
De 2 a 1
Supongamos ahora que para todo \(b\in B\) existe un único \(a\in A\) con
\[ f(a)=b. \]
La existencia de una preimagen para cada \(b\) demuestra directamente que \(f\) es sobreyectiva.
Para probar inyectividad, sean \(x,y\in A\) y supongamos
\[ f(x)=f(y). \]
Llamemos
\[ b=f(x)=f(y). \]
Entonces \(x\) e \(y\) son dos preimágenes de \(b\).
Por la unicidad supuesta,
\[ x=y. \]
Así, \(f\) es inyectiva.
Por tanto, \(f\) es biyectiva.
La equivalencia integra varias obligaciones: dos direcciones, existencia, unicidad, sobreyectividad e inyectividad. Ninguna etiqueta aislada describe por completo la demostración.
La forma del objetivo indica obligaciones, no una receta única.
Una prueba puede combinar varias arquitecturas. Antes de calcular, identifica qué debes demostrar; después decide localmente qué forma de argumento hace visible el paso siguiente.
Si una afirmación universal es falsa, la respuesta correcta no es una prueba más ingeniosa, sino un contraejemplo válido.
Cierre del mapa conceptual
Con esto queda completo el repertorio básico de arquitecturas que necesitaremos:
\[ \begin{aligned} \text{directa} &\longrightarrow \text{dos direcciones}\\ &\longrightarrow \text{contraposición}\\ &\longrightarrow \text{contradicción} \longrightarrow \text{casos}\\ &\longrightarrow \text{existencia} \longrightarrow \text{unicidad}. \end{aligned} \]
No forman una jerarquía ni un orden obligatorio. Son formas recurrentes de organizar obligaciones matemáticas.
El paso final del capítulo será practicarlas hasta poder reconocer no sólo cómo se ejecutan, sino también qué error comete una prueba defectuosa y por qué otra arquitectura resulta más adecuada.
6.10. Ejercicios y soluciones desarrolladas
Los ejercicios están organizados para retirar gradualmente el andamiaje. En los primeros importa reconocer la obligación antes de demostrar; en los últimos hay que decidir qué arquitectura conviene y justificar esa elección.
Familia I. Reconocer la obligación
Ejercicio 1. Antes de empezar. Para cada objetivo, escribe qué tendría que quedar demostrado antes de intentar resolverlo:
- \(A\subseteq B\);
- \(P\Longleftrightarrow Q\);
- \(\exists x\in A\;P(x)\);
- \(\exists!x\in A\;P(x)\);
- refutar \(\forall x\in A\;P(x)\);
- demostrar \(P\Rightarrow Q\) por contraposición.
No hagas todavía ninguna prueba concreta.
Ejercicio 2. Original, recíproca y contraposición. Considera:
Si \(f:A\to B\) es inyectiva, entonces cada elemento de \(B\) tiene a lo sumo una preimagen.
Escribe:
- la afirmación en cuantificadores;
- su contraposición;
- una afirmación recíproca natural.
Decide cuáles son equivalentes a la original y cuáles requieren una hipótesis adicional para ser verdaderas.
Ejercicio 3. ¿Cubren realmente todos los casos? Para cada división del dominio \(\mathbb R\), decide si los casos son exhaustivos y si son mutuamente excluyentes:
- \(x>0\) / \(x<0\);
- \(x\ge0\) / \(x\le0\);
- \(x<1\) / \(x\ge1\);
- \(x\le2\) / \(x\ge1\).
Explica cuáles podrían sostener una prueba por casos de una afirmación universal sobre todos los reales.
Familia II. Ejecutar una arquitectura
Ejercicio 4. Preimagen y monotonía. Sea \(f:A\to B\) y sean \(U,V\subseteq B\) con
\[ U\subseteq V. \]
Demuestra directamente que
\[ f^{-1}(U)\subseteq f^{-1}(V). \]
Haz explícito en qué momento usas la definición de preimagen y en qué momento la hipótesis \(U\subseteq V\).
Ejercicio 5. Una equivalencia sobre inyectividad. Sea \(f:A\to B\). Demuestra que son equivalentes:
- \(f\) es inyectiva;
- para todo \(b\in B\), el conjunto \[ f^{-1}(\{b\}) \] tiene a lo sumo un elemento.
Separa claramente las dos direcciones.
Ejercicio 6. Contraposición funcional. Sean
\[ f:A\to B, \qquad g:B\to C. \]
Demuestra por contraposición:
Si \(g\circ f\) es inyectiva, entonces \(f\) es inyectiva.
No uses como prueba principal la demostración directa ya vista en el capítulo.
Ejercicio 7. Una prueba por casos. Demuestra que para todo real \(x\),
\[ |x-2|\ge 2-x. \]
Elige casos exhaustivos a partir de la definición del valor absoluto. Indica si son también mutuamente excluyentes.
Familia III. Existencia y unicidad
Ejercicio 8. Construir un punto intermedio distinto. Sean \(a,b\in\mathbb R\) con
\[ a\ne b. \]
Demuestra que existe \(c\in\mathbb R\) tal que
\[ c\ne a \qquad\text{y}\qquad c\ne b. \]
Construye un testigo a partir de \(a\) y \(b\) y verifica ambas desigualdades.
Ejercicio 9. Unicidad de la inversa funcional. Sea \(f:A\to B\). Supón que \(g,h:B\to A\) satisfacen
\[ g\circ f=\operatorname{id}_A, \qquad f\circ g=\operatorname{id}_B, \]
y también
\[ h\circ f=\operatorname{id}_A, \qquad f\circ h=\operatorname{id}_B. \]
Demuestra que
\[ g=h. \]
No presupongas que “la inversa” es única antes de demostrarlo.
Ejercicio 10. Existencia única parametrizada. Sea \(F\) un cuerpo y fija \(a\in F\). Demuestra:
\[ \forall b\in F\;\exists!x\in F\;(x+a=b). \]
Construye el candidato y después compara dos soluciones.
Familia IV. Reparar argumentos
Ejercicio 11. Confundir recíproca con contraposición. Alguien quiere demostrar:
Si \(n\) es múltiplo de \(6\), entonces \(n\) es múltiplo de \(3\).
Escribe:
«Por contraposición, supongo que \(n\) es múltiplo de \(3\) y demostraré que es múltiplo de \(6\)».
Explica exactamente qué error lógico contiene. Escribe la contraposición correcta y demuestra el resultado.
Ejercicio 12. Un caso desaparecido. Se quiere demostrar que
\[ x^2\ge0 \]
para todo real \(x\). Se presenta:
«Si \(x>0\), entonces \(x^2>0\). Si \(x<0\), entonces \(-x>0\) y también \(x^2=(-x)^2>0\). Por tanto, \(x^2\ge0\) para todo real \(x\)».
Diagnostica el argumento y repáralo con una partición exhaustiva.
Ejercicio 13. Un testigo fuera del dominio. Se quiere probar:
Para todo \(a\in\mathbb Z\) existe \(x\in\mathbb Z\) tal que
\[ 2x=a. \]
Alguien propone
\[ x=\frac{a}{2}. \]
Explica por qué esta fórmula no demuestra la afirmación. Decide si la afirmación universal es verdadera o falsa y actúa en consecuencia.
Familia V. Transferencia y elección autónoma
Ejercicio 14. Elegir arquitectura para una identidad de conjuntos. Demuestra, para conjuntos arbitrarios \(A,B,C\),
\[ A\setminus(B\cup C) = (A\setminus B)\cap(A\setminus C). \]
Antes de la prueba, indica qué arquitectura eliges y por qué. No cites simplemente una ley de De Morgan: desarrolla la justificación a partir de pertenencia.
Ejercicio 15. Una caracterización global de la inyectividad. Sea \(f:A\to B\). Demuestra que son equivalentes:
- \(f\) es inyectiva;
- para todo subconjunto \(S\subseteq A\), \[ f^{-1}(f(S))=S. \]
Recuerda que para toda función siempre se cumple
\[ S\subseteq f^{-1}(f(S)). \]
Determina dónde es necesaria la inyectividad para obtener la inclusión inversa y, en la recíproca, elige un subconjunto que permita recuperar la igualdad de dos entradas con la misma imagen.
Soluciones desarrolladas
Solución 1. Antes de empezar
- Para \(A\subseteq B\), debemos tomar un elemento arbitrario \(x\in A\) y demostrar \(x\in B\).
- Para \(P\Longleftrightarrow Q\), debemos demostrar las dos implicaciones: \[ P\Rightarrow Q \qquad\text{y}\qquad Q\Rightarrow P. \]
- Para \(\exists x\in A\;P(x)\), debemos justificar algún testigo \(a\in A\) y verificar \(P(a)\).
- Para \(\exists!x\in A\;P(x)\), necesitamos existencia y además demostrar que dos candidatos cualesquiera coinciden: \[ P(x)\land P(y)\Rightarrow x=y. \]
- Para refutar \(\forall x\in A\;P(x)\), basta encontrar \(a\in A\) con \(\neg P(a)\).
- Para demostrar \(P\Rightarrow Q\) por contraposición, debemos demostrar \[ \neg Q\Rightarrow\neg P. \]
El ejercicio no pide todavía contenido matemático. Su objetivo es separar la lectura del problema de la ejecución de una técnica.
Solución 2. Original, recíproca y contraposición
La afirmación original puede escribirse como
\[ \begin{aligned} f\text{ inyectiva} &\Rightarrow \forall b\in B,\\ &\qquad \forall x,y\in A,\\ &\qquad f(x)=b\land f(y)=b\\ &\qquad\Rightarrow x=y. \end{aligned} \]
La segunda parte expresa que cada \(b\) tiene a lo sumo una preimagen.
Una contraposición natural de la afirmación completa es:
Si existe \(b\in B\) con dos preimágenes distintas, entonces \(f\) no es inyectiva.
En símbolos, si existen \(x\ne y\) tales que
\[ f(x)=b=f(y), \]
entonces
\[ f(x)=f(y) \]
con \(x\ne y\), lo que viola la inyectividad. Esta contraposición es equivalente a la original.
Una recíproca natural es:
Si cada \(b\in B\) tiene a lo sumo una preimagen, entonces \(f\) es inyectiva.
En este caso la recíproca también es verdadera, pero no por ser recíproca: necesita prueba. Si
\[ f(x)=f(y), \]
llamamos \(b=f(x)=f(y)\). Entonces \(x\) e \(y\) son dos preimágenes de \(b\) y, por la hipótesis “a lo sumo una”, deben coincidir. Por tanto, \(f\) es inyectiva.
No hace falta sobreyectividad. “A lo sumo una preimagen” permite que algunos \(b\in B\) no tengan ninguna.
Solución 3. ¿Cubren realmente todos los casos?
- \(x>0\) / \(x<0\) no es exhaustivo: falta \(x=0\). Sí son mutuamente excluyentes.
- \(x\ge0\) / \(x\le0\) es exhaustivo, pero no excluyente: \(x=0\) pertenece a ambos casos.
- \(x<1\) / \(x\ge1\) es exhaustivo y mutuamente excluyente.
- \(x\le2\) / \(x\ge1\) es exhaustivo, pero se solapa en todo el intervalo \([1,2]\).
Las divisiones 2, 3 y 4 pueden sostener una prueba universal por casos si en cada rama se demuestra la misma conclusión. La primera no basta sin añadir el caso \(x=0\).
Solución 4. Preimagen y monotonía
Sea
\[ x\in f^{-1}(U). \]
Por definición de preimagen,
\[ f(x)\in U. \]
Como
\[ U\subseteq V, \]
se sigue que
\[ f(x)\in V. \]
Aplicando de nuevo la definición de preimagen,
\[ x\in f^{-1}(V). \]
Puesto que \(x\) era arbitrario,
\[ f^{-1}(U)\subseteq f^{-1}(V). \]
La definición de preimagen se usa al principio y al final; la inclusión \(U\subseteq V\) constituye el paso intermedio.
Solución 5. Una equivalencia sobre inyectividad
De 1 a 2. Supongamos que \(f\) es inyectiva. Fijemos \(b\in B\) y supongamos que \(x,y\in f^{-1}(\{b\})\). Entonces
\[ f(x)=b \qquad\text{y}\qquad f(y)=b, \]
de modo que
\[ f(x)=f(y). \]
Por inyectividad,
\[ x=y. \]
Así, \(f^{-1}(\{b\})\) tiene a lo sumo un elemento.
De 2 a 1. Supongamos ahora que toda fibra
\[ f^{-1}(\{b\}) \]
tiene a lo sumo un elemento. Sean \(x,y\in A\) con
\[ f(x)=f(y). \]
Llamemos
\[ b=f(x)=f(y). \]
Entonces
\[ x,y\in f^{-1}(\{b\}). \]
Como esa fibra tiene a lo sumo un elemento,
\[ x=y. \]
Por tanto, \(f\) es inyectiva.
Solución 6. Contraposición funcional
Queremos demostrar:
\[ g\circ f\text{ inyectiva} \Rightarrow f\text{ inyectiva}. \]
La contraposición es:
\[ f\text{ no inyectiva} \Rightarrow g\circ f\text{ no inyectiva}. \]
Supongamos que \(f\) no es inyectiva. Entonces existen \(x,y\in A\) tales que
\[ x\ne y \]
y
\[ f(x)=f(y). \]
Aplicando \(g\),
\[ g(f(x))=g(f(y)). \]
Es decir,
\[ (g\circ f)(x)=(g\circ f)(y). \]
Como \(x\ne y\), la composición no es inyectiva.
Hemos demostrado la contraposición y, por equivalencia lógica, la implicación original.
Solución 7. Una prueba por casos
La definición de valor absoluto aplicada a \(x-2\) sugiere separar:
\[ x-2\ge0 \qquad\text{o}\qquad x-2<0, \]
es decir,
\[ x\ge2 \qquad\text{o}\qquad x<2. \]
Son casos exhaustivos y mutuamente excluyentes.
Caso 1: \(x\ge2\). Entonces
\[ |x-2|=x-2. \]
Queremos comprobar
\[ x-2\ge2-x. \]
Esto equivale a
\[ 2x\ge4, \]
que es cierto porque \(x\ge2\).
Caso 2: \(x<2\). Entonces
\[ |x-2|=-(x-2)=2-x. \]
Por tanto,
\[ |x-2|=2-x, \]
y en particular
\[ |x-2|\ge2-x. \]
Así la desigualdad vale para todo real \(x\).
Solución 8. Construir un punto intermedio distinto
Tomemos
\[ c=\frac{a+b}{2}. \]
Claramente \(c\in\mathbb R\).
Si \(c=a\), entonces
\[ \frac{a+b}{2}=a, \]
de donde
\[ a+b=2a \]
y por tanto
\[ b=a, \]
contradiciendo \(a\ne b\).
Del mismo modo, si \(c=b\), entonces
\[ a=b. \]
Por tanto,
\[ c\ne a \qquad\text{y}\qquad c\ne b. \]
Así existe un real distinto de ambos.
No hemos necesitado suponer un orden entre \(a\) y \(b\); sólo que sean distintos.
Solución 9. Unicidad de la inversa funcional
Queremos demostrar que para todo \(b\in B\),
\[ g(b)=h(b). \]
Usamos las identidades disponibles:
\[ g = g\circ\operatorname{id}_B. \]
Como
\[ f\circ h=\operatorname{id}_B, \]
obtenemos
\[ g = g\circ(f\circ h). \]
Por asociatividad de la composición,
\[ g\circ(f\circ h) = (g\circ f)\circ h. \]
Pero
\[ g\circ f=\operatorname{id}_A. \]
Luego
\[ g = \operatorname{id}_A\circ h = h. \]
Por tanto,
\[ g=h. \]
La prueba compara dos candidatos a inversa sin usar previamente la frase “la inversa”.
Solución 10. Existencia única parametrizada
Fijemos \(b\in F\) arbitrario.
Queremos resolver
\[ x+a=b. \]
Existencia. Elegimos
\[ x=b+(-a). \]
Entonces
\[ \begin{aligned} x+a &=(b+(-a))+a\\ &=b+((-a)+a)\\ &=b+0\\ &=b. \end{aligned} \]
Así existe al menos una solución.
Unicidad. Supongamos que \(x\) e \(y\) satisfacen
\[ x+a=b \]
y
\[ y+a=b. \]
Entonces
\[ x+a=y+a. \]
Por cancelación aditiva,
\[ x=y. \]
Como \(b\) era arbitrario,
\[ \forall b\in F\;\exists!x\in F\;(x+a=b). \]
Solución 11. Confundir recíproca con contraposición
La afirmación original es
\[ P\Rightarrow Q, \]
donde
\[ P:\ n\text{ es múltiplo de }6, \]
y
\[ Q:\ n\text{ es múltiplo de }3. \]
El texto propuesto comienza con \(Q\) e intenta demostrar \(P\). Eso es la recíproca
\[ Q\Rightarrow P, \]
no la contraposición.
Además, la recíproca es falsa: \(3\) es múltiplo de \(3\) y no de \(6\).
La contraposición correcta es
Si \(n\) no es múltiplo de \(3\), entonces \(n\) no es múltiplo de \(6\).
Para probarla, supongamos que \(n\) no es múltiplo de \(3\). Si \(n\) fuera múltiplo de \(6\), existiría \(k\in\mathbb Z\) con
\[ n=6k=3(2k), \]
lo cual haría a \(n\) múltiplo de \(3\), contradiciendo la hipótesis.
Por tanto, \(n\) no es múltiplo de \(6\). La contraposición queda demostrada y, con ella, la afirmación original.
Solución 12. Un caso desaparecido
Los casos
\[ x>0 \qquad\text{y}\qquad x<0 \]
no cubren \(x=0\).
Podemos reparar la prueba usando tres casos exhaustivos:
Caso 1: \(x>0\). Entonces
\[ x^2>0. \]
Caso 2: \(x=0\). Entonces
\[ x^2=0. \]
Caso 3: \(x<0\). Entonces
\[ -x>0 \]
y
\[ x^2=(-x)^2>0. \]
En todos los casos,
\[ x^2\ge0. \]
También podríamos usar dos casos exhaustivos, por ejemplo \(x\ge0\) y \(x<0\).
Solución 13. Un testigo fuera del dominio
La fórmula
\[ x=\frac{a}{2} \]
siempre produce un número racional o real, pero no necesariamente un entero.
Si
\[ a=1, \]
entonces
\[ x=\frac{1}{2}\notin\mathbb Z. \]
De hecho, el caso \(a=1\) refuta toda la afirmación:
no existe \(x\in\mathbb Z\) tal que \(2x=1\).
Por tanto, la universal es falsa.
El error no consiste sólo en una verificación incompleta del candidato; revela que no existe testigo en el dominio para ciertos valores de \(a\).
Una versión verdadera sería:
Para todo entero par \(a\) existe \(x\in\mathbb Z\) tal que \(2x=a\).
Si \(a=2k\), basta elegir \(x=k\).
Solución 14. Elegir arquitectura para una identidad de conjuntos
Como el objetivo es una igualdad de conjuntos, elegimos doble inclusión.
Primera inclusión
Sea
\[ x\in A\setminus(B\cup C). \]
Entonces
\[ x\in A \]
y
\[ x\notin B\cup C. \]
La segunda condición significa
\[ x\notin B \qquad\text{y}\qquad x\notin C. \]
Por tanto,
\[ x\in A\setminus B \]
y
\[ x\in A\setminus C. \]
Luego
\[ x\in(A\setminus B)\cap(A\setminus C). \]
Así,
\[ A\setminus(B\cup C) \subseteq (A\setminus B)\cap(A\setminus C). \]
Segunda inclusión
Sea ahora
\[ x\in(A\setminus B)\cap(A\setminus C). \]
Entonces
\[ x\in A\setminus B \]
y
\[ x\in A\setminus C. \]
De ambas pertenencias obtenemos
\[ x\in A, \qquad x\notin B, \qquad x\notin C. \]
Por tanto,
\[ x\notin B\cup C. \]
Como además \(x\in A\),
\[ x\in A\setminus(B\cup C). \]
Así,
\[ (A\setminus B)\cap(A\setminus C) \subseteq A\setminus(B\cup C). \]
Las dos inclusiones prueban la igualdad.
Solución 15. Una caracterización global de la inyectividad
Primero recordemos que, para cualquier función y cualquier \(S\subseteq A\),
\[ S\subseteq f^{-1}(f(S)). \]
En efecto, si \(x\in S\), entonces
\[ f(x)\in f(S), \]
por lo que
\[ x\in f^{-1}(f(S)). \]
De 1 a 2
Supongamos que \(f\) es inyectiva y fijemos \(S\subseteq A\).
Ya sabemos
\[ S\subseteq f^{-1}(f(S)). \]
Para la inclusión inversa, sea
\[ x\in f^{-1}(f(S)). \]
Entonces
\[ f(x)\in f(S). \]
Por definición de imagen, existe \(s\in S\) tal que
\[ f(s)=f(x). \]
Como \(f\) es inyectiva,
\[ s=x. \]
Puesto que \(s\in S\),
\[ x\in S. \]
Así,
\[ f^{-1}(f(S))\subseteq S. \]
Por doble inclusión,
\[ f^{-1}(f(S))=S. \]
De 2 a 1
Supongamos ahora que
\[ f^{-1}(f(S))=S \]
para todo \(S\subseteq A\).
Sean \(x,y\in A\) y supongamos
\[ f(x)=f(y). \]
Elegimos el subconjunto
\[ S=\{x\}. \]
Como
\[ f(y)=f(x)\in f(\{x\}), \]
tenemos
\[ y\in f^{-1}(f(\{x\})). \]
Por la hipótesis,
\[ f^{-1}(f(\{x\}))=\{x\}. \]
Luego
\[ y\in\{x\}, \]
y por tanto
\[ y=x. \]
Así, \(f\) es inyectiva.
La elección del singleton fue decisiva: convierte la igualdad global para todos los subconjuntos en información sobre dos entradas particulares.
Del repertorio a la práctica
Los ejercicios del capítulo han obligado a distinguir varias decisiones que al principio pueden parecer similares:
- usar una hipótesis frente a intentar demostrarla;
- demostrar una implicación frente a demostrar su recíproca;
- cambiar a la contraposición frente a iniciar una contradicción;
- separar casos exhaustivos frente a enumerar ejemplos;
- exhibir existencia frente a demostrar unicidad;
- intentar probar una universal frente a buscar un contraejemplo.
El objetivo no es que cada demostración lleve una etiqueta. Es que, al leer una afirmación, podamos reconstruir qué obligaciones contiene y verificar que el argumento realmente las cumple.
En el capítulo siguiente cambiaremos el punto de vista. Ya no partiremos siempre de una arquitectura evidente. La pregunta será qué hacer cuando sabemos qué debemos demostrar, pero todavía no sabemos cómo encontrar la idea que lo demuestra.
Índice del libro y bibliografía · ← Capítulo 5 · Capítulo 7 →