Surreal Hahn series #
Hahn series are a generalization of power series and Puiseux series. A Hahn series R⟦Γ⟧ is defined
as a function Γ → R whose support is well-founded. This condition is sufficient to define addition
and multiplication as with polynomials, so that under suitable conditions, R⟦Γ⟧ has the structure
of an ordered field.
The aphorism goes that surreals are real Hahn series over themselves. However, there are a few
technicalities. Hahn series are conventionally defined so that the support has well-founded <,
whereas for surreals it's more natural to assume well-founded >. Moreover, the Hahn series that
correspond to surreals must have a Small support. Because of this, we often prefer to identify
these surreal Hahn series with ordinal-indexed sequences of surreal exponents and their
coefficients.
This file provides the translation layer between Hahn series as they're implemented in Mathlib, and
the Hahn series relevant to surreal numbers, by defining the type SurrealHahnSeries for the
latter.
For Mathlib #
Equations
- RelIso.subrel r H = { toEquiv := (Equiv.refl α).subtypeEquiv H, map_rel_iff' := ⋯ }
Instances For
Basic defs and instances #
The type of u-small Hahn series over Surrealᵒᵈ, endowed with the lexicographic ordering. We
will show that this type is isomorphic as an ordered field to the surreals themselves.
Equations
Instances For
A constructor for SurrealHahnSeries which hides various implementation details.
Equations
- SurrealHahnSeries.mk f small wf = ⟨toLex { coeff := f ∘ ⇑OrderDual.ofDual, isPWO_support' := ⋯ }, ⋯⟩
Instances For
The support of the Hahn series.
Equations
Instances For
The Hahn series with a single entry.
Equations
- SurrealHahnSeries.single x r = SurrealHahnSeries.mk (Pi.single x r) ⋯ ⋯
Instances For
Zeroes out any terms of the Hahn series less than or equal to i.
Instances For
Alias of the reverse direction of SurrealHahnSeries.trunc_eq_self_iff.
Indexing the support by ordinals #
The length of a surreal Hahn series is the order type of its support.
Equations
- x.length = Ordinal.type fun (x1 x2 : Shrink.{?u.9, ?u.9 + 1} ↑x.support) => x1 > x2
Instances For
Returns the i-th largest exponent with a non-zero coefficient.
This is registered as a RelIso between Iio x.length and x.support, so that x.exp.symm can be
used to return the index of an element in the support.
Equations
- x.exp = (Ordinal.enum fun (x1 x2 : Shrink.{?u.38, ?u.38 + 1} ↑x.support) => x1 > x2).trans (orderIsoShrink ↑x.support).dual.toRelIsoLT.symm
Instances For
Returns the coefficient which corresponds to the i-th largest exponent, or 0 if no such
coefficient exists.
Instances For
Truncates the series at the i-th largest exponent, or returns it unchanged if no such
coefficient exists.
Instances For
Returns the i-th largest term of the sum, or 0 if it doesn't exist.
Instances For
Alias of the reverse direction of SurrealHahnSeries.term_eq_zero.