1 (***********************************************************************)
8 (* Copyright 2010-2012 Université Paris-Sud and Centre National de la *)
9 (* Recherche Scientifique. All rights reserved. This file is *)
10 (* distributed under the terms of the GNU Lesser General Public *)
11 (* License, with the special exception on linking described in file *)
14 (***********************************************************************)
20 type label = QNameSet.t
22 type formula = Formula.t
26 type t = state * label * formula
28 let compare (st,la,f) (st',la',f') =
29 let x_1 = State.compare st st' in
31 else let x_2 = QNameSet.compare la la' in
33 else Formula.compare f f'
41 include Set.Make(Transition)
52 exception Not_found_transition
53 exception Transition_not_injective
55 let transition asta st lab =
57 (State.compare s st = 0) && (QNameSet.compare l lab = 0) in
58 let tr_set = SetT.elements (SetT.filter filter asta.trans) in
60 | [] -> raise Not_found_transition
61 | x::y::z -> raise Transition_not_injective
62 | [l] -> Transition.fo l
64 let transitions asta st =
65 let filter (s,l,f) = State.compare s st = 0 in
66 let rec remove_states l = match l with
68 | (a,s,l) :: tl -> (s,l) :: (remove_states tl) in
69 remove_states (SetT.elements (SetT.filter filter asta.trans))
71 let print fmt asta = ()
73 let to_file out asta = ()