Documentation

Batteries.Lean.Expr

Additional operations on Expr and related types #

This file defines basic operations on the types expr, name, declaration, level, environment.

This file is mostly for non-tactics.

Converts an Expr into a Syntax, by creating a fresh metavariable assigned to the expr and returning a named metavariable syntax ?a.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[reducible, inline, deprecated]

    Count the number of lambdas at the head of the given expression.

    Equations
    Instances For

      Returns the number of leading binders of an expression. Ignores metadata.

      Equations
      Instances For
        @[inline]
        def Lean.Expr.withApp' {α : Sort u_1} (e : Lean.Expr) (k : Lean.ExprArray Lean.Exprα) :
        α

        Like withApp but ignores metadata.

        Equations
        Instances For
          @[specialize #[]]
          def Lean.Expr.withApp'.go {α : Sort u_1} (k : Lean.ExprArray Lean.Exprα) :
          Lean.ExprArray Lean.ExprNatα

          Auxiliary definition for withApp'.

          Equations
          Instances For
            @[inline]

            Like getAppArgs but ignores metadata.

            Equations
            Instances For
              def Lean.Expr.traverseApp' {m : TypeType u_1} [Monad m] (f : Lean.Exprm Lean.Expr) (e : Lean.Expr) :

              Like traverseApp but ignores metadata.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[inline]
                def Lean.Expr.withAppRev' {α : Sort u_1} (e : Lean.Expr) (k : Lean.ExprArray Lean.Exprα) :
                α

                Like withAppRev but ignores metadata.

                Equations
                Instances For
                  @[specialize #[]]
                  def Lean.Expr.withAppRev'.go {α : Sort u_1} (k : Lean.ExprArray Lean.Exprα) :

                  Auxiliary definition for withAppRev'.

                  Equations
                  Instances For
                    @[inline]

                    Like getAppRevArgs but ignores metadata.

                    Equations
                    Instances For

                      Like getRevArgD but ignores metadata.

                      Equations
                      • (Lean.Expr.mdata data b).getRevArgD' x✝ x = b.getRevArgD' x✝ x
                      • (fn.app a).getRevArgD' 0 x = a
                      • (f.app arg).getRevArgD' i.succ x = f.getRevArgD' i x
                      • x✝¹.getRevArgD' x✝ x = x
                      Instances For
                        @[inline]
                        def Lean.Expr.getArgD' (e : Lean.Expr) (i : Nat) (v₀ : Lean.Expr) (n : optParam Nat e.getAppNumArgs') :

                        Like getArgD but ignores metadata.

                        Equations
                        • e.getArgD' i v₀ n = e.getRevArgD' (n - i - 1) v₀
                        Instances For

                          Like isAppOf but ignores metadata.

                          Equations
                          Instances For

                            Turns an expression that is a natural number literal into a natural number.

                            Equations
                            Instances For

                              Turns an expression that is a constructor of Int applied to a natural number literal into an integer.

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