File: .lake/packages/lean4/src/lean/lake/Lake/Util/DRBMap.lean

full_name: Lake.inhabitedOfEmptyCollection
code: instance inhabitedOfEmptyCollection [EmptyCollection α] : Inhabited α 
goal: Inhabited α

full_name: Lake.RBNode.dFind
code: @[specialize] def RBNode.dFind {α : Type u} {β : α → Type v}
(cmp : α → α → Ordering) [h : EqOfCmpWrt α β cmp] : RBNode α β → (k : α) → Option (β k)
  
goal: Lean.RBNode α β → (k : α) → Option (β k)

full_name: Lake.DRBMap
code: /-- A Dependently typed `RBMap`. -/
def DRBMap (α : Type u) (β : α → Type v) (cmp : α → α → Ordering) : Type (max u v) 
goal: Type (max u v)

full_name: Lake.instCoeDRBMapRBMap
code: instance : Coe (DRBMap α (fun _ => β) cmp) (RBMap α β cmp) 
goal: Coe (Lake.DRBMap α (fun x => β) cmp) (Lean.RBMap α β cmp)

full_name: Lake.mkDRBMap
code: @[inline] def mkDRBMap (α : Type u) (β : α → Type v) (cmp : α → α → Ordering) : DRBMap α β cmp 
goal: Lake.DRBMap α β cmp

full_name: Lake.DRBMap.empty
code: @[inline] def DRBMap.empty {α : Type u} {β : α → Type v} {cmp : α → α → Ordering} : DRBMap α β cmp 
goal: Lake.DRBMap α β cmp

full_name: Lake.instEmptyCollectionDRBMap
code: instance (α : Type u) (β : α → Type v) (cmp : α → α → Ordering) : EmptyCollection (DRBMap α β cmp) 
goal: EmptyCollection (Lake.DRBMap α β cmp)

full_name: Lake.DRBMap.depth
code: def depth (f : Nat → Nat → Nat) (t : DRBMap α β cmp) : Nat 
goal: Nat

full_name: Lake.DRBMap.fold
code: @[inline] def fold (f : σ → (k : α) → β k → σ) : (init : σ) → DRBMap α β cmp → σ
  
goal: Lake.DRBMap α β cmp → σ

full_name: Lake.DRBMap.revFold
code: @[inline] def revFold (f : σ → (k : α) → β k → σ) : (init : σ) → DRBMap α β cmp → σ
  
goal: Lake.DRBMap α β cmp → σ

full_name: Lake.DRBMap.foldM
code: @[inline] def foldM [Monad m] (f : σ → (k : α) → β k → m σ) : (init : σ) → DRBMap α β cmp → m σ
  
goal: Lake.DRBMap α β cmp → m σ

full_name: Lake.DRBMap.forM
code: @[inline] def forM [Monad m] (f : (k : α) → β k → m PUnit) (t : DRBMap α β cmp) : m PUnit 
goal: m PUnit

full_name: Lake.DRBMap.forIn
code: @[inline] protected def forIn [Monad m] (t : DRBMap α β cmp) (init : σ) (f : ((k : α) × β k) → σ → m (ForInStep σ)) : m σ 
goal: m σ

full_name: Lake.DRBMap.instForInSigma
code: instance : ForIn m (DRBMap α β cmp) ((k : α) × β k) 
goal: ForIn m (Lake.DRBMap α β cmp) ((k : α) × β k)

full_name: Lake.DRBMap.isEmpty
code: @[inline] def isEmpty : DRBMap α β cmp → Bool
  
goal: Lake.DRBMap α β cmp → Bool

full_name: Lake.DRBMap.toList
code: @[specialize] def toList : DRBMap α β cmp → List ((k : α) × β k)
  
goal: Lake.DRBMap α β cmp → List ((k : α) × β k)

full_name: Lake.DRBMap.min
code: @[inline] protected def min : DRBMap α β cmp → Option ((k : α) × β k)
  
goal: Lake.DRBMap α β cmp → Option ((k : α) × β k)

full_name: Lake.DRBMap.max
code: @[inline] protected def max : DRBMap α β cmp → Option ((k : α) × β k)
  
