Documentation

Lean.ProjFns

Given a structure S, Lean automatically creates an auxiliary definition (projection function) for each field. This structure caches information about these auxiliary definitions.

  • ctorName : Name

    Constructor associated with the auxiliary projection function.

  • numParams : Nat

    Number of parameters in the structure

  • i : Nat

    The field index associated with the auxiliary projection function.

  • fromClass : Bool

    true if the structure is a class.

Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Lean.addProjectionFnInfo (env : Environment) (projName ctorName : Name) (numParams i : Nat) (fromClass : Bool) :
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Equations
        Instances For

          If projName is the name of a projection function, return the associated structure name

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def Lean.isProjectionFn {m : TypeType} [MonadEnv m] [Monad m] (declName : Name) :
            Equations
            Instances For
              Equations
              Instances For

                Auxiliary parent projection created when a parent structure cannot be represented as a subobject (e.g., due to diamond inheritance). Unlike regular projections, these construct the parent value from individual fields rather than extracting a single field. Example: AddMonoid'.toAddZero' when AddZero' cannot be a subobject of AddMonoid'.

                • numParams : Nat

                  Number of parameters in the child structure.

                • fromClass : Bool

                  true if the child structure is a class.

                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    def Lean.addAuxParentProjectionInfo (env : Environment) (projName : Name) (numParams : Nat) (fromClass : Bool) :
                    Equations
                    Instances For
                      Equations
                      Instances For