module Symbol:constant and function symbolssig..end
A symbol consists of
type sort =
| |
Predicate |
(* | a predicate symbol of the input signature | *) |
| |
Function |
(* | a function symbol of the input signature | *) |
| |
Skolem |
(* | a skolem constant | *) |
| |
Connection |
(* | a predicate that connects clauses split in preprocessing | *) |
| |
FD_Relation |
(* | finite model finding: relational representation of functions (predicate). for each arity exists a unique relation symbol. | *) |
| |
FD_Size_Marker |
(* | finite model finding: a marker for the domain size (predicate) | *) |
| |
FD_Element |
(* | finite model finding: domain element (constant) | *) |
| |
FD_Symbol |
(* | finite model finding: symbol of original signature transformed into a constant | *) |
type symbol
module SymbolTable:Hashtbl.Swith type key = symbol
Hashtbl with symbols as keys.
val equality : symbolval diff : symbolval lemma_root : symbolval create_predicate : string -> int -> symbolSymbol.create_predicate name arity registers a predicate symbol and returns it.val create_function : string -> int -> symbolSymbol.create_function name arity registers a function symbol and returns it.val create_skolem : ?arity:int -> ?name:string option -> unit -> symbolarity is 0 by default, so a skolem constant will be created.val create_connection : int -> symbolval get_fd_relation : int -> symbol
this symbol has the given arity,
that is it represents function symbols of arity - 2.
val get_fd_size_marker : int -> symbolval get_fd_element : int -> symbolval create_fd_symbol : symbol -> symbolval get_symbol_from_fd_symbol : symbol -> symbolSymbol.create_fd_symbol.
fails with an exception if Symbol.create_fd_symbol
has not been called before.val name : symbol -> stringval arity : symbol -> intval id : symbol -> intval sort : symbol -> sortval equal : symbol -> symbol -> boolval compare : symbol -> symbol -> intval compare_name : symbol -> symbol -> intval is_predicate : symbol -> boolval is_function : symbol -> boolval is_input : symbol -> boolval is_skolem : symbol -> boolval is_connection : symbol -> boolval is_fd_relation : symbol -> boolval is_fd_size_marker : symbol -> boolval is_fd_element : symbol -> boolval is_fd_symbol : symbol -> boolval to_string : ?pretty:bool -> symbol -> stringval sort_to_string : sort -> string