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. This module introduces multiplication and scalar multiplication on Hahn series. If Γ is an ordered cancellative commutative additive monoid and R is a semiring, then we get a semiring structure on HahnSeries Γ R. If Γ has an ordered vector-addition on Γ' and R has a scalar multiplication on V, we define HahnModule Γ' R V as a type alias for HahnSeries Γ' V that admits a scalar multiplication from HahnSeries Γ R. The scalar action of R on HahnSeries Γ R is compatible with the action of HahnSeries Γ R on HahnModule Γ' R V.

Main Definitions #

Main results #

TODO #

The following may be useful for composing vertex operators, but they seem to take time.

References #

instance HahnSeries.instOne {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [One R] :
Equations
    instance HahnSeries.instNatCast {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [NatCast R] :
    Equations
      instance HahnSeries.instIntCast {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [IntCast R] :
      Equations
        instance HahnSeries.instNNRatCast {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [NNRatCast R] :
        Equations
          instance HahnSeries.instRatCast {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [RatCast 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
            theorem HahnSeries.single_zero_natCast {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [NatCast R] (n : ) :
            (single 0) n = n
            theorem HahnSeries.single_zero_intCast {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [IntCast R] (z : ) :
            (single 0) z = z
            theorem HahnSeries.single_zero_nnratCast {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [NNRatCast R] (q : ℚ≥0) :
            (single 0) q = q
            theorem HahnSeries.single_zero_ratCast {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [RatCast R] (q : ) :
            (single 0) q = q
            theorem HahnSeries.single_zero_ofNat {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [NatCast R] (n : ) [n.AtLeastTwo] :
            @[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.lean for more discussion on this problem.

            Equations
              Instances For
                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
                  Instances For
                    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
                      Instances For
                        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
                        theorem HahnModule.ext_iff {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [Zero V] [SMul R V] {x y : HahnModule Γ R V} :
                        x = y ((of R).symm x).coeff = ((of R).symm y).coeff
                        instance HahnModule.instAddCommMonoid {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMul R V] :
                        Equations
                          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
                              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.

                              instance HahnModule.instBaseSMulZeroClass {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMulZeroClass R V] :
                              Equations
                                @[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} [AddCommMonoid Γ] [PartialOrder Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [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) [AddCommMonoid Γ] [PartialOrder Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [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.orderTop_vAdd_le_orderTop_smul {R : Type u_3} {V : Type u_5} [AddCommMonoid V] {Γ : Type u_6} {Γ' : Type u_7} [LinearOrder Γ] [LinearOrder Γ'] [VAdd Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [MulZeroClass R] [SMulWithZero R V] {x : HahnSeries Γ R} [VAdd (WithTop Γ) (WithTop Γ')] {y : HahnModule Γ' R V} (h : ∀ (γ : Γ) (γ' : Γ'), ↑(γ +ᵥ γ') = γ +ᵥ γ') :
                                    x.orderTop +ᵥ ((of R).symm y).orderTop ((of R).symm (x y)).orderTop
                                    theorem HahnModule.coeff_smul_order_add_order {R : Type u_3} {V : Type u_5} [AddCommMonoid V] {Γ : Type u_6} [AddCommMonoid Γ] [LinearOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [LinearOrder Γ] [IsOrderedCancelAddMonoid Γ] [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.

                                    theorem HahnSeries.coeff_mul {Γ : Type u_1} {R : Type u_3} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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.

                                    theorem HahnSeries.order_single_mul_of_isRegular {R : Type u_3} {Γ : Type u_6} [AddCommMonoid Γ] [LinearOrder Γ] [IsOrderedCancelAddMonoid Γ] [NonUnitalNonAssocSemiring R] {g : Γ} {r : R} (hr : IsRegular r) {x : HahnSeries Γ R} (hx : x 0) :
                                    ((single g) r * x).order = g + x.order
                                    instance HahnSeries.instRing {Γ : Type u_1} {R : Type u_3} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [PartialOrder Γ'] [AddAction Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [Semiring R] [Module R V] :
                                        Module (HahnSeries Γ R) (HahnModule Γ' R V)
                                        Equations
                                          instance HahnModule.instIsScalarTowerHahnSeries {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [Zero R] {S : Type u_6} [Zero S] [SMul R S] [SMulWithZero R V] [SMulWithZero S V] [IsScalarTower R S V] :
                                          instance HahnModule.instIsScalarTowerHahnSeries_1 {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [PartialOrder Γ'] [AddAction Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [Semiring R] [Module R V] :
                                          instance HahnModule.SMulCommClass {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} {V : Type u_5} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [PartialOrder Γ'] [AddAction Γ Γ'] [IsOrderedCancelVAdd Γ Γ'] [AddCommMonoid V] [CommSemiring R] [Module R V] :
                                          @[simp]
                                          theorem HahnSeries.order_mul {R : Type u_3} {Γ : Type u_6} [AddCommMonoid Γ] [LinearOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [LinearOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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
                                            Instances For
                                              @[simp]
                                              theorem HahnSeries.C_apply {Γ : Type u_1} {R : Type u_3} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [NonAssocSemiring R] (a : R) :
                                              C a = (single 0) a
                                              theorem HahnSeries.map_C {Γ : Type u_1} {R : Type u_3} {S : Type u_4} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [NonAssocSemiring R] {r : R} (h : r 0) :
                                              C r 0
                                              theorem HahnSeries.order_C {Γ : Type u_1} {R : Type u_3} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [NonAssocSemiring R] {r : R} :
                                              (C r).order = 0
                                              theorem HahnSeries.C_mul_eq_smul {Γ : Type u_1} {R : Type u_3} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [Semiring R] {r : R} {x : HahnSeries Γ R} :
                                              C r * x = r x
                                              theorem HahnSeries.embDomain_mul {Γ : Type u_1} {R : Type u_3} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] {Γ' : Type u_6} [AddCommMonoid Γ'] [PartialOrder Γ'] [IsOrderedCancelAddMonoid Γ'] [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} [AddCommMonoid Γ] [PartialOrder Γ] {Γ' : Type u_6} [AddCommMonoid Γ'] [PartialOrder Γ'] [NonAssocSemiring R] (f : Γ ↪o Γ') (hf : f 0 = 0) :
                                              embDomain f 1 = 1
                                              def HahnSeries.embDomainRingHom {Γ : Type u_1} {R : Type u_3} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] {Γ' : Type u_6} [AddCommMonoid Γ'] [PartialOrder Γ'] [IsOrderedCancelAddMonoid Γ'] [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
                                                Instances For
                                                  @[simp]
                                                  theorem HahnSeries.embDomainRingHom_apply {Γ : Type u_1} {R : Type u_3} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] {Γ' : Type u_6} [AddCommMonoid Γ'] [PartialOrder Γ'] [IsOrderedCancelAddMonoid Γ'] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] {Γ' : Type u_6} [AddCommMonoid Γ'] [PartialOrder Γ'] [IsOrderedCancelAddMonoid Γ'] [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
                                                  instance HahnSeries.instAlgebra {Γ : Type u_1} {R : Type u_3} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [CommSemiring R] {A : Type u_6} [Semiring A] [Algebra R A] :
                                                  Equations
                                                    theorem HahnSeries.algebraMap_apply {Γ : Type u_1} {R : Type u_3} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [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} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [CommSemiring R] {A : Type u_6} [Semiring A] [Algebra R A] {Γ' : Type u_7} [AddCommMonoid Γ'] [PartialOrder Γ'] [IsOrderedCancelAddMonoid Γ'] (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
                                                      Instances For
                                                        @[simp]
                                                        theorem HahnSeries.embDomainAlgHom_apply_coeff {Γ : Type u_1} {R : Type u_3} [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ] [CommSemiring R] {A : Type u_6} [Semiring A] [Algebra R A] {Γ' : Type u_7} [AddCommMonoid Γ'] [PartialOrder Γ'] [IsOrderedCancelAddMonoid Γ'] (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