diff options
-rw-r--r-- | dev/printers.mllib | 1 | ||||
-rw-r--r-- | grammar/grammar.mllib | 28 | ||||
-rw-r--r-- | interp/constrarg.mli | 10 | ||||
-rw-r--r-- | interp/constrexpr_ops.ml | 14 | ||||
-rw-r--r-- | interp/constrexpr_ops.mli | 3 | ||||
-rw-r--r-- | interp/notation.ml | 12 | ||||
-rw-r--r-- | interp/notation_ops.ml | 4 | ||||
-rw-r--r-- | plugins/funind/g_indfun.ml4 | 3 | ||||
-rw-r--r-- | pretyping/glob_ops.ml | 16 | ||||
-rw-r--r-- | pretyping/glob_ops.mli | 1 | ||||
-rw-r--r-- | pretyping/miscops.ml | 38 | ||||
-rw-r--r-- | pretyping/miscops.mli | 10 | ||||
-rw-r--r-- | pretyping/patternops.ml | 2 | ||||
-rw-r--r-- | printing/miscprint.ml | 41 | ||||
-rw-r--r-- | printing/miscprint.mli | 18 | ||||
-rw-r--r-- | printing/pptactic.ml | 22 | ||||
-rw-r--r-- | printing/printer.ml | 2 | ||||
-rw-r--r-- | proofs/logic.ml | 2 | ||||
-rw-r--r-- | proofs/proofs.mllib | 1 | ||||
-rw-r--r-- | tactics/tacinterp.ml | 2 | ||||
-rw-r--r-- | tactics/tactics.ml | 4 |
21 files changed, 125 insertions, 109 deletions
diff --git a/dev/printers.mllib b/dev/printers.mllib index 0138f7034..82ef43a7d 100644 --- a/dev/printers.mllib +++ b/dev/printers.mllib @@ -157,6 +157,7 @@ Modintern Constrextern Proof_type Goal +Miscprint Logic Refiner Clenv diff --git a/grammar/grammar.mllib b/grammar/grammar.mllib index b1c1c3c8e..3f5fc5e86 100644 --- a/grammar/grammar.mllib +++ b/grammar/grammar.mllib @@ -11,7 +11,6 @@ Pp_control Flags Pp Loc -Compat Errors Hashset Hashcons @@ -25,30 +24,33 @@ Predicate Segmenttree Unicodetable Unicode +Genarg Evar Names + Libnames -Genarg + +Redops +Miscops +Locusops + Stdarg Constrarg +Constrexpr_ops + +Compat Tok Lexer Pcoq +G_prim +G_tactic +G_ltac +G_constr + Q_util Q_coqast Egramml Argextend Tacextend Vernacextend - -Nameops -Redops -Miscops -Glob_ops -Constrexpr_ops -Locusops -G_prim -G_tactic -G_ltac -G_constr diff --git a/interp/constrarg.mli b/interp/constrarg.mli index 1654d2719..c49b61ce7 100644 --- a/interp/constrarg.mli +++ b/interp/constrarg.mli @@ -10,7 +10,6 @@ of Genarg in [constr]-related interfaces. *) open Loc -open Pp open Names open Term open Libnames @@ -20,9 +19,7 @@ open Genredexpr open Pattern open Constrexpr open Tacexpr -open Term open Misctypes -open Evd open Genarg (** FIXME: nothing to do there. *) @@ -53,17 +50,18 @@ val wit_constr_may_eval : (glob_constr_and_expr,evaluable_global_reference and_short_name or_var,glob_constr_pattern_and_expr) may_eval, constr) genarg_type -val wit_open_constr : (open_constr_expr, open_glob_constr, open_constr) genarg_type +val wit_open_constr : + (open_constr_expr, open_glob_constr, Evd.open_constr) genarg_type val wit_constr_with_bindings : (constr_expr with_bindings, glob_constr_and_expr with_bindings, - constr with_bindings sigma) genarg_type + constr with_bindings Evd.sigma) genarg_type val wit_bindings : (constr_expr bindings, glob_constr_and_expr bindings, - constr bindings sigma) genarg_type + constr bindings Evd.sigma) genarg_type val wit_red_expr : ((constr_expr,reference or_by_notation,constr_expr) red_expr_gen, diff --git a/interp/constrexpr_ops.ml b/interp/constrexpr_ops.ml index c8a0e5638..85ad1cee7 100644 --- a/interp/constrexpr_ops.ml +++ b/interp/constrexpr_ops.ml @@ -10,7 +10,6 @@ open Pp open Util open Names open Libnames -open Glob_term open Constrexpr open Misctypes open Decl_kinds @@ -150,7 +149,7 @@ let rec constr_expr_eq e1 e2 = Evar.equal ev1 ev2 && Option.equal (List.equal constr_expr_eq) c1 c2 | CSort(_,s1), CSort(_,s2) -> - Glob_ops.glob_sort_eq s1 s2 + Miscops.glob_sort_eq s1 s2 | CCast(_,a1,(CastConv b1|CastVM b1)), CCast(_,a2,(CastConv b2|CastVM b2)) -> constr_expr_eq a1 a2 && constr_expr_eq b1 b2 @@ -336,14 +335,3 @@ let coerce_to_name = function | a -> Errors.user_err_loc (constr_loc a,"coerce_to_name", str "This expression should be a name.") - -let rec raw_cases_pattern_expr_of_glob_constr looked_for = function - | GVar (loc,id) -> RCPatAtom (loc,Some id) - | GHole (loc,_,_) -> RCPatAtom (loc,None) - | GRef (loc,g) -> - looked_for g; - RCPatCstr (loc, g,[],[]) - | GApp (loc,GRef (_,g),l) -> - looked_for g; - RCPatCstr (loc, g,List.map (raw_cases_pattern_expr_of_glob_constr looked_for) l,[]) - | _ -> raise Not_found diff --git a/interp/constrexpr_ops.mli b/interp/constrexpr_ops.mli index d857a5b60..687f5cb9e 100644 --- a/interp/constrexpr_ops.mli +++ b/interp/constrexpr_ops.mli @@ -82,6 +82,3 @@ val names_of_local_binders : local_binder list -> Name.t located list val names_of_local_assums : local_binder list -> Name.t located list (** Same as [names_of_local_binders], but does not take the [let] bindings into account. *) - -val raw_cases_pattern_expr_of_glob_constr : (Globnames.global_reference -> unit) - -> Glob_term.glob_constr -> raw_cases_pattern_expr diff --git a/interp/notation.ml b/interp/notation.ml index 867e23395..262cbab2f 100644 --- a/interp/notation.ml +++ b/interp/notation.ml @@ -449,8 +449,18 @@ let interp_prim_token_gen g loc p local_scopes = let interp_prim_token = interp_prim_token_gen (fun x -> x) +(** [rcp_of_glob] : from [glob_constr] to [raw_cases_pattern_expr] *) + +let rec rcp_of_glob looked_for = function + | GVar (loc,id) -> RCPatAtom (loc,Some id) + | GHole (loc,_,_) -> RCPatAtom (loc,None) + | GRef (loc,g) -> looked_for g; RCPatCstr (loc, g,[],[]) + | GApp (loc,GRef (_,g),l) -> + looked_for g; RCPatCstr (loc, g, List.map (rcp_of_glob looked_for) l,[]) + | _ -> raise Not_found + let interp_prim_token_cases_pattern_expr loc looked_for p = - interp_prim_token_gen (Constrexpr_ops.raw_cases_pattern_expr_of_glob_constr looked_for) loc p + interp_prim_token_gen (rcp_of_glob looked_for) loc p let interp_notation loc ntn local_scopes = let scopes = make_current_scopes local_scopes in diff --git a/interp/notation_ops.ml b/interp/notation_ops.ml index f6afbe48a..12b256c45 100644 --- a/interp/notation_ops.ml +++ b/interp/notation_ops.ml @@ -156,7 +156,7 @@ let compare_glob_constr f add t1 t2 = match t1,t2 with when Name.equal na1 na2 && Constrexpr_ops.binding_kind_eq bk1 bk2 -> on_true_do (f ty1 ty2 && f c1 c2) add na1 | GHole _, GHole _ -> true - | GSort (_,s1), GSort (_,s2) -> glob_sort_eq s1 s2 + | GSort (_,s1), GSort (_,s2) -> Miscops.glob_sort_eq s1 s2 | GLetIn (_,na1,b1,c1), GLetIn (_,na2,b2,c2) when Name.equal na1 na2 -> on_true_do (f b1 b2 && f c1 c2) add na1 | (GCases _ | GRec _ @@ -721,7 +721,7 @@ let rec match_ inner u alp (tmetas,blmetas as metas) sigma a1 a2 = | GCast(_,c1, CastCoerce), NCast(c2, CastCoerce) -> match_in u alp metas sigma c1 c2 | GSort (_,GType _), NSort (GType None) when not u -> sigma - | GSort (_,s1), NSort s2 when glob_sort_eq s1 s2 -> sigma + | GSort (_,s1), NSort s2 when Miscops.glob_sort_eq s1 s2 -> sigma | GPatVar _, NHole _ -> (*Don't hide Metas, they bind in ltac*) raise No_match | a, NHole _ -> sigma diff --git a/plugins/funind/g_indfun.ml4 b/plugins/funind/g_indfun.ml4 index ca90b3759..cc9ae912d 100644 --- a/plugins/funind/g_indfun.ml4 +++ b/plugins/funind/g_indfun.ml4 @@ -78,7 +78,8 @@ END let pr_intro_as_pat prc _ _ pat = match pat with - | Some pat -> spc () ++ str "as" ++ spc () ++ pr_intro_pattern pat + | Some pat -> + spc () ++ str "as" ++ spc () ++ Miscprint.pr_intro_pattern pat | None -> mt () diff --git a/pretyping/glob_ops.ml b/pretyping/glob_ops.ml index 9fc981a7d..f1e38d0f8 100644 --- a/pretyping/glob_ops.ml +++ b/pretyping/glob_ops.ml @@ -46,13 +46,6 @@ let case_style_eq s1 s2 = match s1, s2 with | RegularStyle, RegularStyle -> true | _ -> false -let glob_sort_eq g1 g2 = match g1, g2 with -| GProp, GProp -> true -| GSet, GSet -> true -| GType None, GType None -> true -| GType (Some s1), GType (Some s2) -> String.equal s1 s2 -| _ -> false - let rec cases_pattern_eq p1 p2 = match p1, p2 with | PatVar (_, na1), PatVar (_, na2) -> Name.equal na1 na2 | PatCstr (_, c1, pl1, na1), PatCstr (_, c2, pl2, na2) -> @@ -67,13 +60,6 @@ let cast_type_eq eq t1 t2 = match t1, t2 with | CastNative t1, CastNative t2 -> eq t1 t2 | _ -> false -let eq_gr gr1 gr2 = match gr1, gr2 with -| ConstRef con1, ConstRef con2 -> eq_constant con1 con2 -| IndRef kn1, IndRef kn2 -> eq_ind kn1 kn2 -| ConstructRef kn1, ConstructRef kn2 -> eq_constructor kn1 kn2 -| VarRef v1, VarRef v2 -> Id.equal v1 v2 -| _ -> false - let rec glob_constr_eq c1 c2 = match c1, c2 with | GRef (_, gr1), GRef (_, gr2) -> eq_gr gr1 gr2 | GVar (_, id1), GVar (_, id2) -> Id.equal id1 id2 @@ -109,7 +95,7 @@ let rec glob_constr_eq c1 c2 = match c1, c2 with Array.equal (fun l1 l2 -> List.equal glob_decl_eq l1 l2) decl1 decl2 && Array.equal glob_constr_eq c1 c2 && Array.equal glob_constr_eq t1 t2 -| GSort (_, s1), GSort (_, s2) -> glob_sort_eq s1 s2 +| GSort (_, s1), GSort (_, s2) -> Miscops.glob_sort_eq s1 s2 | GHole (_, kn1, gn1), GHole (_, kn2, gn2) -> Option.equal (==) gn1 gn2 (** Only thing sensible *) | GCast (_, c1, t1), GCast (_, c2, t2) -> diff --git a/pretyping/glob_ops.mli b/pretyping/glob_ops.mli index 5195b98c8..1785c87be 100644 --- a/pretyping/glob_ops.mli +++ b/pretyping/glob_ops.mli @@ -18,7 +18,6 @@ open Locus open Glob_term (** Equalities *) -val glob_sort_eq : glob_sort -> glob_sort -> bool val cases_pattern_eq : cases_pattern -> cases_pattern -> bool diff --git a/pretyping/miscops.ml b/pretyping/miscops.ml index 2639e2e72..ab01065b1 100644 --- a/pretyping/miscops.ml +++ b/pretyping/miscops.ml @@ -7,8 +7,6 @@ (************************************************************************) open Misctypes -open Pp -open Nameops (** Mapping [cast_type] *) @@ -25,33 +23,11 @@ let smartmap_cast_type f c = | CastCoerce -> CastCoerce | CastNative a -> let a' = f a in if a' == a then c else CastNative a' -(** Printing of [intro_pattern] *) +(** Equalities on [glob_sort] *) -let rec pr_intro_pattern (_,pat) = match pat with - | IntroOrAndPattern pll -> pr_or_and_intro_pattern pll - | IntroInjection pl -> - str "[=" ++ hv 0 (prlist_with_sep spc pr_intro_pattern pl) ++ str "]" - | IntroWildcard -> str "_" - | IntroRewrite true -> str "->" - | IntroRewrite false -> str "<-" - | IntroIdentifier id -> pr_id id - | IntroFresh id -> str "?" ++ pr_id id - | IntroForthcoming true -> str "*" - | IntroForthcoming false -> str "**" - | IntroAnonymous -> str "?" - -and pr_or_and_intro_pattern = function - | [pl] -> - str "(" ++ hv 0 (prlist_with_sep pr_comma pr_intro_pattern pl) ++ str ")" - | pll -> - str "[" ++ - hv 0 (prlist_with_sep pr_bar (prlist_with_sep spc pr_intro_pattern) pll) - ++ str "]" - -(** Printing of [move_location] *) - -let pr_move_location pr_id = function - | MoveAfter id -> brk(1,1) ++ str "after " ++ pr_id id - | MoveBefore id -> brk(1,1) ++ str "before " ++ pr_id id - | MoveFirst -> str " at top" - | MoveLast -> str " at bottom" +let glob_sort_eq g1 g2 = match g1, g2 with +| GProp, GProp -> true +| GSet, GSet -> true +| GType None, GType None -> true +| GType (Some s1), GType (Some s2) -> CString.equal s1 s2 +| _ -> false diff --git a/pretyping/miscops.mli b/pretyping/miscops.mli index cf984113f..84541a3b2 100644 --- a/pretyping/miscops.mli +++ b/pretyping/miscops.mli @@ -13,12 +13,6 @@ open Misctypes val map_cast_type : ('a -> 'b) -> 'a cast_type -> 'b cast_type val smartmap_cast_type : ('a -> 'a) -> 'a cast_type -> 'a cast_type -(** Printing of [intro_pattern] *) +(** Equalities on [glob_sort] *) -val pr_intro_pattern : intro_pattern_expr Loc.located -> Pp.std_ppcmds -val pr_or_and_intro_pattern : or_and_intro_pattern_expr -> Pp.std_ppcmds - -(** Printing of [move_location] *) - -val pr_move_location : - ('a -> Pp.std_ppcmds) -> 'a move_location -> Pp.std_ppcmds +val glob_sort_eq : glob_sort -> glob_sort -> bool diff --git a/pretyping/patternops.ml b/pretyping/patternops.ml index a2e8e4599..cc13d342a 100644 --- a/pretyping/patternops.ml +++ b/pretyping/patternops.ml @@ -45,7 +45,7 @@ let rec constr_pattern_eq p1 p2 = match p1, p2 with Name.equal v1 v2 && constr_pattern_eq t1 t2 && constr_pattern_eq b1 b2 | PLetIn (v1, t1, b1), PLetIn (v2, t2, b2) -> Name.equal v1 v2 && constr_pattern_eq t1 t2 && constr_pattern_eq b1 b2 -| PSort s1, PSort s2 -> glob_sort_eq s1 s2 +| PSort s1, PSort s2 -> Miscops.glob_sort_eq s1 s2 | PMeta m1, PMeta m2 -> Option.equal Id.equal m1 m2 | PIf (t1, l1, r1), PIf (t2, l2, r2) -> constr_pattern_eq t1 t2 && constr_pattern_eq l1 l2 && constr_pattern_eq r1 r2 diff --git a/printing/miscprint.ml b/printing/miscprint.ml new file mode 100644 index 000000000..3a0f7a8f7 --- /dev/null +++ b/printing/miscprint.ml @@ -0,0 +1,41 @@ +(************************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2012 *) +(* \VV/ **************************************************************) +(* // * This file is distributed under the terms of the *) +(* * GNU Lesser General Public License Version 2.1 *) +(************************************************************************) + +open Misctypes +open Pp + +(** Printing of [intro_pattern] *) + +let rec pr_intro_pattern (_,pat) = match pat with + | IntroOrAndPattern pll -> pr_or_and_intro_pattern pll + | IntroInjection pl -> + str "[=" ++ hv 0 (prlist_with_sep spc pr_intro_pattern pl) ++ str "]" + | IntroWildcard -> str "_" + | IntroRewrite true -> str "->" + | IntroRewrite false -> str "<-" + | IntroIdentifier id -> Nameops.pr_id id + | IntroFresh id -> str "?" ++ Nameops.pr_id id + | IntroForthcoming true -> str "*" + | IntroForthcoming false -> str "**" + | IntroAnonymous -> str "?" + +and pr_or_and_intro_pattern = function + | [pl] -> + str "(" ++ hv 0 (prlist_with_sep pr_comma pr_intro_pattern pl) ++ str ")" + | pll -> + str "[" ++ + hv 0 (prlist_with_sep pr_bar (prlist_with_sep spc pr_intro_pattern) pll) + ++ str "]" + +(** Printing of [move_location] *) + +let pr_move_location pr_id = function + | MoveAfter id -> brk(1,1) ++ str "after " ++ pr_id id + | MoveBefore id -> brk(1,1) ++ str "before " ++ pr_id id + | MoveFirst -> str " at top" + | MoveLast -> str " at bottom" diff --git a/printing/miscprint.mli b/printing/miscprint.mli new file mode 100644 index 000000000..4e0be83f2 --- /dev/null +++ b/printing/miscprint.mli @@ -0,0 +1,18 @@ +(************************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2012 *) +(* \VV/ **************************************************************) +(* // * This file is distributed under the terms of the *) +(* * GNU Lesser General Public License Version 2.1 *) +(************************************************************************) + +open Misctypes + +(** Printing of [intro_pattern] *) + +val pr_intro_pattern : intro_pattern_expr Loc.located -> Pp.std_ppcmds + +(** Printing of [move_location] *) + +val pr_move_location : + ('a -> Pp.std_ppcmds) -> 'a move_location -> Pp.std_ppcmds diff --git a/printing/pptactic.ml b/printing/pptactic.ml index ae3b41e23..adb2ba0d0 100644 --- a/printing/pptactic.ml +++ b/printing/pptactic.ml @@ -18,7 +18,6 @@ open Constrarg open Libnames open Ppextend open Misctypes -open Miscops open Locus open Decl_kinds open Genredexpr @@ -342,8 +341,8 @@ let pr_bindings prlc prc = pr_bindings_gen false prlc prc let pr_with_bindings prlc prc (c,bl) = hov 1 (prc c ++ pr_bindings prlc prc bl) -let pr_as_ipat pat = str "as " ++ pr_intro_pattern pat -let pr_eqn_ipat pat = str "eqn:" ++ pr_intro_pattern pat +let pr_as_ipat pat = str "as " ++ Miscprint.pr_intro_pattern pat +let pr_eqn_ipat pat = str "eqn:" ++ Miscprint.pr_intro_pattern pat let pr_with_induction_names = function | None, None -> mt () @@ -353,7 +352,7 @@ let pr_with_induction_names = function spc () ++ hov 1 (pr_as_ipat ipat ++ spc () ++ pr_eqn_ipat eqpat) let pr_as_intro_pattern ipat = - spc () ++ hov 1 (str "as" ++ spc () ++ pr_intro_pattern ipat) + spc () ++ hov 1 (str "as" ++ spc () ++ Miscprint.pr_intro_pattern ipat) let pr_with_inversion_names = function | None -> mt () @@ -645,13 +644,15 @@ and pr_atom1 = function (* Basic tactics *) | TacIntroPattern [] as t -> pr_atom0 t | TacIntroPattern (_::_ as p) -> - hov 1 (str "intros" ++ spc () ++ prlist_with_sep spc pr_intro_pattern p) + hov 1 (str "intros" ++ spc () ++ + prlist_with_sep spc Miscprint.pr_intro_pattern p) | TacIntrosUntil h -> hv 1 (str "intros until" ++ pr_arg pr_quantified_hypothesis h) | TacIntroMove (None,MoveLast) as t -> pr_atom0 t | TacIntroMove (Some id,MoveLast) -> str "intro " ++ pr_id id | TacIntroMove (ido,hto) -> - hov 1 (str"intro" ++ pr_opt pr_id ido ++ Miscops.pr_move_location pr_ident hto) + hov 1 (str"intro" ++ pr_opt pr_id ido ++ + Miscprint.pr_move_location pr_ident hto) | TacAssumption as t -> pr_atom0 t | TacExact c -> hov 1 (str "exact" ++ pr_constrarg c) | TacExactNoCheck c -> hov 1 (str "exact_no_check" ++ pr_constrarg c) @@ -764,7 +765,7 @@ and pr_atom1 = function assert b; hov 1 (str "move" ++ brk (1,1) ++ pr_ident id1 ++ - Miscops.pr_move_location pr_ident id2) + Miscprint.pr_move_location pr_ident id2) | TacRename l -> hov 1 (str "rename" ++ brk (1,1) ++ @@ -1033,8 +1034,11 @@ let () = let pr_string s = str "\"" ++ str s ++ str "\"" in Genprint.register_print0 Constrarg.wit_ref pr_reference (pr_or_var (pr_located pr_global)) pr_global; - Genprint.register_print0 Constrarg.wit_intro_pattern - pr_intro_pattern pr_intro_pattern pr_intro_pattern; + Genprint.register_print0 + Constrarg.wit_intro_pattern + Miscprint.pr_intro_pattern + Miscprint.pr_intro_pattern + Miscprint.pr_intro_pattern; Genprint.register_print0 Constrarg.wit_sort pr_glob_sort pr_glob_sort pr_sort; Genprint.register_print0 Stdarg.wit_int int int int; diff --git a/printing/printer.ml b/printing/printer.ml index 85b3c1836..9143d1c5b 100644 --- a/printing/printer.ml +++ b/printing/printer.ml @@ -647,7 +647,7 @@ let pr_prim_rule = function | Move (withdep,id1,id2) -> (str (if withdep then "dependent " else "") ++ - str"move " ++ pr_id id1 ++ Miscops.pr_move_location pr_id id2) + str"move " ++ pr_id id1 ++ Miscprint.pr_move_location pr_id id2) | Order ord -> (str"order " ++ pr_sequence pr_id ord) diff --git a/proofs/logic.ml b/proofs/logic.ml index 68be51d9c..1116410dc 100644 --- a/proofs/logic.ml +++ b/proofs/logic.ml @@ -279,7 +279,7 @@ let move_hyp with_dep toleft (left,(idfrom,_,_ as declfrom),right) hto = (first, d::middle) else errorlabstrm "move_hyp" (str "Cannot move " ++ pr_id idfrom ++ - Miscops.pr_move_location pr_id hto ++ + Miscprint.pr_move_location pr_id hto ++ str (if toleft then ": it occurs in " else ": it depends on ") ++ pr_id hyp ++ str ".") else diff --git a/proofs/proofs.mllib b/proofs/proofs.mllib index 96b9a89a3..ab5cf52d4 100644 --- a/proofs/proofs.mllib +++ b/proofs/proofs.mllib @@ -1,3 +1,4 @@ +Miscprint Goal Evar_refiner Proof_using diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml index c802ae984..cd265843d 100644 --- a/tactics/tacinterp.ml +++ b/tactics/tacinterp.ml @@ -696,7 +696,7 @@ let rec message_of_value gl v = else if has_type v (topwit wit_unit) then str "()" else if has_type v (topwit wit_int) then int (out_gen (topwit wit_int) v) else if has_type v (topwit wit_intro_pattern) then - pr_intro_pattern (out_gen (topwit wit_intro_pattern) v) + Miscprint.pr_intro_pattern (out_gen (topwit wit_intro_pattern) v) else if has_type v (topwit wit_constr_context) then pr_constr_env (pf_env gl) (out_gen (topwit wit_constr_context) v) else match Value.to_list v with diff --git a/tactics/tactics.ml b/tactics/tactics.ml index fe26bbb2d..d1b096048 100644 --- a/tactics/tactics.ml +++ b/tactics/tactics.ml @@ -2085,7 +2085,7 @@ let check_unused_names names = if not (List.is_empty names) && Flags.is_verbose () then msg_warning (str"Unused introduction " ++ str (String.plural (List.length names) "pattern") - ++ str": " ++ prlist_with_sep spc pr_intro_pattern names) + ++ str": " ++ prlist_with_sep spc Miscprint.pr_intro_pattern names) let rec consume_pattern avoid id isdep gl = function | [] -> ((dloc, IntroIdentifier (fresh_id avoid id gl)), []) @@ -3380,7 +3380,7 @@ let new_induct_gen isrec with_evars elim (eqname,names) (sigma,(c,lbind)) cls = let new_induct_gen_l isrec with_evars elim (eqname,names) lc = if not (Option.is_empty eqname) then errorlabstrm "" (str "Do not know what to do with " ++ - pr_intro_pattern (Option.get eqname)); + Miscprint.pr_intro_pattern (Option.get eqname)); let newlc = ref [] in let letids = ref [] in let rec atomize_list l = |