Module Istate


module Istate: sig  end
Global state.


Global state.


type t = {
   mutable current : Context.t;
   mutable symtab : Symtab.t;
   mutable inchannel : Pervasives.in_channel;
   mutable outchannel : Format.formatter;
   mutable eot : string;
   mutable counter : int;
}
val init : unit -> t
Parameters:
() : unit
val s : t

Initialize.

val initialize : bool -> string -> Pervasives.in_channel -> Format.formatter -> unit
Parameters:
pp : bool
eot : string
inch : Pervasives.in_channel
outch : Format.formatter

Accessors to components of global state.

val current : unit -> Context.t
Parameters:
() : unit
val symtab : unit -> Symtab.t
Parameters:
() : unit
val eot : unit -> string
Parameters:
() : unit
val inchannel : unit -> Pervasives.in_channel
Parameters:
() : unit
val outchannel : unit -> Format.formatter
Parameters:
() : unit

Adding to symbol table

val def : Name.t -> Symtab.defn -> unit
Parameters:
n : Name.t
a : Symtab.defn
val sgn : Name.t -> int -> unit
Parameters:
n : Name.t
a : int
val typ : Name.t list -> Dom.t -> unit
Parameters:
nl : Name.t list
c : Dom.t
val entry_of : Name.t -> Symtab.entry option
Parameters:
n : Name.t

Type from the symbol table.

val type_of : Name.t -> Dom.t option
Parameters:
n : Name.t

Get context for name in symbol table

val context_of : Name.t -> Context.t
Parameters:
n : Name.t

Getting the width of bitvector terms from the signature.

val width_of : Term.t -> int option
Parameters:
a : Term.t

Resetting all of the global state.

val reset : unit -> unit
Parameters:
() : unit

Getting either current context or explicitly specified context.

val get_context : Name.t option -> Context.t
Parameters:
?? : Name.t option

Set input and output channels.

val set_inchannel : Pervasives.in_channel -> unit
Parameters:
ch : Pervasives.in_channel
val set_outchannel : Format.formatter -> unit
Parameters:
fmt : Format.formatter
val flush : unit -> unit
Parameters:
() : unit
val nl : unit -> unit
Parameters:
() : unit

Context.

val ctxt_of : Name.t option -> Atom.Set.t
Parameters:
?? : Name.t option

Canonization w.r.t current state.

val can : Term.t -> Term.t
Parameters:
a : Term.t
val sigma : Sym.t -> Term.t list -> Term.t
Parameters:
f : Sym.t
l : Term.t list

Create a fresh name for a state.

val fresh_state_name : unit -> Name.t
Parameters:
() : unit

Change current state.

val save : Name.t option -> Name.t
Parameters:
arg : Name.t option
val restore : Name.t -> unit
Parameters:
n : Name.t
val remove : Name.t -> unit
Parameters:
n : Name.t
val forget : unit -> unit
Parameters:
() : unit

Adding a new fact

val process : Name.t option -> Atom.t -> Name.t Context.Status.t
Parameters:
n : Name.t option
val valid : Name.t option -> Atom.t -> bool
Parameters:
n : Name.t option
a : Atom.t
val unsat : Name.t option -> Atom.t -> bool
Parameters:
n : Name.t option
a : Atom.t
val model : Name.t option -> Term.t list -> (Term.Map.key * Term.t) list
Parameters:
n : Name.t option
xs : Term.t list

Accessors.

val diseq : Name.t option -> Term.t -> Term.Set.t
Parameters:
n : Name.t option
a : Term.t
val sign : Name.t option -> Term.t -> Sign.t option
Parameters:
n : Name.t option
a : Term.t
val dom : Name.t option -> Term.t -> Dom.t option
Parameters:
n : Name.t option
a : Term.t

Applying maps.

val find : Name.t option -> Th.t -> Term.t -> Term.t
Parameters:
n : Name.t option
i : Th.t
x : Term.t
val inv : Name.t option -> Th.t -> Term.t -> Term.t
Parameters:
n : Name.t option
i : Th.t
b : Term.t
val use : Name.t option -> Th.t -> Term.t -> Term.Set.t
Parameters:
n : Name.t option
i : Th.t

Solution sets.

val solution : Name.t option -> Th.t -> (Term.t * Term.t) list
Parameters:
n : Name.t option
i : Th.t

Solver.

val solve : Th.t -> Term.t * Term.t -> (Term.t * Term.t) list
Parameters:
i : Th.t
(a,b) : Term.t * Term.t

Equality/disequality test.

val is_equal : Term.t -> Term.t -> Three.t
Parameters:
a : Term.t
b : Term.t

Sat solver

val sat : Prop.t -> (Prop.Assignment.t * Name.t) option
Parameters:
p : Prop.t

Splitting.

val split : unit -> Atom.Set.t
Parameters:
() : unit