Documentation

TauCeti.RingTheory.NovikovSeries.Multiplication

Convolution of Novikov series #

Let H be an additive monoid with a period homomorphism N : H →+ ℝ. The product of two Novikov series a and b is their convolution (a * b).coeff h = ∑ a.coeff u * b.coeff v, the sum running over the pairs (u, v) with u + v = h and both coefficients nonzero. There are only finitely many such pairs (NovikovSeries.finite_setOf_add_eq), because the periods of each support are bounded below and only finitely many exponents of a series lie below any period cutoff. With this product the Novikov series form a ring, the Novikov completion of the group ring R[H] along the period filtration: it is the coefficient ring of the Novikov complex of a closed one-form and of capped Hamiltonian Floer complexes.

All ring laws are proved by finite-support arguments. The basic tool is NovikovSeries.coeff_mul_eq_sum: a coefficient of a product may be computed as a sum over any finite set of pairs adding up to the exponent which contains every pair of support exponents. Associativity rests on the uniform cutoff lemma NovikovSeries.finite_setOf_period_add_add_lt for triples of support exponents, from TauCeti.RingTheory.NovikovSeries.Basic.

The arrangement of the instances follows Mathlib's HahnSeries in Mathlib/RingTheory/HahnSeries/Multiplication.lean; the support arguments are different, since H carries no order here.

Main definitions #

Main results #

References #

@[instance_reducible]
noncomputable instance TauCeti.NovikovSeries.instMul {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] :

The convolution product of Novikov series: the coefficient of a * b at h is the finite sum of a.coeff u * b.coeff v over the pairs (u, v) of support exponents with u + v = h.

theorem TauCeti.NovikovSeries.coeff_mul {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] (a b : NovikovSeries R H N) (h : H) :
(a * b).coeff h = ∑ p ∈ ⋯.toFinset, a.coeff p.1 * b.coeff p.2

The coefficient of a * b at h, as a sum over the finite set of pairs of support exponents adding up to h.

theorem TauCeti.NovikovSeries.coeff_mul_eq_sum {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] {a b : NovikovSeries R H N} {h : H} {s : Finset (H × H)} (hs : ∀ p ∈ s, p.1 + p.2 = h) (hab : ∀ (u v : H), u + v = h → a.coeff u ≠ 0 → b.coeff v ≠ 0 → (u, v) ∈ s) :
(a * b).coeff h = ∑ p ∈ s, a.coeff p.1 * b.coeff p.2

A coefficient of a product is the sum of a.coeff p.1 * b.coeff p.2 over any finite set of pairs p with p.1 + p.2 = h containing every such pair of support exponents.

theorem TauCeti.NovikovSeries.exists_add_eq_of_coeff_mul_ne_zero {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] {a b : NovikovSeries R H N} {h : H} (hab : (a * b).coeff h ≠ 0) :
∃ (u : H) (v : H), u + v = h ∧ a.coeff u ≠ 0 ∧ b.coeff v ≠ 0

A nonzero coefficient of a product comes from a pair of support exponents.

The support of a product lies in the sum of the supports.

theorem TauCeti.NovikovSeries.coeff_mul_eq_sum_of_injOn {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] {ι : Type u_4} {a b : NovikovSeries R H N} {h : H} {F : Finset ι} {f : ι → H × H} (hf : ∀ t ∈ F, (f t).1 + (f t).2 = h) (hab : ∀ (u v : H), u + v = h → a.coeff u ≠ 0 → b.coeff v ≠ 0 → ∃ t ∈ F, f t = (u, v)) (hinj : Set.InjOn f ↑F) :
(a * b).coeff h = ∑ t ∈ F, a.coeff (f t).1 * b.coeff (f t).2

A coefficient of a product as a sum over a finite set F, mapped injectively by f onto a set of pairs adding up to h which contains every pair of support exponents.

@[simp]
theorem TauCeti.NovikovSeries.single_mul_single {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] (g g' : H) (r r' : R) :
single g r * single g' r' = single (g + g') (r * r')

Monomials multiply by adding exponents.

