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

full_name: Lean.instInhabitedProjectionFunctionInfo
code: /--
Given a structure `S`, Lean automatically creates an auxiliary definition (projection function)
for each field. This structure caches information about these auxiliary definitions.
-/
structure ProjectionFunctionInfo where
  /-- Constructor associated with the auxiliary projection function. -/
  ctorName : Name
  /-- Number of parameters in the structure -/
  numParams : Nat
  /-- The field index associated with the auxiliary projection function. -/
  i : Nat
  /-- `true` if the structure is a class. -/
  fromClass : Bool
  deriving Inhabited
goal: Inhabited Lean.ProjectionFunctionInfo

full_name: Lean.ProjectionFunctionInfo.fromClass
code: /--
Given a structure `S`, Lean automatically creates an auxiliary definition (projection function)
for each field. This structure caches information about these auxiliary definitions.
-/
structure ProjectionFunctionInfo where
  /-- Constructor associated with the auxiliary projection function. -/
  ctorName : Name
  /-- Number of parameters in the structure -/
  numParams : Nat
  /-- The field index associated with the auxiliary projection function. -/
  i : Nat
  /-- `true` if the structure is a class. -/
  fromClass : Bool
  deriving Inhabited
goal: Bool

full_name: Lean.ProjectionFunctionInfo.i
code: /--
Given a structure `S`, Lean automatically creates an auxiliary definition (projection function)
for each field. This structure caches information about these auxiliary definitions.
-/
structure ProjectionFunctionInfo where
  /-- Constructor associated with the auxiliary projection function. -/
  ctorName : Name
  /-- Number of parameters in the structure -/
  numParams : Nat
  /-- The field index associated with the auxiliary projection function. -/
  i : Nat
  /-- `true` if the structure is a class. -/
  fromClass : Bool
  deriving Inhabited
goal: Nat

full_name: Lean.ProjectionFunctionInfo
code: /--
Given a structure `S`, Lean automatically creates an auxiliary definition (projection function)
for each field. This structure caches information about these auxiliary definitions.
-/
structure ProjectionFunctionInfo where
  /-- Constructor associated with the auxiliary projection function. -/
  ctorName : Name
  /-- Number of parameters in the structure -/
  numParams : Nat
  /-- The field index associated with the auxiliary projection function. -/
  i : Nat
  /-- `true` if the structure is a class. -/
  fromClass : Bool
  deriving Inhabited
goal: Type

full_name: Lean.ProjectionFunctionInfo.numParams
code: /--
Given a structure `S`, Lean automatically creates an auxiliary definition (projection function)
for each field. This structure caches information about these auxiliary definitions.
-/
structure ProjectionFunctionInfo where
  /-- Constructor associated with the auxiliary projection function. -/
  ctorName : Name
  /-- Number of parameters in the structure -/
  numParams : Nat
  /-- The field index associated with the auxiliary projection function. -/
  i : Nat
  /-- `true` if the structure is a class. -/
  fromClass : Bool
  deriving Inhabited
goal: Nat

full_name: Lean.ProjectionFunctionInfo.ctorName
code: /--
Given a structure `S`, Lean automatically creates an auxiliary definition (projection function)
for each field. This structure caches information about these auxiliary definitions.
-/
structure ProjectionFunctionInfo where
  /-- Constructor associated with the auxiliary projection function. -/
  ctorName : Name
  /-- Number of parameters in the structure -/
  numParams : Nat
  /-- The field index associated with the auxiliary projection function. -/
  i : Nat
  /-- `true` if the structure is a class. -/
  fromClass : Bool
  deriving Inhabited
goal: Lean.Name

full_name: Lean.mkProjectionInfoEx
code: @[export lean_mk_projection_info]
def mkProjectionInfoEx (ctorName : Name) (numParams : Nat) (i : Nat) (fromClass : Bool) : ProjectionFunctionInfo 
goal: Lean.ProjectionFunctionInfo

full_name: Lean.ProjectionFunctionInfo.fromClassEx
code: @[export lean_projection_info_from_class]
def ProjectionFunctionInfo.fromClassEx (info : ProjectionFunctionInfo) : Bool 
goal: Bool

full_name: Lean.initFn._@..lake.packages.lean4.src.lean.Lean.ProjFns._hyg.96
code: builtin_initialize projectionFnInfoExt : MapDeclarationExtension ProjectionFunctionInfo ← mkMapDeclarationExtension
goal: IO (Lean.MapDeclarationExtension Lean.ProjectionFunctionInfo)

full_name: Lean.projectionFnInfoExt
code: builtin_initialize projectionFnInfoExt : MapDeclarationExtension ProjectionFunctionInfo ← mkMapDeclarationExtension
goal: Lean.MapDeclarationExtension Lean.ProjectionFunctionInfo

full_name: Lean.addProjectionFnInfo
code: @[export lean_add_projection_info]
def addProjectionFnInfo (env : Environment) (projName : Name) (ctorName : Name) (numParams : Nat) (i : Nat) (fromClass : Bool) : Environment 
goal: Lean.Environment

full_name: Lean.Environment.getProjectionFnInfo?
code: @[export lean_get_projection_info]
def getProjectionFnInfo? (env : Environment) (projName : Name) : Option ProjectionFunctionInfo 
goal: Option Lean.ProjectionFunctionInfo

full_name: Lean.Environment.isProjectionFn
code: def isProjectionFn (env : Environment) (declName : Name) : Bool 
goal: Bool

full_name: Lean.Environment.getProjectionStructureName?
code: /-- If `projName` is the name of a projection function, return the associated structure name -/
def getProjectionStructureName? (env : Environment) (projName : Name) : Option Name 
goal: Option Lean.Name

full_name: Lean.isProjectionFn
code: def isProjectionFn [MonadEnv m] [Monad m] (declName : Name) : m Bool 
goal: m Bool

full_name: Lean.getProjectionFnInfo?
code: def getProjectionFnInfo? [MonadEnv m] [Monad m] (declName : Name) : m (Option ProjectionFunctionInfo) 
goal: m (Option Lean.ProjectionFunctionInfo)