Documentation

Lean.Elab.PreDefinition.Basic

A (potentially recursive) definition. The elaborator converts it into Kernel definitions using many different strategies.

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

        Applies Lean.instantiateMVars to the types of values of each predefinition.

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

          Applies Lean.Elab.Term.levelMVarToParam to the types of each predefinition.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def Lean.Elab.fixLevelParams (preDefs : Array PreDefinition) (scopeLevelNames allUserLevelNames : List Name) :
            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

                Applies Meta.letToHave to the values of defs, instances, and abbrevs. Does not apply the transformation to values that are proofs, or to unsafe definitions.

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

                  Applies Meta.letToHave to the type of the predef.

                  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

                      Auxiliary method for (temporarily) adding pre definition as an axiom

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

                        Adds the docstring, if relevant.

                        This should be done just after compilation so the predefinition can be executed in examples in its docstring. If code generation will not occur, then it should be done after adding the declaration to the environment.

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

                          Adds constant info to the definition name. This should occur after executing post-compilation attributes, in case they have an effect on hovers.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def Lean.Elab.addAndCompileNonRec (docCtx : LocalContext × LocalInstances) (preDef : PreDefinition) (all : List Name := [preDef.declName]) (cleanupValue : Bool := false) :
                            Equations
                            Instances For
                              def Lean.Elab.addNonRec (docCtx : LocalContext × LocalInstances) (preDef : PreDefinition) (applyAttrAfterCompilation : Bool := true) (all : List Name := [preDef.declName]) (cacheProofs : Bool := true) (cleanupValue : Bool := false) :
                              Equations
                              Instances For

                                Eliminate recursive application annotations containing syntax. These annotations are used by the well-founded recursion module to produce better error messages.

                                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
                                        def Lean.Elab.ensureNoRecFn (recFnNames : Array Name) (e : Expr) :
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For

                                          Checks that all codomains have the same level, throws an error otherwise.

                                          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