File: .lake/packages/lean4/src/lean/Lean/LocalContext.lean

full_name: Lean.instInhabitedLocalDeclKind
code: /--
Whether a local declaration should be found by type class search, tactics, etc.
and shown in the goal display.
-/
inductive LocalDeclKind
  /--
  Participates fully in type class search, tactics, and is shown even if inaccessible.

  For example: the `x` in `fun x => _` has the default kind.
  -/
  | default
  /--
  Invisible to type class search or tactics, and hidden in the goal display.

  This kind is used for temporary variables in macros.
  For example: `return (← foo) + bar` expands to
  `foo >>= fun __tmp => pure (__tmp + bar)`,
  where `__tmp` has the `implDetail` kind.
  -/
  | implDetail
  /--
  Auxiliary local declaration for recursive calls.
  The behavior is similar to `implDetail`.

  For example: `def foo (n : Nat) : Nat := _` adds the local declaration
  `foo : Nat → Nat` to allow recursive calls.
  This declaration has the `auxDecl` kind.
  -/
  | auxDecl
  deriving Inhabited, Repr, DecidableEq, Hashable
goal: Inhabited Lean.LocalDeclKind

full_name: Lean.LocalDeclKind
code: /--
Whether a local declaration should be found by type class search, tactics, etc.
and shown in the goal display.
-/
inductive LocalDeclKind
  /--
  Participates fully in type class search, tactics, and is shown even if inaccessible.

  For example: the `x` in `fun x => _` has the default kind.
  -/
  | default
  /--
  Invisible to type class search or tactics, and hidden in the goal display.

  This kind is used for temporary variables in macros.
  For example: `return (← foo) + bar` expands to
  `foo >>= fun __tmp => pure (__tmp + bar)`,
  where `__tmp` has the `implDetail` kind.
  -/
  | implDetail
  /--
  Auxiliary local declaration for recursive calls.
  The behavior is similar to `implDetail`.

  For example: `def foo (n : Nat) : Nat := _` adds the local declaration
  `foo : Nat → Nat` to allow recursive calls.
  This declaration has the `auxDecl` kind.
  -/
  | auxDecl
  deriving Inhabited, Repr, DecidableEq, Hashable
goal: Type

full_name: Lean.instHashableLocalDeclKind
code: /--
Whether a local declaration should be found by type class search, tactics, etc.
and shown in the goal display.
-/
inductive LocalDeclKind
  /--
  Participates fully in type class search, tactics, and is shown even if inaccessible.

  For example: the `x` in `fun x => _` has the default kind.
  -/
  | default
  /--
  Invisible to type class search or tactics, and hidden in the goal display.

  This kind is used for temporary variables in macros.
  For example: `return (← foo) + bar` expands to
  `foo >>= fun __tmp => pure (__tmp + bar)`,
  where `__tmp` has the `implDetail` kind.
  -/
  | implDetail
  /--
  Auxiliary local declaration for recursive calls.
  The behavior is similar to `implDetail`.

  For example: `def foo (n : Nat) : Nat := _` adds the local declaration
  `foo : Nat → Nat` to allow recursive calls.
  This declaration has the `auxDecl` kind.
  -/
  | auxDecl
  deriving Inhabited, Repr, DecidableEq, Hashable
goal: Hashable Lean.LocalDeclKind

full_name: Lean.instDecidableEqLocalDeclKind
code: /--
Whether a local declaration should be found by type class search, tactics, etc.
and shown in the goal display.
-/
inductive LocalDeclKind
  /--
  Participates fully in type class search, tactics, and is shown even if inaccessible.

  For example: the `x` in `fun x => _` has the default kind.
  -/
  | default
  /--
  Invisible to type class search or tactics, and hidden in the goal display.

  This kind is used for temporary variables in macros.
  For example: `return (← foo) + bar` expands to
  `foo >>= fun __tmp => pure (__tmp + bar)`,
  where `__tmp` has the `implDetail` kind.
  -/
  | implDetail
  /--
  Auxiliary local declaration for recursive calls.
  The behavior is similar to `implDetail`.

  For example: `def foo (n : Nat) : Nat := _` adds the local declaration
  `foo : Nat → Nat` to allow recursive calls.
  This declaration has the `auxDecl` kind.
  -/
  | auxDecl
  deriving Inhabited, Repr, DecidableEq, Hashable
