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

full_name: Lean.Elab.Term.LetRecDeclView.declName
code: structure LetRecDeclView where
  ref           : Syntax
  attrs         : Array Attribute
  shortDeclName : Name
  declName      : Name
  binderIds     : Array Syntax
  type          : Expr
  mvar          : Expr -- auxiliary metavariable used to lift the 'let rec'
  valStx        : Syntax
  termination   : WF.TerminationHints
goal: Lean.Name

full_name: Lean.Elab.Term.LetRecDeclView.attrs
code: structure LetRecDeclView where
  ref           : Syntax
  attrs         : Array Attribute
  shortDeclName : Name
  declName      : Name
  binderIds     : Array Syntax
  type          : Expr
  mvar          : Expr -- auxiliary metavariable used to lift the 'let rec'
  valStx        : Syntax
  termination   : WF.TerminationHints
goal: Array Lean.Elab.Attribute

full_name: Lean.Elab.Term.LetRecDeclView.shortDeclName
code: structure LetRecDeclView where
  ref           : Syntax
  attrs         : Array Attribute
  shortDeclName : Name
  declName      : Name
  binderIds     : Array Syntax
  type          : Expr
  mvar          : Expr -- auxiliary metavariable used to lift the 'let rec'
  valStx        : Syntax
  termination   : WF.TerminationHints
goal: Lean.Name

full_name: Lean.Elab.Term.LetRecDeclView
code: structure LetRecDeclView where
  ref           : Syntax
  attrs         : Array Attribute
  shortDeclName : Name
  declName      : Name
  binderIds     : Array Syntax
  type          : Expr
  mvar          : Expr -- auxiliary metavariable used to lift the 'let rec'
  valStx        : Syntax
  termination   : WF.TerminationHints
goal: Type

full_name: Lean.Elab.Term.LetRecDeclView.mvar
code: structure LetRecDeclView where
  ref           : Syntax
  attrs         : Array Attribute
  shortDeclName : Name
  declName      : Name
  binderIds     : Array Syntax
  type          : Expr
  mvar          : Expr -- auxiliary metavariable used to lift the 'let rec'
  valStx        : Syntax
  termination   : WF.TerminationHints
goal: Lean.Expr

full_name: Lean.Elab.Term.LetRecDeclView.type
code: structure LetRecDeclView where
  ref           : Syntax
  attrs         : Array Attribute
  shortDeclName : Name
  declName      : Name
  binderIds     : Array Syntax
  type          : Expr
  mvar          : Expr -- auxiliary metavariable used to lift the 'let rec'
  valStx        : Syntax
  termination   : WF.TerminationHints
goal: Lean.Expr

full_name: Lean.Elab.Term.LetRecDeclView.termination
code: structure LetRecDeclView where
  ref           : Syntax
  attrs         : Array Attribute
  shortDeclName : Name
  declName      : Name
  binderIds     : Array Syntax
  type          : Expr
  mvar          : Expr -- auxiliary metavariable used to lift the 'let rec'
  valStx        : Syntax
  termination   : WF.TerminationHints
goal: Lean.Elab.WF.TerminationHints

full_name: Lean.Elab.Term.LetRecDeclView.binderIds
code: structure LetRecDeclView where
  ref           : Syntax
  attrs         : Array Attribute
  shortDeclName : Name
  declName      : Name
  binderIds     : Array Syntax
  type          : Expr
  mvar          : Expr -- auxiliary metavariable used to lift the 'let rec'
  valStx        : Syntax
  termination   : WF.TerminationHints
goal: Array Lean.Syntax

full_name: Lean.Elab.Term.LetRecDeclView.ref
code: structure LetRecDeclView where
  ref           : Syntax
  attrs         : Array Attribute
  shortDeclName : Name
  declName      : Name
  binderIds     : Array Syntax
  type          : Expr
  mvar          : Expr -- auxiliary metavariable used to lift the 'let rec'
  valStx        : Syntax
  termination   : WF.TerminationHints
goal: Lean.Syntax

full_name: Lean.Elab.Term.LetRecDeclView.valStx
code: structure LetRecDeclView where
  ref           : Syntax
  attrs         : Array Attribute
  shortDeclName : Name
  declName      : Name
  binderIds     : Array Syntax
  type          : Expr
  mvar          : Expr -- auxiliary metavariable used to lift the 'let rec'
  valStx        : Syntax
  termination   : WF.TerminationHints
goal: Lean.Syntax

full_name: Lean.Elab.Term.LetRecView
code: structure LetRecView where
  decls     : Array LetRecDeclView
  body      : Syntax
goal: Type

full_name: Lean.Elab.Term.LetRecView.decls
code: structure LetRecView where
  decls     : Array LetRecDeclView
  body      : Syntax
goal: Array Lean.Elab.Term.LetRecDeclView

full_name: Lean.Elab.Term.LetRecView.body
code: structure LetRecView where
  decls     : Array LetRecDeclView
  body      : Syntax
goal: Lean.Syntax

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.LetRec.0.Lean.Elab.Term.mkLetRecDeclView
code: private def mkLetRecDeclView (letRec : Syntax) : TermElabM LetRecView 
goal: Lean.Elab.TermElabM Lean.Elab.Term.LetRecView

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.LetRec.0.Lean.Elab.Term.withAuxLocalDecls
code: private partial def withAuxLocalDecls {α} (views : Array LetRecDeclView) (k : Array Expr → TermElabM α) : TermElabM α 
goal: Lean.Elab.TermElabM α

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.LetRec.0.Lean.Elab.Term.withAuxLocalDecls.loop
code: private partial def withAuxLocalDecls {α} (views : Array LetRecDeclView) (k : Array Expr → TermElabM α) : TermElabM α 
goal: Lean.Elab.TermElabM α

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.LetRec.0.Lean.Elab.Term.elabLetRecDeclValues
code: private def elabLetRecDeclValues (view : LetRecView) : TermElabM (Array Expr) 
goal: Lean.Elab.TermElabM (Array Lean.Expr)

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Elab.LetRec.0.Lean.Elab.Term.registerLetRecsToLift
code: private def registerLetRecsToLift (views : Array LetRecDeclView) (fvars : Array Expr) (values : Array Expr) : TermElabM Unit 
goal: Lean.Elab.TermElabM Unit

full_name: Lean.Elab.Term.elabLetRec
code: @[builtin_term_elab «letrec»] def elabLetRec : TermElab 
goal: Lean.Elab.Term.TermElab