12345678910111213141516171819202122232425262728293031323334353637383940414243(* This file is free software, part of dolmen. See file "LICENSE" for more information *)(** Interfaces for Identifiers.
This module defines Interfaces that implementation of identifiers must
respect in order to be used to instantiated the corresponding
language classes. *)(** {2 Signature for Logic languages} *)moduletypeLogic=sigtypet(** The type of identifiers. *)typenamespace(** The type of namespaces. Namespaces are used to distinguish
identifiers with the same name, but that occur in different
contexts. For instance, in smtlib, sorts and terms live in
different namespaces; so a term constant can have the same name
as a sort, and still be syntactically different. *)valsort:namespace(** The namespace for sorts (also called types). Currently only used
for smtlib. *)valterm:namespace(** The usual namespace for terms. *)valattr:namespace(** Namespace used for attributes (also called annotations) in smtlib. *)valdecl:namespace(** Namespace used for declaration identifiers (for instance used
to filter declarations during includes) *)valmod_name:string->namespace(** Namespace used by modules (for instance in dedulkti). *)valmk:namespace->string->t(** Make an identifier from its namespace and name. *)end