goal: DecidableEq Lean.LocalDeclKind

full_name: Lean.LocalDeclKind.auxDecl
code: /--
Whether a local declaration should be found by type class search, tactics, etc.
and shown in the goal display.
-/
inductive LocalDeclKind
  /--
  Participates fully in type class search, tactics, and is shown even if inaccessible.

  For example: the `x` in `fun x => _` has the default kind.
  -/
  | default
  /--
  Invisible to type class search or tactics, and hidden in the goal display.

  This kind is used for temporary variables in macros.
  For example: `return (← foo) + bar` expands to
  `foo >>= fun __tmp => pure (__tmp + bar)`,
  where `__tmp` has the `implDetail` kind.
  -/
  | implDetail
  /--
  Auxiliary local declaration for recursive calls.
  The behavior is similar to `implDetail`.

  For example: `def foo (n : Nat) : Nat := _` adds the local declaration
  `foo : Nat → Nat` to allow recursive calls.
  This declaration has the `auxDecl` kind.
  -/
  | auxDecl
  deriving Inhabited, Repr, DecidableEq, Hashable
goal: Lean.LocalDeclKind

full_name: Lean.LocalDeclKind.default
code: /--
Whether a local declaration should be found by type class search, tactics, etc.
and shown in the goal display.
-/
inductive LocalDeclKind
  /--
  Participates fully in type class search, tactics, and is shown even if inaccessible.

  For example: the `x` in `fun x => _` has the default kind.
  -/
  | default
  /--
  Invisible to type class search or tactics, and hidden in the goal display.

  This kind is used for temporary variables in macros.
  For example: `return (← foo) + bar` expands to
  `foo >>= fun __tmp => pure (__tmp + bar)`,
  where `__tmp` has the `implDetail` kind.
  -/
  | implDetail
  /--
  Auxiliary local declaration for recursive calls.
  The behavior is similar to `implDetail`.

  For example: `def foo (n : Nat) : Nat := _` adds the local declaration
  `foo : Nat → Nat` to allow recursive calls.
  This declaration has the `auxDecl` kind.
  -/
  | auxDecl
  deriving Inhabited, Repr, DecidableEq, Hashable
goal: Lean.LocalDeclKind

full_name: Lean.instReprLocalDeclKind
code: /--
Whether a local declaration should be found by type class search, tactics, etc.
and shown in the goal display.
-/
inductive LocalDeclKind
  /--
  Participates fully in type class search, tactics, and is shown even if inaccessible.

  For example: the `x` in `fun x => _` has the default kind.
  -/
  | default
  /--
  Invisible to type class search or tactics, and hidden in the goal display.

  This kind is used for temporary variables in macros.
  For example: `return (← foo) + bar` expands to
  `foo >>= fun __tmp => pure (__tmp + bar)`,
  where `__tmp` has the `implDetail` kind.
  -/
  | implDetail
  /--
  Auxiliary local declaration for recursive calls.
  The behavior is similar to `implDetail`.

  For example: `def foo (n : Nat) : Nat := _` adds the local declaration
  `foo : Nat → Nat` to allow recursive calls.
  This declaration has the `auxDecl` kind.
  -/
  | auxDecl
  deriving Inhabited, Repr, DecidableEq, Hashable
goal: Repr Lean.LocalDeclKind

full_name: Lean.LocalDeclKind.implDetail
code: /--
Whether a local declaration should be found by type class search, tactics, etc.
and shown in the goal display.
-/
inductive LocalDeclKind
  /--
  Participates fully in type class search, tactics, and is shown even if inaccessible.

  For example: the `x` in `fun x => _` has the default kind.
  -/
  | default
  /--
  Invisible to type class search or tactics, and hidden in the goal display.

  This kind is used for temporary variables in macros.
  For example: `return (← foo) + bar` expands to
  `foo >>= fun __tmp => pure (__tmp + bar)`,
  where `__tmp` has the `implDetail` kind.
  -/
  | implDetail
  /--
  Auxiliary local declaration for recursive calls.
  The behavior is similar to `implDetail`.

  For example: `def foo (n : Nat) : Nat := _` adds the local declaration
  `foo : Nat → Nat` to allow recursive calls.
  This declaration has the `auxDecl` kind.
  -/
  | auxDecl
  deriving Inhabited, Repr, DecidableEq, Hashable
