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 operations on Raw₀
Internal implementation detail of the hash map
Equations
- Std.DHashMap.Internal.Raw₀.tacticWf_trivial = Lean.ParserDescr.node `Std.DHashMap.Internal.Raw₀.tacticWf_trivial 1024 (Lean.ParserDescr.nonReservedSymbol "wf_trivial" false)
Instances For
Internal implementation detail of the hash map
Equations
- Std.DHashMap.Internal.Raw₀.tacticEmpty = Lean.ParserDescr.node `Std.DHashMap.Internal.Raw₀.tacticEmpty 1024 (Lean.ParserDescr.nonReservedSymbol "empty" false)
Instances For
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.Raw₀.contains_insertIfNew_self
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{k : α}
{v : β k}
:
theorem
Std.DHashMap.Internal.Raw₀.contains_of_contains_insertIfNew'
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{k a : α}
{v : β k}
:
This is a restatement of contains_of_contains_insertIfNew
that is written to exactly match the proof
obligation in the statement of get_insertIfNew
.
theorem
Std.DHashMap.Internal.Raw₀.Const.get_insertIfNew
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{k a : α}
{v : β}
{h₁ : (m.insertIfNew k v).contains a = true}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getD_insertIfNew
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{k a : α}
{fallback v : β}
:
theorem
Std.DHashMap.Internal.Raw₀.getKey_insertIfNew
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{k a : α}
{v : β k}
{h₁ : (m.insertIfNew k v).contains a = true}
:
theorem
Std.DHashMap.Internal.Raw₀.getKeyD_insertIfNew
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{k a fallback : α}
{v : β k}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.get?_eq_some_iff_exists_beq_and_mem_toList
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{k : α}
{v : β}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.find?_toList_eq_some_iff_getKey?_eq_some_and_get?_eq_some
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{k k' : α}
{v : β}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.find?_toList_eq_none_iff_contains_eq_false
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{k : α}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.mem_toList_iff_getKey?_eq_some_and_get?_eq_some
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{k : α}
{v : β}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.distinct_keys_toList
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
:
List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) (Raw.Const.toList m.val)
theorem
Std.DHashMap.Internal.Raw₀.foldM_eq_foldlM_toList
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
{δ : Type w}
{m' : Type w → Type w}
[Monad m']
[LawfulMonad m']
{f : δ → (a : α) → β a → m' δ}
{init : δ}
:
theorem
Std.DHashMap.Internal.Raw₀.foldRevM_eq_foldrM_toList
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
{δ : Type w}
{m' : Type w → Type w}
[Monad m']
[LawfulMonad m']
{f : δ → (a : α) → β a → m' δ}
{init : δ}
:
Raw.foldRevM f init m.val = List.foldrM (fun (a : (a : α) × β a) (b : δ) => f b a.fst a.snd) init m.val.toList
theorem
Std.DHashMap.Internal.Raw₀.foldRev_eq_foldr_toList
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
{δ : Type w}
{f : δ → (a : α) → β a → δ}
{init : δ}
:
Raw.foldRev f init m.val = List.foldr (fun (a : (a : α) × β a) (b : δ) => f b a.fst a.snd) init m.val.toList
theorem
Std.DHashMap.Internal.Raw₀.forIn_eq_forIn_toList
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
{δ : Type w}
{m' : Type w → Type w}
[Monad m']
[LawfulMonad m']
{f : (a : α) → β a → δ → m' (ForInStep δ)}
{init : δ}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.foldM_eq_foldlM_toList
{α : Type u}
{δ : Type w}
{m' : Type w → Type w}
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[Monad m']
[LawfulMonad m']
{f : δ → α → β → m' δ}
{init : δ}
:
Raw.foldM f init m.val = List.foldlM (fun (a : δ) (b : α × β) => f a b.fst b.snd) init (Raw.Const.toList m.val)
theorem
Std.DHashMap.Internal.Raw₀.Const.fold_eq_foldl_toList
{α : Type u}
{δ : Type w}
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
{f : δ → α → β → δ}
{init : δ}
:
Raw.fold f init m.val = List.foldl (fun (a : δ) (b : α × β) => f a b.fst b.snd) init (Raw.Const.toList m.val)
theorem
Std.DHashMap.Internal.Raw₀.Const.foldRevM_eq_foldrM_toList
{α : Type u}
{δ : Type w}
{m' : Type w → Type w}
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[Monad m']
[LawfulMonad m']
{f : δ → α → β → m' δ}
{init : δ}
:
Raw.foldRevM f init m.val = List.foldrM (fun (a : α × β) (b : δ) => f b a.fst a.snd) init (Raw.Const.toList m.val)
theorem
Std.DHashMap.Internal.Raw₀.Const.foldRev_eq_foldr_toList
{α : Type u}
{δ : Type w}
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
{f : δ → α → β → δ}
{init : δ}
:
Raw.foldRev f init m.val = List.foldr (fun (a : α × β) (b : δ) => f b a.fst a.snd) init (Raw.Const.toList m.val)
theorem
Std.DHashMap.Internal.Raw₀.Const.forIn_eq_forIn_toList
{α : Type u}
{δ : Type w}
{m' : Type w → Type w}
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[Monad m']
[LawfulMonad m']
{f : α → β → δ → m' (ForInStep δ)}
{init : δ}
:
Raw.forIn f init m.val = ForIn.forIn (Raw.Const.toList m.val) init fun (a : α × β) (b : δ) => f a.fst a.snd b
theorem
Std.DHashMap.Internal.Raw₀.Const.foldRevM_eq_foldrM_keys
{α : Type u}
{δ : Type w}
{m' : Type w → Type w}
(m : Raw₀ α fun (x : α) => Unit)
[Monad m']
[LawfulMonad m']
{f : δ → α → m' δ}
{init : δ}
:
Raw.foldRevM (fun (d : δ) (a : α) (x : Unit) => f d a) init m.val = List.foldrM (fun (a : α) (b : δ) => f b a) init m.val.keys
theorem
Std.DHashMap.Internal.Raw₀.Const.foldRev_eq_foldr_keys
{α : Type u}
{δ : Type w}
(m : Raw₀ α fun (x : α) => Unit)
{f : δ → α → δ}
{init : δ}
:
Raw.foldRev (fun (d : δ) (a : α) (x : Unit) => f d a) init m.val = List.foldr (fun (a : α) (b : δ) => f b a) init m.val.keys
theorem
Std.DHashMap.Internal.Raw₀.Const.forIn_eq_forIn_keys
{α : Type u}
{δ : Type w}
{m' : Type w → Type w}
(m : Raw₀ α fun (x : α) => Unit)
[Monad m']
[LawfulMonad m']
{f : α → δ → m' (ForInStep δ)}
{init : δ}
:
@[simp]
theorem
Std.DHashMap.Internal.Raw₀.get?_insertMany_list_of_mem
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[LawfulBEq α]
(h : m.val.WF)
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β k}
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : ⟨k, v⟩ ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.get_insertMany_list_of_contains_eq_false
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[LawfulBEq α]
(h : m.val.WF)
{l : List ((a : α) × β a)}
{k : α}
(contains : (List.map Sigma.fst l).contains k = false)
{h' : (m.insertMany l).val.contains k = true}
:
theorem
Std.DHashMap.Internal.Raw₀.get_insertMany_list_of_mem
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[LawfulBEq α]
(h : m.val.WF)
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β k}
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : ⟨k, v⟩ ∈ l)
{h' : (m.insertMany l).val.contains k' = true}
:
theorem
Std.DHashMap.Internal.Raw₀.get!_insertMany_list_of_mem
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[LawfulBEq α]
(h : m.val.WF)
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β k}
[Inhabited (β k')]
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : ⟨k, v⟩ ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.getD_insertMany_list_of_mem
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[LawfulBEq α]
(h : m.val.WF)
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β k}
{fallback : β k'}
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : ⟨k, v⟩ ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.getKey?_insertMany_list_of_mem
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Sigma.fst l)
:
theorem
Std.DHashMap.Internal.Raw₀.getKey_insertMany_list_of_contains_eq_false
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List ((a : α) × β a)}
{k : α}
(h₁ : (List.map Sigma.fst l).contains k = false)
{h' : (m.insertMany l).val.contains k = true}
:
theorem
Std.DHashMap.Internal.Raw₀.getKey_insertMany_list_of_mem
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Sigma.fst l)
{h' : (m.insertMany l).val.contains k' = true}
:
theorem
Std.DHashMap.Internal.Raw₀.getKey!_insertMany_list_of_mem
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
(h : m.val.WF)
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Sigma.fst l)
:
theorem
Std.DHashMap.Internal.Raw₀.getKeyD_insertMany_list_of_mem
{α : Type u}
{β : α → Type v}
(m : Raw₀ α β)
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List ((a : α) × β a)}
{k k' fallback : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Sigma.fst l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey?_insertMany_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Prod.fst l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey_insertMany_list_of_contains_eq_false
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List (α × β)}
{k : α}
(h₁ : (List.map Prod.fst l).contains k = false)
{h' : (insertMany m l).val.contains k = true}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey_insertMany_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Prod.fst l)
{h' : (insertMany m l).val.contains k' = true}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey!_insertMany_list_of_contains_eq_false
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
(h : m.val.WF)
{l : List (α × β)}
{k : α}
(h' : (List.map Prod.fst l).contains k = false)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey!_insertMany_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
(h : m.val.WF)
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Prod.fst l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKeyD_insertMany_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List (α × β)}
{k k' fallback : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Prod.fst l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.get?_insertMany_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β}
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : (k, v) ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.get_insertMany_list_of_contains_eq_false
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List (α × β)}
{k : α}
(h₁ : (List.map Prod.fst l).contains k = false)
{h' : (insertMany m l).val.contains k = true}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.get_insertMany_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β}
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : (k, v) ∈ l)
{h' : (insertMany m l).val.contains k' = true}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.get!_insertMany_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
[Inhabited β]
(h : m.val.WF)
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β}
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : (k, v) ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getD_insertMany_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
(m : Raw₀ α fun (x : α) => β)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
{v fallback : β}
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : (k, v) ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey_insertManyIfNewUnit_list_of_contains
{α : Type u}
[BEq α]
[Hashable α]
(m : Raw₀ α fun (x : α) => Unit)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List α}
{k : α}
{h' : (insertManyIfNewUnit m l).val.contains k = true}
(contains : m.contains k = true)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey_insertManyIfNewUnit_list_of_contains_eq_false_of_mem
{α : Type u}
[BEq α]
[Hashable α]
(m : Raw₀ α fun (x : α) => Unit)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List α}
{k k' : α}
(k_beq : (k == k') = true)
{h' : (insertManyIfNewUnit m l).val.contains k' = true}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey_insertManyIfNewUnit_list_mem_of_contains
{α : Type u}
[BEq α]
[Hashable α]
(m : Raw₀ α fun (x : α) => Unit)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List α}
{k : α}
(contains : m.contains k = true)
{h' : (insertManyIfNewUnit m l).val.contains k = true}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.size_insertManyIfNewUnit_list
{α : Type u}
[BEq α]
[Hashable α]
(m : Raw₀ α fun (x : α) => Unit)
[EquivBEq α]
[LawfulHashable α]
(h : m.val.WF)
{l : List α}
(distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l)
:
theorem
Std.DHashMap.Internal.Raw₀.get?_insertMany_empty_list_of_mem
{α : Type u}
{β : α → Type v}
[BEq α]
[Hashable α]
[LawfulBEq α]
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β k}
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : ⟨k, v⟩ ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.get_insertMany_empty_list_of_mem
{α : Type u}
{β : α → Type v}
[BEq α]
[Hashable α]
[LawfulBEq α]
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β k}
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : ⟨k, v⟩ ∈ l)
{h : (empty.insertMany l).val.contains k' = true}
:
theorem
Std.DHashMap.Internal.Raw₀.get!_insertMany_empty_list_of_mem
{α : Type u}
{β : α → Type v}
[BEq α]
[Hashable α]
[LawfulBEq α]
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β k}
[Inhabited (β k')]
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : ⟨k, v⟩ ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.getD_insertMany_empty_list_of_mem
{α : Type u}
{β : α → Type v}
[BEq α]
[Hashable α]
[LawfulBEq α]
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β k}
{fallback : β k'}
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : ⟨k, v⟩ ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.getKey?_insertMany_empty_list_of_mem
{α : Type u}
{β : α → Type v}
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Sigma.fst l)
:
theorem
Std.DHashMap.Internal.Raw₀.getKey_insertMany_empty_list_of_mem
{α : Type u}
{β : α → Type v}
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Sigma.fst l)
{h' : (empty.insertMany l).val.contains k' = true}
:
theorem
Std.DHashMap.Internal.Raw₀.getKey!_insertMany_empty_list_of_mem
{α : Type u}
{β : α → Type v}
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
{l : List ((a : α) × β a)}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Sigma.fst l)
:
theorem
Std.DHashMap.Internal.Raw₀.getKeyD_insertMany_empty_list_of_mem
{α : Type u}
{β : α → Type v}
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
{l : List ((a : α) × β a)}
{k k' fallback : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Sigma.fst l)
:
theorem
Std.DHashMap.Internal.Raw₀.size_insertMany_empty_list
{α : Type u}
{β : α → Type v}
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
{l : List ((a : α) × β a)}
(distinct : List.Pairwise (fun (a b : (a : α) × β a) => (a.fst == b.fst) = false) l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.get_insertMany_empty_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
[LawfulBEq α]
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β}
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : (k, v) ∈ l)
{h : (insertMany empty l).val.contains k' = true}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.get!_insertMany_empty_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
[LawfulBEq α]
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
{v : β}
[Inhabited β]
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : (k, v) ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getD_insertMany_empty_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
[LawfulBEq α]
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
{v fallback : β}
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : (k, v) ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey?_insertMany_empty_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
[EquivBEq α]
[LawfulHashable α]
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Prod.fst l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey_insertMany_empty_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
[EquivBEq α]
[LawfulHashable α]
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Prod.fst l)
{h' : (insertMany empty l).val.contains k' = true}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey!_insertMany_empty_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
[EquivBEq α]
[LawfulHashable α]
[Inhabited α]
{l : List (α × β)}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Prod.fst l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKeyD_insertMany_empty_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
[EquivBEq α]
[LawfulHashable α]
{l : List (α × β)}
{k k' fallback : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : α × β) => (a.fst == b.fst) = false) l)
(mem : k ∈ List.map Prod.fst l)
:
@[simp]
theorem
Std.DHashMap.Internal.Raw₀.Const.insertManyIfNewUnit_empty_list_singleton
{α : Type u}
[BEq α]
[Hashable α]
{k : α}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.insertManyIfNewUnit_empty_list_cons
{α : Type u}
[BEq α]
[Hashable α]
{hd : α}
{tl : List α}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.contains_insertManyIfNewUnit_empty_list
{α : Type u}
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k : α}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey?_insertManyIfNewUnit_empty_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l)
(mem : k ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey_insertManyIfNewUnit_empty_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k k' : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l)
(mem : k ∈ l)
{h' : (insertManyIfNewUnit empty l).val.contains k' = true}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.getKeyD_insertManyIfNewUnit_empty_list_of_mem
{α : Type u}
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
{l : List α}
{k k' fallback : α}
(k_beq : (k == k') = true)
(distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l)
(mem : k ∈ l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.size_insertManyIfNewUnit_empty_list
{α : Type u}
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
{l : List α}
(distinct : List.Pairwise (fun (a b : α) => (a == b) = false) l)
:
theorem
Std.DHashMap.Internal.Raw₀.Const.size_insertManyIfNewUnit_empty_list_le
{α : Type u}
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
{l : List α}
:
theorem
Std.DHashMap.Internal.Raw₀.Const.isEmpty_insertManyIfNewUnit_empty_list
{α : Type u}
[BEq α]
[Hashable α]
[EquivBEq α]
[LawfulHashable α]
{l : List α}
:
@[simp]
theorem
Std.DHashMap.Internal.Raw₀.Const.getD_modify
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
[EquivBEq α]
[LawfulHashable α]
(m : Raw₀ α fun (x : α) => β)
(h : m.val.WF)
{k k' : α}
{fallback : β}
{f : β → β}
:
@[simp]
theorem
Std.DHashMap.Internal.Raw₀.Const.getKey?_modify
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
[EquivBEq α]
[LawfulHashable α]
(m : Raw₀ α fun (x : α) => β)
(h : m.val.WF)
{k k' : α}
{f : β → β}
:
@[simp]
theorem
Std.DHashMap.Internal.Raw₀.Const.getKeyD_modify
{α : Type u}
[BEq α]
[Hashable α]
{β : Type v}
[EquivBEq α]
[LawfulHashable α]
(m : Raw₀ α fun (x : α) => β)
(h : m.val.WF)
{k k' fallback : α}
{f : β → β}
: