Correct TP algorithm with fixed point (to be tested).
[tatoo.git] / src / asta.ml
index d866005..965486a 100644 (file)
@@ -88,6 +88,14 @@ let transitions_lab asta lab =
     (remove_lab (SetT.elements (SetT.filter filter asta.trans_q)),
      (remove_lab (SetT.elements (SetT.filter filter asta.trans_r))))
 
+let transitions_st_lab asta q lab = 
+  let filter (s,l,f) = q = s && QNameSet.mem lab l in
+    let rec remove_st_lab = function
+      | [] -> []
+      | (s,l,f) :: tl -> f :: (remove_st_lab tl) in
+    (remove_st_lab (SetT.elements (SetT.filter filter asta.trans_q)),
+     (remove_st_lab (SetT.elements (SetT.filter filter asta.trans_r))))
+
 let empty = {
   quer = StateSet.empty;
   reco = StateSet.empty;