sig
type primitive =
L_eq
| L_neq
| I_add
| I_sub
| I_mul
| I_div
| I_mod
| I_opp
| I_lt
| I_leq
| I_lsl
| I_lsr
| I_band
| I_bor
| I_bxor
| I_bnot
| R_add
| R_sub
| R_mul
| R_div
| R_opp
| R_lt
| R_leq
| R_of_I
| I_of_R
| B_and
| B_or
| B_not
type t =
Ttrue
| Tfalse
| Tint of string
| Treal of string
| Tprim of LogicRaw.TERM.primitive * LogicRaw.TERM.t list
| Tcall of LogicId.id * LogicRaw.TERM.t list
| Tgetfield of LogicRaw.TERM.t * LogicTau.field
| Tsetfield of LogicRaw.TERM.t * LogicTau.field * LogicRaw.TERM.t
| Taccess of LogicRaw.TERM.t * LogicRaw.TERM.t
| Tupdate of LogicRaw.TERM.t * LogicRaw.TERM.t * LogicRaw.TERM.t
| Tif of LogicRaw.TERM.t * LogicRaw.TERM.t * LogicRaw.TERM.t
| Tlet of LogicRaw.VAR.t * LogicRaw.TERM.t * LogicRaw.TERM.t
| Tvar of LogicRaw.VAR.t
val iter : (LogicRaw.TERM.t -> unit) -> LogicRaw.TERM.t -> unit
val depend : LogicId.Iset.t -> LogicRaw.TERM.t -> LogicId.Iset.t
val equal : LogicRaw.TERM.t -> LogicRaw.TERM.t -> bool
val different : LogicRaw.TERM.t -> LogicRaw.TERM.t -> bool
val i_compute :
(My_bigint.t -> My_bigint.t -> My_bigint.t) ->
string -> string -> LogicRaw.TERM.t
val i_compare : (int -> bool) -> string -> string -> LogicRaw.TERM.t
val e_not : LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_and : LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_or : LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_zero : LogicRaw.TERM.t
val e_int : int -> LogicRaw.TERM.t
val e_prim :
LogicRaw.TERM.primitive -> LogicRaw.TERM.t list -> LogicRaw.TERM.t
val e_call : LogicId.id -> LogicRaw.TERM.t list -> LogicRaw.TERM.t
val e_cond :
LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_getfield : LogicRaw.TERM.t -> LogicTau.field -> LogicRaw.TERM.t
val e_setfield :
LogicRaw.TERM.t -> LogicTau.field -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_access : LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_update :
LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_hasvar : LogicRaw.VAR.t list -> LogicRaw.TERM.t -> bool
end