inductive
Lean.PersistentHashMap.Entry
(α : Type u)
(β : Type v)
(σ : Type w)
:
Type (max (max u v) w)
- entry: {α : Type u} → {β : Type v} → {σ : Type w} → α → β → Lean.PersistentHashMap.Entry α β σ
- ref: {α : Type u} → {β : Type v} → {σ : Type w} → σ → Lean.PersistentHashMap.Entry α β σ
- null: {α : Type u} → {β : Type v} → {σ : Type w} → Lean.PersistentHashMap.Entry α β σ
Instances For
- entries: {α : Type u} → {β : Type v} → Array (Lean.PersistentHashMap.Entry α β (Lean.PersistentHashMap.Node α β)) → Lean.PersistentHashMap.Node α β
- collision: {α : Type u} → {β : Type v} → (ks : Array α) → (vs : Array β) → Array.size ks = Array.size vs → Lean.PersistentHashMap.Node α β
Instances For
Instances For
- root : Lean.PersistentHashMap.Node α β
- size : Nat
Instances For
Instances For
def
Lean.PersistentHashMap.isEmpty
{α : Type u_1}
{β : Type u_2}
[BEq α]
[Hashable α]
(m : Lean.PersistentHashMap α β)
:
Instances For
instance
Lean.PersistentHashMap.instInhabitedPersistentHashMap
{α : Type u_1}
{β : Type u_2}
[BEq α]
[Hashable α]
:
Instances For
@[inline, reducible]
Instances For
@[inline, reducible]
Instances For
@[inline, reducible]
Instances For
- mk: ∀ {α : Type u_1} {β : Type u_2} (keys : Array α) (vals : Array β) (h : Array.size keys = Array.size vals), Lean.PersistentHashMap.IsCollisionNode (Lean.PersistentHashMap.Node.collision keys vals h)
Instances For
@[inline, reducible]
Instances For
- mk: ∀ {α : Type u_1} {β : Type u_2} (entries : Array (Lean.PersistentHashMap.Entry α β (Lean.PersistentHashMap.Node α β))), Lean.PersistentHashMap.IsEntriesNode (Lean.PersistentHashMap.Node.entries entries)
Instances For
@[inline, reducible]
Instances For
partial def
Lean.PersistentHashMap.insertAtCollisionNodeAux
{α : Type u_1}
{β : Type u_2}
[BEq α]
:
Lean.PersistentHashMap.CollisionNode α β → Nat → α → β → Lean.PersistentHashMap.CollisionNode α β
def
Lean.PersistentHashMap.insertAtCollisionNode
{α : Type u_1}
{β : Type u_2}
[BEq α]
:
Lean.PersistentHashMap.CollisionNode α β → α → β → Lean.PersistentHashMap.CollisionNode α β
Instances For
Instances For
def
Lean.PersistentHashMap.mkCollisionNode
{α : Type u_1}
{β : Type u_2}
(k₁ : α)
(v₁ : β)
(k₂ : α)
(v₂ : β)
:
Instances For
partial def
Lean.PersistentHashMap.insertAux
{α : Type u_1}
{β : Type u_2}
[BEq α]
[Hashable α]
:
Lean.PersistentHashMap.Node α β → USize → USize → α → β → Lean.PersistentHashMap.Node α β
partial def
Lean.PersistentHashMap.insertAux.traverse
{α : Type u_1}
{β : Type u_2}
[BEq α]
[Hashable α]
(depth : USize)
(keys : Array α)
(vals : Array β)
(heq : Array.size keys = Array.size vals)
(i : Nat)
(entries : Lean.PersistentHashMap.Node α β)
:
def
Lean.PersistentHashMap.insert
{α : Type u_1}
{β : Type u_2}
:
{x : BEq α} → {x_1 : Hashable α} → Lean.PersistentHashMap α β → α → β → Lean.PersistentHashMap α β
Instances For
partial def
Lean.PersistentHashMap.findAtAux
{α : Type u_1}
{β : Type u_2}
[BEq α]
(keys : Array α)
(vals : Array β)
(heq : Array.size keys = Array.size vals)
(i : Nat)
(k : α)
:
Option β
partial def
Lean.PersistentHashMap.findAux
{α : Type u_1}
{β : Type u_2}
[BEq α]
:
Lean.PersistentHashMap.Node α β → USize → α → Option β
def
Lean.PersistentHashMap.find?
{α : Type u_1}
{β : Type u_2}
:
{x : BEq α} → {x_1 : Hashable α} → Lean.PersistentHashMap α β → α → Option β
Instances For
instance
Lean.PersistentHashMap.instGetElemPersistentHashMapOptionTrue
{α : Type u_1}
{β : Type u_2}
:
@[inline]
def
Lean.PersistentHashMap.findD
{α : Type u_1}
{β : Type u_2}
:
{x : BEq α} → {x_1 : Hashable α} → Lean.PersistentHashMap α β → α → β → β
Instances For
@[inline]
def
Lean.PersistentHashMap.find!
{α : Type u_1}
{β : Type u_2}
:
{x : BEq α} → {x_1 : Hashable α} → [inst : Inhabited β] → Lean.PersistentHashMap α β → α → β
Instances For
partial def
Lean.PersistentHashMap.findEntryAtAux
{α : Type u_1}
{β : Type u_2}
[BEq α]
(keys : Array α)
(vals : Array β)
(heq : Array.size keys = Array.size vals)
(i : Nat)
(k : α)
:
partial def
Lean.PersistentHashMap.findEntryAux
{α : Type u_1}
{β : Type u_2}
[BEq α]
:
Lean.PersistentHashMap.Node α β → USize → α → Option (α × β)
def
Lean.PersistentHashMap.findEntry?
{α : Type u_1}
{β : Type u_2}
:
{x : BEq α} → {x_1 : Hashable α} → Lean.PersistentHashMap α β → α → Option (α × β)
Instances For
partial def
Lean.PersistentHashMap.containsAtAux
{α : Type u_1}
{β : Type u_2}
[BEq α]
(keys : Array α)
(vals : Array β)
(heq : Array.size keys = Array.size vals)
(i : Nat)
(k : α)
:
partial def
Lean.PersistentHashMap.containsAux
{α : Type u_1}
{β : Type u_2}
[BEq α]
:
Lean.PersistentHashMap.Node α β → USize → α → Bool
def
Lean.PersistentHashMap.contains
{α : Type u_1}
{β : Type u_2}
[BEq α]
[Hashable α]
:
Lean.PersistentHashMap α β → α → Bool
Instances For
partial def
Lean.PersistentHashMap.isUnaryEntries
{α : Type u_1}
{β : Type u_2}
(a : Array (Lean.PersistentHashMap.Entry α β (Lean.PersistentHashMap.Node α β)))
(i : Nat)
(acc : Option (α × β))
:
def
Lean.PersistentHashMap.isUnaryNode
{α : Type u_1}
{β : Type u_2}
:
Lean.PersistentHashMap.Node α β → Option (α × β)
Instances For
partial def
Lean.PersistentHashMap.eraseAux
{α : Type u_1}
{β : Type u_2}
[BEq α]
:
Lean.PersistentHashMap.Node α β → USize → α → Lean.PersistentHashMap.Node α β × Bool
def
Lean.PersistentHashMap.erase
{α : Type u_1}
{β : Type u_2}
:
{x : BEq α} → {x_1 : Hashable α} → Lean.PersistentHashMap α β → α → Lean.PersistentHashMap α β
Instances For
partial def
Lean.PersistentHashMap.foldlMAux
{m : Type w → Type w'}
[Monad m]
{σ : Type w}
{α : Type u_1}
{β : Type u_2}
(f : σ → α → β → m σ)
:
Lean.PersistentHashMap.Node α β → σ → m σ
partial def
Lean.PersistentHashMap.foldlMAux.traverse
{m : Type w → Type w'}
[Monad m]
{σ : Type w}
{α : Type u_1}
{β : Type u_2}
(f : σ → α → β → m σ)
(keys : Array α)
(vals : Array β)
(heq : Array.size keys = Array.size vals)
(i : Nat)
(acc : σ)
:
m σ
def
Lean.PersistentHashMap.foldl
{σ : Type w}
{α : Type u_1}
{β : Type u_2}
:
{x : BEq α} → {x_1 : Hashable α} → Lean.PersistentHashMap α β → (σ → α → β → σ) → σ → σ
Instances For
partial def
Lean.PersistentHashMap.mapMAux
{α : Type u}
{β : Type v}
{σ : Type u}
{m : Type u → Type w}
[Monad m]
(f : β → m σ)
(n : Lean.PersistentHashMap.Node α β)
:
m (Lean.PersistentHashMap.Node α σ)
def
Lean.PersistentHashMap.mapM
{α : Type u}
{β : Type v}
{σ : Type u}
{m : Type u → Type w}
[Monad m]
:
{x : BEq α} → {x_1 : Hashable α} → Lean.PersistentHashMap α β → (β → m σ) → m (Lean.PersistentHashMap α σ)
Instances For
def
Lean.PersistentHashMap.map
{α : Type u}
{β : Type v}
{σ : Type u}
:
{x : BEq α} → {x_1 : Hashable α} → Lean.PersistentHashMap α β → (β → σ) → Lean.PersistentHashMap α σ
Instances For
def
Lean.PersistentHashMap.toList
{α : Type u_1}
{β : Type u_2}
:
{x : BEq α} → {x_1 : Hashable α} → Lean.PersistentHashMap α β → List (α × β)
Instances For
def
Lean.PersistentHashMap.stats
{α : Type u_1}
{β : Type u_2}
:
{x : BEq α} → {x_1 : Hashable α} → Lean.PersistentHashMap α β → Lean.PersistentHashMap.Stats