La semana en Calculemus (4 de mayo de 2024)

Esta semana he publicado en Calculemus las demostraciones con Lean4 de las siguientes propiedades:

A continuación se muestran las soluciones.

1. Imagen de la interseccion general mediante aplicaciones inyectivas

Demostrar con Lean4 que si \(f\) es inyectiva, entonces
\[⋂ᵢf[Aᵢ] ⊆ f\left[⋂ᵢAᵢ\right] \]

Para ello, completar la siguiente teoría de Lean4:

1.1. Demostración en lenguaje natural

Sea \(y ∈ ⋂ᵢf[Aᵢ]\). Entonces,
\begin{align}
& (∀i ∈ I)y ∈ f[Aᵢ] \tag{1} \\
& y ∈ f[Aᵢ]
\end{align}
Por tanto, existe un \(x ∈ Aᵢ\) tal que
\[ f(x) = y \tag{2} \]

Veamos que \(x ∈ ⋂ᵢAᵢ\). Para ello, sea \(j ∈ I\). Por (1),
\[ y ∈ f[Aⱼ] \]
Luego, existe un \(z\) tal que
\begin{align}
&z ∈ Aⱼ \tag{3} \\
&f(z) = y
\end{align}
Pot (2),
\[ f(x) = f(z) \]
y, por ser \(f\) inyectiva,
\[ x = z \]
y, por (3),
\[ x ∈ Aⱼ \]

Puesto que \(x ∈ ⋂ᵢAᵢ\) se tiene que \(f(x) ∈ f\left[⋂ᵢAᵢ\right]\) y, por (2), \(y ∈ f\left[⋂ᵢAᵢ\right]\).

1.2. Demostraciones con Lean4

Se puede interactuar con las demostraciones anteriores en Lean 4 Web.

1.3. Demostraciones con Isabelle/HOL

2. Imagen inversa de la unión general

Demostrar con Lean4 que
\[ f⁻¹\left[⋃ᵢ Bᵢ\right] = ⋃ᵢ f⁻¹[Bᵢ] \]

Para ello, completar la siguiente teoría de Lean4:

2.1. Demostración en lenguaje natural

Tenemos que demostrar que, para todo \(x\),
\[ x ∈ f⁻¹\left[⋃ᵢ Bᵢ\right] ↔ x ∈ ⋃ᵢ f⁻¹[Bᵢ] \]
y lo haremos demostrando las dos implicaciones.

(⟹) Supongamos que \(x ∈ f⁻¹\left[⋃ᵢ Bᵢ\right]\). Entonces, por la definición de la imagen inversa,
\[ f(x) ∈ ⋃ᵢ Bᵢ \]
y, por la definición de la unión, existe un \(i\) tal que
\[ f(x) ∈ Bᵢ \]
y, por la definición de la imagen inversa,
\[ x ∈ f⁻¹[Bᵢ] \]
y, por la definición de la unión,
\[ x ∈ ⋃ᵢ f⁻¹[Bᵢ] \]

(⟸) Supongamos que \(x ∈ ⋃ᵢ f⁻¹[Bᵢ]\). Entonces, por la definición de la unión, existe un \(i\) tal que
\[ x ∈ f⁻¹[Bᵢ] \]
y, por la definición de la imagen inversa,
\[ f(x) ∈ Bᵢ \]
y, por la definición de la unión,
\[ f(x) ∈ ⋃ᵢ Bᵢ \]
y, por la definición de la imagen inversa,
\[ x ∈ f⁻¹\left[⋃ᵢ Bᵢ\right] \]

2.2. Demostraciones con Lean4

Se puede interactuar con las demostraciones anteriores en Lean 4 Web.

2.3. Demostraciones con Isabelle/HOL

3. Imagen inversa de la intersección general

Demostrar con Lean4 que
\[ f⁻¹\left[\bigcap_{i \in I} B_i\right] = \bigcap_{i \in I} f⁻¹[B_i] \]

Para ello, completar la siguiente teoría de Lean4:

3.1. Demostración en lenguaje natural

Se demuestra mediante la siguiente cadena de equivalencias
\begin{align}
x ∈ f⁻¹\left[\bigcap_{i \in I} B_i\right]
&↔ f(x) ∈ \bigcap_{i \in I} B_i \\
&↔ (∀ i) f(x) ∈ B_i \\
&↔ (∀ i) x ∈ f⁻¹[B_i] \\
&↔ x ∈ \bigcap_{i \in I} f⁻¹[B_i]
\end{align}

3.2. Demostraciones con Lean4

Se puede interactuar con las demostraciones anteriores en Lean 4 Web.

3.3. Demostraciones con Isabelle/HOL

4. Teorema de Cantor

Demostrar con Lean4 el teorema de Cantor; es decir, que no existe ninguna aplicación suprayectiva de un conjunto en el conjunto de sus subconjuntos.

Para ello, completar la siguiente teoría de Lean4:

4.1. Demostración en lenguaje natural

Sea \(f\) una función de \(A\) en el conjunto de los subconjuntos \(A\). Tenemos que demostrar que \(f\) no es suprayectiva. Lo haremos por reducción al absurdo. Para ello, supongamos que \(f\) es suprayectiva y consideremos el conjunto
\[ S := \{i ∈ A | i ∉ f(i)\} \tag{1} \]
Entonces, tiene que existir un \(j ∈ A\) tal que
\[ f(j) = S \tag{2} \]
Se pueden dar dos casos: \(j ∈ S\) ó \(j ∉ S\). Veamos que ambos son imposibles.

Caso 1: Supongamos que \(j ∈ S\). Entonces, por (1)
\[ j ∉ f(j) \]
y, por (2),
\[ j ∉ S \]
que es una contradicción.

Caso 2: Supongamos que \(j ∉ S\). Entonces, por (1)
\[ j ∈ f(j) \]
y, por (2),
\[ j ∈ S \]
que es una contradicción.

4.2. Demostraciones con Lean4

Se puede interactuar con las demostraciones anteriores en Lean 4 Web.

4.3. Demostraciones con Isabelle/HOL

5. En los monoides, los inversos a la izquierda y a la derecha son iguales

Un monoide es un conjunto junto con una operación binaria que es asociativa y tiene elemento neutro.

En Lean4, está definida la clase de los monoides (como Monoid) y sus propiedades características son

Demostrar que si \(M\) es un monoide, \(a ∈ M\), \(b\) es un inverso de \(a\) por la izquierda y \(c\) es un inverso de \(a\) por la derecha, entonces \(b = c\).

Para ello, completar la siguiente teoría de Lean4:

5.1. Demostración en lenguaje natural

Por la siguiente cadena de igualdades
\begin{align}
b &= b * 1 &&\text{[por mul_one]} \\
&= b * (a * c) &&\text{[por hipótesis]} \\
&= (b * a) * c &&\text{[por mul_assoc]} \\
&= 1 * c &&\text{[por hipótesis]} \\
&= c &&\text{[por one_mul]} \\
\end{align}

5.2. Demostraciones con Lean4

Se puede interactuar con las demostraciones anteriores en Lean 4 Web.

5.3. Demostraciones con Isabelle/HOL