Computational Algebraic Geometry

The main lectures will be uploaded in video format to YouTube, see the links below or the lecture playlist.

We will hold tutorial sessions in person, on Thursdays at 10:15–11:45 in Room F107, Building 1101.

Lecture videos

Homework for Lecture 1

  1. Visit the Magma and SageMath calculators. Make sure these things run on your computer.
  2. If you are feeling adventurous, try the tutorial for SageMath. If you like it, try the “first steps” pdf file for Magma.
  3. For the technically minded, I recommend that you attempt installing SageMath and Julia to your own computer. Good luck!
  4. Read about the text editors Vim, Emacs, Atom, and Sublime. Play around with the ones that appeal to you. Decide which one(s) you want to use in the next weeks.

Homework for Lecture 2

Consider an ellipse of the form ax^2 + by^2 = c with a,b,c complex constants.

  1. For which a,b,c will the geometry of the set of complex solutions change?
  2. If a,b,c are rational, can I still consider finite reductions for each prime? What can go wrong? How can you go around it?
  3. (Challenge) If a,b,c are possibly transcendental, what would be the special reductions that would be loosely analogous to the finite reductions we studied?

Homework for Lecture 3

  1. Display primes up to 1000 that have 3 as a quadratic residue but not -1.
  2. Read about the boolean operators in the Magma documentation.
    • Start by searching for eq and ne. What happens if you write something silly like (3 eq true)? Does Magma have a more flexible equality operator?
    • Read about the “comparison” operators for integers: lt, gt, le, ge.
    • Fiddle around to get a feel for the syntax. Write simple “if” clauses, then make them more and more complicated. Extra points if you manage to get confused.
  3. Read about “while” and “repeat … until” constructions. Study the examples there. Again, fiddle until you are confused for maximum results.
  4. How many twin primes are there less than 10000? Display all pairs.

Homework for Lecture 4

  1. Prove that the complement of the affine n-space in projective n-space is a projective (n-1)-space.
  2. Prove that the projective real line is a circle and the projective complex line is a sphere.
  3. Fill in the details in the argument showing that the projective closure of the complex circle is a sphere.
  4. Read about the commands Homogenization and IsHomogeneous in the Magma handbook. Fiddle around.

Homework for Lecture 5

  1. Implement your own forest fire algorithm, as in Section 1.2.8 of Solving Problems with Magma.
  2. Implement the (2 dimensional) Game of Life in the same spirit as the forest fire algorithm.

Homework for Lecture 6

  1. Show that the coordinate-free Plücker embedding agrees with the version defined by computing minors.
  2. Try to see (without consulting a book) if you can figure out the quadratic equations defining the Grassmannians with respect to Plücker coordinates, using the G(2,4) case. Afterwards, study the answer in p65-66 of Harris’ “Algebraic geometry”.
  3. (Harder) Study the coordinate-free version of the quadratic Plücker relations in p64-65 of Harris’ book. Can you present it without looking at the book and answer detailed questions?
  4. Do the exercises 6.4 and 6.5 in Harris’ book: A subvariety in G(2,4) maps to a line via the Plücker embedding iff it parametrizes lines in a plane passing through a point in P3. Analogously, 2-planes in G(2,4) correspond to lines through a point or lines in a plane in P3.

Homework for Lecture 7

  1. Whenever you intersect a line with a hypersurface of degree d in P^n, either the line is in the hypersurface, or there are d intersection points (counting multiplicities).
  2. Find the space of degree d surfaces containing the line [u:v:0:0].
  3. Write a function that takes a line in P3 (e.g. as a 2×4 matrix) and an integer d, then outputs the space of degree d surfaces containing the line. You may want to read about the “VectorSpace” or “LinearSystem” commands.
  4. Stratify the Grassmannian using the complements and interiors of the standard affine charts, i.e. defined by the vanishing or non-vanishing of minors. Parametrize each strata by identifying it with an affine space.
  5. Write a function that takes a smooth surface in P3 and counts the number of lines in that surface by considering each strata of the Grassmannian. (There is a built-in function LinesInScheme that does exactly that, but now you can build it yourself.)
  6. Try to count lines in higher dimensional hypersurfaces (e.g. threefolds in P^4).
  7. Try to count planes in higher dimensional hypersurfaces (e.g. fourfolds in P^5).

Homework for Lecture 8

  1. How many points are there in the underlying set of the spectrum of the dual numbers? What is its residue field?
  2. Describe the K[epsilon] points of a smooth affine hypersurface.
  3. Describe the K[epsilon] points of a smooth variety.
  4. Convince yourself that an infinitesimal deformation of a line in P3 (or in S) corresponds to choosing a section of its normal bundle. (Fancy version: Proposition 3.2.1 of Sernesi’s book “Deformation of algebraic schemes”)

Homework for Lecture 9

  1. Write a function that counts all the lines in a pencil of quartic surfaces (not just on an affine chart of the Grassmannian). Do you always get 320?
  2. Write a function that counts lines in a net (i.e. 2 parameter family) of quintic surfaces. What number do you get?
  3. Read about monomial orderings (lex, grevlex, etc.) and Groebner bases.
  4. Read the statement of Hilbert’s Nullstellensatz. What does it imply about the projection of a reduced 0-dimensional scheme to a coordinate axis?
  5. Show that the roots of a monic polynomial are permuted by the absolute Galois group precisely when the coefficients of the polynomial are defined over your base field.
  6. Read about how to define a map between schemes in Magma.
  7. For some random pencil of quartics find the quartics containing a line.
  8. (Harder) Find how many lines there are for each quartic surface in a pencil.

Homework for Lecture 10

  1. Fill in the details for the proof that the Fano scheme of lines in S is a fine moduli space.
  2. How did we end up showing that the equations cutting out F_S is reduced? What is the sketch of argument?
  3. Practice the arguments in the computation of the degree of the normal bundle of L. Get an overview of the pieces and how they are put together.
  4. (Advanced) Read pages 106-107 of “Harris, Morrison — Moduli of curves” on the Kodaira-Spencer map of a family of morphisms.
  5. (Advanced) Do the Exercise II.5.16 (d) on Hartshortne’s Algebraic Geometry, which is about determinants of vector bundles.
  6. (Advanced) Skim through Chapter II.8 in Hartshorne and read Examples 8.20.1 and 8.20.3. One of them computes the determinant of the tangent bundle of P^n and the other computes the normal bundle of a smooth hypersurface.

Homework for Lecture 11

  1. Let f,g be univariate polynomials. Show that by repeatedly computing remainders you find the gcd(f,g).
  2. Do the exercises 2-6 on page 61 in “Ideals, varieties, and algorithms” 4th edition.

Homework for Lecture 12

  1. Implement the division algorithm in Magma (or your favorite computer algebra software).
  2. Prove that a monomial m lies inside a monomial ideal if and only if one of the monomial generators of the ideal divides m.
  3. Prove that every monomial ideal admits a unique minimal basis.
  4. Complete the details of the proof of Dickson’s lemma.
  5. (Bonus) You can modify the proof of Dickson’s lemma to get the generators of an ideal inductively. See Chapter 2 Section 4 of “Ideals, varieties, and algorithms”.

Homework for Lecture 13

  1. Prove that the isomorphism R/I to R/lt(I) is an isomorphism of K-vector spaces.
  2. Find a Gröbner basis for a principal ideal I=(f) in a polynomial ring.
  3. Prove or disprove: If an ordered basis G for an ideal I has the property that for any f in I the remainder of f via G is 0 then G is a Gröbner basis.
  4. Prove or disprove: The S-polynomial S(f,g) does not depend on monomial ordering.
  5. Prove or disprove: If G is a GB, then the remainder via G of a product of two polynomials equals the product of the remainders.

Homework for Lecture 14

  1. Implement Buchberger’s algorithm together with performance improvements.
  2. Implement an algorithm that takes an arbitrary GB and outputs a reduced GB.
  3. Prove that if you remove one element from a minimal Gröbner basis then it is still a minimal Gröbner basis (of some other ideal).
  4. Show that computing a reduced row echelon form for a matrix corresponds to a reduced Gröbner basis computation.
  5. If f has remainder r upon division by a sequence g1,..,ga then prove that the remainder of f upon division by g1,..,ga,r is zero.
  6. Do the Exercise 13 in Chapter 2 Section 10 of “Ideals, Varieties, and Algorithms” to appreciate the difference between lex and grevlex Gröbner bases.

