Module Evarnames

val generate_goal_names : unit -> bool

Whether the Generate Goal Names option is enabled.

val of_list : Names.Id.t list -> Names.Id.t

Creates a qualified name from a list of identifiers.

type t

Represents an evar name map.

val empty : t

Returns an empty name map.

val add : Names.Id.t -> Evar.t -> ?parent:Evar.t -> t -> t

Adds a binding for the given undefined evar to the given basename. The absolute path is obtained using the parent of the evar.

val add_fresh : Names.Id.t -> Evar.t -> ?parent:Evar.t -> t -> t

Adds a (potentially fresh) binding for the given undefined evar to the given basename by first checking for conflicts.

val remove : Evar.t -> t -> t

Removes the name of the given evar. This indicates that the evar was defined, and therefore is no longer accessible by name.

val transfer_name : Evar.t -> Evar.t -> t -> t

Transfers the name of the first evar to the second.

val name_of : Evar.t -> t -> Names.Id.t option

Returns the qualified name associated to the evar, if any.

val has_name : Evar.t -> t -> bool

Returns true if the evar has a name. Equivalent to name_of ev <> None but faster since it does not compute the fully qualified name of ev.

val has_unambiguous_name : Evar.t -> t -> bool

Returns true if the evar has a name that is unambiguous.

val resolve : Names.Id.t -> t -> Evar.t

Resolves the given (partially) qualified name to an evar. If the name resolution failed, raises Not_found.