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
Print information about the origin of constraints in Print Universes #8460
Conversation
Currently only stored and callers do not use it.
IIRC @JasonGross was interested in some such feature. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think that this should go in the kernel. I am struggling to get rid of monomorphic constraints registered in definitions, because they're completely broken (e.g. side-effects). Instead, this should be registered in some upper layers like declare.
I don't see how to make that work though. |
Good question. I don't really know how to explain the semantics of your proposal though, IIUC it only attaches to edges, and this information is not preserved by transitivity (you drop the eq constraints), so I am slightly wary. |
Also, we should strive for efficiency of the universe graph structure. It is not uncommon to have hundreds of thousands of universes in there, so every allocation is going to be critical. We should not make our users pay for data that is only for debugging purposes. |
Nice! |
@ppedrot Here are some semantics (which might or might not line up with this proposal) which would already be quite useful, even if not complete: The definition associated to a constraint |
I'm going to drop this for now. |
Current limitations:
End
and when loading filesfoo <(=) Set
from declaring a universe have no origin (probably easily could be made to have one)I think removing these limitations (especially the second one) won't require rewriting these patches so it's worth submitting now.
Here's how it looks after the
Logic_lemmas
section in Init/Logic.v: