Opened 3 years ago

Closed 3 years ago

#20512 closed defect (fixed)

0 by 0 minor of a matrix should belong to the base ring

Reported by: kedlaya Owned by:
Priority: major Milestone: sage-7.2
Component: linear algebra Keywords: schemes, Jacobian, matrix, minors
Cc: Merged in:
Authors: Kiran Kedlaya Reviewers: Frédéric Chapoton
Report Upstream: N/A Work issues:
Branch: 06a432a (Commits) Commit: 06a432a988286bfae4a86e140e53022a9cbc4fc1
Dependencies: Stopgaps:

Description (last modified by kedlaya)

This shouldn't return an error:

sage: P.<x,y,z> = ProjectiveSpace(2, QQ)
sage: X = P.subscheme([])
sage: X.Jacobian_matrix() # This works
[]
sage: X.Jacobian() #This doesn't
...
AttributeError: 'sage.rings.integer.Integer' object has no attribute 'reduce'

I think the mathematically correct answer is that X.Jacobian() should equal the ideal (1). This is consistent with the definition in the docstring:

  * the `d\times d` minors of the Jacobian matrix, where `d` is
    the :meth:`codimension` of the algebraic scheme, and

  * the defining polynomials of the algebraic scheme. Note that
    some authors do not include these in the definition of the
    Jacobian ideal. An example of a reference that does include
    the defining equations is [LazarsfeldJacobian].

In this case d=0, and the unique 0 by 0 minor of any matrix (empty or not) is equal to 1. And anyway, the Jacobian ideal of the full ambient space should cut out the empty subscheme.

Change History (11)

comment:1 Changed 3 years ago by kedlaya

  • Description modified (diff)

comment:2 Changed 3 years ago by kedlaya

  • Cc nbruin removed
  • Component changed from algebraic geometry to linear algebra
  • Description modified (diff)
  • Keywords matrix minors added
  • Summary changed from Jacobian of the tautologous subscheme of a toric variety is broken to 0 by 0 minor of a matrix should belong to the base ring

In fact, the problem seems to be that the 0 by 0 minor of a matrix is returned as 1 in the ring of integers, not the base ring of the matrix. Retitled and reclassified accordingly.

comment:3 Changed 3 years ago by kedlaya

  • Branch set to u/kedlaya/jacobian_of_the_tautologous_subscheme_of_a_toric_variety_is_broken

comment:4 Changed 3 years ago by kedlaya

  • Authors set to Kiran Kedlaya
  • Commit set to d2f604fa8ae2d4b16b4f3f38b4abd078268de401
  • Status changed from new to needs_review

I changed matrix/matrix2.pyx to fix the underlying issue with minors, and added a doctest to schemes/generic/algebraic_scheme.py to confirm that Jacobian is no longer broken.


New commits:

d2f604fCorrected return value of minors(0) for matrices

comment:5 follow-up: Changed 3 years ago by chapoton

  • doc is not formatted correctly, the line before the tests should end with :: and be followed by a blank line
  • please also use :trac:`20512` instead of the bare #20512
  • you should rather use .base_ring().one() instead of .base_ring()(1)

comment:6 Changed 3 years ago by chapoton

  • Status changed from needs_review to needs_work

comment:7 Changed 3 years ago by git

  • Commit changed from d2f604fa8ae2d4b16b4f3f38b4abd078268de401 to 06a432a988286bfae4a86e140e53022a9cbc4fc1

Branch pushed to git repo; I updated commit sha1. New commits:

06a432aFix Jacobian_matrix, docstrings

comment:8 in reply to: ↑ 5 Changed 3 years ago by kedlaya

Replying to chapoton:

  • doc is not formatted correctly, the line before the tests should end with :: and be followed by a blank line
  • please also use :trac:`20512` instead of the bare #20512
  • you should rather use .base_ring().one() instead of .base_ring()(1)

All done. Also, I noticed that my fix wasn't actually sufficient: in algebraic_scheme, the Jacobian_matrix() method also needs to be forced to produce a matrix in the correct ring. The last commit does this.

comment:9 Changed 3 years ago by kedlaya

  • Status changed from needs_work to needs_review

comment:10 Changed 3 years ago by chapoton

  • Reviewers set to Frédéric Chapoton
  • Status changed from needs_review to positive_review

ok, thanks. Good to go.

comment:11 Changed 3 years ago by vbraun

  • Branch changed from u/kedlaya/jacobian_of_the_tautologous_subscheme_of_a_toric_variety_is_broken to 06a432a988286bfae4a86e140e53022a9cbc4fc1
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.