Opened 15 years ago

Closed 15 years ago

#1793 closed enhancement (fixed)

[with patch, with positive review] Hilbert series, Hilbert polynomial, Laurent series expansion

Reported by: Martin Albrecht Owned by: Martin Albrecht
Priority: major Milestone: sage-2.10.2
Component: commutative algebra Keywords:
Cc: William Stein, Michael Abshoff Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description

The attached bundle implements everything to make the following work:

sage: P.<x11,x12,x13,x14,x21,x22,x23,x24,x31,x32,x33,x34,x41,x42,x43,x44> = PolynomialRing(QQ,order='degrevlex')
sage: I = Ideal([
    x11^2 + x12*x21 + x13*x31 + x14*x41,   x11*x12 + x12*x22 + x13*x32 + x14*x42,
    x11*x13 + x12*x23 + x13*x33 + x14*x43, x11*x14 + x12*x24 + x13*x34 + x14*x44,
    x11*x21 + x21*x22 + x23*x31 + x24*x41, x12*x21 + x22^2 + x23*x32 + x24*x42,
    x13*x21 + x22*x23 + x23*x33 + x24*x43, x14*x21 + x22*x24 + x23*x34 + x24*x44,
    x11*x31 + x21*x32 + x31*x33 + x34*x41, x12*x31 + x22*x32 + x32*x33 + x34*x42,
    x13*x31 + x23*x32 + x33^2 + x34*x43,   x14*x31 + x24*x32 + x33*x34 + x34*x44,
    x11*x41 + x21*x42 + x31*x43 + x41*x44, x12*x41 + x22*x42 + x32*x43 + x42*x44,
    x13*x41 + x23*x42 + x33*x43 + x43*x44, x14*x41 + x24*x42 + x34*x43 + x44^2
    ])
sage: S = I.hilbert_series(); S
(t^12 - 7*t^11 + 20*t^10 - 28*t^9 + 14*t^8 + 15*t^7 - 20*t^6 + 19*t^5 - 22*t^4 + 7*t^3 + 20*t^2 + 8*t + 1)/(t^8 - 8*t^7 + 28*t^6 - 56*t^5 + 70*t^4 - 56*t^3 + 28*t^2 - 8*t + 1)

sage: H = I.hilbert_polynomial(); H
1/180*t^7 + 7/90*t^6 + 293/360*t^5 + 61/36*t^4 + 1553/360*t^3 + 851/180*t^2 + 101/30*t + 1

sage: L.<u> = LaurentSeriesRing(ZZ)
sage: L(S)
1 + 16*u + 120*u^2 + 575*u^3 + 2044*u^4 + 5927*u^5 + 14832*u^6 + 33209*u^7 + 68189*u^8 + 130642*u^9 + 236488*u^10 + 408288*u^11 + 677143*u^12 + 1084929*u^13 + 1686896*u^14 + 2554659*u^15 + 3779609*u^16 + 5476772*u^17 + 7789144*u^18 + 10892530*u^19 + O(u^20)

sage: [H(n) for n in range(20)] # matches above for n>=5
[1, 16, 120, 574, 2043, 5927, 14832, 33209, 68189, 130642]

However, it needs careful review especially in the LaurentSeries department because I am not very experienced there.

Attachments (3)

trac_1793_hilbert.patch (5.5 KB) - added by Martin Albrecht 15 years ago.
trac_1793_laurent.patch (2.8 KB) - added by Martin Albrecht 15 years ago.
trac_1793_review.patch (980 bytes) - added by Martin Albrecht 15 years ago.
patch removes remark about index of regularity

Download all attachments as: .zip

Change History (11)

comment:1 Changed 15 years ago by Martin Albrecht

A relevant [sage-support] thread is here

http://groups.google.com/group/sage-support/browse_thread/thread/db22a8fa713b8da2

Also, the bundle contains some old patches as well, if that presents a problem, I'll provide clean patches instead.

comment:2 Changed 15 years ago by Martin Albrecht

Cc: Michael Abshoff added
Status: newassigned

mabshoff wrote at #1756:

Singular's Hilbert series has overflow issues in certain situations. Let me digg out some email about a test case and report this to the Singular team.

comment:3 Changed 15 years ago by Martin Albrecht

Summary: [with patch, needs careful review] Hilbert series, Hilbert polynomial, Laurent series expansion[with patch, needs review] Hilbert series, Hilbert polynomial, Laurent series expansion

hilbert2.hg contains the corrections William suggested on IRC and replaces hilbert.hg.

comment:4 Changed 15 years ago by ncalexan

Summary: [with patch, needs review] Hilbert series, Hilbert polynomial, Laurent series expansion[with patch, with partial positive review] Hilbert series, Hilbert polynomial, Laurent series expansion

The patches from hilbery2.hg with ids a692e0df3534, 0b92c1071492, 6f3a99024ee7 should be applied.

I didn't look at the other patches.

comment:5 Changed 15 years ago by Martin Albrecht

Summary: [with patch, with partial positive review] Hilbert series, Hilbert polynomial, Laurent series expansionHilbert series, Hilbert polynomial, Laurent series expansion

Because the bundle contained many irrelevant patches I tried to provide clean patches instead and deleted every copy of my patches on the way (and all attachments to avoid confusion for the release maintainer). Me stupid. I'll provide new patches as soon as I have re-implemented the functionality.

Changed 15 years ago by Martin Albrecht

Attachment: trac_1793_hilbert.patch added

Changed 15 years ago by Martin Albrecht

Attachment: trac_1793_laurent.patch added

comment:6 Changed 15 years ago by Martin Albrecht

Summary: Hilbert series, Hilbert polynomial, Laurent series expansion[with patch, needs review] Hilbert series, Hilbert polynomial, Laurent series expansion

The attached files trac_1793_hilbert.patch and trac_1793_laurent.patch re-implement the desired functionality and need review.

comment:7 Changed 15 years ago by ncalexan

Summary: [with patch, needs review] Hilbert series, Hilbert polynomial, Laurent series expansion[with patch, with positive review] Hilbert series, Hilbert polynomial, Laurent series expansion

I say apply both patches.

I think that the Laurent series patch touches coercion code that will be completely rewritten soon, so I'm not worried that it's not particularily general.

There is an unclear comment in the hilbert_polynomial docstring. The comment could be removed. From IRC:

ncalexan: malb: let's took 1793.
[3:12pm] ncalexan: The docstring to hilbert_polynomial says, ' This $d$ is called the index of regularity of
[3:12pm] ncalexan:  1116        $I$. '
[3:12pm] ncalexan: Which $d$?  The minimal one?
[3:13pm] malb: yes
[3:13pm] malb:  for all but finitely many positive  integers $d$
[3:14pm] malb: that encodes minimal for me?
[3:15pm] ncalexan: malb: that is unclear to me.  Is there a function to return the index of regularity?
[3:15pm] malb: no
[3:15pm] ncalexan: If not, I say drop the remark.  Or clarify it.  Why is it there?
[3:15pm] ncalexan: (The remark about $d$ being the index)
[3:15pm] malb: because there should be such a function
[3:15pm] malb: but I can drop it
[3:16pm] ncalexan: malb: is that easy to determine?  'cuz it would be useful :)

Changed 15 years ago by Martin Albrecht

Attachment: trac_1793_review.patch added

patch removes remark about index of regularity

comment:8 Changed 15 years ago by Michael Abshoff

Resolution: fixed
Status: assignedclosed

Merged all three patches in Sage 2.10.2.alpha0

Note: See TracTickets for help on using tickets.