Skip to content

Document ideal interface #2113

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

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from
Draft

Conversation

emikelsons
Copy link
Contributor

@emikelsons emikelsons commented Jun 27, 2025

Add a documentation page for the ideal interface.

This is addressing #1733 and comments in #2108. I plan to extend this slightly later
@fingolfin

@emikelsons emikelsons reopened this Jun 27, 2025
Copy link

codecov bot commented Jun 27, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 88.00%. Comparing base (8ea17bc) to head (38edb98).
Report is 16 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2113      +/-   ##
==========================================
- Coverage   88.35%   88.00%   -0.35%     
==========================================
  Files         126      126              
  Lines       31674    31654      -20     
==========================================
- Hits        27984    27856     -128     
- Misses       3690     3798     +108     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@thofma
Copy link
Member

thofma commented Jun 27, 2025

I am not too happy with the change. The function should not call Generic.Ideal, but whatever ideal wants to spit out.

In general, we are not really advertising Generic.Ideal. It was kind of an experiment, but whether to keep it or not is not clear. See #2108 (comment).

@emikelsons
Copy link
Contributor Author

I am not too happy with the change. The function should not call Generic.Ideal, but whatever ideal wants to spit out.

In general, we are not really advertising Generic.Ideal. It was kind of an experiment, but whether to keep it or not is not clear. See #2108 (comment).

Ok, if the previous code was as desired, then I'll remove the edit. I was a bit confused as it didn't work in AA, but I suppose it makes sense for its use beyond.

Copy link
Member

@fingolfin fingolfin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! A few quick remarks / change requests

Comment on lines +18 to +22

Currently AbstractAlgebra.jl provides ideals of a Euclidean domain (assuming the existence of a `gcdx` function)
or of a univariate or multivariate polynomial ring over the integers.
Univariate and multivariate polynomial rings over other
domains (other than fields) are not supported at this time.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This text doesn't seem to belong here? It seems to be about the Genric.Ideal type?

Suggested change
Currently AbstractAlgebra.jl provides ideals of a Euclidean domain (assuming the existence of a `gcdx` function)
or of a univariate or multivariate polynomial ring over the integers.
Univariate and multivariate polynomial rings over other
domains (other than fields) are not supported at this time.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I though it might be useful to briefly describe the existing functionality in order to give some context to people, who want to expand on this.

Comment on lines +104 to +122
```
```julia
issubset(I::NewIdeal, J::NewIdeal)
```
```julia
iszero(I::NewIdeal)
```
```julia
+(I::T, J::T) where {T <: NewIdeal}
```
```julia
*(I::T, J::T) where {T <: NewIdeal}
```
```julia
intersect(I::T, J::T) where {T <: NewIdeal}
```
```julia
==(I::T, J::T) where {T <: NewIdeal}
```
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of course all of these will get default implementations with my PR #2108 -- but we can update this later, once that PR is merged.

@emikelsons emikelsons marked this pull request as draft July 31, 2025 08:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants