La semana en Calculemus (16 de marzo de 2024)

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

A continuación se muestran las soluciones.

1. s ∪ (⋂ᵢ Aᵢ) = ⋂ᵢ (Aᵢ ∪ s)

Demostrar con Lean4 que
\[ s ∪ (⋂_i A_i) = ⋂_i (A_i ∪ s) \]

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

1.1. Demostración en lenguaje natural

Tenemos que demostrar que para todo \(x\),
\[ x ∈ s ∪ ⋂_i A_i ↔ x ∈ ⋂_i (A i ∪ s) \]
Lo haremos mediante la siguiente cadena de equivalencias
\begin{align}
x ∈ s ∪ ⋂_i A_i &↔ x ∈ s ∨ x ∈ ⋂_i A_i \\
&↔ x ∈ s ∨ (∀ i)[x ∈ A_i] \\
&↔ (∀ i)[x ∈ s ∨ x ∈ A_i] \\
&↔ (∀ i)[x ∈ A_i ∨ x ∈ s] \\
&↔ (∀ i)[x ∈ A_i ∪ s] \\
&↔ x ∈ ⋂_i (A_i ∪ s)
\end{align}

1.2. Demostraciones con Lean4

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

1.3. Demostraciones con Isabelle/HOL

2. f⁻¹[u ∩ v] = f⁻¹[u] ∩ f⁻¹[v]

En Lean, la imagen inversa de un conjunto s (de elementos de tipo β) por la función f (de tipo α → β) es el conjunto f ⁻¹' s de elementos x (de tipo α) tales que f x ∈ s.

Demostrar con Lean4 que

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⁻¹[u ∩ v] ↔ x ∈ f⁻¹[u] ∩ f⁻¹[v] \]
Lo haremos mediante la siguiente cadena de equivalencias
\begin{align}
x ∈ f⁻¹[u ∩ v] &↔ f x ∈ u ∩ v \\
&↔ f x ∈ u ∧ f x ∈ v \\
&↔ x ∈ f⁻¹[u] ∧ x ∈ f⁻¹[v] \\
&↔ x ∈ f⁻¹[u] ∩ f⁻¹[v] \\
\end{align}

2.2. Demostraciones con Lean4

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

2.3. Demostraciones con Isabelle/HOL

3. f[s ∪ t] = f[s] ∪ f[t]

En Lean4, la imagen de un conjunto s por una función f se representa por f '' s; es decir,

Demostrar con Lean4 que

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

2.1. Demostración en lenguaje natural

Tenemos que demostrar, para todo \(y\), que
\[ y ∈ f[s ∪ t] ↔ y ∈ f[s] ∪ f[t] \]
Lo haremos mediante la siguiente cadena de equivalencias
\begin{align}
y ∈ f[s ∪ t] &↔ (∃x)(x ∈ s ∪ t ∧ f x = y) \\
&↔ (∃x)((x ∈ s ∨ x ∈ t) ∧ f x = y) \\
&↔ (∃x)((x ∈ s ∧ f x = y) ∨ (x ∈ t ∧ f x = y)) \\
&↔ (∃x)(x ∈ s ∧ f x = y) ∨ (∃x)(x ∈ t ∧ f x = y) \\
&↔ y ∈ f[s] ∨ y ∈ f[t] \\
&↔ y ∈ f[s] ∪ f[t]
\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. s ⊆ f⁻¹[f[s]​]

Demostrar que si \(s\) es un subconjunto del dominio de la función \(f\), entonces \(s\) está contenido en la imagen inversa de la imagen de \(s\) por \(f\); es decir,
\[ s ⊆ f⁻¹[f[s]] \]

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

4.1. Demostración en lenguaje natural

Se demuestra mediante la siguiente cadena de implicaciones
\begin{align}
x ∈ s &⟹ f(x) ∈ f[s] \\
&⟹ x ∈ f⁻¹[f[s]]
\end{align}

4.2. Demostraciones con Lean4

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

4.3. Demostraciones con Isabelle/HOL

5. f[s] ⊆ u ↔ s ⊆ f⁻¹[u]

Demostrar con Lean4 que
\[ f[s] ⊆ u ↔ s ⊆ f⁻¹[u] \]

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

5.1. Demostración en lenguaje natural

Los demostraremos probando las dos implicaciones.

(⟹) Supongamos que
\[ f[s] ⊆ u \tag{1} \]
y tenemos que demostrar que
\[ s ⊆ f⁻¹[u] \]
Se prueba mediante las siguientes implicaciones
\begin{align}
x ∈ s &⟹ f(x) ∈ f[s] \\
&⟹ f(x) ∈ u &&\text{[por (1)]} \\
&⟹ x ∈ f⁻¹[u]
\end{align}

(⟸) Supongamos que
\[ s ⊆ f⁻¹[u] \tag{2} \]
y tenemos que demostrar que
\[ f[s] ⊆ u \]
Para ello, sea \(y ∈ f[s]\). Entonces, existe un
\[ x ∈ s \tag{3} \]
tal que
\[ y = f(x) \tag{4} \]
Entonces,
\begin{align}
&x ∈ f⁻¹[u] &&\text{[por (2) y (3)]} \\
⟹ &f(x) ∈ u \\
⟹ &y ∈ u &&\text{[por (4)]}
\end{align}

5.2. Demostraciones con Lean4

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

5.3. Demostraciones con Isabelle/HOL