Skip to content
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

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

user202729
Copy link
Contributor

@user202729 user202729 commented Feb 4, 2025

  • 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).
  • as a consequence of the above, is_empty must be provided for e.g. FiniteWords("ab") for tests to pass. (Unfortunately Sage has two different functions is_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 has is_finite implemented in more cases.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

Copy link

github-actions bot commented Feb 4, 2025

Documentation preview for this PR (built with commit 8a4e1ec; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@user202729 user202729 marked this pull request as draft February 4, 2025 05:35
@user202729
Copy link
Contributor Author

user202729 commented Feb 4, 2025

I tried to add is_empty to Parent… but now it's overriding is_empty in Sets.CartesianProducts.ParentMethods.

Will probably patch it by adding it to FiniteWords instead.

There's the (existing) issue of #39447 which I'm not entirely sure how to fix.

@user202729 user202729 marked this pull request as ready for review February 4, 2025 08:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant