Helper functions for creating auxiliary names used in (old) compiler passes.
@[export lean_mk_eager_lambda_lifting_name]
Equations
- Lean.Compiler.mkEagerLambdaLiftingName n idx = n.mkStr ("_elambda_" ++ toString idx)
Instances For
@[export lean_is_eager_lambda_lifting_name]
Equations
Instances For
Return the name of new definitions in the a given declaration.
Here we consider only declarations we generate code for.
We use this definition to implement add_and_compile
.
Equations
- One or more equations did not get rendered due to their size.
- Lean.Compiler.getDeclNamesForCodeGen (Lean.Declaration.mutualDefnDecl defs) = List.map (fun (d : Lean.DefinitionVal) => d.name) defs
- Lean.Compiler.getDeclNamesForCodeGen (Lean.Declaration.opaqueDecl { name := n, levelParams := levelParams, type := type, value := value, isUnsafe := isUnsafe, all := all }) = [n]
- Lean.Compiler.getDeclNamesForCodeGen (Lean.Declaration.axiomDecl { name := n, levelParams := levelParams, type := type, isUnsafe := isUnsafe }) = [n]
- Lean.Compiler.getDeclNamesForCodeGen x✝ = []
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[export lean_mk_unsafe_rec_name]
We generate auxiliary unsafe definitions for regular recursive definitions. The auxiliary unsafe definition has a clear runtime cost execution model. This function returns the auxiliary unsafe definition name for the given name.
Equations
- Lean.Compiler.mkUnsafeRecName declName = declName.mkStr "_unsafe_rec"
Instances For
@[export lean_is_unsafe_rec_name]
Return some _
if the given name was created using mkUnsafeRecName
Equations
- Lean.Compiler.isUnsafeRecName? (n.str "_unsafe_rec") = some n
- Lean.Compiler.isUnsafeRecName? x✝ = none