diff options
author | 2008-12-29 17:15:52 +0000 | |
---|---|---|
committer | 2008-12-29 17:15:52 +0000 | |
commit | b18a6d179903546cbf5745e601ab221f06e30078 (patch) | |
tree | c9ed543e785c2bcfad768669812778a9d3aea33e /interp | |
parent | f34f0420899594847b6e7633a4488f034a4300f6 (diff) |
- Added support for subterm matching in SearchAbout.
- Backtrack on precise unfolding of "iff" in "tauto": it has effects on
the naming of hypotheses (especially when doing "case H" with H of
type "{x|P<->Q}" since not unfolding will eventually introduce a name
"i" while unfolding will eventually introduce a name "a" (deep sigh).
- Miscellaneous (error when a plugin is missing, doc hnf, standardization
of names manipulating type constr_pattern, ...).
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@11725 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'interp')
-rw-r--r-- | interp/constrintern.ml | 5 | ||||
-rw-r--r-- | interp/constrintern.mli | 5 | ||||
-rw-r--r-- | interp/topconstr.ml | 2 | ||||
-rw-r--r-- | interp/topconstr.mli | 2 |
4 files changed, 10 insertions, 4 deletions
diff --git a/interp/constrintern.ml b/interp/constrintern.ml index a8dad2216..357ce4377 100644 --- a/interp/constrintern.ml +++ b/interp/constrintern.ml @@ -1277,8 +1277,9 @@ let interp_constr_judgment_evars evdref env c = type ltac_sign = identifier list * unbound_ltac_var_map -let interp_constrpattern sigma env c = - pattern_of_rawconstr (intern_gen false sigma env ~allow_patvar:true c) +let intern_constr_pattern sigma env ?(as_type=false) ?(ltacvars=([],[])) c = + let c = intern_gen as_type ~allow_patvar:true ~ltacvars sigma env c in + pattern_of_rawconstr c let interp_aconstr impls (vars,varslist) a = let env = Global.env () in diff --git a/interp/constrintern.mli b/interp/constrintern.mli index a646b6314..6410c9b2e 100644 --- a/interp/constrintern.mli +++ b/interp/constrintern.mli @@ -113,8 +113,9 @@ val interp_constr_judgment : evar_map -> env -> constr_expr -> unsafe_judgment (* Interprets constr patterns *) -val interp_constrpattern : - evar_map -> env -> constr_expr -> patvar list * constr_pattern +val intern_constr_pattern : + evar_map -> env -> ?as_type:bool -> ?ltacvars:ltac_sign -> + constr_pattern_expr -> patvar list * constr_pattern val interp_reference : ltac_sign -> reference -> rawconstr diff --git a/interp/topconstr.ml b/interp/topconstr.ml index 2cbe53981..6bee22f6c 100644 --- a/interp/topconstr.ml +++ b/interp/topconstr.ml @@ -675,6 +675,8 @@ and recursion_order_expr = | CWfRec of constr_expr | CMeasureRec of constr_expr +type constr_pattern_expr = constr_expr + (***********************) (* For binders parsing *) diff --git a/interp/topconstr.mli b/interp/topconstr.mli index 2d293eacb..cecea239c 100644 --- a/interp/topconstr.mli +++ b/interp/topconstr.mli @@ -172,6 +172,8 @@ type typeclass_constraint = name located * binding_kind * constr_expr and typeclass_context = typeclass_constraint list +type constr_pattern_expr = constr_expr + (**********************************************************************) (* Utilities on constr_expr *) |