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

full_name: Lean.Environment.Replay.Context.newConstants
code: structure Context where
  newConstants : HashMap Name ConstantInfo
goal: Lean.HashMap Lean.Name Lean.ConstantInfo

full_name: Lean.Environment.Replay.Context
code: structure Context where
  newConstants : HashMap Name ConstantInfo
goal: Type

full_name: Lean.Environment.Replay.State.env
code: structure State where
  env : Environment
  remaining : NameSet := {}
  pending : NameSet := {}
  postponedConstructors : NameSet := {}
  postponedRecursors : NameSet := {}
goal: Lean.Environment

full_name: Lean.Environment.Replay.State.pending
code: structure State where
  env : Environment
  remaining : NameSet := {}
  pending : NameSet := {}
  postponedConstructors : NameSet := {}
  postponedRecursors : NameSet := {}
goal: Lean.NameSet

full_name: Lean.Environment.Replay.State.postponedConstructors
code: structure State where
  env : Environment
  remaining : NameSet := {}
  pending : NameSet := {}
  postponedConstructors : NameSet := {}
  postponedRecursors : NameSet := {}
goal: Lean.NameSet

full_name: Lean.Environment.Replay.State.postponedRecursors
code: structure State where
  env : Environment
  remaining : NameSet := {}
  pending : NameSet := {}
  postponedConstructors : NameSet := {}
  postponedRecursors : NameSet := {}
goal: Lean.NameSet

full_name: Lean.Environment.Replay.State
code: structure State where
  env : Environment
  remaining : NameSet := {}
  pending : NameSet := {}
  postponedConstructors : NameSet := {}
  postponedRecursors : NameSet := {}
goal: Type

full_name: Lean.Environment.Replay.State.remaining
code: structure State where
  env : Environment
  remaining : NameSet := {}
  pending : NameSet := {}
  postponedConstructors : NameSet := {}
  postponedRecursors : NameSet := {}
goal: Lean.NameSet

full_name: Lean.Environment.Replay.M
code: abbrev M 
goal: Type

full_name: Lean.Environment.Replay.isTodo
code: /-- Check if a `Name` still needs processing. If so, move it from `remaining` to `pending`. -/
def isTodo (name : Name) : M Bool 
goal: Lean.Environment.Replay.M Bool

full_name: Lean.Environment.Replay.throwKernelException
code: /-- Use the current `Environment` to throw a `KernelException`. -/
def throwKernelException (ex : KernelException) : M Unit 
goal: Lean.Environment.Replay.M Unit

full_name: Lean.Environment.Replay.addDecl
code: /-- Add a declaration, possibly throwing a `KernelException`. -/
def addDecl (d : Declaration) : M Unit 
goal: Lean.Environment.Replay.M Unit

full_name: Lean.Environment.Replay.checkPostponedConstructors
code: /--
Check that all postponed constructors are identical to those generated
when we replayed the inductives.
-/
def checkPostponedConstructors : M Unit 
goal: Lean.Environment.Replay.M Unit

full_name: Lean.Environment.Replay.checkPostponedRecursors
code: /--
Check that all postponed recursors are identical to those generated
when we replayed the inductives.
-/
def checkPostponedRecursors : M Unit 
goal: Lean.Environment.Replay.M Unit

full_name: Lean.Environment.replay
code: /--
"Replay" some constants into an `Environment`, sending them to the kernel for checking.

Throws a `IO.userError` if the kernel rejects a constant,
or if there are malformed recursors or constructors for inductive types.
-/
def replay (newConstants : HashMap Name ConstantInfo) (env : Environment) : IO Environment 
goal: IO Lean.Environment