module Predicate:Information associated with predicates. This includes:sig
..end
access
.type
predicate
val get_symbol : predicate -> Term.symbol
val get_declarations : predicate -> Opt.declaration list
val get_discrimination_hints : predicate -> Opt.discrimination_values
val get_delta_predicate : predicate -> predicate
val get_main_predicate : predicate -> predicate
val get_is_builtin : predicate -> bool
val get_all_bound_reader : predicate -> Access.Reader.reader
val get_writers : predicate -> Access.Writer.writer list
val has_delta_predicate : predicate -> bool
predicate
is assumed to be not a delta predicate.val assert_unit_clause : predicate -> Term.term -> unit
val add_declaration : predicate -> Opt.declaration -> unit
val extent_size : predicate -> int
val default_reader : predicate -> Access.Reader.reader
Not_found
if there is no reader associated with the predicate.val applicability : predicate -> Opt.binding_pattern -> Opt.applicability_value
val choose_best_reader : predicate -> Opt.binding_pattern -> Access.Reader.reader
val ensure_ready_to_assert : predicate -> unit
val ensure_ready_to_run : predicate -> unit
val ensure_delta_ready_to_run : predicate -> unit
A predicate table maintains an association between predicate symbols
and predicate objects.
type
predicate_table
module PredicateTable:sig
..end
val make_predicate_table : unit -> predicate_table
val find_predicate : predicate_table -> Term.symbol -> predicate
val abolish : predicate_table -> Term.symbol -> unit
val insert : predicate -> Term.term -> Fact.entry -> unit
val remove_variant : predicate -> Term.term -> unit
val clear_delta_predicate : predicate -> unit