module Env:Entry point to "global" settings and datastructures.sig
..end
Processing happens in the context of an env
object. Usually a
single env
is used in a invocation of the system as standalone
program. But of course also several env
s could be used at the
same time.
Associted with an env
are
Cfg.cfg
representing configuration information.Term.symbol_table
.Predicate.predicate_table
. Via the predicate table,
meta information about predicates, such as index declarations,
as well as the extent of predicates (derived or input unit clauses)
can be accessed. Env
provides some functions from Predicate
, with a "symbolic"
interface, i.e. instead of taking symbol objects as input, name
and arity are used.type
env
val make_env : Cfg.cfg -> env
val get_cfg : env -> Cfg.cfg
val get_symbol_table : env -> Term.symbol_table
val get_predicate_table : env -> Predicate.predicate_table
val get_negative_units : env -> NegativeUnits.store
val get_rules : env -> Term.term list
val get_current_result : env -> Tableau.result
val set_current_result : env -> Tableau.result -> unit
val ensure_ready_to_assert : env -> Term.symbol -> Predicate.predicate
val ensure_ready_to_run : env -> Term.symbol -> Predicate.predicate
type
statement_type =
| |
Meta |
| |
Unit |
| |
Rule |
| |
Disjunction |
| |
False |
val classify_statement_functor : env -> Term.symbol -> statement_type
val lookup_predicate : env -> string -> int -> Predicate.predicate
Not_found
if the predicate does not exist.val find_predicate : env -> string -> int -> Predicate.predicate
val add_rule : env -> Term.term -> unit
val add_disjunction : env -> Term.term -> unit
val add_false : env -> unit
val abolish_predicate : env -> string -> int -> unit
val clear_rules : env -> unit
val begin_shared_input : env -> unit
val end_shared_input : env -> unit
val unit_for_env : env -> Term.term -> Term.term