- let do_it obj = txt_of_cic_object ~map_unicode_to_tex 78 style ?flavour prefix obj in
- match CicDischarge.discharge_uri (discharge_uri style) uri with
- | C.InductiveDefinition _ as obj', false ->
- let uri' = discharge_uri style uri in
- TC.typecheck_obj uri' obj';
- (* we loose the sharing in this case *)
- let obj'', _ = E.get_obj Un.default_ugraph uri' in
- let s = do_it obj'' in begin E.remove_obj uri'; s end
- | obj, _ -> do_it obj
+ let do_it obj =
+ let r = txt_of_cic_object ~map_unicode_to_tex 78 style ?flavour prefix obj in
+ Librarian.time_stamp "AT: END MAP "; r
+ in
+ let obj, real =
+ let s = UM.string_of_uri uri in
+ if Str.string_match matita_prefix s 0 then begin
+ Librarian.time_stamp "AT: GETTING OBJECT";
+ let obj, _ = E.get_obj Un.default_ugraph uri in
+ Librarian.time_stamp "AT: DONE ";
+ obj, true
+ end else
+ Ds.discharge_uri discharge_name (discharge_uri style) uri
+ in
+ if real then do_it obj else
+ let newuri = discharge_uri style uri in
+ let _lemmas = LS.add_obj GE.refinement_toolkit newuri obj in
+ do_it obj