Documentation: Invariants of Binary Forms and Rational Functions
Overview
This notebook provides a set of tools for computing algebraic invariants of binary forms and rational functions. These invariants are critical in invariant theory and are widely used in mathematical research involving polynomial algebra, algebraic geometry, and Galois theory. The tools in this notebook are designed to facilitate symbolic computations and explore the rich structure of these objects.
Key Features
Invariants of Binary Forms: Compute classical invariants such as J2,J4,J6,J8,J10,J12​ for polynomials of various degrees.
Rational Cubics: Derive invariants of rational cubic functions, including ξ0,…,ξ5 and J6Â
Transvections: Perform transvection operations to compute polynomial combinations that define invariants.
Dependencies
SymPy: A Python library for symbolic mathematics.
Mathematical Context: Knowledge of binary forms, rational functions, and their invariant theory is assumed.
Functions and Their Usage
1. Transvection of Binary Forms
def transvection(f, g, x, y, s):
    """Computes the s-th transvection of two binary forms."""
Purpose: Computes the transvection of two binary forms f(x,y) and g(x,y).
Parameters:
f, g: Binary forms (polynomials).
x, y: Variables in the polynomial.
s: Degree of the transvection.
Returns: The symbolic result of the transvection.
2. Invariants of Cubic Binary Forms
def inv3(cubic):
    """Computes the J4 invariant of a cubic binary form."""
Purpose: Computes the J4J_4J4​ invariant of a cubic binary form.
Parameters:
cubic: List of coefficients [a0,a1,a2,a3] for f(x,y)=a3x3+a2x2y+a1xy2+a0y3f.
Returns: J4J_4J4​, a symbolic invariant.
3. Invariants of Quartic Binary Forms
def inv4(quartic):
    """Computes J2 and J3 invariants of a quartic binary form."""
Purpose: Computes J2 and J3 ​ invariants of a quartic binary form.
Parameters:
quartic: List of coefficients [a0,a1,a2,a3,a4][a_0, a_1, a_2, a_3, a_4][a0​,a1​,a2​,a3​,a4​].
Returns: A list [J2,J3][J_2, J_3][J2​,J3​].
4. Invariants of Quintic Binary Forms
def inv5(quintic):
    """Computes J4, J8, and J12 invariants of a quintic binary form."""
Purpose: Computes J4,J8,J12 ​ invariants of a quintic binary form.
Parameters:
quintic: List of coefficients [a0,a1,a2,a3,a4,a5]
Returns: A list [J4,J8,J12]
5. Invariants of Rational Cubic Functions
def inv_rat_cubic(coefficients):
    """Computes invariants of a rational cubic function."""
Purpose: Computes the invariants ξ0,…,ξ5 ​ and J6 ​ for a rational cubic function.
Parameters:
coefficients: List of coefficients [a0,a1,a2,a3,b0,b1,b2,b3] Â representing the numerator and denominator.
Returns: A list of invariants [ξ0,ξ1,ξ2,ξ3,ξ4,ξ5,J6]
Steps:
Defines F=yf−xg  and G=∂f∂x+∂g∂yÂ
Uses transvection operations to compute the ξi\xi_iξi​ invariants.
Computes J6J_6J6​ as the resultant of FFF and GGG.
Example Use Cases
Compute the Invariants of a Cubic Polynomial
cubic = [1, 2, 3, 4]
J4 = inv3(cubic)
print(J4)
Compute the Invariants of a Rational Cubic Function
coefficients = [1, 0, -3, 2, 1, 2, -1, 3]
invariants = inv_rat_cubic(coefficients)
print(invariants)
Notes
This document is a high-level overview. For detailed mathematical proofs and theoretical context, check the original research papers