Documentation

Mathlib.RingTheory.HahnSeries.Addition

Additive properties of Hahn series #

If Γ is ordered and R has zero, then 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 R⟦Γ⟧. When R has an addition operation, R⟦Γ⟧ also has addition by adding coefficients.

Main Definitions #

References #

instance HahnSeries.instSMul {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] {V : Type u_8} [Zero V] [SMulZeroClass R V] :
SMul R (HahnSeries Γ V)
Equations
    theorem HahnSeries.support_smul_subset {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] {V : Type u_8} [Zero V] [SMulZeroClass R V] (r : R) (x : HahnSeries Γ V) :
    @[simp]
    theorem HahnSeries.coeff_smul' {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] {V : Type u_8} [Zero V] [SMulZeroClass R V] (r : R) (x : HahnSeries Γ V) :
    (r x).coeff = r x.coeff
    @[simp]
    theorem HahnSeries.coeff_smul {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] {V : Type u_8} [Zero V] [SMulZeroClass R V] {r : R} {x : HahnSeries Γ V} {a : Γ} :
    (r x).coeff a = r x.coeff a
    instance HahnSeries.instSMulZeroClass {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] {V : Type u_8} [Zero V] [SMulZeroClass R V] :
    Equations
      theorem HahnSeries.orderTop_smul_not_lt {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] {V : Type u_8} [Zero V] [SMulZeroClass R V] (r : R) (x : HahnSeries Γ V) :
      theorem HahnSeries.orderTop_le_orderTop_smul {R : Type u_3} {V : Type u_8} [Zero V] [SMulZeroClass R V] {Γ : Type u_9} [LinearOrder Γ] (r : R) (x : HahnSeries Γ V) :
      theorem HahnSeries.order_smul_not_lt {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] {V : Type u_8} [Zero V] [SMulZeroClass R V] [Zero Γ] (r : R) (x : HahnSeries Γ V) (h : r x 0) :
      ¬(r x).order < x.order
      theorem HahnSeries.le_order_smul {R : Type u_3} {V : Type u_8} [Zero V] [SMulZeroClass R V] {Γ : Type u_9} [Zero Γ] [LinearOrder Γ] (r : R) (x : HahnSeries Γ V) (h : r x 0) :
      x.order (r x).order
      theorem HahnSeries.truncLT_smul {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] {V : Type u_8} [Zero V] [SMulZeroClass R V] [DecidableLT Γ] (c : Γ) (r : R) (x : HahnSeries Γ V) :
      (truncLT c) (r x) = r (truncLT c) x
      instance HahnSeries.instAdd {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] :
      Equations
        @[simp]
        theorem HahnSeries.coeff_add' {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] (x y : HahnSeries Γ R) :
        (x + y).coeff = x.coeff + y.coeff
        theorem HahnSeries.coeff_add {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] {x y : HahnSeries Γ R} {a : Γ} :
        (x + y).coeff a = x.coeff a + y.coeff a
        @[simp]
        theorem HahnSeries.single_add {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] (a : Γ) (r s : R) :
        (single a) (r + s) = (single a) r + (single a) s
        instance HahnSeries.instAddMonoid {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] :
        Equations
          theorem HahnSeries.coeff_nsmul {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] {x : HahnSeries Γ R} {n : } :
          (n x).coeff = n x.coeff
          @[simp]
          theorem HahnSeries.map_add {Γ : Type u_1} {R : Type u_3} {S : Type u_4} [PartialOrder Γ] [AddMonoid R] [AddMonoid S] (f : R →+ S) {x y : HahnSeries Γ R} :
          (x + y).map f = x.map f + y.map f

          addOppositeEquiv is an additive monoid isomorphism between Hahn series over Γ with coefficients in the opposite additive monoid Rᵃᵒᵖ and the additive opposite of Hahn series over Γ with coefficients R.

          Equations
            Instances For
              theorem HahnSeries.addOppositeEquiv_apply {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] (x : HahnSeries Γ Rᵃᵒᵖ) :
              addOppositeEquiv x = AddOpposite.op { coeff := fun (a : Γ) => AddOpposite.unop (x.coeff a), isPWO_support' := }
              theorem HahnSeries.min_le_min_add {R : Type u_3} [AddMonoid R] {Γ : Type u_8} [LinearOrder Γ] {x y : HahnSeries Γ R} (hx : x 0) (hy : y 0) (hxy : x + y 0) :
              min (.min ) (.min ) .min
              theorem HahnSeries.min_order_le_order_add {R : Type u_3} [AddMonoid R] {Γ : Type u_8} [Zero Γ] [LinearOrder Γ] {x y : HahnSeries Γ R} (hxy : x + y 0) :
              min x.order y.order (x + y).order
              theorem HahnSeries.orderTop_add_eq_left {R : Type u_3} [AddMonoid R] {Γ : Type u_8} [LinearOrder Γ] {x y : HahnSeries Γ R} (hxy : x.orderTop < y.orderTop) :
              theorem HahnSeries.orderTop_add_eq_right {R : Type u_3} [AddMonoid R] {Γ : Type u_8} [LinearOrder Γ] {x y : HahnSeries Γ R} (hxy : y.orderTop < x.orderTop) :
              theorem HahnSeries.ne_zero_of_eq_add_single {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] [Zero Γ] {x y : HahnSeries Γ R} (hxy : x = y + (single x.order) x.leadingCoeff) (hy : y 0) :
              x 0
              theorem HahnSeries.order_lt_order_of_eq_add_single {R : Type u_8} {Γ : Type u_9} [LinearOrder Γ] [Zero Γ] [AddCancelCommMonoid R] {x y : HahnSeries Γ R} (hxy : x = y + (single x.order) x.leadingCoeff) (hy : y 0) :
              def HahnSeries.single.addMonoidHom {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] (a : Γ) :

              single as an additive monoid/group homomorphism

              Equations
                Instances For
                  @[simp]
                  theorem HahnSeries.single.addMonoidHom_apply_coeff {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] (a : Γ) (r : R) (j : Γ) :
                  ((addMonoidHom a) r).coeff j = Pi.single a r j
                  def HahnSeries.coeff.addMonoidHom {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] (g : Γ) :

                  coeff g as an additive monoid/group homomorphism

                  Equations
                    Instances For
                      @[simp]
                      theorem HahnSeries.coeff.addMonoidHom_apply {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] (g : Γ) (f : HahnSeries Γ R) :
                      (addMonoidHom g) f = f.coeff g
                      theorem HahnSeries.embDomain_add {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] [PartialOrder Γ'] (f : Γ ↪o Γ') (x y : HahnSeries Γ R) :
                      embDomain f (x + y) = embDomain f x + embDomain f y
                      theorem HahnSeries.truncLT_add {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddMonoid R] [DecidableLT Γ] (c : Γ) (x y : HahnSeries Γ R) :
                      (truncLT c) (x + y) = (truncLT c) x + (truncLT c) y
                      @[simp]
                      theorem HahnSeries.coeff_sum {Γ : Type u_1} {R : Type u_3} {α : Type u_7} [PartialOrder Γ] [AddCommMonoid R] {s : Finset α} {x : αHahnSeries Γ R} (g : Γ) :
                      (∑ is, x i).coeff g = is, (x i).coeff g
                      instance HahnSeries.instNeg {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [NegZeroClass R] :
                      Equations
                        @[simp]
                        theorem HahnSeries.coeff_neg' {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [NegZeroClass R] (x : HahnSeries Γ R) :
                        theorem HahnSeries.coeff_neg {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [NegZeroClass R] {x : HahnSeries Γ R} {a : Γ} :
                        (-x).coeff a = -x.coeff a
                        instance HahnSeries.instSub {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddGroup R] :
                        Equations
                          @[simp]
                          theorem HahnSeries.coeff_sub' {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddGroup R] (x y : HahnSeries Γ R) :
                          (x - y).coeff = x.coeff - y.coeff
                          theorem HahnSeries.coeff_sub {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddGroup R] {x y : HahnSeries Γ R} {a : Γ} :
                          (x - y).coeff a = x.coeff a - y.coeff a
                          instance HahnSeries.instAddGroup {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddGroup R] :
                          Equations
                            @[simp]
                            theorem HahnSeries.single_sub {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddGroup R] (a : Γ) (r s : R) :
                            (single a) (r - s) = (single a) r - (single a) s
                            @[simp]
                            theorem HahnSeries.single_neg {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddGroup R] (a : Γ) (r : R) :
                            (single a) (-r) = -(single a) r
                            @[simp]
                            theorem HahnSeries.support_neg {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddGroup R] {x : HahnSeries Γ R} :
                            @[simp]
                            theorem HahnSeries.map_neg {Γ : Type u_1} {R : Type u_3} {S : Type u_4} [PartialOrder Γ] [AddGroup R] [AddGroup S] (f : R →+ S) {x : HahnSeries Γ R} :
                            (-x).map f = -x.map f
                            @[simp]
                            theorem HahnSeries.orderTop_neg {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddGroup R] {x : HahnSeries Γ R} :
                            @[simp]
                            theorem HahnSeries.order_neg {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddGroup R] [Zero Γ] {f : HahnSeries Γ R} :
                            (-f).order = f.order
                            @[simp]
                            theorem HahnSeries.map_sub {Γ : Type u_1} {R : Type u_3} {S : Type u_4} [PartialOrder Γ] [AddGroup R] [AddGroup S] (f : R →+ S) {x y : HahnSeries Γ R} :
                            (x - y).map f = x.map f - y.map f
                            theorem HahnSeries.orderTop_sub {R : Type u_3} [AddGroup R] {Γ : Type u_8} [LinearOrder Γ] {x y : HahnSeries Γ R} (hxy : x.orderTop < y.orderTop) :
                            theorem HahnSeries.leadingCoeff_sub {R : Type u_3} [AddGroup R] {Γ : Type u_8} [LinearOrder Γ] {x y : HahnSeries Γ R} (hxy : x.orderTop < y.orderTop) :
                            theorem HahnSeries.orderTop_sub_ne {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] [AddGroup R] {x y : HahnSeries Γ R} {g : Γ} (hxg : x.orderTop = g) (hyg : y.orderTop = g) (hxyc : x.leadingCoeff = y.leadingCoeff) :
                            (x - y).orderTop g
                            theorem HahnSeries.le_orderTop_of_leadingCoeff_eq {R : Type u_3} [AddGroup R] {Γ : Type u_8} [LinearOrder Γ] {x y : HahnSeries Γ R} {g : Γ} (hxg : x.orderTop = g) (hyg : y.orderTop = g) (hxyc : x.leadingCoeff = y.leadingCoeff) :
                            g < (x - y).orderTop
                            instance HahnSeries.instDistribMulAction {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] {V : Type u_8} [Monoid R] [AddMonoid V] [DistribMulAction R V] :
                            Equations
                              instance HahnSeries.instIsScalarTower {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] {V : Type u_8} [Monoid R] [AddMonoid V] [DistribMulAction R V] {S : Type u_9} [Monoid S] [DistribMulAction S V] [SMul R S] [IsScalarTower R S V] :
                              instance HahnSeries.instSMulCommClass {Γ : Type u_1} {R : Type u_3} [PartialOrder Γ] {V : Type u_8} [Monoid R] [AddMonoid V] [DistribMulAction R V] {S : Type u_9} [Monoid S] [DistribMulAction S V] [SMulCommClass R S V] :
                              instance HahnSeries.instModule {Γ : Type u_1} {R : Type u_3} {V : Type u_6} [PartialOrder Γ] [Semiring R] [AddCommMonoid V] [Module R V] :
                              Equations
                                def HahnSeries.single.linearMap {Γ : Type u_1} {R : Type u_3} {V : Type u_6} [PartialOrder Γ] [Semiring R] [AddCommMonoid V] [Module R V] (a : Γ) :

                                single as a linear map

                                Equations
                                  Instances For
                                    @[simp]
                                    theorem HahnSeries.single.linearMap_apply {Γ : Type u_1} {R : Type u_3} {V : Type u_6} [PartialOrder Γ] [Semiring R] [AddCommMonoid V] [Module R V] (a : Γ) (a✝ : V) :
                                    (linearMap a) a✝ = (↑(addMonoidHom a)).toFun a✝
                                    def HahnSeries.coeff.linearMap {Γ : Type u_1} {R : Type u_3} {V : Type u_6} [PartialOrder Γ] [Semiring R] [AddCommMonoid V] [Module R V] (g : Γ) :

                                    coeff g as a linear map

                                    Equations
                                      Instances For
                                        @[simp]
                                        theorem HahnSeries.coeff.linearMap_apply {Γ : Type u_1} {R : Type u_3} {V : Type u_6} [PartialOrder Γ] [Semiring R] [AddCommMonoid V] [Module R V] (g : Γ) (a✝ : HahnSeries Γ V) :
                                        (linearMap g) a✝ = (↑(addMonoidHom g)).toFun a✝
                                        @[simp]
                                        theorem HahnSeries.map_smul {Γ : Type u_1} {R : Type u_3} {U : Type u_5} {V : Type u_6} [PartialOrder Γ] [Semiring R] [AddCommMonoid V] [Module R V] [AddCommMonoid U] [Module R U] (f : U →ₗ[R] V) {r : R} {x : HahnSeries Γ U} :
                                        (r x).map f = r x.map f
                                        def HahnSeries.ofFinsuppLinearMap {Γ : Type u_1} (R : Type u_3) {V : Type u_6} [PartialOrder Γ] [Semiring R] [AddCommMonoid V] [Module R V] :

                                        ofFinsupp as a linear map.

                                        Equations
                                          Instances For
                                            @[simp]
                                            theorem HahnSeries.coeff_ofFinsuppLinearMap {Γ : Type u_1} (R : Type u_3) {V : Type u_6} [PartialOrder Γ] [Semiring R] [AddCommMonoid V] [Module R V] (f : Γ →₀ V) (a : Γ) :
                                            ((ofFinsuppLinearMap R) f).coeff a = f a
                                            theorem HahnSeries.embDomain_smul {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} [PartialOrder Γ] [Semiring R] [PartialOrder Γ'] (f : Γ ↪o Γ') (r : R) (x : HahnSeries Γ R) :
                                            embDomain f (r x) = r embDomain f x
                                            def HahnSeries.embDomainLinearMap {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} [PartialOrder Γ] [Semiring R] [PartialOrder Γ'] (f : Γ ↪o Γ') :

                                            Extending the domain of Hahn series is a linear map.

                                            Equations
                                              Instances For
                                                @[simp]
                                                theorem HahnSeries.embDomainLinearMap_apply {Γ : Type u_1} {Γ' : Type u_2} {R : Type u_3} [PartialOrder Γ] [Semiring R] [PartialOrder Γ'] (f : Γ ↪o Γ') (a✝ : HahnSeries Γ R) :
                                                def HahnSeries.truncLTLinearMap {Γ : Type u_1} (R : Type u_3) {V : Type u_6} [PartialOrder Γ] [Semiring R] [AddCommMonoid V] [Module R V] [DecidableLT Γ] (c : Γ) :

                                                HahnSeries.truncLT as a linear map.

                                                Equations
                                                  Instances For
                                                    @[simp]
                                                    theorem HahnSeries.coe_truncLTLinearMap {Γ : Type u_1} (R : Type u_3) {V : Type u_6} [PartialOrder Γ] [Semiring R] [AddCommMonoid V] [Module R V] [DecidableLT Γ] (c : Γ) :
                                                    (truncLTLinearMap R c) = (truncLT c)