goal: Lake.DRBMap α β cmp → Option ((k : α) × β k)

full_name: Lake.DRBMap.instReprOfSigma
code: instance [Repr ((k : α) × β k)] : Repr (DRBMap α β cmp) 
goal: Repr (Lake.DRBMap α β cmp)

full_name: Lake.DRBMap.insert
code: @[inline] def insert : DRBMap α β cmp → (k : α) → β k → DRBMap α β cmp
  
goal: Lake.DRBMap α β cmp → (k : α) → β k → Lake.DRBMap α β cmp

full_name: Lake.DRBMap.erase
code: @[inline] def erase : DRBMap α β cmp → α → DRBMap α β cmp
  
goal: Lake.DRBMap α β cmp → α → Lake.DRBMap α β cmp

full_name: Lake.DRBMap.ofList
code: @[specialize] def ofList : List ((k : α) × β k) → DRBMap α β cmp
  
goal: List ((k : α) × β k) → Lake.DRBMap α β cmp

full_name: Lake.DRBMap.findCore?
code: @[inline] def findCore? : DRBMap α β cmp → α → Option ((k : α) × β k)
  
goal: Lake.DRBMap α β cmp → α → Option ((k : α) × β k)

full_name: Lake.DRBMap.find?
code: @[inline] def find? [EqOfCmpWrt α β cmp] : DRBMap α β cmp → (k : α) → Option (β k)
  
goal: Lake.DRBMap α β cmp → (k : α) → Option (β k)

full_name: Lake.DRBMap.findD
code: @[inline] def findD [EqOfCmpWrt α β cmp] (t : DRBMap α β cmp) (k : α) (v₀ : β k) : β k 
goal: β k

full_name: Lake.DRBMap.lowerBound
code: /-- (lowerBound k) retrieves the kv pair of the largest key smaller than or equal to `k`,
    if it exists. -/
@[inline] def lowerBound : DRBMap α β cmp → α → Option ((k : α) × β k)
  
goal: Lake.DRBMap α β cmp → α → Option ((k : α) × β k)

full_name: Lake.DRBMap.contains
code: @[inline] def contains [EqOfCmpWrt α β cmp] (t : DRBMap α β cmp) (k : α) : Bool 
goal: Bool

full_name: Lake.DRBMap.fromList
code: @[inline] def fromList (l : List ((k : α) × β k)) (cmp : α → α → Ordering) : DRBMap α β cmp 
goal: Lake.DRBMap α β cmp

full_name: Lake.DRBMap.all
code: @[inline] def all : DRBMap α β cmp → ((k : α) → β k → Bool) → Bool
  
goal: Lake.DRBMap α β cmp → ((k : α) → β k → Bool) → Bool

full_name: Lake.DRBMap.any
code: @[inline] def any : DRBMap α β cmp → ((k : α) → β k → Bool) → Bool
  
goal: Lake.DRBMap α β cmp → ((k : α) → β k → Bool) → Bool

full_name: Lake.DRBMap.size
code: def size (m : DRBMap α β cmp) : Nat 
goal: Nat

full_name: Lake.DRBMap.maxDepth
code: def maxDepth (t : DRBMap α β cmp) : Nat 
goal: Nat

full_name: Lake.DRBMap.min!
code: @[inline] def min! [Inhabited ((k : α) × β k)] (t : DRBMap α β cmp) : (k : α) × β k 
goal: (k : α) × β k

full_name: Lake.DRBMap.max!
code: @[inline] def max! [Inhabited ((k : α) × β k)] (t : DRBMap α β cmp) : (k : α) × β k 
goal: (k : α) × β k

full_name: Lake.DRBMap.find!
code: @[inline] def find! [EqOfCmpWrt α β cmp] (t : DRBMap α β cmp) (k : α) [Inhabited (β k)] : β k 
goal: β k

full_name: Lake.drbmapOf
code: def drbmapOf {α : Type u} {β : α → Type v} (l : List ((k : α) × (β k))) (cmp : α → α → Ordering) : DRBMap α β cmp 
goal: Lake.DRBMap α β cmp