Documentation

Lean.Meta.Sym.AlphaShareBuilder

Helper functions for constructing maximally shared expressions from maximally shared expressions. That is, mkAppS f a assumes that f and a are maximally shared.

These functions are in the Internal namespace because they can be easily misused. We use them to construct safe functions.

Instances
    Equations
      Instances For
        @[reducible, inline]

        Helper monad for constructing maximally shared terms. The Bool flag indicates whether it is debug-mode or not.

        Equations
          Instances For
            @[reducible, inline]

            Helper function for lifting a AlphaShareBuilderM action to GrindM

            Equations
              Instances For
                Equations
                  Instances For
                    def Lean.Meta.Sym.Internal.mkConstS {m : TypeType} [MonadShareCommon m] (declName : Name) (us : List Level := []) :
                    Equations
                      Instances For
                        Equations
                          Instances For
                            Equations
                              Instances For
                                Equations
                                  Instances For
                                    Equations
                                      Instances For
                                        Equations
                                          Instances For
                                            def Lean.Meta.Sym.Internal.mkProjS {m : TypeType} [MonadShareCommon m] [Monad m] (structName : Name) (idx : Nat) (struct : Expr) :
                                            Equations
                                              Instances For
                                                Equations
                                                  Instances For
                                                    Equations
                                                      Instances For
                                                        Equations
                                                          Instances For
                                                            def Lean.Meta.Sym.Internal.mkLetS {m : TypeType} [MonadShareCommon m] [Monad m] (x : Name) (t v b : Expr) (nondep : Bool := false) :
                                                            Equations
                                                              Instances For
                                                                def Lean.Meta.Sym.Internal.mkHaveS {m : TypeType} [MonadShareCommon m] [Monad m] (x : Name) (t v b : Expr) :
                                                                Equations
                                                                  Instances For
                                                                    @[inline]
                                                                    Equations
                                                                      Instances For
                                                                        @[inline]
                                                                        Equations
                                                                          Instances For
                                                                            @[inline]
                                                                            Equations
                                                                              Instances For
                                                                                @[inline]
                                                                                def Lean.Expr.updateForallS! {m : TypeType} [Meta.Sym.Internal.MonadShareCommon m] [Monad m] (e newDomain newBody : Expr) :
                                                                                Equations
                                                                                  Instances For
                                                                                    @[inline]
                                                                                    def Lean.Expr.updateLambdaS! {m : TypeType} [Meta.Sym.Internal.MonadShareCommon m] [Monad m] (e newDomain newBody : Expr) :
                                                                                    Equations
                                                                                      Instances For
                                                                                        @[inline]
                                                                                        def Lean.Expr.updateLetS! {m : TypeType} [Meta.Sym.Internal.MonadShareCommon m] [Monad m] (e newType newVal newBody : Expr) :
                                                                                        Equations
                                                                                          Instances For
                                                                                            def Lean.Meta.Sym.Internal.mkAppS₂ {m : TypeType} [MonadShareCommon m] [Monad m] (f a₁ a₂ : Expr) :
                                                                                            Equations
                                                                                              Instances For
                                                                                                def Lean.Meta.Sym.Internal.mkAppS₃ {m : TypeType} [MonadShareCommon m] [Monad m] (f a₁ a₂ a₃ : Expr) :
                                                                                                Equations
                                                                                                  Instances For
                                                                                                    def Lean.Meta.Sym.Internal.mkAppS₄ {m : TypeType} [MonadShareCommon m] [Monad m] (f a₁ a₂ a₃ a₄ : Expr) :
                                                                                                    Equations
                                                                                                      Instances For
                                                                                                        def Lean.Meta.Sym.Internal.mkAppS₅ {m : TypeType} [MonadShareCommon m] [Monad m] (f a₁ a₂ a₃ a₄ a₅ : Expr) :
                                                                                                        Equations
                                                                                                          Instances For