refactor(library/init/core): simpler has_sep type class with out_param
This commit is contained in:
parent
04a8518104
commit
d3db3661af
3 changed files with 6 additions and 6 deletions
|
|
@ -254,8 +254,8 @@ class has_ssubset (α : Type u) := (ssubset : α → α → Prop)
|
|||
class has_emptyc (α : Type u) := (emptyc : α)
|
||||
class has_insert (α : out_param (Type u)) (γ : Type v) := (insert : α → γ → γ)
|
||||
/- Type class used to implement the notation { a ∈ c | p a } -/
|
||||
class has_sep (α : Type u) (γ : Type u → Type v) :=
|
||||
(sep : (α → Prop) → γ α → γ α)
|
||||
class has_sep (α : out_param (Type u)) (γ : Type v) :=
|
||||
(sep : (α → Prop) → γ → γ)
|
||||
/- Type class for set-like membership -/
|
||||
class has_mem (α : out_param (Type u)) (γ : Type v) := (mem : α → γ → Prop)
|
||||
|
||||
|
|
@ -301,7 +301,7 @@ has_emptyc.emptyc α
|
|||
def singleton {α : Type u} {γ : Type v} [has_emptyc γ] [has_insert α γ] (a : α) : γ :=
|
||||
insert a emptyc
|
||||
|
||||
def sep {α : Type u} {γ : Type u → Type v} [has_sep α γ] : (α → Prop) → γ α → γ α :=
|
||||
def sep {α : Type u} {γ : Type v} [has_sep α γ] : (α → Prop) → γ → γ :=
|
||||
has_sep.sep
|
||||
|
||||
def mem {α : Type u} {γ : Type v} [has_mem α γ] : α → γ → Prop :=
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ instance : has_subset (set α) :=
|
|||
protected def sep (p : α → Prop) (s : set α) : set α :=
|
||||
{a | a ∈ s ∧ p a}
|
||||
|
||||
instance : has_sep α set :=
|
||||
instance : has_sep α (set α) :=
|
||||
⟨set.sep⟩
|
||||
|
||||
instance : has_emptyc (set α) :=
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ has_mul : Type u → Type u
|
|||
has_neg : Type u → Type u
|
||||
has_one : Type u → Type u
|
||||
has_sdiff : Type u → Type u
|
||||
has_sep : Type u → (Type u → Type v) → Type (max u v)
|
||||
has_sep : out_param Type u → Type v → Type (max u v)
|
||||
has_sizeof : Sort u → Sort (max 1 u)
|
||||
has_ssubset : Type u → Type u
|
||||
has_sub : Type u → Type u
|
||||
|
|
@ -42,7 +42,7 @@ has_mul : Type u → Type u
|
|||
has_neg : Type u → Type u
|
||||
has_one : Type u → Type u
|
||||
has_sdiff : Type u → Type u
|
||||
has_sep : Type u → (Type u → Type v) → Type (max u v)
|
||||
has_sep : out_param Type u → Type v → Type (max u v)
|
||||
has_sizeof : Sort u → Sort (max 1 u)
|
||||
has_ssubset : Type u → Type u
|
||||
has_sub : Type u → Type u
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue