aboutsummaryrefslogtreecommitdiff
path: root/pretyping/retyping.ml
diff options
context:
space:
mode:
authormsozeau2013-07-19 14:50:48 +0000
committermsozeau2013-07-19 14:50:48 +0000
commitf5bbb5ce34bb1ee2165086b0fdb3ee5f3d96a44e (patch)
tree6471c4c429f32757813bcfe0685f9b0b1957ed57 /pretyping/retyping.ml
parent1b701c4f6f6ebf9fc39720fdb3c2990cfc884766 (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.ml8
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 =