Documentation

Mathlib.Lean.FoldEnvironment

Folding through the environment efficiently #

This file defines foldImportedDecls, a function for efficiently folding through the environment. It splits the environment into parts, each of which is folded over in a separate thread.

We also provide foldCurrFileDecls which loops through the declarations of the current module, without any parallellism.

@[reducible, inline]

An IO.Ref that keeps track of any errors that could have been thrown by act when folding over the constants in the environment.

Equations
Instances For
    @[specialize #[]]
    def Lean.Meta.foldImportedDecls {α : Type} (init : α) (cfg : Config) (act : αNameConstantInfoMetaM α) (constantsPerTask : Nat := 5000) :

    Fold through all imported constants using act. This uses paralellism, with each thread independently folding over a subset of modules. The array of tasks is returned, so this function typically returns before all tasks have finished. The results can then be combined using Array.foldl.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[specialize #[]]
      def Lean.Meta.foldCurrFileDecls {α : Type} (init : α) (cfg : Config) (act : αNameConstantInfoMetaM α) :

      Fold through all constants of the current file using act.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For