X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fgrafite_engine%2FgrafiteEngine.ml;h=73118fa56a491bd6703f4c6c5b911b833eb6f366;hb=de94ff76a34259735fd1aca76504c2676773cb73;hp=248c02fa50facd4ee613d89dd9e392e7bb5af269;hpb=2dd6e8f11fa3ac2995f326ecb742d9b4e8948fce;p=helm.git diff --git a/helm/software/components/grafite_engine/grafiteEngine.ml b/helm/software/components/grafite_engine/grafiteEngine.ml index 248c02fa5..73118fa56 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 (NCicLibrary.refresh_uri 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#eq_cache == status#eq_cache 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 @@ -732,6 +763,8 @@ let eval_ng_tac tac = let rec aux f (text, prefix_len, tac) = match tac with | GrafiteAst.NApply (_loc, t) -> NTactics.apply_tac (text,prefix_len,t) + | GrafiteAst.NSmartApply (_loc, t) -> + NnAuto.smart_apply_tac (text,prefix_len,t) | GrafiteAst.NAssert (_loc, seqs) -> NTactics.assert_tac ((List.map @@ -850,6 +883,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