Documentation

Mathlib.RingTheory.HahnSeries.Summable

Summable families of Hahn Series #

We introduce a notion of formal summability for families of Hahn series, and define a formal sum function. This theory is applied to characterize invertible Hahn series whose coefficients are in a commutative domain.

Main Definitions #

Main results #

TODO #

References #

structure HahnSeries.SummableFamily (ฮ“ : Type u_8) (R : Type u_9) [PartialOrder ฮ“] [AddCommMonoid R] (ฮฑ : Type u_7) :
Type (max (max u_7 u_8) u_9)

A family of Hahn series whose formal coefficient-wise sum is a Hahn series. For each coefficient of the sum to be well-defined, we require that only finitely many series are nonzero at any given coefficient. For the formal sum to be a Hahn series, we require that the union of the supports of the constituent series is partially well-ordered.

Instances For
    instance HahnSeries.SummableFamily.instFunLike {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] :
    FunLike (SummableFamily ฮ“ R ฮฑ) ฮฑ (HahnSeries ฮ“ R)
    Equations
      @[simp]
      theorem HahnSeries.SummableFamily.coe_mk {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] (toFun : ฮฑ โ†’ HahnSeries ฮ“ R) (h1 : (โ‹ƒ (a : ฮฑ), (toFun a).support).IsPWO) (h2 : โˆ€ (g : ฮ“), {a : ฮฑ | (toFun a).coeff g โ‰  0}.Finite) :
      โ‡‘{ toFun := toFun, isPWO_iUnion_support' := h1, finite_co_support' := h2 } = toFun
      theorem HahnSeries.SummableFamily.isPWO_iUnion_support {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] (s : SummableFamily ฮ“ R ฮฑ) :
      (โ‹ƒ (a : ฮฑ), (s a).support).IsPWO
      theorem HahnSeries.SummableFamily.finite_co_support {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] (s : SummableFamily ฮ“ R ฮฑ) (g : ฮ“) :
      (Function.support fun (a : ฮฑ) => (s a).coeff g).Finite
      theorem HahnSeries.SummableFamily.ext {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {s t : SummableFamily ฮ“ R ฮฑ} (h : โˆ€ (a : ฮฑ), s a = t a) :
      s = t
      theorem HahnSeries.SummableFamily.ext_iff {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {s t : SummableFamily ฮ“ R ฮฑ} :
      s = t โ†” โˆ€ (a : ฮฑ), s a = t a
      instance HahnSeries.SummableFamily.instAdd {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] :
      Add (SummableFamily ฮ“ R ฮฑ)
      Equations
        instance HahnSeries.SummableFamily.instZero {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] :
        Zero (SummableFamily ฮ“ R ฮฑ)
        Equations
          instance HahnSeries.SummableFamily.instInhabited {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] :
          Inhabited (SummableFamily ฮ“ R ฮฑ)
          Equations
            @[simp]
            theorem HahnSeries.SummableFamily.coe_add {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] (s t : SummableFamily ฮ“ R ฮฑ) :
            โ‡‘(s + t) = โ‡‘s + โ‡‘t
            theorem HahnSeries.SummableFamily.add_apply {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {s t : SummableFamily ฮ“ R ฮฑ} {a : ฮฑ} :
            (s + t) a = s a + t a
            @[simp]
            theorem HahnSeries.SummableFamily.coe_zero {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] :
            โ‡‘0 = 0
            theorem HahnSeries.SummableFamily.zero_apply {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {a : ฮฑ} :
            0 a = 0
            instance HahnSeries.SummableFamily.instSMul {ฮ“ : Type u_1} {R : Type u_3} {ฮฒ : Type u_6} [PartialOrder ฮ“] [AddCommMonoid R] {M : Type u_7} [SMulZeroClass M R] :
            SMul M (SummableFamily ฮ“ R ฮฒ)
            Equations
              @[simp]
              theorem HahnSeries.SummableFamily.coe_smul' {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {M : Type u_7} [SMulZeroClass M R] (m : M) (s : SummableFamily ฮ“ R ฮฑ) :
              โ‡‘(m โ€ข s) = m โ€ข โ‡‘s
              theorem HahnSeries.SummableFamily.smul_apply' {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {M : Type u_7} [SMulZeroClass M R] (m : M) (s : SummableFamily ฮ“ R ฮฑ) (a : ฮฑ) :
              (m โ€ข s) a = m โ€ข s a
              instance HahnSeries.SummableFamily.instAddCommMonoid {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] :
              AddCommMonoid (SummableFamily ฮ“ R ฮฑ)
              Equations
                def HahnSeries.SummableFamily.coeff {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] (s : SummableFamily ฮ“ R ฮฑ) (g : ฮ“) :

                The coefficient function of a summable family, as a finsupp on the parameter type.

                Equations
                  Instances For
                    @[simp]
                    theorem HahnSeries.SummableFamily.coeff_support {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] (s : SummableFamily ฮ“ R ฮฑ) (g : ฮ“) :
                    (s.coeff g).support = โ‹ฏ.toFinset
                    @[simp]
                    theorem HahnSeries.SummableFamily.coeff_apply {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] (s : SummableFamily ฮ“ R ฮฑ) (g : ฮ“) (a : ฮฑ) :
                    (s.coeff g) a = (s a).coeff g
                    @[simp]
                    theorem HahnSeries.SummableFamily.coeff_def {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] (s : SummableFamily ฮ“ R ฮฑ) (a : ฮฑ) (g : ฮ“) :
                    (s.coeff g) a = (s a).coeff g
                    def HahnSeries.SummableFamily.hsum {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] (s : SummableFamily ฮ“ R ฮฑ) :
                    HahnSeries ฮ“ R

                    The infinite sum of a SummableFamily of Hahn series.

                    Equations
                      Instances For
                        @[simp]
                        theorem HahnSeries.SummableFamily.coeff_hsum {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {s : SummableFamily ฮ“ R ฮฑ} {g : ฮ“} :
                        s.hsum.coeff g = โˆ‘แถ  (i : ฮฑ), (s i).coeff g
                        @[simp]
                        theorem HahnSeries.SummableFamily.hsum_zero {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] :
                        hsum 0 = 0
                        theorem HahnSeries.SummableFamily.support_hsum_subset {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {s : SummableFamily ฮ“ R ฮฑ} :
                        s.hsum.support โІ โ‹ƒ (a : ฮฑ), (s a).support
                        @[simp]
                        theorem HahnSeries.SummableFamily.hsum_add {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {s t : SummableFamily ฮ“ R ฮฑ} :
                        (s + t).hsum = s.hsum + t.hsum
                        theorem HahnSeries.SummableFamily.coeff_hsum_eq_sum_of_subset {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {s : SummableFamily ฮ“ R ฮฑ} {g : ฮ“} {t : Finset ฮฑ} (h : {a : ฮฑ | (s a).coeff g โ‰  0} โІ โ†‘t) :
                        s.hsum.coeff g = โˆ‘ i โˆˆ t, (s i).coeff g
                        theorem HahnSeries.SummableFamily.coeff_hsum_eq_sum {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {s : SummableFamily ฮ“ R ฮฑ} {g : ฮ“} :
                        s.hsum.coeff g = โˆ‘ i โˆˆ (s.coeff g).support, (s i).coeff g
                        def HahnSeries.SummableFamily.single {ฮ“ : Type u_1} {R : Type u_3} [PartialOrder ฮ“] [AddCommMonoid R] {ฮน : Type u_7} [DecidableEq ฮน] (i : ฮน) (x : HahnSeries ฮ“ R) :
                        SummableFamily ฮ“ R ฮน

                        The summable family made of a single Hahn series.

                        Equations
                          Instances For
                            @[simp]
                            theorem HahnSeries.SummableFamily.single_toFun {ฮ“ : Type u_1} {R : Type u_3} [PartialOrder ฮ“] [AddCommMonoid R] {ฮน : Type u_7} [DecidableEq ฮน] (i : ฮน) (x : HahnSeries ฮ“ R) (j : ฮน) :
                            (single i x) j = Pi.single i x j
                            @[simp]
                            theorem HahnSeries.SummableFamily.hsum_single {ฮ“ : Type u_1} {R : Type u_3} [PartialOrder ฮ“] [AddCommMonoid R] {ฮน : Type u_7} [DecidableEq ฮน] (i : ฮน) (x : HahnSeries ฮ“ R) :
                            (single i x).hsum = x
                            def HahnSeries.SummableFamily.const {ฮ“ : Type u_1} {R : Type u_3} [PartialOrder ฮ“] [AddCommMonoid R] (ฮน : Type u_7) [Finite ฮน] (x : HahnSeries ฮ“ R) :
                            SummableFamily ฮ“ R ฮน

                            The summable family made of a constant Hahn series.

                            Equations
                              Instances For
                                @[simp]
                                theorem HahnSeries.SummableFamily.const_toFun {ฮ“ : Type u_1} {R : Type u_3} [PartialOrder ฮ“] [AddCommMonoid R] (ฮน : Type u_7) [Finite ฮน] (x : HahnSeries ฮ“ R) (xโœ : ฮน) :
                                (const ฮน x) xโœ = x
                                @[simp]
                                theorem HahnSeries.SummableFamily.hsum_unique {ฮ“ : Type u_1} {R : Type u_3} [PartialOrder ฮ“] [AddCommMonoid R] {ฮน : Type u_7} [Unique ฮน] (x : SummableFamily ฮ“ R ฮน) :
                                def HahnSeries.SummableFamily.Equiv {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [AddCommMonoid R] (e : ฮฑ โ‰ƒ ฮฒ) (s : SummableFamily ฮ“ R ฮฑ) :
                                SummableFamily ฮ“ R ฮฒ

                                A summable family induced by an equivalence of the parametrizing type.

                                Equations
                                  Instances For
                                    @[simp]
                                    theorem HahnSeries.SummableFamily.Equiv_toFun {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [AddCommMonoid R] (e : ฮฑ โ‰ƒ ฮฒ) (s : SummableFamily ฮ“ R ฮฑ) (b : ฮฒ) :
                                    (Equiv e s) b = s (e.symm b)
                                    @[simp]
                                    theorem HahnSeries.SummableFamily.hsum_equiv {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [AddCommMonoid R] (e : ฮฑ โ‰ƒ ฮฒ) (s : SummableFamily ฮ“ R ฮฑ) :
                                    (Equiv e s).hsum = s.hsum
                                    def HahnSeries.SummableFamily.smulFamily {ฮ“ : Type u_1} {R : Type u_3} {V : Type u_4} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] [AddCommMonoid V] [SMulWithZero R V] (f : ฮฑ โ†’ R) (s : SummableFamily ฮ“ V ฮฑ) :
                                    SummableFamily ฮ“ V ฮฑ

                                    The summable family given by multiplying every series in a summable family by a scalar.

                                    Equations
                                      Instances For
                                        @[simp]
                                        theorem HahnSeries.SummableFamily.smulFamily_toFun {ฮ“ : Type u_1} {R : Type u_3} {V : Type u_4} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] [AddCommMonoid V] [SMulWithZero R V] (f : ฮฑ โ†’ R) (s : SummableFamily ฮ“ V ฮฑ) (a : ฮฑ) :
                                        (smulFamily f s) a = f a โ€ข s a
                                        theorem HahnSeries.SummableFamily.hsum_smulFamily {ฮ“ : Type u_1} {R : Type u_3} {V : Type u_4} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] [AddCommMonoid V] [SMulWithZero R V] (f : ฮฑ โ†’ R) (s : SummableFamily ฮ“ V ฮฑ) (g : ฮ“) :
                                        (smulFamily f s).hsum.coeff g = โˆ‘แถ  (i : ฮฑ), f i โ€ข (s i).coeff g
                                        theorem HahnSeries.SummableFamily.le_hsum_support_mem {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {s : SummableFamily ฮ“ R ฮฑ} {g g' : ฮ“} (hg : โˆ€ (b : ฮฑ), โˆ€ g' โˆˆ (s b).support, g โ‰ค g') (hg' : g' โˆˆ s.hsum.support) :
                                        theorem HahnSeries.SummableFamily.hsum_orderTop_of_le {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {s : SummableFamily ฮ“ R ฮฑ} {g : ฮ“} {a : ฮฑ} (ha : โ†‘g = (s a).orderTop) (hg : โˆ€ (b : ฮฑ), โˆ€ g' โˆˆ (s b).support, g โ‰ค g') (hna : โˆ€ (b : ฮฑ), b โ‰  a โ†’ (s b).coeff g = 0) :
                                        s.hsum.orderTop = โ†‘g
                                        theorem HahnSeries.SummableFamily.hsum_leadingCoeff_of_le {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {s : SummableFamily ฮ“ R ฮฑ} {g : ฮ“} {a : ฮฑ} (ha : โ†‘g = (s a).orderTop) (hg : โˆ€ (b : ฮฑ), โˆ€ g' โˆˆ (s b).support, g โ‰ค g') (hna : โˆ€ (b : ฮฑ), b โ‰  a โ†’ (s b).coeff g = 0) :
                                        instance HahnSeries.SummableFamily.instNeg {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommGroup R] :
                                        Neg (SummableFamily ฮ“ R ฮฑ)
                                        Equations
                                          @[simp]
                                          theorem HahnSeries.SummableFamily.coe_neg {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommGroup R] (s : SummableFamily ฮ“ R ฮฑ) :
                                          โ‡‘(-s) = -โ‡‘s
                                          theorem HahnSeries.SummableFamily.neg_apply {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommGroup R] {s : SummableFamily ฮ“ R ฮฑ} {a : ฮฑ} :
                                          (-s) a = -s a
                                          instance HahnSeries.SummableFamily.instSub {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommGroup R] :
                                          Sub (SummableFamily ฮ“ R ฮฑ)
                                          Equations
                                            @[simp]
                                            theorem HahnSeries.SummableFamily.coe_sub {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommGroup R] (s t : SummableFamily ฮ“ R ฮฑ) :
                                            โ‡‘(s - t) = โ‡‘s - โ‡‘t
                                            theorem HahnSeries.SummableFamily.sub_apply {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommGroup R] {s t : SummableFamily ฮ“ R ฮฑ} {a : ฮฑ} :
                                            (s - t) a = s a - t a
                                            instance HahnSeries.SummableFamily.instAddCommGroup {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommGroup R] :
                                            AddCommGroup (SummableFamily ฮ“ R ฮฑ)
                                            Equations
                                              theorem HahnSeries.SummableFamily.smul_support_subset_prod {ฮ“ : Type u_1} {ฮ“' : Type u_2} {R : Type u_3} {V : Type u_4} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [PartialOrder ฮ“'] [AddCommMonoid V] [AddCommMonoid R] [SMulWithZero R V] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“' V ฮฒ) (gh : ฮ“ ร— ฮ“') :
                                              (Function.support fun (i : ฮฑ ร— ฮฒ) => (s i.1).coeff gh.1 โ€ข (t i.2).coeff gh.2) โІ โ†‘โ‹ฏ.toFinset
                                              theorem HahnSeries.SummableFamily.smul_support_finite {ฮ“ : Type u_1} {ฮ“' : Type u_2} {R : Type u_3} {V : Type u_4} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [PartialOrder ฮ“'] [AddCommMonoid V] [AddCommMonoid R] [SMulWithZero R V] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“' V ฮฒ) (gh : ฮ“ ร— ฮ“') :
                                              (Function.support fun (i : ฮฑ ร— ฮฒ) => (s i.1).coeff gh.1 โ€ข (t i.2).coeff gh.2).Finite
                                              theorem HahnSeries.SummableFamily.isPWO_iUnion_support_prod_smul {ฮ“ : Type u_1} {ฮ“' : Type u_2} {R : Type u_3} {V : Type u_4} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [PartialOrder ฮ“'] [AddCommMonoid V] [AddCommMonoid R] [SMulWithZero R V] [VAdd ฮ“ ฮ“'] [IsOrderedCancelVAdd ฮ“ ฮ“'] {s : ฮฑ โ†’ HahnSeries ฮ“ R} {t : ฮฒ โ†’ HahnSeries ฮ“' V} (hs : (โ‹ƒ (a : ฮฑ), (s a).support).IsPWO) (ht : (โ‹ƒ (b : ฮฒ), (t b).support).IsPWO) :
                                              (โ‹ƒ (a : ฮฑ ร— ฮฒ), ((fun (a : ฮฑ ร— ฮฒ) => (HahnModule.of R).symm (s a.1 โ€ข (HahnModule.of R) (t a.2))) a).support).IsPWO
                                              theorem HahnSeries.SummableFamily.finite_co_support_prod_smul {ฮ“ : Type u_1} {ฮ“' : Type u_2} {R : Type u_3} {V : Type u_4} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [PartialOrder ฮ“'] [AddCommMonoid V] [AddCommMonoid R] [SMulWithZero R V] [VAdd ฮ“ ฮ“'] [IsOrderedCancelVAdd ฮ“ ฮ“'] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“' V ฮฒ) (g : ฮ“') :
                                              Finite โ†‘{ab : ฮฑ ร— ฮฒ | ((fun (ab : ฮฑ ร— ฮฒ) => (HahnModule.of R).symm (s ab.1 โ€ข (HahnModule.of R) (t ab.2))) ab).coeff g โ‰  0}
                                              def HahnSeries.SummableFamily.smul {ฮ“ : Type u_1} {ฮ“' : Type u_2} {R : Type u_3} {V : Type u_4} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [PartialOrder ฮ“'] [AddCommMonoid V] [AddCommMonoid R] [SMulWithZero R V] [VAdd ฮ“ ฮ“'] [IsOrderedCancelVAdd ฮ“ ฮ“'] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“' V ฮฒ) :
                                              SummableFamily ฮ“' V (ฮฑ ร— ฮฒ)

                                              An elementwise scalar multiplication of one summable family on another.

                                              Equations
                                                Instances For
                                                  @[simp]
                                                  theorem HahnSeries.SummableFamily.smul_toFun {ฮ“ : Type u_1} {ฮ“' : Type u_2} {R : Type u_3} {V : Type u_4} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [PartialOrder ฮ“'] [AddCommMonoid V] [AddCommMonoid R] [SMulWithZero R V] [VAdd ฮ“ ฮ“'] [IsOrderedCancelVAdd ฮ“ ฮ“'] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“' V ฮฒ) (ab : ฮฑ ร— ฮฒ) :
                                                  (s.smul t) ab = (HahnModule.of R).symm (s ab.1 โ€ข (HahnModule.of R) (t ab.2))
                                                  theorem HahnSeries.SummableFamily.sum_vAddAntidiagonal_eq {ฮ“ : Type u_1} {ฮ“' : Type u_2} {R : Type u_3} {V : Type u_4} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [PartialOrder ฮ“'] [AddCommMonoid V] [AddCommMonoid R] [SMulWithZero R V] [VAdd ฮ“ ฮ“'] [IsOrderedCancelVAdd ฮ“ ฮ“'] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“' V ฮฒ) (g : ฮ“') (a : ฮฑ ร— ฮฒ) :
                                                  โˆ‘ x โˆˆ Finset.VAddAntidiagonal โ‹ฏ โ‹ฏ g, (s a.1).coeff x.1 โ€ข (t a.2).coeff x.2 = โˆ‘ x โˆˆ Finset.VAddAntidiagonal โ‹ฏ โ‹ฏ g, (s a.1).coeff x.1 โ€ข (t a.2).coeff x.2
                                                  theorem HahnSeries.SummableFamily.coeff_smul {ฮ“ : Type u_1} {ฮ“' : Type u_2} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [PartialOrder ฮ“'] [VAdd ฮ“ ฮ“'] [IsOrderedCancelVAdd ฮ“ ฮ“'] {R : Type u_7} {V : Type u_8} [Semiring R] [AddCommMonoid V] [Module R V] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“' V ฮฒ) (g : ฮ“') :
                                                  (s.smul t).hsum.coeff g = โˆ‘ gh โˆˆ Finset.VAddAntidiagonal โ‹ฏ โ‹ฏ g, s.hsum.coeff gh.1 โ€ข t.hsum.coeff gh.2
                                                  theorem HahnSeries.SummableFamily.smul_hsum {ฮ“ : Type u_1} {ฮ“' : Type u_2} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [PartialOrder ฮ“'] [VAdd ฮ“ ฮ“'] [IsOrderedCancelVAdd ฮ“ ฮ“'] {R : Type u_7} {V : Type u_8} [Semiring R] [AddCommMonoid V] [Module R V] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“' V ฮฒ) :
                                                  instance HahnSeries.SummableFamily.instSMul_1 {ฮ“ : Type u_1} {ฮ“' : Type u_2} {R : Type u_3} {V : Type u_4} {ฮฒ : Type u_6} [PartialOrder ฮ“] [PartialOrder ฮ“'] [AddCommMonoid V] [AddCommMonoid R] [SMulWithZero R V] [VAdd ฮ“ ฮ“'] [IsOrderedCancelVAdd ฮ“ ฮ“'] :
                                                  SMul (HahnSeries ฮ“ R) (SummableFamily ฮ“' V ฮฒ)
                                                  Equations
                                                    theorem HahnSeries.SummableFamily.smul_eq {ฮ“ : Type u_1} {ฮ“' : Type u_2} {R : Type u_3} {V : Type u_4} {ฮฒ : Type u_6} [PartialOrder ฮ“] [PartialOrder ฮ“'] [AddCommMonoid V] [AddCommMonoid R] [SMulWithZero R V] [VAdd ฮ“ ฮ“'] [IsOrderedCancelVAdd ฮ“ ฮ“'] {x : HahnSeries ฮ“ R} {t : SummableFamily ฮ“' V ฮฒ} :
                                                    @[simp]
                                                    theorem HahnSeries.SummableFamily.smul_apply {ฮ“ : Type u_1} {ฮ“' : Type u_2} {R : Type u_3} {V : Type u_4} {ฮฑ : Type u_5} [PartialOrder ฮ“] [PartialOrder ฮ“'] [AddCommMonoid V] [AddCommMonoid R] [SMulWithZero R V] [VAdd ฮ“ ฮ“'] [IsOrderedCancelVAdd ฮ“ ฮ“'] {x : HahnSeries ฮ“ R} {s : SummableFamily ฮ“' V ฮฑ} {a : ฮฑ} :
                                                    @[simp]
                                                    theorem HahnSeries.SummableFamily.hsum_smul_module {ฮ“ : Type u_1} {ฮ“' : Type u_2} {ฮฑ : Type u_5} [PartialOrder ฮ“] [PartialOrder ฮ“'] [VAdd ฮ“ ฮ“'] [IsOrderedCancelVAdd ฮ“ ฮ“'] {R : Type u_7} {V : Type u_8} [Semiring R] [AddCommMonoid V] [Module R V] {x : HahnSeries ฮ“ R} {s : SummableFamily ฮ“' V ฮฑ} :
                                                    instance HahnSeries.SummableFamily.instModule {ฮ“ : Type u_1} {ฮ“' : Type u_2} {R : Type u_3} {V : Type u_4} {ฮฑ : Type u_5} [AddCommMonoid ฮ“] [PartialOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [PartialOrder ฮ“'] [AddAction ฮ“ ฮ“'] [IsOrderedCancelVAdd ฮ“ ฮ“'] [Semiring R] [AddCommMonoid V] [Module R V] :
                                                    Module (HahnSeries ฮ“ R) (SummableFamily ฮ“' V ฮฑ)
                                                    Equations
                                                      theorem HahnSeries.SummableFamily.hsum_smul {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [AddCommMonoid ฮ“] [PartialOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [Semiring R] {x : HahnSeries ฮ“ R} {s : SummableFamily ฮ“ R ฮฑ} :
                                                      (x โ€ข s).hsum = x * s.hsum
                                                      def HahnSeries.SummableFamily.lsum {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [AddCommMonoid ฮ“] [PartialOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [Semiring R] :

                                                      The summation of a summable_family as a LinearMap.

                                                      Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem HahnSeries.SummableFamily.lsum_apply {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [AddCommMonoid ฮ“] [PartialOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [Semiring R] (s : SummableFamily ฮ“ R ฮฑ) :
                                                          lsum s = s.hsum
                                                          @[simp]
                                                          theorem HahnSeries.SummableFamily.hsum_sub {ฮ“ : Type u_1} {ฮฑ : Type u_5} [AddCommMonoid ฮ“] [PartialOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] {R : Type u_7} [Ring R] {s t : SummableFamily ฮ“ R ฮฑ} :
                                                          (s - t).hsum = s.hsum - t.hsum
                                                          theorem HahnSeries.SummableFamily.isPWO_iUnion_support_prod_mul {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [AddCommMonoid ฮ“] [PartialOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [Semiring R] {s : ฮฑ โ†’ HahnSeries ฮ“ R} {t : ฮฒ โ†’ HahnSeries ฮ“ R} (hs : (โ‹ƒ (a : ฮฑ), (s a).support).IsPWO) (ht : (โ‹ƒ (b : ฮฒ), (t b).support).IsPWO) :
                                                          (โ‹ƒ (a : ฮฑ ร— ฮฒ), ((fun (a : ฮฑ ร— ฮฒ) => s a.1 * t a.2) a).support).IsPWO
                                                          theorem HahnSeries.SummableFamily.finite_co_support_prod_mul {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [AddCommMonoid ฮ“] [PartialOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [Semiring R] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“ R ฮฒ) (g : ฮ“) :
                                                          Finite โ†‘{a : ฮฑ ร— ฮฒ | ((fun (a : ฮฑ ร— ฮฒ) => s a.1 * t a.2) a).coeff g โ‰  0}
                                                          def HahnSeries.SummableFamily.mul {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [AddCommMonoid ฮ“] [PartialOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [Semiring R] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“ R ฮฒ) :
                                                          SummableFamily ฮ“ R (ฮฑ ร— ฮฒ)

                                                          A summable family given by pointwise multiplication of a pair of summable families.

                                                          Equations
                                                            Instances For
                                                              @[simp]
                                                              theorem HahnSeries.SummableFamily.mul_toFun {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [AddCommMonoid ฮ“] [PartialOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [Semiring R] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“ R ฮฒ) (a : ฮฑ ร— ฮฒ) :
                                                              (s.mul t) a = s a.1 * t a.2
                                                              theorem HahnSeries.SummableFamily.mul_eq_smul {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [AddCommMonoid ฮ“] [PartialOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [Semiring R] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“ R ฮฒ) :
                                                              s.mul t = s.smul t
                                                              theorem HahnSeries.SummableFamily.coeff_hsum_mul {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [AddCommMonoid ฮ“] [PartialOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [Semiring R] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“ R ฮฒ) (g : ฮ“) :
                                                              (s.mul t).hsum.coeff g = โˆ‘ gh โˆˆ Finset.addAntidiagonal โ‹ฏ โ‹ฏ g, s.hsum.coeff gh.1 * t.hsum.coeff gh.2
                                                              theorem HahnSeries.SummableFamily.hsum_mul {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [AddCommMonoid ฮ“] [PartialOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [Semiring R] (s : SummableFamily ฮ“ R ฮฑ) (t : SummableFamily ฮ“ R ฮฒ) :
                                                              (s.mul t).hsum = s.hsum * t.hsum
                                                              def HahnSeries.SummableFamily.ofFinsupp {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] (f : ฮฑ โ†’โ‚€ HahnSeries ฮ“ R) :
                                                              SummableFamily ฮ“ R ฮฑ

                                                              A family with only finitely many nonzero elements is summable.

                                                              Equations
                                                                Instances For
                                                                  @[simp]
                                                                  theorem HahnSeries.SummableFamily.coe_ofFinsupp {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {f : ฮฑ โ†’โ‚€ HahnSeries ฮ“ R} :
                                                                  โ‡‘(ofFinsupp f) = โ‡‘f
                                                                  @[simp]
                                                                  theorem HahnSeries.SummableFamily.hsum_ofFinsupp {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} [PartialOrder ฮ“] [AddCommMonoid R] {f : ฮฑ โ†’โ‚€ HahnSeries ฮ“ R} :
                                                                  (ofFinsupp f).hsum = f.sum fun (x : ฮฑ) => id
                                                                  def HahnSeries.SummableFamily.embDomain {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [AddCommMonoid R] (s : SummableFamily ฮ“ R ฮฑ) (f : ฮฑ โ†ช ฮฒ) :
                                                                  SummableFamily ฮ“ R ฮฒ

                                                                  A summable family can be reindexed by an embedding without changing its sum.

                                                                  Equations
                                                                    Instances For
                                                                      theorem HahnSeries.SummableFamily.embDomain_apply {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [AddCommMonoid R] (s : SummableFamily ฮ“ R ฮฑ) (f : ฮฑ โ†ช ฮฒ) {b : ฮฒ} :
                                                                      (s.embDomain f) b = if h : b โˆˆ Set.range โ‡‘f then s (Classical.choose h) else 0
                                                                      @[simp]
                                                                      theorem HahnSeries.SummableFamily.embDomain_image {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [AddCommMonoid R] (s : SummableFamily ฮ“ R ฮฑ) (f : ฮฑ โ†ช ฮฒ) {a : ฮฑ} :
                                                                      (s.embDomain f) (f a) = s a
                                                                      @[simp]
                                                                      theorem HahnSeries.SummableFamily.embDomain_notin_range {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [AddCommMonoid R] (s : SummableFamily ฮ“ R ฮฑ) (f : ฮฑ โ†ช ฮฒ) {b : ฮฒ} (h : b โˆ‰ Set.range โ‡‘f) :
                                                                      (s.embDomain f) b = 0
                                                                      @[simp]
                                                                      theorem HahnSeries.SummableFamily.hsum_embDomain {ฮ“ : Type u_1} {R : Type u_3} {ฮฑ : Type u_5} {ฮฒ : Type u_6} [PartialOrder ฮ“] [AddCommMonoid R] (s : SummableFamily ฮ“ R ฮฑ) (f : ฮฑ โ†ช ฮฒ) :
                                                                      theorem HahnSeries.SummableFamily.isPWO_iUnion_support_powers {ฮ“ : Type u_1} {R : Type u_3} [AddCommMonoid ฮ“] [LinearOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [Semiring R] {x : HahnSeries ฮ“ R} (hx : 0 โ‰ค x.order) :
                                                                      (โ‹ƒ (n : โ„•), (x ^ n).support).IsPWO
                                                                      theorem HahnSeries.SummableFamily.pow_finite_co_support {ฮ“ : Type u_1} {R : Type u_3} [AddCommMonoid ฮ“] [LinearOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [CommRing R] {x : HahnSeries ฮ“ R} (hx : 0 < x.orderTop) (g : ฮ“) :
                                                                      {a : โ„• | ((fun (n : โ„•) => x ^ n) a).coeff g โ‰  0}.Finite
                                                                      def HahnSeries.SummableFamily.powers {ฮ“ : Type u_1} {R : Type u_3} [AddCommMonoid ฮ“] [LinearOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [CommRing R] (x : HahnSeries ฮ“ R) :

                                                                      A summable family of powers of a Hahn series x. If x has non-positive orderTop, then return a junk value given by pretending x = 0.

                                                                      Equations
                                                                        Instances For
                                                                          @[simp]
                                                                          theorem HahnSeries.SummableFamily.powers_toFun {ฮ“ : Type u_1} {R : Type u_3} [AddCommMonoid ฮ“] [LinearOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [CommRing R] (x : HahnSeries ฮ“ R) (n : โ„•) :
                                                                          (powers x) n = (if 0 < x.orderTop then x else 0) ^ n
                                                                          theorem HahnSeries.SummableFamily.powers_of_orderTop_pos {ฮ“ : Type u_1} {R : Type u_3} [AddCommMonoid ฮ“] [LinearOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [CommRing R] {x : HahnSeries ฮ“ R} (hx : 0 < x.orderTop) (n : โ„•) :
                                                                          (powers x) n = x ^ n
                                                                          @[simp]
                                                                          theorem HahnSeries.SummableFamily.coe_powers {ฮ“ : Type u_1} {R : Type u_3} [AddCommMonoid ฮ“] [LinearOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [CommRing R] {x : HahnSeries ฮ“ R} (hx : 0 < x.orderTop) :
                                                                          โ‡‘(powers x) = HPow.hPow x
                                                                          theorem HahnSeries.one_minus_single_neg_mul {ฮ“ : Type u_1} {R : Type u_3} [AddCommMonoid ฮ“] [LinearOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [CommRing R] {x y : HahnSeries ฮ“ R} {r : R} (hr : r * x.leadingCoeff = 1) (hxy : x = y + (single x.order) x.leadingCoeff) (oinv : ฮ“) (hxo : oinv + x.order = 0) :
                                                                          1 - (single oinv) r * x = -((single oinv) r * y)
                                                                          theorem HahnSeries.unit_aux {ฮ“ : Type u_1} {R : Type u_3} [AddCommMonoid ฮ“] [LinearOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [CommRing R] (x : HahnSeries ฮ“ R) {r : R} (hr : r * x.leadingCoeff = 1) (oinv : ฮ“) (hxo : oinv + x.order = 0) :
                                                                          0 < (1 - (single oinv) r * x).orderTop
                                                                          theorem HahnSeries.isUnit_of_orderTop_pos {ฮ“ : Type u_1} {R : Type u_3} [AddCommMonoid ฮ“] [LinearOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [CommRing R] {x : HahnSeries ฮ“ R} (h : 0 < (x - 1).orderTop) :
                                                                          def HahnSeries.toOrderTopSubOnePos {ฮ“ : Type u_1} {R : Type u_3} [AddCommMonoid ฮ“] [LinearOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [CommRing R] {x : HahnSeries ฮ“ R} (h : 0 < (x - 1).orderTop) :
                                                                          โ†ฅ(orderTopSubOnePos ฮ“ R)

                                                                          Make an element of orderTopSubOnePos

                                                                          Equations
                                                                            Instances For
                                                                              @[simp]
                                                                              theorem HahnSeries.val_inv_toOrderTopSubOnePos_coe {ฮ“ : Type u_1} {R : Type u_3} [AddCommMonoid ฮ“] [LinearOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [CommRing R] {x : HahnSeries ฮ“ R} (h : 0 < (x - 1).orderTop) :
                                                                              โ†‘(โ†‘(toOrderTopSubOnePos h))โปยน = โ‹ฏ.unit.inv
                                                                              @[simp]
                                                                              theorem HahnSeries.val_toOrderTopSubOnePos_coe {ฮ“ : Type u_1} {R : Type u_3} [AddCommMonoid ฮ“] [LinearOrder ฮ“] [IsOrderedCancelAddMonoid ฮ“] [CommRing R] {x : HahnSeries ฮ“ R} (h : 0 < (x - 1).orderTop) :
                                                                              โ†‘โ†‘(toOrderTopSubOnePos h) = x
                                                                              instance HahnSeries.instDivInvMonoid {ฮ“ : Type u_1} {R : Type u_3} [AddCommGroup ฮ“] [LinearOrder ฮ“] [IsOrderedAddMonoid ฮ“] [Field R] :
                                                                              Equations
                                                                                @[simp]
                                                                                theorem HahnSeries.inv_single {ฮ“ : Type u_1} {R : Type u_3} [AddCommGroup ฮ“] [LinearOrder ฮ“] [IsOrderedAddMonoid ฮ“] [Field R] (a : ฮ“) (r : R) :
                                                                                @[simp]
                                                                                theorem HahnSeries.single_div_single {ฮ“ : Type u_1} {R : Type u_3} [AddCommGroup ฮ“] [LinearOrder ฮ“] [IsOrderedAddMonoid ฮ“] [Field R] (a b : ฮ“) (r s : R) :
                                                                                (single a) r / (single b) s = (single (a - b)) (r / s)
                                                                                instance HahnSeries.instField {ฮ“ : Type u_1} {R : Type u_3} [AddCommGroup ฮ“] [LinearOrder ฮ“] [IsOrderedAddMonoid ฮ“] [Field R] :
                                                                                Field (HahnSeries ฮ“ R)
                                                                                Equations