Skip to content

Decompose a prime in the ring of integers

julia
julia> Qx, x = QQ[:x];

julia> K, a = number_field(x^2 - 5, :a);

julia> OK = ring_of_integers(K);

We decompose the ideals generated by 5, 7 and 11:

julia
julia> prime_decomposition(OK, 5)
1-element Vector{Tuple{AbsSimpleNumFieldOrderIdeal, Int64}}:
 (<5, a>, 2)

julia> prime_decomposition(OK, 7)
1-element Vector{Tuple{AbsSimpleNumFieldOrderIdeal, Int64}}:
 (<7>, 1)

julia> prime_decomposition(OK, 11)
2-element Vector{Tuple{AbsSimpleNumFieldOrderIdeal, Int64}}:
 (<11, a + 4>, 1)
 (<11, a + 7>, 1)

It is also possible to directly determine the decomposition type:

julia
julia> prime_decomposition_type(OK, 5)
1-element Vector{Tuple{Int64, Int64}}:
 (1, 2)

julia> prime_decomposition_type(OK, 7)
1-element Vector{Tuple{Int64, Int64}}:
 (2, 1)

julia> prime_decomposition_type(OK, 11)
2-element Vector{Tuple{Int64, Int64}}:
 (1, 1)
 (1, 1)

We can also determine the prime ideals above prime numbers in non-maximal orders:

julia
julia> R = equation_order(K)
Order
  of number field with defining polynomial x^2 - 5
    over rational field
with Z-basis [1, a]

julia> prime_ideals_over(R, 2)
1-element Vector{AbsSimpleNumFieldOrderIdeal}:
 <2, a + 1>