This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
import Adam.Metadata
import Mathlib
Game "Adam"
World "SetFunction"
Level 1
Title ""
open Set
Introduction
"
Wenn man mit Abildungen auf Mengen arbeitet, muss man in Lean etwas aufpassen, um
die Typen (z.B. `(U : Type _)`) und Mengen von diesen Typen (z.B. `(S : Set U)`)
zu unterscheiden.
Abbildungen sind prinzipiell immer auf Typen definiert. Wenn eine Funktion nicht
auf dem ganzen Typen definiert ist, hat man prinzipiell zwei Optionen:
1. Nach dem Motto \"Chunk in, chunk out\" werden in der Mathlib Funktionen
oft einfach auf irgendwas gesetzt wenn sie nicht definiert sind, so gibt `1 / 0` in `ℕ`
einfach `0`. Dies funktioniert, weil dann alle relevanten Theoreme, die von `x / n`
handeln, dann Annahmen der Form `(h : n ≠ 0)` haben.
2. Man kann auch Funktionen auf *Subtypen* definieren, also z.B. auf `ℕ+`.
"
-- /- Image of Union -/
-- lemma image_unionₓ
Statement
""
(S T : Set ℕ) (f : ℕ → ℕ) : (f '' S) ∪ (f '' T) = f '' (S ∪ T) := by