diff options
| author | Pierre-Marie Pédrot | 2021-03-19 14:10:07 +0100 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2021-03-19 14:10:07 +0100 |
| commit | 1e28f86f1947142095e18f4fdd11ed036e7a6e33 (patch) | |
| tree | 048bc2b37ed3cd247778936fbcb846b840f4c80e /kernel/term_typing.ml | |
| parent | be64fe07ec2bcf5177bb227813d8f896ef00c265 (diff) | |
| parent | 2a07fb44bd453fe9ff2649b498dfb6c0e8001324 (diff) | |
Merge PR #13924: Fix kernel incorrectly assuming the "using" hyps are transitively closed
Reviewed-by: ppedrot
Diffstat (limited to 'kernel/term_typing.ml')
| -rw-r--r-- | kernel/term_typing.ml | 18 |
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 |
