let module RT = RefinementTool in
let obj =
if (*List.mem `Generated (CicUtil.attributes_of_obj obj) &&*)
- not (CoercGraph.is_a_coercion (Cic.Const (uri, [])))
+ not (CoercDb.is_a_coercion' (Cic.Const (uri, [])))
then
refinement_toolkit.RT.pack_coercion_obj obj
else
(fun uri ->
ignore (LibraryDb.remove_uri uri);
(*CoercGraph.remove_coercion uri;*)
- CicEnvironment.remove_obj uri
- ) uris_to_remove
+ ) uris_to_remove ;
+ CicEnvironment.remove_obj uri
(*** GENERATION OF AUXILIARY LEMMAS ***)
UriManager.UriHashtbl.clear coercion_hashtbl;
CoercDb.remove_coercion (fun (_,_,u1) -> true)
-let add_coercion ~add_composites refinement_toolkit uri arity =
+let add_coercion ~add_composites refinement_toolkit uri arity baseuri =
let coer_ty,_ =
let coer = CicUtil.term_of_uri uri in
CicTypeChecker.type_of_aux' [] [] coer CicUniv.empty_ugraph
else
let new_coercions =
CicCoercion.close_coercion_graph refinement_toolkit src_carr tgt_carr uri
+ baseuri
in
let composite_uris = List.map (fun (_,_,uri,_) -> uri) new_coercions in
if already_in then
(*prerr_endline ("composite for " ^ UriManager.string_of_uri uri);*)
let x =
add_coercion ~add_composites:true refinement_toolkit uri arity
+ (UriManager.buri_of_uri uri)
in
(*prerr_endline ("are: ");
List.iter (fun u -> prerr_endline (UriManager.string_of_uri u)) x;