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
set_option tactic.hygienic false
Introduction
"
Das Bild einer Funktion ist eine Menge, die als `f '' S` geschrieben wird.
In der Mathe ist das normalerweise als $f(S)$ geschrieben.
Mit `ext i` kann man Gleichheit von Mengen angehen.
"
-- 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 \"Junk in, junk 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