Heights of finitely supported coefficient vectors #
The native Finsupp.mulHeight is a projective height on the nonzero support.
This module identifies it with finite tuples containing that support, and proves
invariance under scalar multiplication and injective reindexing. These interfaces
allow polynomial coefficient heights to use the finite-tuple height estimates in Mathlib.
Finsupp.mulHeight_eq_mul_of_injOn transfers Mathlib's Segre relation
Height.mulHeight_fun_mul_eq to finitely supported vectors: a vector whose nonzero entries are
exactly the products x a * y b, each occurring once, has the product of the heights of x and
y. The coefficients of a product of polynomials in disjoint sets of variables have this form.
References #
- The multiplication-table height follows
DiophantineApproximation/DisjointVariables.leanin Ralf Stephan'srwst/Subspace-Theorems, snapshotc26d909dc48cf7fe(Apache 2.0).
Padding a finitely supported coefficient vector by zeroes does not change its height.
The full coefficient function and its nonzero support have the same projective height, even when the index type is infinite.
The native logarithmic Finsupp height is the logarithm of its support height.
Mathlib's native characteristic equation uses Height.mulHeight ⇑x; this bridge uses
Finsupp.mulHeight x, the height on the finite support.
A coefficient vector supported at one index has projective height one.
The height of a multiplication table. Suppose that e is injective on pairs of indices
in the supports of x and y, that z (e (a, b)) = x a * y b for such pairs, and that every
index in the support of z is of this form. If x and y are nonzero, then the height of z
is the product of the heights of x and y. This is the Segre relation
Height.mulHeight_fun_mul_eq for finitely supported vectors.
The logarithmic height of a multiplication table. Under the hypotheses of
Finsupp.mulHeight_eq_mul_of_injOn, the logarithmic height of z is the sum of the logarithmic
heights of x and y.