Homework for Lecture 15

  1. Write a simple implementation of Newton’s algorithm for root finding. Add extra features to overcome the difficulties we talked about. Use floating point arithmetic, detect and avoid zero derivatives, automatically try different starting points, … Try your algorithm on random reduced polynomials until you can find all the complex roots.
  2. (Bonus) Learn how to plot the Newton fractal of a given polynomial (e.g. a tutorial). Do we always get a fractal? What are the general features of these shapes?

Homework for Lecture 16

  1. If you knew the height of an algebraic number, and you had the means to approximate it arbitrarily well (a black box), how could you find its minimal polynomial?
  2. (Bonus) Look at Waldschmidt’s “Diophantine approximation …” Chapter 3 to see how you can bound the heights of a*b and a+b if you know height bounds on a and b.
  3. Implement Newton’s algorithm for a non-degenerate, 2-dimensional polynomial maps, i.e. (f1,f2) : C^2 -> C^2. 
  4. When performing homotopy continuation on a family of univariate polynomials r_t(x) = (1-t)*p(x) + t*q(x), what is the tangent direction that a root moves, inside the (t,x) space, at a non-degenerate value of t?

Homework for Lecture 17

  1. If f is irreducible and g*h belongs to the ideal (f) then prove that f divides either g or h. (Use gcd).
  2. Suppose f is a polynomial, not necessarily irreducible, how many maps are there from Q[x]/(f) to the complex field that is the identity on the rational numbers? Be careful with factors of f that appear with multiplicity.
  3. Prove or disprove: If f = gh with g and h irreducible, then show that Q[x]/(gh) is isomorphic to the product of two fields. What happens if you have more than two factors, possibly with multiplicity greater than 1?
  4. Pick a reducible polynomial f and construct elements in Q[x]/(f) that do not have an inverse. What are all the elements that are invertible?

Homework for Lecture 18

  1. Prove that if f is an irreducible polynomial over a field of characteristic 0, then every root of f appears with multiplicity 1.
  2. Prove that i_{alpha,beta} from the video really is an embedding of the tower of field extensions.
  3. Find two irreducible polynomials f and g of degree 3 such that g factors over Q[x]/(f) into a linear and a quadratic polynomial. Find a primitive element for the corresponding quadratic extension of Q[x]/(f). (Use Magma or SageMath etc.)

