Skip to content

Commit 30833a3

Browse files
committed
Fix preimage map of residue field
1 parent 34c4fbe commit 30833a3

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/Map/NfOrd.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,11 @@ function NfOrdToFqFieldMor(O::NfOrd, P::NfOrdIdl)
604604
for i in 2:d
605605
add!(zz.elem_in_nf, zz.elem_in_nf, powers[i - 1] * lift(ZZ, coeff(y, i - 1)))
606606
end
607-
zz.elem_in_nf = mod(zz.elem_in_nf, p)
607+
if is_defining_polynomial_nice(nf(O)) && contains_equation_order(O)
608+
zz.elem_in_nf = mod(zz.elem_in_nf, p)
609+
else
610+
zz = mod(zz, p)
611+
end
608612
@assert _image(zz) == y
609613
return zz
610614
end

test/NfOrd/ResidueField.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,21 @@
5050
@test (mF3\(a4) - b) in P
5151
end
5252
end
53+
54+
# 1284
55+
56+
P, x = polynomial_ring(ZZ)
57+
K, a = number_field(x^5 + x^3 - x^2 - x - 1)
58+
M = Order(K, [1, 121*a, a^2 - 17*a, a^3 - 72*a, a^4 - 76*a])
59+
P = prime_ideals_over(M, 11)
60+
61+
for i in 1:1000
62+
for p in P
63+
k, h = residue_field(M, p, false)
64+
y = Hecke.primitive_element(k)
65+
tmp = preimage(h, y)
66+
@test h(tmp) == y
67+
end
68+
end
5369
end
5470

0 commit comments

Comments
 (0)