Documentation

Lean.Meta.AppBuilder

Return id e

Equations
Instances For

    Given e s.t. inferType e is definitionally equal to expectedType, return term @id expectedType e.

    Equations
    Instances For

      mkLetFun x v e creates the encoding for the let_fun x := v; e expression. The expression x can either be a free variable or a metavariable, and the function suitably abstracts x in e. NB: x must not be a let-bound free variable.

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

        Return a = b.

        Equations
        Instances For

          Return HEq a b.

          Equations
          Instances For

            If a and b have definitionally equal types, return Eq a b, otherwise return HEq a b.

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

              Return a proof of a = a.

              Equations
              Instances For

                Return a proof of HEq a a.

                Equations
                Instances For
                  def Lean.Meta.mkAbsurd (e hp hnp : Expr) :

                  Given hp : P and nhp : Not P returns an instance of type e.

                  Equations
                  Instances For

                    Given h : False, return an instance of type e.

                    Equations
                    Instances For

                      Given h : a = b, returns a proof of b = a.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def Lean.Meta.mkEqTrans (h₁ h₂ : Expr) :

                        Given h₁ : a = b and h₂ : b = c returns a proof of a = c.

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

                          Similar to mkEqTrans, but arguments can be none. none is treated as a reflexivity proof.

                          Equations
                          Instances For

                            Given h : HEq a b, returns a proof of HEq b a.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def Lean.Meta.mkHEqTrans (h₁ h₂ : Expr) :

                              Given h₁ : HEq a b, h₂ : HEq b c, returns a proof of HEq a c.

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

                                Given h : HEq a b where a and b have the same type, returns a proof of Eq a b.

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

                                  Given h : Eq a b, returns a proof of HEq a b.

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

                                    If e is @Eq.refl α a, return a.

                                    Equations
                                    Instances For

                                      If e is @congrArg α β a b f h, return α, f and h. Also works if e can be turned into such an application (e.g. congrFun).

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        partial def Lean.Meta.mkCongrArg (f h : Expr) :

                                        Given f : α → β and h : a = b, returns a proof of f a = f b.

                                        Given h : f = g and a : α, returns a proof of f a = g a.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          def Lean.Meta.mkCongr (h₁ h₂ : Expr) :

                                          Given h₁ : f = g and h₂ : a = b, returns a proof of f a = g b.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            def Lean.Meta.mkAppM (constName : Name) (xs : Array Expr) :

                                            Return the application constName xs. It tries to fill the implicit arguments before the last element in xs.

                                            Remark: mkAppM `arbitrary #[α] returns @arbitrary.{u} α without synthesizing the implicit argument occurring after α. Given a x : ([Decidable p] → Bool) × Nat, mkAppM `Prod.fst #[x] returns @Prod.fst ([Decidable p] → Bool) Nat x.

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

                                              Similar to mkAppM, but takes an Expr instead of a constant name.

                                              Equations
                                              Instances For
                                                def Lean.Meta.mkAppOptM (constName : Name) (xs : Array (Option Expr)) :

                                                Similar to mkAppM, but it allows us to specify which arguments are provided explicitly using Option type. Example: Given Pure.pure {m : Type u → Type v} [Pure m] {α : Type u} (a : α) : m α,

                                                mkAppOptM `Pure.pure #[m, none, none, a]
                                                

                                                returns a Pure.pure application if the instance Pure m can be synthesized, and the universe match. Note that,

                                                mkAppM `Pure.pure #[a]
                                                

                                                fails because the only explicit argument (a : α) is not sufficient for inferring the remaining arguments, we would need the expected type.

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

                                                  Similar to mkAppOptM, but takes an Expr instead of a constant name.

                                                  Equations
                                                  Instances For
                                                    def Lean.Meta.mkEqNDRec (motive h1 h2 : Expr) :
                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For
                                                      def Lean.Meta.mkEqRec (motive h1 h2 : Expr) :
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        def Lean.Meta.mkEqMP (eqProof pr : Expr) :
                                                        Equations
                                                        Instances For
                                                          def Lean.Meta.mkEqMPR (eqProof pr : Expr) :
                                                          Equations
                                                          Instances For
                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              def Lean.Meta.mkPure (monad e : Expr) :

                                                              Given a monad and e : α, makes pure e.

                                                              Equations
                                                              Instances For
                                                                partial def Lean.Meta.mkProjection (s : Expr) (fieldName : Name) :

                                                                mkProjection s fieldName returns an expression for accessing field fieldName of the structure s. Remark: fieldName may be a subfield of s.

                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  Equations
                                                                  Instances For
                                                                    Equations
                                                                    Instances For
                                                                      def Lean.Meta.mkSome (type value : Expr) :
                                                                      Equations
                                                                      Instances For

                                                                        Return Decidable.decide p

                                                                        Equations
                                                                        Instances For

                                                                          Return a proof for p : Prop using decide p

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

                                                                            Return a < b

                                                                            Equations
                                                                            Instances For

                                                                              Return a <= b

                                                                              Equations
                                                                              Instances For

                                                                                Return Inhabited.default α

                                                                                Equations
                                                                                Instances For

                                                                                  Return @Classical.ofNonempty α _

                                                                                  Equations
                                                                                  Instances For

                                                                                    Return funext h

                                                                                    Equations
                                                                                    Instances For

                                                                                      Return propext h

                                                                                      Equations
                                                                                      Instances For
                                                                                        def Lean.Meta.mkLetCongr (h₁ h₂ : Expr) :

                                                                                        Return let_congr h₁ h₂

                                                                                        Equations
                                                                                        Instances For

                                                                                          Return let_val_congr b h

                                                                                          Equations
                                                                                          Instances For

                                                                                            Return let_body_congr a h

                                                                                            Equations
                                                                                            Instances For

                                                                                              Return of_eq_true h

                                                                                              Equations
                                                                                              Instances For

                                                                                                Return eq_true h

                                                                                                Equations
                                                                                                Instances For

                                                                                                  Return eq_false h h must have type definitionally equal to ¬ p in the current reducibility setting.

                                                                                                  Equations
                                                                                                  Instances For

                                                                                                    Return eq_false' h h must have type definitionally equal to p → False in the current reducibility setting.

                                                                                                    Equations
                                                                                                    Instances For
                                                                                                      def Lean.Meta.mkImpCongr (h₁ h₂ : Expr) :
                                                                                                      Equations
                                                                                                      Instances For
                                                                                                        Equations
                                                                                                        Instances For
                                                                                                          Equations
                                                                                                          Instances For
                                                                                                            Equations
                                                                                                            Instances For

                                                                                                              Return instance for [Monad m] if there is one

                                                                                                              Equations
                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                              Instances For
                                                                                                                def Lean.Meta.mkNumeral (type : Expr) (n : Nat) :

                                                                                                                Return (n : type), a numeric literal of type type. The method fails if we don't have an instance OfNat type n

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

                                                                                                                  Return a + b using a heterogeneous +. This method assumes a and b have the same type.

                                                                                                                  Equations
                                                                                                                  Instances For

                                                                                                                    Return a - b using a heterogeneous -. This method assumes a and b have the same type.

                                                                                                                    Equations
                                                                                                                    Instances For

                                                                                                                      Return a * b using a heterogeneous *. This method assumes a and b have the same type.

                                                                                                                      Equations
                                                                                                                      Instances For

                                                                                                                        Return a ≤ b. This method assumes a and b have the same type.

                                                                                                                        Equations
                                                                                                                        Instances For

                                                                                                                          Return a < b. This method assumes a and b have the same type.

                                                                                                                          Equations
                                                                                                                          Instances For

                                                                                                                            Given h : a = b, return a proof for a ↔ b.

                                                                                                                            Equations
                                                                                                                            Instances For