Brad Klee on Tue, 09 Oct 2018 05:44:32 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Introduction, Curve Algorithm |
Hi Bill Allombert and Pari Users, A slight revision with a new file tree is now available at GitHub: > https://github.com/bradklee/Hyperelliptic/ >> https://github.com/bradklee/Hyperelliptic/releases Per the request, I will include a more detailed explanation of theory & experiment. It may also help to read the introduction to Pierre Lairez "Computing Periods..." [1], which discusses the technique of Hermite Reduction. Thanks, Brad 0. BACKGROUND : [1] https://hal.inria.fr/hal-00981114v3 1. THEORY. For a more detailed description of the algorithm, let us start with valid input and the two main function calls: poly = V(x) = c_1*x + c_2*x^2 + ... + c_d*x^d ; HyperellipticPicardFuchs( poly ) = [ H, DT, A, F ] ; CheckCertificate([ H, DT, A, F ]) = (A*DT+dF/dt)%(2H-z) = 0. Potential V(x) defines a surface H(x,y) = (1/2)*y^2+V(x), with level curves C_z = { (x,y) in R^2 : z = 2*H(x,y) }. Complex transformation H(x,y)->H'(x,y)=H(x,i*y) allows us to define orthogonal curves C'_z = { (x,y) in R^2 : z = 2*H'(x,y) }. Taken together C_z and C'_z form a one dimensional, algebraic boundary of the Riemann surface S_z = { (x,y) in C^2 : z = 2*H(x,y) }, a 2-manifold and also a subset of C^2 ~ R^4 . Next we define dt = dq/p, the holomorphic differential of time evolution along S_z. The integral of dt around a closed loop L_z on S_z ( sometimes but not always L_z is a subset of C_z or C'_z ) depends on z through the variation of curvature between L_{z} and L_{z+dz}. Period function T(z) = int_{L_z} dt obeys a Picard-Fuchs type differential equation. That is, the coefficients A_n annihilate a sum over z-derivatives of a period function, 0 = sum_{n=0}^N A_n*(d^n T/dz^n) = int_{L_z} A*DT . DT_n = dt*(n!!)*(1/2)^n / y^(2*n). Given vector A, we need a certificate function F to verify the zero sum via CheckCertificate. Function HermiteReduce calculates [DT_n] = f_n(x)*dt = DT_n + dF_n/dt, ( here brackets denote reduction modulo exact differentials ) with f_n(x) degree-bounded polynomials in the variable x. The annihilator A is then calculated to satisy A*[DT] = 0. Thus A*DT = -d(sum_n A_n*F_n)/dt, which identifies that F = sum_n A_n*F_n . As A*DT equals an exact differential, an integral around any closed loop L_z must equal 0. The creative and sort-of difficult part is that HermiteReduce uses only matrix multiplication. How is this possible? The degree bound on f_n(x) allows us to work within a finite dimensional vector space, where we can encode all reductions into just one system of linear equations, represented by square matrix G. It's easy to prove that generic matrix G is invertible for any valid V(x). Inverting G, we may then extract component matrices MU, MV, dMV, which are invariants of S_z, and invariants of the Hermite reduction. This is at once too much and too little theory. I will stop short here, and promise more explanation, including pictures (!), in a forthcoming dissertation chapter. 2. EXPERIMENT. https://github.com/bradklee/Hyperelliptic/tree/master/Examples 2a. GMatrices.gp This file will print a few G matrices for potentials with arbitrary coefficients. It should be easy to see the trend that allows us to invert any matrix G from valid input V(x). 2b. EllipticCurves.gp The easiest examples are elliptic curves. Each torus S_z has a real and complex period, which are related by a second order differential equation. Vector A has three components. In two special cases vector A determines a hypergeometric differential equation, solved by T(z) = 2F1(a,b;c;k*z). 2c. Genus2.gp We might expect that when Riemann surface S_z has genus g=2, then vector A will have 2*g+1=5 components. This is only true in the absence of parity symmetry. When V(x) = V(-x), the vector space of reduced one-forms decomposes into symmetric and antisymmetric subspaces. All elements of [DT] belong to the symmetric subspace; therefore, vector A has only three components. 2d. GenusDegree.gp The dimensionality of vector A depends primarily on the degree of V(x), and the symmetry property V(x) ?= V(-x). However, we must also take into account the topology of Riemann surface S_z, which requires A to have an odd number of components. On Sun, Oct 7, 2018 at 6:08 AM Bill Allombert <Bill.Allombert@math.u-bordeaux.fr> wrote: > > Hello Brad, thanks for your contribution. > > Could you explain what this does or give a reference to some > explanation ?