sig
  type condition =
      POr of Promelaast.condition * Promelaast.condition
    | PAnd of Promelaast.condition * Promelaast.condition
    | PNot of Promelaast.condition
    | PCall of string
    | PReturn of string
    | PCallOrReturn of string
    | PTrue
    | PFalse
    | PIndexedExp of string
  type state = {
    name : string;
    mutable acceptation : Bool3.bool3;
    mutable init : Bool3.bool3;
    mutable nums : int;
  }
  type trans = {
    start : Promelaast.state;
    stop : Promelaast.state;
    cross : Promelaast.condition;
    mutable numt : int;
  }
  type buchautomata = Promelaast.state list * Promelaast.trans list
  type funcStatus = Call | Return
end