blob: 69736abe1b3cd3820bf8f336f84d417ef08a3e75 [file] [edit]
def Set (α : Type u) := α → Prop
def setOf {α : Type u} (p : α → Prop) : Set α :=
p
namespace Set
protected def mem (s : Set α) (a : α) :=
s a
instance : Membership α (Set α) :=
⟨Set.mem⟩
theorem ext {a b : Set α} (h : ∀ (x : α), x ∈ a ↔ x ∈ b) : a = b :=
funext (fun x => propext (h x))
protected def subset (s₁ s₂ : Set α) :=
∀ {a}, a ∈ s₁ → a ∈ s₂
class Subset (α : Type u) where
/-- Subset relation: `a ⊆ b` -/
subset : α → α → Prop
/-- Subset relation: `a ⊆ b` -/
infix:50 " ⊆ " => Subset.subset
instance : Subset (Set α) :=
⟨Set.subset⟩
instance : EmptyCollection (Set α) :=
⟨λ _ => False⟩
example (U : Type) (A B : Set U) : A ⊆ B → A = A :=
fun h =>
match @h with | (h : A ⊆ B) => sorry
example (U : Type) (A B : Set U) : A ⊆ B → A = A := by
intro (h : A ⊆ B)
sorry