Opened 9 years ago
Closed 17 months ago
#11855 closed defect (worksforme)
Hilbert series, Hilbert functions of a given ideal
Reported by: | dangtuanhiep | Owned by: | malb |
---|---|---|---|
Priority: | trivial | Milestone: | sage-duplicate/invalid/wontfix |
Component: | commutative algebra | Keywords: | sd34 |
Cc: | burcin, SimonKing | Merged in: | |
Authors: | Hiep Dang, Burcin Erocal | Reviewers: | Simon King |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
This patch adds the methods Hilbert series and Hilbert functions to multivariate polynomial ideals.
Attachments (1)
Change History (15)
comment:1 follow-up: ↓ 2 Changed 9 years ago by
Changed 9 years ago by
comment:2 in reply to: ↑ 1 Changed 9 years ago by
- Type changed from enhancement to defect
Replying to malb:
Huh, it's already there.
---------------------------------------------------------------------- | Sage Version 4.7.1, Release Date: 2011-08-11 | | Type notebook() for the GUI, and license() for information. | ---------------------------------------------------------------------- sage: K.<w> = GF(27) sage: P.<x, y> = PolynomialRing(K, 2, order='lex') sage: I = Ideal([ x^8 + y + 2, y^6 + x*y^5 + x^2 ]) sage: I.hi I.hilbert_polynomial I.hilbert_series
The return value of the existing function is a fraction field element, not a power series.
sage: I.hilbert_series() (-t - 1)/(t - 1) sage: type(I.hilbert_series()) <type 'sage.rings.fraction_field_element.FractionFieldElement'>
Singular cannot represent power series in its interpreter, but we can. :)
comment:3 Changed 9 years ago by
comment:4 Changed 9 years ago by
- Cc SimonKing added
comment:5 follow-up: ↓ 6 Changed 9 years ago by
The patch adds a second hilbert_series function instead of the changing the one that exists already. Also, the old one has some advantages over this new one: @require field, more extensive docs, test whether the ideal is homogeneous.
comment:6 in reply to: ↑ 5 Changed 9 years ago by
- Reviewers set to Simon King
Replying to malb:
The patch adds a second hilbert_series function instead of the changing the one that exists already
Yes. Clearly it is a bad idea to implement another hilbert_series method from scratch. Obviously, if one wants hilber_series to return a power series, then one should modify the existing hilbert_serie method.
Moreover, I think we don't want it to return a power series. Isn't a power series in Sage an object with a finite precision? Hence, while a quotient (i.e., fraction field element) of two polynomials generates all (infinitely many) terms of the Hilbert series, a power series can only provide finitely many terms, isn't it?
So, I am against that change. I could only imagine that one has an optional parameter "as_power_series" (default False). Then, I.hilber_series()
would return the full Hilbert series (namely as a quotient of two polynomials), while I.hilbert_series(as_power_series=True)
would return a (truncated) power series.
comment:7 Changed 9 years ago by
Sorry for the misprints in my previous post. "hilber_series" and "hilbert_serie" should have been "hilbert_series"...
comment:8 Changed 7 years ago by
- Milestone changed from sage-5.11 to sage-5.12
comment:9 Changed 6 years ago by
- Milestone changed from sage-6.1 to sage-6.2
comment:10 Changed 6 years ago by
- Milestone changed from sage-6.2 to sage-6.3
comment:11 Changed 6 years ago by
- Milestone changed from sage-6.3 to sage-6.4
comment:12 Changed 2 years ago by
- Milestone changed from sage-6.4 to sage-duplicate/invalid/wontfix
- Status changed from new to needs_review
Let us close this old one. Conversion is easy:
sage: t = polygen(QQ,'t') sage: QQ[['t']](1/(1-t)) 1 + t + t^2 + t^3 + t^4 + t^5 + t^6 + t^7 + t^8 + t^9 + t^10 + t^11 + t^12 + t^13 + t^14 + t^15 + t^16 + t^17 + t^18 + t^19 + O(t^20)
comment:13 Changed 23 months ago by
- Status changed from needs_review to positive_review
comment:14 Changed 17 months ago by
- Resolution set to worksforme
- Status changed from positive_review to closed
Huh, it's already there.