aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2021-03-19 14:10:07 +0100
committerPierre-Marie Pédrot2021-03-19 14:10:07 +0100
commit1e28f86f1947142095e18f4fdd11ed036e7a6e33 (patch)
tree048bc2b37ed3cd247778936fbcb846b840f4c80e /kernel
parentbe64fe07ec2bcf5177bb227813d8f896ef00c265 (diff)
parent2a07fb44bd453fe9ff2649b498dfb6c0e8001324 (diff)
Merge PR #13924: Fix kernel incorrectly assuming the "using" hyps are transitively closed
Reviewed-by: ppedrot
Diffstat (limited to 'kernel')
-rw-r--r--kernel/term_typing.ml18
1 files changed, 8 insertions, 10 deletions
diff --git a/kernel/term_typing.ml b/kernel/term_typing.ml
index 24aa4ed771..013892ad74 100644
--- a/kernel/term_typing.ml
+++ b/kernel/term_typing.ml
@@ -269,16 +269,14 @@ let build_constant_declaration env result =
in
Environ.really_needed env (Id.Set.union ids_typ ids_def), def
| Some declared ->
- let needed = Environ.really_needed env declared in
- (* Transitive closure ensured by the upper layers *)
- let () = assert (Id.Set.equal needed declared) in
- (* We use the declared set and chain a check of correctness *)
- declared,
- match def with
- | Undef _ | Primitive _ | OpaqueDef _ as x -> x (* nothing to check *)
- | Def cs as x ->
- let () = check_section_variables env declared typ (Mod_subst.force_constr cs) in
- x
+ let declared = Environ.really_needed env declared in
+ (* We use the declared set and chain a check of correctness *)
+ declared,
+ match def with
+ | Undef _ | Primitive _ | OpaqueDef _ as x -> x (* nothing to check *)
+ | Def cs as x ->
+ let () = check_section_variables env declared typ (Mod_subst.force_constr cs) in
+ x
in
let univs = result.cook_universes in
let hyps = List.filter (fun d -> Id.Set.mem (NamedDecl.get_id d) hyps) (Environ.named_context env) in