set theory levels
parent
73a44bd057
commit
404f346920
@ -1,5 +1,28 @@
|
||||
import TestGame.Levels.SetTheory.T01_Set
|
||||
import TestGame.Levels.SetTheory.L01_Univ
|
||||
import TestGame.Levels.SetTheory.L02_Empty
|
||||
import TestGame.Levels.SetTheory.L03_Subset
|
||||
import TestGame.Levels.SetTheory.L04_SubsetEmpty
|
||||
import TestGame.Levels.SetTheory.L05_Empty
|
||||
import TestGame.Levels.SetTheory.L06_Nonempty
|
||||
import TestGame.Levels.SetTheory.L07_UnionInter
|
||||
import TestGame.Levels.SetTheory.L08_UnionInter
|
||||
import TestGame.Levels.SetTheory.L09_Complement
|
||||
import TestGame.Levels.SetTheory.L10_Morgan
|
||||
import TestGame.Levels.SetTheory.L11_SSubset
|
||||
import TestGame.Levels.SetTheory.L12_Insert
|
||||
import TestGame.Levels.SetTheory.L13_Insert
|
||||
import TestGame.Levels.SetTheory.L14_SetOf
|
||||
import TestGame.Levels.SetTheory.L15_Powerset
|
||||
import TestGame.Levels.SetTheory.L16_Disjoint
|
||||
import TestGame.Levels.SetTheory.L17_SetOf
|
||||
import TestGame.Levels.SetTheory.L18_SetOf
|
||||
import TestGame.Levels.SetTheory.L19_Subtype
|
||||
|
||||
|
||||
Game "TestGame"
|
||||
World "SetTheory"
|
||||
Title "Mengenlehre"
|
||||
|
||||
Game "TestGame"
|
||||
World "SetTheory2"
|
||||
Title "Mehr Mengenlehre"
|
||||
|
||||
@ -0,0 +1,52 @@
|
||||
import TestGame.Metadata
|
||||
import TestGame.Levels.SetTheory.L04_SubsetEmpty
|
||||
|
||||
--import Mathlib.Data.Set.Basic
|
||||
import Mathlib.Init.Set
|
||||
import Mathlib.Tactic.Tauto
|
||||
import Mathlib.Tactic.PushNeg
|
||||
|
||||
set_option tactic.hygienic false
|
||||
|
||||
Game "TestGame"
|
||||
World "SetTheory"
|
||||
Level 5
|
||||
|
||||
Title "Nonempty"
|
||||
|
||||
Introduction
|
||||
"
|
||||
Das Gegenteil von `A = ∅` ist `A ≠ ∅`, aber in Lean wird der Ausdruck `A.Nonempty` bevorzugt.
|
||||
Dieser ist dadurch existiert, dass in `A` ein Element existiert: `∃x, x ∈ A`.
|
||||
|
||||
Zeige dass die beiden Ausdrücke äquivalent sind:
|
||||
"
|
||||
|
||||
namespace MySet
|
||||
|
||||
open Set
|
||||
|
||||
theorem subset_empty_iff {A : Type _} (s : Set A) : s ⊆ ∅ ↔ s = ∅ := by
|
||||
constructor
|
||||
intro h
|
||||
rw [Subset.antisymm_iff]
|
||||
constructor
|
||||
assumption
|
||||
simp only [empty_subset]
|
||||
intro a
|
||||
rw [Subset.antisymm_iff] at a
|
||||
rcases a with ⟨h₁, h₂⟩
|
||||
assumption
|
||||
|
||||
Statement eq_empty_iff_forall_not_mem
|
||||
""
|
||||
{A : Type _} (s : Set A) :
|
||||
s = ∅ ↔ ∀ x, x ∉ s := by
|
||||
rw [←subset_empty_iff]
|
||||
rfl -- This is quite a miracle :)
|
||||
|
||||
Tactics constructor intro rw assumption rcases simp tauto trivial
|
||||
|
||||
Lemmas Subset.antisymm_iff empty_subset
|
||||
|
||||
end MySet
|
||||
@ -0,0 +1,35 @@
|
||||
import TestGame.Metadata
|
||||
import TestGame.Levels.SetTheory.L05_Empty
|
||||
|
||||
import Mathlib.Data.Set.Basic
|
||||
|
||||
set_option tactic.hygienic false
|
||||
|
||||
Game "TestGame"
|
||||
World "SetTheory"
|
||||
Level 6
|
||||
|
||||
Title "Nonempty"
|
||||
|
||||
Introduction
|
||||
"
|
||||
Das Gegenteil von `A = ∅` ist `A ≠ ∅`, aber in Lean wird der Ausdruck `A.Nonempty` bevorzugt.
|
||||
Dieser ist dadurch existiert, dass in `A` ein Element existiert: `∃x, x ∈ A`.
|
||||
|
||||
Zeige dass die beiden Ausdrücke äquivalent sind:
|
||||
"
|
||||
|
||||
open Set
|
||||
|
||||
Statement nonempty_iff_ne_empty
|
||||
""
|
||||
{A : Type _} (s : Set A) :
|
||||
s.Nonempty ↔ s ≠ ∅ := by
|
||||
rw [Set.Nonempty]
|
||||
rw [ne_eq, eq_empty_iff_forall_not_mem]
|
||||
push_neg
|
||||
rfl
|
||||
|
||||
Tactics constructor intro rw assumption rcases simp tauto trivial
|
||||
|
||||
Lemmas Subset.antisymm_iff empty_subset
|
||||
Loading…
Reference in New Issue