Module TOPLlib.ToplAutomaton

type t
type vname = ToplAst.property_name * ToplAst.vertex
type vindex = int
type tindex = int
type transition = {
source : vindex;
target : vindex;
label : ToplAst.label option;
}
val make : ToplAst.t list -> t
val outgoing : t -> vindex -> tindex list
val vname : t -> vindex -> vname
val is_nondet : t -> vindex -> bool
val vcount : t -> int
val transition : t -> tindex -> transition
val is_skip : t -> tindex -> bool

A transition is *skip* when it has no action, its guard is implied by all other guards, and its target equals its source. is_skip automaton t returns true when it can prove that t is skip.

val tcount : t -> int
val max_args : t -> int
val get_start_error_pairs : t -> (vindex * vindex) list

Returns pairs (i,j) of vertex indices corresponding to pairs ((p, "start"), (p, "error")) of vertex names, where p ranges over property names. POST: no vertex index occurs more than once in the result.