decomposition

Initialize self. See help(type(self)) for accurate signature.

sage_acsv.decomposition.compute_algebraic_dependence_decomposition(R, G, H)[source]

Computes an algebraic dependence decomposition of the rational function \(G/H\).

An algebraic dependence decomposition for \(G/H\) is a sum of rational functions of the form \(G/H = \sum_{k}\frac{p_k}{q_{k_1}^{e_{k_1}}\dots q_{k_i}^{e_{k_i}}\) such that \(q_{k_1},\dots,q_{k_i}\) are algebraically independent factors of \(H\).

INPUT: * R – A PolynomialRing. * G, H – Polynomials representing the rational function \(G/H\).

OUTPUT:

A list of tuples \((G_i,H_i)\) where \(G_i, H_i\) are in \(R\).

EXAMPLES:

sage: from sage_acsv.decomposition import compute_algebraic_dependence_decomposition
sage: R.<x,y> = PolynomialRing(QQ, 2)
sage: compute_algebraic_dependence_decomposition(R, 1, x^2*(x*y+1)*y)
[(2, x^2*y), (-x*y - 1, x^2*y), (y, x*y + 1)]
sage_acsv.decomposition.compute_cohomology_decomposition(R, G, H)[source]

Computes a cohomology decomposition of the rational function \(G/H\).

Given a a rational function \(G/H\), a cohomology decomposition is a rational function \(G'/H'\) over the same ring that is de Rham cohomologous to \(G/H\) and whose denominator contains no repeated factor.

INPUT: * R – A PolynomialRing. * G, H – Polynomials representing the rational function \(G/H\).

OUTPUT:

A tuple (G',H') where G_i, H_i are in R and H' is square-free

EXAMPLES:

sage: from sage_acsv.decomposition import compute_cohomology_decomposition
sage: R.<x,y> = PolynomialRing(QQ, 2)
sage: compute_cohomology_decomposition(R, 1, (x*y-1)*(x^2+y^2-1)^2)
(-4/3*x^2*y^2 + 4/3*x*y + 1/3, x^3*y + x*y^3 - x^2 - x*y - y^2 + 1)
sage_acsv.decomposition.compute_leinartas_decomposition(R, G, H)[source]

Computes a Leinartas decomposition of the rational function \(G/H\).

An Leinartas decomposition for \(G/H\) is a sum of rational functions of the form \(G/H = \sum_{k}\frac{p_k}{q_{k_1}^{e_{k_1}}\dots q_{k_i}^{e_{k_i}}\) such that \(q_{k_1},\dots,q_{k_i}\) are algebraically independent factors of \(H\) that do not generate the ideal \(R\).

INPUT: * R – A PolynomialRing. * G, H – Polynomials representing the rational function \(G/H\).

OUTPUT:

A list of tuples (G_i,H_i) where G_i, H_i are in R.

EXAMPLES:

sage: from sage_acsv.decomposition import compute_leinartas_decomposition
sage: R.<x,y,z> = PolynomialRing(QQ, 3)
sage: compute_leinartas_decomposition(R, 1, (x*y*z*(x*y+z)))
[(1, x*y*z^2), (-1, x*y*z^2 + z^3)]
sage_acsv.decomposition.compute_nullstellensatz_decomposition(R, G, H)[source]

Computes a Nullstellensatz decomposition of the rational function \(G/H\).

A Nullstellensatz decomposition for \(G/H\) is a sum of rational functions of the form \(G/H = \sum_{k}\frac{p_k}{q_{k_1}^{e_{k_1}}\dots q_{k_i}^{e_{k_i}}\) such that \(q_{k_1}, ..., q_{k_i}\) are factors of \(H\) that do not generate the ideal \(R\).

INPUT: * R – A PolynomialRing. * G, H – Polynomials representing the rational function \(G/H\).

OUTPUT:

A list of tuples (G_i,H_i) where G_i, H_i are in R.

EXAMPLES:

sage: from sage_acsv.decomposition import compute_nullstellensatz_decomposition
sage: R.<x,y> = PolynomialRing(QQ, 2)
sage: compute_nullstellensatz_decomposition(R, 1, x*y*(x+1))
[(-1, x*y + y), (1, x*y)]
sage_acsv.decomposition.get_algebraic_independence_certificate(R, Hs, multiplicities)[source]

Finds an algebraic independence certificate of a list Hs of polynomials.

An algebraic independence ceritificate is an annhilating polynomial of \(Hs\) over the same base ring.

INPUT: * R – A PolynomialRing. * Hs – A list of square-free polynomials in R. * multiplicities – A list of integers representing powers of Hs.

OUTPUT:

A list of polynomials in variables T_1,...,T_m over the same base ring as R, where m is the length of Hs.

EXAMPLES:

sage: from sage_acsv.decomposition import get_algebraic_independence_certificate
sage: R.<x,y> = PolynomialRing(QQ, 2)
sage: get_algebraic_independence_certificate(R, [x, x*y+1,y], [2,1,3])
Ideal (1 - 6*T1 + 15*T1^2 - 20*T1^3 + 15*T1^4 - T0^3*T2^2 - 6*T1^5 + T1^6) of Multivariate Polynomial Ring in T0, T1, T2 over Rational Field
sage_acsv.decomposition.get_nullstellensatz_certificate(R, Hs, multiplicities)[source]

Finds a Nullstellensatz ceritificate of a set of polynomials, or None if one doesn’t exist.

A Nullstellensatz ceritificate exists for any set of polynomials \(H_1,\dots,H_s\) with no common zeroes. Equivalently, \(1\) is in the ideal generated by \(H_1,\dots,H_s\). It is a list of polynomials \(p_1,\dots,p_s\) such that \(p_1H_1 + \dots + p_sH_s = 1\).

INPUT: * R – A PolynomialRing. * Hs – A list of square-free polynomials in R. * multiplicities – A list of integers representing powers of Hs.

OUTPUT:

A list of polynomials in R.

EXAMPLES:

sage: from sage_acsv.decomposition import get_nullstellensatz_certificate
sage: R.<x,y> = PolynomialRing(QQ, 2)
sage: get_nullstellensatz_certificate(R, [1-x,1-y,1-x-y], [1,1,2])
[x + 1, 2*x + y - 1, 1]