Documentation

Std.Data.HashMap.RawLemmas

Hash map lemmas #

This module contains lemmas about Std.Data.HashMap.Raw. Most of the lemmas require EquivBEq α and LawfulHashable α for the key type α. The easiest way to obtain these instances is to provide an instance of LawfulBEq α.

@[simp]
@[simp]
theorem Std.HashMap.Raw.size_empty {α : Type u} {β : Type v} :
@[reducible, inline, deprecated Std.HashMap.Raw.size_empty (since := "2025-03-12")]
abbrev Std.HashMap.Raw.size_emptyc {α : Type u_1} {β : Type u_2} :
Equations
Instances For
    theorem Std.HashMap.Raw.isEmpty_eq_size_eq_zero {α : Type u} {β : Type v} {m : Raw α β} :
    m.isEmpty = (m.size == 0)
    @[simp]
    theorem Std.HashMap.Raw.isEmpty_empty {α : Type u} {β : Type v} [BEq α] [Hashable α] :
    @[reducible, inline, deprecated Std.HashMap.Raw.isEmpty_empty (since := "2025-03-12")]
    abbrev Std.HashMap.Raw.isEmpty_emptyc {α : Type u_1} {β : Type u_2} [BEq α] [Hashable α] :
    Equations
    Instances For
      @[simp]
      theorem Std.HashMap.Raw.isEmpty_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
      theorem Std.HashMap.Raw.mem_iff_contains {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] {a : α} :
      theorem Std.HashMap.Raw.contains_congr {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a b : α} (hab : (a == b) = true) :
      theorem Std.HashMap.Raw.mem_congr {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a b : α} (hab : (a == b) = true) :
      a m b m
      @[simp]
      theorem Std.HashMap.Raw.contains_emptyWithCapacity {α : Type u} {β : Type v} [BEq α] [Hashable α] {a : α} {c : Nat} :
      @[simp]
      theorem Std.HashMap.Raw.not_mem_emptyWithCapacity {α : Type u} {β : Type v} [BEq α] [Hashable α] {a : α} {c : Nat} :
      @[simp]
      theorem Std.HashMap.Raw.contains_empty {α : Type u} {β : Type v} [BEq α] [Hashable α] {a : α} :
      @[reducible, inline, deprecated Std.HashMap.Raw.contains_empty (since := "2025-03-12")]
      abbrev Std.HashMap.Raw.contains_emptyc {α : Type u_1} {β : Type u_2} [BEq α] [Hashable α] {a : α} :
      Equations
      Instances For
        @[simp]
        theorem Std.HashMap.Raw.not_mem_empty {α : Type u} {β : Type v} [BEq α] [Hashable α] {a : α} :
        @[reducible, inline, deprecated Std.HashMap.Raw.not_mem_empty (since := "2025-03-12")]
        abbrev Std.HashMap.Raw.not_mem_emptyc {α : Type u_1} {β : Type u_2} [BEq α] [Hashable α] {a : α} :
        Equations
        Instances For
          theorem Std.HashMap.Raw.contains_of_isEmpty {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} :
          theorem Std.HashMap.Raw.not_mem_of_isEmpty {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} :
          m.isEmpty = true¬a m
          theorem Std.HashMap.Raw.isEmpty_eq_false_iff_exists_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) :
          theorem Std.HashMap.Raw.isEmpty_iff_forall_contains {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) :
          m.isEmpty = true ∀ (a : α), m.contains a = false
          theorem Std.HashMap.Raw.isEmpty_iff_forall_not_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) :
          m.isEmpty = true ∀ (a : α), ¬a m
          @[simp]
          theorem Std.HashMap.Raw.insert_eq_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] {p : α × β} :
          @[simp]
          theorem Std.HashMap.Raw.singleton_eq_insert {α : Type u} {β : Type v} [BEq α] [Hashable α] {p : α × β} :
          @[simp]
          theorem Std.HashMap.Raw.contains_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
          (m.insert k v).contains a = (k == a || m.contains a)
          @[simp]
          theorem Std.HashMap.Raw.mem_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
          a m.insert k v (k == a) = true a m
          theorem Std.HashMap.Raw.contains_of_contains_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
          (m.insert k v).contains a = true(k == a) = falsem.contains a = true
          theorem Std.HashMap.Raw.mem_of_mem_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
          a m.insert k v(k == a) = falsea m
          @[simp]
          theorem Std.HashMap.Raw.contains_insert_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
          (m.insert k v).contains k = true
          @[simp]
          theorem Std.HashMap.Raw.mem_insert_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
          k m.insert k v
          theorem Std.HashMap.Raw.size_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
          (m.insert k v).size = if k m then m.size else m.size + 1
          theorem Std.HashMap.Raw.size_le_size_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
          m.size (m.insert k v).size
          theorem Std.HashMap.Raw.size_insert_le {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
          (m.insert k v).size m.size + 1
          @[simp]
          theorem Std.HashMap.Raw.erase_emptyWithCapacity {α : Type u} {β : Type v} [BEq α] [Hashable α] {k : α} {c : Nat} :
          @[simp]
          theorem Std.HashMap.Raw.erase_empty {α : Type u} {β : Type v} [BEq α] [Hashable α] {k : α} :
          @[reducible, inline, deprecated Std.HashMap.Raw.erase_empty (since := "2025-03-12")]
          abbrev Std.HashMap.Raw.erase_emptyc {α : Type u_1} {β : Type u_2} [BEq α] [Hashable α] {k : α} :
          Equations
          Instances For
            @[simp]
            theorem Std.HashMap.Raw.isEmpty_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} :
            (m.erase k).isEmpty = (m.isEmpty || m.size == 1 && m.contains k)
            @[simp]
            theorem Std.HashMap.Raw.contains_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} :
            (m.erase k).contains a = (!k == a && m.contains a)
            @[simp]
            theorem Std.HashMap.Raw.mem_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} :
            a m.erase k (k == a) = false a m
            theorem Std.HashMap.Raw.contains_of_contains_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} :
            (m.erase k).contains a = truem.contains a = true
            theorem Std.HashMap.Raw.mem_of_mem_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} :
            a m.erase ka m
            theorem Std.HashMap.Raw.size_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} :
            (m.erase k).size = if k m then m.size - 1 else m.size
            theorem Std.HashMap.Raw.size_erase_le {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} :
            (m.erase k).size m.size
            theorem Std.HashMap.Raw.size_le_size_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} :
            m.size (m.erase k).size + 1
            @[simp]
            theorem Std.HashMap.Raw.containsThenInsert_fst {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] (h : m.WF) {k : α} {v : β} :
            @[simp]
            theorem Std.HashMap.Raw.containsThenInsert_snd {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] (h : m.WF) {k : α} {v : β} :
            @[simp]
            theorem Std.HashMap.Raw.containsThenInsertIfNew_fst {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] (h : m.WF) {k : α} {v : β} :
            @[simp]
            theorem Std.HashMap.Raw.containsThenInsertIfNew_snd {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] (h : m.WF) {k : α} {v : β} :
            @[simp]
            theorem Std.HashMap.Raw.get_eq_getElem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] {a : α} {h : a m} :
            m.get a h = m[a]
            @[simp]
            theorem Std.HashMap.Raw.get?_eq_getElem? {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] {a : α} :
            m.get? a = m[a]?
            @[simp]
            theorem Std.HashMap.Raw.get!_eq_getElem! {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [Inhabited β] {a : α} :
            m.get! a = m[a]!
            @[simp]
            theorem Std.HashMap.Raw.get?_emptyWithCapacity {α : Type u} {β : Type v} [BEq α] [Hashable α] {a : α} {c : Nat} :
            @[simp]
            theorem Std.HashMap.Raw.get?_empty {α : Type u} {β : Type v} [BEq α] [Hashable α] {a : α} :
            @[reducible, inline, deprecated Std.HashMap.Raw.get?_empty (since := "2025-03-12")]
            abbrev Std.HashMap.Raw.get?_emptyc {α : Type u_1} {β : Type u_2} [BEq α] [Hashable α] {a : α} :
            Equations
            Instances For
              theorem Std.HashMap.Raw.getElem?_of_isEmpty {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} :
              theorem Std.HashMap.Raw.getElem?_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
              (m.insert k v)[a]? = if (k == a) = true then some v else m[a]?
              @[simp]
              theorem Std.HashMap.Raw.getElem?_insert_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
              (m.insert k v)[k]? = some v
              theorem Std.HashMap.Raw.contains_eq_isSome_getElem? {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} :
              theorem Std.HashMap.Raw.getElem?_eq_none_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} :
              m.contains a = falsem[a]? = none
              theorem Std.HashMap.Raw.getElem?_eq_none {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} :
              ¬a mm[a]? = none
              theorem Std.HashMap.Raw.getElem?_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} :
              (m.erase k)[a]? = if (k == a) = true then none else m[a]?
              @[simp]
              theorem Std.HashMap.Raw.getElem?_erase_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} :
              (m.erase k)[k]? = none
              theorem Std.HashMap.Raw.getElem?_congr {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a b : α} (hab : (a == b) = true) :
              m[a]? = m[b]?
              theorem Std.HashMap.Raw.getElem_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} {h₁ : a m.insert k v} :
              (m.insert k v)[a] = if h₂ : (k == a) = true then v else m[a]
              @[simp]
              theorem Std.HashMap.Raw.getElem_insert_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
              (m.insert k v)[k] = v
              @[simp]
              theorem Std.HashMap.Raw.getElem_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {h' : a m.erase k} :
              (m.erase k)[a] = m[a]
              theorem Std.HashMap.Raw.getElem?_eq_some_getElem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} {h' : a m} :
              m[a]? = some m[a]
              theorem Std.HashMap.Raw.getElem_congr {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a b : α} (hab : (a == b) = true) {h' : a m} :
              m[a] = m[b]
              @[simp]
              theorem Std.HashMap.Raw.getElem!_emptyWithCapacity {α : Type u} {β : Type v} [BEq α] [Hashable α] [Inhabited β] {a : α} {c : Nat} :
              @[simp]
              theorem Std.HashMap.Raw.getElem!_empty {α : Type u} {β : Type v} [BEq α] [Hashable α] [Inhabited β] {a : α} :
              @[reducible, inline, deprecated Std.HashMap.Raw.getElem!_empty (since := "2025-03-12")]
              abbrev Std.HashMap.Raw.getElem!_emptyc {α : Type u_1} {β : Type u_2} [BEq α] [Hashable α] [Inhabited β] {a : α} :
              Equations
              Instances For
                theorem Std.HashMap.Raw.getElem!_of_isEmpty {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {a : α} :
                theorem Std.HashMap.Raw.getElem!_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {k a : α} {v : β} :
                (m.insert k v)[a]! = if (k == a) = true then v else m[a]!
                @[simp]
                theorem Std.HashMap.Raw.getElem!_insert_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {k : α} {v : β} :
                (m.insert k v)[k]! = v
                theorem Std.HashMap.Raw.getElem!_eq_default_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {a : α} :
                theorem Std.HashMap.Raw.getElem!_eq_default {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {a : α} :
                ¬a mm[a]! = default
                theorem Std.HashMap.Raw.getElem!_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {k a : α} :
                (m.erase k)[a]! = if (k == a) = true then default else m[a]!
                @[simp]
                theorem Std.HashMap.Raw.getElem!_erase_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {k : α} :
                theorem Std.HashMap.Raw.getElem?_eq_some_getElem!_of_contains {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {a : α} :
                m.contains a = truem[a]? = some m[a]!
                theorem Std.HashMap.Raw.getElem?_eq_some_getElem! {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {a : α} :
                a mm[a]? = some m[a]!
                theorem Std.HashMap.Raw.getElem!_eq_get!_getElem? {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {a : α} :
                theorem Std.HashMap.Raw.getElem_eq_getElem! {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {a : α} {h' : a m} :
                m[a] = m[a]!
                theorem Std.HashMap.Raw.getElem!_congr {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {a b : α} (hab : (a == b) = true) :
                m[a]! = m[b]!
                @[simp]
                theorem Std.HashMap.Raw.getD_emptyWithCapacity {α : Type u} {β : Type v} [BEq α] [Hashable α] {a : α} {fallback : β} {c : Nat} :
                (emptyWithCapacity c).getD a fallback = fallback
                @[simp]
                theorem Std.HashMap.Raw.getD_empty {α : Type u} {β : Type v} [BEq α] [Hashable α] {a : α} {fallback : β} :
                .getD a fallback = fallback
                @[reducible, inline, deprecated Std.HashMap.Raw.getD_empty (since := "2025-03-12")]
                abbrev Std.HashMap.Raw.getD_emptyc {α : Type u_1} {β : Type u_2} [BEq α] [Hashable α] {a : α} {fallback : β} :
                .getD a fallback = fallback
                Equations
                Instances For
                  theorem Std.HashMap.Raw.getD_of_isEmpty {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} {fallback : β} :
                  m.isEmpty = truem.getD a fallback = fallback
                  theorem Std.HashMap.Raw.getD_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {fallback v : β} :
                  (m.insert k v).getD a fallback = if (k == a) = true then v else m.getD a fallback
                  @[simp]
                  theorem Std.HashMap.Raw.getD_insert_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {fallback v : β} :
                  (m.insert k v).getD k fallback = v
                  theorem Std.HashMap.Raw.getD_eq_fallback_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} {fallback : β} :
                  m.contains a = falsem.getD a fallback = fallback
                  theorem Std.HashMap.Raw.getD_eq_fallback {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} {fallback : β} :
                  ¬a mm.getD a fallback = fallback
                  theorem Std.HashMap.Raw.getD_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {fallback : β} :
                  (m.erase k).getD a fallback = if (k == a) = true then fallback else m.getD a fallback
                  @[simp]
                  theorem Std.HashMap.Raw.getD_erase_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {fallback : β} :
                  (m.erase k).getD k fallback = fallback
                  theorem Std.HashMap.Raw.getElem?_eq_some_getD_of_contains {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} {fallback : β} :
                  m.contains a = truem[a]? = some (m.getD a fallback)
                  theorem Std.HashMap.Raw.getElem?_eq_some_getD {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} {fallback : β} :
                  a mm[a]? = some (m.getD a fallback)
                  theorem Std.HashMap.Raw.getD_eq_getD_getElem? {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} {fallback : β} :
                  m.getD a fallback = m[a]?.getD fallback
                  theorem Std.HashMap.Raw.getElem_eq_getD {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} {fallback : β} {h' : a m} :
                  m[a] = m.getD a fallback
                  theorem Std.HashMap.Raw.getElem!_eq_getD_default {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {a : α} :
                  theorem Std.HashMap.Raw.getD_congr {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a b : α} {fallback : β} (hab : (a == b) = true) :
                  m.getD a fallback = m.getD b fallback
                  @[simp]
                  theorem Std.HashMap.Raw.getKey?_emptyWithCapacity {α : Type u} {β : Type v} [BEq α] [Hashable α] {a : α} {c : Nat} :
                  @[simp]
                  theorem Std.HashMap.Raw.getKey?_empty {α : Type u} {β : Type v} [BEq α] [Hashable α] {a : α} :
                  @[reducible, inline, deprecated Std.HashMap.Raw.getKey?_empty (since := "2025-03-12")]
                  abbrev Std.HashMap.Raw.getKey?_emptyc {α : Type u_1} {β : Type u_2} [BEq α] [Hashable α] {a : α} :
                  Equations
                  Instances For
                    theorem Std.HashMap.Raw.getKey?_of_isEmpty {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} :
                    theorem Std.HashMap.Raw.getKey?_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
                    (m.insert k v).getKey? a = if (k == a) = true then some k else m.getKey? a
                    @[simp]
                    theorem Std.HashMap.Raw.getKey?_insert_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
                    (m.insert k v).getKey? k = some k
                    theorem Std.HashMap.Raw.contains_eq_isSome_getKey? {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} :
                    theorem Std.HashMap.Raw.getKey?_eq_none_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} :
                    theorem Std.HashMap.Raw.getKey?_eq_none {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} :
                    ¬a mm.getKey? a = none
                    theorem Std.HashMap.Raw.getKey?_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} :
                    (m.erase k).getKey? a = if (k == a) = true then none else m.getKey? a
                    @[simp]
                    theorem Std.HashMap.Raw.getKey?_erase_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} :
                    theorem Std.HashMap.Raw.getKey?_beq {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} :
                    Option.all (fun (x : α) => x == k) (m.getKey? k) = true
                    theorem Std.HashMap.Raw.getKey?_congr {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k k' : α} (h' : (k == k') = true) :
                    m.getKey? k = m.getKey? k'
                    theorem Std.HashMap.Raw.getKey?_eq_some_of_contains {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [LawfulBEq α] (h : m.WF) {k : α} (h' : m.contains k = true) :
                    m.getKey? k = some k
                    theorem Std.HashMap.Raw.getKey?_eq_some {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [LawfulBEq α] (h : m.WF) {k : α} (h' : k m) :
                    m.getKey? k = some k
                    theorem Std.HashMap.Raw.getKey_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} {h₁ : a m.insert k v} :
                    (m.insert k v).getKey a h₁ = if h₂ : (k == a) = true then k else m.getKey a
                    @[simp]
                    theorem Std.HashMap.Raw.getKey_insert_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
                    (m.insert k v).getKey k = k
                    @[simp]
                    theorem Std.HashMap.Raw.getKey_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {h' : a m.erase k} :
                    (m.erase k).getKey a h' = m.getKey a
                    theorem Std.HashMap.Raw.getKey?_eq_some_getKey {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a : α} {h' : a m} :
                    m.getKey? a = some (m.getKey a h')
                    theorem Std.HashMap.Raw.getKey_beq {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} (h' : k m) :
                    (m.getKey k h' == k) = true
                    theorem Std.HashMap.Raw.getKey_congr {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k₁ k₂ : α} (h' : (k₁ == k₂) = true) (h₁ : k₁ m) :
                    m.getKey k₁ h₁ = m.getKey k₂
                    theorem Std.HashMap.Raw.getKey_eq {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [LawfulBEq α] (h : m.WF) {k : α} (h' : k m) :
                    m.getKey k h' = k
                    @[simp]
                    theorem Std.HashMap.Raw.getKey!_emptyWithCapacity {α : Type u} {β : Type v} [BEq α] [Hashable α] [Inhabited α] {a : α} {c : Nat} :
                    @[simp]
                    theorem Std.HashMap.Raw.getKey!_empty {α : Type u} {β : Type v} [BEq α] [Hashable α] [Inhabited α] {a : α} :
                    @[reducible, inline, deprecated Std.HashMap.Raw.getKey!_empty (since := "2025-03-12")]
                    abbrev Std.HashMap.Raw.getKey!_emptyc {α : Type u_1} {β : Type u_2} [BEq α] [Hashable α] [Inhabited α] {a : α} :
                    Equations
                    Instances For
                      theorem Std.HashMap.Raw.getKey!_of_isEmpty {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {a : α} :
                      theorem Std.HashMap.Raw.getKey!_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {k a : α} {v : β} :
                      (m.insert k v).getKey! a = if (k == a) = true then k else m.getKey! a
                      @[simp]
                      theorem Std.HashMap.Raw.getKey!_insert_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {k : α} {v : β} :
                      (m.insert k v).getKey! k = k
                      theorem Std.HashMap.Raw.getKey!_eq_default_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {a : α} :
                      theorem Std.HashMap.Raw.getKey!_eq_default {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {a : α} :
                      ¬a mm.getKey! a = default
                      theorem Std.HashMap.Raw.getKey!_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {k a : α} :
                      @[simp]
                      theorem Std.HashMap.Raw.getKey!_erase_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {k : α} :
                      theorem Std.HashMap.Raw.getKey?_eq_some_getKey!_of_contains {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {a : α} :
                      m.contains a = truem.getKey? a = some (m.getKey! a)
                      theorem Std.HashMap.Raw.getKey?_eq_some_getKey! {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {a : α} :
                      a mm.getKey? a = some (m.getKey! a)
                      theorem Std.HashMap.Raw.getKey!_eq_get!_getKey? {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {a : α} :
                      m.getKey! a = (m.getKey? a).get!
                      theorem Std.HashMap.Raw.getKey_eq_getKey! {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {a : α} {h' : a m} :
                      m.getKey a h' = m.getKey! a
                      theorem Std.HashMap.Raw.getKey!_congr {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {k k' : α} (h' : (k == k') = true) :
                      m.getKey! k = m.getKey! k'
                      theorem Std.HashMap.Raw.getKey!_eq_of_contains {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [LawfulBEq α] [Inhabited α] (h : m.WF) {k : α} (h' : m.contains k = true) :
                      m.getKey! k = k
                      theorem Std.HashMap.Raw.getKey!_eq_of_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [LawfulBEq α] [Inhabited α] (h : m.WF) {k : α} (h' : k m) :
                      m.getKey! k = k
                      @[simp]
                      theorem Std.HashMap.Raw.getKeyD_emptyWithCapacity {α : Type u} {β : Type v} [BEq α] [Hashable α] {a fallback : α} {c : Nat} :
                      (emptyWithCapacity c).getKeyD a fallback = fallback
                      @[simp]
                      theorem Std.HashMap.Raw.getKeyD_empty {α : Type u} {β : Type v} [BEq α] [Hashable α] {a fallback : α} :
                      .getKeyD a fallback = fallback
                      @[reducible, inline, deprecated Std.HashMap.Raw.getKeyD_empty (since := "2025-03-12")]
                      abbrev Std.HashMap.Raw.getKeyD_emptyc {α : Type u_1} {β : Type u_2} [BEq α] [Hashable α] {a fallback : α} :
                      .getKeyD a fallback = fallback
                      Equations
                      Instances For
                        theorem Std.HashMap.Raw.getKeyD_of_isEmpty {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a fallback : α} :
                        m.isEmpty = truem.getKeyD a fallback = fallback
                        theorem Std.HashMap.Raw.getKeyD_insert {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a fallback : α} {v : β} :
                        (m.insert k v).getKeyD a fallback = if (k == a) = true then k else m.getKeyD a fallback
                        @[simp]
                        theorem Std.HashMap.Raw.getKeyD_insert_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k fallback : α} {v : β} :
                        (m.insert k v).getKeyD k fallback = k
                        theorem Std.HashMap.Raw.getKeyD_eq_fallback_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a fallback : α} :
                        m.contains a = falsem.getKeyD a fallback = fallback
                        theorem Std.HashMap.Raw.getKeyD_eq_fallback {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a fallback : α} :
                        ¬a mm.getKeyD a fallback = fallback
                        theorem Std.HashMap.Raw.getKeyD_erase {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a fallback : α} :
                        (m.erase k).getKeyD a fallback = if (k == a) = true then fallback else m.getKeyD a fallback
                        @[simp]
                        theorem Std.HashMap.Raw.getKeyD_erase_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k fallback : α} :
                        (m.erase k).getKeyD k fallback = fallback
                        theorem Std.HashMap.Raw.getKey?_eq_some_getKeyD_of_contains {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a fallback : α} :
                        m.contains a = truem.getKey? a = some (m.getKeyD a fallback)
                        theorem Std.HashMap.Raw.getKey?_eq_some_getKeyD {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a fallback : α} :
                        a mm.getKey? a = some (m.getKeyD a fallback)
                        theorem Std.HashMap.Raw.getKeyD_eq_getD_getKey? {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a fallback : α} :
                        m.getKeyD a fallback = (m.getKey? a).getD fallback
                        theorem Std.HashMap.Raw.getKey_eq_getKeyD {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {a fallback : α} {h' : a m} :
                        m.getKey a h' = m.getKeyD a fallback
                        theorem Std.HashMap.Raw.getKey!_eq_getKeyD_default {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {a : α} :
                        theorem Std.HashMap.Raw.getKeyD_congr {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k k' fallback : α} (h' : (k == k') = true) :
                        m.getKeyD k fallback = m.getKeyD k' fallback
                        theorem Std.HashMap.Raw.getKeyD_eq_of_contains {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [LawfulBEq α] (h : m.WF) {k fallback : α} (h' : m.contains k = true) :
                        m.getKeyD k fallback = k
                        theorem Std.HashMap.Raw.getKeyD_eq_of_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [LawfulBEq α] (h : m.WF) {k fallback : α} (h' : k m) :
                        m.getKeyD k fallback = k
                        @[simp]
                        theorem Std.HashMap.Raw.isEmpty_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
                        @[simp]
                        theorem Std.HashMap.Raw.contains_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
                        (m.insertIfNew k v).contains a = (k == a || m.contains a)
                        @[simp]
                        theorem Std.HashMap.Raw.mem_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
                        a m.insertIfNew k v (k == a) = true a m
                        theorem Std.HashMap.Raw.contains_insertIfNew_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
                        theorem Std.HashMap.Raw.mem_insertIfNew_self {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
                        theorem Std.HashMap.Raw.contains_of_contains_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
                        (m.insertIfNew k v).contains a = true(k == a) = falsem.contains a = true
                        theorem Std.HashMap.Raw.mem_of_mem_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
                        a m.insertIfNew k v(k == a) = falsea m
                        theorem Std.HashMap.Raw.contains_of_contains_insertIfNew' {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
                        (m.insertIfNew k v).contains a = true¬((k == a) = true m.contains k = false) → m.contains a = true

                        This is a restatement of contains_of_contains_insertIfNew that is written to exactly match the proof obligation in the statement of getElem_insertIfNew.

                        theorem Std.HashMap.Raw.mem_of_mem_insertIfNew' {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
                        a m.insertIfNew k v¬((k == a) = true ¬k m) → a m

                        This is a restatement of mem_of_mem_insertIfNew that is written to exactly match the proof obligation in the statement of getElem_insertIfNew.

                        theorem Std.HashMap.Raw.size_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
                        (m.insertIfNew k v).size = if k m then m.size else m.size + 1
                        theorem Std.HashMap.Raw.size_le_size_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
                        theorem Std.HashMap.Raw.size_insertIfNew_le {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
                        (m.insertIfNew k v).size m.size + 1
                        theorem Std.HashMap.Raw.getElem?_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
                        (m.insertIfNew k v)[a]? = if (k == a) = true ¬k m then some v else m[a]?
                        theorem Std.HashMap.Raw.getElem_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} {h₁ : a m.insertIfNew k v} :
                        (m.insertIfNew k v)[a] = if h₂ : (k == a) = true ¬k m then v else m[a]
                        theorem Std.HashMap.Raw.getElem!_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {k a : α} {v : β} :
                        (m.insertIfNew k v)[a]! = if (k == a) = true ¬k m then v else m[a]!
                        theorem Std.HashMap.Raw.getD_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {fallback v : β} :
                        (m.insertIfNew k v).getD a fallback = if (k == a) = true ¬k m then v else m.getD a fallback
                        theorem Std.HashMap.Raw.getKey?_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} :
                        (m.insertIfNew k v).getKey? a = if (k == a) = true ¬k m then some k else m.getKey? a
                        theorem Std.HashMap.Raw.getKey_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a : α} {v : β} {h₁ : a m.insertIfNew k v} :
                        (m.insertIfNew k v).getKey a h₁ = if h₂ : (k == a) = true ¬k m then k else m.getKey a
                        theorem Std.HashMap.Raw.getKey!_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {k a : α} {v : β} :
                        (m.insertIfNew k v).getKey! a = if (k == a) = true ¬k m then k else m.getKey! a
                        theorem Std.HashMap.Raw.getKeyD_insertIfNew {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k a fallback : α} {v : β} :
                        (m.insertIfNew k v).getKeyD a fallback = if (k == a) = true ¬k m then k else m.getKeyD a fallback
                        @[simp]
                        theorem Std.HashMap.Raw.getThenInsertIfNew?_fst {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] (h : m.WF) {k : α} {v : β} :
                        @[simp]
                        theorem Std.HashMap.Raw.getThenInsertIfNew?_snd {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] (h : m.WF) {k : α} {v : β} :
                        @[simp]
                        theorem Std.HashMap.Raw.length_keys {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) :
                        @[simp]
                        theorem Std.HashMap.Raw.isEmpty_keys {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) :
                        @[simp]
                        theorem Std.HashMap.Raw.contains_keys {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} :
                        @[simp]
                        theorem Std.HashMap.Raw.mem_keys {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [LawfulBEq α] [LawfulHashable α] (h : m.WF) {k : α} :
                        k m.keys k m
                        theorem Std.HashMap.Raw.distinct_keys {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) :
                        List.Pairwise (fun (a b : α) => (a == b) = false) m.keys
                        @[simp]
                        theorem Std.HashMap.Raw.map_fst_toList_eq_keys {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) :
                        @[simp, deprecated Std.HashMap.Raw.map_fst_toList_eq_keys (since := "2025-02-28")]
                        theorem Std.HashMap.Raw.map_prod_fst_toList_eq_keys {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) :
                        @[simp]
                        theorem Std.HashMap.Raw.length_toList {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) :
                        @[simp]
                        theorem Std.HashMap.Raw.isEmpty_toList {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) :
                        @[simp]
                        theorem Std.HashMap.Raw.mem_toList_iff_getElem?_eq_some {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [LawfulBEq α] (h : m.WF) {k : α} {v : β} :
                        @[simp]
                        theorem Std.HashMap.Raw.mem_toList_iff_getKey?_eq_some_and_getElem_eq_some {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
                        theorem Std.HashMap.Raw.getElem?_eq_some_iff_exists_beq_and_mem_toList {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} {v : β} :
                        m[k]? = some v (k' : α), (k == k') = true (k', v) m.toList
                        theorem Std.HashMap.Raw.find?_toList_eq_some_iff_getKey?_eq_some_and_getElem?_eq_some {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k k' : α} {v : β} :
                        List.find? (fun (a : α × β) => a.fst == k) m.toList = some (k', v) m.getKey? k = some k' m[k]? = some v
                        theorem Std.HashMap.Raw.find?_toList_eq_none_iff_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} :
                        List.find? (fun (x : α × β) => x.fst == k) m.toList = none m.contains k = false
                        @[simp]
                        theorem Std.HashMap.Raw.find?_toList_eq_none_iff_not_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {k : α} :
                        List.find? (fun (x : α × β) => x.fst == k) m.toList = none ¬k m
                        theorem Std.HashMap.Raw.distinct_keys_toList {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) :
                        List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) m.toList
                        theorem Std.HashMap.Raw.foldM_eq_foldlM_toList {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} {δ : Type w} {m' : Type w → Type w} [Monad m'] [LawfulMonad m'] (h : m.WF) {f : δαβm' δ} {init : δ} :
                        foldM f init m = List.foldlM (fun (a : δ) (b : α × β) => f a b.fst b.snd) init m.toList
                        theorem Std.HashMap.Raw.fold_eq_foldl_toList {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} {δ : Type w} (h : m.WF) {f : δαβδ} {init : δ} :
                        fold f init m = List.foldl (fun (a : δ) (b : α × β) => f a b.fst b.snd) init m.toList
                        @[simp]
                        theorem Std.HashMap.Raw.forM_eq_forM {α : Type u} {β : Type v} {m : Raw α β} {m' : Type w → Type w} [Monad m'] [LawfulMonad m'] {f : αβm' PUnit} :
                        forM f m = ForM.forM m fun (a : α × β) => f a.fst a.snd
                        theorem Std.HashMap.Raw.forM_eq_forM_toList {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} {m' : Type w → Type w} [Monad m'] [LawfulMonad m'] (h : m.WF) {f : α × βm' PUnit} :
                        @[simp]
                        theorem Std.HashMap.Raw.forIn_eq_forIn {α : Type u} {β : Type v} {m : Raw α β} {δ : Type w} {m' : Type w → Type w} [Monad m'] [LawfulMonad m'] {f : αβδm' (ForInStep δ)} {init : δ} :
                        forIn f init m = ForIn.forIn m init fun (a : α × β) (d : δ) => f a.fst a.snd d
                        theorem Std.HashMap.Raw.forIn_eq_forIn_toList {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} {δ : Type w} {m' : Type w → Type w} [Monad m'] [LawfulMonad m'] (h : m.WF) {f : α × βδm' (ForInStep δ)} {init : δ} :
                        ForIn.forIn m init f = ForIn.forIn m.toList init f
                        theorem Std.HashMap.Raw.foldM_eq_foldlM_keys {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} {δ : Type w} {m' : Type w → Type w} [Monad m'] [LawfulMonad m'] (h : m.WF) {f : δαm' δ} {init : δ} :
                        foldM (fun (d : δ) (a : α) (x : β) => f d a) init m = List.foldlM f init m.keys
                        theorem Std.HashMap.Raw.fold_eq_foldl_keys {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} {δ : Type w} (h : m.WF) {f : δαδ} {init : δ} :
                        fold (fun (d : δ) (a : α) (x : β) => f d a) init m = List.foldl f init m.keys
                        theorem Std.HashMap.Raw.forM_eq_forM_keys {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} {m' : Type w → Type w} [Monad m'] [LawfulMonad m'] (h : m.WF) {f : αm' PUnit} :
                        (ForM.forM m fun (a : α × β) => f a.fst) = m.keys.forM f
                        theorem Std.HashMap.Raw.forIn_eq_forIn_keys {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} {δ : Type w} {m' : Type w → Type w} [Monad m'] [LawfulMonad m'] (h : m.WF) {f : αδm' (ForInStep δ)} {init : δ} :
                        (ForIn.forIn m init fun (a : α × β) (d : δ) => f a.fst d) = ForIn.forIn m.keys init f
                        @[simp]
                        theorem Std.HashMap.Raw.insertMany_nil {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] (h : m.WF) :
                        @[simp]
                        theorem Std.HashMap.Raw.insertMany_list_singleton {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] (h : m.WF) {k : α} {v : β} :
                        theorem Std.HashMap.Raw.insertMany_cons {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] (h : m.WF) {l : List (α × β)} {k : α} {v : β} :
                        m.insertMany ((k, v) :: l) = (m.insert k v).insertMany l
                        @[simp]
                        theorem Std.HashMap.Raw.contains_insertMany_list {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k : α} :
                        @[simp]
                        theorem Std.HashMap.Raw.mem_insertMany_list {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k : α} :
                        theorem Std.HashMap.Raw.mem_of_mem_insertMany_list {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k : α} :
                        k m.insertMany l(List.map Prod.fst l).contains k = falsek m
                        theorem Std.HashMap.Raw.getKey?_insertMany_list_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k : α} (contains_eq_false : (List.map Prod.fst l).contains k = false) :
                        theorem Std.HashMap.Raw.getKey?_insertMany_list_of_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : k List.map Prod.fst l) :
                        theorem Std.HashMap.Raw.getKey_insertMany_list_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k : α} (contains_eq_false : (List.map Prod.fst l).contains k = false) {h' : k m.insertMany l} :
                        (m.insertMany l).getKey k h' = m.getKey k
                        theorem Std.HashMap.Raw.getKey_insertMany_list_of_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : k List.map Prod.fst l) {h' : k' m.insertMany l} :
                        (m.insertMany l).getKey k' h' = k
                        theorem Std.HashMap.Raw.getKey!_insertMany_list_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {l : List (α × β)} {k : α} (contains_eq_false : (List.map Prod.fst l).contains k = false) :
                        theorem Std.HashMap.Raw.getKey!_insertMany_list_of_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : k List.map Prod.fst l) :
                        (m.insertMany l).getKey! k' = k
                        theorem Std.HashMap.Raw.getKeyD_insertMany_list_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k fallback : α} (contains_eq_false : (List.map Prod.fst l).contains k = false) :
                        (m.insertMany l).getKeyD k fallback = m.getKeyD k fallback
                        theorem Std.HashMap.Raw.getKeyD_insertMany_list_of_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k k' fallback : α} (k_beq : (k == k') = true) (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : k List.map Prod.fst l) :
                        (m.insertMany l).getKeyD k' fallback = k
                        theorem Std.HashMap.Raw.size_insertMany_list {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) :
                        (∀ (a : α), a m(List.map Prod.fst l).contains a = false)(m.insertMany l).size = m.size + l.length
                        theorem Std.HashMap.Raw.size_le_size_insertMany_list {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} :
                        theorem Std.HashMap.Raw.size_insertMany_list_le {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} :
                        @[simp]
                        theorem Std.HashMap.Raw.isEmpty_insertMany_list {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} :
                        theorem Std.HashMap.Raw.getElem?_insertMany_list_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k : α} (contains_eq_false : (List.map Prod.fst l).contains k = false) :
                        theorem Std.HashMap.Raw.getElem?_insertMany_list_of_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) {v : β} (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : (k, v) l) :
                        (m.insertMany l)[k']? = some v
                        theorem Std.HashMap.Raw.getElem_insertMany_list_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k : α} (contains_eq_false : (List.map Prod.fst l).contains k = false) {h' : k m.insertMany l} :
                        (m.insertMany l)[k] = m[k]
                        theorem Std.HashMap.Raw.getElem_insertMany_list_of_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) {v : β} (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : (k, v) l) {h' : k' m.insertMany l} :
                        (m.insertMany l)[k'] = v
                        theorem Std.HashMap.Raw.getElem!_insertMany_list_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {l : List (α × β)} {k : α} (contains_eq_false : (List.map Prod.fst l).contains k = false) :
                        theorem Std.HashMap.Raw.getElem!_insertMany_list_of_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited β] (h : m.WF) {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) {v : β} (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : (k, v) l) :
                        (m.insertMany l)[k']! = v
                        theorem Std.HashMap.Raw.getD_insertMany_list_of_contains_eq_false {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k : α} {fallback : β} (contains_eq_false : (List.map Prod.fst l).contains k = false) :
                        (m.insertMany l).getD k fallback = m.getD k fallback
                        theorem Std.HashMap.Raw.getD_insertMany_list_of_mem {α : Type u} {β : Type v} {m : Raw α β} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) {v fallback : β} (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : (k, v) l) :
                        (m.insertMany l).getD k' fallback = v
                        @[simp]
                        theorem Std.HashMap.Raw.insertManyIfNewUnit_nil {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} (h : m.WF) :
                        @[simp]
                        theorem Std.HashMap.Raw.insertManyIfNewUnit_cons {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} (h : m.WF) {l : List α} {k : α} :
                        @[simp]
                        theorem Std.HashMap.Raw.contains_insertManyIfNewUnit_list {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List α} {k : α} :
                        @[simp]
                        theorem Std.HashMap.Raw.mem_insertManyIfNewUnit_list {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List α} {k : α} :
                        theorem Std.HashMap.Raw.mem_of_mem_insertManyIfNewUnit_list {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List α} {k : α} (contains_eq_false : l.contains k = false) :
                        theorem Std.HashMap.Raw.getKey?_insertManyIfNewUnit_list_of_not_mem_of_contains_eq_false {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List α} {k : α} (not_mem : ¬k m) (contains_eq_false : l.contains k = false) :
                        theorem Std.HashMap.Raw.getKey?_insertManyIfNewUnit_list_of_not_mem_of_mem {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {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.HashMap.Raw.getKey?_insertManyIfNewUnit_list_of_mem {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List α} {k : α} (mem : k m) :
                        theorem Std.HashMap.Raw.getKey_insertManyIfNewUnit_list_of_not_mem_of_mem {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {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.insertManyIfNewUnit l} :
                        theorem Std.HashMap.Raw.getKey_insertManyIfNewUnit_list_of_mem {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List α} {k : α} (mem : k m) {h₃ : k m.insertManyIfNewUnit l} :
                        (m.insertManyIfNewUnit l).getKey k h₃ = m.getKey k mem
                        theorem Std.HashMap.Raw.getKey!_insertManyIfNewUnit_list_of_not_mem_of_contains_eq_false {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {l : List α} {k : α} (not_mem : ¬k m) (contains_eq_false : l.contains k = false) :
                        theorem Std.HashMap.Raw.getKey!_insertManyIfNewUnit_list_of_not_mem_of_mem {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {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.HashMap.Raw.getKey!_insertManyIfNewUnit_list_of_mem {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] [Inhabited α] (h : m.WF) {l : List α} {k : α} (mem : k m) :
                        theorem Std.HashMap.Raw.getKeyD_insertManyIfNewUnit_list_of_not_mem_of_contains_eq_false {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List α} {k fallback : α} (not_mem : ¬k m) (contains_eq_false : l.contains k = false) :
                        (m.insertManyIfNewUnit l).getKeyD k fallback = fallback
                        theorem Std.HashMap.Raw.getKeyD_insertManyIfNewUnit_list_of_not_mem_of_mem {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {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) :
                        (m.insertManyIfNewUnit l).getKeyD k' fallback = k
                        theorem Std.HashMap.Raw.getKeyD_insertManyIfNewUnit_list_of_mem {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List α} {k fallback : α} (mem : k m) :
                        (m.insertManyIfNewUnit l).getKeyD k fallback = m.getKeyD k fallback
                        theorem Std.HashMap.Raw.size_insertManyIfNewUnit_list {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List α} (distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l) :
                        (∀ (a : α), a ml.contains a = false)(m.insertManyIfNewUnit l).size = m.size + l.length
                        @[simp]
                        @[simp]
                        theorem Std.HashMap.Raw.getElem?_insertManyIfNewUnit_list {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} [EquivBEq α] [LawfulHashable α] (h : m.WF) {l : List α} {k : α} :
                        @[simp]
                        theorem Std.HashMap.Raw.getElem_insertManyIfNewUnit_list {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} {l : List α} {k : α} {h : k m.insertManyIfNewUnit l} :
                        @[simp]
                        theorem Std.HashMap.Raw.getElem!_insertManyIfNewUnit_list {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} {l : List α} {k : α} :
                        @[simp]
                        theorem Std.HashMap.Raw.getD_insertManyIfNewUnit_list {α : Type u} [BEq α] [Hashable α] {m : Raw α Unit} {l : List α} {k : α} {fallback : Unit} :
                        (m.insertManyIfNewUnit l).getD k fallback = ()
                        @[simp]
                        theorem Std.HashMap.Raw.ofList_nil {α : Type u} {β : Type v} [BEq α] [Hashable α] :
                        @[simp]
                        theorem Std.HashMap.Raw.ofList_singleton {α : Type u} {β : Type v} [BEq α] [Hashable α] {k : α} {v : β} :
                        theorem Std.HashMap.Raw.ofList_cons {α : Type u} {β : Type v} [BEq α] [Hashable α] {k : α} {v : β} {tl : List (α × β)} :
                        ofList ((k, v) :: tl) = (.insert k v).insertMany tl
                        @[simp]
                        theorem Std.HashMap.Raw.contains_ofList {α : Type u} {β : Type v} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List (α × β)} {k : α} :
                        @[simp]
                        theorem Std.HashMap.Raw.mem_ofList {α : Type u} {β : Type v} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List (α × β)} {k : α} :
                        theorem Std.HashMap.Raw.getElem?_ofList_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [Hashable α] [LawfulBEq α] {l : List (α × β)} {k : α} (contains_eq_false : (List.map Prod.fst l).contains k = false) :
                        theorem Std.HashMap.Raw.getElem?_ofList_of_mem {α : Type u} {β : Type v} [BEq α] [Hashable α] [LawfulBEq α] {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) {v : β} (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : (k, v) l) :
                        (ofList l)[k']? = some v
                        theorem Std.HashMap.Raw.getElem_ofList_of_mem {α : Type u} {β : Type v} [BEq α] [Hashable α] [LawfulBEq α] {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) {v : β} (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : (k, v) l) {h : k' ofList l} :
                        (ofList l)[k'] = v
                        theorem Std.HashMap.Raw.getElem!_ofList_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [Hashable α] [LawfulBEq α] {l : List (α × β)} {k : α} [Inhabited β] (contains_eq_false : (List.map Prod.fst l).contains k = false) :
                        theorem Std.HashMap.Raw.getElem!_ofList_of_mem {α : Type u} {β : Type v} [BEq α] [Hashable α] [LawfulBEq α] {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) {v : β} [Inhabited β] (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : (k, v) l) :
                        (ofList l)[k']! = v
                        theorem Std.HashMap.Raw.getD_ofList_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [Hashable α] [LawfulBEq α] {l : List (α × β)} {k : α} {fallback : β} (contains_eq_false : (List.map Prod.fst l).contains k = false) :
                        (ofList l).getD k fallback = fallback
                        theorem Std.HashMap.Raw.getD_ofList_of_mem {α : Type u} {β : Type v} [BEq α] [Hashable α] [LawfulBEq α] {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) {v fallback : β} (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : (k, v) l) :
                        (ofList l).getD k' fallback = v
                        theorem Std.HashMap.Raw.getKey?_ofList_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List (α × β)} {k : α} (contains_eq_false : (List.map Prod.fst l).contains k = false) :
                        theorem Std.HashMap.Raw.getKey?_ofList_of_mem {α : Type u} {β : Type v} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : k List.map Prod.fst l) :
                        (ofList l).getKey? k' = some k
                        theorem Std.HashMap.Raw.getKey_ofList_of_mem {α : Type u} {β : Type v} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : k List.map Prod.fst l) {h' : k' ofList l} :
                        (ofList l).getKey k' h' = k
                        theorem Std.HashMap.Raw.getKey!_ofList_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] {l : List (α × β)} {k : α} (contains_eq_false : (List.map Prod.fst l).contains k = false) :
                        theorem Std.HashMap.Raw.getKey!_ofList_of_mem {α : Type u} {β : Type v} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] {l : List (α × β)} {k k' : α} (k_beq : (k == k') = true) (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : k List.map Prod.fst l) :
                        (ofList l).getKey! k' = k
                        theorem Std.HashMap.Raw.getKeyD_ofList_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List (α × β)} {k fallback : α} (contains_eq_false : (List.map Prod.fst l).contains k = false) :
                        (ofList l).getKeyD k fallback = fallback
                        theorem Std.HashMap.Raw.getKeyD_ofList_of_mem {α : Type u} {β : Type v} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List (α × β)} {k k' fallback : α} (k_beq : (k == k') = true) (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) (mem : k List.map Prod.fst l) :
                        (ofList l).getKeyD k' fallback = k
                        theorem Std.HashMap.Raw.size_ofList {α : Type u} {β : Type v} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List (α × β)} (distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l) :
                        theorem Std.HashMap.Raw.size_ofList_le {α : Type u} {β : Type v} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List (α × β)} :
                        @[simp]
                        theorem Std.HashMap.Raw.isEmpty_ofList {α : Type u} {β : Type v} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List (α × β)} :
                        theorem Std.HashMap.Raw.unitOfList_cons {α : Type u} [BEq α] [Hashable α] {hd : α} {tl : List α} :
                        @[simp]
                        theorem Std.HashMap.Raw.contains_unitOfList {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List α} {k : α} :
                        @[simp]
                        theorem Std.HashMap.Raw.mem_unitOfList {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List α} {k : α} :
                        theorem Std.HashMap.Raw.getKey?_unitOfList_of_contains_eq_false {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List α} {k : α} (contains_eq_false : l.contains k = false) :
                        theorem Std.HashMap.Raw.getKey?_unitOfList_of_mem {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List α} {k k' : α} (k_beq : (k == k') = true) (distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l) (mem : k l) :
                        theorem Std.HashMap.Raw.getKey_unitOfList_of_mem {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List α} {k k' : α} (k_beq : (k == k') = true) (distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l) (mem : k l) {h' : k' unitOfList l} :
                        (unitOfList l).getKey k' h' = k
                        theorem Std.HashMap.Raw.getKey!_unitOfList_of_contains_eq_false {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] {l : List α} {k : α} (contains_eq_false : l.contains k = false) :
                        theorem Std.HashMap.Raw.getKey!_unitOfList_of_mem {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] [Inhabited α] {l : List α} {k k' : α} (k_beq : (k == k') = true) (distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l) (mem : k l) :
                        theorem Std.HashMap.Raw.getKeyD_unitOfList_of_contains_eq_false {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List α} {k fallback : α} (contains_eq_false : l.contains k = false) :
                        (unitOfList l).getKeyD k fallback = fallback
                        theorem Std.HashMap.Raw.getKeyD_unitOfList_of_mem {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List α} {k k' fallback : α} (k_beq : (k == k') = true) (distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l) (mem : k l) :
                        (unitOfList l).getKeyD k' fallback = k
                        theorem Std.HashMap.Raw.size_unitOfList {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List α} (distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l) :
                        @[simp]
                        @[simp]
                        theorem Std.HashMap.Raw.getElem?_unitOfList {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {l : List α} {k : α} :
                        @[simp]
                        theorem Std.HashMap.Raw.getElem_unitOfList {α : Type u} [BEq α] [Hashable α] {l : List α} {k : α} {h : k unitOfList l} :
                        @[simp]
                        theorem Std.HashMap.Raw.getElem!_unitOfList {α : Type u} [BEq α] [Hashable α] {l : List α} {k : α} :
                        @[simp]
                        theorem Std.HashMap.Raw.getD_unitOfList {α : Type u} [BEq α] [Hashable α] {l : List α} {k : α} {fallback : Unit} :
                        (unitOfList l).getD k fallback = ()
                        theorem Std.HashMap.Raw.isEmpty_alter_eq_isEmpty_erase {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).isEmpty = ((m.erase k).isEmpty && (f m[k]?).isNone)
                        @[simp]
                        theorem Std.HashMap.Raw.isEmpty_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).isEmpty = ((m.isEmpty || m.size == 1 && m.contains k) && (f m[k]?).isNone)
                        theorem Std.HashMap.Raw.contains_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).contains k' = if (k == k') = true then (f m[k]?).isSome else m.contains k'
                        theorem Std.HashMap.Raw.mem_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : Option βOption β} (h : m.WF) :
                        k' m.alter k f if (k == k') = true then (f m[k]?).isSome = true else k' m
                        theorem Std.HashMap.Raw.mem_alter_of_beq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : Option βOption β} (h : m.WF) (he : (k == k') = true) :
                        k' m.alter k f (f m[k]?).isSome = true
                        @[simp]
                        theorem Std.HashMap.Raw.contains_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).contains k = (f m[k]?).isSome
                        @[simp]
                        theorem Std.HashMap.Raw.mem_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : Option βOption β} (h : m.WF) :
                        k m.alter k f (f m[k]?).isSome = true
                        theorem Std.HashMap.Raw.contains_alter_of_beq_eq_false {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : Option βOption β} (h : m.WF) (he : (k == k') = false) :
                        (m.alter k f).contains k' = m.contains k'
                        theorem Std.HashMap.Raw.mem_alter_of_beq_eq_false {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : Option βOption β} (h : m.WF) (he : (k == k') = false) :
                        k' m.alter k f k' m
                        theorem Std.HashMap.Raw.size_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [LawfulBEq α] {k : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).size = if k m (f m[k]?).isNone = true then m.size - 1 else if ¬k m (f m[k]?).isSome = true then m.size + 1 else m.size
                        theorem Std.HashMap.Raw.size_alter_eq_add_one {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [LawfulBEq α] {k : α} {f : Option βOption β} (h : m.WF) (h₁ : ¬k m) (h₂ : (f m[k]?).isSome = true) :
                        (m.alter k f).size = m.size + 1
                        theorem Std.HashMap.Raw.size_alter_eq_sub_one {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [LawfulBEq α] {k : α} {f : Option βOption β} (h : m.WF) (h₁ : k m) (h₂ : (f m[k]?).isNone = true) :
                        (m.alter k f).size = m.size - 1
                        theorem Std.HashMap.Raw.size_alter_eq_self_of_not_mem {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [LawfulBEq α] {k : α} {f : Option βOption β} (h : m.WF) (h₁ : ¬k m) (h₂ : (f m[k]?).isNone = true) :
                        (m.alter k f).size = m.size
                        theorem Std.HashMap.Raw.size_alter_eq_self_of_mem {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [LawfulBEq α] {k : α} {f : Option βOption β} (h : m.WF) (h₁ : k m) (h₂ : (f m[k]?).isSome = true) :
                        (m.alter k f).size = m.size
                        theorem Std.HashMap.Raw.size_alter_le_size {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [LawfulBEq α] {k : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).size m.size + 1
                        theorem Std.HashMap.Raw.size_le_size_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [LawfulBEq α] {k : α} {f : Option βOption β} (h : m.WF) :
                        m.size - 1 (m.alter k f).size
                        theorem Std.HashMap.Raw.getElem?_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f)[k']? = if (k == k') = true then f m[k]? else m[k']?
                        @[deprecated Std.HashMap.Raw.getElem?_alter (since := "2025-02-09")]
                        theorem Std.HashMap.Raw.get?_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).get? k' = if (k == k') = true then f (m.get? k) else m.get? k'
                        @[simp]
                        theorem Std.HashMap.Raw.getElem?_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f)[k]? = f m[k]?
                        @[deprecated Std.HashMap.Raw.get?_alter_self (since := "2025-02-09")]
                        theorem Std.HashMap.Raw.get?_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).get? k = f (m.get? k)
                        theorem Std.HashMap.Raw.getElem_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : Option βOption β} (h : m.WF) {hc : k' m.alter k f} :
                        (m.alter k f)[k'] = if heq : (k == k') = true then (f m[k]?).get else m[k']
                        @[deprecated Std.HashMap.Raw.getElem_alter (since := "2025-02-09")]
                        theorem Std.HashMap.Raw.get_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : Option βOption β} (h : m.WF) {hc : k' m.alter k f} :
                        (m.alter k f).get k' hc = if heq : (k == k') = true then (f (m.get? k)).get else m.get k'
                        @[simp]
                        theorem Std.HashMap.Raw.getElem_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : Option βOption β} (h : m.WF) {hc : k m.alter k f} :
                        (m.alter k f)[k] = (f m[k]?).get
                        @[deprecated Std.HashMap.Raw.getElem_alter_self (since := "2025-02-09")]
                        theorem Std.HashMap.Raw.get_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : Option βOption β} (h : m.WF) {hc : k m.alter k f} :
                        (m.alter k f).get k hc = (f (m.get? k)).get
                        theorem Std.HashMap.Raw.getElem!_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} [Inhabited β] {f : Option βOption β} (h : m.WF) :
                        (m.alter k f)[k']! = if (k == k') = true then (f m[k]?).get! else m[k']!
                        @[deprecated Std.HashMap.Raw.getElem!_alter (since := "2025-02-09")]
                        theorem Std.HashMap.Raw.get!_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} [Inhabited β] {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).get! k' = if (k == k') = true then (f (m.get? k)).get! else m.get! k'
                        @[simp]
                        theorem Std.HashMap.Raw.getElem!_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} [Inhabited β] {f : Option βOption β} (h : m.WF) :
                        (m.alter k f)[k]! = (f m[k]?).get!
                        @[deprecated Std.HashMap.Raw.getElem!_alter_self (since := "2025-02-09")]
                        theorem Std.HashMap.Raw.get!_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} [Inhabited β] {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).get! k = (f (m.get? k)).get!
                        theorem Std.HashMap.Raw.getD_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {fallback : β} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).getD k' fallback = if (k == k') = true then (f m[k]?).getD fallback else m.getD k' fallback
                        @[simp]
                        theorem Std.HashMap.Raw.getD_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {fallback : β} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).getD k fallback = (f m[k]?).getD fallback
                        theorem Std.HashMap.Raw.getKey?_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).getKey? k' = if (k == k') = true then if (f m[k]?).isSome = true then some k else none else m.getKey? k'
                        theorem Std.HashMap.Raw.getKey?_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : Option βOption β} (h : m.WF) :
                        theorem Std.HashMap.Raw.getKey!_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] [Inhabited α] {k k' : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).getKey! k' = if (k == k') = true then if (f m[k]?).isSome = true then k else default else m.getKey! k'
                        theorem Std.HashMap.Raw.getKey!_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] [Inhabited α] {k : α} {f : Option βOption β} (h : m.WF) :
                        theorem Std.HashMap.Raw.getKey_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] [Inhabited α] {k k' : α} {f : Option βOption β} (h : m.WF) {hc : k' m.alter k f} :
                        (m.alter k f).getKey k' hc = if heq : (k == k') = true then k else m.getKey k'
                        @[simp]
                        theorem Std.HashMap.Raw.getKey_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] [Inhabited α] {k : α} {f : Option βOption β} (h : m.WF) {hc : k m.alter k f} :
                        (m.alter k f).getKey k hc = k
                        theorem Std.HashMap.Raw.getKeyD_alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' fallback : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).getKeyD k' fallback = if (k == k') = true then if (f m[k]?).isSome = true then k else fallback else m.getKeyD k' fallback
                        theorem Std.HashMap.Raw.getKeyD_alter_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] [Inhabited α] {k fallback : α} {f : Option βOption β} (h : m.WF) :
                        (m.alter k f).getKeyD k fallback = if (f m[k]?).isSome = true then k else fallback
                        @[simp]
                        theorem Std.HashMap.Raw.isEmpty_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : ββ} (h : m.WF) :
                        @[simp]
                        theorem Std.HashMap.Raw.contains_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : ββ} (h : m.WF) :
                        (m.modify k f).contains k' = m.contains k'
                        @[simp]
                        theorem Std.HashMap.Raw.mem_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : ββ} (h : m.WF) :
                        k' m.modify k f k' m
                        @[simp]
                        theorem Std.HashMap.Raw.size_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : ββ} (h : m.WF) :
                        (m.modify k f).size = m.size
                        theorem Std.HashMap.Raw.getElem?_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : ββ} (h : m.WF) :
                        (m.modify k f)[k']? = if (k == k') = true then Option.map f m[k]? else m[k']?
                        @[deprecated Std.HashMap.Raw.getElem?_modify (since := "2025-03-07")]
                        theorem Std.HashMap.Raw.get?_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : ββ} (h : m.WF) :
                        (m.modify k f).get? k' = if (k == k') = true then Option.map f (m.get? k) else m.get? k'
                        @[simp]
                        theorem Std.HashMap.Raw.getElem?_modify_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : ββ} (h : m.WF) :
                        (m.modify k f)[k]? = Option.map f m[k]?
                        @[deprecated Std.HashMap.Raw.getElem?_modify_self (since := "2025-03-07")]
                        theorem Std.HashMap.Raw.get?_modify_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : ββ} (h : m.WF) :
                        (m.modify k f).get? k = Option.map f (m.get? k)
                        theorem Std.HashMap.Raw.getElem_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : ββ} (h : m.WF) {hc : k' m.modify k f} :
                        (m.modify k f)[k'] = if heq : (k == k') = true then f m[k] else m[k']
                        @[deprecated Std.HashMap.Raw.getElem_modify (since := "2025-03-07")]
                        theorem Std.HashMap.Raw.get_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : ββ} (h : m.WF) {hc : k' m.modify k f} :
                        (m.modify k f).get k' hc = if heq : (k == k') = true then f (m.get k ) else m.get k'
                        @[simp]
                        theorem Std.HashMap.Raw.getElem_modify_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : ββ} (h : m.WF) {hc : k m.modify k f} :
                        (m.modify k f)[k] = f m[k]
                        @[deprecated Std.HashMap.Raw.getElem_modify_self (since := "2025-03-07")]
                        theorem Std.HashMap.Raw.get_modify_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : ββ} (h : m.WF) {hc : k m.modify k f} :
                        (m.modify k f).get k hc = f (m.get k )
                        theorem Std.HashMap.Raw.getElem!_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} [Inhabited β] {f : ββ} (h : m.WF) :
                        (m.modify k f)[k']! = if (k == k') = true then (Option.map f m[k]?).get! else m[k']!
                        @[deprecated Std.HashMap.Raw.getElem!_modify (since := "2025-03-07")]
                        theorem Std.HashMap.Raw.get!_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} [Inhabited β] {f : ββ} (h : m.WF) :
                        (m.modify k f).get! k' = if (k == k') = true then (Option.map f (m.get? k)).get! else m.get! k'
                        @[simp]
                        theorem Std.HashMap.Raw.getElem!_modify_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} [Inhabited β] {f : ββ} (h : m.WF) :
                        (m.modify k f)[k]! = (Option.map f m[k]?).get!
                        @[deprecated Std.HashMap.Raw.getElem!_modify_self (since := "2025-03-07")]
                        theorem Std.HashMap.Raw.get!_modify_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} [Inhabited β] {f : ββ} (h : m.WF) :
                        (m.modify k f).get! k = (Option.map f (m.get? k)).get!
                        theorem Std.HashMap.Raw.getD_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {fallback : β} {f : ββ} (h : m.WF) :
                        (m.modify k f).getD k' fallback = if (k == k') = true then (Option.map f m[k]?).getD fallback else m.getD k' fallback
                        @[simp]
                        theorem Std.HashMap.Raw.getD_modify_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {fallback : β} {f : ββ} (h : m.WF) :
                        (m.modify k f).getD k fallback = (Option.map f m[k]?).getD fallback
                        theorem Std.HashMap.Raw.getKey?_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' : α} {f : ββ} (h : m.WF) :
                        (m.modify k f).getKey? k' = if (k == k') = true then if k m then some k else none else m.getKey? k'
                        theorem Std.HashMap.Raw.getKey?_modify_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {f : ββ} (h : m.WF) :
                        (m.modify k f).getKey? k = if k m then some k else none
                        theorem Std.HashMap.Raw.getKey!_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] [Inhabited α] {k k' : α} {f : ββ} (h : m.WF) :
                        (m.modify k f).getKey! k' = if (k == k') = true then if k m then k else default else m.getKey! k'
                        theorem Std.HashMap.Raw.getKey!_modify_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] [Inhabited α] {k : α} {f : ββ} (h : m.WF) :
                        (m.modify k f).getKey! k = if k m then k else default
                        theorem Std.HashMap.Raw.getKey_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] [Inhabited α] {k k' : α} {f : ββ} (h : m.WF) {hc : k' m.modify k f} :
                        (m.modify k f).getKey k' hc = if (k == k') = true then k else m.getKey k'
                        @[simp]
                        theorem Std.HashMap.Raw.getKey_modify_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] [Inhabited α] {k : α} {f : ββ} (h : m.WF) {hc : k m.modify k f} :
                        (m.modify k f).getKey k hc = k
                        theorem Std.HashMap.Raw.getKeyD_modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {k k' fallback : α} {f : ββ} (h : m.WF) :
                        (m.modify k f).getKeyD k' fallback = if (k == k') = true then if k m then k else fallback else m.getKeyD k' fallback
                        theorem Std.HashMap.Raw.getKeyD_modify_self {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] [Inhabited α] {k fallback : α} {f : ββ} (h : m.WF) :
                        (m.modify k f).getKeyD k fallback = if k m then k else fallback
                        theorem Std.HashMap.Raw.Equiv.refl {α : Type u} {β : Type v} (m : Raw α β) :
                        m.Equiv m
                        theorem Std.HashMap.Raw.Equiv.rfl {α : Type u} {β : Type v} {m : Raw α β} :
                        m.Equiv m
                        theorem Std.HashMap.Raw.Equiv.symm {α : Type u} {β : Type v} {m₁ m₂ : Raw α β} :
                        m₁.Equiv m₂m₂.Equiv m₁
                        theorem Std.HashMap.Raw.Equiv.trans {α : Type u} {β : Type v} {m₁ m₂ m₃ : Raw α β} :
                        m₁.Equiv m₂m₂.Equiv m₃m₁.Equiv m₃
                        theorem Std.HashMap.Raw.Equiv.comm {α : Type u} {β : Type v} {m₁ m₂ : Raw α β} :
                        m₁.Equiv m₂ m₂.Equiv m₁
                        theorem Std.HashMap.Raw.Equiv.congr_left {α : Type u} {β : Type v} {m₁ m₂ m₃ : Raw α β} (h : m₁.Equiv m₂) :
                        m₁.Equiv m₃ m₂.Equiv m₃
                        theorem Std.HashMap.Raw.Equiv.congr_right {α : Type u} {β : Type v} {m₁ m₂ m₃ : Raw α β} (h : m₁.Equiv m₂) :
                        m₃.Equiv m₁ m₃.Equiv m₂
                        theorem Std.HashMap.Raw.Equiv.toList_perm {α : Type u} {β : Type v} {m₁ m₂ : Raw α β} (h : m₁.Equiv m₂) :
                        m₁.toList.Perm m₂.toList
                        theorem Std.HashMap.Raw.Equiv.of_toList_perm {α : Type u} {β : Type v} {m₁ m₂ : Raw α β} (h : m₁.toList.Perm m₂.toList) :
                        m₁.Equiv m₂
                        theorem Std.HashMap.Raw.Equiv.keys_perm {α : Type u} {β : Type v} {m₁ m₂ : Raw α β} (h : m₁.Equiv m₂) :
                        m₁.keys.Perm m₂.keys
                        theorem Std.HashMap.Raw.Equiv.of_keys_unit_perm {α : Type u} {m₁ m₂ : Raw α Unit} (h : m₁.keys.Perm m₂.keys) :
                        m₁.Equiv m₂
                        theorem Std.HashMap.Raw.Equiv.isEmpty_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] (h₁ : m₁.WF) (h₂ : m₂.WF) (h : m₁.Equiv m₂) :
                        m₁.isEmpty = m₂.isEmpty
                        theorem Std.HashMap.Raw.Equiv.size_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] (h₁ : m₁.WF) (h₂ : m₂.WF) (h : m₁.Equiv m₂) :
                        m₁.size = m₂.size
                        theorem Std.HashMap.Raw.Equiv.contains_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} (h₁ : m₁.WF) (h₂ : m₂.WF) (h : m₁.Equiv m₂) :
                        m₁.contains k = m₂.contains k
                        theorem Std.HashMap.Raw.Equiv.mem_iff {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} (h₁ : m₁.WF) (h₂ : m₂.WF) (h : m₁.Equiv m₂) :
                        k m₁ k m₂
                        theorem Std.HashMap.Raw.Equiv.getElem?_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} (h₁ : m₁.WF) (h₂ : m₂.WF) (h : m₁.Equiv m₂) :
                        m₁[k]? = m₂[k]?
                        theorem Std.HashMap.Raw.Equiv.getElem_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} (h₁ : m₁.WF) (h₂ : m₂.WF) (hk : k m₁) (h : m₁.Equiv m₂) :
                        m₁[k] = m₂[k]
                        theorem Std.HashMap.Raw.Equiv.getElem!_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} [Inhabited β] (h₁ : m₁.WF) (h₂ : m₂.WF) (h : m₁.Equiv m₂) :
                        m₁[k]! = m₂[k]!
                        theorem Std.HashMap.Raw.Equiv.getD_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} {fallback : β} (h₁ : m₁.WF) (h₂ : m₂.WF) (h : m₁.Equiv m₂) :
                        m₁.getD k fallback = m₂.getD k fallback
                        theorem Std.HashMap.Raw.Equiv.getKey?_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} (h₁ : m₁.WF) (h₂ : m₂.WF) (h : m₁.Equiv m₂) :
                        m₁.getKey? k = m₂.getKey? k
                        theorem Std.HashMap.Raw.Equiv.getKey_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] {k : α} (h₁ : m₁.WF) (h₂ : m₂.WF) (hk : k m₁) (h : m₁.Equiv m₂) :
                        m₁.getKey k hk = m₂.getKey k
                        theorem Std.HashMap.Raw.Equiv.getKey!_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] [Inhabited α] {k : α} (h₁ : m₁.WF) (h₂ : m₂.WF) (h : m₁.Equiv m₂) :
                        m₁.getKey! k = m₂.getKey! k
                        theorem Std.HashMap.Raw.Equiv.getKeyD_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] {k fallback : α} (h₁ : m₁.WF) (h₂ : m₂.WF) (h : m₁.Equiv m₂) :
                        m₁.getKeyD k fallback = m₂.getKeyD k fallback
                        theorem Std.HashMap.Raw.Equiv.insert {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] (h₁ : m₁.WF) (h₂ : m₂.WF) (k : α) (v : β) (h : m₁.Equiv m₂) :
                        (m₁.insert k v).Equiv (m₂.insert k v)
                        theorem Std.HashMap.Raw.Equiv.erase {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] (h₁ : m₁.WF) (h₂ : m₂.WF) (k : α) (h : m₁.Equiv m₂) :
                        (m₁.erase k).Equiv (m₂.erase k)
                        theorem Std.HashMap.Raw.Equiv.insertIfNew {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] (h₁ : m₁.WF) (h₂ : m₂.WF) (k : α) (v : β) (h : m₁.Equiv m₂) :
                        (m₁.insertIfNew k v).Equiv (m₂.insertIfNew k v)
                        theorem Std.HashMap.Raw.Equiv.insertMany_list {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] (h₁ : m₁.WF) (h₂ : m₂.WF) (l : List (α × β)) (h : m₁.Equiv m₂) :
                        (m₁.insertMany l).Equiv (m₂.insertMany l)
                        theorem Std.HashMap.Raw.Equiv.insertManyIfNewUnit_list {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {m₁ m₂ : Raw α Unit} (h₁ : m₁.WF) (h₂ : m₂.WF) (l : List α) (h : m₁.Equiv m₂) :
                        theorem Std.HashMap.Raw.Equiv.alter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] (h₁ : m₁.WF) (h₂ : m₂.WF) (k : α) (f : Option βOption β) (h : m₁.Equiv m₂) :
                        (m₁.alter k f).Equiv (m₂.alter k f)
                        theorem Std.HashMap.Raw.Equiv.modify {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] (h₁ : m₁.WF) (h₂ : m₂.WF) (k : α) (f : ββ) (h : m₁.Equiv m₂) :
                        (m₁.modify k f).Equiv (m₂.modify k f)
                        theorem Std.HashMap.Raw.Equiv.filter {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} (h₁ : m₁.WF) (h₂ : m₂.WF) (f : αβBool) (h : m₁.Equiv m₂) :
                        (Raw.filter f m₁).Equiv (Raw.filter f m₂)
                        theorem Std.HashMap.Raw.Equiv.map {α : Type u} {β : Type v} {γ : Type w} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} (h₁ : m₁.WF) (h₂ : m₂.WF) (f : αβγ) (h : m₁.Equiv m₂) :
                        (Raw.map f m₁).Equiv (Raw.map f m₂)
                        theorem Std.HashMap.Raw.Equiv.filterMap {α : Type u} {β : Type v} {γ : Type w} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} (h₁ : m₁.WF) (h₂ : m₂.WF) (f : αβOption γ) (h : m₁.Equiv m₂) :
                        theorem Std.HashMap.Raw.Equiv.of_forall_getKey?_eq_of_forall_getElem?_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] (h₁ : m₁.WF) (h₂ : m₂.WF) (hk : ∀ (k : α), m₁.getKey? k = m₂.getKey? k) (hv : ∀ (k : α), m₁[k]? = m₂[k]?) :
                        m₁.Equiv m₂
                        theorem Std.HashMap.Raw.Equiv.of_forall_getElem?_eq {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [LawfulBEq α] (h₁ : m₁.WF) (h₂ : m₂.WF) (h : ∀ (k : α), m₁[k]? = m₂[k]?) :
                        m₁.Equiv m₂
                        theorem Std.HashMap.Raw.Equiv.of_forall_getKey?_unit_eq {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {m₁ m₂ : Raw α Unit} (h₁ : m₁.WF) (h₂ : m₂.WF) (h : ∀ (k : α), m₁.getKey? k = m₂.getKey? k) :
                        m₁.Equiv m₂
                        theorem Std.HashMap.Raw.Equiv.of_forall_contains_unit_eq {α : Type u} [BEq α] [Hashable α] [LawfulBEq α] {m₁ m₂ : Raw α Unit} (h₁ : m₁.WF) (h₂ : m₂.WF) (h : ∀ (k : α), m₁.contains k = m₂.contains k) :
                        m₁.Equiv m₂
                        theorem Std.HashMap.Raw.Equiv.of_forall_mem_unit_iff {α : Type u} [BEq α] [Hashable α] [LawfulBEq α] {m₁ m₂ : Raw α Unit} (h₁ : m₁.WF) (h₂ : m₂.WF) (h : ∀ (k : α), k m₁ k m₂) :
                        m₁.Equiv m₂
                        theorem Std.HashMap.Raw.equiv_emptyWithCapacity_iff_isEmpty {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] {c : Nat} (h : m.WF) :
                        theorem Std.HashMap.Raw.equiv_empty_iff_isEmpty {α : Type u} {β : Type v} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] (h : m.WF) :
                        @[reducible, inline, deprecated Std.HashMap.Raw.equiv_empty_iff_isEmpty (since := "2025-03-12")]
                        abbrev Std.HashMap.Raw.equiv_emptyc_iff_isEmpty {α : Type u_1} {β : Type u_2} [BEq α] [Hashable α] {m : Raw α β} [EquivBEq α] [LawfulHashable α] (h : m.WF) :
                        Equations
                        Instances For
                          theorem Std.HashMap.Raw.equiv_iff_toList_perm {α : Type u} {β : Type v} [BEq α] [Hashable α] {m₁ m₂ : Raw α β} [EquivBEq α] [LawfulHashable α] :
                          m₁.Equiv m₂ m₁.toList.Perm m₂.toList
                          theorem Std.HashMap.Raw.equiv_iff_keys_unit_perm {α : Type u} [BEq α] [Hashable α] [EquivBEq α] [LawfulHashable α] {m₁ m₂ : Raw α Unit} :
                          m₁.Equiv m₂ m₁.keys.Perm m₂.keys