-- import Adam.Metadata -- import Duper.Tactic -- import Mathlib.Order.Disjoint -- set_option tactic.hygienic false -- Game "Adam" -- World "SetTheory" -- Level 4 -- Title "Mengen" -- Introduction -- " -- `∈ ∉ ⊆ ⊂ ⋃ ⋂` -- " -- open Set -- -- open_locale cardinal -- variables {X : Type _} (x : X) (A B : Set X) -- #check A.Nonempty -- #check Nonempty A -- #check insert x A -- {x} ∪ A -- -- #check disjoint A B -- needs Mathlib.Order.Disjoint -- #check A ∆ B -- #check Nontrivial A -- #check ({2} : Set ℕ) -- example : ({2} : Set ℕ) ⊆ {4, 2, 3} := by -- simp only [mem_singleton_iff, mem_insert_iff, or_self, singleton_subset_iff, or_false, or_true] -- example : ({2, 3, 5} : Set ℕ) ⊆ {4, 2, 5, 7, 3} := by -- intro n hn -- simp only [mem_insert_iff, mem_singleton_iff] at * -- tauto -- example : {2, 3, 5} ⊆ (univ : Set ℕ) := by -- tauto -- example : 3 ∈ ({4, 2, 5, 7, 3} : Set ℕ) := by -- tauto -- example : ({4, 9} : Set ℕ) = Set.insert 4 {9} := by -- rfl -- #check Finset.card -- variable (A : Finset ℕ) -- #check A.card -- -- card_union_eq -- example (A B : Finset ℕ) (h : Disjoint A B) : (A ∪ B).card = A.card + B.card := by -- -- Not a suitable proof for the course. -- rw [← Finset.disjUnion_eq_union A B h, Finset.card_disjUnion _ _ _] -- example : ¬Disjoint {n : ℤ | ∃ k, n = 2 * k} {3, 5, 6, 9, 11} := by -- rw [not_disjoint_iff] -- use 6 -- constructor -- rw [mem_setOf_eq] -- use 3 -- tauto -- example : {n : ℕ | Even n ∨ Odd n} = univ := by -- rw [setOf_or] -- #check Set.eq_of_mem_singleton -- #check {n : ℤ | ∃ k, n = 2 * k} -- #check {n : ℤ // ∃ k, n = 2 * k} -- #check ℤ -- variables (C : Set ℤ) -- #check {n ∈ C | ∃ (k : ℤ), n = 2 * k} -- #check {n : ℤ | n ∈ C ∧ ∃ (k : ℤ), n = 2 * k} -- #check {x ∈ A | x = x} -- #check {y | y ∈ A} -- #check setOf_and -- #check setOf_or -- #check Disjoint C univ -- example : {n ∈ C | ∃ (k : ℤ), n = 2 * k} = {n : ℤ | n ∈ C ∧ ∃ (k : ℤ), n = 2 * k} := by -- rfl