from typing import Any

def dup_add_term(f, c, i, K): ...
def dmp_add_term(f, c, i, u, K) -> list[list[Any]]: ...
def dup_sub_term(f, c, i, K): ...
def dmp_sub_term(f, c, i, u, K) -> list[list[Any]]: ...
def dup_mul_term(f, c, i, K) -> list[Any]: ...
def dmp_mul_term(f, c, i, u, K) -> list[Any] | list[list[Any]] | list[Any | list[Any] | list[list[Any]]]: ...
def dup_add_ground(f, c, K): ...
def dmp_add_ground(f, c, u, K) -> list[list[Any]]: ...
def dup_sub_ground(f, c, K): ...
def dmp_sub_ground(f, c, u, K) -> list[list[Any]]: ...
def dup_mul_ground(f, c, K) -> list[Any]: ...
def dmp_mul_ground(f, c, u, K) -> list[Any]: ...
def dup_quo_ground(f, c, K) -> list[Any]: ...
def dmp_quo_ground(f, c, u, K) -> list[Any]: ...
def dup_exquo_ground(f, c, K) -> list[Any]: ...
def dmp_exquo_ground(f, c, u, K) -> list[Any]: ...
def dup_lshift(f, n, K): ...
def dup_rshift(f, n, K): ...
def dup_abs(f, K) -> list[Any]: ...
def dmp_abs(f, u, K) -> list[Any]: ...
def dup_neg(f, K) -> list[Any]: ...
def dmp_neg(f, u, K) -> list[Any]: ...
def dup_add(f, g, K): ...
def dmp_add(f, g, u, K) -> list[list[Any]]: ...
def dup_sub(f, g, K) -> list[Any]: ...
def dmp_sub(f, g, u, K) -> list[Any] | list[list[Any]]: ...
def dup_add_mul(f, g, h, K): ...
def dmp_add_mul(f, g, h, u, K) -> list[list[Any]]: ...
def dup_sub_mul(f, g, h, K) -> list[Any]: ...
def dmp_sub_mul(f, g, h, u, K) -> list[Any] | list[list[Any]]: ...
def dup_mul(f, g, K) -> list[Any]: ...
def dmp_mul(f, g, u, K) -> list[Any] | list[list[Any]]: ...
def dup_sqr(f, K): ...
def dmp_sqr(f, u, K) -> list[list[Any]]: ...
def dup_pow(f, n, K) -> list[Any]: ...
def dmp_pow(f, n, u, K) -> list[Any] | list[list[Any]]: ...
def dup_pdiv(f, g, K) -> tuple[list[Any], Any] | tuple[list[Any], list[Any]]: ...
def dup_prem(f, g, K) -> list[Any]: ...
def dup_pquo(f, g, K) -> list[Any]: ...
def dup_pexquo(f, g, K) -> list[Any]: ...
def dmp_pdiv(f, g, u, K) -> (
    tuple[list[Any], Any]
    | tuple[list[Any], list[Any]]
    | tuple[list[list[Any]], Any]
    | tuple[
        list[Any] | Any | list[list[Any]] | list[Any | list[Any] | list[list[Any]]],
        list[Any] | Any | list[list[Any]] | list[Any | list[Any] | list[list[Any]]],
    ]
): ...
def dmp_prem(f, g, u, K) -> list[Any] | list[list[Any]] | list[Any | list[Any] | list[list[Any]]]: ...
def dmp_pquo(f, g, u, K) -> list[list[Any]] | list[Any] | list[Any | list[Any] | list[list[Any]]]: ...
def dmp_pexquo(f, g, u, K) -> list[Any] | list[list[Any]] | list[Any | list[Any] | list[list[Any]]]: ...
def dup_rr_div(f, g, K) -> tuple[list[Any], Any] | tuple[Any | list[Any], Any | list[Any]]: ...
def dmp_rr_div(
    f, g, u, K
) -> (
    tuple[list[Any], Any]
    | tuple[Any | list[Any], Any | list[Any]]
    | tuple[list[list[Any]], Any]
    | tuple[list[list[Any]] | Any, Any | list[Any] | list[list[Any]]]
): ...
def dup_ff_div(f, g, K) -> tuple[list[Any], Any] | tuple[Any, list[Any] | Any]: ...
def dmp_ff_div(
    f, g, u, K
) -> (
    tuple[list[Any], Any]
    | tuple[Any, list[Any] | Any]
    | tuple[list[list[Any]], Any]
    | tuple[list[list[Any]] | Any, Any | list[Any] | list[list[Any]]]
): ...
def dup_div(f, g, K) -> tuple[list[Any], Any] | tuple[Any, list[Any] | Any] | tuple[Any | list[Any], Any | list[Any]]: ...
def dup_rem(f, g, K) -> list[Any]: ...
def dup_quo(f, g, K) -> list[Any]: ...
def dup_exquo(f, g, K) -> list[Any]: ...
def dmp_div(
    f, g, u, K
) -> (
    tuple[list[Any], Any]
    | tuple[Any, list[Any] | Any]
    | tuple[list[list[Any]], Any]
    | tuple[list[list[Any]] | Any, Any | list[Any] | list[list[Any]]]
    | tuple[Any | list[Any], Any | list[Any]]
): ...
def dmp_rem(f, g, u, K) -> list[Any] | list[list[Any]]: ...
def dmp_quo(f, g, u, K) -> list[list[Any]]: ...
def dmp_exquo(f, g, u, K) -> list[list[Any]]: ...
def dup_max_norm(f, K): ...
def dmp_max_norm(f, u, K): ...
def dup_l1_norm(f, K) -> int: ...
def dmp_l1_norm(f, u, K) -> int: ...
def dup_l2_norm_squared(f, K) -> int: ...
def dmp_l2_norm_squared(f, u, K) -> int: ...
def dup_expand(polys, K) -> list[Any]: ...
def dmp_expand(polys, u, K) -> list[list[Any]] | list[Any]: ...