goal: Lean.LocalDeclKind

full_name: Lean.LocalDecl.ldecl
code: /-- A declaration for a LocalContext. This is used to register which free variables are in scope.
Each declaration comes with
- `index` the position of the decl in the local context
- `fvarId` the unique id of the free variables
- `userName` the pretty-printable name of the variable
- `type` the type.
A `cdecl` is a local variable, a `ldecl` is a let-bound free variable with a `value : Expr`.
-/
inductive LocalDecl where
  | cdecl (index : Nat) (fvarId : FVarId) (userName : Name) (type : Expr) (bi : BinderInfo) (kind : LocalDeclKind)
  | ldecl (index : Nat) (fvarId : FVarId) (userName : Name) (type : Expr) (value : Expr) (nonDep : Bool) (kind : LocalDeclKind)
  deriving Inhabited
goal: Lean.LocalDecl

full_name: Lean.LocalDecl
code: /-- A declaration for a LocalContext. This is used to register which free variables are in scope.
Each declaration comes with
- `index` the position of the decl in the local context
- `fvarId` the unique id of the free variables
- `userName` the pretty-printable name of the variable
- `type` the type.
A `cdecl` is a local variable, a `ldecl` is a let-bound free variable with a `value : Expr`.
-/
inductive LocalDecl where
  | cdecl (index : Nat) (fvarId : FVarId) (userName : Name) (type : Expr) (bi : BinderInfo) (kind : LocalDeclKind)
  | ldecl (index : Nat) (fvarId : FVarId) (userName : Name) (type : Expr) (value : Expr) (nonDep : Bool) (kind : LocalDeclKind)
  deriving Inhabited
goal: Type

full_name: Lean.instInhabitedLocalDecl
code: /-- A declaration for a LocalContext. This is used to register which free variables are in scope.
Each declaration comes with
- `index` the position of the decl in the local context
- `fvarId` the unique id of the free variables
- `userName` the pretty-printable name of the variable
- `type` the type.
A `cdecl` is a local variable, a `ldecl` is a let-bound free variable with a `value : Expr`.
-/
inductive LocalDecl where
  | cdecl (index : Nat) (fvarId : FVarId) (userName : Name) (type : Expr) (bi : BinderInfo) (kind : LocalDeclKind)
  | ldecl (index : Nat) (fvarId : FVarId) (userName : Name) (type : Expr) (value : Expr) (nonDep : Bool) (kind : LocalDeclKind)
  deriving Inhabited
goal: Inhabited Lean.LocalDecl

full_name: Lean.LocalDecl.cdecl
code: /-- A declaration for a LocalContext. This is used to register which free variables are in scope.
Each declaration comes with
- `index` the position of the decl in the local context
- `fvarId` the unique id of the free variables
- `userName` the pretty-printable name of the variable
- `type` the type.
A `cdecl` is a local variable, a `ldecl` is a let-bound free variable with a `value : Expr`.
-/
inductive LocalDecl where
  | cdecl (index : Nat) (fvarId : FVarId) (userName : Name) (type : Expr) (bi : BinderInfo) (kind : LocalDeclKind)
  | ldecl (index : Nat) (fvarId : FVarId) (userName : Name) (type : Expr) (value : Expr) (nonDep : Bool) (kind : LocalDeclKind)
  deriving Inhabited
goal: Lean.LocalDecl

full_name: Lean.mkLocalDeclEx
code: @[export lean_mk_local_decl]
def mkLocalDeclEx (index : Nat) (fvarId : FVarId) (userName : Name) (type : Expr) (bi : BinderInfo) : LocalDecl 
goal: Lean.LocalDecl

