Documentation

Projects.Util.ExtDHashMap

@[simp]
theorem Std.ExtDHashMap.not_mem_empty' {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {i : α} :
i
@[simp]
theorem Std.ExtDHashMap.not_mem_lift_empty {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {i : α} :
i{ inner := }
theorem Std.ExtDHashMap.mem_iff_get?_eq_some {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} :
i mp ∃ (x : β i), mp.get? i = some x
theorem Std.ExtDHashMap.get?_eq_some_of_mem {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} (h : i mp) :
∃ (x : β i), mp.get? i = some x
theorem Std.ExtDHashMap.get?_eq_none_of_not_mem {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} (h : imp) :
mp.get? i = none
@[simp]
theorem Std.ExtDHashMap.get?_eq_none_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} :
mp.get? i = none imp
def Std.ExtDHashMap.toList {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : LinearOrder α] (mp : ExtDHashMap α β) :
List ((i : α) × β i)
Equations
Instances For
    @[simp]
    theorem Std.ExtDHashMap.toList_empty {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [LinearOrder α] :
    @[simp]
    theorem Std.ExtDHashMap.ofList_snoc {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {xs : List ((a : α) × β a)} {x : (i : α) × β i} :
    @[simp]
    theorem Std.ExtDHashMap.mem_insert' {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {x : (i : α) × β i} {i : α} :
    i Insert.insert x mp i = x.fst i mp
    @[simp]
    theorem Std.ExtDHashMap.mem_ofList' {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {xs : List ((i : α) × β i)} {i : α} :
    i ofList xs ∃ (x : β i), i, x xs
    theorem Std.ExtDHashMap.eq_empty_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} :
    mp = ∀ (i : α), imp
    theorem Std.ExtDHashMap.ext_iff' {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m₁ m₂ : ExtDHashMap α β} :
    m₁ = m₂ m₁.inner.out.Equiv m₂.inner.out
    theorem Std.ExtDHashMap.ext_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m₁ m₂ : ExtDHashMap α β} :
    m₁ = m₂ ∀ (i : α), m₁.get? i = m₂.get? i
    theorem Std.ExtDHashMap.get?_eq_ite_of_unit {α : Type u_1} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m : ExtDHashMap α fun (x : α) => Unit} {i : α} :
    theorem Std.ExtDHashMap.ofList_eq_ofList_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {xs ys : List ((i : α) × β i)} (hx : (List.map (fun (x : (i : α) × β i) => x.fst) xs).Nodup) (hy : (List.map (fun (x : (i : α) × β i) => x.fst) ys).Nodup) :
    ofList xs = ofList ys xs.Perm ys
    def Std.ExtDHashMap.range' {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : Fintype α] (f : (i : α) → Option (β i)) :
    Equations
    Instances For
      def Std.ExtDHashMap.range {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : Fintype α] (f : (i : α) → β i) :
      Equations
      Instances For
        @[simp]
        theorem Std.ExtDHashMap.mem_range {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : Fintype α] {f : (i : α) → β i} {i : α} :
        @[simp]
        theorem Std.ExtDHashMap.mem_range' {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : Fintype α] {f : (i : α) → Option (β i)} {i : α} :
        i range' f ∃ (x : β i), f i = some x
        @[simp]
        theorem Std.ExtDHashMap.nonempty_insert {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {x : (a : α) × β a} :
        Insert.insert x mp { inner := }
        @[simp]
        theorem Std.ExtDHashMap.nodup_toList {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [LinearOrder α] :
        @[simp]
        theorem Std.ExtDHashMap.pairwise_toList {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [LinearOrder α] :
        List.Pairwise (fun (x1 x2 : (i : α) × β i) => x1.fst x2.fst) mp.toList
        @[simp]
        theorem Std.ExtDHashMap.mem_toList {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {x : (i : α) × β i} [LinearOrder α] :
        x mp.toList mp.get? x.fst = some x.snd
        @[simp]
        theorem Std.ExtDHashMap.toList_eq_toList {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [LinearOrder α] {m₁ m₂ : ExtDHashMap α β} :
        m₁.toList = m₂.toList m₁ = m₂
        @[simp]
        theorem Std.ExtDHashMap.toList_eq_nil_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [LinearOrder α] :
        mp.toList = [] mp =
        theorem Std.ExtDHashMap.eq_iff_inner_eq {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m₁ m₂ : ExtDHashMap α β} :
        m₁ = m₂ m₁.inner = m₂.inner
        theorem Std.ExtDHashMap.inner_eq_iff_eq {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m₁ m₂ : ExtDHashMap α β} :
        m₁.inner = m₂.inner m₁ = m₂
        def Std.ExtDHashMap.fold {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {γ : Type u_4} (mp : ExtDHashMap α β) (f : γ(i : α) → β iγ) (z : γ) (h_assoc : ∀ {acc : γ} {i : α} {x : β i} {j : α} {y : β j}, i jf (f acc i x) j y = f (f acc j y) i x) :
        γ
        Equations
        Instances For
          def Std.ExtDHashMap.decideEq {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [hh : (i : α) → DecidableEq (β i)] (m₁ m₂ : ExtDHashMap α β) :
          Equations
          Instances For
            theorem Std.ExtDHashMap.eq_iff_decideEq {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [hh : (i : α) → DecidableEq (β i)] {m₁ m₂ : ExtDHashMap α β} :
            m₁ = m₂ m₁.decideEq m₂ = true
            @[instance_reducible]
            instance Std.ExtDHashMap.instDecidableEq_projects {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [hh : (i : α) → DecidableEq (β i)] :
            Equations
            @[simp]
            theorem Std.ExtDHashMap.decideEq_eq {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [hh : (i : α) → DecidableEq (β i)] {m₁ m₂ : ExtDHashMap α β} :
            m₁.decideEq m₂ = decide (m₁ = m₂)
            def Std.ExtDHashMap.all {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] (mp : ExtDHashMap α β) (p : (i : α) → β iBool) :
            Equations
            Instances For
              @[simp]
              theorem Std.ExtDHashMap.all_def {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {p : (i : α) → β iBool} [LinearOrder α] :
              mp.all p = decide (∀ xmp.toList, p x.fst x.snd = true)
              def Std.ExtDHashMap.keys {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : LinearOrder α] (mp : ExtDHashMap α β) :
              List α
              Equations
              Instances For
                @[simp]
                theorem Std.ExtDHashMap.mem_keys {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [LinearOrder α] {i : α} :
                i mp.keys i mp
                def Std.ExtDHashMap.modifyMany {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] (mp : ExtDHashMap α β) (xs : List ((i : α) × (β iβ i))) :
                Equations
                Instances For
                  @[simp]
                  theorem Std.ExtDHashMap.modifyMany_nil {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} :
                  @[simp]
                  theorem Std.ExtDHashMap.modifyMany_cons {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} {x : β iβ i} {xs : List ((i : α) × (β iβ i))} :
                  mp.modifyMany (i, x :: xs) = (mp.modify i x).modifyMany xs
                  theorem Std.ExtDHashMap.get!_eq_get? {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} [hb : Inhabited (β i)] :
                  mp.get! i = (mp.get? i).get!
                  theorem Std.ExtDHashMap.get?_eq_ite {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} [hb : Inhabited (β i)] :
                  mp.get? i = if i mp then some (mp.get! i) else none
                  theorem Std.ExtDHashMap.get?_ofList_eq_some_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {xs : List ((i : α) × β i)} {i : α} {x : β i} (h : (List.map (fun (x : (i : α) × β i) => x.fst) xs).Nodup) :
                  (ofList xs).get? i = some x i, x xs
                  @[simp]
                  theorem Std.ExtDHashMap.get?_range {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : Fintype α] {f : (i : α) → β i} {i : α} :
                  (range f).get? i = some (f i)
                  @[simp]
                  theorem Std.ExtDHashMap.get?_range' {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : Fintype α] {f : (i : α) → Option (β i)} {i : α} :
                  (range' f).get? i = f i
                  theorem Std.ExtDHashMap.injective_range {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : Fintype α] :
                  theorem Std.ExtDHashMap.injective_range' {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : Fintype α] :
                  @[instance_reducible]
                  instance Std.ExtDHashMap.instFintype_projects {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : Fintype α] [hb : (i : α) → Fintype (β i)] :
                  Equations
                  instance Std.ExtDHashMap.instFinite_projects {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : Finite α] [hb : ∀ (i : α), Finite (β i)] :
                  @[simp]
                  theorem Std.ExtDHashMap.range_eq_range_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : Fintype α] {f g : (i : α) → β i} :
                  range f = range g ∀ (x : α), f x = g x
                  @[simp]
                  theorem Std.ExtDHashMap.range'_eq_range'_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : Fintype α] {f g : (i : α) → Option (β i)} :
                  range' f = range' g ∀ (x : α), f x = g x
                  theorem Std.ExtDHashMap.mem_of_get?_eq_some {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} {x : β i} (h : mp.get? i = some x) :
                  i mp
                  @[simp]
                  theorem Std.ExtDHashMap.get?_eq_some_get!_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} [hb : Inhabited (β i)] :
                  mp.get? i = some (mp.get! i) i mp
                  @[simp]
                  theorem Std.ExtDHashMap.get?_eq_some_get?_get! {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} [hb : Inhabited (β i)] :
                  mp.get? i = some (mp.get? i).get! i mp
                  theorem Std.ExtDHashMap.fold_eq_foldl_toList {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] {γ : Type u_4} {z : γ} {f : γ(i : α) → β iγ} {h_assoc : ∀ {acc : γ} {i : α} {x : β i} {j : α} {y : β j}, i jf (f acc i x) j y = f (f acc j y) i x} :
                  mp.fold f z h_assoc = List.foldl (fun (acc : γ) (x : (i : α) × β i) => f acc x.fst x.snd) z mp.toList
                  theorem Std.ExtDHashMap.eq_iff_toList_eq {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : LinearOrder α] {m₁ m₂ : ExtDHashMap α β} :
                  m₁ = m₂ m₁.toList = m₂.toList
                  @[simp]
                  theorem Std.ExtDHashMap.ofList_toList {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] :
                  theorem Std.ExtDHashMap.toList_ofList_perm {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : LinearOrder α] {xs : List ((i : α) × β i)} (h : (List.map (fun (x : (i : α) × β i) => x.fst) xs).Nodup) :
                  @[simp]
                  theorem Std.ExtDHashMap.sortedLE_keys {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] :
                  theorem Std.ExtDHashMap.keys_eq_map_fst_toList {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] :
                  mp.keys = List.map (fun (x : (i : α) × β i) => x.fst) mp.toList
                  def Std.ExtDHashMap.minKey? {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : LinearOrder α] (mp : ExtDHashMap α β) :
                  Equations
                  Instances For
                    def Std.ExtDHashMap.maxKey? {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : LinearOrder α] (mp : ExtDHashMap α β) :
                    Equations
                    Instances For
                      def Std.ExtDHashMap.minKey! {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : LinearOrder α] [Inhabited α] (mp : ExtDHashMap α β) :
                      α
                      Equations
                      Instances For
                        def Std.ExtDHashMap.maxKey! {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : LinearOrder α] [Inhabited α] (mp : ExtDHashMap α β) :
                        α
                        Equations
                        Instances For
                          theorem Std.ExtDHashMap.minKey?_eq_head?_keys {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] :
                          theorem Std.ExtDHashMap.maxKey?_eq_getLast?_keys {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] :
                          @[simp]
                          theorem Std.ExtDHashMap.minKey?_eq_none_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] :
                          @[simp]
                          theorem Std.ExtDHashMap.maxKey?_eq_none_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] :
                          theorem Std.ExtDHashMap.not_mem_of_lt_minKey? {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] {m x : α} (h₁ : mp.minKey? = some m) (h₂ : x < m) :
                          xmp
                          theorem Std.ExtDHashMap.not_mem_of_maxKey?_lt {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] {m x : α} (h₁ : mp.maxKey? = some m) (h₂ : m < x) :
                          xmp
                          theorem Std.ExtDHashMap.not_mem_of_lt_minKey! {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha₁ : Inhabited α] [ha₂ : LinearOrder α] {x : α} (h : x < mp.minKey!) :
                          xmp
                          theorem Std.ExtDHashMap.not_mem_of_maxKey!_lt {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha₁ : Inhabited α] [ha₂ : LinearOrder α] {x : α} (h : mp.maxKey! < x) :
                          xmp
                          theorem Std.ExtDHashMap.minKey?_le_of_mem {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] {m x : α} (h₁ : mp.minKey? = some m) (h₂ : x mp) :
                          m x
                          theorem Std.ExtDHashMap.le_maxKey?_of_mem {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] {m x : α} (h₁ : mp.maxKey? = some m) (h₂ : x mp) :
                          x m
                          theorem Std.ExtDHashMap.minKey!_le_of_mem {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha₁ : Inhabited α] [ha₂ : LinearOrder α] {x : α} (h : x mp) :
                          theorem Std.ExtDHashMap.le_maxKey!_of_mem {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha₁ : Inhabited α] [ha₂ : LinearOrder α] {x : α} (h : x mp) :
                          @[simp]
                          theorem Std.ExtDHashMap.keys_eq_nil_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [LinearOrder α] :
                          @[simp]
                          theorem Std.ExtDHashMap.keys_empty {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [LinearOrder α] :
                          theorem Std.ExtDHashMap.ind {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {p : ExtDHashMap α βProp} (h₁ : p ) (h₂ : ∀ (mp : ExtDHashMap α β) (i : α) (x : β i), impp mpp (mp.insert i x)) (mp : ExtDHashMap α β) :
                          p mp
                          @[simp]
                          theorem Std.ExtDHashMap.fold_empty {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {γ : Type u_4} {f : γ(i : α) → β iγ} {z : γ} {h : ∀ {acc : γ} {i : α} {x : β i} {j : α} {y : β j}, i jf (f acc i x) j y = f (f acc j y) i x} :
                          .fold f z h = z
                          theorem Std.ExtDHashMap.fold_insert {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {γ : Type u_4} {f : γ(i : α) → β iγ} {z : γ} {h : ∀ {acc : γ} {i : α} {x : β i} {j : α} {y : β j}, i jf (f acc i x) j y = f (f acc j y) i x} {i : α} {x : β i} (h₁ : imp) :
                          (mp.insert i x).fold f z h = mp.fold f (f z i x)
                          theorem Std.ExtDHashMap.insert_comm {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} {x : β i} {j : α} {y : β j} (h : i j x y) :
                          (mp.insert i x).insert j y = (mp.insert j y).insert i x
                          @[simp]
                          theorem Std.ExtDHashMap.insert_idemp {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} {x : β i} :
                          (mp.insert i x).insert i x = mp.insert i x
                          def Std.ExtDHashMap.count {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] (mp : ExtDHashMap α β) (p : (i : α) → β iBool) :
                          Equations
                          Instances For
                            @[simp]
                            theorem Std.ExtDHashMap.size_filter_eq_count {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {p : (a : α) → β aBool} :
                            (filter p mp).size = mp.count p
                            theorem Std.ExtDHashMap.count_eq_size_filter {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {p : (i : α) → β iBool} :
                            mp.count p = (filter p mp).size
                            @[simp]
                            theorem Std.ExtDHashMap.count_le_size {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {p : (i : α) → β iBool} :
                            mp.count p mp.size
                            theorem Std.ExtDHashMap.count_eq_zero_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {p : (i : α) → β iBool} :
                            mp.count p = 0 ∀ (i : α) (x : β i), mp.get? i = some x¬p i x = true
                            @[simp]
                            theorem Std.ExtDHashMap.count_empty {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {p : (i : α) → β iBool} :
                            .count p = 0
                            theorem Std.ExtDHashMap.count_insert {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {p : (i : α) → β iBool} {i : α} {x : β i} (h : imp) :
                            (mp.insert i x).count p = mp.count p + if p i x = true then 1 else 0
                            theorem Std.ExtDHashMap.eq_iff_inner {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp₁ mp₂ : ExtDHashMap α β} :
                            mp₁ = mp₂ mp₁.inner = mp₂.inner
                            @[simp]
                            theorem Std.ExtDHashMap.mem_mk_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : DHashMap α β} {i : α} :
                            i { inner := mp } i mp
                            theorem Std.ExtDHashMap.modify_of_notMem {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} {i : α} {f : β iβ i} (h : imp) :
                            mp.modify i f = mp
                            theorem Std.ExtDHashMap.toList_insert_perm_cons_of_notMem {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] {i : α} {x : β i} (h : imp) :
                            (mp.insert i x).toList.Perm (i, x :: mp.toList)
                            @[simp]
                            theorem Std.ExtDHashMap.nodup_keys {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] :
                            @[simp]
                            theorem Std.ExtDHashMap.sortedLT_keys {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] :
                            theorem Std.ExtDHashMap.union_def {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp₁ mp₂ : ExtDHashMap α β} :
                            mp₁ mp₂ = mp₁.union mp₂
                            @[simp]
                            theorem Std.ExtDHashMap.get?_out_mk {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : DHashMap α β} :
                            @[simp]
                            theorem Std.ExtDHashMap.empty_union {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} :
                            mp = mp
                            @[simp]
                            theorem Std.ExtDHashMap.union_empty {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} :
                            mp = mp
                            theorem Std.ExtDHashMap.toList_insert_of_not_mem {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m : ExtDHashMap α β} [ha : LinearOrder α] {i : α} {x : β i} (h : im) :
                            (m.insert i x).toList = (i, x :: m.toList).mergeSort fun (x1 x2 : (i : α) × β i) => decide (x1.fst x2.fst)
                            theorem Std.ExtDHashMap.keys_insert_of_not_mem {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m : ExtDHashMap α β} [ha : LinearOrder α] {i : α} {x : β i} (h : im) :
                            (m.insert i x).keys = (i :: m.keys).mergeSort fun (a b : α) => decide (a b)
                            @[simp]
                            theorem Std.ExtDHashMap.get?_out_inner {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m : ExtDHashMap α β} {i : α} :
                            m.inner.out.get? i = m.get? i
                            @[simp]
                            theorem Std.ExtDHashMap.get?_mk {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m : Quotient (DHashMap.isSetoid α β)} {i : α} :
                            { inner := m }.get? i = m.out.get? i
                            @[simp]
                            theorem Std.ExtDHashMap.insert_mk {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m : Quotient (DHashMap.isSetoid α β)} {i : α} {x : β i} :
                            { inner := m }.insert i x = { inner := m.out.insert i x }
                            @[simp]
                            theorem Std.ExtDHashMap.erase_mk {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m : Quotient (DHashMap.isSetoid α β)} {i : α} :
                            { inner := m }.erase i = { inner := m.out.erase i }
                            @[simp]
                            theorem Std.ExtDHashMap.insert_erase_eq_self_iff {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m : ExtDHashMap α β} {i : α} {x : β i} :
                            (m.erase i).insert i x = m m.get? i = some x
                            @[simp]
                            theorem Std.ExtDHashMap.keys_eq_keys_iff {α : Type u_1} {β : αType u_2} {γ : αType u_3} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : LinearOrder α] {m₁ : ExtDHashMap α β} {m₂ : ExtDHashMap α γ} :
                            m₁.keys = m₂.keys ∀ (i : α), i m₁ i m₂
                            theorem Std.ExtDHashMap.toList_ofList {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : LinearOrder α] {xs : List ((i : α) × β i)} (h : (List.map (fun (x : (i : α) × β i) => x.fst) xs).Nodup) :
                            (ofList xs).toList = xs.mergeSort fun (x1 x2 : (i : α) × β i) => decide (x1.fst x2.fst)
                            theorem Std.ExtDHashMap.union_eq_union_iff_right {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {m m₁ m₂ : ExtDHashMap α β} (h₁ : im, im₁) (h₂ : im, im₂) :
                            m m₁ = m m₂ m₁ = m₂
                            theorem Std.ExtDHashMap.get?_eq_some_iff_mem_toList {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {mp : ExtDHashMap α β} [ha : LinearOrder α] {i : α} {x : β i} :
                            mp.get? i = some x i, x mp.toList
                            theorem Std.ExtDHashMap.toList_ofList_subset {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : LinearOrder α] {xs : List ((i : α) × β i)} :
                            (ofList xs).toList xs
                            theorem Std.ExtDHashMap.mem_of_mem_toList_ofList {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] [ha : LinearOrder α] {xs : List ((i : α) × β i)} {p : (i : α) × β i} (h : p (ofList xs).toList) :
                            p xs
                            theorem Std.ExtDHashMap.mem_of_get?_ofList {α : Type u_1} {β : αType u_2} [hh₁ : DecidableEq α] [hh₂ : Hashable α] {xs : List ((i : α) × β i)} {i : α} {x : β i} (h : (ofList xs).get? i = some x) :
                            i, x xs