aboutsummaryrefslogtreecommitdiff
path: root/plugins/syntax
diff options
context:
space:
mode:
authorMatthieu Sozeau2018-06-19 12:09:58 +0100
committerMatthieu Sozeau2018-10-08 15:44:15 +0200
commitb977afefc8038f556e04930bcbceb4422b7d1062 (patch)
treee1efade544697a4dfb4fdcc81a45873d7d93e177 /plugins/syntax
parent9a1cbeb18e10e7eb40363e648e15f4f9aae1f9b8 (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/syntax')
0 files changed, 0 insertions, 0 deletions