-
-
Notifications
You must be signed in to change notification settings - Fork 523
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
Improve is_empty and is_finite in a few cases #39444
base: develop
Are you sure you want to change the base?
Improve is_empty and is_finite in a few cases #39444
Conversation
Documentation preview for this PR (built with commit 887d545; changes) is ready! 🎉 |
I tried to add Will probably patch it by adding it to There's the (existing) issue of #39447 which I'm not entirely sure how to fix. |
""" | ||
|
||
def __init__(self, alphabet=None, category=None): |
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.
This needs a doctest.
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.
Technically the one above is already a test, no?
FiniteWords('ab').is_finite()
(without the category being correctly set, is_finite()
wouldn't exist)
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.
But it is not a test associated to that method. Also, it is good to put a TestSuite(foo).run()
test in for these methods' doctests.
|
||
def is_empty(self): | ||
""" | ||
Return False, because the empty word is in the set. |
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.
Return False, because the empty word is in the set. | |
Return ``False``, because the empty word is in the set. |
is_empty
for cartesian_product now returns True as long as some factor can be determined to be empty, even if other factors' emptiness is unknown.is_finite
for cartesian_product now correctly return "unknown" in case (unknown empty set × infinite set).is_empty
must be provided for e.g.FiniteWords("ab")
for tests to pass. (Unfortunately Sage has two different functionsis_empty
and__bool__
that does almost the exact same thing, I guess we will have to live with it.)is_empty
for union of two sets now returns False as long as the first set is nonempty, regardless of the second set. (also performance optimization, no need to compute the cardinality.)LazyFamily
now hasis_finite
implemented in more cases.📝 Checklist
⌛ Dependencies