@[simp]
theorem
Std.ExtDHashMap.not_mem_empty'
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{i : α}
:
i ∉ ∅
theorem
Std.ExtDHashMap.mem_iff_get?_eq_some
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{i : α}
:
theorem
Std.ExtDHashMap.get?_eq_some_of_mem
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{i : α}
(h : i ∈ mp)
:
theorem
Std.ExtDHashMap.get?_eq_none_of_not_mem
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{i : α}
(h : i ∉ mp)
:
@[simp]
theorem
Std.ExtDHashMap.get?_eq_none_iff
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{i : α}
:
def
Std.ExtDHashMap.toList
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : LinearOrder α]
(mp : ExtDHashMap α β)
:
List ((i : α) × β i)
Equations
Instances For
@[simp]
theorem
Std.ExtDHashMap.toList_empty
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[LinearOrder α]
:
@[simp]
theorem
Std.ExtDHashMap.ofList_snoc
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{xs : List ((a : α) × β a)}
{x : (i : α) × β i}
:
@[simp]
theorem
Std.ExtDHashMap.mem_insert'
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{x : (i : α) × β i}
{i : α}
:
theorem
Std.ExtDHashMap.eq_empty_iff
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
:
theorem
Std.ExtDHashMap.ext_iff'
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{m₁ m₂ : ExtDHashMap α β}
:
theorem
Std.ExtDHashMap.ext_iff
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{m₁ m₂ : ExtDHashMap α β}
:
def
Std.ExtDHashMap.range'
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : Fintype α]
(f : (i : α) → Option (β i))
:
ExtDHashMap α β
Equations
- Std.ExtDHashMap.range' f = Quotient.liftWith Fintype.elems.val (fun (xs : List α) => Std.ExtDHashMap.ofList (List.filterMap (fun (i : α) => Option.map (fun (x : β i) => ⟨i, x⟩) (f i)) xs)) ⋯
Instances For
def
Std.ExtDHashMap.range
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : Fintype α]
(f : (i : α) → β i)
:
ExtDHashMap α β
Equations
- Std.ExtDHashMap.range f = Quotient.liftWith Fintype.elems.val (fun (xs : List α) => Std.ExtDHashMap.ofList (List.map (fun (i : α) => ⟨i, f i⟩) xs)) ⋯
Instances For
@[simp]
theorem
Std.ExtDHashMap.mem_range
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : Fintype α]
{f : (i : α) → β i}
{i : α}
:
@[simp]
theorem
Std.ExtDHashMap.nonempty_insert
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{x : (a : α) × β a}
:
@[simp]
theorem
Std.ExtDHashMap.nodup_toList
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[LinearOrder α]
:
@[simp]
theorem
Std.ExtDHashMap.pairwise_toList
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[LinearOrder α]
:
List.Pairwise (fun (x1 x2 : (i : α) × β i) => x1.fst ≤ x2.fst) mp.toList
@[simp]
theorem
Std.ExtDHashMap.mem_toList
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{x : (i : α) × β i}
[LinearOrder α]
:
@[simp]
theorem
Std.ExtDHashMap.toList_eq_toList
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[LinearOrder α]
{m₁ m₂ : ExtDHashMap α β}
:
@[simp]
theorem
Std.ExtDHashMap.toList_eq_nil_iff
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[LinearOrder α]
:
theorem
Std.ExtDHashMap.eq_iff_inner_eq
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{m₁ m₂ : ExtDHashMap α β}
:
theorem
Std.ExtDHashMap.inner_eq_iff_eq
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{m₁ m₂ : ExtDHashMap α β}
:
def
Std.ExtDHashMap.fold
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{γ : Type u_4}
(mp : ExtDHashMap α β)
(f : γ → (i : α) → β i → γ)
(z : γ)
(h_assoc : ∀ {acc : γ} {i : α} {x : β i} {j : α} {y : β j}, i ≠ j → f (f acc i x) j y = f (f acc j y) i x)
:
γ
Equations
- mp.fold f z h_assoc = Std.ExtDHashMap.lift (fun (x : Std.DHashMap α β) => Std.DHashMap.fold f z x) ⋯ mp
Instances For
def
Std.ExtDHashMap.decideEq
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[hh : (i : α) → DecidableEq (β i)]
(m₁ m₂ : ExtDHashMap α β)
:
Equations
- m₁.decideEq m₂ = Std.ExtDHashMap.casesOn m₁ fun (m₁ : Quotient (Std.DHashMap.isSetoid α β)) => Std.ExtDHashMap.casesOn m₂ fun (m₂ : Quotient (Std.DHashMap.isSetoid α β)) => m₁.liftOn₂ m₂ Std.DHashMap.decideEquiv ⋯
Instances For
theorem
Std.ExtDHashMap.eq_iff_decideEq
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[hh : (i : α) → DecidableEq (β i)]
{m₁ m₂ : ExtDHashMap α β}
:
@[instance_reducible]
instance
Std.ExtDHashMap.instDecidableEq_projects
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[hh : (i : α) → DecidableEq (β i)]
:
DecidableEq (ExtDHashMap α β)
@[simp]
theorem
Std.ExtDHashMap.decideEq_eq
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[hh : (i : α) → DecidableEq (β i)]
{m₁ m₂ : ExtDHashMap α β}
:
def
Std.ExtDHashMap.all
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
(mp : ExtDHashMap α β)
(p : (i : α) → β i → Bool)
:
Equations
- mp.all p = Quotient.lift (fun (x : Std.DHashMap α β) => x.all p) ⋯ mp.inner
Instances For
@[simp]
theorem
Std.ExtDHashMap.all_def
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{p : (i : α) → β i → Bool}
[LinearOrder α]
:
def
Std.ExtDHashMap.keys
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : LinearOrder α]
(mp : ExtDHashMap α β)
:
List α
Equations
Instances For
@[simp]
theorem
Std.ExtDHashMap.mem_keys
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[LinearOrder α]
{i : α}
:
def
Std.ExtDHashMap.modifyMany
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
(mp : ExtDHashMap α β)
(xs : List ((i : α) × (β i → β i)))
:
ExtDHashMap α β
Equations
- mp.modifyMany xs = { inner := Quotient.map (fun (x : Std.DHashMap α β) => x.modifyMany xs) ⋯ mp.inner }
Instances For
@[simp]
theorem
Std.ExtDHashMap.modifyMany_nil
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
:
@[simp]
theorem
Std.ExtDHashMap.modifyMany_cons
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{i : α}
{x : β i → β i}
{xs : List ((i : α) × (β i → β i))}
:
theorem
Std.ExtDHashMap.get!_eq_get?
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{i : α}
[hb : Inhabited (β i)]
:
theorem
Std.ExtDHashMap.injective_range
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : Fintype α]
:
theorem
Std.ExtDHashMap.injective_range'
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : Fintype α]
:
@[instance_reducible]
instance
Std.ExtDHashMap.instFintype_projects
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : Fintype α]
[hb : (i : α) → Fintype (β i)]
:
Fintype (ExtDHashMap α β)
Equations
- Std.ExtDHashMap.instFintype_projects = { elems := Finset.map { toFun := Std.ExtDHashMap.range', inj' := ⋯ } Fintype.elems, complete := ⋯ }
instance
Std.ExtDHashMap.instFinite_projects
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : Finite α]
[hb : ∀ (i : α), Finite (β i)]
:
Finite (ExtDHashMap α β)
theorem
Std.ExtDHashMap.mem_of_get?_eq_some
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{i : α}
{x : β i}
(h : mp.get? i = some x)
:
@[simp]
theorem
Std.ExtDHashMap.get?_eq_some_get!_iff
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{i : α}
[hb : Inhabited (β i)]
:
@[simp]
theorem
Std.ExtDHashMap.get?_eq_some_get?_get!
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{i : α}
[hb : Inhabited (β i)]
:
theorem
Std.ExtDHashMap.fold_eq_foldl_toList
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
{γ : Type u_4}
{z : γ}
{f : γ → (i : α) → β i → γ}
{h_assoc : ∀ {acc : γ} {i : α} {x : β i} {j : α} {y : β j}, i ≠ j → f (f acc i x) j y = f (f acc j y) i x}
:
theorem
Std.ExtDHashMap.eq_iff_toList_eq
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : LinearOrder α]
{m₁ m₂ : ExtDHashMap α β}
:
@[simp]
theorem
Std.ExtDHashMap.ofList_toList
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
:
theorem
Std.ExtDHashMap.toList_ofList_perm
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : LinearOrder α]
{xs : List ((i : α) × β i)}
(h : (List.map (fun (x : (i : α) × β i) => x.fst) xs).Nodup)
:
@[simp]
theorem
Std.ExtDHashMap.sortedLE_keys
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
:
theorem
Std.ExtDHashMap.keys_eq_map_fst_toList
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
:
def
Std.ExtDHashMap.minKey?
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : LinearOrder α]
(mp : ExtDHashMap α β)
:
Option α
Equations
Instances For
def
Std.ExtDHashMap.maxKey?
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : LinearOrder α]
(mp : ExtDHashMap α β)
:
Option α
Equations
Instances For
def
Std.ExtDHashMap.minKey!
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : LinearOrder α]
[Inhabited α]
(mp : ExtDHashMap α β)
:
α
Instances For
def
Std.ExtDHashMap.maxKey!
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : LinearOrder α]
[Inhabited α]
(mp : ExtDHashMap α β)
:
α
Instances For
theorem
Std.ExtDHashMap.minKey?_eq_head?_keys
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
:
theorem
Std.ExtDHashMap.maxKey?_eq_getLast?_keys
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
:
@[simp]
theorem
Std.ExtDHashMap.minKey?_eq_none_iff
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
:
@[simp]
theorem
Std.ExtDHashMap.maxKey?_eq_none_iff
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
:
theorem
Std.ExtDHashMap.not_mem_of_lt_minKey?
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
{m x : α}
(h₁ : mp.minKey? = some m)
(h₂ : x < m)
:
x ∉ mp
theorem
Std.ExtDHashMap.not_mem_of_maxKey?_lt
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
{m x : α}
(h₁ : mp.maxKey? = some m)
(h₂ : m < x)
:
x ∉ mp
theorem
Std.ExtDHashMap.not_mem_of_lt_minKey!
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha₁ : Inhabited α]
[ha₂ : LinearOrder α]
{x : α}
(h : x < mp.minKey!)
:
x ∉ mp
theorem
Std.ExtDHashMap.not_mem_of_maxKey!_lt
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha₁ : Inhabited α]
[ha₂ : LinearOrder α]
{x : α}
(h : mp.maxKey! < x)
:
x ∉ mp
theorem
Std.ExtDHashMap.minKey?_le_of_mem
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
{m x : α}
(h₁ : mp.minKey? = some m)
(h₂ : x ∈ mp)
:
theorem
Std.ExtDHashMap.le_maxKey?_of_mem
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
{m x : α}
(h₁ : mp.maxKey? = some m)
(h₂ : x ∈ mp)
:
theorem
Std.ExtDHashMap.minKey!_le_of_mem
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha₁ : Inhabited α]
[ha₂ : LinearOrder α]
{x : α}
(h : x ∈ mp)
:
theorem
Std.ExtDHashMap.le_maxKey!_of_mem
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha₁ : Inhabited α]
[ha₂ : LinearOrder α]
{x : α}
(h : x ∈ mp)
:
@[simp]
theorem
Std.ExtDHashMap.keys_eq_nil_iff
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[LinearOrder α]
:
@[simp]
theorem
Std.ExtDHashMap.keys_empty
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[LinearOrder α]
:
theorem
Std.ExtDHashMap.ind
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{p : ExtDHashMap α β → Prop}
(h₁ : p ∅)
(h₂ : ∀ (mp : ExtDHashMap α β) (i : α) (x : β i), i ∉ mp → p mp → p (mp.insert i x))
(mp : ExtDHashMap α β)
:
p mp
theorem
Std.ExtDHashMap.fold_insert
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{γ : Type u_4}
{f : γ → (i : α) → β i → γ}
{z : γ}
{h : ∀ {acc : γ} {i : α} {x : β i} {j : α} {y : β j}, i ≠ j → f (f acc i x) j y = f (f acc j y) i x}
{i : α}
{x : β i}
(h₁ : i ∉ mp)
:
theorem
Std.ExtDHashMap.insert_comm
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{i : α}
{x : β i}
{j : α}
{y : β j}
(h : i ≠ j ∨ x ≍ y)
:
@[simp]
theorem
Std.ExtDHashMap.insert_idemp
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{i : α}
{x : β i}
:
def
Std.ExtDHashMap.count
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
(mp : ExtDHashMap α β)
(p : (i : α) → β i → Bool)
:
Equations
- mp.count p = Quotient.lift (fun (x : Std.DHashMap α β) => x.count p) ⋯ mp.inner
Instances For
@[simp]
theorem
Std.ExtDHashMap.size_filter_eq_count
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{p : (a : α) → β a → Bool}
:
theorem
Std.ExtDHashMap.count_eq_size_filter
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{p : (i : α) → β i → Bool}
:
@[simp]
theorem
Std.ExtDHashMap.count_le_size
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{p : (i : α) → β i → Bool}
:
@[simp]
theorem
Std.ExtDHashMap.count_empty
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{p : (i : α) → β i → Bool}
:
theorem
Std.ExtDHashMap.eq_iff_inner
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp₁ mp₂ : ExtDHashMap α β}
:
theorem
Std.ExtDHashMap.modify_of_notMem
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
{i : α}
{f : β i → β i}
(h : i ∉ mp)
:
theorem
Std.ExtDHashMap.toList_insert_perm_cons_of_notMem
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
{i : α}
{x : β i}
(h : i ∉ mp)
:
@[simp]
theorem
Std.ExtDHashMap.nodup_keys
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
:
@[simp]
theorem
Std.ExtDHashMap.sortedLT_keys
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
:
theorem
Std.ExtDHashMap.union_def
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp₁ mp₂ : ExtDHashMap α β}
:
@[simp]
theorem
Std.ExtDHashMap.empty_union
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
:
@[simp]
theorem
Std.ExtDHashMap.union_empty
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
:
theorem
Std.ExtDHashMap.toList_insert_of_not_mem
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{m : ExtDHashMap α β}
[ha : LinearOrder α]
{i : α}
{x : β i}
(h : i ∉ m)
:
theorem
Std.ExtDHashMap.keys_insert_of_not_mem
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{m : ExtDHashMap α β}
[ha : LinearOrder α]
{i : α}
{x : β i}
(h : i ∉ m)
:
@[simp]
theorem
Std.ExtDHashMap.get?_out_inner
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{m : ExtDHashMap α β}
{i : α}
:
@[simp]
theorem
Std.ExtDHashMap.get?_mk
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{m : Quotient (DHashMap.isSetoid α β)}
{i : α}
:
@[simp]
theorem
Std.ExtDHashMap.insert_erase_eq_self_iff
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{m : ExtDHashMap α β}
{i : α}
{x : β i}
:
@[simp]
theorem
Std.ExtDHashMap.keys_eq_keys_iff
{α : Type u_1}
{β : α → Type u_2}
{γ : α → Type u_3}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : LinearOrder α]
{m₁ : ExtDHashMap α β}
{m₂ : ExtDHashMap α γ}
:
theorem
Std.ExtDHashMap.toList_ofList
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : LinearOrder α]
{xs : List ((i : α) × β i)}
(h : (List.map (fun (x : (i : α) × β i) => x.fst) xs).Nodup)
:
theorem
Std.ExtDHashMap.union_eq_union_iff_right
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{m m₁ m₂ : ExtDHashMap α β}
(h₁ : ∀ i ∈ m, i ∉ m₁)
(h₂ : ∀ i ∈ m, i ∉ m₂)
:
theorem
Std.ExtDHashMap.get?_eq_some_iff_mem_toList
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
{mp : ExtDHashMap α β}
[ha : LinearOrder α]
{i : α}
{x : β i}
:
theorem
Std.ExtDHashMap.toList_ofList_subset
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : LinearOrder α]
{xs : List ((i : α) × β i)}
:
theorem
Std.ExtDHashMap.mem_of_mem_toList_ofList
{α : Type u_1}
{β : α → Type u_2}
[hh₁ : DecidableEq α]
[hh₂ : Hashable α]
[ha : LinearOrder α]
{xs : List ((i : α) × β i)}
{p : (i : α) × β i}
(h : p ∈ (ofList xs).toList)
: