Sums under a weakened triangle inequality #
An absolute value satisfies v (a + b) ≤ c * max (v a) (v b) with c = 2, and with c = 1 when
it is nonarchimedean. Iterating this inequality bounds a sum of n terms of size at most T by
c ^ n * T (AbsoluteValue.apply_sum_le_pow_mul). Unlike the triangle inequality, which gives
n * T, the bound specializes to T itself in the nonarchimedean case.
The same inequality bounds one step of elimination with partial pivoting: subtracting from a the
multiple p / q * b of a pivot column, whose pivot q dominates b relative to the row weights,
costs only the factor c (AbsoluteValue.apply_sub_div_mul_le), and a maximizing pivot exists
(AbsoluteValue.exists_pos_forall_apply_div_le).
The triangle inequality gives v (n * x) ≤ n * v x for a natural number n, without using
v 1 = 1 (so for an absolute value valued in any ordered semiring).
A sum of card s terms of size at most T has size at most c ^ card s * T, for an
absolute value satisfying v (a + b) ≤ c * max (v a) (v b) with 1 ≤ c.
One elimination step: if the pivot q maximizes v (·) / s in its column, then subtracting
p / q times that column from a column bounded by M (in units of the row weights s, t)
keeps it bounded by c * M, for an absolute value satisfying v (a + b) ≤ c * max (v a) (v b).
The growth factor of one addition: v (a + b) ≤ 2 * max (v a) (v b). At a nonarchimedean
absolute value the factor 2 can be replaced by 1 (IsNonarchimedean).
Partial pivoting at one place: a nonzero family of elements of a semiring has an index r₀
maximizing v (f r) / ν r for positive weights ν, and the value there is positive.