Documentation

Lean.MonadEnv

Instances For
    def Lean.withEnv {m : TypeType} {α : Type} [Monad m] [MonadFinally m] [Lean.MonadEnv m] (env : Lean.Environment) (x : m α) :
    m α
    Equations
    Instances For
      def Lean.isInductive {m : TypeType} [Monad m] [Lean.MonadEnv m] (declName : Lean.Name) :
      Equations
      Instances For
        def Lean.isRecCore (env : Lean.Environment) (declName : Lean.Name) :
        Equations
        Instances For
          def Lean.isRec {m : TypeType} [Monad m] [Lean.MonadEnv m] (declName : Lean.Name) :
          Instances For
            @[inline]
            def Lean.withoutModifyingEnv {m : TypeType} [Monad m] [Lean.MonadEnv m] [MonadFinally m] {α : Type} (x : m α) :
            m α
            Instances For
              @[inline]
              def Lean.withoutModifyingEnv' {m : TypeType} [Monad m] [Lean.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] [Lean.MonadEnv m] (e : Lean.Expr) (failK : Unitm α) (k : Lean.ConstantInfoList Lean.Levelm α) :
                m α
                Instances For
                  @[inline]
                  def Lean.matchConstInduct {m : TypeType} {α : Type} [Monad m] [Lean.MonadEnv m] (e : Lean.Expr) (failK : Unitm α) (k : Lean.InductiveValList Lean.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] [Lean.MonadEnv m] (e : Lean.Expr) (failK : Unitm α) (k : Lean.ConstructorValList Lean.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] [Lean.MonadEnv m] (e : Lean.Expr) (failK : Unitm α) (k : Lean.RecursorValList Lean.Levelm α) :
                      m α
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def Lean.hasConst {m : TypeType} [Monad m] [Lean.MonadEnv m] (constName : Lean.Name) :
                        Equations
                        • Lean.hasConst constName = do let __do_liftLean.getEnv pure (__do_lift.contains constName)
                        Instances For
                          def Lean.mkAuxName {m : TypeType} [Monad m] [Lean.MonadEnv m] (baseName : Lean.Name) (idx : Nat) :
                          Equations
                          Instances For
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              Instances For
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  Instances For
                                    @[inline]
                                    def Lean.matchConstStructure {m : TypeType} {α : Type} [Monad m] [Lean.MonadEnv m] [Lean.MonadError m] (e : Lean.Expr) (failK : Unitm α) (k : Lean.InductiveValList Lean.LevelLean.ConstructorValm α) :
                                    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.

                                    Instances For
                                      @[inline]
                                      def Lean.matchConstStructureLike {m : TypeType} {α : Type} [Monad m] [Lean.MonadEnv m] [Lean.MonadError m] (e : Lean.Expr) (failK : Unitm α) (k : Lean.InductiveValList Lean.LevelLean.ConstructorValm α) :
                                      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] [Lean.MonadEnv m] [Lean.MonadError m] [Lean.MonadOptions m] (α : Type) (constName : Lean.Name) :
                                        m α
                                        Instances For
                                          unsafe def Lean.evalConstCheck {m : TypeType} [Monad m] [Lean.MonadEnv m] [Lean.MonadError m] [Lean.MonadOptions m] (α : Type) (typeName constName : Lean.Name) :
                                          m α
                                          Instances For
                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              def Lean.isEnumType {m : TypeType} [Monad m] [Lean.MonadEnv m] [Lean.MonadError m] (declName : Lean.Name) :
                                              Instances For