Documentation

Lean.Data.PersistentArray

inductive Lean.PersistentArrayNode (α : Type u) :
Instances For
Equations
@[reducible, inline]
abbrev Lean.PArray (α : Type u) :
Equations
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • a.isEmpty = (a.size == 0)
@[reducible, inline]
Equations
@[reducible, inline]
Equations
@[reducible, inline]
Equations
partial def Lean.PersistentArray.getAux {α : Type u} [Inhabited α] :
PersistentArrayNode αUSizeUSizeα
def Lean.PersistentArray.get! {α : Type u} [Inhabited α] (t : PersistentArray α) (i : Nat) :
α
Equations
instance Lean.PersistentArray.instGetElemNatLtSizeOfInhabited {α : Type u} [Inhabited α] :
GetElem (PersistentArray α) Nat α fun (as : PersistentArray α) (i : Nat) => i < as.size
Equations
def Lean.PersistentArray.set {α : Type u} (t : PersistentArray α) (i : Nat) (a : α) :
Equations
  • One or more equations did not get rendered due to their size.
@[specialize #[]]
partial def Lean.PersistentArray.modifyAux {α : Type u} [Inhabited α] (f : αα) :
@[specialize #[]]
def Lean.PersistentArray.modify {α : Type u} [Inhabited α] (t : PersistentArray α) (i : Nat) (f : αα) :
Equations
  • One or more equations did not get rendered due to their size.
partial def Lean.PersistentArray.mkNewPath {α : Type u} (shift : USize) (a : Array α) :
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
@[specialize #[]]
def Lean.PersistentArray.foldlM {α : Type u} {m : Type v → Type w} [Monad m] {β : Type v} (t : PersistentArray α) (f : βαm β) (init : β) (start : Nat := 0) :
m β
Equations
  • One or more equations did not get rendered due to their size.
@[specialize #[]]
def Lean.PersistentArray.foldrM {α : Type u} {m : Type v → Type w} {β : Type v} [Monad m] (t : PersistentArray α) (f : αβm β) (init : β) :
m β
Equations
@[specialize #[]]
partial def Lean.PersistentArray.forInAux {α : Type u} {β : Type v} {m : Type v → Type w} [Monad m] [inh : Inhabited β] (f : αβm (ForInStep β)) (n : PersistentArrayNode α) (b : β) :
m (ForInStep β)
@[specialize #[]]
def Lean.PersistentArray.forIn {α : Type u} {m : Type v → Type w} [Monad m] {β : Type v} (t : PersistentArray α) (init : β) (f : αβm (ForInStep β)) :
m β
Equations
  • One or more equations did not get rendered due to their size.
instance Lean.PersistentArray.instForIn {α : Type u} {m : Type v → Type w} :
Equations
@[specialize #[]]
partial def Lean.PersistentArray.findSomeMAux {α : Type u} {m : Type v → Type w} [Monad m] {β : Type v} (f : αm (Option β)) :
@[specialize #[]]
def Lean.PersistentArray.findSomeM? {α : Type u} {m : Type v → Type w} [Monad m] {β : Type v} (t : PersistentArray α) (f : αm (Option β)) :
m (Option β)
Equations
@[specialize #[]]
partial def Lean.PersistentArray.findSomeRevMAux {α : Type u} {m : Type v → Type w} [Monad m] {β : Type v} (f : αm (Option β)) :
@[specialize #[]]
def Lean.PersistentArray.findSomeRevM? {α : Type u} {m : Type v → Type w} [Monad m] {β : Type v} (t : PersistentArray α) (f : αm (Option β)) :
m (Option β)
Equations
@[specialize #[]]
partial def Lean.PersistentArray.forMAux {α : Type u} {m : Type v → Type w} [Monad m] (f : αm PUnit) :
@[specialize #[]]
def Lean.PersistentArray.forM {α : Type u} {m : Type v → Type w} [Monad m] (t : PersistentArray α) (f : αm PUnit) :
Equations
@[inline]
def Lean.PersistentArray.foldl {α : Type u} {β : Type u_1} (t : PersistentArray α) (f : βαβ) (init : β) (start : Nat := 0) :
β
Equations
  • t.foldl f init start = (t.foldlM f init start).run
@[inline]
def Lean.PersistentArray.foldr {α : Type u} {β : Type u_1} (t : PersistentArray α) (f : αββ) (init : β) :
β
Equations
  • t.foldr f init = (t.foldrM f init).run
@[inline]
def Lean.PersistentArray.filter {α : Type u} (as : PersistentArray α) (p : αBool) :
Equations
  • One or more equations did not get rendered due to their size.
Equations
Equations
@[inline]
def Lean.PersistentArray.findSome? {α : Type u} {β : Type u_1} (t : PersistentArray α) (f : αOption β) :
Equations
  • t.findSome? f = (t.findSomeM? f).run
@[inline]
def Lean.PersistentArray.findSomeRev? {α : Type u} {β : Type u_1} (t : PersistentArray α) (f : αOption β) :
Equations
  • t.findSomeRev? f = (t.findSomeRevM? f).run
Equations
  • t.toList = (t.foldl (fun (xs : List α) (x : α) => x :: xs) []).reverse
@[specialize #[]]
partial def Lean.PersistentArray.anyMAux {α : Type u} {m : TypeType w} [Monad m] (p : αm Bool) :
@[specialize #[]]
def Lean.PersistentArray.anyM {α : Type u} {m : TypeType w} [Monad m] (t : PersistentArray α) (p : αm Bool) :
Equations
@[inline]
def Lean.PersistentArray.allM {α : Type u} {m : TypeType w} [Monad m] (a : PersistentArray α) (p : αm Bool) :
Equations
  • a.allM p = do let ba.anyM fun (v : α) => do let bp v pure !b pure !b
@[inline]
def Lean.PersistentArray.any {α : Type u} (a : PersistentArray α) (p : αBool) :
Equations
  • a.any p = (a.anyM p).run
@[inline]
def Lean.PersistentArray.all {α : Type u} (a : PersistentArray α) (p : αBool) :
Equations
  • a.all p = !a.any fun (v : α) => !p v
@[specialize #[]]
partial def Lean.PersistentArray.mapMAux {α : Type u} {m : Type u → Type v} [Monad m] {β : Type u} (f : αm β) :
@[specialize #[]]
def Lean.PersistentArray.mapM {α : Type u} {m : Type u → Type v} [Monad m] {β : Type u} (f : αm β) (t : PersistentArray α) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Lean.PersistentArray.map {α β : Type u} (f : αβ) (t : PersistentArray α) :
Equations
Equations
Equations
def Lean.mkPersistentArray {α : Type u} (n : Nat) (v : α) :
Equations
@[inline]
def Lean.mkPArray {α : Type u} (n : Nat) (v : α) :
Equations
def List.toPArray' {α : Type u} (xs : List α) :
Equations
  • One or more equations did not get rendered due to their size.
Equations
def Array.toPArray' {α : Type u} (xs : Array α) :
Equations