diff options
| author | herbelin | 2004-12-06 15:02:04 +0000 |
|---|---|---|
| committer | herbelin | 2004-12-06 15:02:04 +0000 |
| commit | fa6afec45a179cc5dfc97413c83cf49d899fcf6a (patch) | |
| tree | 71986477d42ab76e8a277903d782a7f64c0c99e0 | |
| parent | 6ab4250402d4e2bd5ee2bba43296ba6cf139b1cb (diff) | |
Déplacement de la coercion vis à vis du but au niveau de Refine suite à changement de CastedOpenConstr en OpenConstr
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@6419 85f007b7-540e-0410-9357-904b9bb8a0f7
| -rw-r--r-- | tactics/refine.ml | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tactics/refine.ml b/tactics/refine.ml index b7298aa7ae..bb80e361fc 100644 --- a/tactics/refine.ml +++ b/tactics/refine.ml @@ -337,9 +337,19 @@ let rec tcc_aux subst (TH (c,mm,sgp) as th) gl = (* Et finalement la tactique refine elle-même : *) +let coerce_to_goal (sigma,c) gl = + let env = pf_env gl in + let evars = Evd.create_evar_defs sigma in + let j = Retyping.get_judgment_of env sigma c in + let ccl = pf_concl gl in + let (evars,j) = Coercion.inh_conv_coerce_to dummy_loc env evars j ccl in + let sigma = Evd.evars_of evars in + (sigma,Reductionops.nf_evar sigma j.Environ.uj_val) + let refine oc gl = let sigma = project gl in let env = pf_env gl in + let oc = coerce_to_goal oc gl in let (_gmm,c) = Evarutil.exist_to_meta sigma oc in (* Relies on Cast's put on Meta's by exist_to_meta, because it is otherwise complicated to update gmm when passing through a binder *) |
