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
    @[always_inline]
    Equations
    • One or more equations did not get rendered due to their size.
    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.
        @[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
          • 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.
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def Lean.Meta.Sym.Internal.mkProjS {m : TypeType} [MonadShareCommon m] [Monad m] (structName : Name) (idx : Nat) (struct : Expr) :
                  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.Meta.Sym.Internal.mkLetS {m : TypeType} [MonadShareCommon m] [Monad m] (x : Name) (t v b : Expr) (nondep : Bool := false) :
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def Lean.Meta.Sym.Internal.mkHaveS {m : TypeType} [MonadShareCommon m] [Monad m] (x : Name) (t v b : Expr) :
                            Equations
                            • One or more equations did not get rendered due to their size.
                            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
                                    • One or more equations did not get rendered due to their size.
                                    • e.updateForallS! newDomain newBody = panicWithPosWithDecl "Lean.Meta.Sym.AlphaShareBuilder" "Lean.Expr.updateForallS!" 160 31 "forall expected"
                                    Instances For
                                      @[inline]
                                      def Lean.Expr.updateLambdaS! {m : TypeType} [Meta.Sym.Internal.MonadShareCommon m] [Monad m] (e newDomain newBody : Expr) :
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      • e.updateLambdaS! newDomain newBody = panicWithPosWithDecl "Lean.Meta.Sym.AlphaShareBuilder" "Lean.Expr.updateLambdaS!" 167 27 "lambda expected"
                                      Instances For
                                        @[inline]
                                        def Lean.Expr.updateLetS! {m : TypeType} [Meta.Sym.Internal.MonadShareCommon m] [Monad m] (e newType newVal newBody : Expr) :
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        • e.updateLetS! newType newVal newBody = panicWithPosWithDecl "Lean.Meta.Sym.AlphaShareBuilder" "Lean.Expr.updateLetS!" 174 34 "let expression expected"
                                        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