2018-11-04 10:25:35 -0600 received badge ● Student (source) 2018-11-04 10:12:28 -0600 asked a question Reduce non-integral element mod ideal Suppose I have a nonzero ideal $I$ in a number field $K$, and an element $x \in K$ whose denominator ideal $\{ \alpha \in O_K: \alpha x \in O_K\}$ is coprime to $I$. Then x defines an element of $O_K / I$, even if $x \notin O_K$. How can I efficiently find an element $x' \in O_K$ which represents the same class in $O_K / I$ as $x$? The first things I tried were x % I, I.reduce(x) and I.small_residue(x), but these all either fail or return non-useful output if x isn't integral: sage: K.= QuadraticField(10).objgen() sage: I = K.ideal(3, a + 1) sage: x = (1 - 2*a)/3 sage: x % I [...] TypeError: unsupported operand parent(s) for % sage: I.reduce(x) [...] TypeError: reduce only defined for integral elements sage: I.small_residue(x) 1/3*a + 4/3The only one-liner I could come up with was sage: I.reduce( x * x.denominator_ideal().element_1_mod(I) ) -a which works, but is a bit clumsy. Is there a simpler, cleaner Sage idiom for this?