X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Fata.mli;h=8a1119ec5d5d62d164d97813bf58f001029ef184;hp=374beb271372e8f1225c76cd19b9057ed863bfa6;hb=acd23a33d837d03c813212ec3896a86edef16e87;hpb=3c87bbf00b98bcf40dab913cd334846b26cdb71d diff --git a/src/ata.mli b/src/ata.mli index 374beb2..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,23 +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 - -type config = { - sat : StateSet.t; - unsat : StateSet.t; - todo : TransList.t; -} - -val eq_config : config -> config -> bool - -val eval_trans2 : t -> config -> config -> config -> config - -> bool -> bool -> bool -> bool -> Tree.NodeKind.t - -> config +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