basis_LkP_rr_space.sage 802 B

1234567891011121314151617181920212223
  1. # See https://math.stackexchange.com/questions/294644/basis-for-the-riemann-roch-space-lkp-on-a-curve?rq=1
  2. # Basis for the Riemann-Roch space L(kP) on a curve
  3. # find a basis for L(k[P])
  4. # Compute basis elements for L(n[P]) on y^2 = x^3 - x at P = (0, 0)
  5. R.<x> = FunctionField(QQbar)
  6. S.<Y> = R[]
  7. L.<y> = R.extension(Y^2 - (x^3 - x))
  8. # Verify that P is ordinary with the ideal <x - 0, y - 0>
  9. I = L.maximal_order().ideal(x,y)
  10. assert I.is_prime()
  11. D = I.divisor()
  12. print("L([P]) =", D.basis_function_space())
  13. print("L(2[P]) =", (2*D).basis_function_space())
  14. print("L(3[P]) =", (3*D).basis_function_space())
  15. print("L(4[P]) =", (4*D).basis_function_space())
  16. print("L(5[P]) =", (5*D).basis_function_space())
  17. print("L(6[P]) =", (6*D).basis_function_space())
  18. print("L(7[P]) =", (7*D).basis_function_space())