]> matita.cs.unibo.it Git - helm.git/commitdiff
ranking function fixed: when graphs are collapsed one step links are not updated...
authorEnrico Tassi <enrico.tassi@inria.fr>
Sat, 19 Apr 2008 16:27:28 +0000 (16:27 +0000)
committerEnrico Tassi <enrico.tassi@inria.fr>
Sat, 19 Apr 2008 16:27:28 +0000 (16:27 +0000)
thus you can not rely on them, just use the closures!

helm/software/components/cic/cicUniv.ml

index 699af7847a029b05345ef2c49817561ca92a6e59..2bfbc92a32f999553815ee7f7326ebbe2ee5a3d4 100644 (file)
@@ -595,26 +595,27 @@ let add_eq ?fast u v b =
 (* ugly *)
 let rank = ref MAL.empty;;
 
-let do_rank (b,_,_) =
-  
+let do_rank (b,_,_ as ugraph) =
+(*         print_ugraph ugraph; *)
    let keys = MAL.fold (fun k _ acc -> k::acc) b [] in
    let fall =
      List.fold_left 
        (fun acc u ->
-         let rec aux seen = function
+         let rec aux seen = function
            | [] -> 0, seen
-           | x::tl when SOF.mem x seen -> aux seen tl
+           | x::tl when SOF.mem x seen -> aux seen tl
            | x::tl ->
+(*                prerr_endline (String.make k '.' ^ string_of_universe x); *)
                let seen = SOF.add x seen in
-               let t1, seen = aux seen (SOF.elements (repr x b).one_s_eq) in
-               let t2, seen = aux seen (SOF.elements (repr x b).one_s_ge) in
-               let t3, seen = aux seen (SOF.elements (repr x b).one_s_gt) in
-               let t4, seen = aux seen tl in
+               let t1, seen = aux (k+1) seen (SOF.elements (repr x b).eq_closure) in
+               let t3, seen = aux (k+1) seen (SOF.elements (repr x b).gt_closure) in
+               let t2, seen = aux (k+1) seen (SOF.elements (repr x b).ge_closure) in
+               let t4, seen = aux seen tl in
                max (max t1 t2) 
-                 (max (if SOF.is_empty (repr x b).one_s_gt then 0 else t3+1) t4),
+                 (max (if SOF.is_empty (repr x b).gt_closure then 0 else t3+1) t4),
                seen 
          in
-         let rank, _ = aux SOF.empty [u] in
+         let rank, _ = aux SOF.empty [u] in
          MAL.add u rank acc) 
        MAL.empty
    in