Documentation

Mathlib.RingTheory.HahnSeries.Multiplication

Multiplicative properties of Hahn series #

If Γ is ordered and R has zero, then HahnSeries Γ 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 HahnSeries Γ R. We prove some facts about multiplying Hahn series.

Main Definitions #

Main results #

TODO #

References #

instance HahnSeries.instOne {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [One R] :
Equations
@[simp]
theorem HahnSeries.coeff_one {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [One R] {a : Γ} :
coeff 1 a = if a = 0 then 1 else 0
@[deprecated HahnSeries.coeff_one (since := "2025-01-31")]
theorem HahnSeries.one_coeff {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [One R] {a : Γ} :
coeff 1 a = if a = 0 then 1 else 0

Alias of HahnSeries.coeff_one.

@[simp]
theorem HahnSeries.single_zero_one {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [One R] :
(single 0) 1 = 1
@[simp]
theorem HahnSeries.support_one {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [MulZeroOneClass R] [Nontrivial R] :
@[simp]
theorem HahnSeries.orderTop_one {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [MulZeroOneClass R] [Nontrivial R] :
@[simp]
theorem HahnSeries.order_one {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [MulZeroOneClass R] :
order 1 = 0
@[simp]
theorem HahnSeries.leadingCoeff_one {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [MulZeroOneClass R] :
@[simp]
theorem HahnSeries.map_one {Γ : Type u_1} {R : Type u_3} {S : Type u_4} [Zero Γ] [PartialOrder Γ] [MonoidWithZero R] [MonoidWithZero S] (f : R →*₀ S) :
map 1 f = 1
def HahnModule (Γ : Type u_6) (R : Type u_7) (V : Type u_8) [PartialOrder Γ] [Zero V] [SMul R V] :
Type (max u_6 u_8)

We introduce a type alias for HahnSeries in order to work with scalar multiplication by series. If we wrote a SMul (HahnSeries Γ R) (HahnSeries Γ V) instance, then when V = HahnSeries Γ R, we would have two different actions of HahnSeries Γ R on HahnSeries Γ V. See Mathlib.Algebra.Polynomial.Module for more discussion on this problem.

Equations
def HahnModule.of {Γ : Type u_1} {V : Type u_5} [PartialOrder Γ] [Zero V] (R : Type u_6) [SMul R V] :

The casting function to the type synonym.

Equations
def HahnModule.rec {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [Zero V] [SMul R V] {motive : HahnModule Γ R VSort u_6} (h : (x : HahnSeries Γ V) → motive ((of R) x)) (x : HahnModule Γ R V) :
motive x

Recursion principle to reduce a result about the synonym to the original type.

Equations
theorem HahnModule.ext {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [Zero V] [SMul R V] (x y : HahnModule Γ R V) (h : ((of R).symm x).coeff = ((of R).symm y).coeff) :
x = y
instance HahnModule.instBaseSMul {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] {V : Type u_6} [Monoid R] [AddMonoid V] [DistribMulAction R V] :
SMul R (HahnModule Γ R V)
Equations
@[simp]
theorem HahnModule.of_zero {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMul R V] :
(of R) 0 = 0
@[simp]
theorem HahnModule.of_add {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMul R V] (x y : HahnSeries Γ V) :
(of R) (x + y) = (of R) x + (of R) y
@[simp]
theorem HahnModule.of_symm_zero {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMul R V] :
(of R).symm 0 = 0
@[simp]
theorem HahnModule.of_symm_add {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMul R V] (x y : HahnModule Γ R V) :
(of R).symm (x + y) = (of R).symm x + (of R).symm y
instance HahnModule.instSMul {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMul R V] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [Zero R] :
SMul (HahnSeries Γ R) (HahnModule Γ' R V)
Equations
  • One or more equations did not get rendered due to their size.
theorem HahnModule.coeff_smul {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMul R V] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [Zero R] (x : HahnSeries Γ R) (y : HahnModule Γ' R V) (a : Γ') :
((of R).symm (x y)).coeff a = ijFinset.VAddAntidiagonal a, x.coeff ij.1 ((of R).symm y).coeff ij.2
@[deprecated HahnModule.coeff_smul (since := "2025-01-31")]
theorem HahnModule.smul_coeff {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMul R V] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [Zero R] (x : HahnSeries Γ R) (y : HahnModule Γ' R V) (a : Γ') :
((of R).symm (x y)).coeff a = ijFinset.VAddAntidiagonal a, x.coeff ij.1 ((of R).symm y).coeff ij.2

Alias of HahnModule.coeff_smul.

@[simp]
theorem HahnModule.of_smul {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMulZeroClass R V] (r : R) (x : HahnSeries Γ V) :
(of R) (r x) = r (of R) x
@[simp]
theorem HahnModule.of_symm_smul {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMulZeroClass R V] (r : R) (x : HahnModule Γ R V) :
(of R).symm (r x) = r (of R).symm x
instance HahnModule.instSMulZeroClass {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [Zero R] [SMulZeroClass R V] :
Equations
theorem HahnModule.coeff_smul_right {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [Zero R] [SMulZeroClass R V] {x : HahnSeries Γ R} {y : HahnModule Γ' R V} {a : Γ'} {s : Set Γ'} (hs : s.IsPWO) (hys : ((of R).symm y).support s) :
((of R).symm (x y)).coeff a = ijFinset.VAddAntidiagonal hs a, x.coeff ij.1 ((of R).symm y).coeff ij.2
@[deprecated HahnModule.coeff_smul_right (since := "2025-01-31")]
theorem HahnModule.smul_coeff_right {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [Zero R] [SMulZeroClass R V] {x : HahnSeries Γ R} {y : HahnModule Γ' R V} {a : Γ'} {s : Set Γ'} (hs : s.IsPWO) (hys : ((of R).symm y).support s) :
((of R).symm (x y)).coeff a = ijFinset.VAddAntidiagonal hs a, x.coeff ij.1 ((of R).symm y).coeff ij.2

Alias of HahnModule.coeff_smul_right.

theorem HahnModule.coeff_smul_left {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [Zero R] [SMulWithZero R V] {x : HahnSeries Γ R} {y : HahnModule Γ' R V} {a : Γ'} {s : Set Γ} (hs : s.IsPWO) (hxs : x.support s) :
((of R).symm (x y)).coeff a = ijFinset.VAddAntidiagonal hs a, x.coeff ij.1 ((of R).symm y).coeff ij.2
@[deprecated HahnModule.coeff_smul_left (since := "2025-01-31")]
theorem HahnModule.smul_coeff_left {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [Zero R] [SMulWithZero R V] {x : HahnSeries Γ R} {y : HahnModule Γ' R V} {a : Γ'} {s : Set Γ} (hs : s.IsPWO) (hxs : x.support s) :
((of R).symm (x y)).coeff a = ijFinset.VAddAntidiagonal hs a, x.coeff ij.1 ((of R).symm y).coeff ij.2

Alias of HahnModule.coeff_smul_left.

theorem HahnModule.smul_add {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [Zero R] [DistribSMul R V] (x : HahnSeries Γ R) (y z : HahnModule Γ' R V) :
x (y + z) = x y + x z
instance HahnModule.instDistribSMul {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [MonoidWithZero R] [DistribSMul R V] :
Equations
theorem HahnModule.add_smul {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [AddCommMonoid R] [SMulWithZero R V] {x y : HahnSeries Γ R} {z : HahnModule Γ' R V} (h : ∀ (r s : R) (u : V), (r + s) u = r u + s u) :
(x + y) z = x z + y z
theorem HahnModule.coeff_single_smul_vadd {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [MulZeroClass R] [SMulWithZero R V] {r : R} {x : HahnModule Γ' R V} {a : Γ'} {b : Γ} :
((of R).symm ((HahnSeries.single b) r x)).coeff (b +ᵥ a) = r ((of R).symm x).coeff a
@[deprecated HahnModule.coeff_single_smul_vadd (since := "2025-01-31")]
theorem HahnModule.single_smul_coeff_add {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [MulZeroClass R] [SMulWithZero R V] {r : R} {x : HahnModule Γ' R V} {a : Γ'} {b : Γ} :
((of R).symm ((HahnSeries.single b) r x)).coeff (b +ᵥ a) = r ((of R).symm x).coeff a

Alias of HahnModule.coeff_single_smul_vadd.

theorem HahnModule.coeff_single_zero_smul {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ'] [AddCommMonoid V] {Γ : Type u_6} [OrderedAddCommMonoid Γ] [AddAction Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [MulZeroClass R] [SMulWithZero R V] {r : R} {x : HahnModule Γ' R V} {a : Γ'} :
((of R).symm ((HahnSeries.single 0) r x)).coeff a = r ((of R).symm x).coeff a
@[deprecated HahnModule.coeff_single_zero_smul (since := "2025-01-31")]
theorem HahnModule.single_zero_smul_coeff {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ'] [AddCommMonoid V] {Γ : Type u_6} [OrderedAddCommMonoid Γ] [AddAction Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [MulZeroClass R] [SMulWithZero R V] {r : R} {x : HahnModule Γ' R V} {a : Γ'} :
((of R).symm ((HahnSeries.single 0) r x)).coeff a = r ((of R).symm x).coeff a

Alias of HahnModule.coeff_single_zero_smul.

@[simp]
theorem HahnModule.single_zero_smul_eq_smul {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ'] [AddCommMonoid V] (Γ : Type u_6) [OrderedAddCommMonoid Γ] [AddAction Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [MulZeroClass R] [SMulWithZero R V] {r : R} {x : HahnModule Γ' R V} :
@[simp]
theorem HahnModule.zero_smul' {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [Zero R] [SMulWithZero R V] {x : HahnModule Γ' R V} :
0 x = 0
@[simp]
theorem HahnModule.one_smul' {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ'] [AddCommMonoid V] {Γ : Type u_6} [OrderedAddCommMonoid Γ] [AddAction Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [MonoidWithZero R] [MulActionWithZero R V] {x : HahnModule Γ' R V} :
1 x = x
theorem HahnModule.support_smul_subset_vadd_support' {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [MulZeroClass R] [SMulWithZero R V] {x : HahnSeries Γ R} {y : HahnModule Γ' R V} :
((of R).symm (x y)).support x.support +ᵥ ((of R).symm y).support
theorem HahnModule.support_smul_subset_vadd_support {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [PartialOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [MulZeroClass R] [SMulWithZero R V] {x : HahnSeries Γ R} {y : HahnModule Γ' R V} :
((of R).symm (x y)).support x.support +ᵥ ((of R).symm y).support
theorem HahnModule.coeff_smul_order_add_order {R : Type u_3} {V : Type u_5} [AddCommMonoid V] {Γ : Type u_6} [LinearOrderedCancelAddCommMonoid Γ] [Zero R] [SMulWithZero R V] (x : HahnSeries Γ R) (y : HahnModule Γ R V) :
((of R).symm (x y)).coeff (x.order + ((of R).symm y).order) = x.leadingCoeff ((of R).symm y).leadingCoeff
@[deprecated HahnModule.coeff_smul_order_add_order (since := "2025-01-31")]
theorem HahnModule.smul_coeff_order_add_order {R : Type u_3} {V : Type u_5} [AddCommMonoid V] {Γ : Type u_6} [LinearOrderedCancelAddCommMonoid Γ] [Zero R] [SMulWithZero R V] (x : HahnSeries Γ R) (y : HahnModule Γ R V) :
((of R).symm (x y)).coeff (x.order + ((of R).symm y).order) = x.leadingCoeff ((of R).symm y).leadingCoeff

Alias of HahnModule.coeff_smul_order_add_order.

Equations
theorem HahnSeries.coeff_mul {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {x y : HahnSeries Γ R} {a : Γ} :
(x * y).coeff a = ijFinset.addAntidiagonal a, x.coeff ij.1 * y.coeff ij.2
@[deprecated HahnSeries.coeff_mul (since := "2025-01-31")]
theorem HahnSeries.mul_coeff {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {x y : HahnSeries Γ R} {a : Γ} :
(x * y).coeff a = ijFinset.addAntidiagonal a, x.coeff ij.1 * y.coeff ij.2

Alias of HahnSeries.coeff_mul.

theorem HahnSeries.map_mul {Γ : Type u_1} {R : Type u_3} {S : Type u_4} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (f : R →ₙ+* S) {x y : HahnSeries Γ R} :
(x * y).map f = x.map f * y.map f
theorem HahnSeries.coeff_mul_left' {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {x y : HahnSeries Γ R} {a : Γ} {s : Set Γ} (hs : s.IsPWO) (hxs : x.support s) :
(x * y).coeff a = ijFinset.addAntidiagonal hs a, x.coeff ij.1 * y.coeff ij.2
@[deprecated HahnSeries.coeff_mul_left' (since := "2025-01-31")]
theorem HahnSeries.mul_coeff_left' {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {x y : HahnSeries Γ R} {a : Γ} {s : Set Γ} (hs : s.IsPWO) (hxs : x.support s) :
(x * y).coeff a = ijFinset.addAntidiagonal hs a, x.coeff ij.1 * y.coeff ij.2

Alias of HahnSeries.coeff_mul_left'.

theorem HahnSeries.coeff_mul_right' {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {x y : HahnSeries Γ R} {a : Γ} {s : Set Γ} (hs : s.IsPWO) (hys : y.support s) :
(x * y).coeff a = ijFinset.addAntidiagonal hs a, x.coeff ij.1 * y.coeff ij.2
@[deprecated HahnSeries.coeff_mul_right' (since := "2025-01-31")]
theorem HahnSeries.mul_coeff_right' {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {x y : HahnSeries Γ R} {a : Γ} {s : Set Γ} (hs : s.IsPWO) (hys : y.support s) :
(x * y).coeff a = ijFinset.addAntidiagonal hs a, x.coeff ij.1 * y.coeff ij.2

Alias of HahnSeries.coeff_mul_right'.

theorem HahnSeries.coeff_single_mul_add {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {r : R} {x : HahnSeries Γ R} {a b : Γ} :
((single b) r * x).coeff (a + b) = r * x.coeff a
@[deprecated HahnSeries.coeff_single_mul_add (since := "2025-01-31")]
theorem HahnSeries.single_mul_coeff_add {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {r : R} {x : HahnSeries Γ R} {a b : Γ} :
((single b) r * x).coeff (a + b) = r * x.coeff a

Alias of HahnSeries.coeff_single_mul_add.

theorem HahnSeries.coeff_mul_single_add {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {r : R} {x : HahnSeries Γ R} {a b : Γ} :
(x * (single b) r).coeff (a + b) = x.coeff a * r
@[deprecated HahnSeries.coeff_mul_single_add (since := "2025-01-31")]
theorem HahnSeries.mul_single_coeff_add {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {r : R} {x : HahnSeries Γ R} {a b : Γ} :
(x * (single b) r).coeff (a + b) = x.coeff a * r

Alias of HahnSeries.coeff_mul_single_add.

@[simp]
theorem HahnSeries.coeff_mul_single_zero {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {r : R} {x : HahnSeries Γ R} {a : Γ} :
(x * (single 0) r).coeff a = x.coeff a * r
@[deprecated HahnSeries.coeff_mul_single_zero (since := "2025-01-31")]
theorem HahnSeries.mul_single_zero_coeff {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {r : R} {x : HahnSeries Γ R} {a : Γ} :
(x * (single 0) r).coeff a = x.coeff a * r

Alias of HahnSeries.coeff_mul_single_zero.

theorem HahnSeries.coeff_single_zero_mul {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {r : R} {x : HahnSeries Γ R} {a : Γ} :
((single 0) r * x).coeff a = r * x.coeff a
@[deprecated HahnSeries.coeff_single_zero_mul (since := "2025-01-31")]
theorem HahnSeries.single_zero_mul_coeff {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {r : R} {x : HahnSeries Γ R} {a : Γ} :
((single 0) r * x).coeff a = r * x.coeff a

Alias of HahnSeries.coeff_single_zero_mul.

@[simp]
theorem HahnSeries.single_zero_mul_eq_smul {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [Semiring R] {r : R} {x : HahnSeries Γ R} :
(single 0) r * x = r x
@[deprecated HahnSeries.coeff_mul_order_add_order (since := "2025-01-31")]

Alias of HahnSeries.coeff_mul_order_add_order.

instance HahnSeries.instRing {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [Ring R] :
Equations
instance HahnModule.instBaseModule {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [PartialOrder Γ'] [AddCommMonoid V] [Semiring R] [Module R V] :
Module R (HahnModule Γ' R V)
Equations
instance HahnModule.instModule {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [OrderedCancelAddCommMonoid Γ] [PartialOrder Γ'] [AddAction Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [Semiring R] [Module R V] :
Module (HahnSeries Γ R) (HahnModule Γ' R V)
Equations
@[simp]
theorem HahnSeries.order_mul {R : Type u_3} {Γ : Type u_6} [LinearOrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] [NoZeroDivisors R] {x y : HahnSeries Γ R} (hx : x 0) (hy : y 0) :
(x * y).order = x.order + y.order
@[simp]
theorem HahnSeries.order_pow {R : Type u_3} {Γ : Type u_6} [LinearOrderedCancelAddCommMonoid Γ] [Semiring R] [NoZeroDivisors R] (x : HahnSeries Γ R) (n : ) :
(x ^ n).order = n x.order
@[simp]
theorem HahnSeries.single_mul_single {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {a b : Γ} {r s : R} :
(single a) r * (single b) s = (single (a + b)) (r * s)
@[simp]
theorem HahnSeries.single_pow {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [Semiring R] (a : Γ) (n : ) (r : R) :
(single a) r ^ n = (single (n a)) (r ^ n)

C a is the constant Hahn Series a. C is provided as a ring homomorphism.

Equations
@[simp]
theorem HahnSeries.C_apply {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonAssocSemiring R] (a : R) :
C a = (single 0) a
theorem HahnSeries.map_C {Γ : Type u_1} {R : Type u_3} {S : Type u_4} [OrderedCancelAddCommMonoid Γ] [NonAssocSemiring R] [NonAssocSemiring S] (a : R) (f : R →+* S) :
(C a).map f = C (f a)
theorem HahnSeries.C_ne_zero {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonAssocSemiring R] {r : R} (h : r 0) :
C r 0
theorem HahnSeries.order_C {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonAssocSemiring R] {r : R} :
(C r).order = 0
theorem HahnSeries.C_mul_eq_smul {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [Semiring R] {r : R} {x : HahnSeries Γ R} :
C r * x = r x
theorem HahnSeries.embDomain_mul {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] {Γ' : Type u_6} [OrderedCancelAddCommMonoid Γ'] [NonUnitalNonAssocSemiring R] (f : Γ ↪o Γ') (hf : ∀ (x y : Γ), f (x + y) = f x + f y) (x y : HahnSeries Γ R) :
embDomain f (x * y) = embDomain f x * embDomain f y
theorem HahnSeries.embDomain_one {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] {Γ' : Type u_6} [OrderedCancelAddCommMonoid Γ'] [NonAssocSemiring R] (f : Γ ↪o Γ') (hf : f 0 = 0) :
embDomain f 1 = 1
def HahnSeries.embDomainRingHom {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] {Γ' : Type u_6} [OrderedCancelAddCommMonoid Γ'] [NonAssocSemiring R] (f : Γ →+ Γ') (hfi : Function.Injective f) (hf : ∀ (g g' : Γ), f g f g' g g') :

Extending the domain of Hahn series is a ring homomorphism.

Equations
@[simp]
theorem HahnSeries.embDomainRingHom_apply {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] {Γ' : Type u_6} [OrderedCancelAddCommMonoid Γ'] [NonAssocSemiring R] (f : Γ →+ Γ') (hfi : Function.Injective f) (hf : ∀ (g g' : Γ), f g f g' g g') (a✝ : HahnSeries Γ R) :
(embDomainRingHom f hfi hf) a✝ = embDomain { toFun := f, inj' := hfi, map_rel_iff' := } a✝
theorem HahnSeries.embDomainRingHom_C {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] {Γ' : Type u_6} [OrderedCancelAddCommMonoid Γ'] [NonAssocSemiring R] {f : Γ →+ Γ'} {hfi : Function.Injective f} {hf : ∀ (g g' : Γ), f g f g' g g'} {r : R} :
(embDomainRingHom f hfi hf) (C r) = C r
theorem HahnSeries.algebraMap_apply {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [CommSemiring R] {A : Type u_6} [Semiring A] [Algebra R A] {r : R} :
(algebraMap R (HahnSeries Γ A)) r = C ((algebraMap R A) r)
def HahnSeries.embDomainAlgHom {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [CommSemiring R] {A : Type u_6} [Semiring A] [Algebra R A] {Γ' : Type u_7} [OrderedCancelAddCommMonoid Γ'] (f : Γ →+ Γ') (hfi : Function.Injective f) (hf : ∀ (g g' : Γ), f g f g' g g') :

Extending the domain of Hahn series is an algebra homomorphism.

Equations
@[simp]
theorem HahnSeries.embDomainAlgHom_apply_coeff {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [CommSemiring R] {A : Type u_6} [Semiring A] [Algebra R A] {Γ' : Type u_7} [OrderedCancelAddCommMonoid Γ'] (f : Γ →+ Γ') (hfi : Function.Injective f) (hf : ∀ (g g' : Γ), f g f g' g g') (a✝ : HahnSeries Γ A) (b : Γ') :
((embDomainAlgHom f hfi hf) a✝).coeff b = if h : b f '' a✝.support then a✝.coeff (Classical.choose ) else 0