-
-
Notifications
You must be signed in to change notification settings - Fork 480
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
Remove CombinatorialClass
#37722
Remove CombinatorialClass
#37722
Conversation
d4427d1
to
a02f25b
Compare
Ready for review. The failure in "Test modularized distributions" is unrelated; it is tracked in #37734. |
src/sage/combinat/free_module.py
Outdated
@@ -1361,7 +1361,7 @@ def __init__(self, modules, **options): | |||
""" | |||
self._sets = modules | |||
indices = CartesianProduct_iters(*[module.basis().keys() | |||
for module in modules]).map(tuple) | |||
for module in modules]).map(tuple, is_injective=True) |
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.
why this change? is_injective
is the default, and also what I'd assume that map
does.
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.
just for clarity
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.
also what I'd assume that
map
does.
That's one of the trickier parts in the enumerated sets code. See e.g. #34389
@@ -1229,7 +1231,7 @@ def negative_roots(self): | |||
""" | |||
if not self.cartan_type().is_finite(): | |||
raise ValueError("%s is not a finite Cartan type" % self.cartan_type()) | |||
return self.positive_roots().map(attrcall('__neg__')) | |||
return self.positive_roots().map(attrcall('__neg__'), is_injective=True) |
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.
why this change? is_injective
is the default, and also what I'd assume that map
does.
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.
just annotation for clarity as I made my way through the code to fix a failure.
I think that's great! |
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 the ImageSubobject
should take the category into account for equality and hashing. It doesn't change what the actual set is. Same for _is_injective
. Everything is contained within the self._map
, self._inverse
, and self._domain_subset
.
Other than that, LGTM. We have to pull the trigger at some point on removing CombinatorialClass
.
Also |
Documentation preview for this PR (built with commit 094c106; changes) is ready! 🎉 |
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.
Thank you. LGTM. @mantepse Feel free to revert if you disagree.
Thanks! |
merge conflict |
2141959
to
1cdc9cf
Compare
I'm not sure what happened here, I thought it was a simple merge conflict. Have I overlooked any changes? |
I set it to "needs review" only to wait for the CI to complete after resolving the merge conflict. |
…s by ImageSubobject
…=EnumeratedSets().Finite()
…tive_roots in finite type a *finite* enumerated set; make negative_roots an *injective* image
1cdc9cf
to
094c106
Compare
Hi Matthias! I suppose that you only merged develop, right? I find it a bit hard ti review if after a merge conflict the whole branch is replaced. I would prefer to see only the difference to the last version. |
No, I rebased a previous version that was based on 10.4.beta2 (2141959) onto 10.4.beta4. |
That's understandable, but ease for the reviewer is only one of several criteria when deciding how to update a branch. Cleanliness of the branch is another one. I can teach you how to use git more effectively in such situations if you are interested. |
I was on my smartphone, so, no git there. But yes, I'd still be interested to know how to get the "interesting part" of the diff between the branch that was replaced with the current branch. |
@mantepse A technique that I find useful in such situations is to take the old, reviewed version (here: |
UnionCombinatorialClass
andFilteredCombinatorialClass
#36133📝 Checklist
⌛ Dependencies