- Node: {α : Type u} → {β : Type v} → Option β → (Lean.RBNode α fun (x : α) => Lean.PrefixTreeNode α β) → Lean.PrefixTreeNode α β
Instances For
instance
Lean.instInhabitedPrefixTreeNode
{α : Type u_1}
{β : Type u_2}
:
Inhabited (Lean.PrefixTreeNode α β)
Equations
- Lean.instInhabitedPrefixTreeNode = { default := Lean.PrefixTreeNode.Node none Lean.RBNode.leaf }
Equations
- Lean.PrefixTreeNode.empty = Lean.PrefixTreeNode.Node none Lean.RBNode.leaf
Instances For
@[specialize #[]]
def
Lean.PrefixTreeNode.insert
{α : Type u_1}
{β : Type u_2}
(t : Lean.PrefixTreeNode α β)
(cmp : α → α → Ordering)
(k : List α)
(val : β)
:
Equations
- t.insert cmp k val = Lean.PrefixTreeNode.insert.loop cmp val t k
Instances For
partial def
Lean.PrefixTreeNode.insert.insertEmpty
{α : Type u_1}
{β : Type u_2}
(val : β)
(k : List α)
:
partial def
Lean.PrefixTreeNode.insert.loop
{α : Type u_1}
{β : Type u_2}
(cmp : α → α → Ordering)
(val : β)
:
Lean.PrefixTreeNode α β → List α → Lean.PrefixTreeNode α β
@[specialize #[]]
def
Lean.PrefixTreeNode.find?
{α : Type u_1}
{β : Type u_2}
(t : Lean.PrefixTreeNode α β)
(cmp : α → α → Ordering)
(k : List α)
:
Option β
Equations
- t.find? cmp k = Lean.PrefixTreeNode.find?.loop cmp t k
Instances For
partial def
Lean.PrefixTreeNode.find?.loop
{α : Type u_1}
{β : Type u_2}
(cmp : α → α → Ordering)
:
Lean.PrefixTreeNode α β → List α → Option β
@[specialize #[]]
def
Lean.PrefixTreeNode.foldMatchingM
{m : Type u_1 → Type u_2}
{α : Type u_3}
{β : Type u_4}
{σ : Type u_1}
[Monad m]
(t : Lean.PrefixTreeNode α β)
(cmp : α → α → Ordering)
(k : List α)
(init : σ)
(f : β → σ → m σ)
:
m σ
Equations
- t.foldMatchingM cmp k init f = Lean.PrefixTreeNode.foldMatchingM.find cmp init f k t init
Instances For
partial def
Lean.PrefixTreeNode.foldMatchingM.fold
{m : Type u_1 → Type u_2}
{α : Type u_3}
{β : Type u_4}
{σ : Type u_1}
[Monad m]
(f : β → σ → m σ)
:
Lean.PrefixTreeNode α β → σ → m σ
inductive
Lean.PrefixTreeNode.WellFormed
{α : Type u_1}
(cmp : α → α → Ordering)
{β : Type u_2}
:
Lean.PrefixTreeNode α β → Prop
- emptyWff: ∀ {α : Type u_1} {cmp : α → α → Ordering} {x : Type u_2}, Lean.PrefixTreeNode.WellFormed cmp Lean.PrefixTreeNode.empty
- insertWff: ∀ {α : Type u_1} {cmp : α → α → Ordering} {x : Type u_2} {t : Lean.PrefixTreeNode α x} {k : List α} {val : x}, Lean.PrefixTreeNode.WellFormed cmp t → Lean.PrefixTreeNode.WellFormed cmp (t.insert cmp k val)
Instances For
Equations
- Lean.PrefixTree α β cmp = { t : Lean.PrefixTreeNode α β // Lean.PrefixTreeNode.WellFormed cmp t }
Instances For
def
Lean.PrefixTree.empty
{α : Type u_1}
{β : Type u_2}
{p : α → α → Ordering}
:
Lean.PrefixTree α β p
Equations
- Lean.PrefixTree.empty = ⟨Lean.PrefixTreeNode.empty, ⋯⟩
Instances For
instance
Lean.instInhabitedPrefixTree
{α : Type u_1}
{β : Type u_2}
{p : α → α → Ordering}
:
Inhabited (Lean.PrefixTree α β p)
Equations
- Lean.instInhabitedPrefixTree = { default := Lean.PrefixTree.empty }
instance
Lean.instEmptyCollectionPrefixTree
{α : Type u_1}
{β : Type u_2}
{p : α → α → Ordering}
:
EmptyCollection (Lean.PrefixTree α β p)
Equations
- Lean.instEmptyCollectionPrefixTree = { emptyCollection := Lean.PrefixTree.empty }
@[inline]
def
Lean.PrefixTree.insert
{α : Type u_1}
{β : Type u_2}
{p : α → α → Ordering}
(t : Lean.PrefixTree α β p)
(k : List α)
(v : β)
:
Lean.PrefixTree α β p
Equations
- t.insert k v = ⟨t.val.insert p k v, ⋯⟩
Instances For
@[inline]
def
Lean.PrefixTree.find?
{α : Type u_1}
{β : Type u_2}
{p : α → α → Ordering}
(t : Lean.PrefixTree α β p)
(k : List α)
:
Option β
Equations
- t.find? k = t.val.find? p k
Instances For
@[inline]
def
Lean.PrefixTree.foldMatchingM
{m : Type u_1 → Type u_2}
{α : Type u_3}
{β : Type u_4}
{p : α → α → Ordering}
{σ : Type u_1}
[Monad m]
(t : Lean.PrefixTree α β p)
(k : List α)
(init : σ)
(f : β → σ → m σ)
:
m σ
Equations
- t.foldMatchingM k init f = t.val.foldMatchingM p k init f