diff options
Diffstat (limited to 'tactics')
-rw-r--r-- | tactics/auto.ml | 15 | ||||
-rw-r--r-- | tactics/coretactics.ml4 | 3 | ||||
-rw-r--r-- | tactics/eauto.ml4 | 2 | ||||
-rw-r--r-- | tactics/elimschemes.ml | 1 | ||||
-rw-r--r-- | tactics/eqdecide.ml | 2 | ||||
-rw-r--r-- | tactics/extraargs.ml4 | 3 | ||||
-rw-r--r-- | tactics/hipattern.ml4 | 11 | ||||
-rw-r--r-- | tactics/rewrite.ml | 135 | ||||
-rw-r--r-- | tactics/tacintern.ml | 4 | ||||
-rw-r--r-- | tactics/tacinterp.ml | 13 | ||||
-rw-r--r-- | tactics/tacsubst.ml | 1 | ||||
-rw-r--r-- | tactics/tacticals.mli | 2 | ||||
-rw-r--r-- | tactics/tauto.ml4 | 1 | ||||
-rw-r--r-- | tactics/term_dnet.ml | 4 |
14 files changed, 5 insertions, 192 deletions
diff --git a/tactics/auto.ml b/tactics/auto.ml index aa70d55cc..4f5f53ef0 100644 --- a/tactics/auto.ml +++ b/tactics/auto.ml @@ -141,12 +141,6 @@ type search_entry = stored_data list * stored_data list * Bounded_net.t let empty_se = ([],[],Bounded_net.create ()) -let eq_constr_or_reference x y = - match x, y with - | IsConstr (x,_), IsConstr (y,_) -> eq_constr x y - | IsGlobRef x, IsGlobRef y -> eq_gr x y - | _, _ -> false - let eq_pri_auto_tactic (_, x) (_, y) = if Int.equal x.pri y.pri && Option.equal constr_pattern_eq x.pat y.pat then match x.code,y.code with @@ -189,11 +183,6 @@ let is_transparent_gr (ids, csts) = function let dummy_goal = Goal.V82.dummy_goal -let instantiate_constr_or_ref env sigma c = - let c, ctx = Universes.fresh_global_or_constr_instance env c in - let cty = Retyping.get_type_of env sigma c in - (c, cty), ctx - let strip_params env c = match kind_of_term c with | App (f, args) -> @@ -875,10 +864,6 @@ let (forward_intern_tac, extern_intern_tac) = Hook.make () type hnf = bool -let pr_hint_term = function - | IsConstr (c,_) -> pr_constr c - | IsGlobRef gr -> pr_global gr - type hints_entry = | HintsResolveEntry of (int option * polymorphic * hnf * hints_path_atom * hint_term) list | HintsImmediateEntry of (hints_path_atom * polymorphic * hint_term) list diff --git a/tactics/coretactics.ml4 b/tactics/coretactics.ml4 index a95d71443..02dded782 100644 --- a/tactics/coretactics.ml4 +++ b/tactics/coretactics.ml4 @@ -9,11 +9,8 @@ (*i camlp4deps: "grammar/grammar.cma" i*) open Util -open Names open Locus -open Tacexpr open Misctypes -open Tacinterp DECLARE PLUGIN "coretactics" diff --git a/tactics/eauto.ml4 b/tactics/eauto.ml4 index bb7d2f0d2..fd5310e04 100644 --- a/tactics/eauto.ml4 +++ b/tactics/eauto.ml4 @@ -211,7 +211,7 @@ module SearchProblem = struct let success s = List.is_empty (sig_it s.tacres) - let pr_ev evs ev = Printer.pr_constr_env (Evd.evar_env ev) (Evarutil.nf_evar evs ev.Evd.evar_concl) +(* let pr_ev evs ev = Printer.pr_constr_env (Evd.evar_env ev) (Evarutil.nf_evar evs ev.Evd.evar_concl) *) let filter_tactics glls l = (* let _ = Proof_trees.db_pr_goal (List.hd (sig_it glls)) in *) diff --git a/tactics/elimschemes.ml b/tactics/elimschemes.ml index 617475bb7..9b600409a 100644 --- a/tactics/elimschemes.ml +++ b/tactics/elimschemes.ml @@ -17,7 +17,6 @@ open Term open Indrec open Declarations open Typeops -open Termops open Ind_tables (* Induction/recursion schemes *) diff --git a/tactics/eqdecide.ml b/tactics/eqdecide.ml index 7909b669b..c18fd31d0 100644 --- a/tactics/eqdecide.ml +++ b/tactics/eqdecide.ml @@ -82,8 +82,6 @@ let solveNoteqBranch side = let make_eq () = (*FIXME*) Universes.constr_of_global (Coqlib.build_coq_eq ()) -let make_eq_refl () = -(*FIXME*) Universes.constr_of_global (Coqlib.build_coq_eq_refl ()) let mkDecideEqGoal eqonleft op rectype c1 c2 = let equality = mkApp(make_eq(), [|rectype; c1; c2|]) in diff --git a/tactics/extraargs.ml4 b/tactics/extraargs.ml4 index dc41cf8e3..a2a8675a8 100644 --- a/tactics/extraargs.ml4 +++ b/tactics/extraargs.ml4 @@ -72,9 +72,6 @@ let glob_occs ist l = l let subst_occs evm l = l -type occurrences_or_var = int list or_var -type occurrences = int list - ARGUMENT EXTEND occurrences PRINTED BY pr_int_list_full diff --git a/tactics/hipattern.ml4 b/tactics/hipattern.ml4 index 130e66720..a8bcec288 100644 --- a/tactics/hipattern.ml4 +++ b/tactics/hipattern.ml4 @@ -387,12 +387,6 @@ let match_eq eqn eq_pat = let no_check () = true let check_jmeq_loaded () = Library.library_is_loaded Coqlib.jmeq_module -let build_coq_jmeq_data_in env = - build_coq_jmeq_data (), Univ.ContextSet.empty - -let build_coq_identity_data_in env = - build_coq_identity_data (), Univ.ContextSet.empty - let equalities = [coq_eq_pattern, no_check, build_coq_eq_data; coq_jmeq_pattern, check_jmeq_loaded, build_coq_jmeq_data; @@ -442,11 +436,6 @@ let dest_nf_eq gls eqn = (*** Sigma-types *) -(* Patterns "(existS ?1 ?2 ?3 ?4)" and "(existT ?1 ?2 ?3 ?4)" *) -let coq_ex_pattern_gen ex = lazy PATTERN [ %ex ?X1 ?X2 ?X3 ?X4 ] -let coq_existT_pattern = coq_ex_pattern_gen coq_existT_ref -let coq_exist_pattern = coq_ex_pattern_gen coq_exist_ref - let match_sigma ex = match kind_of_term ex with | App (f, [| a; p; car; cdr |]) when is_global (Lazy.force coq_exist_ref) f -> diff --git a/tactics/rewrite.ml b/tactics/rewrite.ml index 7309e2275..b4b8d468c 100644 --- a/tactics/rewrite.ml +++ b/tactics/rewrite.ml @@ -36,12 +36,7 @@ open Goal open Environ open Tacinterp open Termops -open Genarg -open Extraargs -open Pcoq.Constr -open Entries open Libnames -open Evarutil (** Typeclass-based generalized rewriting. *) @@ -76,7 +71,6 @@ let find_global dir s = (** Global constants. *) -let gen_reference dir s = Coqlib.gen_reference "rewrite" dir s let coq_eq_ref = find_reference ["Init"; "Logic"] "eq" let coq_eq = find_global ["Init"; "Logic"] "eq" let coq_f_equal = find_global ["Init"; "Logic"] "f_equal" @@ -118,13 +112,6 @@ let new_cstr_evar (evd,cstrs) env t = let e_new_cstr_evar evars env t = let evd', t = new_cstr_evar !evars env t in evars := evd'; t -let new_goal_evar (evd,cstrs) env t = - let evd', t = Evarutil.new_evar evd env t in - (evd', cstrs), t - -let e_new_goal_evar evars env t = - let evd', t = new_goal_evar !evars env t in evars := evd'; t - (** Building or looking up instances. *) let extends_undefined evars evars' = @@ -161,7 +148,6 @@ module GlobalBindings (M : sig val relation : string list * string val app_poly : env -> evars -> (evars -> evars * constr) -> constr array -> evars * constr val arrow : evars -> evars * constr - val coq_inverse : evars -> evars * constr end) = struct open M let relation : evars -> evars * constr = find_global (fst relation) (snd relation) @@ -608,14 +594,6 @@ let solve_remaining_by by env prf = indep env.evd in { env with evd = evd' }, prf -let extend_evd sigma ext sigma' = - Evar.Set.fold (fun i acc -> - Evd.add acc i (Evarutil.nf_evar_info sigma' (Evd.find sigma' i))) - ext sigma - -let shrink_evd sigma ext = - Evar.Set.fold (fun i acc -> Evd.remove acc i) ext sigma - let no_constraints cstrs = fun ev _ -> not (Evar.Set.mem ev cstrs) @@ -707,10 +685,6 @@ let make_eq () = let make_eq_refl () = (*FIXME*) Universes.constr_of_global (Coqlib.build_coq_eq_refl ()) -let get_rew_rel r = match r.rew_prf with - | RewPrf (rel, prf) -> rel - | RewCast c -> mkApp (make_eq (),[| r.rew_car; r.rew_from; r.rew_to |]) - let get_rew_prf r = match r.rew_prf with | RewPrf (rel, prf) -> rel, prf | RewCast c -> @@ -1289,25 +1263,6 @@ module Strategies = Some (Some { rew_car = ty; rew_from = t; rew_to = t'; rew_prf = RewCast ckind; rew_evars = evars }) - let fold c : strategy = - fun env avoid t ty cstr evars -> -(* let sigma, (c,_) = Tacinterp.interp_open_constr_with_bindings is env (goalevars evars) c in *) - let sigma, c = Constrintern.interp_open_constr (goalevars evars) env c in - let unfolded = - try Tacred.try_red_product env sigma c - with e when Errors.noncritical e -> - error "fold: the term is not unfoldable !" - in - try - let sigma = Unification.w_unify env sigma CONV ~flags:(Unification.elim_flags ()) - unfolded t in - let c' = Evarutil.nf_evar sigma c in - Some (Some { rew_car = ty; rew_from = t; rew_to = c'; - rew_prf = RewCast DEFAULTcast; - rew_evars = (sigma, snd evars) }) - with e when Errors.noncritical e -> None - - let fold_glob c : strategy = fun env avoid t ty cstr evars -> (* let sigma, (c,_) = Tacinterp.interp_open_constr_with_bindings is env (goalevars evars) c in *) @@ -1426,9 +1381,6 @@ let cl_rewrite_clause_aux ?(abs=None) strat env avoid sigma concl is_hyp : resul | Some None -> Some None | None -> None -let rewrite_refine (evd,c) = - Tacmach.refine c - let cl_rewrite_clause_tac ?abs strat meta clause gl = let evartac evd = Refiner.tclEVARS (Evd.clear_metas evd) in let treat res = @@ -1582,30 +1534,11 @@ let cl_rewrite_clause_strat strat clause = let cl_rewrite_clause l left2right occs clause gl = cl_rewrite_clause_strat (rewrite_with (general_rewrite_unif_flags ()) l left2right occs) clause gl -let occurrences_of = function - | n::_ as nl when n < 0 -> (false,List.map abs nl) - | nl -> - if List.exists (fun n -> n < 0) nl then - error "Illegal negative occurrence number."; - (true,nl) - -open Extraargs - -let apply_constr_expr c l2r occs = fun env avoid t ty cstr evars -> - let evd, c = Constrintern.interp_open_constr (goalevars evars) env c in - apply_lemma (general_rewrite_unif_flags ()) (Evd.empty, (c, NoBindings)) - l2r None occs env avoid t ty cstr (evd, cstrevars evars) - let apply_glob_constr c l2r occs = fun env avoid t ty cstr evars -> let evd, c = (Pretyping.understand_tcc (goalevars evars) env c) in apply_lemma (general_rewrite_unif_flags ()) (Evd.empty, (c, NoBindings)) l2r None occs env avoid t ty cstr (evd, cstrevars evars) -let interp_constr_list env sigma = - List.map (fun c -> - let evd, c = Constrintern.interp_open_constr sigma env c in - (evd, (c, NoBindings)), true, None) - let interp_glob_constr_list env sigma = List.map (fun c -> let evd, c = Pretyping.understand_tcc sigma env c in @@ -2112,74 +2045,6 @@ let _ = Hook.set Tactics.setoid_symmetry setoid_symmetry let _ = Hook.set Tactics.setoid_symmetry_in setoid_symmetry_in let _ = Hook.set Tactics.setoid_transitivity setoid_transitivity -let implify id gl = - let (_, b, ctype) = pf_get_hyp gl id in - let binders,concl = decompose_prod_assum ctype in - let evm, ctype' = - match binders with - | (_, None, ty as hd) :: tl when noccurn 1 concl -> - let env = Environ.push_rel_context tl (pf_env gl) in - let sigma = project gl in - let tyhd = Retyping.get_type_of env sigma ty - and tyconcl = Retyping.get_type_of (Environ.push_rel hd env) sigma concl in - let ((sigma,_), app), unfold = - PropGlobal.arrow_morphism env (sigma, Evar.Set.empty) tyhd - (subst1 mkProp tyconcl) ty (subst1 mkProp concl) - in - sigma, it_mkProd_or_LetIn app tl - | _ -> project gl, ctype - in tclTHEN (Refiner.tclEVARS evm) (Tacmach.convert_hyp (id, b, ctype')) gl - -let rec fold_matches env sigma c = - map_constr_with_full_binders Environ.push_rel - (fun env c -> - match kind_of_term c with - | Case _ -> - let cst, env, c', _eff = fold_match ~force:true env sigma c in - fold_matches env sigma c' - | _ -> fold_matches env sigma c) - env c - -let fold_match_tac c gl = - let _, _, c', eff = fold_match ~force:true (pf_env gl) (project gl) c in - let gl = { gl with sigma = Evd.emit_side_effects eff gl.sigma } in - change (Some (snd (Patternops.pattern_of_constr (project gl) c))) c' onConcl gl - -let fold_matches_tac c gl = - let c' = fold_matches (pf_env gl) (project gl) c in - (* let gl = { gl with sigma = Evd.emit_side_effects eff gl.sigma } in *) - change (Some (snd (Patternops.pattern_of_constr (project gl) c))) c' onConcl gl - -let myapply id l gl = - let gr = id in - let _, impls = List.hd (Impargs.implicits_of_global gr) in - let env = pf_env gl in - let evars = ref (project gl) in - let evd, ty = fresh_global env !evars gr in - let _ = evars := evd in - let app = - let rec aux ty impls args args' = - match impls, kind_of_term ty with - | Some (_, _, (_, _)) :: impls, Prod (n, t, t') -> - let arg = Evarutil.e_new_evar evars env t in - aux (subst1 arg t') impls args (arg :: args') - | None :: impls, Prod (n, t, t') -> - (match args with - | [] -> - if dependent (mkRel 1) t' then - let arg = Evarutil.e_new_evar evars env t in - aux (subst1 arg t') impls args (arg :: args') - else - let arg = Evarutil.mk_new_meta () in - evars := meta_declare (destMeta arg) t !evars; - aux (subst1 arg t') impls args (arg :: args') - | arg :: args -> - aux (subst1 arg t') impls args (arg :: args')) - | _, _ -> mkApp (Universes.constr_of_global gr, Array.of_list (List.rev args')) - in aux ty impls l [] - in - tclTHEN (Refiner.tclEVARS !evars) (apply app) gl - let get_lemma_proof f env evm x y = let (evm, _), c = f env (evm,Evar.Set.empty) x y in evm, c diff --git a/tactics/tacintern.ml b/tactics/tacintern.ml index 35952c9dd..f68f75359 100644 --- a/tactics/tacintern.ml +++ b/tactics/tacintern.ml @@ -43,10 +43,6 @@ let error_syntactic_metavariables_not_allowed loc = let error_tactic_expected loc = user_err_loc (loc,"",str "Tactic expected.") -let skip_metaid = function - | AI x -> x - | MetaId (loc,_) -> error_syntactic_metavariables_not_allowed loc - (** Generic arguments *) type glob_sign = Genintern.glob_sign = { diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml index b7018fe45..1d76f4afd 100644 --- a/tactics/tacinterp.ml +++ b/tactics/tacinterp.ml @@ -294,9 +294,6 @@ let interp_ident = interp_ident_gen false let interp_fresh_ident = interp_ident_gen true let pf_interp_ident id gl = interp_ident_gen false id (pf_env gl) -let interp_global ist gl gr = - Evd.fresh_global (pf_env gl) (project gl) gr - (* Interprets an optional identifier which must be fresh *) let interp_fresh_name ist env = function | Anonymous -> Anonymous @@ -578,14 +575,6 @@ let interp_auto_lemmas ist env sigma lems = let pf_interp_type ist gl = interp_type ist (pf_env gl) (project gl) -let new_interp_type ist c k = - let open Proofview.Goal in - let open Proofview.Notations in - Proofview.Goal.raw_enter begin fun gl -> - let (sigma, c) = interp_type ist (env gl) (sigma gl) c in - Proofview.V82.tclEVARS sigma <*> k c - end - (* Interprets a reduction expression *) let interp_unfold ist env (occs,qid) = (interp_occurrences ist occs,interp_evaluable ist env qid) @@ -953,8 +942,6 @@ struct Proofview.tclDISPATCHL (List.map f l) >>= fun l -> Proofview.tclUNIT (Depends (List.concat l)) - let goal = Proofview.Goal.goals >>= fun l -> Proofview.tclUNIT (Depends l) - let enter f = bind (Proofview.Goal.goals >>= fun l -> Proofview.tclUNIT (Depends l)) (fun gl -> Proofview.V82.wrap_exceptions (fun () -> f gl)) diff --git a/tactics/tacsubst.ml b/tactics/tacsubst.ml index aa090b715..4dd4b0aa8 100644 --- a/tactics/tacsubst.ml +++ b/tactics/tacsubst.ml @@ -15,7 +15,6 @@ open Misctypes open Globnames open Term open Genredexpr -open Inductiveops open Patternops open Pretyping diff --git a/tactics/tacticals.mli b/tactics/tacticals.mli index cc1528797..48fd44b4a 100644 --- a/tactics/tacticals.mli +++ b/tactics/tacticals.mli @@ -224,6 +224,8 @@ module New : sig val onLastHyp : (constr -> unit tactic) -> unit tactic val onLastDecl : (named_declaration -> unit tactic) -> unit tactic + val onHyps : ([ `NF ] Proofview.Goal.t -> named_context) -> + (named_context -> unit tactic) -> unit tactic val afterHyp : Id.t -> (named_context -> unit tactic) -> unit tactic val tryAllHyps : (identifier -> unit tactic) -> unit tactic diff --git a/tactics/tauto.ml4 b/tactics/tauto.ml4 index 2d9b4da96..bdacf85a8 100644 --- a/tactics/tauto.ml4 +++ b/tactics/tauto.ml4 @@ -11,7 +11,6 @@ open Term open Hipattern open Names -open Globnames open Pp open Genarg open Stdarg diff --git a/tactics/term_dnet.ml b/tactics/term_dnet.ml index e05f4bcfe..f8d7a197b 100644 --- a/tactics/term_dnet.ml +++ b/tactics/term_dnet.ml @@ -337,11 +337,11 @@ struct | _ -> assert false (* debug *) - let rec pr_term_pattern p = +(* let rec pr_term_pattern p = (fun pr_t -> function | Term t -> pr_t t | Meta m -> str"["++Pp.int (Obj.magic m)++str"]" - ) (pr_dconstr pr_term_pattern) p + ) (pr_dconstr pr_term_pattern) p*) let search_pat cpat dpat dn = let whole_c = cpat in |