+let get_trans ?(attributes=TagSet.empty) auto states tag =
+ StateSet.fold (fun q acc ->
+ List.fold_left (fun ((tr_acc, l_acc, r_acc) as acc) (ts, tr) ->
+ let ts = if ts == TagSet.star then TagSet.diff ts attributes else ts
+ in
+ if TagSet.mem tag ts then
+ let _, _, _, f = Transition.node tr in
+ let l, r = Formula.st f in
+ (Translist.cons tr tr_acc,
+ StateSet.union l l_acc,
+ StateSet.union r r_acc)
+ else acc) acc (Hashtbl.find auto.trans q))
+ states
+ (Translist.nil, StateSet.empty, StateSet.empty)
+