Documentation

Lean.Compiler.LCNF.InferType

Type inference for LCNF #

@[reducible, inline]

We use a regular local context to store temporary local declarations created during type inference.

Equations
    Instances For
      Equations
        Instances For
          @[inline]
          def Lean.Compiler.LCNF.InferType.withLocalDecl {α : Type} (binderName : Name) (type : Expr) (binderInfo : BinderInfo) (k : ExprInferTypeM α) :
          Equations
            Instances For
              Equations
                Instances For
                  Equations
                    Instances For
                      Equations
                        Instances For
                          Equations
                            Instances For
                              Equations
                                Instances For
                                  Equations
                                    Instances For
                                      Equations
                                        Instances For
                                          Equations
                                            Instances For
                                              Equations
                                                Instances For
                                                  Equations
                                                    Instances For
                                                      Equations
                                                        Instances For
                                                          def Lean.Compiler.LCNF.mkAuxFunDecl (params : Array Param) (code : Code) (prefixName : Name := `_f) :
                                                          Equations
                                                            Instances For
                                                              def Lean.Compiler.LCNF.mkAuxJpDecl (params : Array Param) (code : Code) (prefixName : Name := `_jp) :
                                                              Equations
                                                                Instances For
                                                                  def Lean.Compiler.LCNF.mkAuxJpDecl' (param : Param) (code : Code) (prefixName : Name := `_jp) :
                                                                  Equations
                                                                    Instances For

                                                                      Return true if type should be erased. See item 1 in the note above where x ◾ ◾ is a proposition and should be erased when the universe level parameter is set to 0.

                                                                      Remark: predVars is a bitmask that indicates whether de-bruijn variables are predicates or not. That is, #i is a predicate if predVars[predVars.size - i - 1] = true

                                                                      Equations
                                                                        Instances For

                                                                          Return true if the given LCNF are equivalent. List Nat and (fun x => List x) Nat are both equivalent.