X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Fata.mli;h=8a1119ec5d5d62d164d97813bf58f001029ef184;hp=bb94a7c67ab7c2d32e073cf47686745630530e12;hb=acd23a33d837d03c813212ec3896a86edef16e87;hpb=b00bff88c7902e828804c06b7f9dc55222fdc84e diff --git a/src/ata.mli b/src/ata.mli index bb94a7c..8a1119e 100644 --- a/src/ata.mli +++ b/src/ata.mli @@ -14,7 +14,7 @@ (***********************************************************************) (* - Time-stamp: + Time-stamp: *) type predicate = @@ -66,13 +66,27 @@ module TransList : sig end +type node_summary = private int +val node_summary : bool -> bool -> bool -> bool -> Tree.NodeKind.t -> node_summary +val dummy_summary : node_summary +type config = { + sat : StateSet.t; + unsat : StateSet.t; + todo : TransList.t; + summary : node_summary; + mutable round : int; +} + +module Config : Hcons.S with type data = config + + type t = private { id : Uid.t; mutable states : StateSet.t; mutable selection_states: StateSet.t; transitions: (State.t, (QNameSet.t*SFormula.t) list) Hashtbl.t; mutable cache2 : TransList.t Cache.N2.t; - mutable cache6 : (TransList.t*StateSet.t) Cache.N6.t; + mutable cache4 : Config.t Cache.N4.t; } @@ -81,10 +95,8 @@ val create : StateSet.t -> StateSet.t -> t val reset : t -> unit val get_trans : t -> QNameSet.elt -> StateSet.t -> TransList.t -val eval_trans : t -> TransList.t - -> StateSet.t -> StateSet.t -> StateSet.t -> StateSet.t - -> bool -> bool -> bool -> bool -> Tree.NodeKind.t - -> TransList.t*StateSet.t + +val eval_trans : t -> Config.t -> Config.t -> Config.t -> Config.t -> Config.t val add_trans : t -> State.t -> QNameSet.t -> SFormula.t -> unit val print : Format.formatter -> t -> unit