sig
type relation =
L_eq
| L_neq
| I_lt
| I_leq
| R_lt
| R_leq
| B_true
| B_false
type t =
Ptrue
| Pfalse
| Prel of LogicRaw.PRED.relation * LogicRaw.TERM.t list
| Pcall of LogicId.id * LogicRaw.TERM.t list
| Pimplies of LogicRaw.PRED.t * LogicRaw.PRED.t
| Pand of LogicRaw.PRED.t * LogicRaw.PRED.t
| Por of LogicRaw.PRED.t * LogicRaw.PRED.t
| Piff of LogicRaw.PRED.t * LogicRaw.PRED.t
| Pnot of LogicRaw.PRED.t
| Pnamed of LogicId.id * LogicRaw.PRED.t
| Pcond of LogicRaw.TERM.t * LogicRaw.PRED.t * LogicRaw.PRED.t
| Plet of LogicRaw.VAR.t * LogicRaw.TERM.t * LogicRaw.PRED.t
| Pforall of LogicRaw.VAR.t * LogicRaw.PRED.t
| Pexists of LogicRaw.VAR.t * LogicRaw.PRED.t
val iter :
(LogicRaw.PRED.t -> unit) ->
(LogicRaw.TERM.t -> unit) -> LogicRaw.PRED.t -> unit
val depend : LogicId.Iset.t -> LogicRaw.PRED.t -> LogicId.Iset.t
val i_compare : (int -> bool) -> string -> string -> LogicRaw.PRED.t
val p_call : LogicId.id -> LogicRaw.TERM.t list -> LogicRaw.PRED.t
val val_of : LogicRaw.PRED.t -> LogicRaw.PRED.t
val cut : LogicRaw.PRED.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t
val p_not : 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_implies : 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_iff : LogicRaw.PRED.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t
val p_bool : LogicRaw.TERM.t -> LogicRaw.PRED.t
val p_prim :
LogicRaw.PRED.relation -> LogicRaw.TERM.t list -> LogicRaw.PRED.t
val p_hasvar : LogicRaw.VAR.t list -> LogicRaw.PRED.t -> bool
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 p_let :
LogicRaw.VAR.t -> LogicRaw.TERM.t -> LogicRaw.PRED.t -> LogicRaw.PRED.t
end