theorem TauCeti.NovikovSeries.coeff_single_zero_mul {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] (r : R) (a : NovikovSeries R H N) (h : H) :
(single 0 r * a).coeff h = r * a.coeff h

Multiplying by a constant series single 0 r multiplies each coefficient on the left.

@[simp]
theorem TauCeti.NovikovSeries.single_zero_mul_eq_smul {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] (r : R) (a : NovikovSeries R H N) :
single 0 r * a = r • a

Multiplying by a constant series is scalar multiplication.

@[simp]
theorem TauCeti.NovikovSeries.coeff_mul_single_zero {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] (a : NovikovSeries R H N) (r : R) (h : H) :
(a * single 0 r).coeff h = a.coeff h * r

Multiplying by a constant series single 0 r multiplies each coefficient on the right.

theorem TauCeti.NovikovSeries.coeff_single_mul_add {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] [IsLeftCancelAdd H] (g : H) (r : R) (a : NovikovSeries R H N) (h : H) :
(single g r * a).coeff (g + h) = r * a.coeff h

Multiplying on the left by the monomial r e^g shifts the exponents by g.

theorem TauCeti.NovikovSeries.coeff_mul_single_add {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] [IsRightCancelAdd H] (a : NovikovSeries R H N) (g : H) (r : R) (h : H) :
(a * single g r).coeff (h + g) = a.coeff h * r

Multiplying on the right by the monomial r e^g shifts the exponents by g.

@[instance_reducible]

Convolution distributes over addition.

