Hahn Series #
If Γ
is ordered and R
has zero, then hahn_series Γ R
consists of formal series over Γ
with
coefficients in R
, whose supports are partially well-ordered. With further structure on R
and
Γ
, we can add further structure on hahn_series Γ R
, with the most studied case being when Γ
is
a linearly ordered abelian group and R
is a field, in which case hahn_series Γ R
is a
valued field, with value group Γ
.
These generalize Laurent series (with value group ℤ
), and Laurent series are implemented that way
in the file ring_theory/laurent_series
.
Main Definitions #
- If
Γ
is ordered andR
has zero, thenhahn_series Γ R
consists of formal series overΓ
with coefficients inR
, whose supports are partially well-ordered. - If
R
is a (commutative) additive monoid or group, then so ishahn_series Γ R
. - If
R
is a (comm_)(semi)ring, then so ishahn_series Γ R
. hahn_series.add_val Γ R
defines anadd_valuation
onhahn_series Γ R
whenΓ
is linearly ordered.- A
hahn_series.summable_family
is a family of Hahn series such that the union of their supports is well-founded and only finitely many are nonzero at any given coefficient. They have a formal sum,hahn_series.summable_family.hsum
, which can be bundled as alinear_map
ashahn_series.summable_family.lsum
. Note that this is different fromsummable
in the valuation topology, because there are topologically summable families that do not satisfy the axioms ofhahn_series.summable_family
, and formally summable families whose sums do not converge topologically. - Laurent series over
R
are implemented ashahn_series ℤ R
in the filering_theory/laurent_series
.
TODO #
- Build an API for the variable
X
(defined to besingle 1 1 : hahn_series Γ R
) in analogy toX : R[X]
andX : power_series R
References #
- coeff : Γ → R
- is_pwo_support' : (function.support self.coeff).is_pwo
If Γ
is linearly ordered and R
has zero, then hahn_series Γ R
consists of
formal series over Γ
with coefficients in R
, whose supports are well-founded.
The support of a Hahn series is just the set of indices whose coefficients are nonzero. Notably, it is well-founded.
Equations
Equations
- hahn_series.has_zero = {zero := {coeff := 0, is_pwo_support' := _}}
Equations
- hahn_series.inhabited = {default := 0}
single a r
is the Hahn series which has coefficient r
at a
and zero otherwise.
Equations
- hahn_series.single a = {to_fun := λ (r : R), {coeff := pi.single a r, is_pwo_support' := _}, map_zero' := _}
The order of a nonzero Hahn series x
is a minimal element of Γ
where x
has a
nonzero coefficient, the order of 0 is 0.
Extends the domain of a hahn_series
by an order_embedding
.
Equations
- hahn_series.has_add = {add := λ (x y : hahn_series Γ R), {coeff := x.coeff + y.coeff, is_pwo_support' := _}}
Equations
- hahn_series.add_monoid = {add := has_add.add hahn_series.has_add, add_assoc := _, zero := 0, zero_add := _, add_zero := _, nsmul := nsmul_rec (add_zero_class.to_has_add (hahn_series Γ R)), nsmul_zero' := _, nsmul_succ' := _}
single
as an additive monoid/group homomorphism
Equations
- hahn_series.single.add_monoid_hom a = {to_fun := (hahn_series.single a).to_fun, map_zero' := _, map_add' := _}
coeff g
as an additive monoid/group homomorphism
Equations
- hahn_series.coeff.add_monoid_hom g = {to_fun := λ (f : hahn_series Γ R), f.coeff g, map_zero' := _, map_add' := _}
Equations
- hahn_series.add_comm_monoid = {add := add_monoid.add hahn_series.add_monoid, add_assoc := _, zero := add_monoid.zero hahn_series.add_monoid, zero_add := _, add_zero := _, nsmul := add_monoid.nsmul hahn_series.add_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _}
Equations
- hahn_series.add_group = {add := add_monoid.add hahn_series.add_monoid, add_assoc := _, zero := add_monoid.zero hahn_series.add_monoid, zero_add := _, add_zero := _, nsmul := add_monoid.nsmul hahn_series.add_monoid, nsmul_zero' := _, nsmul_succ' := _, neg := λ (x : hahn_series Γ R), {coeff := λ (a : Γ), -x.coeff a, is_pwo_support' := _}, sub := sub_neg_monoid.sub._default add_monoid.add hahn_series.add_group._proof_7 add_monoid.zero hahn_series.add_group._proof_8 hahn_series.add_group._proof_9 add_monoid.nsmul hahn_series.add_group._proof_10 hahn_series.add_group._proof_11 (λ (x : hahn_series Γ R), {coeff := λ (a : Γ), -x.coeff a, is_pwo_support' := _}), sub_eq_add_neg := _, zsmul := sub_neg_monoid.zsmul._default add_monoid.add hahn_series.add_group._proof_13 add_monoid.zero hahn_series.add_group._proof_14 hahn_series.add_group._proof_15 add_monoid.nsmul hahn_series.add_group._proof_16 hahn_series.add_group._proof_17 (λ (x : hahn_series Γ R), {coeff := λ (a : Γ), -x.coeff a, is_pwo_support' := _}), zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _}
Equations
- hahn_series.add_comm_group = {add := add_comm_monoid.add hahn_series.add_comm_monoid, add_assoc := _, zero := add_comm_monoid.zero hahn_series.add_comm_monoid, zero_add := _, add_zero := _, nsmul := add_comm_monoid.nsmul hahn_series.add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, neg := add_group.neg hahn_series.add_group, sub := add_group.sub hahn_series.add_group, sub_eq_add_neg := _, zsmul := add_group.zsmul hahn_series.add_group, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _}
Equations
- hahn_series.has_scalar = {smul := λ (r : R) (x : hahn_series Γ V), {coeff := r • x.coeff, is_pwo_support' := _}}
Equations
- hahn_series.distrib_mul_action = {to_mul_action := {to_has_scalar := {smul := has_scalar.smul hahn_series.has_scalar}, one_smul := _, mul_smul := _}, smul_add := _, smul_zero := _}
Equations
- hahn_series.module = {to_distrib_mul_action := {to_mul_action := distrib_mul_action.to_mul_action hahn_series.distrib_mul_action, smul_add := _, smul_zero := _}, add_smul := _, zero_smul := _}
single
as a linear map
Equations
- hahn_series.single.linear_map a = {to_fun := (hahn_series.single.add_monoid_hom a).to_fun, map_add' := _, map_smul' := _}
coeff g
as a linear map
Equations
- hahn_series.coeff.linear_map g = {to_fun := (hahn_series.coeff.add_monoid_hom g).to_fun, map_add' := _, map_smul' := _}
Extending the domain of Hahn series is a linear map.
Equations
- hahn_series.emb_domain_linear_map f = {to_fun := hahn_series.emb_domain f, map_add' := _, map_smul' := _}
Equations
- hahn_series.has_one = {one := ⇑(hahn_series.single 0) 1}
Equations
- hahn_series.has_mul = {mul := λ (x y : hahn_series Γ R), {coeff := λ (a : Γ), ∑ (ij : Γ × Γ) in finset.add_antidiagonal _ _ a, (x.coeff ij.fst) * y.coeff ij.snd, is_pwo_support' := _}}
Equations
- hahn_series.distrib = {mul := has_mul.mul hahn_series.has_mul, add := has_add.add hahn_series.has_add, left_distrib := _, right_distrib := _}
Equations
- hahn_series.non_unital_non_assoc_semiring = {add := has_add.add hahn_series.has_add, add_assoc := _, zero := 0, zero_add := _, add_zero := _, nsmul := add_comm_monoid.nsmul hahn_series.add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, mul := has_mul.mul hahn_series.has_mul, left_distrib := _, right_distrib := _, zero_mul := _, mul_zero := _}
Equations
- hahn_series.non_unital_semiring = {add := has_add.add hahn_series.has_add, add_assoc := _, zero := 0, zero_add := _, add_zero := _, nsmul := non_unital_non_assoc_semiring.nsmul hahn_series.non_unital_non_assoc_semiring, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, mul := has_mul.mul hahn_series.has_mul, left_distrib := _, right_distrib := _, zero_mul := _, mul_zero := _, mul_assoc := _}
Equations
- hahn_series.non_assoc_semiring = {add := has_add.add hahn_series.has_add, add_assoc := _, zero := 0, zero_add := _, add_zero := _, nsmul := non_unital_non_assoc_semiring.nsmul hahn_series.non_unital_non_assoc_semiring, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, mul := has_mul.mul hahn_series.has_mul, left_distrib := _, right_distrib := _, zero_mul := _, mul_zero := _, one := 1, one_mul := _, mul_one := _}
Equations
- hahn_series.semiring = {add := has_add.add hahn_series.has_add, add_assoc := _, zero := 0, zero_add := _, add_zero := _, nsmul := non_assoc_semiring.nsmul hahn_series.non_assoc_semiring, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, mul := has_mul.mul hahn_series.has_mul, left_distrib := _, right_distrib := _, zero_mul := _, mul_zero := _, mul_assoc := _, one := 1, one_mul := _, mul_one := _, npow := monoid_with_zero.npow._default 1 has_mul.mul hahn_series.semiring._proof_14 hahn_series.semiring._proof_15, npow_zero' := _, npow_succ' := _}
Equations
- hahn_series.comm_semiring = {add := semiring.add hahn_series.semiring, add_assoc := _, zero := semiring.zero hahn_series.semiring, zero_add := _, add_zero := _, nsmul := semiring.nsmul hahn_series.semiring, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, mul := semiring.mul hahn_series.semiring, left_distrib := _, right_distrib := _, zero_mul := _, mul_zero := _, mul_assoc := _, one := semiring.one hahn_series.semiring, one_mul := _, mul_one := _, npow := semiring.npow hahn_series.semiring, npow_zero' := _, npow_succ' := _, mul_comm := _}
Equations
- hahn_series.non_unital_non_assoc_ring = {add := non_unital_non_assoc_semiring.add hahn_series.non_unital_non_assoc_semiring, add_assoc := _, zero := non_unital_non_assoc_semiring.zero hahn_series.non_unital_non_assoc_semiring, zero_add := _, add_zero := _, nsmul := non_unital_non_assoc_semiring.nsmul hahn_series.non_unital_non_assoc_semiring, nsmul_zero' := _, nsmul_succ' := _, neg := add_group.neg hahn_series.add_group, sub := add_group.sub hahn_series.add_group, sub_eq_add_neg := _, zsmul := add_group.zsmul hahn_series.add_group, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, mul := non_unital_non_assoc_semiring.mul hahn_series.non_unital_non_assoc_semiring, left_distrib := _, right_distrib := _, zero_mul := _, mul_zero := _}
Equations
- hahn_series.non_unital_ring = {add := non_unital_non_assoc_ring.add hahn_series.non_unital_non_assoc_ring, add_assoc := _, zero := non_unital_non_assoc_ring.zero hahn_series.non_unital_non_assoc_ring, zero_add := _, add_zero := _, nsmul := non_unital_non_assoc_ring.nsmul hahn_series.non_unital_non_assoc_ring, nsmul_zero' := _, nsmul_succ' := _, neg := non_unital_non_assoc_ring.neg hahn_series.non_unital_non_assoc_ring, sub := non_unital_non_assoc_ring.sub hahn_series.non_unital_non_assoc_ring, sub_eq_add_neg := _, zsmul := non_unital_non_assoc_ring.zsmul hahn_series.non_unital_non_assoc_ring, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, mul := non_unital_non_assoc_ring.mul hahn_series.non_unital_non_assoc_ring, left_distrib := _, right_distrib := _, zero_mul := _, mul_zero := _, mul_assoc := _}
Equations
- hahn_series.non_assoc_ring = {add := non_unital_non_assoc_ring.add hahn_series.non_unital_non_assoc_ring, add_assoc := _, zero := non_unital_non_assoc_ring.zero hahn_series.non_unital_non_assoc_ring, zero_add := _, add_zero := _, nsmul := non_unital_non_assoc_ring.nsmul hahn_series.non_unital_non_assoc_ring, nsmul_zero' := _, nsmul_succ' := _, neg := non_unital_non_assoc_ring.neg hahn_series.non_unital_non_assoc_ring, sub := non_unital_non_assoc_ring.sub hahn_series.non_unital_non_assoc_ring, sub_eq_add_neg := _, zsmul := non_unital_non_assoc_ring.zsmul hahn_series.non_unital_non_assoc_ring, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, mul := non_unital_non_assoc_ring.mul hahn_series.non_unital_non_assoc_ring, left_distrib := _, right_distrib := _, zero_mul := _, mul_zero := _, one := non_assoc_semiring.one hahn_series.non_assoc_semiring, one_mul := _, mul_one := _}
Equations
- hahn_series.ring = {add := semiring.add hahn_series.semiring, add_assoc := _, zero := semiring.zero hahn_series.semiring, zero_add := _, add_zero := _, nsmul := semiring.nsmul hahn_series.semiring, nsmul_zero' := _, nsmul_succ' := _, neg := add_comm_group.neg hahn_series.add_comm_group, sub := add_comm_group.sub hahn_series.add_comm_group, sub_eq_add_neg := _, zsmul := add_comm_group.zsmul hahn_series.add_comm_group, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, mul := semiring.mul hahn_series.semiring, mul_assoc := _, one := semiring.one hahn_series.semiring, one_mul := _, mul_one := _, npow := semiring.npow hahn_series.semiring, npow_zero' := _, npow_succ' := _, left_distrib := _, right_distrib := _}
Equations
- hahn_series.comm_ring = {add := comm_semiring.add hahn_series.comm_semiring, add_assoc := _, zero := comm_semiring.zero hahn_series.comm_semiring, zero_add := _, add_zero := _, nsmul := comm_semiring.nsmul hahn_series.comm_semiring, nsmul_zero' := _, nsmul_succ' := _, neg := ring.neg hahn_series.ring, sub := ring.sub hahn_series.ring, sub_eq_add_neg := _, zsmul := ring.zsmul hahn_series.ring, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, mul := comm_semiring.mul hahn_series.comm_semiring, mul_assoc := _, one := comm_semiring.one hahn_series.comm_semiring, one_mul := _, mul_one := _, npow := comm_semiring.npow hahn_series.comm_semiring, npow_zero' := _, npow_succ' := _, left_distrib := _, right_distrib := _, mul_comm := _}
C a
is the constant Hahn Series a
. C
is provided as a ring homomorphism.
Equations
- hahn_series.C = {to_fun := ⇑(hahn_series.single 0), map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}
Extending the domain of Hahn series is a ring homomorphism.
Equations
- hahn_series.emb_domain_ring_hom f hfi hf = {to_fun := hahn_series.emb_domain {to_embedding := {to_fun := ⇑f, inj' := hfi}, map_rel_iff' := hf}, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}
Equations
- hahn_series.algebra = {to_has_scalar := hahn_series.has_scalar module.to_distrib_mul_action, to_ring_hom := hahn_series.C.comp (algebra_map R A), commutes' := _, smul_def' := _}
Extending the domain of Hahn series is an algebra homomorphism.
The ring hahn_series ℕ R
is isomorphic to power_series R
.
Equations
- hahn_series.to_power_series = {to_fun := λ (f : hahn_series ℕ R), power_series.mk f.coeff, inv_fun := λ (f : power_series R), {coeff := λ (n : ℕ), ⇑(power_series.coeff R n) f, is_pwo_support' := _}, left_inv := _, right_inv := _, map_mul' := _, map_add' := _}
Casts a power series as a Hahn series with coefficients from an ordered_semiring
.
The ring hahn_series (σ →₀ ℕ) R
is isomorphic to mv_power_series σ R
for a fintype
σ
.
We take the index set of the hahn series to be finsupp
rather than pi
,
even though we assume fintype σ
as this is more natural for alignment with mv_power_series
.
After importing algebra.order.pi
the ring hahn_series (σ → ℕ) R
could be constructed instead.
Equations
- hahn_series.to_mv_power_series = {to_fun := λ (f : hahn_series (σ →₀ ℕ) R), f.coeff, inv_fun := λ (f : mv_power_series σ R), {coeff := f, is_pwo_support' := _}, left_inv := _, right_inv := _, map_mul' := _, map_add' := _}
The R
-algebra hahn_series ℕ A
is isomorphic to power_series A
.
Equations
- hahn_series.to_power_series_alg R = {to_fun := hahn_series.to_power_series.to_fun, inv_fun := hahn_series.to_power_series.inv_fun, left_inv := _, right_inv := _, map_mul' := _, map_add' := _, commutes' := _}
Casting a power series as a Hahn series with coefficients from an ordered_semiring
is an algebra homomorphism.
Equations
Equations
- hahn_series.power_series_algebra Γ R = ((hahn_series.of_power_series Γ R).comp (algebra_map S (power_series R))).to_algebra
Equations
- hahn_series.multiplicative.linear_ordered_comm_group = {mul := ordered_comm_group.mul infer_instance, mul_assoc := _, one := ordered_comm_group.one infer_instance, one_mul := _, mul_one := _, npow := ordered_comm_group.npow infer_instance, npow_zero' := _, npow_succ' := _, inv := ordered_comm_group.inv infer_instance, div := ordered_comm_group.div infer_instance, div_eq_mul_inv := _, zpow := ordered_comm_group.zpow infer_instance, zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, mul_left_inv := _, mul_comm := _, le := linear_order.le infer_instance, lt := linear_order.lt infer_instance, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _, le_total := _, decidable_le := linear_order.decidable_le infer_instance, decidable_eq := linear_order.decidable_eq infer_instance, decidable_lt := linear_order.decidable_lt infer_instance, max := max infer_instance, max_def := _, min := min infer_instance, min_def := _}
Equations
- hahn_series.with_zero.linear_ordered_comm_group_with_zero = {le := ordered_comm_monoid.le with_zero.ordered_comm_monoid, lt := ordered_comm_monoid.lt with_zero.ordered_comm_monoid, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := linear_order.decidable_le infer_instance, decidable_eq := linear_order.decidable_eq infer_instance, decidable_lt := linear_order.decidable_lt infer_instance, max := max infer_instance, max_def := _, min := min infer_instance, min_def := _, mul := ordered_comm_monoid.mul with_zero.ordered_comm_monoid, mul_assoc := _, one := ordered_comm_monoid.one with_zero.ordered_comm_monoid, one_mul := _, mul_one := _, npow := ordered_comm_monoid.npow with_zero.ordered_comm_monoid, npow_zero' := _, npow_succ' := _, mul_comm := _, mul_le_mul_left := _, zero := comm_group_with_zero.zero infer_instance, zero_mul := _, mul_zero := _, zero_le_one := _, inv := comm_group_with_zero.inv infer_instance, div := comm_group_with_zero.div infer_instance, div_eq_mul_inv := _, zpow := comm_group_with_zero.zpow infer_instance, zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, exists_pair_ne := _, inv_zero := _, mul_inv_cancel := _}
The additive valuation on hahn_series Γ R
, returning the smallest index at which
a Hahn Series has a nonzero coefficient, or ⊤
for the 0 series.
Equations
- hahn_series.add_val Γ R = add_valuation.of (λ (x : hahn_series Γ R), ite (x = 0) ⊤ ↑(x.order)) _ _ _ _
- to_fun : α → hahn_series Γ R
- is_pwo_Union_support' : (⋃ (a : α), (self.to_fun a).support).is_pwo
- finite_co_support' : ∀ (g : Γ), {a : α | (self.to_fun a).coeff g ≠ 0}.finite
An infinite family of Hahn series which has a formal coefficient-wise sum. The requirements for this are that the union of the supports of the series is well-founded, and that only finitely many series are nonzero at any given coefficient.
Equations
- hahn_series.summable_family.has_add = {add := λ (x y : hahn_series.summable_family Γ R α), {to_fun := ⇑x + ⇑y, is_pwo_Union_support' := _, finite_co_support' := _}}
Equations
- hahn_series.summable_family.has_zero = {zero := {to_fun := 0, is_pwo_Union_support' := _, finite_co_support' := _}}
Equations
Equations
- hahn_series.summable_family.add_comm_monoid = {add := has_add.add hahn_series.summable_family.has_add, add_assoc := _, zero := 0, zero_add := _, add_zero := _, nsmul := add_monoid.nsmul._default 0 has_add.add hahn_series.summable_family.add_comm_monoid._proof_4 hahn_series.summable_family.add_comm_monoid._proof_5, nsmul_zero' := _, nsmul_succ' := _, add_comm := _}
The infinite sum of a summable_family
of Hahn series.
Equations
- hahn_series.summable_family.add_comm_group = {add := add_comm_monoid.add hahn_series.summable_family.add_comm_monoid, add_assoc := _, zero := add_comm_monoid.zero hahn_series.summable_family.add_comm_monoid, zero_add := _, add_zero := _, nsmul := add_comm_monoid.nsmul hahn_series.summable_family.add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, neg := λ (s : hahn_series.summable_family Γ R α), {to_fun := λ (a : α), -⇑s a, is_pwo_Union_support' := _, finite_co_support' := _}, sub := add_group.sub._default add_comm_monoid.add hahn_series.summable_family.add_comm_group._proof_8 add_comm_monoid.zero hahn_series.summable_family.add_comm_group._proof_9 hahn_series.summable_family.add_comm_group._proof_10 add_comm_monoid.nsmul hahn_series.summable_family.add_comm_group._proof_11 hahn_series.summable_family.add_comm_group._proof_12 (λ (s : hahn_series.summable_family Γ R α), {to_fun := λ (a : α), -⇑s a, is_pwo_Union_support' := _, finite_co_support' := _}), sub_eq_add_neg := _, zsmul := add_group.zsmul._default add_comm_monoid.add hahn_series.summable_family.add_comm_group._proof_14 add_comm_monoid.zero hahn_series.summable_family.add_comm_group._proof_15 hahn_series.summable_family.add_comm_group._proof_16 add_comm_monoid.nsmul hahn_series.summable_family.add_comm_group._proof_17 hahn_series.summable_family.add_comm_group._proof_18 (λ (s : hahn_series.summable_family Γ R α), {to_fun := λ (a : α), -⇑s a, is_pwo_Union_support' := _, finite_co_support' := _}), zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _}
Equations
- hahn_series.summable_family.has_scalar = {smul := λ (x : hahn_series Γ R) (s : hahn_series.summable_family Γ R α), {to_fun := λ (a : α), x * ⇑s a, is_pwo_Union_support' := _, finite_co_support' := _}}
Equations
- hahn_series.summable_family.module = {to_distrib_mul_action := {to_mul_action := {to_has_scalar := {smul := has_scalar.smul hahn_series.summable_family.has_scalar}, one_smul := _, mul_smul := _}, smul_add := _, smul_zero := _}, add_smul := _, zero_smul := _}
The summation of a summable_family
as a linear_map
.
Equations
- hahn_series.summable_family.lsum = {to_fun := hahn_series.summable_family.hsum α, map_add' := _, map_smul' := _}
A family with only finitely many nonzero elements is summable.
Equations
- hahn_series.summable_family.of_finsupp f = {to_fun := ⇑f, is_pwo_Union_support' := _, finite_co_support' := _}
A summable family can be reindexed by an embedding without changing its sum.
Equations
- s.emb_domain f = {to_fun := λ (b : β), dite (b ∈ set.range ⇑f) (λ (h : b ∈ set.range ⇑f), ⇑s (classical.some h)) (λ (h : b ∉ set.range ⇑f), 0), is_pwo_Union_support' := _, finite_co_support' := _}
The powers of an element of positive valuation form a summable family.
Equations
- hahn_series.summable_family.powers x hx = {to_fun := λ (n : ℕ), x ^ n, is_pwo_Union_support' := _, finite_co_support' := _}
Equations
- hahn_series.field = {add := comm_ring.add hahn_series.comm_ring, add_assoc := _, zero := comm_ring.zero hahn_series.comm_ring, zero_add := _, add_zero := _, nsmul := comm_ring.nsmul hahn_series.comm_ring, nsmul_zero' := _, nsmul_succ' := _, neg := comm_ring.neg hahn_series.comm_ring, sub := comm_ring.sub hahn_series.comm_ring, sub_eq_add_neg := _, zsmul := comm_ring.zsmul hahn_series.comm_ring, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, mul := comm_ring.mul hahn_series.comm_ring, mul_assoc := _, one := comm_ring.one hahn_series.comm_ring, one_mul := _, mul_one := _, npow := comm_ring.npow hahn_series.comm_ring, npow_zero' := _, npow_succ' := _, left_distrib := _, right_distrib := _, mul_comm := _, inv := λ (x : hahn_series Γ R), dite (x = 0) (λ (x0 : x = 0), 0) (λ (x0 : ¬x = 0), ((⇑hahn_series.C (x.coeff x.order)⁻¹) * ⇑(hahn_series.single (-x.order)) 1) * (hahn_series.summable_family.powers (1 - ((⇑hahn_series.C (x.coeff x.order)⁻¹) * ⇑(hahn_series.single (-x.order)) 1) * x) _).hsum), div := div_inv_monoid.div._default comm_ring.mul hahn_series.field._proof_21 comm_ring.one hahn_series.field._proof_22 hahn_series.field._proof_23 comm_ring.npow hahn_series.field._proof_24 hahn_series.field._proof_25 (λ (x : hahn_series Γ R), dite (x = 0) (λ (x0 : x = 0), 0) (λ (x0 : ¬x = 0), ((⇑hahn_series.C (x.coeff x.order)⁻¹) * ⇑(hahn_series.single (-x.order)) 1) * (hahn_series.summable_family.powers (1 - ((⇑hahn_series.C (x.coeff x.order)⁻¹) * ⇑(hahn_series.single (-x.order)) 1) * x) _).hsum)), div_eq_mul_inv := _, zpow := div_inv_monoid.zpow._default comm_ring.mul hahn_series.field._proof_27 comm_ring.one hahn_series.field._proof_28 hahn_series.field._proof_29 comm_ring.npow hahn_series.field._proof_30 hahn_series.field._proof_31 (λ (x : hahn_series Γ R), dite (x = 0) (λ (x0 : x = 0), 0) (λ (x0 : ¬x = 0), ((⇑hahn_series.C (x.coeff x.order)⁻¹) * ⇑(hahn_series.single (-x.order)) 1) * (hahn_series.summable_family.powers (1 - ((⇑hahn_series.C (x.coeff x.order)⁻¹) * ⇑(hahn_series.single (-x.order)) 1) * x) _).hsum)), zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, exists_pair_ne := _, mul_inv_cancel := _, inv_zero := _}