Opened 12 years ago

Closed 12 years ago

#1793 closed enhancement (fixed)

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

Reported by: malb Owned by: malb
Priority: major Milestone: sage-2.10.2
Component: commutative algebra Keywords:
Cc: was, mabshoff Merged in:
Authors: Reviewers:
Report Upstream: Work issues:
Branch: Commit:
Dependencies: Stopgaps:

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 malb 12 years ago.
trac_1793_laurent.patch (2.8 KB) - added by malb 12 years ago.
trac_1793_review.patch (980 bytes) - added by malb 12 years ago.
patch removes remark about index of regularity

Download all attachments as: .zip

Change History (11)

comment:1 Changed 12 years ago by malb

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 12 years ago by malb

  • Cc mabshoff added
  • Status changed from new to assigned

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 12 years ago by malb

  • Summary changed from [with patch, needs careful review] Hilbert series, Hilbert polynomial, Laurent series expansion to [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 12 years ago by ncalexan

  • Summary changed from [with patch, needs review] Hilbert series, Hilbert polynomial, Laurent series expansion to [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 12 years ago by malb

  • Summary changed from [with patch, with partial positive review] Hilbert series, Hilbert polynomial, Laurent series expansion to Hilbert 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 12 years ago by malb

Changed 12 years ago by malb

comment:6 Changed 12 years ago by malb

  • Summary changed from Hilbert series, Hilbert polynomial, Laurent series expansion to [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 12 years ago by ncalexan

  • Summary changed from [with patch, needs review] Hilbert series, Hilbert polynomial, Laurent series expansion to [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 12 years ago by malb

patch removes remark about index of regularity

comment:8 Changed 12 years ago by mabshoff

  • Resolution set to fixed
  • Status changed from assigned to closed

Merged all three patches in Sage 2.10.2.alpha0

Note: See TracTickets for help on using tickets.