Module Fol_gformula.Predicate


module Predicate: sig .. end

val p_true : 'a Fol.t_pred
val p_false : 'a Fol.t_pred
val p_not : 'a Fol.d_pred -> 'a Fol.d_pred
val p_bool : 'a Fol.d_term -> 'a Fol.d_pred
val equal_terms : 'a Fol.d_term -> 'a Fol.d_term -> bool
val p_and : 'a Fol.t_pred -> 'a Fol.t_pred -> 'a Fol.t_pred
val p_or : 'a Fol.t_pred -> 'a Fol.t_pred -> 'a Fol.t_pred
val p_xor : 'a Fol.t_pred -> 'a Fol.t_pred -> 'a Fol.t_pred
val p_eq : 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_pred
val p_neq : 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_pred
val p_implies : 'a Fol.d_pred -> 'a Fol.d_pred -> 'a Fol.d_pred
val p_iff : 'a Fol.d_pred -> 'a Fol.d_pred -> 'a Fol.d_pred
val p_conj : 'a Fol.d_pred list -> 'a Fol.d_pred
val p_disj : 'a Fol.d_pred list -> 'a Fol.d_pred
val p_cond : 'a Fol.d_term -> 'a Fol.d_pred -> 'a Fol.d_pred -> 'a Fol.d_pred
val is_true : 'a Fol.t_pred -> bool
val is_false : 'a Fol.t_pred -> bool
val p_named : string -> 'a Fol.d_pred -> 'a Fol.d_pred
val eq_var : Fol.Var.t -> Fol.Var.t -> bool
val p_forall : Fol.Var.t list -> 'a Fol.d_pred -> 'a Fol.d_pred
val p_exists : Fol.Var.t list -> 'a Fol.d_pred -> 'a Fol.d_pred
val p_subst : (Fol.Var.t -> Fol.Var.t option) ->
Fol.Var.t -> 'a Fol.d_term -> 'a Fol.d_pred -> 'a Fol.d_pred
val e_subst : (Fol.Var.t -> Fol.Var.t option) ->
Fol.Var.t -> 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_term
val apply : (Fol.Var.t * 'a) list -> Fol.Var.t -> 'a option
val e_rename : (Fol.Var.t * Fol.Var.t) list -> 'a Fol.d_term -> 'a Fol.d_term