full_name: Lean.mkLetDeclEx
code: @[export lean_mk_let_decl]
def mkLetDeclEx (index : Nat) (fvarId : FVarId) (userName : Name) (type : Expr) (val : Expr) : LocalDecl 
goal: Lean.LocalDecl

full_name: Lean.LocalDecl.binderInfoEx
code: @[export lean_local_decl_binder_info]
def LocalDecl.binderInfoEx : LocalDecl → BinderInfo
  
goal: Lean.LocalDecl → Lean.BinderInfo

full_name: Lean.LocalDecl.isLet
code: def isLet : LocalDecl → Bool
  
goal: Lean.LocalDecl → Bool

full_name: Lean.LocalDecl.index
code: def index : LocalDecl → Nat
  
goal: Lean.LocalDecl → Nat

full_name: Lean.LocalDecl.setIndex
code: def setIndex : LocalDecl → Nat → LocalDecl
  
goal: Lean.LocalDecl → Nat → Lean.LocalDecl

full_name: Lean.LocalDecl.fvarId
code: def fvarId : LocalDecl → FVarId
  
goal: Lean.LocalDecl → Lean.FVarId

full_name: Lean.LocalDecl.userName
code: def userName : LocalDecl → Name
  
goal: Lean.LocalDecl → Lean.Name

full_name: Lean.LocalDecl.type
code: def type : LocalDecl → Expr
  
goal: Lean.LocalDecl → Lean.Expr

full_name: Lean.LocalDecl.setType
code: def setType : LocalDecl → Expr → LocalDecl
  
goal: Lean.LocalDecl → Lean.Expr → Lean.LocalDecl

full_name: Lean.LocalDecl.binderInfo
code: def binderInfo : LocalDecl → BinderInfo
  
goal: Lean.LocalDecl → Lean.BinderInfo

full_name: Lean.LocalDecl.kind
code: def kind : LocalDecl → LocalDeclKind
  
goal: Lean.LocalDecl → Lean.LocalDeclKind

full_name: Lean.LocalDecl.isAuxDecl
code: def isAuxDecl (d : LocalDecl) : Bool 
goal: Bool

full_name: Lean.LocalDecl.isImplementationDetail
code: /--
Is the local declaration an implementation-detail hypothesis
(including auxiliary declarations)?
-/
def isImplementationDetail (d : LocalDecl) : Bool 
goal: Bool

full_name: Lean.LocalDecl.value?
code: def value? : LocalDecl → Option Expr
  
goal: Lean.LocalDecl → Option Lean.Expr

full_name: Lean.LocalDecl.value
code: def value : LocalDecl → Expr
  
goal: Lean.LocalDecl → Lean.Expr

full_name: Lean.LocalDecl.hasValue
code: def hasValue : LocalDecl → Bool
  
goal: Lean.LocalDecl → Bool

full_name: Lean.LocalDecl.setValue
code: def setValue : LocalDecl → Expr → LocalDecl
  
goal: Lean.LocalDecl → Lean.Expr → Lean.LocalDecl

full_name: Lean.LocalDecl.setUserName
code: def setUserName : LocalDecl → Name → LocalDecl
  
goal: Lean.LocalDecl → Lean.Name → Lean.LocalDecl

full_name: Lean.LocalDecl.setBinderInfo
code: def setBinderInfo : LocalDecl → BinderInfo → LocalDecl
  
goal: Lean.LocalDecl → Lean.BinderInfo → Lean.LocalDecl

full_name: Lean.LocalDecl.toExpr
code: def toExpr (decl : LocalDecl) : Expr 
goal: Lean.Expr

full_name: Lean.LocalDecl.hasExprMVar
code: def hasExprMVar : LocalDecl → Bool
  
goal: Lean.LocalDecl → Bool

full_name: Lean.LocalDecl.setKind
code: /--
Set the kind of a `LocalDecl`.
-/
def setKind : LocalDecl → LocalDeclKind → LocalDecl
  
goal: Lean.LocalDecl → Lean.LocalDeclKind → Lean.LocalDecl

full_name: Lean.LocalContext
code: /-- A LocalContext is an ordered set of local variable declarations.
It is used to store the free variables (also known as local constants) that
are in scope.

When inspecting a goal or expected type in the infoview, the local
context is all of the variables above the `⊢` symbol.
 -/
structure LocalContext where
  fvarIdToDecl : PersistentHashMap FVarId LocalDecl := {}
  decls        : PersistentArray (Option LocalDecl) := {}
  deriving Inhabited
goal: Type

full_name: Lean.LocalContext.decls
code: /-- A LocalContext is an ordered set of local variable declarations.
It is used to store the free variables (also known as local constants) that
are in scope.

When inspecting a goal or expected type in the infoview, the local
context is all of the variables above the `⊢` symbol.
 -/
structure LocalContext where
  fvarIdToDecl : PersistentHashMap FVarId LocalDecl := {}
  decls        : PersistentArray (Option LocalDecl) := {}
  deriving Inhabited
goal: Lean.PersistentArray (Option Lean.LocalDecl)

full_name: Lean.instInhabitedLocalContext
code: /-- A LocalContext is an ordered set of local variable declarations.
It is used to store the free variables (also known as local constants) that
are in scope.

When inspecting a goal or expected type in the infoview, the local
context is all of the variables above the `⊢` symbol.
 -/
structure LocalContext where
  fvarIdToDecl : PersistentHashMap FVarId LocalDecl := {}
  decls        : PersistentArray (Option LocalDecl) := {}
  deriving Inhabited
goal: Inhabited Lean.LocalContext

full_name: Lean.LocalContext.fvarIdToDecl
code: /-- A LocalContext is an ordered set of local variable declarations.
It is used to store the free variables (also known as local constants) that
are in scope.

When inspecting a goal or expected type in the infoview, the local
context is all of the variables above the `⊢` symbol.
 -/
structure LocalContext where
  fvarIdToDecl : PersistentHashMap FVarId LocalDecl := {}
  decls        : PersistentArray (Option LocalDecl) := {}
  deriving Inhabited
goal: Lean.PersistentHashMap Lean.FVarId Lean.LocalDecl

full_name: Lean.LocalContext.mkEmpty
code: @[export lean_mk_empty_local_ctx]
def mkEmpty : Unit → LocalContext 
goal: Unit → Lean.LocalContext

full_name: Lean.LocalContext.empty
code: def empty : LocalContext 
goal: Lean.LocalContext

full_name: Lean.LocalContext.isEmpty
code: @[export lean_local_ctx_is_empty]
def isEmpty (lctx : LocalContext) : Bool 
goal: Bool

full_name: Lean.LocalContext.mkLocalDecl
code: /-- Low level API for creating local declarations.
It is used to implement actions in the monads `Elab` and `Tactic`.
It should not be used directly since the argument `(fvarId : FVarId)` is
assumed to be unique. You can create a unique fvarId with `mkFreshFVarId`. -/
def mkLocalDecl (lctx : LocalContext) (fvarId : FVarId) (userName : Name) (type : Expr) (bi : BinderInfo := BinderInfo.default) (kind : LocalDeclKind := .default) : LocalContext 
goal: Lean.LocalContext

full_name: _private.«.lake».packages.lean4.src.lean.Lean.LocalContext.0.Lean.LocalContext.mkLocalDeclExported
code: @[export lean_local_ctx_mk_local_decl]
private def mkLocalDeclExported (lctx : LocalContext) (fvarId : FVarId) (userName : Name) (type : Expr) (bi : BinderInfo) : LocalContext 
goal: Lean.LocalContext

full_name: Lean.LocalContext.mkLetDecl
code: /-- Low level API for let declarations. Do not use directly.-/
def mkLetDecl (lctx : LocalContext) (fvarId : FVarId) (userName : Name) (type : Expr) (value : Expr) (nonDep := false) (kind : LocalDeclKind := default) : LocalContext 
goal: Lean.LocalContext

full_name: _private.«.lake».packages.lean4.src.lean.Lean.LocalContext.0.Lean.LocalContext.mkLetDeclExported
code: @[export lean_local_ctx_mk_let_decl]
private def mkLetDeclExported (lctx : LocalContext) (fvarId : FVarId) (userName : Name) (type : Expr) (value : Expr) (nonDep : Bool) : LocalContext 
goal: Lean.LocalContext

