end
;;
-let compute_keys uri height kind =
- let mk_item orig_ty spec =
- let keys = NnAuto.keys_of_cic_term [] [] [] orig_ty in
+let compute_keys status uri height kind =
+ let mk_item ty spec =
+ let orig_ty = NTacStatus.mk_cic_term [] ty in
+ let status,keys = NnAuto.keys_of_type status orig_ty in
+ let keys =
+ List.map
+ (fun t ->
+ snd (NTacStatus.term_of_cic_term status t (NTacStatus.ctx_of t)))
+ keys
+ in
keys,NCic.Const(NReference.reference_of_spec uri spec)
in
let data =
NCicPp.ppterm ~metasenv:[] ~subst:[] ~context:[] t);
None
end)
- data
+ data
;;
let index_obj_for_auto status (uri, height, _, _, kind) =
(*prerr_endline (string_of_int height);*)
- let data = compute_keys uri height kind in
+ let data = compute_keys status uri height kind in
let status = basic_index_obj data status in
let dump = record_index_obj data :: status#dump in
status#set_dump dump
) hyps,
(text,prefix_len,concl))
) seqs)
- | GrafiteAst.NAuto (_loc, (None,a)) -> NAuto.auto_tac ~params:(None,a)
+ | GrafiteAst.NAuto (_loc, (None,a)) ->
+ NAuto.auto_tac ~params:(None,a) ?trace_ref:None
| GrafiteAst.NAuto (_loc, (Some l,a)) ->
NAuto.auto_tac
- ~params:(Some List.map (fun x -> "",0,x) l,a)
+ ~params:(Some List.map (fun x -> "",0,x) l,a) ?trace_ref:None
| GrafiteAst.NBranch _ -> NTactics.branch_tac ~force:false
| GrafiteAst.NCases (_loc, what, where) ->
NTactics.cases_tac
| GrafiteAst.NCut (_loc, t) -> NTactics.cut_tac (text,prefix_len,t)
(*| GrafiteAst.NDiscriminate (_,what) -> NDestructTac.discriminate_tac ~what:(text,prefix_len,what)
| GrafiteAst.NSubst (_,what) -> NDestructTac.subst_tac ~what:(text,prefix_len,what)*)
- | GrafiteAst.NDestruct _ -> NDestructTac.destruct_tac
+ | GrafiteAst.NDestruct (_,dom,skip) -> NDestructTac.destruct_tac dom skip
| GrafiteAst.NDot _ -> NTactics.dot_tac
| GrafiteAst.NElim (_loc, what, where) ->
NTactics.elim_tac
NTactics.generalize_tac ~where:(text,prefix_len,where)
| GrafiteAst.NId _ -> (fun x -> x)
| GrafiteAst.NIntro (_loc,n) -> NTactics.intro_tac n
+ | GrafiteAst.NIntros (_loc,ns) -> NTactics.intros_tac ns
| GrafiteAst.NInversion (_loc, what, where) ->
NTactics.inversion_tac
~what:(text,prefix_len,what)
| GrafiteAst.NUnfocus _ -> NTactics.unfocus_tac
| GrafiteAst.NWildcard _ -> NTactics.wildcard_tac
| GrafiteAst.NTry (_,tac) -> NTactics.try_tac
- (aux f (text, prefix_len, tac))
+ (f f (text, prefix_len, tac))
| GrafiteAst.NAssumption _ -> NTactics.assumption_tac
| GrafiteAst.NBlock (_,l) ->
NTactics.block_tac (List.map (fun x -> aux f (text,prefix_len,x)) l)
| _ -> obj_kind
in
let obj = uri,height,[],[],obj_kind in
+ (*prerr_endline ("pp new obj \n"^NCicPp.ppobj obj);*)
let old_status = status in
let status = NCicLibrary.add_obj status obj in
let index_obj =
let status =
if index_obj then
let status = index_obj_for_auto status obj in
- index_eq_for_auto status uri
+ (try index_eq_for_auto status uri
+ with _ -> status)
else
status in
(*
in
if nstatus#ng_mode <> `CommandMode then
begin
- HLog.error "error in generating projection/eliminator";
- prerr_endline (NCicPp.ppobj nstatus#obj);
- nstatus, uris
+ (*HLog.warn "error in generating projection/eliminator";*)
+ status, uris
end
else
nstatus, concat_nuris uris nuris
with
- | MultiPassDisambiguator.DisambiguationError _
+ | MultiPassDisambiguator.DisambiguationError _
| NCicTypeChecker.TypeCheckerFailure _ ->
- HLog.warn "error in generating projection/eliminator";
+ (*HLog.warn "error in generating projection/eliminator";*)
status,uris
) (status,`New [] (* uris *)) boxml in
let _,_,_,_,nobj = obj in
[] -> eval_ncommand opts status ("",0,GrafiteAst.NQed Stdpp.dummy_loc)
| _ -> status,`New []))
(* XXX *)
- with _ -> HLog.warn "error in generating inversion principle";
+ with _ -> (*HLog.warn "error in generating inversion principle"; *)
let status = status#set_ng_mode `CommandMode in status)
status
(NCic.Prop::