aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorglondu2010-09-23 10:01:20 +0000
committerglondu2010-09-23 10:01:20 +0000
commit679801623c1f55d0081f952c2094c3572fa39d4f (patch)
treeb87f22ad4ca0db14f978ba299af22fd3d3edf081 /kernel
parentc92183a4bc227dbcfc3bf874801bd03724e5541d (diff)
Fix inconsistency in Prop/Set conversion check
This commit fixes a bug that made the system inconsistent with proof irrelevance (the main idea being that Set = Prop by reflexivity). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13450 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel')
-rw-r--r--kernel/reduction.ml4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/reduction.ml b/kernel/reduction.ml
index d3168a9a17..55a7ca884b 100644
--- a/kernel/reduction.ml
+++ b/kernel/reduction.ml
@@ -183,9 +183,11 @@ type conv_pb =
let sort_cmp pb s0 s1 cuniv =
match (s0,s1) with
- | (Prop c1, Prop c2) ->
+ | (Prop c1, Prop c2) when pb = CUMUL ->
if c1 = Null or c2 = Pos then cuniv (* Prop <= Set *)
else raise NotConvertible
+ | (Prop c1, Prop c2) ->
+ if c1 = c2 then cuniv else raise NotConvertible
| (Prop c1, Type u) when pb = CUMUL -> assert (is_univ_variable u); cuniv
| (Type u1, Type u2) ->
assert (is_univ_variable u2);