Homework for Lecture 19

  1. Let I radical, 0 dimensional. What is the last (i.e. smallest) element of the reduced GB with respect to a lex ordering? Prove it.
  2. Find a reduced, 0 dimensional ideal I such that it’s reduced GB does not satisfy Shape lemma.
  3. How can you test that a linear form U satisfies the conditions of the modified Shape lemma without solving the polynomial system? 
  4. Using 3) write a code that takes I and U, checks that R/I is finite and whether or not U is a primitive element.
  5. (*) Given I=(f1,..,fk) radical, 0 dimensional find a polynomial g(x1,…,xn) such that if g(a1,…,an) is non-zero then U=a1x1+..+anxn will satisfy the conditions of modified Shape lemma. (You need to think hard or go beyond the lecture material for this.

Homework for Lecture 20

  1. Show that the the hypersurface X is smooth iff the cone over X is smooth (we take the cone without the origin).
  2. With f a complex holomorphic function (or a polynomial) in affine complex n-space, show that Nabla(f) really is the orthogonal vector to a (smooth) level set of f. Use the Hermitian inner product on the complex n-space.
  3. Prove Euler’s relation for homogeneous polynomials.
  4. Prove that an affine hypersurface Z(g) is smooth if g and all its partial derivatives do not vanish simultaneously.
  5. Generate all (hyper)surfaces in P3 of degree 4 and defined by polynomials constructed as the sum of 5 monomials (with each of their coefficients equal to 1), e.g., x^4 + y^4 + z^4 + w^4 + xyzw. What percentage of these are smooth?
  6. (*) If, in the previous problem, you increase the range of coefficients from 1 to [-A,A] with A a positive integer, how does this percentage change as A grows? Experiment.

Homework for Lecture 21

  1. Draw the plane model for a compact orientable real surface of genus 2 with correct edge identifications.
  2. Bonus: Find out how the “topology” of the moduli space of curves is defined. In other words, how do we turn the set of isomorphism classes of curves of genus g into a space.

Homework for Lecture 22

The exercises 2-4 refer to the RiemannSurfaces package in SageMath. The homology basis is given in terms of vertices of the form (n,m) with “n” referring to a vertex of the Voronoi diagram on the base of projection.

  1. If you project P2 to P1 from a point p=[p1:p2:p3] then how would you compute the points of ramification on a curve C=Z(f) with respect to this projection? (Without resorting to coordinate change use the polynomial f and its derivatives.
  2. Explain the second label “m” in the labeling of the vertices. (See the notation at the beginning of exercises.)
  3. Given a line segment, or edge, of the Voronoi diagram, how many lifts are there of this line segment to the curve?
  4. Prove or disprove: If I want to specify that I want to lift the edge n1->n2 on the base, it suffices to specify the starting point (n1,m) on the curve (in addition to n2).

Homework for Lecture 23

  1. Let P1 have homogeneous coordinates x0,x1. Let z=x0/x1 and t=1/z. Compare the vector fields d/dz and d/dt where they are both defined.
  2. Describe the space of global tangent fields on P1 (you may use the fact that anything holomorphic on P1 is a rational function in z). 
  3. Same setup as before. Compare the covector fields dz and dt. Show that there are no holomorphic, non-zero covector fields on P1.

Homework for Lecture 24

  1. (*) Patch together holomorphic forms on affine charts of a smooth plane curve to prove the theorem representing holomorphic global forms as polynomials of certain degree.
  2. Compute the Riemann matrix of random smooth plane curves of degree 3,4,5 using RiemannSurfaces. Check that these matricies are symmetric with positive definite imaginary part.

Homework for Lecture 25

  1. What are the Hodge numbers of a cubic fourfold? What is it’s middle Betti number b4?
  2. What is the constant term of H(d)? What does it mean?
  3. Evaluate the generating series at y=0 to find the formula for h^{n,0}(d) in terms of n and d. This is the dimension of the space of holomorphic n-forms on an n-dimensional hypersurface of degree d. How does this compare to our formula from the previous lecture when n=1?
  4. (*) Carry out the calculation with the Chern classes of the tangent bundle to get an expression for the middle Betti number.
  5. (*) Why is the Euler number (hence the middle Betti number) of a hypersurface depends only on its degree and dimension, but not on the specific hypersurface itself? (E.g., you may want to read about and assume Ehresmann’s fibration theorem).

Homework for Lecture 26

  1. Compute (by hand) a basis of cohomology that respects the Hodge filtration using Griffiths residues for the quartic surface defined by x0^4+x1^4+x2^4+x3^4=0.
  2. Generate a random quintic threefold in P4 and compute a Griffiths basis for it.


Main textbooks

Advanced reading and relevant chapters


If you want a grade from this lecture, then you can take an oral exam at the end of the semester and do a Studienleistung. If that sounds like you, keep reading.

Studienleistung credits

  • Give 3 presentations during tutorial sessions, 20 minutes each, and on different weeks. Secure a “pass” from each. 
    • Each presentation should typically relate to one HW problem from previous weeks, but you can suggest other problems. 
    • I will rate each presentation as a pass or fail. Fails don’t count, you can try again in another week, on another problem.
  • The goal is to improve your research, problem solving, and expository skill. 
    • Choose your sufficiently rich problems so they allow you to demonstrate these abilities.
  • Email me the problem you want to present at least a week before you plan to make the presentation. 
    • E.g. to present on Thursday 18th, email me on Friday 12th, latest. 
    • If the problem you picked is too simple, I will warn you and you may have to pick another one or go well beyond the problem.
  • In addition to HW problems, a well written code, a clever observation, a simplification to an argument in the lecture are all possible presentation materials.
  • Even with a pass, I am happy to discuss your presentation with you, so you can get better and better. Scientific presentation is a good skill to develop! 

Exam credits

  • You have to register for an exam. 
  • I will make an *oral* exam at the end of this semester.
  • I plan to make the exam soon after the lectures end.
  • My HW exercises are a good indication of what I expect you to be able to do. The questions marked with (Harder) or (Advanced) don’t count as part of the curriculum. Advanced arguments made in lectures should be understood in broad strokes and you should be able to answer conceptual questions about them, even if the specifics are unclear.