@@ -871,13 +871,31 @@ cdef class KhuriMakdisi_small(KhuriMakdisi_base):
871871 sage: p2 = G.point(pl2 - b)
872872 sage: -(-p1) == p1 # indirect doctest
873873 True
874+
875+ Check that :issue:`39148` is fixed::
876+
877+ sage: # long time
878+ sage: k.<x> = FunctionField(GF(17)); t = polygen(k)
879+ sage: F.<y> = k.extension(t^4 + (14*x + 14)*t^3 + 9*t^2 + (10*x^2 + 15*x + 8)*t
880+ ....: + 7*x^3 + 15*x^2 + 6*x + 16)
881+ sage: infty1, infty2 = F.places_infinite()
882+ sage: O = F.maximal_order()
883+ sage: P = O.ideal((x + 1, y + 7)).divisor()
884+ sage: D1 = 3*infty2 + infty1 - 4*P
885+ sage: D2 = F.divisor_group().zero()
886+ sage: J = F.jacobian(model='km-small', base_div=4*P)
887+ sage: J(D1) + J(D2) == J(D1)
888+ True
874889 """
875890 cdef int d0 = self .d0
876891 cdef int g = self .g
877892 cdef Matrix w1, w2, w3, w4
878893
879894 w1 = self .mu_image(self .wV2, wd, self .mu_mat23, 4 * d0 - g + 1 )
880- w2 = self .mu_preimage(self .wV3, w1, self .mu_mat23, d0)
895+ # The row space of w2 represents H^0(O(2D_0 - D)), whose dimension is
896+ # at least d0 - g + 1, and hence the codimension is at most d0. Thus,
897+ # we cannot provide an expected_codim argument for mu_preimage.
898+ w2 = self .mu_preimage(self .wV3, w1, self .mu_mat23)
881899 # efficient than
882900 # wf = matrix(w2[0])
883901 # w3 = self.mu_image(wf, self.wV4, self.mu_mat24, 4*d0 - g + 1)
0 commit comments