From 60a055cf6d9a54784a3dca18e56c090b20282e50 Mon Sep 17 00:00:00 2001 From: Tommy Hofmann Date: Tue, 14 Nov 2023 22:31:16 +0100 Subject: [PATCH] Fix preimage map of residue field (#1285) --- src/Map/NfOrd.jl | 6 +++++- test/NfOrd/ResidueField.jl | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Map/NfOrd.jl b/src/Map/NfOrd.jl index 27f5d97a3e..ca70dc8877 100644 --- a/src/Map/NfOrd.jl +++ b/src/Map/NfOrd.jl @@ -604,7 +604,11 @@ function NfOrdToFqFieldMor(O::NfOrd, P::NfOrdIdl) for i in 2:d add!(zz.elem_in_nf, zz.elem_in_nf, powers[i - 1] * lift(ZZ, coeff(y, i - 1))) end - zz.elem_in_nf = mod(zz.elem_in_nf, p) + if is_defining_polynomial_nice(nf(O)) && contains_equation_order(O) + zz.elem_in_nf = mod(zz.elem_in_nf, p) + else + zz = mod(zz, p) + end @assert _image(zz) == y return zz end diff --git a/test/NfOrd/ResidueField.jl b/test/NfOrd/ResidueField.jl index 95da76f115..08055b039c 100644 --- a/test/NfOrd/ResidueField.jl +++ b/test/NfOrd/ResidueField.jl @@ -50,5 +50,21 @@ @test (mF3\(a4) - b) in P end end + + # 1284 + + P, x = polynomial_ring(ZZ) + K, a = number_field(x^5 + x^3 - x^2 - x - 1) + M = Order(K, [1, 121*a, a^2 - 17*a, a^3 - 72*a, a^4 - 76*a]) + P = prime_ideals_over(M, 11) + + for i in 1:1000 + for p in P + k, h = residue_field(M, p, false) + y = Hecke.primitive_element(k) + tmp = preimage(h, y) + @test h(tmp) == y + end + end end