Module LogicLang


module LogicLang: sig .. end
Logical Language


type integer_op =
| Iadd
| Isub
| Imul
| Idiv
| Imod

type real_op =
| Radd
| Rsub
| Rmul
| Rdiv

type cmp_op =
| Ceq
| Cneq
| Clt
| Cleq
type term = LogicRaw.TERM.t 
type pred = LogicRaw.PRED.t 
val e_call : LogicId.id -> LogicRaw.TERM.t list -> LogicRaw.TERM.t
val p_call : LogicId.id -> LogicRaw.TERM.t list -> LogicRaw.PRED.t
val e_true : LogicRaw.TERM.t
val e_false : LogicRaw.TERM.t
val e_zero : LogicRaw.TERM.t
val e_int : int -> LogicRaw.TERM.t
val e_float : float -> LogicRaw.TERM.t
val e_bigint : My_bigint.t -> LogicRaw.TERM.t
val e_icst : string -> LogicRaw.TERM.t
val e_rcst : string -> LogicRaw.TERM.t
val unop : LogicRaw.TERM.primitive -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val binop : LogicRaw.TERM.primitive ->
LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val predop : LogicRaw.PRED.relation ->
LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.PRED.t
val i_pred : cmp_op -> LogicRaw.PRED.relation
val i_bool : cmp_op -> LogicRaw.TERM.primitive
val i_op : integer_op -> LogicRaw.TERM.primitive
val r_pred : cmp_op -> LogicRaw.PRED.relation
val r_bool : cmp_op -> LogicRaw.TERM.primitive
val r_op : real_op -> LogicRaw.TERM.primitive
val e_ineg : LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_rneg : LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_icmp : cmp_op -> LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val p_icmp : cmp_op -> LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.PRED.t
val e_rcmp : cmp_op -> LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val p_rcmp : cmp_op -> LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.PRED.t
val p_equal : LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.PRED.t
val p_neq : LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.PRED.t
val e_iop : integer_op -> LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_rop : real_op -> LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_real_of_int : LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_int_of_real : LogicRaw.TERM.t -> LogicRaw.TERM.t
val a_true : LogicRaw.TERM.t
val a_false : LogicRaw.TERM.t
val e_bool : LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_cond : LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t -> 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_bnot : LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_band : LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_bor : LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_bxor : LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_lshift : LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val e_rshift : 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 p_true : LogicRaw.PRED.t
val p_false : LogicRaw.PRED.t
val p_bool : LogicRaw.TERM.t -> LogicRaw.PRED.t
val p_not : LogicRaw.PRED.t -> LogicRaw.PRED.t
val p_implies : LogicRaw.PRED.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t
val p_and : LogicRaw.PRED.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t
val p_or : LogicRaw.PRED.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t
val p_xor : LogicRaw.PRED.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t
val p_iff : LogicRaw.PRED.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t
val p_cond : LogicRaw.TERM.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t
val p_named : LogicId.id -> LogicRaw.PRED.t -> LogicRaw.PRED.t
val p_hide : 'a -> 'a
val p_conj : LogicRaw.PRED.t list -> LogicRaw.PRED.t
val p_disj : LogicRaw.PRED.t list -> LogicRaw.PRED.t
val p_goal : LogicRaw.PRED.t list -> LogicRaw.PRED.t -> LogicRaw.PRED.t
type var = LogicRaw.VAR.t 
type pool = LogicRaw.VAR.pool 
val tau_of_var : LogicRaw.VAR.t -> LogicTau.tau
val pool : unit -> int Pervasives.ref
val fresh : int Pervasives.ref -> string -> LogicTau.tau -> LogicRaw.VAR.t
val e_var : LogicRaw.VAR.t -> LogicRaw.TERM.t
val e_let : ?pool:int Pervasives.ref ->
LogicRaw.VAR.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t -> LogicRaw.TERM.t
val p_let : ?pool:int Pervasives.ref ->
LogicRaw.VAR.t -> LogicRaw.TERM.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t
val p_forall : LogicRaw.VAR.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t
val p_exists : LogicRaw.VAR.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t
val is_atomic : LogicRaw.TERM.t -> bool
module Vmap: LogicRaw.VMAP
module Vset: LogicRaw.VSET
val space : LogicId.space
val pretty : LogicPretty.engine
val pp_tau : LogicTau.tau LogicPretty.printer
val pp_term : LogicRaw.TERM.t LogicPretty.printer
val pp_pred : LogicRaw.PRED.t LogicPretty.printer
val add_depend_tau : LogicId.Iset.t -> LogicTau.tau -> LogicId.Iset.t
val add_depend_term : LogicId.Iset.t -> LogicRaw.TERM.t -> LogicId.Iset.t
val add_depend_pred : LogicId.Iset.t -> LogicRaw.PRED.t -> LogicId.Iset.t