X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Fsigs.ml;h=102240426e808c351f778c2ce530f6ea388302bc;hb=d9c0e4863807eaf472e875a4bad35cfefe985c95;hp=9fc3e866616ffff6f130dc8b4a8a7b5edd834a12;hpb=9b75e9a2074c357fc2c823156451209d2a4cef8b;p=tatoo.git diff --git a/src/sigs.ml b/src/sigs.ml index 9fc3e86..1022404 100644 --- a/src/sigs.ml +++ b/src/sigs.ml @@ -13,6 +13,10 @@ (* *) (***********************************************************************) +(* + Time-stamp: +*) + (** This module contains all the signatures of the project, to avoid code duplication. Each toplevel module (HCONS, PTSET, ...) corresponds to an existing module in the project. The AUX modules @@ -154,6 +158,10 @@ struct (** Initializes the internal storage. Any previously hashconsed element is discarded. *) val init : unit -> unit + + (** Create a dummy (non-hashconsed) node with a boggus identifer + and hash *) + val dummy : data -> t end @@ -199,3 +207,31 @@ struct val inj_negative : set -> t end end + +module FORMULA = +struct + module type ATOM = + sig + type t + type ctx + val eval : ctx -> t -> bool + val neg : t -> t + include HCONS.S with type t := t + include AUX.Printable with type t := t + end + module type S = + sig + module Atom : ATOM + include HCONS.S + include AUX.Printable with type t := t + val of_bool : bool -> t + val true_ : t + val false_ : t + val or_ : t -> t -> t + val and_ : t -> t -> t + val not_ : t -> t + val diff_ : t -> t -> t + val eval : Atom.ctx -> t -> bool + end + +end