Opened 5 years ago
Closed 5 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:  sage7.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, GitHub, GitLab)  Commit:  06a432a988286bfae4a86e140e53022a9cbc4fc1 
Dependencies:  Stopgaps: 
Description (last modified by )
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 5 years ago by
 Description modified (diff)
comment:2 Changed 5 years ago by
 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
comment:3 Changed 5 years ago by
 Branch set to u/kedlaya/jacobian_of_the_tautologous_subscheme_of_a_toric_variety_is_broken
comment:4 Changed 5 years ago by
 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:
d2f604f  Corrected return value of minors(0) for matrices

comment:5 followup: ↓ 8 Changed 5 years ago by
 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 5 years ago by
 Status changed from needs_review to needs_work
comment:7 Changed 5 years ago by
 Commit changed from d2f604fa8ae2d4b16b4f3f38b4abd078268de401 to 06a432a988286bfae4a86e140e53022a9cbc4fc1
Branch pushed to git repo; I updated commit sha1. New commits:
06a432a  Fix Jacobian_matrix, docstrings

comment:8 in reply to: ↑ 5 Changed 5 years ago by
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 5 years ago by
 Status changed from needs_work to needs_review
comment:10 Changed 5 years ago by
 Reviewers set to Frédéric Chapoton
 Status changed from needs_review to positive_review
ok, thanks. Good to go.
comment:11 Changed 5 years ago by
 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
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.