def
Hex.TSeries.invStep
{R : Type u}
{n : Nat}
[Lean.Grind.CommRing R]
(a b : TSeries R n)
(m : Nat)
:
TSeries R n
One bounded Newton inverse update.
Equations
- a.invStep b m = Hex.TSeries.mulUpTo m b (Hex.TSeries.C (1 + 1) - Hex.TSeries.mulUpTo m a b)
Instances For
def
Hex.TSeries.invUpTo
{R : Type u}
{n : Nat}
[Lean.Grind.CommRing R]
(m : Nat)
(a : TSeries R n)
(u : R)
:
TSeries R n
Invert through coefficient m - 1, zeroing all later stored
coefficients.
Equations
- Hex.TSeries.invUpTo m a u = Hex.TSeries.ofFn fun (i : Nat) => if i < m then (Hex.TSeries.newton a.invStep (Hex.TSeries.C u) (Hex.TSeries.steps (min m n))).coeff i else 0
Instances For
def
Hex.TSeries.invOfUnit
{R : Type u}
{n : Nat}
[Lean.Grind.CommRing R]
(a : TSeries R n)
(u : R)
:
TSeries R n
The inverse of a, given an inverse of its constant coefficient.
Equations
- a.invOfUnit u = Hex.TSeries.invUpTo n a u
Instances For
Look up a constant-coefficient inverse and invert the series.
Equations
Instances For
theorem
Hex.TSeries.inv?_isSome_iff
{R : Type u}
{n : Nat}
[Lean.Grind.CommRing R]
[UnitOps R]
[LawfulUnitOps R]
(a : TSeries R n)
:
Optional inversion succeeds exactly for units of the truncated-series ring, including the unconditional precision-zero case.