Documentation

Std.Data.DHashMap.Internal.List.Associative

This is an internal implementation file of the hash map. Users of the hash map should not rely on the contents of this file.

File contents: Verification of associative lists

theorem Std.DHashMap.Internal.List.assoc_induction {α : Type u} {β : αType v} {motive : List ((a : α) × β a)Prop} (nil : motive []) (cons : ∀ (k : α) (v : β k) (tail : List ((a : α) × β a)), motive tailmotive (k, v :: tail)) (t : List ((a : α) × β a)) :
motive t
def Std.DHashMap.Internal.List.getEntry? {α : Type u} {β : αType v} [BEq α] (a : α) :
List ((a : α) × β a)Option ((a : α) × β a)

Internal implementation detail of the hash map

Equations
Instances For
    @[simp]
    theorem Std.DHashMap.Internal.List.getEntry?_nil {α : Type u} {β : αType v} [BEq α] {a : α} :
    theorem Std.DHashMap.Internal.List.getEntry?_cons {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
    getEntry? a (k, v :: l) = bif k == a then some k, v else getEntry? a l
    theorem Std.DHashMap.Internal.List.getEntry?_cons_of_true {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h : (k == a) = true) :
    getEntry? a (k, v :: l) = some k, v
    theorem Std.DHashMap.Internal.List.getEntry?_cons_of_false {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h : (k == a) = false) :
    getEntry? a (k, v :: l) = getEntry? a l
    @[simp]
    theorem Std.DHashMap.Internal.List.getEntry?_cons_self {α : Type u} {β : αType v} [BEq α] [ReflBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
    getEntry? k (k, v :: l) = some k, v
    theorem Std.DHashMap.Internal.List.getEntry?_eq_some {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {a : α} {p : (a : α) × β a} (h : getEntry? a l = some p) :
    (p.fst == a) = true
    theorem Std.DHashMap.Internal.List.getEntry?_congr {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a b : α} (h : (a == b) = true) :
    theorem Std.DHashMap.Internal.List.isEmpty_eq_false_iff_exists_isSome_getEntry? {α : Type u} {β : αType v} [BEq α] [ReflBEq α] {l : List ((a : α) × β a)} :
    theorem Std.DHashMap.Internal.List.isEmpty_iff_forall_isSome_getEntry? {α : Type u} {β : αType v} [BEq α] [ReflBEq α] {l : List ((a : α) × β a)} :
    l.isEmpty = true ∀ (a : α), (getEntry? a l).isSome = false
    def Std.DHashMap.Internal.List.getValue? {α : Type u} {β : Type v} [BEq α] (a : α) :
    List ((_ : α) × β)Option β

    Internal implementation detail of the hash map

    Equations
    Instances For
      @[simp]
      theorem Std.DHashMap.Internal.List.getValue?_nil {α : Type u} {β : Type v} [BEq α] {a : α} :
      theorem Std.DHashMap.Internal.List.getValue?_cons {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} :
      getValue? a (k, v :: l) = bif k == a then some v else getValue? a l
      theorem Std.DHashMap.Internal.List.getValue?_cons_of_true {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} (h : (k == a) = true) :
      getValue? a (k, v :: l) = some v
      theorem Std.DHashMap.Internal.List.getValue?_cons_of_false {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} (h : (k == a) = false) :
      getValue? a (k, v :: l) = getValue? a l
      @[simp]
      theorem Std.DHashMap.Internal.List.getValue?_cons_self {α : Type u} {β : Type v} [BEq α] [ReflBEq α] {l : List ((_ : α) × β)} {k : α} {v : β} :
      getValue? k (k, v :: l) = some v
      theorem Std.DHashMap.Internal.List.getValue?_eq_getEntry? {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {a : α} :
      getValue? a l = Option.map (fun (x : (_ : α) × β) => x.snd) (getEntry? a l)
      theorem Std.DHashMap.Internal.List.getValue?_congr {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {a b : α} (h : (a == b) = true) :
      def Std.DHashMap.Internal.List.getValueCast? {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (a : α) :
      List ((a : α) × β a)Option (β a)

      Internal implementation detail of the hash map

      Equations
      Instances For
        @[simp]
        theorem Std.DHashMap.Internal.List.getValueCast?_nil {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {a : α} :
        theorem Std.DHashMap.Internal.List.getValueCast?_cons {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
        getValueCast? a (k, v :: l) = if h : (k == a) = true then some (cast v) else getValueCast? a l
        theorem Std.DHashMap.Internal.List.getValueCast?_cons_of_true {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h : (k == a) = true) :
        getValueCast? a (k, v :: l) = some (cast v)
        theorem Std.DHashMap.Internal.List.getValueCast?_cons_of_false {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h : (k == a) = false) :
        getValueCast? a (k, v :: l) = getValueCast? a l
        @[simp]
        theorem Std.DHashMap.Internal.List.getValueCast?_cons_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
        getValueCast? k (k, v :: l) = some v
        theorem Std.DHashMap.Internal.List.getValue?_eq_getValueCast? {α : Type u} [BEq α] [LawfulBEq α] {β : Type v} {l : List ((_ : α) × β)} {a : α} :
        theorem Std.DHashMap.Internal.List.getValueCast?_eq_getEntry? {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} :
        getValueCast? a l = Std.DHashMap.Internal.List.Option.dmap✝ (getEntry? a l) fun (p : (a : α) × β a) (h : getEntry? a l = some p) => cast p.snd
        theorem Std.DHashMap.Internal.List.isSome_getValueCast?_eq_isSome_getEntry? {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} :
        def Std.DHashMap.Internal.List.containsKey {α : Type u} {β : αType v} [BEq α] (a : α) :
        List ((a : α) × β a)Bool

        Internal implementation detail of the hash map

        Equations
        Instances For
          @[simp]
          theorem Std.DHashMap.Internal.List.containsKey_nil {α : Type u} {β : αType v} [BEq α] {a : α} :
          @[simp]
          theorem Std.DHashMap.Internal.List.containsKey_cons {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
          containsKey a (k, v :: l) = (k == a || containsKey a l)
          theorem Std.DHashMap.Internal.List.containsKey_cons_eq_false {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
          containsKey a (k, v :: l) = false (k == a) = false containsKey a l = false
          theorem Std.DHashMap.Internal.List.containsKey_cons_eq_true {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
          containsKey a (k, v :: l) = true (k == a) = true containsKey a l = true
          theorem Std.DHashMap.Internal.List.containsKey_cons_of_beq {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h : (k == a) = true) :
          containsKey a (k, v :: l) = true
          @[simp]
          theorem Std.DHashMap.Internal.List.containsKey_cons_self {α : Type u} {β : αType v} [BEq α] [ReflBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
          containsKey k (k, v :: l) = true
          theorem Std.DHashMap.Internal.List.containsKey_cons_of_containsKey {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h : containsKey a l = true) :
          containsKey a (k, v :: l) = true
          theorem Std.DHashMap.Internal.List.containsKey_of_containsKey_cons {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h₁ : containsKey a (k, v :: l) = true) (h₂ : (k == a) = false) :
          theorem Std.DHashMap.Internal.List.containsKey_eq_isSome_getEntry? {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {a : α} :
          theorem Std.DHashMap.Internal.List.containsKey_eq_contains_map_fst {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k : α} :
          theorem Std.DHashMap.Internal.List.isEmpty_eq_false_of_containsKey {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {a : α} (h : containsKey a l = true) :
          theorem Std.DHashMap.Internal.List.isEmpty_eq_false_iff_exists_containsKey {α : Type u} {β : αType v} [BEq α] [ReflBEq α] {l : List ((a : α) × β a)} :
          theorem Std.DHashMap.Internal.List.isEmpty_iff_forall_containsKey {α : Type u} {β : αType v} [BEq α] [ReflBEq α] {l : List ((a : α) × β a)} :
          l.isEmpty = true ∀ (a : α), containsKey a l = false
          @[simp]
          theorem Std.DHashMap.Internal.List.getEntry?_eq_none {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {a : α} :
          @[simp]
          theorem Std.DHashMap.Internal.List.getValue?_eq_none {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {a : α} :
          theorem Std.DHashMap.Internal.List.containsKey_eq_isSome_getValue? {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {a : α} :
          theorem Std.DHashMap.Internal.List.containsKey_eq_isSome_getValueCast? {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} :
          theorem Std.DHashMap.Internal.List.getValueCast?_eq_none {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} (h : containsKey a l = false) :
          theorem Std.DHashMap.Internal.List.containsKey_congr {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a b : α} (h : (a == b) = true) :
          theorem Std.DHashMap.Internal.List.containsKey_of_beq {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a b : α} (hla : containsKey a l = true) (hab : (a == b) = true) :
          def Std.DHashMap.Internal.List.getEntry {α : Type u} {β : αType v} [BEq α] (a : α) (l : List ((a : α) × β a)) (h : containsKey a l = true) :
          (a : α) × β a

          Internal implementation detail of the hash map

          Equations
          Instances For
            theorem Std.DHashMap.Internal.List.getEntry?_eq_some_getEntry {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {a : α} (h : containsKey a l = true) :
            getEntry? a l = some (getEntry a l h)
            theorem Std.DHashMap.Internal.List.getEntry_eq_of_getEntry?_eq_some {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h : getEntry? a l = some k, v) {h' : containsKey a l = true} :
            getEntry a l h' = k, v
            theorem Std.DHashMap.Internal.List.getEntry_cons_of_beq {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h : (k == a) = true) :
            getEntry a (k, v :: l) = k, v
            @[simp]
            theorem Std.DHashMap.Internal.List.getEntry_cons_self {α : Type u} {β : αType v} [BEq α] [ReflBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
            getEntry k (k, v :: l) = k, v
            theorem Std.DHashMap.Internal.List.getEntry_cons_of_false {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} {h₁ : containsKey a (k, v :: l) = true} (h₂ : (k == a) = false) :
            getEntry a (k, v :: l) h₁ = getEntry a l
            def Std.DHashMap.Internal.List.getValue {α : Type u} {β : Type v} [BEq α] (a : α) (l : List ((_ : α) × β)) (h : containsKey a l = true) :
            β

            Internal implementation detail of the hash map

            Equations
            Instances For
              theorem Std.DHashMap.Internal.List.getValue?_eq_some_getValue {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {a : α} (h : containsKey a l = true) :
              getValue? a l = some (getValue a l h)
              theorem Std.DHashMap.Internal.List.getValue_cons_of_beq {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} (h : (k == a) = true) :
              getValue a (k, v :: l) = v
              @[simp]
              theorem Std.DHashMap.Internal.List.getValue_cons_self {α : Type u} {β : Type v} [BEq α] [ReflBEq α] {l : List ((_ : α) × β)} {k : α} {v : β} :
              getValue k (k, v :: l) = v
              theorem Std.DHashMap.Internal.List.getValue_cons_of_false {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} {h₁ : containsKey a (k, v :: l) = true} (h₂ : (k == a) = false) :
              getValue a (k, v :: l) h₁ = getValue a l
              theorem Std.DHashMap.Internal.List.getValue_cons {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} {h : containsKey a (k, v :: l) = true} :
              getValue a (k, v :: l) h = if h' : (k == a) = true then v else getValue a l
              theorem Std.DHashMap.Internal.List.getValue_congr {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {a b : α} (hab : (a == b) = true) {h : containsKey a l = true} :
              getValue a l h = getValue b l
              def Std.DHashMap.Internal.List.getValueCast {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (a : α) (l : List ((a : α) × β a)) (h : containsKey a l = true) :
              β a

              Internal implementation detail of the hash map

              Equations
              Instances For
                theorem Std.DHashMap.Internal.List.getValueCast?_eq_some_getValueCast {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} (h : containsKey a l = true) :
                theorem Std.DHashMap.Internal.List.Option.get_congr {α : Type u} {o o' : Option α} {ho : o.isSome = true} (h : o = o') :
                o.get ho = o'.get
                theorem Std.DHashMap.Internal.List.getValueCast_cons {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h : containsKey a (k, v :: l) = true) :
                getValueCast a (k, v :: l) h = if h' : (k == a) = true then cast v else getValueCast a l
                theorem Std.DHashMap.Internal.List.getValue_eq_getValueCast {α : Type u} {β : Type v} [BEq α] [LawfulBEq α] {l : List ((_ : α) × β)} {a : α} {h : containsKey a l = true} :
                getValue a l h = getValueCast a l h
                def Std.DHashMap.Internal.List.getValueCastD {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (a : α) (l : List ((a : α) × β a)) (fallback : β a) :
                β a

                Internal implementation detail of the hash map

                Equations
                Instances For
                  @[simp]
                  theorem Std.DHashMap.Internal.List.getValueCastD_nil {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {a : α} {fallback : β a} :
                  getValueCastD a [] fallback = fallback
                  theorem Std.DHashMap.Internal.List.getValueCastD_eq_getValueCast? {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} {fallback : β a} :
                  getValueCastD a l fallback = (getValueCast? a l).getD fallback
                  theorem Std.DHashMap.Internal.List.getValueCastD_eq_fallback {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} {fallback : β a} (h : containsKey a l = false) :
                  getValueCastD a l fallback = fallback
                  theorem Std.DHashMap.Internal.List.getValueCast_eq_getValueCastD {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} {fallback : β a} (h : containsKey a l = true) :
                  getValueCast a l h = getValueCastD a l fallback
                  theorem Std.DHashMap.Internal.List.getValueCast?_eq_some_getValueCastD {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} {fallback : β a} (h : containsKey a l = true) :
                  getValueCast? a l = some (getValueCastD a l fallback)
                  def Std.DHashMap.Internal.List.getValueCast! {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (a : α) [Inhabited (β a)] (l : List ((a : α) × β a)) :
                  β a

                  Internal implementation detail of the hash map

                  Equations
                  Instances For
                    @[simp]
                    theorem Std.DHashMap.Internal.List.getValueCast!_nil {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {a : α} [Inhabited (β a)] :
                    theorem Std.DHashMap.Internal.List.getValueCast!_eq_getValueCast? {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} [Inhabited (β a)] :
                    theorem Std.DHashMap.Internal.List.getValueCast!_eq_default {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} [Inhabited (β a)] (h : containsKey a l = false) :
                    theorem Std.DHashMap.Internal.List.getValueCast_eq_getValueCast! {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} [Inhabited (β a)] (h : containsKey a l = true) :
                    theorem Std.DHashMap.Internal.List.getValueCast?_eq_some_getValueCast! {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} [Inhabited (β a)] (h : containsKey a l = true) :
                    theorem Std.DHashMap.Internal.List.getValueCast!_eq_getValueCastD_default {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a : α} [Inhabited (β a)] :
                    def Std.DHashMap.Internal.List.getValueD {α : Type u} {β : Type v} [BEq α] (a : α) (l : List ((_ : α) × β)) (fallback : β) :
                    β

                    Internal implementation detail of the hash map

                    Equations
                    Instances For
                      @[simp]
                      theorem Std.DHashMap.Internal.List.getValueD_nil {α : Type u} {β : Type v} [BEq α] {a : α} {fallback : β} :
                      getValueD a [] fallback = fallback
                      theorem Std.DHashMap.Internal.List.getValueD_eq_getValue? {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {a : α} {fallback : β} :
                      getValueD a l fallback = (getValue? a l).getD fallback
                      theorem Std.DHashMap.Internal.List.getValueD_eq_fallback {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {a : α} {fallback : β} (h : containsKey a l = false) :
                      getValueD a l fallback = fallback
                      theorem Std.DHashMap.Internal.List.getValue_eq_getValueD {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {a : α} {fallback : β} (h : containsKey a l = true) :
                      getValue a l h = getValueD a l fallback
                      theorem Std.DHashMap.Internal.List.getValue?_eq_some_getValueD {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {a : α} {fallback : β} (h : containsKey a l = true) :
                      getValue? a l = some (getValueD a l fallback)
                      theorem Std.DHashMap.Internal.List.getValueD_eq_getValueCastD {α : Type u} {β : Type v} [BEq α] [LawfulBEq α] {l : List ((_ : α) × β)} {a : α} {fallback : β} :
                      getValueD a l fallback = getValueCastD a l fallback
                      theorem Std.DHashMap.Internal.List.getValueD_congr {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {a b : α} {fallback : β} (hab : (a == b) = true) :
                      getValueD a l fallback = getValueD b l fallback
                      def Std.DHashMap.Internal.List.getValue! {α : Type u} {β : Type v} [BEq α] [Inhabited β] (a : α) (l : List ((_ : α) × β)) :
                      β

                      Internal implementation detail of the hash map

                      Equations
                      Instances For
                        @[simp]
                        theorem Std.DHashMap.Internal.List.getValue!_nil {α : Type u} {β : Type v} [BEq α] [Inhabited β] {a : α} :
                        theorem Std.DHashMap.Internal.List.getValue!_eq_getValue? {α : Type u} {β : Type v} [BEq α] [Inhabited β] {l : List ((_ : α) × β)} {a : α} :
                        theorem Std.DHashMap.Internal.List.getValue!_eq_default {α : Type u} {β : Type v} [BEq α] [Inhabited β] {l : List ((_ : α) × β)} {a : α} (h : containsKey a l = false) :
                        theorem Std.DHashMap.Internal.List.getValue_eq_getValue! {α : Type u} {β : Type v} [BEq α] [Inhabited β] {l : List ((_ : α) × β)} {a : α} (h : containsKey a l = true) :
                        getValue a l h = getValue! a l
                        theorem Std.DHashMap.Internal.List.getValue?_eq_some_getValue! {α : Type u} {β : Type v} [BEq α] [Inhabited β] {l : List ((_ : α) × β)} {a : α} (h : containsKey a l = true) :
                        theorem Std.DHashMap.Internal.List.getValue!_eq_getValueCast! {α : Type u} {β : Type v} [BEq α] [LawfulBEq α] [Inhabited β] {l : List ((_ : α) × β)} {a : α} :
                        theorem Std.DHashMap.Internal.List.getValue!_congr {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] [Inhabited β] {l : List ((_ : α) × β)} {a b : α} (hab : (a == b) = true) :
                        theorem Std.DHashMap.Internal.List.getValue!_eq_getValueD_default {α : Type u} {β : Type v} [BEq α] [Inhabited β] {l : List ((_ : α) × β)} {a : α} :
                        def Std.DHashMap.Internal.List.getKey? {α : Type u} {β : αType v} [BEq α] (a : α) :
                        List ((a : α) × β a)Option α

                        Internal implementation detail of the hash map

                        Equations
                        Instances For
                          @[simp]
                          theorem Std.DHashMap.Internal.List.getKey?_nil {α : Type u} {β : αType v} [BEq α] {a : α} :
                          @[simp]
                          theorem Std.DHashMap.Internal.List.getKey?_cons {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
                          getKey? a (k, v :: l) = bif k == a then some k else getKey? a l
                          theorem Std.DHashMap.Internal.List.getKey?_cons_of_true {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h : (k == a) = true) :
                          getKey? a (k, v :: l) = some k
                          theorem Std.DHashMap.Internal.List.getKey?_cons_of_false {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h : (k == a) = false) :
                          getKey? a (k, v :: l) = getKey? a l
                          theorem Std.DHashMap.Internal.List.getKey?_eq_getEntry? {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {a : α} :
                          getKey? a l = Option.map (fun (x : (a : α) × β a) => x.fst) (getEntry? a l)
                          theorem Std.DHashMap.Internal.List.containsKey_eq_isSome_getKey? {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {a : α} :
                          def Std.DHashMap.Internal.List.getKey {α : Type u} {β : αType v} [BEq α] (a : α) (l : List ((a : α) × β a)) (h : containsKey a l = true) :
                          α

                          Internal implementation detail of the hash map

                          Equations
                          Instances For
                            theorem Std.DHashMap.Internal.List.getKey?_eq_some_getKey {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {a : α} (h : containsKey a l = true) :
                            getKey? a l = some (getKey a l h)
                            theorem Std.DHashMap.Internal.List.getKey_cons {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} {h : containsKey a (k, v :: l) = true} :
                            getKey a (k, v :: l) h = if h' : (k == a) = true then k else getKey a l
                            def Std.DHashMap.Internal.List.getKeyD {α : Type u} {β : αType v} [BEq α] (a : α) (l : List ((a : α) × β a)) (fallback : α) :
                            α

                            Internal implementation detail of the hash map

                            Equations
                            Instances For
                              @[simp]
                              theorem Std.DHashMap.Internal.List.getKeyD_nil {α : Type u} {β : αType v} [BEq α] {a fallback : α} :
                              getKeyD a [] fallback = fallback
                              theorem Std.DHashMap.Internal.List.getKeyD_eq_getKey? {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {a fallback : α} :
                              getKeyD a l fallback = (getKey? a l).getD fallback
                              theorem Std.DHashMap.Internal.List.getKeyD_eq_fallback {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l : List ((a : α) × β a)} {a fallback : α} (h : containsKey a l = false) :
                              getKeyD a l fallback = fallback
                              theorem Std.DHashMap.Internal.List.getKey_eq_getKeyD {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l : List ((a : α) × β a)} {a fallback : α} (h : containsKey a l = true) :
                              getKey a l h = getKeyD a l fallback
                              theorem Std.DHashMap.Internal.List.getKey?_eq_some_getKeyD {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l : List ((a : α) × β a)} {a fallback : α} (h : containsKey a l = true) :
                              getKey? a l = some (getKeyD a l fallback)
                              def Std.DHashMap.Internal.List.getKey! {α : Type u} {β : αType v} [BEq α] [Inhabited α] (a : α) (l : List ((a : α) × β a)) :
                              α

                              Internal implementation detail of the hash map

                              Equations
                              Instances For
                                @[simp]
                                theorem Std.DHashMap.Internal.List.getKey!_nil {α : Type u} {β : αType v} [BEq α] [Inhabited α] {a : α} :
                                theorem Std.DHashMap.Internal.List.getKey!_eq_getKey? {α : Type u} {β : αType v} [BEq α] [Inhabited α] {l : List ((a : α) × β a)} {a : α} :
                                getKey! a l = (getKey? a l).get!
                                theorem Std.DHashMap.Internal.List.getKey!_eq_default {α : Type u} {β : αType v} [BEq α] [Inhabited α] {l : List ((a : α) × β a)} {a : α} (h : containsKey a l = false) :
                                theorem Std.DHashMap.Internal.List.getKey_eq_getKey! {α : Type u} {β : αType v} [BEq α] [Inhabited α] {l : List ((a : α) × β a)} {a : α} (h : containsKey a l = true) :
                                getKey a l h = getKey! a l
                                theorem Std.DHashMap.Internal.List.getKey?_eq_some_getKey! {α : Type u} {β : αType v} [BEq α] [Inhabited α] {l : List ((a : α) × β a)} {a : α} (h : containsKey a l = true) :
                                getKey? a l = some (getKey! a l)
                                theorem Std.DHashMap.Internal.List.getKey!_eq_getKeyD_default {α : Type u} {β : αType v} [BEq α] [EquivBEq α] [Inhabited α] {l : List ((a : α) × β a)} {a : α} :
                                def Std.DHashMap.Internal.List.replaceEntry {α : Type u} {β : αType v} [BEq α] (k : α) (v : β k) :
                                List ((a : α) × β a)List ((a : α) × β a)

                                Internal implementation detail of the hash map

                                Equations
                                Instances For
                                  @[simp]
                                  theorem Std.DHashMap.Internal.List.replaceEntry_nil {α : Type u} {β : αType v} [BEq α] {k : α} {v : β k} :
                                  theorem Std.DHashMap.Internal.List.replaceEntry_cons {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k k' : α} {v : β k} {v' : β k'} :
                                  replaceEntry k v (k', v' :: l) = bif k' == k then k, v :: l else k', v' :: replaceEntry k v l
                                  theorem Std.DHashMap.Internal.List.replaceEntry_cons_of_true {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k k' : α} {v : β k} {v' : β k'} (h : (k' == k) = true) :
                                  replaceEntry k v (k', v' :: l) = k, v :: l
                                  theorem Std.DHashMap.Internal.List.replaceEntry_cons_of_false {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k k' : α} {v : β k} {v' : β k'} (h : (k' == k) = false) :
                                  replaceEntry k v (k', v' :: l) = k', v' :: replaceEntry k v l
                                  theorem Std.DHashMap.Internal.List.replaceEntry_of_containsKey_eq_false {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} (h : containsKey k l = false) :
                                  replaceEntry k v l = l
                                  @[simp]
                                  theorem Std.DHashMap.Internal.List.isEmpty_replaceEntry {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                  theorem Std.DHashMap.Internal.List.mem_replaceEntry_of_beq_eq_false {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {a : α} {b : β a} {l : List ((a : α) × β a)} (p : (a : α) × β a) (hne : (p.fst == a) = false) :
                                  p replaceEntry a b l p l
                                  theorem Std.DHashMap.Internal.List.mem_replaceEntry_of_key_ne {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {a : α} {b : β a} {l : List ((a : α) × β a)} (p : (a : α) × β a) (hne : p.fst a) :
                                  p replaceEntry a b l p l
                                  theorem Std.DHashMap.Internal.List.getEntry?_replaceEntry_of_containsKey_eq_false {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {a k : α} {v : β k} (hl : containsKey k l = false) :
                                  theorem Std.DHashMap.Internal.List.getEntry?_replaceEntry_of_false {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a k : α} {v : β k} (h : (k == a) = false) :
                                  theorem Std.DHashMap.Internal.List.getEntry?_replaceEntry_of_true {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a k : α} {v : β k} (hl : containsKey k l = true) (h : (k == a) = true) :
                                  getEntry? a (replaceEntry k v l) = some k, v
                                  theorem Std.DHashMap.Internal.List.getEntry?_replaceEntry {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a k : α} {v : β k} :
                                  getEntry? a (replaceEntry k v l) = if containsKey k l = true (k == a) = true then some k, v else getEntry? a l
                                  @[simp]
                                  theorem Std.DHashMap.Internal.List.length_replaceEntry {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                  theorem Std.DHashMap.Internal.List.getValue?_replaceEntry_of_containsKey_eq_false {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} (hl : containsKey k l = false) :
                                  theorem Std.DHashMap.Internal.List.getValue?_replaceEntry_of_false {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} (h : (k == a) = false) :
                                  theorem Std.DHashMap.Internal.List.getValue?_replaceEntry_of_true {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} (hl : containsKey k l = true) (h : (k == a) = true) :
                                  theorem Std.DHashMap.Internal.List.getValueCast?_replaceEntry {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {a k : α} {v : β k} :
                                  getValueCast? a (replaceEntry k v l) = if h : containsKey k l = true (k == a) = true then some (cast v) else getValueCast? a l
                                  theorem Std.DHashMap.Internal.List.getKey?_replaceEntry {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a k : α} {v : β k} :
                                  @[simp]
                                  theorem Std.DHashMap.Internal.List.containsKey_replaceEntry {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a k : α} {v : β k} :
                                  def Std.DHashMap.Internal.List.eraseKey {α : Type u} {β : αType v} [BEq α] (k : α) :
                                  List ((a : α) × β a)List ((a : α) × β a)

                                  Internal implementation detail of the hash map

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem Std.DHashMap.Internal.List.eraseKey_nil {α : Type u} {β : αType v} [BEq α] {k : α} :
                                    theorem Std.DHashMap.Internal.List.eraseKey_cons {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k k' : α} {v' : β k'} :
                                    eraseKey k (k', v' :: l) = bif k' == k then l else k', v' :: eraseKey k l
                                    theorem Std.DHashMap.Internal.List.eraseKey_cons_of_beq {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k k' : α} {v' : β k'} (h : (k' == k) = true) :
                                    eraseKey k (k', v' :: l) = l
                                    @[simp]
                                    theorem Std.DHashMap.Internal.List.eraseKey_cons_self {α : Type u} {β : αType v} [BEq α] [ReflBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                    eraseKey k (k, v :: l) = l
                                    theorem Std.DHashMap.Internal.List.eraseKey_cons_of_false {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k k' : α} {v' : β k'} (h : (k' == k) = false) :
                                    eraseKey k (k', v' :: l) = k', v' :: eraseKey k l
                                    theorem Std.DHashMap.Internal.List.eraseKey_of_containsKey_eq_false {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} (h : containsKey k l = false) :
                                    eraseKey k l = l
                                    theorem Std.DHashMap.Internal.List.mem_eraseKey_of_key_beq_eq_false {α : Type u} {β : αType v} [BEq α] {a : α} {l : List ((a : α) × β a)} (p : (a : α) × β a) (hne : (p.fst == a) = false) :
                                    p eraseKey a l p l
                                    theorem Std.DHashMap.Internal.List.mem_eraseKey_of_key_ne {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {a : α} {l : List ((a : α) × β a)} (p : (a : α) × β a) (hne : p.fst a) :
                                    p eraseKey a l p l
                                    theorem Std.DHashMap.Internal.List.sublist_eraseKey {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} :
                                    theorem Std.DHashMap.Internal.List.length_eraseKey {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} :
                                    theorem Std.DHashMap.Internal.List.length_eraseKey_le {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} :
                                    theorem Std.DHashMap.Internal.List.length_le_length_eraseKey {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} :
                                    theorem Std.DHashMap.Internal.List.isEmpty_eraseKey {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} :
                                    @[simp]
                                    theorem Std.DHashMap.Internal.List.keys_nil {α : Type u} {β : αType v} :
                                    @[simp]
                                    theorem Std.DHashMap.Internal.List.keys_cons {α : Type u} {β : αType v} {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                    keys (k, v :: l) = k :: keys l
                                    theorem Std.DHashMap.Internal.List.keys_eq_map {α : Type u} {β : αType v} (l : List ((a : α) × β a)) :
                                    keys l = List.map (fun (x : (a : α) × β a) => x.fst) l
                                    theorem Std.DHashMap.Internal.List.length_keys_eq_length {α : Type u} {β : αType v} (l : List ((a : α) × β a)) :
                                    theorem Std.DHashMap.Internal.List.isEmpty_keys_eq_isEmpty {α : Type u} {β : αType v} (l : List ((a : α) × β a)) :
                                    theorem Std.DHashMap.Internal.List.containsKey_eq_keys_contains {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a : α} :
                                    theorem Std.DHashMap.Internal.List.containsKey_eq_true_iff_exists_mem {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {a : α} :
                                    containsKey a l = true (p : (a : α) × β a), p l (p.fst == a) = true
                                    theorem Std.DHashMap.Internal.List.containsKey_of_mem {α : Type u} {β : αType v} [BEq α] [ReflBEq α] {l : List ((a : α) × β a)} {p : (a : α) × β a} (hp : p l) :
                                    @[simp]
                                    theorem Std.DHashMap.Internal.List.DistinctKeys.def {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} :
                                    DistinctKeys l List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l
                                    theorem Std.DHashMap.Internal.List.DistinctKeys.perm_keys {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l l' : List ((a : α) × β a)} (h : (keys l').Perm (keys l)) :
                                    theorem Std.DHashMap.Internal.List.DistinctKeys.perm {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l l' : List ((a : α) × β a)} (h : l'.Perm l) :
                                    theorem Std.DHashMap.Internal.List.DistinctKeys.congr {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l l' : List ((a : α) × β a)} (h : l.Perm l') :
                                    theorem Std.DHashMap.Internal.List.distinctKeys_of_sublist_keys {α : Type u} {β : αType v} {γ : αType w} [BEq α] {l : List ((a : α) × β a)} {l' : List ((a : α) × γ a)} (h : (keys l').Sublist (keys l)) :
                                    theorem Std.DHashMap.Internal.List.distinctKeys_of_sublist {α : Type u} {β : αType v} [BEq α] {l l' : List ((a : α) × β a)} (h : l'.Sublist l) :
                                    theorem Std.DHashMap.Internal.List.DistinctKeys.of_keys_eq {α : Type u} {β : αType v} {γ : αType w} [BEq α] {l : List ((a : α) × β a)} {l' : List ((a : α) × γ a)} (h : keys l = keys l') :
                                    theorem Std.DHashMap.Internal.List.containsKey_iff_exists {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a : α} :
                                    containsKey a l = true (a' : α), a' keys l (a == a') = true
                                    theorem Std.DHashMap.Internal.List.containsKey_eq_false_iff_forall_mem_keys {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a : α} :
                                    containsKey a l = false ∀ (a' : α), a' keys l → (a == a') = false
                                    theorem Std.DHashMap.Internal.List.containsKey_eq_false_iff {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a : α} :
                                    containsKey a l = false ∀ (b : (a : α) × β a), b l → (a == b.fst) = false
                                    @[simp]
                                    theorem Std.DHashMap.Internal.List.distinctKeys_cons_iff {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                    theorem Std.DHashMap.Internal.List.DistinctKeys.tail {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                    DistinctKeys (k, v :: l)DistinctKeys l
                                    theorem Std.DHashMap.Internal.List.DistinctKeys.containsKey_eq_false {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                    DistinctKeys (k, v :: l)containsKey k l = false
                                    theorem Std.DHashMap.Internal.List.DistinctKeys.cons {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} (h : containsKey k l = false) :
                                    DistinctKeys lDistinctKeys (k, v :: l)
                                    theorem Std.DHashMap.Internal.List.mem_iff_getEntry?_eq_some {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l : List ((a : α) × β a)} {p : (a : α) × β a} (h : DistinctKeys l) :
                                    theorem Std.DHashMap.Internal.List.DistinctKeys.replaceEntry {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} (h : DistinctKeys l) :
                                    theorem Std.DHashMap.Internal.List.getEntry?_of_mem {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} (hl : DistinctKeys l) {k k' : α} (hk : (k == k') = true) {v : β k} (hkv : k, v l) :
                                    getEntry? k' l = some k, v
                                    def Std.DHashMap.Internal.List.insertEntry {α : Type u} {β : αType v} [BEq α] (k : α) (v : β k) (l : List ((a : α) × β a)) :
                                    List ((a : α) × β a)

                                    Internal implementation detail of the hash map

                                    Equations
                                    Instances For
                                      @[simp]
                                      theorem Std.DHashMap.Internal.List.insertEntry_nil {α : Type u} {β : αType v} [BEq α] {k : α} {v : β k} :
                                      insertEntry k v [] = [k, v]
                                      theorem Std.DHashMap.Internal.List.insertEntry_cons_of_false {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k k' : α} {v : β k} {v' : β k'} (h : (k' == k) = false) :
                                      (insertEntry k v (k', v' :: l)).Perm (k', v' :: insertEntry k v l)
                                      theorem Std.DHashMap.Internal.List.insertEntry_cons_of_beq {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k k' : α} {v : β k} {v' : β k'} (h : (k' == k) = true) :
                                      insertEntry k v (k', v' :: l) = k, v :: l
                                      @[simp]
                                      theorem Std.DHashMap.Internal.List.insertEntry_cons_self {α : Type u} {β : αType v} [BEq α] [ReflBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                      insertEntry k v (k, v :: l) = k, v :: l
                                      theorem Std.DHashMap.Internal.List.insertEntry_of_containsKey {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} (h : containsKey k l = true) :
                                      theorem Std.DHashMap.Internal.List.insertEntry_of_containsKey_eq_false {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} (h : containsKey k l = false) :
                                      insertEntry k v l = k, v :: l
                                      theorem Std.DHashMap.Internal.List.mem_insertEntry_of_key_beq_eq_false {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {a : α} {b : β a} {l : List ((a : α) × β a)} (p : (a : α) × β a) (hne : (p.fst == a) = false) :
                                      p insertEntry a b l p l
                                      theorem Std.DHashMap.Internal.List.mem_insertEntry_of_key_ne {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {a : α} {b : β a} {l : List ((a : α) × β a)} (p : (a : α) × β a) (hne : p.fst a) :
                                      p insertEntry a b l p l
                                      theorem Std.DHashMap.Internal.List.DistinctKeys.insertEntry {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} (h : DistinctKeys l) :
                                      @[simp]
                                      theorem Std.DHashMap.Internal.List.isEmpty_insertEntry {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                      theorem Std.DHashMap.Internal.List.length_insertEntry {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                      theorem Std.DHashMap.Internal.List.length_le_length_insertEntry {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                      theorem Std.DHashMap.Internal.List.length_insertEntry_le {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                      theorem Std.DHashMap.Internal.List.getValue?_insertEntry_of_beq {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} (h : (k == a) = true) :
                                      theorem Std.DHashMap.Internal.List.getValue?_insertEntry_of_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {k : α} {v : β} :
                                      theorem Std.DHashMap.Internal.List.getValue?_insertEntry_of_false {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} (h : (k == a) = false) :
                                      theorem Std.DHashMap.Internal.List.getValue?_insertEntry {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} :
                                      theorem Std.DHashMap.Internal.List.getValue?_insertEntry_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {k : α} {v : β} :
                                      theorem Std.DHashMap.Internal.List.getEntry?_insertEntry {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
                                      getEntry? a (insertEntry k v l) = if (k == a) = true then some k, v else getEntry? a l
                                      theorem Std.DHashMap.Internal.List.getValueCast?_insertEntry {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
                                      getValueCast? a (insertEntry k v l) = if h : (k == a) = true then some (cast v) else getValueCast? a l
                                      theorem Std.DHashMap.Internal.List.getValueCast?_insertEntry_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                      theorem Std.DHashMap.Internal.List.getValueCast!_insertEntry {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} [Inhabited (β a)] {v : β k} :
                                      getValueCast! a (insertEntry k v l) = if h : (k == a) = true then cast v else getValueCast! a l
                                      theorem Std.DHashMap.Internal.List.getValueCast!_insertEntry_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k : α} [Inhabited (β k)] {v : β k} :
                                      theorem Std.DHashMap.Internal.List.getValueCastD_insertEntry {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {fallback : β a} {v : β k} :
                                      getValueCastD a (insertEntry k v l) fallback = if h : (k == a) = true then cast v else getValueCastD a l fallback
                                      theorem Std.DHashMap.Internal.List.getValueCastD_insertEntry_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k : α} {fallback v : β k} :
                                      getValueCastD k (insertEntry k v l) fallback = v
                                      theorem Std.DHashMap.Internal.List.getValue!_insertEntry {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] [Inhabited β] {l : List ((_ : α) × β)} {k a : α} {v : β} :
                                      theorem Std.DHashMap.Internal.List.getValue!_insertEntry_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] [Inhabited β] {l : List ((_ : α) × β)} {k : α} {v : β} :
                                      getValue! k (insertEntry k v l) = v
                                      theorem Std.DHashMap.Internal.List.getValueD_insertEntry {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} {fallback v : β} :
                                      getValueD a (insertEntry k v l) fallback = if (k == a) = true then v else getValueD a l fallback
                                      theorem Std.DHashMap.Internal.List.getValueD_insertEntry_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {k : α} {fallback v : β} :
                                      getValueD k (insertEntry k v l) fallback = v
                                      theorem Std.DHashMap.Internal.List.getKey?_insertEntry {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
                                      getKey? a (insertEntry k v l) = if (k == a) = true then some k else getKey? a l
                                      theorem Std.DHashMap.Internal.List.getKey?_insertEntry_self {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                      theorem Std.DHashMap.Internal.List.getKey?_eq_none {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {a : α} (h : containsKey a l = false) :
                                      theorem Std.DHashMap.Internal.List.getKey!_insertEntry {α : Type u} {β : αType v} [BEq α] [EquivBEq α] [Inhabited α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
                                      getKey! a (insertEntry k v l) = if (k == a) = true then k else getKey! a l
                                      theorem Std.DHashMap.Internal.List.getKey!_insertEntry_self {α : Type u} {β : αType v} [BEq α] [EquivBEq α] [Inhabited α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                      getKey! k (insertEntry k v l) = k
                                      theorem Std.DHashMap.Internal.List.getKeyD_insertEntry {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l : List ((a : α) × β a)} {k a fallback : α} {v : β k} :
                                      getKeyD a (insertEntry k v l) fallback = if (k == a) = true then k else getKeyD a l fallback
                                      theorem Std.DHashMap.Internal.List.getKeyD_insertEntry_self {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l : List ((a : α) × β a)} {k fallback : α} {v : β k} :
                                      getKeyD k (insertEntry k v l) fallback = k
                                      theorem Std.DHashMap.Internal.List.containsKey_insertEntry {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
                                      theorem Std.DHashMap.Internal.List.containsKey_insertEntry_of_beq {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h : (k == a) = true) :
                                      theorem Std.DHashMap.Internal.List.containsKey_insertEntry_self {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                      theorem Std.DHashMap.Internal.List.containsKey_of_containsKey_insertEntry {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h₁ : containsKey a (insertEntry k v l) = true) (h₂ : (k == a) = false) :
                                      theorem Std.DHashMap.Internal.List.getValueCast_insertEntry {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} {h : containsKey a (insertEntry k v l) = true} :
                                      getValueCast a (insertEntry k v l) h = if h' : (k == a) = true then cast v else getValueCast a l
                                      theorem Std.DHashMap.Internal.List.getValueCast_insertEntry_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                      getValueCast k (insertEntry k v l) = v
                                      theorem Std.DHashMap.Internal.List.getValue_insertEntry {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} {h : containsKey a (insertEntry k v l) = true} :
                                      getValue a (insertEntry k v l) h = if h' : (k == a) = true then v else getValue a l
                                      theorem Std.DHashMap.Internal.List.getValue_insertEntry_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {k : α} {v : β} :
                                      getValue k (insertEntry k v l) = v
                                      theorem Std.DHashMap.Internal.List.getKey_insertEntry {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} {h : containsKey a (insertEntry k v l) = true} :
                                      getKey a (insertEntry k v l) h = if h' : (k == a) = true then k else getKey a l
                                      theorem Std.DHashMap.Internal.List.getKey_insertEntry_self {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                      getKey k (insertEntry k v l) = k
                                      def Std.DHashMap.Internal.List.insertEntryIfNew {α : Type u} {β : αType v} [BEq α] (k : α) (v : β k) (l : List ((a : α) × β a)) :
                                      List ((a : α) × β a)

                                      Internal implementation detail of the hash map

                                      Equations
                                      Instances For
                                        theorem Std.DHashMap.Internal.List.insertEntryIfNew_of_containsKey {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} (h : containsKey k l = true) :
                                        theorem Std.DHashMap.Internal.List.insertEntryIfNew_of_containsKey_eq_false {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} (h : containsKey k l = false) :
                                        insertEntryIfNew k v l = k, v :: l
                                        theorem Std.DHashMap.Internal.List.DistinctKeys.insertEntryIfNew {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {k : α} {v : β k} {l : List ((a : α) × β a)} (h : DistinctKeys l) :
                                        @[simp]
                                        theorem Std.DHashMap.Internal.List.isEmpty_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                        theorem Std.DHashMap.Internal.List.getEntry?_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
                                        getEntry? a (insertEntryIfNew k v l) = if (k == a && !containsKey k l) = true then some k, v else getEntry? a l
                                        theorem Std.DHashMap.Internal.List.getValueCast?_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
                                        getValueCast? a (insertEntryIfNew k v l) = if h : (k == a) = true containsKey k l = false then some (cast v) else getValueCast? a l
                                        theorem Std.DHashMap.Internal.List.getValue?_insertEntryIfNew {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} :
                                        theorem Std.DHashMap.Internal.List.containsKey_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
                                        theorem Std.DHashMap.Internal.List.containsKey_insertEntryIfNew_self {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                        theorem Std.DHashMap.Internal.List.containsKey_of_containsKey_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h₁ : containsKey a (insertEntryIfNew k v l) = true) (h₂ : (k == a) = false) :
                                        theorem Std.DHashMap.Internal.List.containsKey_of_containsKey_insertEntryIfNew' {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} (h₁ : containsKey a (insertEntryIfNew k v l) = true) (h₂ : ¬((k == a) = true containsKey k l = false)) :

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

                                        theorem Std.DHashMap.Internal.List.getValueCast_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} {h : containsKey a (insertEntryIfNew k v l) = true} :
                                        getValueCast a (insertEntryIfNew k v l) h = if h' : (k == a) = true containsKey k l = false then cast v else getValueCast a l
                                        theorem Std.DHashMap.Internal.List.getValue_insertEntryIfNew {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} {v : β} {h : containsKey a (insertEntryIfNew k v l) = true} :
                                        getValue a (insertEntryIfNew k v l) h = if h' : (k == a) = true containsKey k l = false then v else getValue a l
                                        theorem Std.DHashMap.Internal.List.getValueCast!_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} [Inhabited (β a)] :
                                        getValueCast! a (insertEntryIfNew k v l) = if h : (k == a) = true containsKey k l = false then cast v else getValueCast! a l
                                        theorem Std.DHashMap.Internal.List.getValue!_insertEntryIfNew {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] [Inhabited β] {l : List ((_ : α) × β)} {k a : α} {v : β} :
                                        theorem Std.DHashMap.Internal.List.getValueCastD_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} {fallback : β a} :
                                        getValueCastD a (insertEntryIfNew k v l) fallback = if h : (k == a) = true containsKey k l = false then cast v else getValueCastD a l fallback
                                        theorem Std.DHashMap.Internal.List.getValueD_insertEntryIfNew {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} {fallback v : β} :
                                        getValueD a (insertEntryIfNew k v l) fallback = if (k == a) = true containsKey k l = false then v else getValueD a l fallback
                                        theorem Std.DHashMap.Internal.List.getKey?_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
                                        theorem Std.DHashMap.Internal.List.getKey_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} {v : β k} {h : containsKey a (insertEntryIfNew k v l) = true} :
                                        getKey a (insertEntryIfNew k v l) h = if h' : (k == a) = true containsKey k l = false then k else getKey a l
                                        theorem Std.DHashMap.Internal.List.getKey!_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] [Inhabited α] {l : List ((a : α) × β a)} {k a : α} {v : β k} :
                                        theorem Std.DHashMap.Internal.List.getKeyD_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a fallback : α} {v : β k} :
                                        getKeyD a (insertEntryIfNew k v l) fallback = if (k == a) = true containsKey k l = false then k else getKeyD a l fallback
                                        theorem Std.DHashMap.Internal.List.length_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                        theorem Std.DHashMap.Internal.List.length_le_length_insertEntryIfNew {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                        theorem Std.DHashMap.Internal.List.length_insertEntryIfNew_le {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {k : α} {v : β k} :
                                        @[simp]
                                        theorem Std.DHashMap.Internal.List.keys_eraseKey {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k : α} :
                                        keys (eraseKey k l) = (keys l).erase k
                                        theorem Std.DHashMap.Internal.List.DistinctKeys.eraseKey {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k : α} :
                                        theorem Std.DHashMap.Internal.List.getEntry?_eraseKey_self {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k : α} (h : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getEntry?_eraseKey_of_beq {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} (hl : DistinctKeys l) (hka : (k == a) = true) :
                                        theorem Std.DHashMap.Internal.List.getEntry?_eraseKey_of_false {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} (hka : (k == a) = false) :
                                        theorem Std.DHashMap.Internal.List.getEntry?_eraseKey {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.keys_filterMap {α : Type u} {β : αType v} {γ : αType w} [BEq α] {l : List ((a : α) × β a)} {f : (a : α) → β aOption (γ a)} :
                                        keys (List.filterMap (fun (p : (a : α) × β a) => Option.map (fun (x : γ p.fst) => p.fst, x) (f p.fst p.snd)) l) = keys (List.filter (fun (p : (a : α) × β a) => (f p.fst p.snd).isSome) l)
                                        @[simp]
                                        theorem Std.DHashMap.Internal.List.keys_map {α : Type u} {β : αType v} {γ : αType w} [BEq α] {l : List ((a : α) × β a)} {f : (a : α) → β aγ a} :
                                        keys (List.map (fun (p : (a : α) × β a) => p.fst, f p.fst p.snd) l) = keys l
                                        theorem Std.DHashMap.Internal.List.DistinctKeys.filterMap {α : Type u} {β : αType v} {γ : αType w} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {f : (a : α) → β aOption (γ a)} :
                                        DistinctKeys lDistinctKeys (List.filterMap (fun (p : (a : α) × β a) => Option.map (fun (x : γ p.fst) => p.fst, x) (f p.fst p.snd)) l)
                                        theorem Std.DHashMap.Internal.List.DistinctKeys.map {α : Type u} {β : αType v} {γ : αType w} [BEq α] {l : List ((a : α) × β a)} {f : (a : α) → β aγ a} (h : DistinctKeys l) :
                                        DistinctKeys (List.map (fun (p : (a : α) × β a) => p.fst, f p.fst p.snd) l)
                                        theorem Std.DHashMap.Internal.List.DistinctKeys.filter {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {f : (a : α) → β aBool} (h : DistinctKeys l) :
                                        DistinctKeys (List.filter (fun (p : (a : α) × β a) => f p.fst p.snd) l)
                                        theorem Std.DHashMap.Internal.List.getValue?_eraseKey_self {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k : α} (h : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getValue?_eraseKey_of_beq {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} (hl : DistinctKeys l) (hka : (k == a) = true) :
                                        theorem Std.DHashMap.Internal.List.getValue?_eraseKey_of_false {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} (hka : (k == a) = false) :
                                        theorem Std.DHashMap.Internal.List.getValue?_eraseKey {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getKey?_eraseKey {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getKey?_eraseKey_self {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k : α} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getKey!_eraseKey {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] [Inhabited α] {l : List ((a : α) × β a)} {k a : α} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getKey!_eraseKey_self {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] [Inhabited α] {l : List ((a : α) × β a)} {k : α} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getKeyD_eraseKey {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a fallback : α} (hl : DistinctKeys l) :
                                        getKeyD a (eraseKey k l) fallback = if (k == a) = true then fallback else getKeyD a l fallback
                                        theorem Std.DHashMap.Internal.List.getKeyD_eraseKey_self {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k fallback : α} (hl : DistinctKeys l) :
                                        getKeyD k (eraseKey k l) fallback = fallback
                                        theorem Std.DHashMap.Internal.List.containsKey_eraseKey_self {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k : α} (h : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.containsKey_eraseKey_of_beq {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} (hl : DistinctKeys l) (hka : (a == k) = true) :
                                        theorem Std.DHashMap.Internal.List.containsKey_eraseKey_of_false {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} (hka : (k == a) = false) :
                                        theorem Std.DHashMap.Internal.List.containsKey_eraseKey {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getValueCast?_eraseKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getValueCast?_eraseKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k : α} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getValueCast!_eraseKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} [Inhabited (β a)] (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getValueCast!_eraseKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k : α} [Inhabited (β k)] (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getValueCastD_eraseKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {fallback : β a} (hl : DistinctKeys l) :
                                        getValueCastD a (eraseKey k l) fallback = if (k == a) = true then fallback else getValueCastD a l fallback
                                        theorem Std.DHashMap.Internal.List.getValueCastD_eraseKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k : α} {fallback : β k} (hl : DistinctKeys l) :
                                        getValueCastD k (eraseKey k l) fallback = fallback
                                        theorem Std.DHashMap.Internal.List.getValue!_eraseKey {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] [Inhabited β] {l : List ((_ : α) × β)} {k a : α} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getValue!_eraseKey_self {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] [Inhabited β] {l : List ((_ : α) × β)} {k : α} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getValueD_eraseKey {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} {fallback : β} (hl : DistinctKeys l) :
                                        getValueD a (eraseKey k l) fallback = if (k == a) = true then fallback else getValueD a l fallback
                                        theorem Std.DHashMap.Internal.List.getValueD_eraseKey_self {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k : α} {fallback : β} (hl : DistinctKeys l) :
                                        getValueD k (eraseKey k l) fallback = fallback
                                        theorem Std.DHashMap.Internal.List.containsKey_of_containsKey_eraseKey {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l : List ((a : α) × β a)} {k a : α} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getValueCast_eraseKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l : List ((a : α) × β a)} {k a : α} {h : containsKey a (eraseKey k l) = true} (hl : DistinctKeys l) :
                                        theorem Std.DHashMap.Internal.List.getValue_eraseKey {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {k a : α} {h : containsKey a (eraseKey k l) = true} (hl : DistinctKeys l) :
                                        getValue a (eraseKey k l) h = getValue a l
                                        theorem Std.DHashMap.Internal.List.getKey_eraseKey {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l : List ((a : α) × β a)} {k a : α} {h : containsKey a (eraseKey k l) = true} (hl : DistinctKeys l) :
                                        getKey a (eraseKey k l) h = getKey a l
                                        theorem Std.DHashMap.Internal.List.getEntry?_of_perm {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l l' : List ((a : α) × β a)} {a : α} (hl : DistinctKeys l) (h : l.Perm l') :
                                        theorem Std.DHashMap.Internal.List.containsKey_of_perm {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l l' : List ((a : α) × β a)} {k : α} (h : l.Perm l') :
                                        theorem Std.DHashMap.Internal.List.getValueCast?_of_perm {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l l' : List ((a : α) × β a)} {a : α} (hl : DistinctKeys l) (h : l.Perm l') :
                                        theorem Std.DHashMap.Internal.List.getValueCast_of_perm {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l l' : List ((a : α) × β a)} {a : α} {h' : containsKey a l = true} (hl : DistinctKeys l) (h : l.Perm l') :
                                        getValueCast a l h' = getValueCast a l'
                                        theorem Std.DHashMap.Internal.List.getValueCast!_of_perm {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l l' : List ((a : α) × β a)} {a : α} [Inhabited (β a)] (hl : DistinctKeys l) (h : l.Perm l') :
                                        theorem Std.DHashMap.Internal.List.getValueCastD_of_perm {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l l' : List ((a : α) × β a)} {a : α} {fallback : β a} (hl : DistinctKeys l) (h : l.Perm l') :
                                        getValueCastD a l fallback = getValueCastD a l' fallback
                                        theorem Std.DHashMap.Internal.List.getValue?_of_perm {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l l' : List ((_ : α) × β)} {a : α} (hl : DistinctKeys l) (h : l.Perm l') :
                                        theorem Std.DHashMap.Internal.List.getValue_of_perm {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l l' : List ((_ : α) × β)} {a : α} {h' : containsKey a l = true} (hl : DistinctKeys l) (h : l.Perm l') :
                                        getValue a l h' = getValue a l'
                                        theorem Std.DHashMap.Internal.List.getValue!_of_perm {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] [Inhabited β] {l l' : List ((_ : α) × β)} {a : α} (hl : DistinctKeys l) (h : l.Perm l') :
                                        theorem Std.DHashMap.Internal.List.getValueD_of_perm {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l l' : List ((_ : α) × β)} {a : α} {fallback : β} (hl : DistinctKeys l) (h : l.Perm l') :
                                        getValueD a l fallback = getValueD a l' fallback
                                        theorem Std.DHashMap.Internal.List.getKey?_of_perm {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l l' : List ((a : α) × β a)} {a : α} (hl : DistinctKeys l) (h : l.Perm l') :
                                        getKey? a l = getKey? a l'
                                        theorem Std.DHashMap.Internal.List.getKey_of_perm {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l l' : List ((a : α) × β a)} {a : α} {h' : containsKey a l = true} (hl : DistinctKeys l) (h : l.Perm l') :
                                        getKey a l h' = getKey a l'
                                        theorem Std.DHashMap.Internal.List.getKey!_of_perm {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] [Inhabited α] {l l' : List ((a : α) × β a)} {a : α} (hl : DistinctKeys l) (h : l.Perm l') :
                                        getKey! a l = getKey! a l'
                                        theorem Std.DHashMap.Internal.List.getKeyD_of_perm {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l l' : List ((a : α) × β a)} {a fallback : α} (hl : DistinctKeys l) (h : l.Perm l') :
                                        getKeyD a l fallback = getKeyD a l' fallback
                                        theorem Std.DHashMap.Internal.List.perm_cons_getEntry {α : Type u} {β : αType v} [BEq α] {l : List ((a : α) × β a)} {a : α} (h : containsKey a l = true) :
                                        (l' : List ((a : α) × β a)), l.Perm (getEntry a l h :: l')
                                        theorem Std.DHashMap.Internal.List.getEntry?_ext {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l l' : List ((a : α) × β a)} (hl : DistinctKeys l) (hl' : DistinctKeys l') (h : ∀ (a : α), getEntry? a l = getEntry? a l') :
                                        l.Perm l'
                                        theorem Std.DHashMap.Internal.List.replaceEntry_of_perm {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l l' : List ((a : α) × β a)} {k : α} {v : β k} (hl : DistinctKeys l) (h : l.Perm l') :
                                        (replaceEntry k v l).Perm (replaceEntry k v l')
                                        theorem Std.DHashMap.Internal.List.insertEntry_of_perm {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l l' : List ((a : α) × β a)} {k : α} {v : β k} (hl : DistinctKeys l) (h : l.Perm l') :
                                        (insertEntry k v l).Perm (insertEntry k v l')
                                        theorem Std.DHashMap.Internal.List.eraseKey_of_perm {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l l' : List ((a : α) × β a)} {k : α} (hl : DistinctKeys l) (h : l.Perm l') :
                                        (eraseKey k l).Perm (eraseKey k l')
                                        @[simp]
                                        theorem Std.DHashMap.Internal.List.getEntry?_append {α : Type u} {β : αType v} [BEq α] {l l' : List ((a : α) × β a)} {a : α} :
                                        getEntry? a (l ++ l') = (getEntry? a l).or (getEntry? a l')
                                        theorem Std.DHashMap.Internal.List.getEntry?_append_of_containsKey_eq_false {α : Type u} {β : αType v} [BEq α] {l l' : List ((a : α) × β a)} {a : α} (h : containsKey a l' = false) :
                                        getEntry? a (l ++ l') = getEntry? a l
                                        @[simp]
                                        theorem Std.DHashMap.Internal.List.containsKey_append {α : Type u} {β : αType v} [BEq α] {l l' : List ((a : α) × β a)} {a : α} :
                                        theorem Std.DHashMap.Internal.List.containsKey_flatMap_eq_false {α : Type u} {β : αType v} [BEq α] {γ : Type w} {l : List γ} {f : γList ((a : α) × β a)} {a : α} (h : ∀ (i : Nat) (h : i < l.length), containsKey a (f l[i]) = false) :
                                        theorem Std.DHashMap.Internal.List.containsKey_append_of_not_contains_right {α : Type u} {β : αType v} [BEq α] {l l' : List ((a : α) × β a)} {a : α} (hl' : containsKey a l' = false) :
                                        @[simp]
                                        theorem Std.DHashMap.Internal.List.getValue?_append {α : Type u} {β : Type v} [BEq α] {l l' : List ((_ : α) × β)} {a : α} :
                                        getValue? a (l ++ l') = (getValue? a l).or (getValue? a l')
                                        theorem Std.DHashMap.Internal.List.getValue?_append_of_containsKey_eq_false {α : Type u} {β : Type v} [BEq α] {l l' : List ((_ : α) × β)} {a : α} (h : containsKey a l' = false) :
                                        getValue? a (l ++ l') = getValue? a l
                                        theorem Std.DHashMap.Internal.List.getValue_append_of_containsKey_eq_false {α : Type u} {β : Type v} [BEq α] {l l' : List ((_ : α) × β)} {a : α} {h' : containsKey a (l ++ l') = true} (h : containsKey a l' = false) :
                                        getValue a (l ++ l') h' = getValue a l
                                        theorem Std.DHashMap.Internal.List.getValueCast?_append_of_containsKey_eq_false {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l l' : List ((a : α) × β a)} {a : α} (hl' : containsKey a l' = false) :
                                        theorem Std.DHashMap.Internal.List.getValueCast_append_of_containsKey_eq_false {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l l' : List ((a : α) × β a)} {a : α} {h : containsKey a (l ++ l') = true} (hl' : containsKey a l' = false) :
                                        getValueCast a (l ++ l') h = getValueCast a l
                                        theorem Std.DHashMap.Internal.List.getKey?_append_of_containsKey_eq_false {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l l' : List ((a : α) × β a)} {a : α} (hl' : containsKey a l' = false) :
                                        getKey? a (l ++ l') = getKey? a l
                                        theorem Std.DHashMap.Internal.List.getKey_append_of_containsKey_eq_false {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l l' : List ((a : α) × β a)} {a : α} {h : containsKey a (l ++ l') = true} (hl' : containsKey a l' = false) :
                                        getKey a (l ++ l') h = getKey a l
                                        theorem Std.DHashMap.Internal.List.replaceEntry_append_of_containsKey_left {α : Type u} {β : αType v} [BEq α] {l l' : List ((a : α) × β a)} {k : α} {v : β k} (h : containsKey k l = true) :
                                        replaceEntry k v (l ++ l') = replaceEntry k v l ++ l'
                                        theorem Std.DHashMap.Internal.List.replaceEntry_append_of_containsKey_left_eq_false {α : Type u} {β : αType v} [BEq α] {l l' : List ((a : α) × β a)} {k : α} {v : β k} (h : containsKey k l = false) :
                                        replaceEntry k v (l ++ l') = l ++ replaceEntry k v l'
                                        theorem Std.DHashMap.Internal.List.replaceEntry_append_of_containsKey_right_eq_false {α : Type u} {β : αType v} [BEq α] {l l' : List ((a : α) × β a)} {k : α} {v : β k} (h : containsKey k l' = false) :
                                        replaceEntry k v (l ++ l') = replaceEntry k v l ++ l'
                                        theorem Std.DHashMap.Internal.List.insertEntry_append_of_not_contains_right {α : Type u} {β : αType v} [BEq α] {l l' : List ((a : α) × β a)} {k : α} {v : β k} (h' : containsKey k l' = false) :
                                        insertEntry k v (l ++ l') = insertEntry k v l ++ l'
                                        theorem Std.DHashMap.Internal.List.eraseKey_append_of_containsKey_right_eq_false {α : Type u} {β : αType v} [BEq α] {l l' : List ((a : α) × β a)} {k : α} (h : containsKey k l' = false) :
                                        eraseKey k (l ++ l') = eraseKey k l ++ l'
                                        def Std.DHashMap.Internal.List.insertList {α : Type u} {β : αType v} [BEq α] (l toInsert : List ((a : α) × β a)) :
                                        List ((a : α) × β a)

                                        Internal implementation detail of the hash map

                                        Equations
                                        Instances For
                                          theorem Std.DHashMap.Internal.List.DistinctKeys.insertList {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l₁ l₂ : List ((a : α) × β a)} (h : DistinctKeys l₁) :
                                          theorem Std.DHashMap.Internal.List.insertList_perm_of_perm_first {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l1 l2 toInsert : List ((a : α) × β a)} (h : l1.Perm l2) (distinct : DistinctKeys l1) :
                                          (insertList l1 toInsert).Perm (insertList l2 toInsert)
                                          theorem Std.DHashMap.Internal.List.insertList_cons_perm {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l₁ l₂ : List ((a : α) × β a)} {p : (a : α) × β a} (hl₁ : DistinctKeys l₁) (hl₂ : DistinctKeys (p :: l₂)) :
                                          (insertList l₁ (p :: l₂)).Perm (insertEntry p.fst p.snd (insertList l₁ l₂))
                                          theorem Std.DHashMap.Internal.List.getEntry?_insertList {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l toInsert : List ((a : α) × β a)} (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) toInsert) (k : α) :
                                          getEntry? k (insertList l toInsert) = (getEntry? k toInsert).or (getEntry? k l)
                                          theorem Std.DHashMap.Internal.List.getEntry?_insertList_of_contains_eq_false {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l toInsert : List ((a : α) × β a)} {k : α} (not_contains : containsKey k toInsert = false) :
                                          getEntry? k (insertList l toInsert) = getEntry? k l
                                          theorem Std.DHashMap.Internal.List.getEntry?_insertList_of_contains_eq_true {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l toInsert : List ((a : α) × β a)} {k : α} (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) toInsert) (contains : containsKey k toInsert = true) :
                                          getEntry? k (insertList l toInsert) = getEntry? k toInsert
                                          theorem Std.DHashMap.Internal.List.containsKey_insertList {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l toInsert : List ((a : α) × β a)} {k : α} :
                                          containsKey k (insertList l toInsert) = (containsKey k l || (List.map Sigma.fst toInsert).contains k)
                                          theorem Std.DHashMap.Internal.List.containsKey_of_containsKey_insertList {α : Type u} {β : αType v} [BEq α] [PartialEquivBEq α] {l toInsert : List ((a : α) × β a)} {k : α} (h₁ : containsKey k (insertList l toInsert) = true) (h₂ : (List.map Sigma.fst toInsert).contains k = false) :
                                          theorem Std.DHashMap.Internal.List.getValueCast?_insertList_of_contains_eq_false {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l toInsert : List ((a : α) × β a)} {k : α} (not_contains : (List.map Sigma.fst toInsert).contains k = false) :
                                          theorem Std.DHashMap.Internal.List.getValueCast?_insertList_of_mem {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l toInsert : List ((a : α) × β a)} {k k' : α} (k_beq : (k == k') = true) {v : β k} (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) toInsert) (mem : k, v toInsert) :
                                          getValueCast? k' (insertList l toInsert) = some (cast v)
                                          theorem Std.DHashMap.Internal.List.getValueCast_insertList_of_contains_eq_false {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l toInsert : List ((a : α) × β a)} {k : α} (not_contains : (List.map Sigma.fst toInsert).contains k = false) {h : containsKey k (insertList l toInsert) = true} :
                                          getValueCast k (insertList l toInsert) h = getValueCast k l
                                          theorem Std.DHashMap.Internal.List.getValueCast_insertList_of_mem {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l toInsert : List ((a : α) × β a)} {k k' : α} (k_beq : (k == k') = true) (v : β k) (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) toInsert) (mem : k, v toInsert) {h : containsKey k' (insertList l toInsert) = true} :
                                          getValueCast k' (insertList l toInsert) h = cast v
                                          theorem Std.DHashMap.Internal.List.getValueCast!_insertList_of_contains_eq_false {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l toInsert : List ((a : α) × β a)} {k : α} [Inhabited (β k)] (not_contains : (List.map Sigma.fst toInsert).contains k = false) :
                                          theorem Std.DHashMap.Internal.List.getValueCast!_insertList_of_mem {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l toInsert : List ((a : α) × β a)} {k k' : α} (k_beq : (k == k') = true) (v : β k) [Inhabited (β k')] (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) toInsert) (mem : k, v toInsert) :
                                          getValueCast! k' (insertList l toInsert) = cast v
                                          theorem Std.DHashMap.Internal.List.getValueCastD_insertList_of_contains_eq_false {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l toInsert : List ((a : α) × β a)} {k : α} {fallback : β k} (not_mem : (List.map Sigma.fst toInsert).contains k = false) :
                                          getValueCastD k (insertList l toInsert) fallback = getValueCastD k l fallback
                                          theorem Std.DHashMap.Internal.List.getValueCastD_insertList_of_mem {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {l toInsert : List ((a : α) × β a)} {k k' : α} (k_beq : (k == k') = true) {v : β k} {fallback : β k'} (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) toInsert) (mem : k, v toInsert) :
                                          getValueCastD k' (insertList l toInsert) fallback = cast v
                                          theorem Std.DHashMap.Internal.List.getKey?_insertList_of_contains_eq_false {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l toInsert : List ((a : α) × β a)} {k : α} (not_contains : (List.map Sigma.fst toInsert).contains k = false) :
                                          getKey? k (insertList l toInsert) = getKey? k l
                                          theorem Std.DHashMap.Internal.List.getKey?_insertList_of_mem {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l toInsert : List ((a : α) × β a)} {k k' : α} (k_beq : (k == k') = true) (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) toInsert) (mem : k List.map Sigma.fst toInsert) :
                                          getKey? k' (insertList l toInsert) = some k
                                          theorem Std.DHashMap.Internal.List.getKey_insertList_of_contains_eq_false {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l toInsert : List ((a : α) × β a)} {k : α} (not_contains : (List.map Sigma.fst toInsert).contains k = false) {h : containsKey k (insertList l toInsert) = true} :
                                          getKey k (insertList l toInsert) h = getKey k l
                                          theorem Std.DHashMap.Internal.List.getKey_insertList_of_mem {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l toInsert : List ((a : α) × β a)} {k k' : α} (k_beq : (k == k') = true) (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) toInsert) (mem : k List.map Sigma.fst toInsert) {h : containsKey k' (insertList l toInsert) = true} :
                                          getKey k' (insertList l toInsert) h = k
                                          theorem Std.DHashMap.Internal.List.getKey!_insertList_of_contains_eq_false {α : Type u} {β : αType v} [BEq α] [EquivBEq α] [Inhabited α] {l toInsert : List ((a : α) × β a)} {k : α} (contains_false : (List.map Sigma.fst toInsert).contains k = false) :
                                          getKey! k (insertList l toInsert) = getKey! k l
                                          theorem Std.DHashMap.Internal.List.getKey!_insertList_of_mem {α : Type u} {β : αType v} [BEq α] [EquivBEq α] [Inhabited α] {l toInsert : List ((a : α) × β a)} {k k' : α} (k_beq : (k == k') = true) (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) toInsert) (mem : k List.map Sigma.fst toInsert) :
                                          getKey! k' (insertList l toInsert) = k
                                          theorem Std.DHashMap.Internal.List.getKeyD_insertList_of_contains_eq_false {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l toInsert : List ((a : α) × β a)} {k fallback : α} (not_contains : (List.map Sigma.fst toInsert).contains k = false) :
                                          getKeyD k (insertList l toInsert) fallback = getKeyD k l fallback
                                          theorem Std.DHashMap.Internal.List.getKeyD_insertList_of_mem {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l toInsert : List ((a : α) × β a)} {k k' fallback : α} (k_beq : (k == k') = true) (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) toInsert) (mem : k List.map Sigma.fst toInsert) :
                                          getKeyD k' (insertList l toInsert) fallback = k
                                          theorem Std.DHashMap.Internal.List.perm_insertList {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l toInsert : List ((a : α) × β a)} (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) toInsert) (distinct_both : ∀ (a : α), containsKey a l = true(List.map Sigma.fst toInsert).contains a = false) :
                                          (insertList l toInsert).Perm (l ++ toInsert)
                                          theorem Std.DHashMap.Internal.List.length_insertList {α : Type u} {β : αType v} [BEq α] [EquivBEq α] {l toInsert : List ((a : α) × β a)} (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) toInsert) (distinct_both : ∀ (a : α), containsKey a l = true(List.map Sigma.fst toInsert).contains a = false) :
                                          (insertList l toInsert).length = l.length + toInsert.length
                                          theorem Std.DHashMap.Internal.List.length_le_length_insertList {α : Type u} {β : αType v} [BEq α] {l toInsert : List ((a : α) × β a)} :
                                          l.length (insertList l toInsert).length
                                          theorem Std.DHashMap.Internal.List.length_insertList_le {α : Type u} {β : αType v} [BEq α] {l toInsert : List ((a : α) × β a)} :
                                          (insertList l toInsert).length l.length + toInsert.length
                                          theorem Std.DHashMap.Internal.List.isEmpty_insertList {α : Type u} {β : αType v} [BEq α] {l toInsert : List ((a : α) × β a)} :
                                          (insertList l toInsert).isEmpty = (l.isEmpty && toInsert.isEmpty)
                                          def Std.DHashMap.Internal.List.Prod.toSigma {α : Type u} {β : Type v} (p : α × β) :
                                          (_ : α) × β

                                          Internal implementation detail of the hash map

                                          Equations
                                          Instances For
                                            def Std.DHashMap.Internal.List.insertListConst {α : Type u} {β : Type v} [BEq α] (l : List ((_ : α) × β)) (toInsert : List (α × β)) :
                                            List ((_ : α) × β)

                                            Internal implementation detail of the hash map

                                            Equations
                                            Instances For
                                              theorem Std.DHashMap.Internal.List.containsKey_insertListConst {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k : α} :
                                              theorem Std.DHashMap.Internal.List.containsKey_of_containsKey_insertListConst {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k : α} (h₁ : containsKey k (insertListConst l toInsert) = true) (h₂ : (List.map Prod.fst toInsert).contains k = false) :
                                              theorem Std.DHashMap.Internal.List.getKey?_insertListConst_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k : α} (not_contains : (List.map Prod.fst toInsert).contains k = false) :
                                              getKey? k (insertListConst l toInsert) = getKey? k l
                                              theorem Std.DHashMap.Internal.List.getKey?_insertListConst_of_mem {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k k' : α} (k_beq : (k == k') = true) (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) toInsert) (mem : k List.map Prod.fst toInsert) :
                                              getKey? k' (insertListConst l toInsert) = some k
                                              theorem Std.DHashMap.Internal.List.getKey_insertListConst_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k : α} (not_contains : (List.map Prod.fst toInsert).contains k = false) {h : containsKey k (insertListConst l toInsert) = true} :
                                              getKey k (insertListConst l toInsert) h = getKey k l
                                              theorem Std.DHashMap.Internal.List.getKey_insertListConst_of_mem {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k k' : α} (k_beq : (k == k') = true) (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) toInsert) (mem : k List.map Prod.fst toInsert) {h : containsKey k' (insertListConst l toInsert) = true} :
                                              getKey k' (insertListConst l toInsert) h = k
                                              theorem Std.DHashMap.Internal.List.getKey!_insertListConst_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [EquivBEq α] [Inhabited α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k : α} (not_contains : (List.map Prod.fst toInsert).contains k = false) :
                                              getKey! k (insertListConst l toInsert) = getKey! k l
                                              theorem Std.DHashMap.Internal.List.getKey!_insertListConst_of_mem {α : Type u} {β : Type v} [BEq α] [EquivBEq α] [Inhabited α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k k' : α} (k_beq : (k == k') = true) (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) toInsert) (mem : k List.map Prod.fst toInsert) :
                                              getKey! k' (insertListConst l toInsert) = k
                                              theorem Std.DHashMap.Internal.List.getKeyD_insertListConst_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k fallback : α} (not_contains : (List.map Prod.fst toInsert).contains k = false) :
                                              getKeyD k (insertListConst l toInsert) fallback = getKeyD k l fallback
                                              theorem Std.DHashMap.Internal.List.getKeyD_insertListConst_of_mem {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k k' fallback : α} (k_beq : (k == k') = true) (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) toInsert) (mem : k List.map Prod.fst toInsert) :
                                              getKeyD k' (insertListConst l toInsert) fallback = k
                                              theorem Std.DHashMap.Internal.List.length_insertListConst {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) toInsert) (distinct_both : ∀ (a : α), containsKey a l = true(List.map Prod.fst toInsert).contains a = false) :
                                              (insertListConst l toInsert).length = l.length + toInsert.length
                                              theorem Std.DHashMap.Internal.List.length_le_length_insertListConst {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} :
                                              theorem Std.DHashMap.Internal.List.length_insertListConst_le {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} :
                                              (insertListConst l toInsert).length l.length + toInsert.length
                                              theorem Std.DHashMap.Internal.List.isEmpty_insertListConst {α : Type u} {β : Type v} [BEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} :
                                              (insertListConst l toInsert).isEmpty = (l.isEmpty && toInsert.isEmpty)
                                              theorem Std.DHashMap.Internal.List.getValue?_insertListConst_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k : α} (not_contains : (List.map Prod.fst toInsert).contains k = false) :
                                              theorem Std.DHashMap.Internal.List.getValue?_insertListConst_of_mem {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k k' : α} (k_beq : (k == k') = true) {v : β} (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) toInsert) (mem : (k, v) toInsert) :
                                              getValue? k' (insertListConst l toInsert) = some v
                                              theorem Std.DHashMap.Internal.List.getValue_insertListConst_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k : α} {not_contains : (List.map Prod.fst toInsert).contains k = false} {h : containsKey k (insertListConst l toInsert) = true} :
                                              getValue k (insertListConst l toInsert) h = getValue k l
                                              theorem Std.DHashMap.Internal.List.getValue_insertListConst_of_mem {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k k' : α} (k_beq : (k == k') = true) {v : β} (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) toInsert) (mem : (k, v) toInsert) {h : containsKey k' (insertListConst l toInsert) = true} :
                                              getValue k' (insertListConst l toInsert) h = v
                                              theorem Std.DHashMap.Internal.List.getValue!_insertListConst_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] [Inhabited β] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k : α} (not_contains : (List.map Prod.fst toInsert).contains k = false) :
                                              theorem Std.DHashMap.Internal.List.getValue!_insertListConst_of_mem {α : Type u} {β : Type v} [BEq α] [EquivBEq α] [Inhabited β] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k k' : α} {v : β} (k_beq : (k == k') = true) (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) toInsert) (mem : (k, v) toInsert) :
                                              getValue! k' (insertListConst l toInsert) = v
                                              theorem Std.DHashMap.Internal.List.getValueD_insertListConst_of_contains_eq_false {α : Type u} {β : Type v} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k : α} {fallback : β} (not_contains : (List.map Prod.fst toInsert).contains k = false) :
                                              getValueD k (insertListConst l toInsert) fallback = getValueD k l fallback
                                              theorem Std.DHashMap.Internal.List.getValueD_insertListConst_of_mem {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {l : List ((_ : α) × β)} {toInsert : List (α × β)} {k k' : α} {v fallback : β} (k_beq : (k == k') = true) (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) toInsert) (mem : (k, v) toInsert) :
                                              getValueD k' (insertListConst l toInsert) fallback = v
                                              theorem Std.DHashMap.Internal.List.insertListIfNewUnit_perm_of_perm_first {α : Type u} [BEq α] [EquivBEq α] {l1 l2 : List ((_ : α) × Unit)} {toInsert : List α} (h : l1.Perm l2) (distinct : DistinctKeys l1) :
                                              (insertListIfNewUnit l1 toInsert).Perm (insertListIfNewUnit l2 toInsert)
                                              theorem Std.DHashMap.Internal.List.DistinctKeys.insertListIfNewUnit {α : Type u} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} (distinct : DistinctKeys l) :
                                              theorem Std.DHashMap.Internal.List.getEntry?_insertListIfNewUnit {α : Type u} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k : α} :
                                              getEntry? k (insertListIfNewUnit l toInsert) = (getEntry? k l).or (getEntry? k (List.map (fun (x : α) => x, ()) toInsert))
                                              theorem Std.DHashMap.Internal.List.DistinctKeys.mapUnit {α : Type u} [BEq α] {l : List α} (distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l) :
                                              DistinctKeys (List.map (fun (x : α) => x, ()) l)
                                              theorem Std.DHashMap.Internal.List.getEntry?_insertListIfNewUnit_of_contains_eq_false {α : Type u} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k : α} (not_contains : toInsert.contains k = false) :
                                              theorem Std.DHashMap.Internal.List.containsKey_insertListIfNewUnit {α : Type u} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k : α} :
                                              containsKey k (insertListIfNewUnit l toInsert) = (containsKey k l || toInsert.contains k)
                                              theorem Std.DHashMap.Internal.List.containsKey_of_containsKey_insertListIfNewUnit {α : Type u} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k : α} (h₂ : toInsert.contains k = false) :
                                              theorem Std.DHashMap.Internal.List.getKey?_insertListIfNewUnit_of_contains_eq_false_of_contains_eq_false {α : Type u} [BEq α] [EquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k : α} (h' : containsKey k l = false) (h : toInsert.contains k = false) :
                                              theorem Std.DHashMap.Internal.List.getKey?_insertListIfNewUnit_of_contains_eq_false_of_mem {α : Type u} [BEq α] [EquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k k' : α} (k_beq : (k == k') = true) (mem' : containsKey k l = false) (distinct : List.Pairwise (fun (a b : α) => (a == b) = false) toInsert) (mem : k toInsert) :
                                              getKey? k' (insertListIfNewUnit l toInsert) = some k
                                              theorem Std.DHashMap.Internal.List.getKey?_insertListIfNewUnit_of_contains {α : Type u} [BEq α] [EquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k : α} (h : containsKey k l = true) :
                                              theorem Std.DHashMap.Internal.List.getKey_insertListIfNewUnit_of_contains_eq_false_of_mem {α : Type u} [BEq α] [EquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k k' : α} (k_beq : (k == k') = true) {h : containsKey k' (insertListIfNewUnit l toInsert) = true} (contains_eq_false : containsKey k l = false) (distinct : List.Pairwise (fun (a b : α) => (a == b) = false) toInsert) (mem : k toInsert) :
                                              getKey k' (insertListIfNewUnit l toInsert) h = k
                                              theorem Std.DHashMap.Internal.List.getKey_insertListIfNewUnit_of_contains {α : Type u} [BEq α] [EquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k : α} (contains : containsKey k l = true) {h : containsKey k (insertListIfNewUnit l toInsert) = true} :
                                              getKey k (insertListIfNewUnit l toInsert) h = getKey k l contains
                                              theorem Std.DHashMap.Internal.List.getKey!_insertListIfNewUnit_of_contains_eq_false_of_contains_eq_false {α : Type u} [BEq α] [EquivBEq α] [Inhabited α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k : α} (contains_eq_false : containsKey k l = false) (contains_eq_false' : toInsert.contains k = false) :
                                              theorem Std.DHashMap.Internal.List.getKey!_insertListIfNewUnit_of_contains_eq_false_of_mem {α : Type u} [BEq α] [EquivBEq α] [Inhabited α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k k' : α} (k_beq : (k == k') = true) (h : containsKey k l = false) (distinct : List.Pairwise (fun (a b : α) => (a == b) = false) toInsert) (mem : k toInsert) :
                                              getKey! k' (insertListIfNewUnit l toInsert) = k
                                              theorem Std.DHashMap.Internal.List.getKey!_insertListIfNewUnit_of_contains {α : Type u} [BEq α] [EquivBEq α] [Inhabited α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k : α} (h : containsKey k l = true) :
                                              theorem Std.DHashMap.Internal.List.getKeyD_insertListIfNewUnit_of_contains_eq_false_of_contains_eq_false {α : Type u} [BEq α] [EquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k fallback : α} (contains_eq_false : containsKey k l = false) (contains_eq_false' : toInsert.contains k = false) :
                                              getKeyD k (insertListIfNewUnit l toInsert) fallback = fallback
                                              theorem Std.DHashMap.Internal.List.getKeyD_insertListIfNewUnit_of_contains_eq_false_of_mem {α : Type u} [BEq α] [EquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k k' fallback : α} (k_beq : (k == k') = true) (h : containsKey k l = false) (distinct : List.Pairwise (fun (a b : α) => (a == b) = false) toInsert) (mem : k toInsert) :
                                              getKeyD k' (insertListIfNewUnit l toInsert) fallback = k
                                              theorem Std.DHashMap.Internal.List.getKeyD_insertListIfNewUnit_of_contains {α : Type u} [BEq α] [EquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k fallback : α} (contains : containsKey k l = true) :
                                              getKeyD k (insertListIfNewUnit l toInsert) fallback = getKeyD k l fallback
                                              theorem Std.DHashMap.Internal.List.length_insertListIfNewUnit {α : Type u} [BEq α] [EquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} (distinct_l : DistinctKeys l) (distinct_toInsert : List.Pairwise (fun (a b : α) => (a == b) = false) toInsert) (distinct_both : ∀ (a : α), containsKey a l = truetoInsert.contains a = false) :
                                              (insertListIfNewUnit l toInsert).length = l.length + toInsert.length
                                              theorem Std.DHashMap.Internal.List.length_le_length_insertListIfNewUnit {α : Type u} [BEq α] [EquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} :
                                              theorem Std.DHashMap.Internal.List.length_insertListIfNewUnit_le {α : Type u} [BEq α] [EquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} :
                                              (insertListIfNewUnit l toInsert).length l.length + toInsert.length
                                              theorem Std.DHashMap.Internal.List.isEmpty_insertListIfNewUnit {α : Type u} [BEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} :
                                              (insertListIfNewUnit l toInsert).isEmpty = (l.isEmpty && toInsert.isEmpty)
                                              theorem Std.DHashMap.Internal.List.getValue?_insertListIfNewUnit {α : Type u} [BEq α] [PartialEquivBEq α] {l : List ((_ : α) × Unit)} {toInsert : List α} {k : α} :
                                              def Std.DHashMap.Internal.List.alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (k : α) (f : Option (β k)Option (β k)) (l : List ((a : α) × β a)) :
                                              List ((a : α) × β a)

                                              Internal implementation detail of the hash map

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                theorem Std.DHashMap.Internal.List.length_alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k : α} {f : Option (β k)Option (β k)} {l : List ((a : α) × β a)} :
                                                (alterKey k f l).length = if h : containsKey k l = true then if (f (some (getValueCast k l h))).isSome = true then l.length else l.length - 1 else if (f none).isSome = true then l.length + 1 else l.length
                                                theorem Std.DHashMap.Internal.List.length_alterKey' {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k : α} {f : Option (β k)Option (β k)} {l : List ((a : α) × β a)} :
                                                theorem Std.DHashMap.Internal.List.alterKey_cons_perm {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k : α} {f : Option (β k)Option (β k)} {k' : α} {v' : β k'} {l : List ((a : α) × β a)} :
                                                (alterKey k f (k', v' :: l)).Perm (if hk : (k' == k) = true then match f (some (cast v')) with | none => l | some v => k, v :: l else k', v' :: alterKey k f l)
                                                theorem Std.DHashMap.Internal.List.isEmpty_alterKey_eq_isEmpty_eraseKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k : α} {f : Option (β k)Option (β k)} {l : List ((a : α) × β a)} :
                                                theorem Std.DHashMap.Internal.List.isEmpty_alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k : α} {f : Option (β k)Option (β k)} {l : List ((a : α) × β a)} :
                                                theorem Std.DHashMap.Internal.List.alterKey_of_perm {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {a : α} {f : Option (β a)Option (β a)} {l l' : List ((a : α) × β a)} (hl : DistinctKeys l) (hp : l.Perm l') :
                                                (alterKey a f l).Perm (alterKey a f l')
                                                theorem Std.DHashMap.Internal.List.alterKey_append_of_containsKey_right_eq_false {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {a : α} {f : Option (β a)Option (β a)} {l l' : List ((a : α) × β a)} (hc : containsKey a l' = false) :
                                                alterKey a f (l ++ l') = alterKey a f l ++ l'
                                                @[simp]
                                                theorem Std.DHashMap.Internal.List.alterKey_nil {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {a : α} {f : Option (β a)Option (β a)} :
                                                alterKey a f [] = match f none with | none => [] | some b => [a, b]
                                                theorem Std.DHashMap.Internal.List.containsKey_alterKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {a : α} {f : Option (β a)Option (β a)} {l : List ((a : α) × β a)} (hl : DistinctKeys l) :
                                                theorem Std.DHashMap.Internal.List.containsKey_alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k k' : α} {f : Option (β k)Option (β k)} {l : List ((a : α) × β a)} (hl : DistinctKeys l) :
                                                theorem Std.DHashMap.Internal.List.DistinctKeys.alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {a : α} {f : Option (β a)Option (β a)} {l : List ((a : α) × β a)} (hl : DistinctKeys l) :
                                                theorem Std.DHashMap.Internal.List.mem_alterKey_of_key_ne {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {a : α} {f : Option (β a)Option (β a)} {l : List ((a : α) × β a)} (p : (a : α) × β a) (hne : p.fst a) :
                                                p alterKey a f l p l
                                                theorem Std.DHashMap.Internal.List.getValueCast?_alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (k k' : α) (f : Option (β k)Option (β k)) (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                getValueCast? k' (alterKey k f l) = if h : (k == k') = true then cast (f (getValueCast? k l)) else getValueCast? k' l
                                                theorem Std.DHashMap.Internal.List.getValueCast_alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (k k' : α) (f : Option (β k)Option (β k)) (l : List ((a : α) × β a)) (hl : DistinctKeys l) (hc : containsKey k' (alterKey k f l) = true) :
                                                getValueCast k' (alterKey k f l) hc = if h : (k == k') = true then cast ((f (getValueCast? k l)).get ) else getValueCast k' l
                                                theorem Std.DHashMap.Internal.List.getValueCast_alterKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (k : α) (f : Option (β k)Option (β k)) (l : List ((a : α) × β a)) (hl : DistinctKeys l) (hc : containsKey k (alterKey k f l) = true) :
                                                getValueCast k (alterKey k f l) hc = (f (getValueCast? k l)).get
                                                theorem Std.DHashMap.Internal.List.getValueCast!_alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k k' : α} [Inhabited (β k')] {f : Option (β k)Option (β k)} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                getValueCast! k' (alterKey k f l) = if heq : (k == k') = true then (Option.map (cast ) (f (getValueCast? k l))).get! else getValueCast! k' l
                                                theorem Std.DHashMap.Internal.List.getValueCastD_alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k k' : α} {fallback : β k'} {f : Option (β k)Option (β k)} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                getValueCastD k' (alterKey k f l) fallback = if heq : (k == k') = true then (Option.map (cast ) (f (getValueCast? k l))).getD fallback else getValueCastD k' l fallback
                                                theorem Std.DHashMap.Internal.List.getKey?_alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k k' : α} {f : Option (β k)Option (β k)} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                theorem Std.DHashMap.Internal.List.getKey!_alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] [Inhabited α] {k k' : α} {f : Option (β k)Option (β k)} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                theorem Std.DHashMap.Internal.List.getKey_alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] [Inhabited α] {k k' : α} {f : Option (β k)Option (β k)} (l : List ((a : α) × β a)) (hl : DistinctKeys l) (hc : containsKey k' (alterKey k f l) = true) :
                                                getKey k' (alterKey k f l) hc = if heq : (k == k') = true then k else getKey k' l
                                                theorem Std.DHashMap.Internal.List.getKeyD_alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k k' fallback : α} {f : Option (β k)Option (β k)} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                getKeyD k' (alterKey k f l) fallback = if (k == k') = true then if (f (getValueCast? k l)).isSome = true then k else fallback else getKeyD k' l fallback
                                                def Std.DHashMap.Internal.List.Const.alterKey {α : Type u} {β : Type v} [BEq α] (k : α) (f : Option βOption β) (l : List ((_ : α) × β)) :
                                                List ((_ : α) × β)

                                                Internal implementation detail of the hash map

                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  theorem Std.DHashMap.Internal.List.Const.length_alterKey {α : Type u} [BEq α] {β : Type v} {k : α} {f : Option βOption β} {l : List ((_ : α) × β)} :
                                                  (alterKey k f l).length = if h : containsKey k l = true then if (f (some (getValue k l h))).isSome = true then l.length else l.length - 1 else if (f none).isSome = true then l.length + 1 else l.length
                                                  theorem Std.DHashMap.Internal.List.Const.length_alterKey' {α : Type u} [BEq α] {β : Type v} {k : α} {f : Option βOption β} {l : List ((_ : α) × β)} :
                                                  theorem Std.DHashMap.Internal.List.Const.length_alterKey_eq_add_one {α : Type u} [BEq α] {β : Type v} {k : α} {f : Option βOption β} {l : List ((_ : α) × β)} (h : containsKey k l = false) (h' : (f (getValue? k l)).isSome = true) :
                                                  (alterKey k f l).length = l.length + 1
                                                  theorem Std.DHashMap.Internal.List.Const.length_alterKey_eq_sub_one {α : Type u} [BEq α] {β : Type v} {k : α} {f : Option βOption β} {l : List ((_ : α) × β)} (h : containsKey k l = true) (h' : (f (getValue? k l)).isNone = true) :
                                                  (alterKey k f l).length = l.length - 1
                                                  theorem Std.DHashMap.Internal.List.Const.length_alterKey_eq_self {α : Type u} [BEq α] {β : Type v} {k : α} {f : Option βOption β} {l : List ((_ : α) × β)} (h : containsKey k l = true) (h' : (f (getValue? k l)).isSome = true) :
                                                  theorem Std.DHashMap.Internal.List.Const.length_alterKey_eq_self' {α : Type u} [BEq α] {β : Type v} {k : α} {f : Option βOption β} {l : List ((_ : α) × β)} (h : containsKey k l = false) (h' : (f (getValue? k l)).isNone = true) :
                                                  theorem Std.DHashMap.Internal.List.Const.alterKey_cons_perm {α : Type u} [BEq α] {β : Type v} {k : α} {f : Option βOption β} {k' : α} {v' : β} {l : List ((_ : α) × β)} :
                                                  (alterKey k f (k', v' :: l)).Perm (if (k' == k) = true then match f (some v') with | none => l | some v => k, v :: l else k', v' :: alterKey k f l)
                                                  theorem Std.DHashMap.Internal.List.Const.isEmpty_alterKey_eq_isEmpty_eraseKey {α : Type u} [BEq α] {β : Type v} {k : α} {f : Option βOption β} {l : List ((_ : α) × β)} :
                                                  (alterKey k f l).isEmpty = ((eraseKey k l).isEmpty && (f (getValue? k l)).isNone)
                                                  theorem Std.DHashMap.Internal.List.Const.isEmpty_alterKey {α : Type u} [BEq α] {β : Type v} {k : α} {f : Option βOption β} {l : List ((_ : α) × β)} :
                                                  (alterKey k f l).isEmpty = ((l.isEmpty || l.length == 1 && containsKey k l) && (f (getValue? k l)).isNone)
                                                  theorem Std.DHashMap.Internal.List.Const.alterKey_of_perm {α : Type u} [BEq α] {β : Type v} [EquivBEq α] {a : α} {f : Option βOption β} {l l' : List ((_ : α) × β)} (hl : DistinctKeys l) (hp : l.Perm l') :
                                                  (alterKey a f l).Perm (alterKey a f l')
                                                  theorem Std.DHashMap.Internal.List.Const.alterKey_append_of_containsKey_right_eq_false {α : Type u} [BEq α] {β : Type v} {a : α} {f : Option βOption β} {l l' : List ((_ : α) × β)} (hc : containsKey a l' = false) :
                                                  alterKey a f (l ++ l') = alterKey a f l ++ l'
                                                  @[simp]
                                                  theorem Std.DHashMap.Internal.List.Const.alterKey_nil {α : Type u} [BEq α] {β : Type v} {a : α} {f : Option βOption β} :
                                                  alterKey a f [] = match f none with | none => [] | some b => [a, b]
                                                  theorem Std.DHashMap.Internal.List.Const.containsKey_alterKey_self {α : Type u} [BEq α] {β : Type v} [EquivBEq α] {a : α} {f : Option βOption β} {l : List ((_ : α) × β)} (hl : DistinctKeys l) :
                                                  containsKey a (alterKey a f l) = (f (getValue? a l)).isSome
                                                  theorem Std.DHashMap.Internal.List.Const.mem_alterKey_of_key_not_beq {α : Type u} [BEq α] [EquivBEq α] {β : Type v} {a : α} {f : Option βOption β} {l : List ((_ : α) × β)} (p : (_ : α) × β) (hne : (p.fst == a) = false) :
                                                  p alterKey a f l p l
                                                  theorem Std.DHashMap.Internal.List.Const.containsKey_alterKey {α : Type u} [BEq α] {β : Type v} [EquivBEq α] {k k' : α} {f : Option βOption β} {l : List ((_ : α) × β)} (hl : DistinctKeys l) :
                                                  containsKey k' (alterKey k f l) = if (k == k') = true then (f (getValue? k l)).isSome else containsKey k' l
                                                  theorem Std.DHashMap.Internal.List.Const.getValue?_alterKey {α : Type u} [BEq α] {β : Type v} [EquivBEq α] (k k' : α) (f : Option βOption β) (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                  getValue? k' (alterKey k f l) = if (k == k') = true then f (getValue? k l) else getValue? k' l
                                                  theorem Std.DHashMap.Internal.List.Const.getValue_alterKey {α : Type u} [BEq α] {β : Type v} [EquivBEq α] (k k' : α) (f : Option βOption β) (l : List ((_ : α) × β)) (hl : DistinctKeys l) (hc : containsKey k' (alterKey k f l) = true) :
                                                  getValue k' (alterKey k f l) hc = if h : (k == k') = true then (f (getValue? k l)).get else getValue k' l
                                                  theorem Std.DHashMap.Internal.List.Const.getValue_alterKey_self {α : Type u} [BEq α] {β : Type v} [EquivBEq α] (k : α) (f : Option βOption β) (l : List ((_ : α) × β)) (hl : DistinctKeys l) (hc : containsKey k (alterKey k f l) = true) :
                                                  getValue k (alterKey k f l) hc = (f (getValue? k l)).get
                                                  theorem Std.DHashMap.Internal.List.Const.getValue!_alterKey {α : Type u} [BEq α] {β : Type v} [EquivBEq α] {k k' : α} [Inhabited β] {f : Option βOption β} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                  getValue! k' (alterKey k f l) = if (k == k') = true then (f (getValue? k l)).get! else getValue! k' l
                                                  theorem Std.DHashMap.Internal.List.Const.getValueD_alterKey {α : Type u} [BEq α] {β : Type v} [EquivBEq α] {k k' : α} {fallback : β} {f : Option βOption β} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                  getValueD k' (alterKey k f l) fallback = if (k == k') = true then (f (getValue? k l)).getD fallback else getValueD k' l fallback
                                                  theorem Std.DHashMap.Internal.List.Const.getKey?_alterKey {α : Type u} [BEq α] {β : Type v} [EquivBEq α] {k k' : α} {f : Option βOption β} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                  getKey? k' (alterKey k f l) = if (k == k') = true then if (f (getValue? k l)).isSome = true then some k else none else getKey? k' l
                                                  theorem Std.DHashMap.Internal.List.Const.getKey!_alterKey {α : Type u} [BEq α] {β : Type v} [EquivBEq α] [Inhabited α] {k k' : α} {f : Option βOption β} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                  getKey! k' (alterKey k f l) = if (k == k') = true then if (f (getValue? k l)).isSome = true then k else default else getKey! k' l
                                                  theorem Std.DHashMap.Internal.List.Const.getKey_alterKey {α : Type u} [BEq α] {β : Type v} [EquivBEq α] [Inhabited α] {k k' : α} {f : Option βOption β} (l : List ((_ : α) × β)) (hl : DistinctKeys l) (hc : containsKey k' (alterKey k f l) = true) :
                                                  getKey k' (alterKey k f l) hc = if heq : (k == k') = true then k else getKey k' l
                                                  theorem Std.DHashMap.Internal.List.Const.getKeyD_alterKey {α : Type u} [BEq α] {β : Type v} [EquivBEq α] {k k' fallback : α} {f : Option βOption β} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                  getKeyD k' (alterKey k f l) fallback = if (k == k') = true then if (f (getValue? k l)).isSome = true then k else fallback else getKeyD k' l fallback
                                                  theorem Std.DHashMap.Internal.List.constAlterKey_eq_alterKey {α : Type u} [BEq α] [LawfulBEq α] {β : Type v} {k : α} {f : Option βOption β} {l : List ((_ : α) × β)} :
                                                  theorem Std.DHashMap.Internal.List.DistinctKeys.constAlterKey {α : Type u} [BEq α] [EquivBEq α] {β : Type v} {a : α} {f : Option βOption β} {l : List ((_ : α) × β)} (hl : DistinctKeys l) :
                                                  def Std.DHashMap.Internal.List.modifyKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (k : α) (f : β kβ k) (l : List ((a : α) × β a)) :
                                                  List ((a : α) × β a)

                                                  Internal implementation detail of the hash map

                                                  Equations
                                                  Instances For
                                                    theorem Std.DHashMap.Internal.List.isEmpty_modifyKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (k : α) (f : β kβ k) (l : List ((a : α) × β a)) :
                                                    theorem Std.DHashMap.Internal.List.length_modifyKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (k : α) (f : β kβ k) (l : List ((a : α) × β a)) :
                                                    theorem Std.DHashMap.Internal.List.containsKey_modifyKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (k k' : α) (f : β kβ k) (l : List ((a : α) × β a)) :
                                                    theorem Std.DHashMap.Internal.List.modifyKey_eq_alterKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] (k : α) (f : β kβ k) (l : List ((a : α) × β a)) :
                                                    modifyKey k f l = alterKey k (fun (x : Option (β k)) => Option.map f x) l
                                                    theorem Std.DHashMap.Internal.List.getValueCast?_modifyKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k k' : α} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                    getValueCast? k' (modifyKey k f l) = if h : (k == k') = true then cast (Option.map f (getValueCast? k l)) else getValueCast? k' l
                                                    @[simp]
                                                    theorem Std.DHashMap.Internal.List.getValueCast?_modifyKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k : α} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                    theorem Std.DHashMap.Internal.List.getValueCast_modifyKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k k' : α} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) (h : containsKey k' (modifyKey k f l) = true) :
                                                    getValueCast k' (modifyKey k f l) h = if heq : (k == k') = true then cast (f (getValueCast k l )) else getValueCast k' l
                                                    @[simp]
                                                    theorem Std.DHashMap.Internal.List.getValueCast_modifyKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k : α} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) {h : containsKey k (modifyKey k f l) = true} :
                                                    getValueCast k (modifyKey k f l) h = f (getValueCast k l )
                                                    theorem Std.DHashMap.Internal.List.getValueCast!_modifyKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k k' : α} [hi : Inhabited (β k')] {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                    getValueCast! k' (modifyKey k f l) = if heq : (k == k') = true then (Option.map (cast ) (Option.map f (getValueCast? k l))).get! else getValueCast! k' l
                                                    @[simp]
                                                    theorem Std.DHashMap.Internal.List.getValueCast!_modifyKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k : α} [Inhabited (β k)] {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                    theorem Std.DHashMap.Internal.List.getValueCastD_modifyKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k k' : α} {fallback : β k'} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                    getValueCastD k' (modifyKey k f l) fallback = if heq : (k == k') = true then (Option.map (cast ) (Option.map f (getValueCast? k l))).getD fallback else getValueCastD k' l fallback
                                                    @[simp]
                                                    theorem Std.DHashMap.Internal.List.getValueCastD_modifyKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k : α} {fallback : β k} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                    getValueCastD k (modifyKey k f l) fallback = (Option.map f (getValueCast? k l)).getD fallback
                                                    theorem Std.DHashMap.Internal.List.getKey?_modifyKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k k' : α} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                    theorem Std.DHashMap.Internal.List.getKey?_modifyKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k : α} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                    theorem Std.DHashMap.Internal.List.getKey!_modifyKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] [Inhabited α] {k k' : α} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                    theorem Std.DHashMap.Internal.List.getKey!_modifyKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] [Inhabited α] {k : α} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                    theorem Std.DHashMap.Internal.List.getKey_modifyKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] [Inhabited α] {k k' : α} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) (h : containsKey k' (modifyKey k f l) = true) :
                                                    getKey k' (modifyKey k f l) h = if (k == k') = true then k else getKey k' l
                                                    @[simp]
                                                    theorem Std.DHashMap.Internal.List.getKey_modifyKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] [Inhabited α] {k : α} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) (h : containsKey k (modifyKey k f l) = true) :
                                                    getKey k (modifyKey k f l) h = k
                                                    theorem Std.DHashMap.Internal.List.getKeyD_modifyKey {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] {k k' fallback : α} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                    getKeyD k' (modifyKey k f l) fallback = if (k == k') = true then if containsKey k l = true then k else fallback else getKeyD k' l fallback
                                                    theorem Std.DHashMap.Internal.List.getKeyD_modifyKey_self {α : Type u} {β : αType v} [BEq α] [LawfulBEq α] [Inhabited α] {k fallback : α} {f : β kβ k} (l : List ((a : α) × β a)) (hl : DistinctKeys l) :
                                                    getKeyD k (modifyKey k f l) fallback = if containsKey k l = true then k else fallback
                                                    def Std.DHashMap.Internal.List.Const.modifyKey {α : Type u} {β : Type v} [BEq α] (k : α) (f : ββ) (l : List ((_ : α) × β)) :
                                                    List ((_ : α) × β)

                                                    Internal implementation detail of the hash map

                                                    Equations
                                                    Instances For
                                                      theorem Std.DHashMap.Internal.List.Const.isEmpty_modifyKey {α : Type u} {β : Type v} [BEq α] (k : α) (f : ββ) (l : List ((_ : α) × β)) :
                                                      theorem Std.DHashMap.Internal.List.Const.modifyKey_eq_alterKey {α : Type u} {β : Type v} [BEq α] (k : α) (f : ββ) (l : List ((_ : α) × β)) :
                                                      modifyKey k f l = alterKey k (fun (x : Option β) => Option.map f x) l
                                                      theorem Std.DHashMap.Internal.List.Const.length_modifyKey {α : Type u} {β : Type v} [BEq α] (k : α) (f : ββ) (l : List ((_ : α) × β)) :
                                                      theorem Std.DHashMap.Internal.List.Const.containsKey_modifyKey {α : Type u} {β : Type v} [BEq α] [EquivBEq α] (k k' : α) (f : ββ) (l : List ((_ : α) × β)) :
                                                      theorem Std.DHashMap.Internal.List.Const.getValue?_modifyKey {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {k k' : α} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                      @[simp]
                                                      theorem Std.DHashMap.Internal.List.Const.getValue?_modifyKey_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {k : α} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                      theorem Std.DHashMap.Internal.List.Const.getValue_modifyKey {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {k k' : α} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) (h : containsKey k' (modifyKey k f l) = true) :
                                                      getValue k' (modifyKey k f l) h = if heq : (k == k') = true then f (getValue k l ) else getValue k' l
                                                      @[simp]
                                                      theorem Std.DHashMap.Internal.List.Const.getValue_modifyKey_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {k : α} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) {h : containsKey k (modifyKey k f l) = true} :
                                                      getValue k (modifyKey k f l) h = f (getValue k l )
                                                      theorem Std.DHashMap.Internal.List.Const.getValue!_modifyKey {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {k k' : α} [hi : Inhabited β] {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                      @[simp]
                                                      theorem Std.DHashMap.Internal.List.Const.getValue!_modifyKey_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {k : α} [Inhabited β] {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                      theorem Std.DHashMap.Internal.List.Const.getValueD_modifyKey {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {k k' : α} {fallback : β} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                      getValueD k' (modifyKey k f l) fallback = if (k == k') = true then (Option.map f (getValue? k l)).getD fallback else getValueD k' l fallback
                                                      @[simp]
                                                      theorem Std.DHashMap.Internal.List.Const.getValueD_modifyKey_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {k : α} {fallback : β} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                      getValueD k (modifyKey k f l) fallback = (Option.map f (getValue? k l)).getD fallback
                                                      theorem Std.DHashMap.Internal.List.Const.getKey?_modifyKey {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {k k' : α} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                      theorem Std.DHashMap.Internal.List.Const.getKey?_modifyKey_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {k : α} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                      theorem Std.DHashMap.Internal.List.Const.getKey!_modifyKey {α : Type u} {β : Type v} [BEq α] [EquivBEq α] [Inhabited α] {k k' : α} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                      theorem Std.DHashMap.Internal.List.Const.getKey!_modifyKey_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] [Inhabited α] {k : α} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                      theorem Std.DHashMap.Internal.List.Const.getKey_modifyKey {α : Type u} {β : Type v} [BEq α] [EquivBEq α] [Inhabited α] {k k' : α} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) (h : containsKey k' (modifyKey k f l) = true) :
                                                      getKey k' (modifyKey k f l) h = if (k == k') = true then k else getKey k' l
                                                      @[simp]
                                                      theorem Std.DHashMap.Internal.List.Const.getKey_modifyKey_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] [Inhabited α] {k : α} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) (h : containsKey k (modifyKey k f l) = true) :
                                                      getKey k (modifyKey k f l) h = k
                                                      theorem Std.DHashMap.Internal.List.Const.getKeyD_modifyKey {α : Type u} {β : Type v} [BEq α] [EquivBEq α] {k k' fallback : α} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                      getKeyD k' (modifyKey k f l) fallback = if (k == k') = true then if containsKey k l = true then k else fallback else getKeyD k' l fallback
                                                      theorem Std.DHashMap.Internal.List.Const.getKeyD_modifyKey_self {α : Type u} {β : Type v} [BEq α] [EquivBEq α] [Inhabited α] {k fallback : α} {f : ββ} (l : List ((_ : α) × β)) (hl : DistinctKeys l) :
                                                      getKeyD k (modifyKey k f l) fallback = if containsKey k l = true then k else fallback
                                                      theorem Std.DHashMap.Internal.List.constModifyKey_eq_modifyKey {α : Type u} {β : Type v} [BEq α] [LawfulBEq α] {k : α} {f : ββ} {l : List ((_ : α) × β)} :