Smtml.SymbolSymbol Module. This module defines names, namespaces, and typed symbols, providing utilities for creating, comparing, and manipulating symbols.
The type name represents a symbol name, which can either be a simple string or an indexed name with a base name and a list of indices.
type t = {ty : Ty.t;The type of the symbol.
*)name : name;The name of the symbol.
*)namespace : namespace;The namespace to which the symbol belongs.
*)}The type t represents a symbol, consisting of a type, a name, and a namespace.
val attr : namespaceattr represents the attribute namespace.
val sort : namespacesort represents the sort (type) namespace.
val term : namespaceterm represents the term (function, constant) namespace.
val var : namespacevar represents the variable namespace.
s @: ty creates a symbol with name s and type ty, belonging to the term (function, constant) namespace.
make ty s creates a symbol with type ty and name s in the term (function, constant) namespace.
make3 ty name ns creates a symbol with type ty, name name, and namespace ns.
mk ns s creates a symbol with name s in the specified namespace ns with a default type.
indexed ns basename indices creates a symbol with an indexed name, where basename is the base name and indices are the associated indices.
val hash : t -> intval equal : t -> t -> Smtml_prelude.Bool.tequal sym1 sym2 checks if sym1 and sym2 are equal.
pp_namespace fmt ns pretty-prints the namespace ns using the formatter fmt.
val to_string : t -> stringto_string sym converts the symbol sym to a string representation.
val to_json : t -> Yojson.Safe.tto_json sym converts the symbol sym to a JSON representation.
module Map : Smtml_prelude.Map.S with type key = tmodule Smtlib : sig ... end