feat: mkUnsafeRecName and isUnsafeRecName? in Lean
This commit is contained in:
parent
91cedab090
commit
20c041b421
1 changed files with 14 additions and 0 deletions
|
|
@ -82,5 +82,19 @@ match env.find? n with
|
|||
| none => Except.error "unknow declaration"
|
||||
| _ => Except.error "declaration is not a definition"
|
||||
|
||||
/--
|
||||
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. -/
|
||||
@[export lean_mk_unsafe_rec_name]
|
||||
def mkUnsafeRecName (declName : Name) : Name :=
|
||||
mkNameStr declName "_unsafe_rec"
|
||||
|
||||
/-- Return `some _` if the given name was created using `mkUnsafeRecName` -/
|
||||
@[export lean_is_unsafe_rec_name]
|
||||
def isUnsafeRecName? : Name → Option Name
|
||||
| Name.str n "_unsafe_rec" _ => some n
|
||||
| _ => none
|
||||
|
||||
end Compiler
|
||||
end Lean
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue