diff options
| author | msozeau | 2013-07-19 14:50:48 +0000 |
|---|---|---|
| committer | msozeau | 2013-07-19 14:50:48 +0000 |
| commit | f5bbb5ce34bb1ee2165086b0fdb3ee5f3d96a44e (patch) | |
| tree | 6471c4c429f32757813bcfe0685f9b0b1957ed57 /pretyping/retyping.ml | |
| parent | 1b701c4f6f6ebf9fc39720fdb3c2990cfc884766 (diff) | |
- Fix uncaught exception NotASort from reductionops, moving decomp_sort to retyping.ml
- In unification's w_merge, assign the evars in the same order they were found. Might
create rare incompatibilities.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16632 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping/retyping.ml')
| -rw-r--r-- | pretyping/retyping.ml | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/pretyping/retyping.ml b/pretyping/retyping.ml index c618720912..f5f9776153 100644 --- a/pretyping/retyping.ml +++ b/pretyping/retyping.ml @@ -76,6 +76,11 @@ let sort_of_atomic_type env sigma ft args = | _ -> retype_error NotASort in concl_of_arity env ft (Array.to_list args) +let decomp_sort env sigma t = + match kind_of_term (whd_betadeltaiota env sigma t) with + | Sort s -> s + | _ -> retype_error NotASort + let type_of_var env id = try let (_,_,ty) = lookup_named id env in ty with Not_found -> retype_error (BadVariable id) @@ -165,7 +170,8 @@ let retype ?(polyprop=true) sigma = | App(f,args) -> family_of_sort (sort_of_atomic_type env sigma (type_of env f) args) | Lambda _ | Fix _ | Construct _ -> retype_error NotAType - | _ -> family_of_sort (decomp_sort env sigma (type_of env t)) + | _ -> + family_of_sort (decomp_sort env sigma (type_of env t)) and type_of_global_reference_knowing_parameters env c args = let argtyps = |
