Opened 17 months ago
Closed 16 months ago
#20930 closed enhancement (fixed)
Generalize multiplicity() and intersection_multiplicity() for subschemes
Reported by:  gjorgenson  Owned by:  

Priority:  minor  Milestone:  sage7.3 
Component:  algebraic geometry  Keywords:  gsoc2016 
Cc:  bhutz, mmarco  Merged in:  
Authors:  Grayson Jorgenson  Reviewers:  Ben Hutz 
Report Upstream:  N/A  Work issues:  
Branch:  7801dcc (Commits)  Commit:  7801dcc6598fae3ef8cbbf20f7d07b78430a108a 
Dependencies:  Stopgaps: 
Description (last modified by )
Currently there is a multiplicity()
function for algebraic curves which computes the multiplicity of a point on a curve as the multiplicity of the maximal ideal in the local ring of the curve corresponding to that point. This definition still works for arbitrary projective/affine subschemes and it would be good to implement it in the more general case.
Also, by using affine patches, it is possible to compute multiplicities and intersection multiplicities of points of subschemes of products of projective spaces, so it would be good to implement that here as well.
These implementations should be made available to both the subscheme classes and corresponding point classes.
Change History (9)
comment:1 Changed 17 months ago by
 Branch set to u/gjorgenson/ticket/20930
comment:2 Changed 17 months ago by
 Commit set to 2ca3713691a83889f9ecbd23382cf2e89ffede24
comment:3 Changed 17 months ago by
 Commit changed from 2ca3713691a83889f9ecbd23382cf2e89ffede24 to a655e09cec3ca127364d471d3c71ffab04122eea
comment:4 Changed 17 months ago by
 Description modified (diff)
 Status changed from new to needs_review
I had forgotten that intersection_multiplicity functions were already implemented for points in #20811. I merged with 7.3 beta7 and added checks to give nicer errors if multiplicity or intersection_multiplicity are called for an ambient space point.
comment:5 Changed 16 months ago by
 Reviewers set to Ben Hutz
 Status changed from needs_review to needs_work
I see just a couple minor things here.
In the descriptions: It is the multiplicity of the point, not the subscheme. For example 'Return the multiplicity of the codomain of this point at this point.' would be better as 'Return the multiplicity of this point in its codomain.' This occurs in a number of places.
Also, the example I tried in 20811 which you used here was actually not quite what I had in mind. It is better with
G = PP.subscheme([(x^2  2*y^2)*v  y^2*u])
then you can (and should) describe it as finding the fixed points of z^22
.
comment:6 Changed 16 months ago by
 Commit changed from a655e09cec3ca127364d471d3c71ffab04122eea to 7801dcc6598fae3ef8cbbf20f7d07b78430a108a
Branch pushed to git repo; I updated commit sha1. New commits:
7801dcc  20930: doc fixes

comment:7 Changed 16 months ago by
 Status changed from needs_work to needs_review
Thanks, made the changes. I also modified the example slightly to use the map z^2 + 1/4
to test what happens for a double fixed point.
comment:8 Changed 16 months ago by
 Status changed from needs_review to positive_review
comment:9 Changed 16 months ago by
 Branch changed from u/gjorgenson/ticket/20930 to 7801dcc6598fae3ef8cbbf20f7d07b78430a108a
 Resolution set to fixed
 Status changed from positive_review to closed
Branch pushed to git repo; I updated commit sha1. New commits:
20930: function implementations.