@[instance_reducible]
noncomputable instance TauCeti.NovikovSeries.instOne {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [Zero R] [One R] :

The unit of convolution is the monomial single 0 1.

theorem TauCeti.NovikovSeries.one_def {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [Zero R] [One R] :
1 = single 0 1
@[simp]
theorem TauCeti.NovikovSeries.single_zero_one {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [Zero R] [One R] :
single 0 1 = 1
@[simp]
theorem TauCeti.NovikovSeries.coeff_one {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [Zero R] [One R] [DecidableEq H] (h : H) :
coeff 1 h = if h = 0 then 1 else 0
@[instance_reducible]
noncomputable instance TauCeti.NovikovSeries.instNonAssocSemiring {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonAssocSemiring R] :
@[instance_reducible]
@[instance_reducible]
noncomputable instance TauCeti.NovikovSeries.instNonAssocRing {R : Type u_1} {H : Type u_3} [AddZeroClass H] {N : H →+ ℝ} [NonAssocRing R] :
theorem TauCeti.NovikovSeries.coeff_mul_mul_eq_sum {R : Type u_1} {H : Type u_3} [AddMonoid H] {N : H →+ ℝ} [NonUnitalSemiring R] (a b c : NovikovSeries R H N) (h : H) :
(a * b * c).coeff h = ∑ t ∈ ⋯.toFinset, a.coeff t.1 * b.coeff t.2.1 * c.coeff t.2.2

The coefficient at h of a triple product a * b * c is the sum of a.coeff u * b.coeff v * c.coeff w over the finitely many triples of support exponents with u + v + w = h.

@[instance_reducible]
noncomputable instance TauCeti.NovikovSeries.instNonUnitalSemiring {R : Type u_1} {H : Type u_3} [AddMonoid H] {N : H →+ ℝ} [NonUnitalSemiring R] :

Convolution is associative, by the uniform cutoff lemma NovikovSeries.finite_setOf_period_add_add_lt.

@[instance_reducible]
noncomputable instance TauCeti.NovikovSeries.instSemiring {R : Type u_1} {H : Type u_3} [AddMonoid H] {N : H →+ ℝ} [Semiring R] :
@[instance_reducible]
noncomputable instance TauCeti.NovikovSeries.instNonUnitalRing {R : Type u_1} {H : Type u_3} [AddMonoid H] {N : H →+ ℝ} [NonUnitalRing R] :
@[instance_reducible]
noncomputable instance TauCeti.NovikovSeries.instRing {R : Type u_1} {H : Type u_3} [AddMonoid H] {N : H →+ ℝ} [Ring R] :
@[simp]
theorem TauCeti.NovikovSeries.single_pow {R : Type u_1} {H : Type u_3} [AddMonoid H] {N : H →+ ℝ} [Semiring R] (g : H) (r : R) (n : ℕ) :
single g r ^ n = single (n • g) (r ^ n)

The powers of a monomial: (r e^g) ^ n = r ^ n e^(n • g).

@[instance_reducible]
@[instance_reducible]
noncomputable instance TauCeti.NovikovSeries.instCommSemiring {R : Type u_1} {H : Type u_3} [AddCommMonoid H] {N : H →+ ℝ} [CommSemiring R] :
@[instance_reducible]
@[instance_reducible]
noncomputable instance TauCeti.NovikovSeries.instCommRing {R : Type u_1} {H : Type u_3} [AddCommMonoid H] {N : H →+ ℝ} [CommRing R] :
theorem TauCeti.NovikovSeries.coeff_single_mul {R : Type u_1} {H : Type u_3} [AddGroup H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] (g : H) (r : R) (a : NovikovSeries R H N) (h : H) :
(single g r * a).coeff h = r * a.coeff (-g + h)

Multiplying on the left by a monomial shifts the exponents.

theorem TauCeti.NovikovSeries.coeff_mul_single {R : Type u_1} {H : Type u_3} [AddGroup H] {N : H →+ ℝ} [NonUnitalNonAssocSemiring R] (a : NovikovSeries R H N) (g : H) (r : R) (h : H) :
(a * single g r).coeff h = a.coeff (h - g) * r

Multiplying on the right by a monomial shifts the exponents.

noncomputable def TauCeti.NovikovSeries.unitsSingle {R : Type u_1} {H : Type u_3} [AddGroup H] {N : H →+ ℝ} [Semiring R] (g : H) (u : Rˣ) :

The monomial u e^g with unit coefficient u, as a unit with inverse u⁻¹ e^(-g).

Instances For
    @[simp]
    theorem TauCeti.NovikovSeries.val_unitsSingle {R : Type u_1} {H : Type u_3} [AddGroup H] {N : H →+ ℝ} [Semiring R] (g : H) (u : Rˣ) :
    ↑(unitsSingle g u) = single g ↑u

    The underlying series of unitsSingle g u is the monomial u e^g.

    @[simp]
    theorem TauCeti.NovikovSeries.val_inv_unitsSingle {R : Type u_1} {H : Type u_3} [AddGroup H] {N : H →+ ℝ} [Semiring R] (g : H) (u : Rˣ) :
    ↑(unitsSingle g u)⁻¹ = single (-g) ↑u⁻¹

    The inverse of unitsSingle g u is the monomial u⁻¹ e^(-g).

    theorem TauCeti.NovikovSeries.isUnit_single {R : Type u_1} {H : Type u_3} [AddGroup H] {N : H →+ ℝ} [Semiring R] (g : H) {r : R} (hr : IsUnit r) :

    A monomial r e^g with unit coefficient is a unit.

    @[instance_reducible]
    noncomputable instance TauCeti.NovikovSeries.instAlgebra {R : Type u_1} {S : Type u_2} {H : Type u_3} [AddMonoid H] {N : H →+ ℝ} [CommSemiring S] [Semiring R] [Algebra S R] :

    For an S-algebra R, Novikov series over R form an S-algebra: a scalar s acts as the constant series single 0 (algebraMap S R s).

    @[simp]
    theorem TauCeti.NovikovSeries.algebraMap_apply {R : Type u_1} {S : Type u_2} {H : Type u_3} [AddMonoid H] {N : H →+ ℝ} [CommSemiring S] [Semiring R] [Algebra S R] (s : S) :
    (algebraMap S (NovikovSeries R H N)) s = single 0 ((algebraMap S R) s)

    The group ring R[H] as a subring of Novikov series: an element is sent to the Novikov series with the same (finitely supported) coefficients.

    Instances For
      @[simp]

      A Novikov series comes from the group ring exactly when its support is finite.

      Novikov series over a trivial exponent group are their constant coefficients. Taking the coefficient at 0 is a ring isomorphism onto R, with inverse r ↦ single 0 r.

      Instances For