-
Notifications
You must be signed in to change notification settings - Fork 150
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
feat: FastSetUnification
#7825
base: master
Are you sure you want to change the base?
feat: FastSetUnification
#7825
Conversation
What's the plan for polish? I think it makes sense to do a thorough pass through the code before I look at it in detail. |
Yeah ill give it a full look over and ping you |
Ok. Since this is a such a central piece of what we do, I have a high standard :) It would be good to ensure all comments are up to date and that the code is as clean as possible. |
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 will add general comments before code-level comments:
- Test cases do not seem to contain elements.
- I am not sure I like SetEval it seems like an extra level of abstraction. At least it should not be written in OO-style.
- Why does Term suddenly have both & and inter? How many ways do we know have to construct terms? :)
- What is freeUnknowns?
- toRawString ugh? Maybe some of this can be moved to a debugging class.
- I still don't understand why Inter is defined the way it is with an option. It seems very asymmetric.
|
@magnus-madsen ive given it all a read-through and rewrite but it probably requires multiple, being so long. |
Yes, definitely. This would be very useful.
Do we assume the domains are disjoint?
But what about |
That was already assumed, noted in
It is less cool since we don't use minus yet, but I can find some examples
we can/should do it for sure, but it adds extra logic in many of the functions. i think it be better not to make this PR larger |
Regions should be their own effects. Then there is plenty to take from. |
Since there is no dependency on this PR, I suggest we iterate as much as needed. |
Compact concrete sets:
I think the second is the most comprehensible, do you have a comment @magnus-madsen? |
@JonathanStarup Can we do both? |
both? doesnt that just give inconsistent representation? |
Efficient really is the enemy of elegant |
We should definitely do (2) then we can fight over (1). |
Including fuzzer