Add a bitmap to keep track of whether a subtree needs to be
[tatoo.git] / src / ata.mli
index bb94a7c..8a1119e 100644 (file)
@@ -14,7 +14,7 @@
 (***********************************************************************)
 
 (*
-  Time-stamp: <Last modified on 2013-04-04 18:42:38 CEST by Kim Nguyen>
+  Time-stamp: <Last modified on 2013-04-24 23:19:41 CEST by Kim Nguyen>
 *)
 
 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