Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hecke.reduce_mod_powers #1202

Closed
ThomasBreuer opened this issue Sep 5, 2023 · 2 comments
Closed

Hecke.reduce_mod_powers #1202

ThomasBreuer opened this issue Sep 5, 2023 · 2 comments

Comments

@ThomasBreuer
Copy link
Contributor

The function Hecke.reduce_mod_powers(a::nf_elem, n::Int) has been advertised in oscar-system/Oscar.jl/pull/2748.
The interesting situation there is n == 2, and I get the following examples.

julia> K, z = cyclotomic_field(7); a = (z + z^6)^2;

julia> Hecke.reduce_mod_powers(a, 2)   # the square is detected as such, fine
1^1
julia> Hecke.reduce_mod_powers(4*a, 2)  # the given value is still a square, but the common coefficient 4 is not dealt with
4^1
julia> Hecke.reduce_mod_powers(z, 2)  # this root of unity is not detected as the square of z^4
z_7^1

Am I perhaps asking the wrong questions?
(is_square says that the above values are squares.)

@thofma
Copy link
Owner

thofma commented Sep 5, 2023

Sorry, I forgot to replay to oscar-system/Oscar.jl#2748 (comment). The problem is that reduce_mod_powers does not guarantees what you want. It tries to reduce, but it does not, for example, factor anything.

@ThomasBreuer
Copy link
Contributor Author

@thofma O.k., then I will close this issue.
(The documentation of Hecke.reduce_mod_powers does not promise more than what the function does.
It could be improved: Write "integer", write a not \alpha, and the return value is a FacElem not a nf_elem.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants