diff options
| author | Matthieu Sozeau | 2018-06-19 12:09:58 +0100 |
|---|---|---|
| committer | Matthieu Sozeau | 2018-10-08 15:44:15 +0200 |
| commit | b977afefc8038f556e04930bcbceb4422b7d1062 (patch) | |
| tree | e1efade544697a4dfb4fdcc81a45873d7d93e177 /plugins/setoid_ring/plugin_base.dune | |
| parent | 9a1cbeb18e10e7eb40363e648e15f4f9aae1f9b8 (diff) | |
Fix #5197, handling of algebraic universes
They were allowed to stay in terms in some cases. We now ensure that if
an evar is defined as e.g. fun x => Type@{foo}, foo is properly
refreshed to be non-algebraic as it could otherwise appear in the term
and break the invariant.
Also cleanup the implementation of refresh_universes to avoid using a
mutable reference and simply rely on the Constr.map smartmap idiom
instead.
This might have compatibility issues, e.g. in HoTT where maybe more
non-algebraic proxy universes could be generated, we'll see.
For the bug report proper, there is a lack of bidirectional
type-checking that makes the initial definition fail (there's a
non-canonical choice of dependency if we don't consider the typing
constraint). With the Program bidir hint it passes.
Diffstat (limited to 'plugins/setoid_ring/plugin_base.dune')
0 files changed, 0 insertions, 0 deletions
