Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Basic intersection analysis for algebraic curves #20839

Closed
sagetrac-gjorgenson mannequin opened this issue Jun 17, 2016 · 14 comments
Closed

Basic intersection analysis for algebraic curves #20839

sagetrac-gjorgenson mannequin opened this issue Jun 17, 2016 · 14 comments

Comments

@sagetrac-gjorgenson
Copy link
Mannequin

sagetrac-gjorgenson mannequin commented Jun 17, 2016

Implement basic intersection analysis, such as when given two curves and a point, determine if the point is in the intersection of the two curves, and if so, compute the intersection multiplicity of the curves at that point if defined. Also, given a projective curve, determine if it is a complete intersection.

CC: @bhutz @miguelmarco

Component: algebraic geometry

Keywords: gsoc2016

Author: Grayson Jorgenson

Branch/Commit: cae16fe

Reviewer: Ben Hutz

Issue created by migration from https://trac.sagemath.org/ticket/20839

@sagetrac-gjorgenson sagetrac-gjorgenson mannequin added this to the sage-7.3 milestone Jun 17, 2016
@sagetrac-gjorgenson
Copy link
Mannequin Author

sagetrac-gjorgenson mannequin commented Jun 17, 2016

Branch: u/gjorgenson/ticket/20839

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 20, 2016

Commit: f775a0f

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 20, 2016

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

f775a0f20839: first implementation attempt.

@bhutz
Copy link

bhutz commented Jun 20, 2016

Reviewer: Ben Hutz

@bhutz
Copy link

bhutz commented Jun 20, 2016

comment:4
  • intersects_at(): why not but both attempts in the same try block?

  • is_complete_intersection: Boolean can go on the same line at OUTPUT
    not the radical ideal per our discussion today

here is another noncomplete intersection example

P.<x,y,z,w>=ProjectiveSpace(QQ,3)
X= Curve([x*z-y^2,z*(y*w-z^2) - w*(x*w-y*z)])
X.is_complete_intersection()
  • intersection_multiplicity: an integer can go on the same line as OUTPUT

good these add up to 4 as bezout's theorem implies

K.<i>=QuadraticField(-1)
A.<x,y>=AffineSpace(K,2)
C = Curve([x^2-y])
D = Curve([x^2+y^2])
for t in C.intersection(D).rational_points():
    C.intersection_multiplicity(D,t)

also good

K.<i>=QuadraticField(-1)
A.<x,y>=AffineSpace(K,2)
C = Curve([y^2-x^3])
D = Curve([(x^2+y^2)^2 - 4*x^2*y^2])
for t in C.intersection(D).rational_points():
    C.intersection_multiplicity(D,t)

so for plane curves this looks ok. Does this really work in dimension greater than 2? I don't think it does, I think the intersection number possibly has lower order terms. Regardless, in looking at this, the following example died

K.<i>=QuadraticField(-1)
A.<x,y,z>=AffineSpace(K,3)
C = Curve([x^2-y,z^2+x^2])
D = Curve([x^2+y^2,x^2+z])
for t in C.intersection(D).rational_points():
    C.intersection_multiplicity(D,p)
  • I think an transverse check would be nice too:

is_transverse() - Returns true if and only if the point p is a nonsingular point of both plane curves C and D and the curves have distinct tangents there.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 21, 2016

Changed commit from f775a0f to 09eea02

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 21, 2016

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

bbffa3920774: Merge this ticket with 20697.
4fce7ed20774: Merge this ticket with 20676.
4655c7220774: Implement multiplicity, tangents, and is_ordinary_singularity
e1f152920774: Merge with 7.3 beta3
e6f1a9320774: Changes from first review.
1f0d7ab20774: Merge with 7.3 beta4.
bfcd05e20774: Added some error tests, and updated error messages.
4282a4f20774: addressed small bug with point search
656472420839: merge with ticket 20774
09eea0220839: some remaining changes from review

@sagetrac-gjorgenson
Copy link
Mannequin Author

sagetrac-gjorgenson mannequin commented Jun 21, 2016

comment:6

Thanks, I made most of the changes, but haven't yet addressed the intersection_multiplicity issue. Is there a good way to generalize the intersection multiplicity computations to work for space curves, or would it be best to make them specific to plane curves?

I really don't have much homological algebra background, but if I understand correctly, I think a general definition of intersection multiplicity is given by Serre's Tor formula. I think Singular has some functionality for working with the needed constructions, but I'm not sure whether it's enough to be able to do multiplicity computations.

@sagetrac-gjorgenson
Copy link
Mannequin Author

sagetrac-gjorgenson mannequin commented Jun 23, 2016

comment:7

New commit didn't automatically appear.


New commits:

4b9ab0a20839: implemented Serre intersection multiplicity for affine/projective subschemes

@sagetrac-gjorgenson
Copy link
Mannequin Author

sagetrac-gjorgenson mannequin commented Jun 23, 2016

Changed commit from 09eea02 to 4b9ab0a

@bhutz
Copy link

bhutz commented Jun 23, 2016

comment:8

This looks fine except that is_transverse should return False when one of the points is singular.

@sagetrac-gjorgenson
Copy link
Mannequin Author

sagetrac-gjorgenson mannequin commented Jun 24, 2016

Changed commit from 4b9ab0a to cae16fe

@sagetrac-gjorgenson
Copy link
Mannequin Author

sagetrac-gjorgenson mannequin commented Jun 24, 2016

New commits:

cae16fe20839: improved is_transverse

@vbraun
Copy link
Member

vbraun commented Jun 26, 2016

Changed branch from u/gjorgenson/ticket/20839 to cae16fe

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants