Equations
- Aesop.time x = do let start ← liftM IO.monoNanosNow let a ← x let stop ← liftM IO.monoNanosNow pure (a, { nanos := stop - start })
Instances For
Equations
- Aesop.time' x = do let start ← liftM IO.monoNanosNow x let stop ← liftM IO.monoNanosNow pure { nanos := stop - start }
Instances For
Equations
- Aesop.HashSet.filter hs p = Lean.HashSet.fold (fun hs a => if p a = true then Lean.HashSet.insert hs a else hs) ∅ hs
Instances For
Equations
- Aesop.PersistentHashSet.toList s = Lean.PersistentHashSet.fold (fun as a => a :: as) [] s
Instances For
Equations
- Aesop.PersistentHashSet.toArray s = Lean.PersistentHashSet.fold (fun as a => Array.push as a) (Array.mkEmpty (Lean.PersistentHashSet.size s)) s
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Aesop.isEmptyTrie x = match x with | Lean.Meta.DiscrTree.Trie.node vs children => Array.isEmpty vs && Array.isEmpty children
Instances For
Remove elements for which p
returns false
from the given DiscrTree
.
The removed elements are monadically folded over using f
and init
, so f
is called once for each removed element and the final state of type σ
is
returned.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Remove elements for which p
returns false
from the given DiscrTree
.
The removed elements are folded over using f
and init
, so f
is called
once for each removed element and the final state of type σ
is returned.
Equations
- Aesop.filterDiscrTree p f init t = Id.run (Aesop.filterDiscrTreeM (fun a => pure { down := p a }) (fun s a => pure (f s a)) init t)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Aesop.SimpTheorems.foldSimpEntriesM.processTheorem f thms s thm = if Lean.PersistentHashSet.contains thms.erased thm.origin = true then pure s else f s (Lean.Meta.SimpEntry.thm thm)
Instances For
Equations
- Aesop.SimpTheorems.foldSimpEntries f init thms = Id.run (Aesop.SimpTheorems.foldSimpEntriesM f init thms)
Instances For
Equations
- Aesop.SimpTheorems.simpEntries thms = Aesop.SimpTheorems.foldSimpEntries (fun s thm => Array.push s thm) #[] thms
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Partition an array of MVarId
s into 'goals' and 'proper mvars'. An MVarId
from the input array ms
is classified as a proper mvar if any of the ms
depend on it, and as a goal otherwise. Additionally, for each goal, we report
the set of mvars that the goal depends on.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
If the input expression e
reduces to f x₁ ... xₙ
via repeated whnf
, this
function returns f
and [x₁, ⋯, xₙ]
. Otherwise it returns e
(unchanged, not
in WHNF!) and []
.