]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/cic/cicUniv.ml
matitadep: we now handle the inline of an uri, we removed the -exclude option
[helm.git] / helm / software / components / cic / cicUniv.ml
index beb8a233fb58b3f56fb516131ca1b14188182bf0..cf6b6eeffba96fb5796f7049c025a3635730829b 100644 (file)
@@ -474,8 +474,14 @@ let add_eq u v b =
 let rank = ref MAL.empty;;
 
 let do_rank (b,_,_) =
-(*         print_ugraph ugraph; *)
-   let keys = MAL.fold (fun k _ acc -> k::acc) b [] in
+   let keys = 
+     MAL.fold 
+       (fun k v acc -> 
+          SOF.union acc (SOF.union (SOF.singleton k) 
+            (SOF.union v.eq_closure (SOF.union v.gt_closure v.ge_closure))))
+       b SOF.empty 
+   in
+   let keys = SOF.elements keys in
    let fall =
      List.fold_left 
        (fun acc u ->
@@ -483,7 +489,6 @@ let do_rank (b,_,_) =
            | [] -> 0, seen
            | x::tl when SOF.mem x seen -> aux k seen tl
            | x::tl ->
-(*                prerr_endline (String.make k '.' ^ string_of_universe x); *)
                let seen = SOF.add x seen 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
@@ -498,9 +503,12 @@ let do_rank (b,_,_) =
        MAL.empty
    in
    rank := fall keys;
+   let res = ref [] in
    MAL.iter 
      (fun k v -> 
-       prerr_endline (string_of_universe k ^ " = " ^ string_of_int v)) !rank
+        if not (List.mem v !res) then res := v::!res;
+       prerr_endline (string_of_universe k ^ " = " ^ string_of_int v)) !rank;
+   !res 
 ;;
 
 let get_rank u = 
@@ -630,7 +638,7 @@ let write_xml_of_ugraph filename (m,_,_) l =
 
 let univno = fst
 let univuri = function 
-  | _,None -> assert false
+  | _,None -> UriManager.uri_of_string "cic:/fake.con"
   | _,Some u -> u