Full implem BU Oracle + eval_form in Formula (impossible in Asta) + transitions_lab...
[tatoo.git] / src / asta.ml
index 19fe29f..bbbba49 100644 (file)
@@ -74,12 +74,20 @@ let transition asta st lab =
 
 let transitions asta st =
   let filter (s,l,f) = State.compare s st = 0 in
-  let rec remove_states l = match l with
+  let rec remove_states = function
     | [] -> []
-    | (a,s,l) :: tl -> (s,l) :: (remove_states tl) in
+    | (s,l,f) :: tl -> (l,f) :: (remove_states tl) in
   (remove_states (SetT.elements (SetT.filter filter asta.trans_q)),
    (remove_states (SetT.elements (SetT.filter filter asta.trans_r))))
 
+let transitions_lab asta lab = 
+  let filter (s,l,f) = QNameSet.mem lab l in
+    let rec remove_lab = function
+      | [] -> []
+      | (s,l,f) :: tl -> (s,f) :: (remove_lab tl) in
+    (remove_lab (SetT.elements (SetT.filter filter asta.trans_q)),
+     (remove_lab (SetT.elements (SetT.filter filter asta.trans_r))))
+
 let empty = {
   quer = StateSet.empty;
   reco = StateSet.empty;