You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lean4game/server/adam/Adam/Levels/SetTheory/L04_SubsetEmpty.lean

69 lines
1.8 KiB
Plaintext

import Adam.Metadata
import Adam.Levels.SetTheory.L03_Subset
import Mathlib.Init.Set
import Mathlib.Tactic.Tauto
2 years ago
import Mathlib
set_option tactic.hygienic false
Game "Adam"
World "SetTheory"
Level 4
Title "Teilmengen"
Introduction
"
2 years ago
Etwas weiter kommt ihr an einem kleinen Gemüsestand vorbei. Da ihr nicht so
richtig einen Plan habt, fragt ihr den Verkäufer.
**Verkäufer**: Hier ist was ganz wichtiges, was ihr noch oft brauchen werdet:
Ein zentrales Lemma ist `Subset.antisymm_iff` welches folgendes sagt:
```
2 years ago
lemma antisymm_iff {α : Type} {A B : Set α} : A = B ↔ A ⊆ B ∧ B ⊆ A
```
Fast immer wenn man Gleichheiten von Mengen zeigen muss, will man diese in zwei Ungleichungen
aufteilen.
"
namespace MySet
2 years ago
open Set Subset
-- Copied some lemmas from `Matlib.Data.Set.Basic` in order to not import the entire file.
theorem tmp {α : Type _} {s t : Set α} : s = t → s ⊆ t :=
fun h₁ _ h₂ => by rw [← h₁] ; exact h₂
theorem Subset.antisymm_iff {α : Type _} {a b : Set α} : a = b ↔ a ⊆ b ∧ b ⊆ a :=
⟨fun e => ⟨tmp e, tmp e.symm⟩, fun ⟨h₁, h₂⟩ => Set.ext fun _ => ⟨@h₁ _, @h₂ _⟩⟩
@[simp]
theorem empty_subset {α : Type _} (s : Set α) : ∅ ⊆ s :=
fun.
2 years ago
Statement subset_empty_iff {A : Type _} (s : Set A) :
s ⊆ ∅ ↔ s = ∅ := by
2 years ago
Hint "**Du**: Ja, die einzige Teilmenge der leeren Menge ist die leere Menge.
Das ist doch eine Tautologie?
2 years ago
**Robo**: Ja schon, aber zuerst einmal explizit."
Hint (hidden := true) "**Robo**: Fang doch einmal mit `constructor` an."
constructor
intro h
2 years ago
Hint "**Robo**: "
2 years ago
apply Subset.antisymm
assumption
simp only [empty_subset]
intro a
rw [Subset.antisymm_iff] at a
rcases a with ⟨h₁, h₂⟩
assumption
2 years ago
DisabledTactic tauto
2 years ago
NewLemma Subset.antisymm Subset.antisymm_iff empty_subset
end MySet