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.one_coeff {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [One R] {a : Γ} :
HahnSeries.coeff 1 a = if a = 0 then 1 else 0
@[simp]
theorem HahnSeries.single_zero_one {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [Zero R] [One R] :
@[simp]
theorem HahnSeries.support_one {Γ : Type u_1} {R : Type u_3} [Zero Γ] [PartialOrder Γ] [MulZeroOneClass R] [Nontrivial R] :
@[simp]
@[simp]
theorem HahnSeries.order_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) :
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
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 ((HahnModule.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 : HahnModule Γ R V) (y : HahnModule Γ R V) (h : ((HahnModule.of R).symm x).coeff = ((HahnModule.of R).symm y).coeff) :
        x = y
        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] :
        @[simp]
        theorem HahnModule.of_add {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMul R V] (x : HahnSeries Γ V) (y : HahnSeries Γ V) :
        @[simp]
        theorem HahnModule.of_symm_zero {Γ : Type u_1} {R : Type u_3} {V : Type u_5} [PartialOrder Γ] [AddCommMonoid V] [SMul R V] :
        (HahnModule.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 : HahnModule Γ R V) (y : HahnModule Γ R V) :
        (HahnModule.of R).symm (x + y) = (HahnModule.of R).symm x + (HahnModule.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.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 : Γ') :
        ((HahnModule.of R).symm (x y)).coeff a = ijFinset.VAddAntidiagonal a, x.coeff ij.1 ((HahnModule.of R).symm y).coeff ij.2
        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) :
        (HahnModule.of R) (r x) = r (HahnModule.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) :
        (HahnModule.of R).symm (r x) = r (HahnModule.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.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 : ((HahnModule.of R).symm y).support s) :
        ((HahnModule.of R).symm (x y)).coeff a = ijFinset.VAddAntidiagonal hs a, x.coeff ij.1 ((HahnModule.of R).symm y).coeff ij.2
        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) :
        ((HahnModule.of R).symm (x y)).coeff a = ijFinset.VAddAntidiagonal hs a, x.coeff ij.1 ((HahnModule.of R).symm y).coeff ij.2
        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 : HahnModule Γ' R V) (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 : HahnSeries Γ R} {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.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 : Γ} :
        ((HahnModule.of R).symm ((HahnSeries.single b) r x)).coeff (b +ᵥ a) = r ((HahnModule.of R).symm x).coeff a
        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 : Γ'} :
        ((HahnModule.of R).symm ((HahnSeries.single 0) r x)).coeff a = r ((HahnModule.of R).symm x).coeff a
        @[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} :
        ((HahnModule.of R).symm (x y)).support x.support +ᵥ ((HahnModule.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} :
        ((HahnModule.of R).symm (x y)).support x.support +ᵥ ((HahnModule.of R).symm y).support
        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) :
        ((HahnModule.of R).symm (x y)).coeff (x.order + ((HahnModule.of R).symm y).order) = x.leadingCoeff ((HahnModule.of R).symm y).leadingCoeff
        Equations
        theorem HahnSeries.mul_coeff {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {x : HahnSeries Γ R} {y : HahnSeries Γ R} {a : Γ} :
        (x * y).coeff a = ijFinset.addAntidiagonal a, x.coeff ij.1 * y.coeff ij.2
        theorem HahnSeries.map_mul {Γ : Type u_1} {R : Type u_3} {S : Type u_4} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (f : R →ₙ+* S) {x : HahnSeries Γ R} {y : HahnSeries Γ R} :
        (x * y).map f = x.map f * y.map f
        theorem HahnSeries.mul_coeff_left' {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {x : HahnSeries Γ R} {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
        theorem HahnSeries.mul_coeff_right' {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {x : HahnSeries Γ R} {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
        Equations
        theorem HahnSeries.single_mul_coeff_add {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {r : R} {x : HahnSeries Γ R} {a : Γ} {b : Γ} :
        ((HahnSeries.single b) r * x).coeff (a + b) = r * x.coeff a
        theorem HahnSeries.mul_single_coeff_add {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {r : R} {x : HahnSeries Γ R} {a : Γ} {b : Γ} :
        (x * (HahnSeries.single b) r).coeff (a + b) = x.coeff a * r
        @[simp]
        theorem HahnSeries.mul_single_zero_coeff {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {r : R} {x : HahnSeries Γ R} {a : Γ} :
        (x * (HahnSeries.single 0) r).coeff a = x.coeff a * r
        theorem HahnSeries.single_zero_mul_coeff {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {r : R} {x : HahnSeries Γ R} {a : Γ} :
        ((HahnSeries.single 0) r * x).coeff a = r * x.coeff a
        @[simp]
        theorem HahnSeries.single_zero_mul_eq_smul {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [Semiring R] {r : R} {x : HahnSeries Γ R} :
        (HahnSeries.single 0) r * x = r x
        theorem HahnSeries.support_mul_subset_add_support {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {x : HahnSeries Γ R} {y : HahnSeries Γ R} :
        (x * y).support x.support + y.support
        theorem HahnSeries.mul_coeff_order_add_order {R : Type u_3} {Γ : Type u_6} [LinearOrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] (x : HahnSeries Γ R) (y : HahnSeries Γ R) :
        (x * y).coeff (x.order + y.order) = x.leadingCoeff * y.leadingCoeff
        Equations
        Equations
        Equations
        Equations
        • HahnSeries.instSemiring = Semiring.mk npowRecAuto
        Equations
        Equations
        Equations
        Equations
        Equations
        instance HahnSeries.instRing {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [Ring R] :
        Equations
        • HahnSeries.instRing = Ring.mk SubNegMonoid.zsmul
        Equations
        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
        Equations
        • =
        theorem HahnSeries.orderTop_add_orderTop_le_orderTop_mul {R : Type u_3} {Γ : Type u_6} [LinearOrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] {x : HahnSeries Γ R} {y : HahnSeries Γ R} :
        x.orderTop + y.orderTop (x * y).orderTop
        @[simp]
        theorem HahnSeries.order_mul {R : Type u_3} {Γ : Type u_6} [LinearOrderedCancelAddCommMonoid Γ] [NonUnitalNonAssocSemiring R] [NoZeroDivisors R] {x : HahnSeries Γ R} {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 : R} {s : R} :
        @[simp]
        theorem HahnSeries.single_pow {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [Semiring R] (a : Γ) (n : ) (r : R) :
        (HahnSeries.single a) r ^ n = (HahnSeries.single (n a)) (r ^ n)

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

        Equations
        • HahnSeries.C = { toFun := (HahnSeries.single 0), map_one' := , map_mul' := , map_zero' := , map_add' := }
        Instances For
          @[simp]
          theorem HahnSeries.C_apply {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonAssocSemiring R] (a : R) :
          HahnSeries.C a = (HahnSeries.single 0) a
          theorem HahnSeries.C_zero {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonAssocSemiring R] :
          HahnSeries.C 0 = 0
          theorem HahnSeries.C_one {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonAssocSemiring R] :
          HahnSeries.C 1 = 1
          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) :
          (HahnSeries.C a).map f = HahnSeries.C (f a)
          theorem HahnSeries.C_ne_zero {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonAssocSemiring R] {r : R} (h : r 0) :
          HahnSeries.C r 0
          theorem HahnSeries.order_C {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [NonAssocSemiring R] {r : R} :
          (HahnSeries.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} :
          HahnSeries.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 : HahnSeries Γ R) (y : HahnSeries Γ R) :
          theorem HahnSeries.embDomain_one {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] {Γ' : Type u_6} [OrderedCancelAddCommMonoid Γ'] [NonAssocSemiring R] (f : Γ ↪o Γ') (hf : f 0 = 0) :
          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
          Instances For
            @[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), (HahnSeries.embDomainRingHom f hfi hf) a = HahnSeries.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} :
            (HahnSeries.embDomainRingHom f hfi hf) (HahnSeries.C r) = HahnSeries.C r
            instance HahnSeries.instAlgebra {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [CommSemiring R] {A : Type u_6} [Semiring A] [Algebra R A] :
            Equations
            theorem HahnSeries.C_eq_algebraMap {Γ : Type u_1} {R : Type u_3} [OrderedCancelAddCommMonoid Γ] [CommSemiring R] :
            HahnSeries.C = algebraMap R (HahnSeries Γ 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 = HahnSeries.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
            Instances For
              @[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 : Γ'), ((HahnSeries.embDomainAlgHom f hfi hf) a).coeff b = if h : b f '' a.support then a.coeff (Classical.choose ) else 0