-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Universe inconsistency when paired with RelationAlgebra #254
Comments
Making
Digging into this one seems to pin the responsibility on the
is insufficient to solve these imports, it only moves the problem to:
Still, relation-algebra's responsibility in all of this remains mysterious so far... |
By binary search in
There seems to be some conflict between the ways the two libraries use relations. I still don't know a good way to debug this. Maybe we should do like relation-algebra and explicitly name some universes and fix the universe of all occurrences of |
Hey Li-yao, Yes Damien mentioned to me that he had to specialise universes once to dodge universe inconsistencies --- this is completely backward to me, I don't quite foresee how it helps. But at least doing so might help pinning down the current issue as you suggest. I also asked on Zulip (https://coq.zulipchat.com/#narrow/stream/237977-Coq-users/topic/On.20the.20art.20of.20fixing.20the.20universe) and got pointed out by Paolo that the core issue has to do with template polymorphic definitions, and that eta-expansion can dodge this bullet --- a situation they encountered in stdpp (https://gitlab.mpi-sws.org/iris/stdpp/-/issues/80). I need to ingest all that to understand better I must say. |
I'm not sure it helps much, but I have inlined most of The first inconsistency now appears with:
By visibly overly constraining the And frustratingly, inlining |
Usually it comes from a partially applied type constructor somewhere, e.g. |
One way to debug this is to look at the graph and find if one of sum's universes is bounded from above by another universe, this quickly leads to inconsistencies. |
A lot of universe inconsistencies have crept in the ctree library, and (at least) one root of it seems to come from interactions between the itree library and @damien-pous 's relation-algebra library.
One somewhat minimal example triggering it is the following:
Where
Eq1
seem to be the culprit, but I have a hard time understanding why the RelationAlgebra imports are relevant to this inconsistency, since the set of failing constraints provided is between definitions of itrees and extlib only.I'm gonna try to deep dive into this, but if anybody has insights or advices, anything's welcome!
The text was updated successfully, but these errors were encountered: