Documentation

Lean.MonadEnv

def Lean.setEnv {m : TypeType} [MonadEnv m] (env : Environment) :
Equations
Instances For
    def Lean.withEnv {m : TypeType} {α : Type} [Monad m] [MonadFinally m] [MonadEnv m] (env : Environment) (x : m α) :
    m α
    Equations
    Instances For
      def Lean.isInductive {m : TypeType} [Monad m] [MonadEnv m] (declName : Name) :
      Equations
      Instances For
        def Lean.isRecCore (env : Environment) (declName : Name) :
        Equations
        Instances For
          def Lean.isRec {m : TypeType} [Monad m] [MonadEnv m] (declName : Name) :
          Equations
          Instances For
            @[inline]
            def Lean.withoutModifyingEnv {m : TypeType} [Monad m] [MonadEnv m] [MonadFinally m] {α : Type} (x : m α) :
            m α
            Equations
            Instances For
              @[inline]
              def Lean.withoutModifyingEnv' {m : TypeType} [Monad m] [MonadEnv m] [MonadFinally m] {α : Type} (x : m α) :

              Similar to withoutModifyingEnv, but also returns the updated environment

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[inline]
                def Lean.matchConst {m : TypeType} {α : Type} [Monad m] [MonadEnv m] (e : Expr) (failK : Unitm α) (k : ConstantInfoList Levelm α) :
                m α
                Equations
                Instances For
                  @[inline]
                  def Lean.matchConstInduct {m : TypeType} {α : Type} [Monad m] [MonadEnv m] (e : Expr) (failK : Unitm α) (k : InductiveValList Levelm α) :
                  m α
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[inline]
                    def Lean.matchConstCtor {m : TypeType} {α : Type} [Monad m] [MonadEnv m] (e : Expr) (failK : Unitm α) (k : ConstructorValList Levelm α) :
                    m α
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[inline]
                      def Lean.matchConstRec {m : TypeType} {α : Type} [Monad m] [MonadEnv m] (e : Expr) (failK : Unitm α) (k : RecursorValList Levelm α) :
                      m α
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def Lean.hasConst {m : TypeType} [Monad m] [MonadEnv m] (constName : Name) :
                        Equations
                        Instances For
                          def Lean.mkAuxName {m : TypeType} [Monad m] [MonadEnv m] (baseName : Name) (idx : Nat) :
                          Equations
                          Instances For
                            def Lean.getConstInfo {m : TypeType} [Monad m] [MonadEnv m] [MonadError m] (constName : Name) :
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def Lean.mkConstWithLevelParams {m : TypeType} [Monad m] [MonadEnv m] [MonadError m] (constName : Name) :
                              Equations
                              Instances For
                                def Lean.getConstInfoDefn {m : TypeType} [Monad m] [MonadEnv m] [MonadError m] (constName : Name) :
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  def Lean.getConstInfoInduct {m : TypeType} [Monad m] [MonadEnv m] [MonadError m] (constName : Name) :
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    def Lean.getConstInfoCtor {m : TypeType} [Monad m] [MonadEnv m] [MonadError m] (constName : Name) :
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      def Lean.getConstInfoRec {m : TypeType} [Monad m] [MonadEnv m] [MonadError m] (constName : Name) :
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        @[inline]
                                        def Lean.matchConstStructure {m : TypeType} {α : Type} [Monad m] [MonadEnv m] [MonadError m] (e : Expr) (failK : Unitm α) (k : InductiveValList LevelConstructorValm α) :
                                        m α

                                        Matches if e is a constant that is an inductive type with one constructor. Such types can be used with primitive projections. See also Lean.matchConstStructLike for a more restrictive version.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          @[inline]
                                          def Lean.matchConstStructureLike {m : TypeType} {α : Type} [Monad m] [MonadEnv m] [MonadError m] (e : Expr) (failK : Unitm α) (k : InductiveValList LevelConstructorValm α) :
                                          m α

                                          Matches if e is a constant that is an non-recursive inductive type with no indices and with one constructor. Such a type satisfies Lean.isStructureLike. See also Lean.matchConstStructure for a less restrictive version.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            unsafe def Lean.evalConst {m : TypeType} [Monad m] [MonadEnv m] [MonadError m] [MonadOptions m] (α : Type) (constName : Name) :
                                            m α
                                            Equations
                                            Instances For
                                              unsafe def Lean.evalConstCheck {m : TypeType} [Monad m] [MonadEnv m] [MonadError m] [MonadOptions m] (α : Type) (typeName constName : Name) :
                                              m α
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                def Lean.findModuleOf? {m : TypeType} [Monad m] [MonadEnv m] [MonadError m] (declName : Name) :
                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  def Lean.isEnumType {m : TypeType} [Monad m] [MonadEnv m] [MonadError m] (declName : Name) :
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For