def normalized_reduction(v, f):
    """ Return the normalized reduction of ``f`` with respect to ``v``.

    INPUT:

    - ``v`` -- an inductive valuation on `K[x]`
    - ``f`` -- an element of `K[x]`

    OUTPUT:

    The normalized reduction of ``f`` with respect to ``v``, defined as follows:
    let `g\\in K[x]` be an equivalence unit for ``v`` such that `v(g)=-v(f)`.
    Then the *normalized reduction* is defined as the image of `fg` in the residue
    ring of `v`. The result is only well defined up to multiplication with
    a constant.
    THIS IS NOT WELL DEFINED: IN GENERAL, `g` AS ABOVE DOES NOT EXIST!
    """
    r = v(f)
    m = abs(r.denominator())
    fb = v.reduce(f ** m * v.equivalence_unit(-m * r))
    Fb = fb.factor()
    fb = Fb[0][0]
    return fb