full_name: Lean.LocalContext.addDecl
code: /-- Low level API for adding a local declaration.
Do not use directly. -/
def addDecl (lctx : LocalContext) (newDecl : LocalDecl) : LocalContext 
goal: Lean.LocalContext

full_name: Lean.LocalContext.find?
code: @[export lean_local_ctx_find]
def find? (lctx : LocalContext) (fvarId : FVarId) : Option LocalDecl 
goal: Option Lean.LocalDecl

full_name: Lean.LocalContext.findFVar?
code: def findFVar? (lctx : LocalContext) (e : Expr) : Option LocalDecl 
goal: Option Lean.LocalDecl

full_name: Lean.LocalContext.get!
code: def get! (lctx : LocalContext) (fvarId : FVarId) : LocalDecl 
goal: Lean.LocalDecl

full_name: Lean.LocalContext.getFVar!
code: /-- Gets the declaration for expression `e` in the local context.
If `e` is not a free variable or not present then panics. -/
def getFVar! (lctx : LocalContext) (e : Expr) : LocalDecl 
goal: Lean.LocalDecl

full_name: Lean.LocalContext.contains
code: def contains (lctx : LocalContext) (fvarId : FVarId) : Bool 
goal: Bool

full_name: Lean.LocalContext.containsFVar
code: /-- Returns true when the lctx contains the free variable `e`.
Panics if `e` is not an fvar. -/
def containsFVar (lctx : LocalContext) (e : Expr) : Bool 
goal: Bool

full_name: Lean.LocalContext.getFVarIds
code: def getFVarIds (lctx : LocalContext) : Array FVarId 
goal: Array Lean.FVarId

full_name: Lean.LocalContext.getFVars
code: /-- Return all of the free variables in the given context. -/
def getFVars (lctx : LocalContext) : Array Expr 
goal: Array Lean.Expr

full_name: _private.«.lake».packages.lean4.src.lean.Lean.LocalContext.0.Lean.LocalContext.popTailNoneAux
code: private partial def popTailNoneAux (a : PArray (Option LocalDecl)) : PArray (Option LocalDecl) 
goal: Lean.PArray (Option Lean.LocalDecl)

full_name: Lean.LocalContext.erase
code: @[export lean_local_ctx_erase]
def erase (lctx : LocalContext) (fvarId : FVarId) : LocalContext 
goal: Lean.LocalContext

full_name: Lean.LocalContext.pop
code: def pop (lctx : LocalContext): LocalContext 
goal: Lean.LocalContext

full_name: Lean.LocalContext.findFromUserName?
code: def findFromUserName? (lctx : LocalContext) (userName : Name) : Option LocalDecl 
goal: Option Lean.LocalDecl

full_name: Lean.LocalContext.usesUserName
code: def usesUserName (lctx : LocalContext) (userName : Name) : Bool 
goal: Bool

full_name: _private.«.lake».packages.lean4.src.lean.Lean.LocalContext.0.Lean.LocalContext.getUnusedNameAux
code: private partial def getUnusedNameAux (lctx : LocalContext) (suggestion : Name) (i : Nat) : Name × Nat 
goal: Lean.Name × Nat

full_name: Lean.LocalContext.getUnusedName
code: def getUnusedName (lctx : LocalContext) (suggestion : Name) : Name 
goal: Lean.Name

full_name: Lean.LocalContext.lastDecl
code: def lastDecl (lctx : LocalContext) : Option LocalDecl 
goal: Option Lean.LocalDecl

full_name: Lean.LocalContext.setUserName
code: def setUserName (lctx : LocalContext) (fvarId : FVarId) (userName : Name) : LocalContext 
goal: Lean.LocalContext

full_name: Lean.LocalContext.renameUserName
code: def renameUserName (lctx : LocalContext) (fromName : Name) (toName : Name) : LocalContext 
goal: Lean.LocalContext

full_name: Lean.LocalContext.modifyLocalDecl
code: /--
  Low-level function for updating the local context.
  Assumptions about `f`, the resulting nested expressions must be definitionally equal to their original values,
  the `index` nor `fvarId` are modified.  -/
