File: .lake/packages/lean4/src/lean/Lean/Elab/Declaration.lean

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.ensureValidNamespace
code: private def ensureValidNamespace (name : Name) : MacroM Unit 
goal: Lean.MacroM Unit

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.setDeclIdName
code: private def setDeclIdName (declId : Syntax) (nameNew : Name) : Syntax 
goal: Lean.Syntax

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.isNamedDef
code: /-- Return `true` if `stx` is a `Command.declaration`, and it is a definition that always has a name. -/
private def isNamedDef (stx : Syntax) : Bool 
goal: Bool

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.isInstanceDef
code: /-- Return `true` if `stx` is an `instance` declaration command -/
private def isInstanceDef (stx : Syntax) : Bool 
goal: Bool

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.getDefName?
code: /-- Return `some name` if `stx` is a definition named `name` -/
private def getDefName? (stx : Syntax) : Option Name 
goal: Option Lean.Name

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.setDefName
code: /--
Update the name of the given definition.
This function assumes `stx` is not a nameless instance.
-/
private def setDefName (stx : Syntax) (name : Name) : Syntax 
goal: Lean.Syntax

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.expandDeclNamespace?
code: /--
  Given declarations such as `@[...] def Foo.Bla.f ...` return `some (Foo.Bla, @[...] def f ...)`
  Remark: if the id starts with `_root_`, we return `none`.
-/
private def expandDeclNamespace? (stx : Syntax) : MacroM (Option (Name × Syntax)) 
goal: Lean.MacroM (Option (Lean.Name × Lean.Syntax))

full_name: Lean.Elab.Command.elabAxiom
code: def elabAxiom (modifiers : Modifiers) (stx : Syntax) : CommandElabM Unit 
goal: Lean.Elab.Command.CommandElabM Unit

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.inductiveSyntaxToView
code: private def inductiveSyntaxToView (modifiers : Modifiers) (decl : Syntax) : CommandElabM InductiveView 
goal: Lean.Elab.Command.CommandElabM Lean.Elab.Command.InductiveView

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.classInductiveSyntaxToView
code: private def classInductiveSyntaxToView (modifiers : Modifiers) (decl : Syntax) : CommandElabM InductiveView 
goal: Lean.Elab.Command.CommandElabM Lean.Elab.Command.InductiveView

full_name: Lean.Elab.Command.elabInductive
code: def elabInductive (modifiers : Modifiers) (stx : Syntax) : CommandElabM Unit 
goal: Lean.Elab.Command.CommandElabM Unit

full_name: Lean.Elab.Command.elabClassInductive
code: def elabClassInductive (modifiers : Modifiers) (stx : Syntax) : CommandElabM Unit 
goal: Lean.Elab.Command.CommandElabM Unit

full_name: Lean.Elab.Command.expandNamespacedDeclaration
code: /--
Macro that expands a declaration with a complex name into an explicit `namespace` block.
Implementing this step as a macro means that reuse checking is handled by `elabCommand`.
 -/
@[builtin_macro Lean.Parser.Command.declaration]
def expandNamespacedDeclaration : Macro 
goal: Lean.Macro

full_name: Lean.Elab.Command.elabDeclaration
code: @[builtin_command_elab declaration, builtin_incremental]
def elabDeclaration : CommandElab 
goal: Lean.Elab.Command.CommandElab

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.isMutualInductive
code: /-- Return true if all elements of the mutual-block are inductive declarations. -/
private def isMutualInductive (stx : Syntax) : Bool 
goal: Bool

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.elabMutualInductive
code: private def elabMutualInductive (elems : Array Syntax) : CommandElabM Unit 
goal: Lean.Elab.Command.CommandElabM Unit

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.isMutualDef
code: /-- Return true if all elements of the mutual-block are definitions/theorems/abbrevs. -/
private def isMutualDef (stx : Syntax) : Bool 
goal: Bool

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.isMutualPreambleCommand
code: private def isMutualPreambleCommand (stx : Syntax) : Bool 
goal: Bool

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.splitMutualPreamble.loop
code: private partial def splitMutualPreamble (elems : Array Syntax) : Option (Array Syntax × Array Syntax) 
goal: Option (Array Lean.Syntax × Array Lean.Syntax)

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.Declaration.0.Lean.Elab.Command.splitMutualPreamble
code: private partial def splitMutualPreamble (elems : Array Syntax) : Option (Array Syntax × Array Syntax) 
goal: Option (Array Lean.Syntax × Array Lean.Syntax)

full_name: Lean.Elab.Command.findCommonPrefix.findCommon
code: /--
Find the common namespace for the given names.
Example:
```
findCommonPrefix [`Lean.Elab.eval, `Lean.mkConst, `Lean.Elab.Tactic.evalTactic]
-- `Lean
```
-/
def findCommonPrefix (ns : List Name) : Name 
goal: Lean.Name

full_name: Lean.Elab.Command.findCommonPrefix
code: /--
Find the common namespace for the given names.
Example:
```
findCommonPrefix [`Lean.Elab.eval, `Lean.mkConst, `Lean.Elab.Tactic.evalTactic]
-- `Lean
```
-/
def findCommonPrefix (ns : List Name) : Name 
goal: Lean.Name

full_name: Lean.Elab.Command.findCommonPrefix.go
code: /--
Find the common namespace for the given names.
Example:
```
findCommonPrefix [`Lean.Elab.eval, `Lean.mkConst, `Lean.Elab.Tactic.evalTactic]
-- `Lean
```
-/
def findCommonPrefix (ns : List Name) : Name 
goal: Lean.Name

full_name: Lean.Elab.Command.expandMutualNamespace
code: @[builtin_macro Lean.Parser.Command.mutual]
def expandMutualNamespace : Macro 
goal: Lean.Macro

full_name: Lean.Elab.Command.expandMutualElement
code: @[builtin_macro Lean.Parser.Command.mutual]
def expandMutualElement : Macro 
goal: Lean.Macro

full_name: Lean.Elab.Command.expandMutualPreamble
code: @[builtin_macro Lean.Parser.Command.mutual]
def expandMutualPreamble : Macro 
goal: Lean.Macro

full_name: Lean.Elab.Command.elabMutual
code: @[builtin_command_elab «mutual», builtin_incremental]
def elabMutual : CommandElab 
goal: Lean.Elab.Command.CommandElab

full_name: Lean.Elab.Command.elabAttr
code: @[builtin_command_elab «attribute»] def elabAttr : CommandElab 
goal: Lean.Elab.Command.CommandElab

full_name: Lean.Elab.Command.expandInitialize
code: @[builtin_macro Lean.Parser.Command.«initialize»] def expandInitialize : Macro
  
goal: Lean.Macro

full_name: Lean.Elab.Command.initFn._@..lake.packages.lean4.src.lean.Lean.Elab.Declaration._hyg.8031
code: builtin_initialize
  registerTraceClass `Elab.axiom
goal: IO Unit