X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fgrafite_engine%2FgrafiteEngine.ml;h=1a7c0a981ac91115cde3bb1f6ad61b75d54fc13f;hb=d4f508a277973778507021761fed85fc7d5be254;hp=248c02fa50facd4ee613d89dd9e392e7bb5af269;hpb=fa0b30be968340ec83c8821169218e7bdcbc8426;p=helm.git diff --git a/helm/software/components/grafite_engine/grafiteEngine.ml b/helm/software/components/grafite_engine/grafiteEngine.ml index 248c02fa5..1a7c0a981 100644 --- a/helm/software/components/grafite_engine/grafiteEngine.ml +++ b/helm/software/components/grafite_engine/grafiteEngine.ml @@ -531,6 +531,7 @@ let record_index_obj = ;; let index_obj_for_auto status (uri, height, _, _, kind) = + prerr_endline (string_of_int height); let mk_item orig_ty spec = let ty,_,_ = NCicMetaSubst.saturate ~delta:max_int [] [] [] orig_ty 0 in let keys = @@ -594,6 +595,36 @@ let index_obj_for_auto status (uri, height, _, _, kind) = status#set_dump dump ;; +let index_eq uri status = + let eq_status = status#eq_cache in + let eq_status1 = NCicParamod.index_obj eq_status uri in + status#set_eq_cache eq_status1 +;; + +let record_index_eq = + let basic_index_eq uri + ~refresh_uri_in_universe + ~refresh_uri_in_term + = index_eq uri + in + NCicLibrary.Serializer.register#run "index_eq" + object(_ : 'a NCicLibrary.register_type) + method run = basic_index_eq + end +;; + +let index_eq_for_auto status uri = + if NnAuto.is_a_fact_obj status uri then + let newstatus = index_eq uri status in + if newstatus == status then status + else + (prerr_endline ("recording " ^ (NUri.string_of_uri uri)); + let dump = record_index_eq uri :: newstatus#dump + in newstatus#set_dump dump) + else + (prerr_endline "Not a fact"; + status) +;; let basic_eval_add_constraint (u1,u2) status = NCicLibrary.add_constraint status u1 u2 @@ -850,6 +881,12 @@ let rec eval_ncommand opts status (text,prefix_len,cmd) = let old_status = status in let status = NCicLibrary.add_obj status obj in let status = index_obj_for_auto status obj in + let status = index_eq_for_auto status uri in +(* + try + index_eq uri status + with _ -> prerr_endline "got an exception"; status + in *) (* prerr_endline (NCicPp.ppobj obj); *) HLog.message ("New object: " ^ NUri.string_of_uri uri); (try