sig
  type react
  type p_class = P_class of Pbrs.react list | P_rclass of Pbrs.react list
  type graph
  type occ = Big.bg * float
  type limit = int
  val typ : Rs.t
  val string_of_react : Pbrs.react -> string
  val parse_react_unsafe :
    lhs:Big.bg -> rhs:Big.bg -> float -> Fun.t option -> Pbrs.react
  val parse_react :
    lhs:Big.bg -> rhs:Big.bg -> float -> Fun.t option -> Pbrs.react option
  val lhs_of_react : Pbrs.react -> Big.bg
  val rhs_of_react : Pbrs.react -> Big.bg
  val string_of_limit : Pbrs.limit -> string
  val is_valid_react : Pbrs.react -> bool
  type react_error
  exception NOT_VALID of Pbrs.react_error
  val is_valid_react_exn : Pbrs.react -> bool
  val string_of_react_err : Pbrs.react_error -> string
  val is_determ : Pbrs.react -> bool
  val is_valid_priority : Pbrs.p_class -> bool
  val is_valid_priority_list : Pbrs.p_class list -> bool
  val cardinal : Pbrs.p_class list -> int
  val apply : Big.bg -> Pbrs.react list -> Big.bg option
  val step : Big.bg -> Pbrs.react list -> Pbrs.occ list * int
  val random_step : Big.bg -> Pbrs.react list -> Pbrs.occ option * int
  val fix : Big.bg -> Pbrs.react list -> Big.bg * int
  val rewrite : Big.bg -> Pbrs.p_class list -> Big.bg * int
  exception MAX of Pbrs.graph * Stats.t
  val bfs :
    s0:Big.bg ->
    priorities:Pbrs.p_class list ->
    predicates:(string * Big.bg) list ->
    max:int -> iter_f:(int -> Big.bg -> unit) -> Pbrs.graph * Stats.t
  exception DEADLOCK of Pbrs.graph * Stats.t * Pbrs.limit
  exception LIMIT of Pbrs.graph * Stats.t
  val sim :
    s0:Big.bg ->
    priorities:Pbrs.p_class list ->
    predicates:(string * Big.bg) list ->
    init_size:int ->
    stop:Pbrs.limit -> iter_f:(int -> Big.bg -> unit) -> Pbrs.graph * Stats.t
  val to_prism : Pbrs.graph -> string
  val to_dot : Pbrs.graph -> name:string -> string
  val to_lab : Pbrs.graph -> string
  val iter_states : f:(int -> Big.bg -> unit) -> Pbrs.graph -> unit
  val write_dot : Pbrs.graph -> name:string -> path:string -> int
  val write_lab : Pbrs.graph -> name:string -> path:string -> int
  val write_prism : Pbrs.graph -> name:string -> path:string -> int
  val write_svg : Pbrs.graph -> name:string -> path:string -> int
  val write_json : Pbrs.graph -> name:string -> path:string -> int
end