package dolmen
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=b9a6f80bf13fdf1fd69ff2013f583582fa00e13c86ee6f800737fabcfd530458
sha512=84b8c18e56b3fb20674af0a3729b7e15e543f21b0062c565b575b994388eb55ee8123e5d3d31f5f1042b204544b3084089a024c742ab741ddd7e18b5641dd399
doc/dolmen.std/Dolmen_std/Id/index.html
Module Dolmen_std.Id
Source
Standard implementation of identifiers
Type definitions
type value =
| Integer
(*Integers (in base 10 notation), e.g.
*)"123456789"
| Rational
(*Rational (using quotient notation with '/'), e.g.
*)"123/456"
| Real
(*Real (using decimal floating point notation with exponent), e.g.
*)"123.456e789"
| Binary
(*Bitvector in binary notation, e.g.
*)"0b011010111010"
| Hexadecimal
(*Bitvector in hexadecimal notation, e.g.
*)"0x9a23e5f"
| Bitvector
(*Bitvector litteral.
*)| String
(*String litterals.
*)
Types of lexical values typically encountered.
type namespace =
| Var
(*Namespace for variables. Not all variables are necessarily in this namespace, but ids in this namespace must be variables.
*)| Sort
(*Namepsace for sorts and types (only used in smtlib)
*)| Term
(*Most used namespace, used for terms in general (and types outside smtlib).
*)| Attr
(*Namespace for attributes (also called annotations).
*)| Decl
(*Namespace used for naming declarations/definitions/statements...
*)| Track
(*Namespace used to track specific values throughout some files.
*)| Module of string
(*Namespaces defined by modules (used for instance in dedukti).
*)| Value of value
(*The identifier is a value, encoded in a string. Examples include arithmetic constants (e.g.
*)"123456", "123/456", "123.456e789"
), bitvectors (i.e. binary notation), etc...
Namespaces, used to record the lexical scop in which an identifier was parsed.
The type of identifiers, basically a name together with a namespace.
Implemented interfaces
include Dolmen_intf.Id.Logic with type t := t and type namespace := namespace
The namespace for sorts (also called types). Currently only used for smtlib.
Namespace for variables (when they can be syntatically distinguished from constants).
Namespace used for declaration identifiers (for instance used to filter declarations during includes)
Usual comparison functions
Additional functions
Returns a full name for the identifier. NOTE: full names may not be unique and therefore not suitable for comparison of identifiers.
Printing functions.
Standard attributes
Used to define theories; used primarily in alt-ergo where it affects what engine is used to trigger axioms in the theory.