# Fractional ideals

A fractional ideal in the number field $K$ is a $Z_K$-module $A$ such that there exists an integer $d>0$ wich $dA$ is an (integral) ideal in $Z_K$. Due to the Dedekind property of $Z_K$, the ideals for a multiplicative group.

Fractional ideals are represented as an integral ideal and an additional denominator. They are of type NfOrdFracIdl.

## Creation

fractional_idealMethod
fractional_ideal(O::NfAbsOrd, A::fmpz_mat, b::fmpz, A_in_hnf::Bool = false) -> NfAbsOrdFracIdl

Creates the fractional ideal of $\mathcal O$ with basis matrix $A/b$. If A_in_hnf is set, then it is assumed that $A$ is already in lower left HNF.

fractional_idealMethod
fractional_ideal(O::NfAbsOrd, A::fmpz_mat, b::fmpz, A_in_hnf::Bool = false) -> NfAbsOrdFracIdl

Creates the fractional ideal of $\mathcal O$ with basis matrix $A/b$. If A_in_hnf is set, then it is assumed that $A$ is already in lower left HNF.

fractional_idealMethod
fractional_ideal(O::NfAbsOrd, A::FakeFmpqMat, A_in_hnf::Bool = false) -> NfAbsOrdFracIdl

Creates the fractional ideal of $\mathcal O$ with basis matrix $A$. If A_in_hnf is set, then it is assumed that the numerator of $A$ is already in lower left HNF.

fractional_idealMethod
fractional_ideal(O::NfOrd, I::NfAbsOrdIdl) -> NfOrdFracIdl

The fractional ideal of $O$ generated by a $Z$-basis of $I$.

fractional_ideal(O::NfAbsOrd, I::NfAbsOrdIdl) -> NfAbsOrdFracIdl

Turns the ideal $I$ into a fractional ideal of $\mathcal O$.

fractional_idealMethod
fractional_ideal(O::NfAbsOrd, I::NfAbsOrdIdl, b::fmpz) -> NfAbsOrdFracIdl

Creates the fractional ideal $I/b$ of $\mathcal O$.

fractional_idealMethod
fractional_ideal(O::NfAbsOrd, a::nf_elem) -> NfAbsOrdFracIdl

Creates the principal fractional ideal $(a)$ of $\mathcal O$.

fractional_idealMethod
fractional_ideal(O::NfAbsOrd, a::NfAbsOrdElem) -> NfAbsOrdFracIdl

Creates the principal fractional ideal $(a)$ of $\mathcal O$.

invMethod
 inv(a::LocElem{T}, checked::Bool = true)  where {T <: RingElem}

Returns the inverse element of $a$ if $a$ is a unit. If 'checked = false' the invertibility of $a$ is not checked and the corresponding inverse element of the Fraction Field is returned.

inv(A::NfAbsOrdIdl) -> NfOrdFracIdl

Computes the inverse of $A$, that is, the fractional ideal $B$ such that $AB = \mathcal O_K$.

## Arithmetic

All the normal operations are provided as well.

invMethod
 inv(a::LocElem{T}, checked::Bool = true)  where {T <: RingElem}

Returns the inverse element of $a$ if $a$ is a unit. If 'checked = false' the invertibility of $a$ is not checked and the corresponding inverse element of the Fraction Field is returned.

inv(A::NfAbsOrdFracIdl) -> NfAbsOrdFracIdl

Returns the fractional ideal $B$ such that $AB = \mathcal O$.

integral_splitMethod
integral_split(A::NfAbsOrdFracIdl) -> NfAbsOrdIdl, NfAbsOrdIdl

Computes the unique coprime integral ideals $N$ and $D$ s.th. $A = ND^{-1}$

numeratorMethod
numerator(a::NfRelOrdFracIdl) -> NfRelOrdIdl

Returns the ideal $d*a$ where $d$ is the denominator of $a$.

denominatorMethod
denominator(a::NfRelOrdFracIdl) -> fmpz

Returns the smallest positive integer $d$ such that $da$ is contained in the order of $a$.

## Miscaellenous

orderMethod
order(a::NfAbsOrdFracIdl) -> NfAbsOrd

The order that was used to define the ideal $a$.

basis_matrixMethod
basis_matrix(I::NfAbsOrdFracIdl) -> FakeFmpqMat

Returns the basis matrix of $I$ with respect to the basis of the order.

basis_mat_invMethod
basis_mat_inv(I::NfAbsOrdFracIdl) -> FakeFmpqMat

Returns the inverse of the basis matrix of $I$.

basis_mat_inv(A::GenOrdIdl) -> FakeFracFldMat

Return the inverse of the basis matrix of $A$.

basisMethod
basis(I::NfAbsOrdFracIdl) -> Vector{nf_elem}

Returns the $\mathbf Z$-basis of $I$.

normMethod
norm(I::NfAbsOrdFracIdl) -> fmpq

Returns the norm of $I$.

norm(a::NfRelOrdIdl) -> NfOrdIdl

Returns the norm of $a$.

norm(a::NfRelOrdFracIdl{T, S}) -> S

Returns the norm of $a$.

norm(a::AlgAssAbsOrdIdl, O::AlgAssAbsOrd; copy::Bool = true) -> fmpq

Returns the norm of $a$ considered as an (possibly fractional) ideal of $O$.

norm(a::AlgAssRelOrdIdl{S, T, U}, O::AlgAssRelOrd{S, T, U}; copy::Bool = true)
where { S, T, U } -> T

Returns the norm of $a$ considered as an (possibly fractional) ideal of $O$.