levels
This commit is contained in:
@@ -9,31 +9,38 @@ Title ""
|
||||
|
||||
open Set
|
||||
|
||||
set_option tactic.hygienic false
|
||||
|
||||
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 `ℕ+`.
|
||||
|
||||
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
|
||||
Hint "Fang mal mit `ext i` an."
|
||||
ext i
|
||||
rw [mem_union]
|
||||
simp_rw [mem_image]
|
||||
@@ -63,3 +70,6 @@ Statement
|
||||
constructor
|
||||
assumption
|
||||
assumption
|
||||
|
||||
NewTactic ext
|
||||
LemmaTab "Set"
|
||||
|
||||
@@ -7,15 +7,27 @@ Level 2
|
||||
|
||||
Title ""
|
||||
|
||||
open Set
|
||||
|
||||
Introduction
|
||||
"
|
||||
Das Urbild einer Menge `U` unter einer Funktion `f` ist mit `f ⁻¹' U` bezeichnet.
|
||||
|
||||
Note: `f ⁻¹` ist das abstrakte, gruppentheoretische Inverse von `f`, was generell nicht existieren muss,
|
||||
deshalb wurde die andere Notation hier gewählt
|
||||
|
||||
"
|
||||
|
||||
Statement
|
||||
""
|
||||
(U : Set ℕ) (f : ℕ → ℕ) : U ⊆ f ⁻¹' (f '' U) := by
|
||||
Hint "Fang wieder mal mit `intro` an."
|
||||
intro x hx
|
||||
Hint "Mit `rw [preimage]` kannst du sehen, wie das Urbild definiert ist."
|
||||
rw [preimage]
|
||||
Hint "Also musst du jetzt ein Element `y` angeben sodass `f y` in `f '' U` liegt."
|
||||
use x
|
||||
constructor
|
||||
assumption
|
||||
rfl
|
||||
|
||||
NewDefinition Set.preimage
|
||||
|
||||
@@ -9,6 +9,8 @@ Title ""
|
||||
|
||||
Introduction
|
||||
"
|
||||
Wenn man Aussagen über Familien von Mengen machen will, macht man das mit
|
||||
`(N : I → Set V)`, also also Funktionen von einer Indexmenge.
|
||||
"
|
||||
|
||||
Statement
|
||||
|
||||
Reference in New Issue
Block a user