@[inline] def modifyLocalDecl (lctx : LocalContext) (fvarId : FVarId) (f : LocalDecl → LocalDecl) : LocalContext 
goal: Lean.LocalContext

full_name: Lean.LocalContext.setKind
code: /--
Set the kind of the given fvar.
-/
def setKind (lctx : LocalContext) (fvarId : FVarId)
    (kind : LocalDeclKind) : LocalContext 
goal: Lean.LocalContext

full_name: Lean.LocalContext.setBinderInfo
code: def setBinderInfo (lctx : LocalContext) (fvarId : FVarId) (bi : BinderInfo) : LocalContext 
goal: Lean.LocalContext

full_name: Lean.LocalContext.numIndices
code: @[export lean_local_ctx_num_indices]
def numIndices (lctx : LocalContext) : Nat 
goal: Nat

full_name: Lean.LocalContext.getAt?
code: def getAt? (lctx : LocalContext) (i : Nat) : Option LocalDecl 
goal: Option Lean.LocalDecl

full_name: Lean.LocalContext.foldlM
code: @[specialize] def foldlM [Monad m] (lctx : LocalContext) (f : β → LocalDecl → m β) (init : β) (start : Nat := 0) : m β 
goal: m β

full_name: Lean.LocalContext.foldrM
code: @[specialize] def foldrM [Monad m] (lctx : LocalContext) (f : LocalDecl → β → m β) (init : β) : m β 
goal: m β

full_name: Lean.LocalContext.forM
code: @[specialize] def forM [Monad m] (lctx : LocalContext) (f : LocalDecl → m PUnit) : m PUnit 
goal: m PUnit

full_name: Lean.LocalContext.findDeclM?
code: @[specialize] def findDeclM? [Monad m] (lctx : LocalContext) (f : LocalDecl → m (Option β)) : m (Option β) 
goal: m (Option β)

full_name: Lean.LocalContext.findDeclRevM?
code: @[specialize] def findDeclRevM? [Monad m] (lctx : LocalContext) (f : LocalDecl → m (Option β)) : m (Option β) 
goal: m (Option β)

full_name: Lean.LocalContext.instForInLocalDecl
code: instance : ForIn m LocalContext LocalDecl 
goal: ForIn m Lean.LocalContext Lean.LocalDecl

full_name: Lean.LocalContext.foldl
code: @[inline] def foldl (lctx : LocalContext) (f : β → LocalDecl → β) (init : β) (start : Nat := 0) : β 
goal: β

full_name: Lean.LocalContext.foldr
code: @[inline] def foldr (lctx : LocalContext) (f : LocalDecl → β → β) (init : β) : β 
goal: β

full_name: Lean.LocalContext.size
code: def size (lctx : LocalContext) : Nat 
goal: Nat

full_name: Lean.LocalContext.findDecl?
code: @[inline] def findDecl? (lctx : LocalContext) (f : LocalDecl → Option β) : Option β 
goal: Option β

full_name: Lean.LocalContext.findDeclRev?
code: @[inline] def findDeclRev? (lctx : LocalContext) (f : LocalDecl → Option β) : Option β 
goal: Option β

full_name: Lean.LocalContext.isSubPrefixOfAux
code: partial def isSubPrefixOfAux (a₁ a₂ : PArray (Option LocalDecl)) (exceptFVars : Array Expr) (i j : Nat) : Bool 
goal: Bool

full_name: Lean.LocalContext.isSubPrefixOf
code: /-- Given `lctx₁ - exceptFVars` of the form `(x_1 : A_1) ... (x_n : A_n)`, then return true
   iff there is a local context `B_1* (x_1 : A_1) ... B_n* (x_n : A_n)` which is a prefix
   of `lctx₂` where `B_i`'s are (possibly empty) sequences of local declarations. -/
