X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Fsigs.ml;h=a3cf635421ec47e7124bfdd0357cf021517245c4;hb=73755ec720254766e4504ac72684be5e357b6939;hp=dc98baf29eef3489cd95f289d9b93381dd2263d8;hpb=f5d90fb688bc1a9b29815fc33c369856e6c51a67;p=tatoo.git diff --git a/src/sigs.ml b/src/sigs.ml index dc98baf..a3cf635 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 @@ -151,7 +155,6 @@ struct (** Equality between hashconsed values. Equivalent to [==] *) val equal : t -> t -> bool - (** Initializes the internal storage. Any previously hashconsed element is discarded. *) val init : unit -> unit @@ -200,3 +203,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