Equations
- Lean.Compiler.neutralExpr = Lean.mkConst `_neutral
Equations
- Lean.Compiler.unreachableExpr = Lean.mkConst `_unreachable
Equations
- Lean.Compiler.mkLcProof pred = Lean.mkApp (Lean.mkConst `lcProof) pred
@[inline]
def
Lean.Compiler.atMostOnce.seq
(f : Lean.Compiler.atMostOnce.Visitor)
(g : Lean.Compiler.atMostOnce.Visitor)
:
Equations
- Lean.Compiler.atMostOnce.seq f g d = match f d with | { found := found, result := false } => { found := found, result := false } | other => g other
Equations
- Lean.Compiler.atMostOnce.instAndThenVisitor = { andThen := fun a b => Lean.Compiler.atMostOnce.seq a (b ()) }
@[inline]
Equations
@[inline]
Equations
- One or more equations did not get rendered due to their size.
@[export lean_at_most_once]
Return true iff the free variable with id x
occurs at most once in e
Equations
- Lean.Compiler.atMostOnce e x = match Lean.Compiler.atMostOnce.visit x e { found := false, result := true } with | { found := found, result := result } => result
@[export lean_mk_eager_lambda_lifting_name]
Equations
- Lean.Compiler.mkEagerLambdaLiftingName n idx = Lean.Name.mkStr n ("_elambda_" ++ toString idx)
@[export lean_is_eager_lambda_lifting_name]
Equations
- One or more equations did not get rendered due to their size.
@[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 = Lean.Name.mkStr declName "_unsafe_rec"
@[export lean_is_unsafe_rec_name]
Return some _
if the given name was created using mkUnsafeRecName
Equations
- Lean.Compiler.isUnsafeRecName? _fun_discr = match _fun_discr with | Lean.Name.str n "_unsafe_rec" a => some n | x => none