def isSubPrefixOf (lctx₁ lctx₂ : LocalContext) (exceptFVars : Array Expr := #[]) : Bool 
goal: Bool

full_name: Lean.LocalContext.mkBinding
code: @[inline] def mkBinding (isLambda : Bool) (lctx : LocalContext) (xs : Array Expr) (b : Expr) : Expr 
goal: Lean.Expr

full_name: Lean.LocalContext.mkLambda
code: /-- Creates the expression `fun x₁ .. xₙ => b` for free variables `xs = #[x₁, .., xₙ]`,
suitably abstracting `b` and the types for each of the `xᵢ`. -/
def mkLambda (lctx : LocalContext) (xs : Array Expr) (b : Expr) : Expr 
goal: Lean.Expr

full_name: Lean.LocalContext.mkForall
code: /-- Creates the expression `(x₁:α₁) → .. → (xₙ:αₙ) → b` for free variables `xs = #[x₁, .., xₙ]`,
suitably abstracting `b` and the types for each of the `xᵢ`, `αᵢ`. -/
def mkForall (lctx : LocalContext) (xs : Array Expr) (b : Expr) : Expr 
goal: Lean.Expr

full_name: Lean.LocalContext.anyM
code: @[inline] def anyM [Monad m] (lctx : LocalContext) (p : LocalDecl → m Bool) : m Bool 
goal: m Bool

full_name: Lean.LocalContext.allM
code: @[inline] def allM [Monad m] (lctx : LocalContext) (p : LocalDecl → m Bool) : m Bool 
goal: m Bool

full_name: Lean.LocalContext.any
code: /-- Return `true` if `lctx` contains a local declaration satisfying `p`. -/
@[inline] def any (lctx : LocalContext) (p : LocalDecl → Bool) : Bool 
goal: Bool

full_name: Lean.LocalContext.all
code: /-- Return `true` if all declarations in `lctx` satisfy `p`. -/
@[inline] def all (lctx : LocalContext) (p : LocalDecl → Bool) : Bool 
goal: Bool

full_name: Lean.LocalContext.sanitizeNames
code: /-- If option `pp.sanitizeNames` is set to `true`, add tombstone to shadowed local declaration names and ones contains macroscopes. -/
def sanitizeNames (lctx : LocalContext) : StateM NameSanitizerState LocalContext 
goal: StateM Lean.NameSanitizerState Lean.LocalContext

full_name: Lean.LocalContext.getRoundtrippingUserName?
code: /--
Given an `FVarId`, this function returns the corresponding user name,
but only if the name can be used to recover the original FVarId.
-/
def getRoundtrippingUserName? (lctx : LocalContext) (fvarId : FVarId) : Option Name 
goal: Option Lean.Name

full_name: Lean.LocalContext.sortFVarsByContextOrder
code: /--
Sort the given `FVarId`s by the order in which they appear in `lctx`. If any of
the `FVarId`s do not appear in `lctx`, the result is unspecified.
-/
def sortFVarsByContextOrder (lctx : LocalContext) (hyps : Array FVarId) : Array FVarId 
goal: Array Lean.FVarId

full_name: Lean.MonadLCtx
code: /-- Class used to denote that `m` has a local context. -/
class MonadLCtx (m : Type → Type) where
  getLCtx : m LocalContext
goal: Type

full_name: Lean.MonadLCtx.getLCtx
code: /-- Class used to denote that `m` has a local context. -/
class MonadLCtx (m : Type → Type) where
  getLCtx : m LocalContext
goal: m Lean.LocalContext

full_name: Lean.instMonadLCtxOfMonadLift
code: instance [MonadLift m n] [MonadLCtx m] : MonadLCtx n 
goal: Lean.MonadLCtx n

full_name: Lean.getLocalHyps
code: /-- Return local hypotheses which are not "implementation detail", as `Expr`s. -/
def getLocalHyps [Monad m] [MonadLCtx m] : m (Array Expr) 
goal: m (Array Lean.Expr)

full_name: Lean.LocalDecl.replaceFVarId
code: def LocalDecl.replaceFVarId (fvarId : FVarId) (e : Expr) (d : LocalDecl) : LocalDecl 
goal: Lean.LocalDecl

full_name: Lean.LocalContext.replaceFVarId
code: def LocalContext.replaceFVarId (fvarId : FVarId) (e : Expr) (lctx : LocalContext) : LocalContext 
goal: Lean.LocalContext