]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/mathql/avsUtil.ml
an optimization was inserted
[helm.git] / helm / ocaml / mathql / avsUtil.ml
index 65bcadb15e3c46d8900cd702b7235dfd19610a84..1f01997722c17e646a1b44aac9dc8859a1c864a5 100644 (file)
@@ -52,24 +52,25 @@ let val_true = avs_of_bool true
 (* iterators ****************************************************************)
 
 let grp_iter f al =
-   List.fold_left (fun s a -> I.grp_union s (f a)) I.grp_empty al
+   List.fold_left (fun s a -> I.grp_union s (f a)) I.grp_empty (List.rev al)
 
 let grp_iter2 f al bl = 
-   List.fold_left2 (fun s a b -> I.grp_union s (f a b)) I.grp_empty al bl
+   List.fold_left2 (fun s a b -> I.grp_union s (f a b)) 
+                   I.grp_empty (List.rev al) (List.rev bl)
 
-let iter f al = List.fold_left (fun s a -> I.union s (f a)) I.empty al
-
-let append_iter f al = List.fold_left (fun s a -> I.append (f a) s) I.empty al
+let iter f al = List.fold_left (fun s a -> I.union s (f a)) 
+                               I.empty (List.rev al)
 
 (* other ********************************************************************)
 
 let grp_make_x p vl = grp_iter (I.grp_make p) vl
 
 let x_grp_make_x p rs = 
-   let aux g s _ = I.grp_make p s in
+   let aux g s _ = I.grp_union g (I.grp_make p s) in
    I.iter aux I.grp_empty rs
 
-let make_x s gl = iter (I.make s) gl
+let make_x s gl = 
+   if gl = [] then avs_of_string s else iter (I.make s) gl
 
 let count v = I.iter (fun n _ _ -> succ n) 0 v