Documentation

Lean.Data.PersistentArray

Equations
Equations
  • Lean.instInhabitedPersistentArray = { default := { root := default, tail := default, size := default, shift := default, tailOff := default } }
@[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)
Equations
@[reducible, inline]
Equations
@[reducible, inline]
Equations
@[reducible, inline]
Equations
def Lean.PersistentArray.get! {α : Type u} [Inhabited α] (t : Lean.PersistentArray α) (i : Nat) :
α
Equations
Equations
  • Lean.PersistentArray.instGetElemNatLtSizeOfInhabited = { getElem := fun (xs : Lean.PersistentArray α) (i : Nat) (x : i < xs.size) => xs.get! i }
Equations
  • One or more equations did not get rendered due to their size.
@[specialize #[]]
@[specialize #[]]
def Lean.PersistentArray.modify {α : Type u} [Inhabited α] (t : Lean.PersistentArray α) (i : Nat) (f : αα) :
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.
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 : Lean.PersistentArray α) (f : βαm β) (init : β) (start : optParam 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 : Lean.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 : Lean.PersistentArrayNode α) (b : β) :
m (ForInStep β)
@[specialize #[]]
def Lean.PersistentArray.forIn {α : Type u} {m : Type v → Type w} [Monad m] {β : Type v} (t : Lean.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
  • Lean.PersistentArray.instForIn = { forIn := fun {β : Type ?u.20} [Monad m] => Lean.PersistentArray.forIn }
@[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 : Lean.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 : Lean.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 : Lean.PersistentArray α) (f : αm PUnit) :
Equations
@[inline]
def Lean.PersistentArray.foldl {α : Type u} {β : Type u_1} (t : Lean.PersistentArray α) (f : βαβ) (init : β) (start : optParam 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 : Lean.PersistentArray α) (f : αββ) (init : β) :
β
Equations
  • t.foldr f init = (t.foldrM f init).run
@[inline]
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • t.toArray = t.foldl Array.push #[]
Equations
  • t₁.append t₂ = if t₁.isEmpty = true then t₂ else t₂.foldl Lean.PersistentArray.push t₁
Equations
  • Lean.PersistentArray.instAppend = { append := Lean.PersistentArray.append }
@[inline]
def Lean.PersistentArray.findSome? {α : Type u} {β : Type u_1} (t : Lean.PersistentArray α) (f : αOption β) :
Equations
  • t.findSome? f = (t.findSomeM? f).run
@[inline]
def Lean.PersistentArray.findSomeRev? {α : Type u} {β : Type u_1} (t : Lean.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 : Lean.PersistentArray α) (p : αm Bool) :
Equations
@[inline]
def Lean.PersistentArray.allM {α : Type u} {m : TypeType w} [Monad m] (a : Lean.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 : Lean.PersistentArray α) (p : αBool) :
Equations
  • a.any p = (a.anyM p).run
@[inline]
def Lean.PersistentArray.all {α : Type u} (a : Lean.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 : Lean.PersistentArray α) :
Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def Lean.PersistentArray.map {α : Type u} {β : Type u} (f : αβ) (t : Lean.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.
def Array.toPArray' {α : Type u} (xs : Array α) :
Equations