Extensional hash set lemmas #
This module contains lemmas about Std.ExtHashSet
.
@[simp]
theorem
Std.ExtHashSet.isEmpty_iff
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
:
@[simp]
theorem
Std.ExtHashSet.isEmpty_eq_false_iff
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
:
@[simp]
theorem
Std.ExtHashSet.emptyWithCapacity_eq
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
[EquivBEq α]
[LawfulHashable α]
{c : Nat}
:
@[simp]
theorem
Std.ExtHashSet.not_insert_eq_empty
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
theorem
Std.ExtHashSet.mem_iff_contains
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a : α}
:
@[simp]
theorem
Std.ExtHashSet.contains_iff_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a : α}
:
theorem
Std.ExtHashSet.contains_congr
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a b : α}
(hab : (a == b) = true)
:
theorem
Std.ExtHashSet.mem_congr
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a b : α}
(hab : (a == b) = true)
:
@[simp]
theorem
Std.ExtHashSet.not_mem_empty
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
[EquivBEq α]
[LawfulHashable α]
{a : α}
:
theorem
Std.ExtHashSet.eq_empty_iff_forall_contains
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
:
theorem
Std.ExtHashSet.eq_empty_iff_forall_not_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
:
@[simp]
theorem
Std.ExtHashSet.insert_eq_insert
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a : α}
:
@[simp]
theorem
Std.ExtHashSet.contains_insert
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k a : α}
:
theorem
Std.ExtHashSet.mem_of_mem_insert
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k a : α}
:
theorem
Std.ExtHashSet.contains_of_contains_insert'
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k a : α}
:
This is a restatement of contains_insert
that is written to exactly match the proof
obligation in the statement of get_insert
.
theorem
Std.ExtHashSet.mem_of_mem_insert'
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k a : α}
:
This is a restatement of mem_insert
that is written to exactly match the proof obligation
in the statement of get_insert
.
theorem
Std.ExtHashSet.contains_insert_self
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
theorem
Std.ExtHashSet.mem_insert_self
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
@[simp]
theorem
Std.ExtHashSet.size_empty
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
[EquivBEq α]
[LawfulHashable α]
:
theorem
Std.ExtHashSet.eq_empty_iff_size_eq_zero
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
:
theorem
Std.ExtHashSet.size_le_size_insert
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
theorem
Std.ExtHashSet.size_insert_le
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
@[simp]
theorem
Std.ExtHashSet.contains_erase
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k a : α}
:
theorem
Std.ExtHashSet.contains_of_contains_erase
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k a : α}
:
theorem
Std.ExtHashSet.mem_of_mem_erase
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k a : α}
:
theorem
Std.ExtHashSet.size_erase_le
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
theorem
Std.ExtHashSet.size_le_size_erase
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
theorem
Std.ExtHashSet.contains_eq_isSome_get?
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a : α}
:
@[simp]
theorem
Std.ExtHashSet.isSome_get?_eq_contains
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a : α}
:
theorem
Std.ExtHashSet.mem_iff_isSome_get?
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a : α}
:
@[simp]
theorem
Std.ExtHashSet.isSome_get?_iff_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a : α}
:
theorem
Std.ExtHashSet.get?_eq_none_of_contains_eq_false
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a : α}
:
theorem
Std.ExtHashSet.get?_eq_none
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a : α}
:
@[simp]
theorem
Std.ExtHashSet.get?_erase_self
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
theorem
Std.ExtHashSet.get?_beq
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
theorem
Std.ExtHashSet.get?_congr
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k k' : α}
(h : (k == k') = true)
:
@[simp]
theorem
Std.ExtHashSet.get_erase
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k a : α}
{h' : a ∈ m.erase k}
:
theorem
Std.ExtHashSet.get?_eq_some_get
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a : α}
(h' : a ∈ m)
:
theorem
Std.ExtHashSet.get_eq_get_get?
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
{h : k ∈ m}
:
theorem
Std.ExtHashSet.get_beq
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
(h : k ∈ m)
:
theorem
Std.ExtHashSet.get_congr
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k₁ k₂ : α}
(h : (k₁ == k₂) = true)
(h₁ : k₁ ∈ m)
:
theorem
Std.ExtHashSet.get_eq
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[LawfulBEq α]
{k : α}
(h : k ∈ m)
:
theorem
Std.ExtHashSet.get!_eq_default_of_contains_eq_false
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[Inhabited α]
[EquivBEq α]
[LawfulHashable α]
{a : α}
:
theorem
Std.ExtHashSet.get!_eq_default
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[Inhabited α]
[EquivBEq α]
[LawfulHashable α]
{a : α}
:
@[simp]
theorem
Std.ExtHashSet.get!_erase_self
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[Inhabited α]
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
theorem
Std.ExtHashSet.get?_eq_some_get!
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
{a : α}
:
theorem
Std.ExtHashSet.get!_eq_get!_get?
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
{a : α}
:
theorem
Std.ExtHashSet.get_eq_get!
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
{a : α}
{h' : a ∈ m}
:
theorem
Std.ExtHashSet.get!_congr
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
{k k' : α}
(h : (k == k') = true)
:
@[simp]
theorem
Std.ExtHashSet.getD_empty
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
[EquivBEq α]
[LawfulHashable α]
{a fallback : α}
:
theorem
Std.ExtHashSet.getD_eq_fallback_of_contains_eq_false
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a fallback : α}
:
theorem
Std.ExtHashSet.getD_eq_fallback
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a fallback : α}
:
@[simp]
theorem
Std.ExtHashSet.getD_erase_self
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k fallback : α}
:
theorem
Std.ExtHashSet.get?_eq_some_getD_of_contains
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a fallback : α}
:
theorem
Std.ExtHashSet.get?_eq_some_getD
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a fallback : α}
:
theorem
Std.ExtHashSet.getD_eq_getD_get?
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a fallback : α}
:
theorem
Std.ExtHashSet.get_eq_getD
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{a fallback : α}
{h' : a ∈ m}
:
theorem
Std.ExtHashSet.get!_eq_getD_default
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
{a : α}
:
theorem
Std.ExtHashSet.getD_congr
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k k' fallback : α}
(h : (k == k') = true)
:
theorem
Std.ExtHashSet.getD_eq_of_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[LawfulBEq α]
{k fallback : α}
(h : k ∈ m)
:
@[simp]
theorem
Std.ExtHashSet.containsThenInsert_fst
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
@[simp]
theorem
Std.ExtHashSet.containsThenInsert_snd
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
@[simp]
theorem
Std.ExtHashSet.insertMany_nil
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
:
@[simp]
theorem
Std.ExtHashSet.insertMany_list_singleton
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{k : α}
:
theorem
Std.ExtHashSet.insertMany_cons
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k : α}
:
theorem
Std.ExtHashSet.insertMany_append
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l₁ l₂ : List α}
:
theorem
Std.ExtHashSet.insertMany_ind
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{ρ : Type v}
[ForIn Id ρ α]
[EquivBEq α]
[LawfulHashable α]
{motive : ExtHashSet α → Prop}
(m : ExtHashSet α)
{l : ρ}
(init : motive m)
(insert : ∀ (m : ExtHashSet α) (a : α), motive m → motive (m.insert a))
:
motive (m.insertMany l)
@[simp]
theorem
Std.ExtHashSet.contains_insertMany_list
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k : α}
:
@[simp]
theorem
Std.ExtHashSet.mem_insertMany_list
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k : α}
:
theorem
Std.ExtHashSet.mem_of_mem_insertMany_list
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k : α}
(contains_eq_false : l.contains k = false)
:
k ∈ m.insertMany l → k ∈ m
theorem
Std.ExtHashSet.mem_insertMany_of_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
{ρ : Type v}
[ForIn Id ρ α]
[EquivBEq α]
[LawfulHashable α]
{l : ρ}
{k : α}
:
k ∈ m → k ∈ m.insertMany l
theorem
Std.ExtHashSet.get?_insertMany_list_of_not_mem_of_contains_eq_false
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k : α}
(not_mem : ¬k ∈ m)
(contains_eq_false : l.contains k = false)
:
theorem
Std.ExtHashSet.get?_insertMany_list_of_not_mem_of_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k k' : α}
(k_beq : (k == k') = true)
(not_mem : ¬k ∈ m)
(distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l)
(mem : k ∈ l)
:
theorem
Std.ExtHashSet.get?_insertMany_list_of_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k : α}
(mem : k ∈ m)
:
theorem
Std.ExtHashSet.get_insertMany_list_of_not_mem_of_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k k' : α}
(k_beq : (k == k') = true)
(not_mem : ¬k ∈ m)
(distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l)
(mem : k ∈ l)
{h : k' ∈ m.insertMany l}
:
theorem
Std.ExtHashSet.get_insertMany_list_of_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k : α}
(mem : k ∈ m)
{h : k ∈ m.insertMany l}
:
theorem
Std.ExtHashSet.get!_insertMany_list_of_not_mem_of_contains_eq_false
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
{l : List α}
{k : α}
(not_mem : ¬k ∈ m)
(contains_eq_false : l.contains k = false)
:
theorem
Std.ExtHashSet.get!_insertMany_list_of_not_mem_of_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
{l : List α}
{k k' : α}
(k_beq : (k == k') = true)
(not_mem : ¬k ∈ m)
(distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l)
(mem : k ∈ l)
:
theorem
Std.ExtHashSet.get!_insertMany_list_of_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
{l : List α}
{k : α}
(mem : k ∈ m)
:
theorem
Std.ExtHashSet.getD_insertMany_list_of_not_mem_of_contains_eq_false
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k fallback : α}
(not_mem : ¬k ∈ m)
(contains_eq_false : l.contains k = false)
:
theorem
Std.ExtHashSet.getD_insertMany_list_of_not_mem_of_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k k' fallback : α}
(k_beq : (k == k') = true)
(not_mem : ¬k ∈ m)
(distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l)
(mem : k ∈ l)
:
theorem
Std.ExtHashSet.getD_insertMany_list_of_mem
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k fallback : α}
(mem : k ∈ m)
:
theorem
Std.ExtHashSet.size_insertMany_list
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
(distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l)
:
theorem
Std.ExtHashSet.size_le_size_insertMany_list
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
:
theorem
Std.ExtHashSet.size_le_size_insertMany
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
{ρ : Type v}
[ForIn Id ρ α]
[EquivBEq α]
[LawfulHashable α]
{l : ρ}
:
theorem
Std.ExtHashSet.size_insertMany_list_le
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
:
@[simp]
theorem
Std.ExtHashSet.insertMany_list_eq_empty_iff
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{l : List α}
:
theorem
Std.ExtHashSet.eq_empty_of_insertMany_eq_empty
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
{ρ : Type v}
[ForIn Id ρ α]
[EquivBEq α]
[LawfulHashable α]
{l : ρ}
:
m.insertMany l = ∅ → m = ∅
theorem
Std.ExtHashSet.ofList_cons
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
[EquivBEq α]
[LawfulHashable α]
{hd : α}
{tl : List α}
:
theorem
Std.ExtHashSet.ext_get?
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
[EquivBEq α]
[LawfulHashable α]
{m₁ m₂ : ExtHashSet α}
(h : ∀ (k : α), m₁.get? k = m₂.get? k)
:
theorem
Std.ExtHashSet.ext_get?_iff
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
[EquivBEq α]
[LawfulHashable α]
{m₁ m₂ : ExtHashSet α}
:
theorem
Std.ExtHashSet.mem_of_mem_filter
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{f : α → Bool}
{k : α}
:
theorem
Std.ExtHashSet.size_filter_le_size
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{f : α → Bool}
:
@[simp]
theorem
Std.ExtHashSet.get?_filter
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{f : α → Bool}
{k : α}
:
@[simp]
theorem
Std.ExtHashSet.get_filter
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{f : α → Bool}
{k : α}
{h : k ∈ filter f m}
:
theorem
Std.ExtHashSet.get!_filter
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
{f : α → Bool}
{k : α}
:
theorem
Std.ExtHashSet.getD_filter
{α : Type u}
{x✝ : BEq α}
{x✝¹ : Hashable α}
{m : ExtHashSet α}
[EquivBEq α]
[LawfulHashable α]
{f : α → Bool}
{k fallback : α}
: