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

First stab at more functionality for Laurent polynomial rings #2448

Merged
merged 1 commit into from
Jun 14, 2023

Conversation

thofma
Copy link
Collaborator

@thofma thofma commented Jun 2, 2023

To get started with some ideal and map functionality for Laurent polynomial rings (multivariate).

The main application so far is to do the following:

julia> QQxy, (x, y) = LaurentPolynomialRing(QQ, [:x, :y]);

julia> I = ideal(QQxy, [1 + x^-1, y + 1]);

julia> R, (xx, yy) = polynomial_ring(QQ, ["xx", "yy"]);

julia> f = hom(R, QQxy, gens(QQxy));

julia> preimage(f, I)
ideal(yy + 1, xx + 1)

This at the moment a bit too slow for the application, but I probably did something not too clever. What we need to do: Given an ideal $I$ of $K[x_1^{\pm},\dotsc,x_n^{\pm}]$ determine $I \cap K[x_1,\dotsc,x_n]$. We can assume that $I = \langle f_1,\dotsc,f_n \rangle$ with $f_i \in K[x_1,\dotsc,x_n]$. At the moment we do

  1. Let $\tilde I = \langle f_1,\dotsc, f_n \rangle \subseteq K[x_1,\dotsc,x_n]$ the ideal generated in the polynomial ring.
  2. Saturate $\tilde I$ at $x_1,\dotsc,x_n$.

At the moment I am doing step 2. iteratively, but there is problem a better way? Happy to hear what the commutative algebra wizards have to say (@ederc @wdecker).

@codecov
Copy link

codecov bot commented Jun 3, 2023

Codecov Report

Merging #2448 (ac636d3) into master (a94bc0e) will increase coverage by 1.40%.
The diff coverage is 84.82%.

❗ Current head ac636d3 differs from pull request most recent head 0f8e611. Consider uploading reports for the commit 0f8e611 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2448      +/-   ##
==========================================
+ Coverage   71.62%   73.03%   +1.40%     
==========================================
  Files         395      398       +3     
  Lines       53023    53189     +166     
==========================================
+ Hits        37979    38845     +866     
+ Misses      15044    14344     -700     
Impacted Files Coverage Δ
experimental/Laurent/src/Laurent.jl 80.45% <80.45%> (ø)
experimental/Laurent/src/Types.jl 100.00% <100.00%> (ø)
experimental/Laurent/test/runtests.jl 100.00% <100.00%> (ø)

... and 7 files with indirect coverage changes

@thofma thofma marked this pull request as ready for review June 9, 2023 22:51
@thofma
Copy link
Collaborator Author

thofma commented Jun 9, 2023

I think this is a good start and can be merged. We will see how much it will benefit from the improvements to the saturation.

@thofma thofma requested a review from wdecker June 9, 2023 22:57
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.

Looks good to me but of course @wdecker should ideally also have a look...? Or we just merge and let him complain later ;-)

@thofma thofma merged commit 2bca8fc into master Jun 14, 2023
13 checks passed
@thofma thofma deleted the th/laurent branch June 14, 2023 06:39
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.

None yet

2 participants