Documentation

TauCeti.RingTheory.NovikovModule.Bilinear

Bilinear products of completed combinations given by supported kernels #

Let F₁ : S₁ → ℝ, F₂ : S₂ → ℝ and F₀ : S₀ → ℝ be potentials, and let n : S₁ → S₂ → S₀ → R be a product kernel: n p₁ p₂ p₀ is the coefficient of the output generator p₀ in the product of the input generators p₁ and p₂. Suppose that

Then for completed combinations a and b the sum ∑ a(p₁) b(p₂) n(p₁, p₂, p₀) has finitely many nonzero terms, and it defines a bilinear map NovikovModule R F₁ → NovikovModule R F₂ → NovikovModule R F₀ (NovikovModule.kernelProduct). The product shifts potential cutoffs by C: if a and b vanish above D₁ and D₂, then their product vanishes above D₁ + D₂ + C.

This is the algebraic form of the pair-of-pants product on capped Hamiltonian Floer complexes. The generators are capped orbits, the potentials are the action functionals, n counts rigid pairs of pants whose glued cap is the output cap, and the potential bound is the energy estimate 0 ≤ E = A₁ + A₂ - A₀ - ∫ R_K, with C bounding -∫ R_K for the curvature R_K of the perturbation. Finiteness of each n p₁ p₂ above an action level is compactness of the moduli spaces below an energy level.

Suppose next that each Sₗ is a finite disjoint union of torsors under a group H, that the potentials satisfy F (h +ᵥ p) = F p - N h, and that the kernel is unchanged when one input and the output are translated by the same element (recapping both by the same sphere). Choosing one reference generator in each orbit turns the kernel into a finite matrix of Novikov series (NovikovModule.kernelMatrix). The (i, j, k) entry lies in the period filtration at level F₀(r₀ k) - F₁(r₁ i) - F₂(r₂ j) - C; this is the lower valuation bound of the output monomials. In the lift coordinates of TauCeti.RingTheory.NovikovModule.Basic the product is given by the matrix formula (a ⋆ b)ₖ = ∑ᵢ ∑ⱼ aᵢ bⱼ Mᵢⱼₖ (NovikovModule.coordinates_kernelProduct), even for a noncommutative group H. Fixing one input turns the product into a one-input invariant kernel map of TauCeti.RingTheory.NovikovModule.KernelMap, whose coordinates are given by its own matrix (NovikovModule.coordinates_eq_sum_mul). Hence the product is linear over the Novikov ring in each argument, using only the invariance and equivariance on that side, and for a commutative group it is a Novikov-bilinear map (NovikovModule.novikovKernelProduct). No discreteness or injectivity of the periods N is assumed.

Conversely, for a commutative group H every matrix M of Novikov series is the matrix of an invariant kernel (NovikovModule.kernelOfMatrix): the coefficient on generators in the orbits i, j and k is the coefficient of M i j k at the displacement of the output from its reference generator minus the displacements of the two inputs. The two constructions are inverse to each other (NovikovModule.kernelMatrix_kernelOfMatrix, NovikovModule.kernelOfMatrix_kernelMatrix). The kernel of a matrix whose entries obey the lower period bounds above obeys the potential bound with the same constant, and with finitely many orbits the kernel of every matrix obeys a potential bound for some constant. Hence every finite matrix of Novikov series has a Novikov-bilinear product (NovikovModule.novikovProductOfMatrix), given in reference coordinates by the matrix formula, and every Novikov-bilinear map of these finitely generated modules is the product of the matrix of its values on the reference basis (NovikovModule.eq_novikovProductOfMatrix). In Floer theory, the entries are the count series ∑_A #M(x₁, x₂, x₀; A) e^(-A) of the reference generator triples, with A measured against the reference caps, and the product of this matrix is the pair-of-pants product on the completed complexes.

Composing a product with kernel maps, on either input or on the output, gives the product of the composite kernel (NovikovModule.kernelMap_kernelProduct, NovikovModule.kernelProduct_kernelMap_left, NovikovModule.kernelProduct_kernelMap_right), and the product is linear in the kernel (NovikovModule.kernelProduct_add, NovikovModule.kernelProduct_smul). Hence a Leibniz rule d (a ⋆ b) = d a ⋆ b ± a ⋆ d b for differentials given by kernels follows from the corresponding identity between kernels, which is what counting the ends of one-dimensional moduli spaces gives.

Main definitions #

Main results #

References #

theorem TauCeti.NovikovModule.finite_setOf_le_add {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} [Semiring R] (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₂)) (T : ℝ) :
{q : S₁ × S₂ | ↑a q.1 ≠ 0 ∧ ↑b q.2 ≠ 0 ∧ T ≤ F₁ q.1 + F₂ q.2}.Finite

Only finitely many pairs of support generators of two completed combinations have total potential at least a given threshold.

theorem TauCeti.NovikovModule.finite_support_mul_kernel {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [Semiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₂)) (p₀ : S₀) :
(Function.support fun (q : S₁ × S₂) => ↑a q.1 * ↑b q.2 * n q.1 q.2 p₀).Finite

For a kernel obeying a potential bound, each coefficient of the product is a sum with finitely many nonzero terms.

noncomputable def TauCeti.NovikovModule.kernelProduct {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) :
↥(NovikovModule R F₁) →ₗ[R] ↥(NovikovModule R F₂) →ₗ[R] ↥(NovikovModule R F₀)

The bilinear product of completed combinations given by a kernel n with potential bound C and completed outputs: the coefficient of p₀ in the product of a and b is the finite sum ∑ a(p₁) b(p₂) n(p₁, p₂, p₀) over all pairs of generators.

Instances For
    @[simp]
    theorem TauCeti.NovikovModule.kernelProduct_apply_val {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₂)) (p₀ : S₀) :
    ↑(((kernelProduct hn hfin) a) b) p₀ = ∑ᶠ (q : S₁ × S₂), ↑a q.1 * ↑b q.2 * n q.1 q.2 p₀

    The coefficient of a generator in a product is the sum, over all pairs of input generators, of the product of their coefficients with the kernel.

    theorem TauCeti.NovikovModule.kernelProduct_apply_val_eq_sum {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₂)) (p₀ : S₀) {s : Finset (S₁ × S₂)} (hs : ∀ (q : S₁ × S₂), ↑a q.1 ≠ 0 → ↑b q.2 ≠ 0 → n q.1 q.2 p₀ ≠ 0 → q ∈ s) :
    ↑(((kernelProduct hn hfin) a) b) p₀ = ∑ q ∈ s, ↑a q.1 * ↑b q.2 * n q.1 q.2 p₀

    A coefficient of a product is a sum over any finite set of pairs containing every pair of support generators with nonzero kernel coefficient.

    theorem TauCeti.NovikovModule.kernelProduct_apply_val_eq_zero {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) {a : ↥(NovikovModule R F₁)} {b : ↥(NovikovModule R F₂)} {D₁ D₂ : ℝ} (ha : ∀ (s : S₁), D₁ < F₁ s → ↑a s = 0) (hb : ∀ (s : S₂), D₂ < F₂ s → ↑b s = 0) {p₀ : S₀} (hp : D₁ + D₂ + C < F₀ p₀) :
    ↑(((kernelProduct hn hfin) a) b) p₀ = 0

    The product shifts potential cutoffs by the constant of the potential bound: if a vanishes above D₁ and b vanishes above D₂, then their product vanishes above D₁ + D₂ + C.

    @[simp]
    theorem TauCeti.NovikovModule.kernelProduct_ofFinsupp_single_val {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) (p₁ : S₁) (p₂ : S₂) :
    ↑(((kernelProduct hn hfin) ((ofFinsupp F₁) (Finsupp.single p₁ 1))) ((ofFinsupp F₂) (Finsupp.single p₂ 1))) = n p₁ p₂

    A kernel product sends a pair of generators to the corresponding entry of the kernel.

    theorem TauCeti.NovikovModule.kernelProduct_ofFinsupp_mem_range {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) (hn' : ∀ (p₁ : S₁) (p₂ : S₂), (Function.support (n p₁ p₂)).Finite) (a : S₁ →₀ R) (b : S₂ →₀ R) :
    ((kernelProduct hn hfin) ((ofFinsupp F₁) a)) ((ofFinsupp F₂) b) ∈ (ofFinsupp F₀).range

    A product kernel whose outputs have finitely many nonzero coefficients maps pairs of finite combinations to finite combinations.

    noncomputable def TauCeti.NovikovModule.toProductKernel {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] (B : ↥(NovikovModule R F₁) →ₗ[R] ↥(NovikovModule R F₂) →ₗ[R] ↥(NovikovModule R F₀)) (p₁ : S₁) (p₂ : S₂) (p₀ : S₀) :
    R

    The coefficients of a bilinear map of completed combinations: the coefficient of the output generator p₀ in the image of the pair of input generators p₁ and p₂.

    Instances For
      @[simp]
      theorem TauCeti.NovikovModule.toProductKernel_apply {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {B : ↥(NovikovModule R F₁) →ₗ[R] ↥(NovikovModule R F₂) →ₗ[R] ↥(NovikovModule R F₀)} (p₁ : S₁) (p₂ : S₂) (p₀ : S₀) :
      toProductKernel B p₁ p₂ p₀ = ↑((B ((ofFinsupp F₁) (Finsupp.single p₁ 1))) ((ofFinsupp F₂) (Finsupp.single p₂ 1))) p₀
      theorem TauCeti.NovikovModule.toProductKernel_mem {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] (B : ↥(NovikovModule R F₁) →ₗ[R] ↥(NovikovModule R F₂) →ₗ[R] ↥(NovikovModule R F₀)) (p₁ : S₁) (p₂ : S₂) :
      toProductKernel B p₁ p₂ ∈ NovikovModule R F₀

      Each output of the coefficients of a bilinear map is a completed combination.

      @[simp]
      theorem TauCeti.NovikovModule.toProductKernel_kernelProduct {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) :

      The coefficients of a kernel product are its kernel.

      theorem TauCeti.NovikovModule.kernelProduct_add {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) {C' C'' : ℝ} {n' : S₁ → S₂ → S₀ → R} (hn' : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n' p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C') (hfin' : ∀ (p₁ : S₁) (p₂ : S₂), n' p₁ p₂ ∈ NovikovModule R F₀) (hnn' : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), (n + n') p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C'') (hfinn' : ∀ (p₁ : S₁) (p₂ : S₂), (n + n') p₁ p₂ ∈ NovikovModule R F₀) :
      kernelProduct hnn' hfinn' = kernelProduct hn hfin + kernelProduct hn' hfin'

      The product of a sum of kernels is the sum of their products. The three potential bounds may have different constants.

      theorem TauCeti.NovikovModule.kernelProduct_smul {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) {C' : ℝ} (c : R) (hcn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), (c • n) p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C') (hcfin : ∀ (p₁ : S₁) (p₂ : S₂), (c • n) p₁ p₂ ∈ NovikovModule R F₀) :
      kernelProduct hcn hcfin = c • kernelProduct hn hfin

      The product of a scalar multiple of a kernel is the scalar multiple of its product. The two potential bounds may have different constants.

      theorem TauCeti.NovikovModule.kernelProduct_exists_potential_le_left {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (b : ↥(NovikovModule R F₂)) :
      ∃ (D : ℝ), ∀ (p₁ : S₁) (p₀ : S₀), ∑ᶠ (p₂ : S₂), ↑b p₂ * n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + D

      Fixing the second input b of a supported product kernel gives the one-input kernel p₁ ↦ ∑ b(p₂) n(p₁, p₂, ·), which obeys a potential bound: its constant uses an upper bound of the potential on the support of b.

      theorem TauCeti.NovikovModule.kernelProduct_exists_potential_le_right {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (a : ↥(NovikovModule R F₁)) :
      ∃ (D : ℝ), ∀ (p₂ : S₂) (p₀ : S₀), ∑ᶠ (p₁ : S₁), ↑a p₁ * n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₂ p₂ + D

      Fixing the first input a of a supported product kernel gives the one-input kernel p₂ ↦ ∑ a(p₁) n(p₁, p₂, ·), which obeys a potential bound: its constant uses an upper bound of the potential on the support of a.

      theorem TauCeti.NovikovModule.kernelProduct_finsum_mul_mem_left {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) (b : ↥(NovikovModule R F₂)) (p₁ : S₁) :
      (fun (p₀ : S₀) => ∑ᶠ (p₂ : S₂), ↑b p₂ * n p₁ p₂ p₀) ∈ NovikovModule R F₀

      The one-input kernel obtained by fixing the second input of a supported product kernel has completed outputs.

      theorem TauCeti.NovikovModule.kernelProduct_finsum_mul_mem_right {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) (a : ↥(NovikovModule R F₁)) (p₂ : S₂) :
      (fun (p₀ : S₀) => ∑ᶠ (p₁ : S₁), ↑a p₁ * n p₁ p₂ p₀) ∈ NovikovModule R F₀

      The one-input kernel obtained by fixing the first input of a supported product kernel has completed outputs.

      theorem TauCeti.NovikovModule.kernelProduct_eq_kernelMap_left {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) {D : ℝ} (b : ↥(NovikovModule R F₂)) (hm : ∀ (p₁ : S₁) (p₀ : S₀), ∑ᶠ (p₂ : S₂), ↑b p₂ * n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + D) (hmfin : ∀ (p₁ : S₁), (fun (p₀ : S₀) => ∑ᶠ (p₂ : S₂), ↑b p₂ * n p₁ p₂ p₀) ∈ NovikovModule R F₀) (a : ↥(NovikovModule R F₁)) :
      ((kernelProduct hn hfin) a) b = (kernelMap hm hmfin) a

      A product as a kernel map in its first input. For fixed b, the product of a and b is the image of a under the one-input kernel p₁ ↦ ∑ b(p₂) n(p₁, p₂, ·), for any potential bound of that kernel.

      theorem TauCeti.NovikovModule.kernelProduct_eq_kernelMap_right {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) {D : ℝ} (a : ↥(NovikovModule R F₁)) (hm : ∀ (p₂ : S₂) (p₀ : S₀), ∑ᶠ (p₁ : S₁), ↑a p₁ * n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₂ p₂ + D) (hmfin : ∀ (p₂ : S₂), (fun (p₀ : S₀) => ∑ᶠ (p₁ : S₁), ↑a p₁ * n p₁ p₂ p₀) ∈ NovikovModule R F₀) (b : ↥(NovikovModule R F₂)) :
      ((kernelProduct hn hfin) a) b = (kernelMap hm hmfin) b

      A product as a kernel map in its second input. For fixed a, the product of a and b is the image of b under the one-input kernel p₂ ↦ ∑ a(p₁) n(p₁, p₂, ·), for any potential bound of that kernel.

      theorem TauCeti.NovikovModule.kernelMap_kernelProduct {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) {S₃ : Type u_5} {F₃ : S₃ → ℝ} {C' C'' : ℝ} {m : S₀ → S₃ → R} (hm : ∀ (p₀ : S₀) (p₃ : S₃), m p₀ p₃ ≠ 0 → F₃ p₃ ≤ F₀ p₀ + C') (hmfin : ∀ (p₀ : S₀), m p₀ ∈ NovikovModule R F₃) (hnm : ∀ (p₁ : S₁) (p₂ : S₂) (p₃ : S₃), kernelComp (n p₁) m p₂ p₃ ≠ 0 → F₃ p₃ ≤ F₁ p₁ + F₂ p₂ + C'') (hnmfin : ∀ (p₁ : S₁) (p₂ : S₂), kernelComp (n p₁) m p₂ ∈ NovikovModule R F₃) (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₂)) :
      (kernelMap hm hmfin) (((kernelProduct hn hfin) a) b) = ((kernelProduct hnm hnmfin) a) b

      A kernel map applied to a product. Applying the map of a kernel m to the product of a and b is the product of a and b for the kernel obtained by composing each output of n with m. The potential bound of the composite may have any constant.

      theorem TauCeti.NovikovModule.kernelProduct_kernelMap_left {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) {S₃ : Type u_5} {F₃ : S₃ → ℝ} {C' C'' : ℝ} {m : S₃ → S₁ → R} (hm : ∀ (p₃ : S₃) (p₁ : S₁), m p₃ p₁ ≠ 0 → F₁ p₁ ≤ F₃ p₃ + C') (hmfin : ∀ (p₃ : S₃), m p₃ ∈ NovikovModule R F₁) (hmn : ∀ (p₃ : S₃) (p₂ : S₂) (p₀ : S₀), kernelComp m (fun (p₁ : S₁) => n p₁ p₂) p₃ p₀ ≠ 0 → F₀ p₀ ≤ F₃ p₃ + F₂ p₂ + C'') (hmnfin : ∀ (p₃ : S₃) (p₂ : S₂), kernelComp m (fun (p₁ : S₁) => n p₁ p₂) p₃ ∈ NovikovModule R F₀) (a : ↥(NovikovModule R F₃)) (b : ↥(NovikovModule R F₂)) :
      ((kernelProduct hn hfin) ((kernelMap hm hmfin) a)) b = ((kernelProduct hmn hmnfin) a) b

      A product with a kernel map applied to its first input. The product of the image of a under the map of a kernel m with b is the product of a and b for the kernel obtained by composing m with n. The potential bound of the composite may have any constant.

      theorem TauCeti.NovikovModule.kernelProduct_kernelMap_right {R : Type u_1} {S₁ : Type u_2} {S₂ : Type u_3} {S₀ : Type u_4} {F₁ : S₁ → ℝ} {F₂ : S₂ → ℝ} {F₀ : S₀ → ℝ} [CommSemiring R] {C : ℝ} {n : S₁ → S₂ → S₀ → R} (hn : ∀ (p₁ : S₁) (p₂ : S₂) (p₀ : S₀), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : S₁) (p₂ : S₂), n p₁ p₂ ∈ NovikovModule R F₀) {S₃ : Type u_5} {F₃ : S₃ → ℝ} {C' C'' : ℝ} {m : S₃ → S₂ → R} (hm : ∀ (p₃ : S₃) (p₂ : S₂), m p₃ p₂ ≠ 0 → F₂ p₂ ≤ F₃ p₃ + C') (hmfin : ∀ (p₃ : S₃), m p₃ ∈ NovikovModule R F₂) (hnm : ∀ (p₁ : S₁) (p₃ : S₃) (p₀ : S₀), kernelComp m (n p₁) p₃ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₃ p₃ + C'') (hnmfin : ∀ (p₁ : S₁) (p₃ : S₃), kernelComp m (n p₁) p₃ ∈ NovikovModule R F₀) (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₃)) :
      ((kernelProduct hn hfin) a) ((kernelMap hm hmfin) b) = ((kernelProduct hnm hnmfin) a) b

      A product with a kernel map applied to its second input. The product of a with the image of b under the map of a kernel m is the product of a and b for the kernel obtained by composing m with n. The potential bound of the composite may have any constant.

      theorem TauCeti.NovikovModule.kernel_vadd_vadd {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddGroup H] {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {n : (i : ι₁) × P₁ i → (j : ι₂) × P₂ j → (k : ι₀) × P₀ k → R} (hn₁ : ∀ (g : H) (i : ι₁) (p₁ : P₁ i) (p₂ : (j : ι₂) × P₂ j) (k : ι₀) (p₀ : P₀ k), n ⟨i, g +ᵥ p₁⟩ p₂ ⟨k, g +ᵥ p₀⟩ = n ⟨i, p₁⟩ p₂ ⟨k, p₀⟩) (hn₂ : ∀ (g : H) (p₁ : (i : ι₁) × P₁ i) (j : ι₂) (p₂ : P₂ j) (k : ι₀) (p₀ : P₀ k), n p₁ ⟨j, g +ᵥ p₂⟩ ⟨k, g +ᵥ p₀⟩ = n p₁ ⟨j, p₂⟩ ⟨k, p₀⟩) (u v : H) {i : ι₁} {j : ι₂} {k : ι₀} (p₁ : P₁ i) (p₂ : P₂ j) (p₀ : P₀ k) :
      n ⟨i, u +ᵥ p₁⟩ ⟨j, v +ᵥ p₂⟩ ⟨k, p₀⟩ = n ⟨i, p₁⟩ ⟨j, p₂⟩ ⟨k, -v +ᵥ -u +ᵥ p₀⟩

      Translating both inputs of an invariant kernel is the same as translating its output by the negatives, in reverse order.

      def TauCeti.NovikovModule.kernelMatrix {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(k : ι₀) → AddTorsor H (P₀ k)] {F₀ : (k : ι₀) × P₀ k → ℝ} {n : (i : ι₁) × P₁ i → (j : ι₂) × P₂ j → (k : ι₀) × P₀ k → R} [Semiring R] [Finite ι₀] (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (hfin : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j), n p₁ p₂ ∈ NovikovModule R F₀) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) (i : ι₁) (j : ι₂) (k : ι₀) :

      The matrix of a kernel relative to reference generators r₁, r₂ and r₀: the coefficient of its (i, j, k) entry at h is the coefficient of the output generator h +ᵥ r₀ k in the product of the reference inputs r₁ i and r₂ j.

      Instances For
        @[simp]
        theorem TauCeti.NovikovModule.kernelMatrix_coeff {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(k : ι₀) → AddTorsor H (P₀ k)] {F₀ : (k : ι₀) × P₀ k → ℝ} {n : (i : ι₁) × P₁ i → (j : ι₂) × P₂ j → (k : ι₀) × P₀ k → R} [Semiring R] [Finite ι₀] (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (hfin : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j), n p₁ p₂ ∈ NovikovModule R F₀) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) (i : ι₁) (j : ι₂) (k : ι₀) (h : H) :
        (kernelMatrix hF₀ hfin r₁ r₂ r₀ i j k).coeff h = n ⟨i, r₁ i⟩ ⟨j, r₂ j⟩ ⟨k, h +ᵥ r₀ k⟩

        The coefficient at h of a kernel matrix entry is the kernel coefficient of the reference inputs and the output generator h +ᵥ r₀ k.

        theorem TauCeti.NovikovModule.kernelMatrix_mem_periodFiltration {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(k : ι₀) → AddTorsor H (P₀ k)] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} {C : ℝ} {n : (i : ι₁) × P₁ i → (j : ι₂) × P₂ j → (k : ι₀) × P₀ k → R} [Ring R] [Finite ι₀] (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (hn : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j) (p₀ : (k : ι₀) × P₀ k), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j), n p₁ p₂ ∈ NovikovModule R F₀) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) (i : ι₁) (j : ι₂) (k : ι₀) :
        kernelMatrix hF₀ hfin r₁ r₂ r₀ i j k ∈ NovikovSeries.periodFiltration R N (F₀ ⟨k, r₀ k⟩ - F₁ ⟨i, r₁ i⟩ - F₂ ⟨j, r₂ j⟩ - C)

        Under a potential bound with constant C, the (i, j, k) entry of the kernel matrix lies in the period filtration at level F₀(r₀ k) - F₁(r₁ i) - F₂(r₂ j) - C.

        theorem TauCeti.NovikovModule.coordinates_kernelProduct {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} {C : ℝ} {n : (i : ι₁) × P₁ i → (j : ι₂) × P₂ j → (k : ι₀) × P₀ k → R} [CommSemiring R] [Fintype ι₁] [Fintype ι₂] [Finite ι₀] (hF₁ : ∀ (i : ι₁) (h : H) (p : P₁ i), F₁ ⟨i, h +ᵥ p⟩ = F₁ ⟨i, p⟩ - N h) (hF₂ : ∀ (j : ι₂) (h : H) (p : P₂ j), F₂ ⟨j, h +ᵥ p⟩ = F₂ ⟨j, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (hn : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j) (p₀ : (k : ι₀) × P₀ k), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j), n p₁ p₂ ∈ NovikovModule R F₀) (hn₁ : ∀ (g : H) (i : ι₁) (p₁ : P₁ i) (p₂ : (j : ι₂) × P₂ j) (k : ι₀) (p₀ : P₀ k), n ⟨i, g +ᵥ p₁⟩ p₂ ⟨k, g +ᵥ p₀⟩ = n ⟨i, p₁⟩ p₂ ⟨k, p₀⟩) (hn₂ : ∀ (g : H) (p₁ : (i : ι₁) × P₁ i) (j : ι₂) (p₂ : P₂ j) (k : ι₀) (p₀ : P₀ k), n p₁ ⟨j, g +ᵥ p₂⟩ ⟨k, g +ᵥ p₀⟩ = n p₁ ⟨j, p₂⟩ ⟨k, p₀⟩) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₂)) (k : ι₀) :
        (coordinates hF₀ r₀) (((kernelProduct hn hfin) a) b) k = ∑ i : ι₁, ∑ j : ι₂, (coordinates hF₁ r₁) a i * (coordinates hF₂ r₂) b j * kernelMatrix hF₀ hfin r₁ r₂ r₀ i j k

        In lift coordinates, the product of an invariant kernel is given by its kernel matrix: (a ⋆ b)ₖ = ∑ᵢ ∑ⱼ aᵢ bⱼ Mᵢⱼₖ.

        theorem TauCeti.NovikovModule.kernelProduct_smul_left {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} {C : ℝ} {n : (i : ι₁) × P₁ i → (j : ι₂) × P₂ j → (k : ι₀) × P₀ k → R} [CommSemiring R] [Finite ι₀] (hF₁ : ∀ (i : ι₁) (h : H) (p : P₁ i), F₁ ⟨i, h +ᵥ p⟩ = F₁ ⟨i, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (hn : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j) (p₀ : (k : ι₀) × P₀ k), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j), n p₁ p₂ ∈ NovikovModule R F₀) (hn₁ : ∀ (g : H) (i : ι₁) (p₁ : P₁ i) (p₂ : (j : ι₂) × P₂ j) (k : ι₀) (p₀ : P₀ k), n ⟨i, g +ᵥ p₁⟩ p₂ ⟨k, g +ᵥ p₀⟩ = n ⟨i, p₁⟩ p₂ ⟨k, p₀⟩) [Finite ι₁] (β : NovikovSeries R H N) (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₂)) :
        ((kernelProduct hn hfin) (β • a)) b = β • ((kernelProduct hn hfin) a) b

        The product of a kernel invariant in its first input is linear over the Novikov ring in its first argument.

        theorem TauCeti.NovikovModule.kernelProduct_smul_right {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} {C : ℝ} {n : (i : ι₁) × P₁ i → (j : ι₂) × P₂ j → (k : ι₀) × P₀ k → R} [CommSemiring R] [Finite ι₀] (hF₂ : ∀ (j : ι₂) (h : H) (p : P₂ j), F₂ ⟨j, h +ᵥ p⟩ = F₂ ⟨j, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (hn : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j) (p₀ : (k : ι₀) × P₀ k), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j), n p₁ p₂ ∈ NovikovModule R F₀) (hn₂ : ∀ (g : H) (p₁ : (i : ι₁) × P₁ i) (j : ι₂) (p₂ : P₂ j) (k : ι₀) (p₀ : P₀ k), n p₁ ⟨j, g +ᵥ p₂⟩ ⟨k, g +ᵥ p₀⟩ = n p₁ ⟨j, p₂⟩ ⟨k, p₀⟩) [Finite ι₂] (β : NovikovSeries R H N) (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₂)) :
        ((kernelProduct hn hfin) a) (β • b) = β • ((kernelProduct hn hfin) a) b

        The product of a kernel invariant in its second input is linear over the Novikov ring in its second argument.

        noncomputable def TauCeti.NovikovModule.novikovKernelProduct {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [CommSemiring R] [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] [Finite ι₁] [Finite ι₂] [Finite ι₀] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} {C : ℝ} {n : (i : ι₁) × P₁ i → (j : ι₂) × P₂ j → (k : ι₀) × P₀ k → R} (hF₁ : ∀ (i : ι₁) (h : H) (p : P₁ i), F₁ ⟨i, h +ᵥ p⟩ = F₁ ⟨i, p⟩ - N h) (hF₂ : ∀ (j : ι₂) (h : H) (p : P₂ j), F₂ ⟨j, h +ᵥ p⟩ = F₂ ⟨j, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (hn : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j) (p₀ : (k : ι₀) × P₀ k), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j), n p₁ p₂ ∈ NovikovModule R F₀) (hn₁ : ∀ (g : H) (i : ι₁) (p₁ : P₁ i) (p₂ : (j : ι₂) × P₂ j) (k : ι₀) (p₀ : P₀ k), n ⟨i, g +ᵥ p₁⟩ p₂ ⟨k, g +ᵥ p₀⟩ = n ⟨i, p₁⟩ p₂ ⟨k, p₀⟩) (hn₂ : ∀ (g : H) (p₁ : (i : ι₁) × P₁ i) (j : ι₂) (p₂ : P₂ j) (k : ι₀) (p₀ : P₀ k), n p₁ ⟨j, g +ᵥ p₂⟩ ⟨k, g +ᵥ p₀⟩ = n p₁ ⟨j, p₂⟩ ⟨k, p₀⟩) :

        The product of an invariant kernel, as a bilinear map over the Novikov ring, for the Novikov module structures of TauCeti.NovikovModule.module.

        Instances For
          @[simp]
          theorem TauCeti.NovikovModule.novikovKernelProduct_apply {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [CommSemiring R] [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] [Finite ι₁] [Finite ι₂] [Finite ι₀] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} {C : ℝ} {n : (i : ι₁) × P₁ i → (j : ι₂) × P₂ j → (k : ι₀) × P₀ k → R} (hF₁ : ∀ (i : ι₁) (h : H) (p : P₁ i), F₁ ⟨i, h +ᵥ p⟩ = F₁ ⟨i, p⟩ - N h) (hF₂ : ∀ (j : ι₂) (h : H) (p : P₂ j), F₂ ⟨j, h +ᵥ p⟩ = F₂ ⟨j, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (hn : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j) (p₀ : (k : ι₀) × P₀ k), n p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (hfin : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j), n p₁ p₂ ∈ NovikovModule R F₀) (hn₁ : ∀ (g : H) (i : ι₁) (p₁ : P₁ i) (p₂ : (j : ι₂) × P₂ j) (k : ι₀) (p₀ : P₀ k), n ⟨i, g +ᵥ p₁⟩ p₂ ⟨k, g +ᵥ p₀⟩ = n ⟨i, p₁⟩ p₂ ⟨k, p₀⟩) (hn₂ : ∀ (g : H) (p₁ : (i : ι₁) × P₁ i) (j : ι₂) (p₂ : P₂ j) (k : ι₀) (p₀ : P₀ k), n p₁ ⟨j, g +ᵥ p₂⟩ ⟨k, g +ᵥ p₀⟩ = n p₁ ⟨j, p₂⟩ ⟨k, p₀⟩) (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₂)) :
          ((novikovKernelProduct hF₁ hF₂ hF₀ hn hfin hn₁ hn₂) a) b = ((kernelProduct hn hfin) a) b

          The Novikov-bilinear product evaluates to the product of the kernel.

          def TauCeti.NovikovModule.kernelOfMatrix {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [Zero R] (M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N) (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j) (p₀ : (k : ι₀) × P₀ k) :
          R

          The product kernel with a given matrix M of Novikov series relative to reference generators r₁, r₂ and r₀. Its coefficient on generators p₁, p₂ and p₀ in the orbits i, j and k is the coefficient of M i j k at the displacement of p₀ from r₀ k, minus the displacements of p₁ and p₂ from r₁ i and r₂ j. On invariant kernels it is the inverse of NovikovModule.kernelMatrix.

          Instances For
            @[simp]
            theorem TauCeti.NovikovModule.kernelOfMatrix_apply {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [Zero R] (M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N) {i : ι₁} {j : ι₂} {k : ι₀} (p₁ : P₁ i) (p₂ : P₂ j) (p₀ : P₀ k) :
            kernelOfMatrix r₁ r₂ r₀ M ⟨i, p₁⟩ ⟨j, p₂⟩ ⟨k, p₀⟩ = (M i j k).coeff (p₀ -ᵥ r₀ k - (p₁ -ᵥ r₁ i) - (p₂ -ᵥ r₂ j))

            The coefficient of the kernel of a matrix on generators in the orbits i, j and k is a coefficient of the (i, j, k) entry.

            theorem TauCeti.NovikovModule.kernelOfMatrix_vadd_fst {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [Zero R] (M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N) (g : H) (i : ι₁) (p₁ : P₁ i) (p₂ : (j : ι₂) × P₂ j) (k : ι₀) (p₀ : P₀ k) :
            kernelOfMatrix r₁ r₂ r₀ M ⟨i, g +ᵥ p₁⟩ p₂ ⟨k, g +ᵥ p₀⟩ = kernelOfMatrix r₁ r₂ r₀ M ⟨i, p₁⟩ p₂ ⟨k, p₀⟩

            The kernel of a matrix is unchanged when its first input and its output are translated by the same element.

            theorem TauCeti.NovikovModule.kernelOfMatrix_vadd_snd {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [Zero R] (M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N) (g : H) (p₁ : (i : ι₁) × P₁ i) (j : ι₂) (p₂ : P₂ j) (k : ι₀) (p₀ : P₀ k) :
            kernelOfMatrix r₁ r₂ r₀ M p₁ ⟨j, g +ᵥ p₂⟩ ⟨k, g +ᵥ p₀⟩ = kernelOfMatrix r₁ r₂ r₀ M p₁ ⟨j, p₂⟩ ⟨k, p₀⟩

            The kernel of a matrix is unchanged when its second input and its output are translated by the same element.

            theorem TauCeti.NovikovModule.exists_potential_le_of_kernelOfMatrix_ne_zero {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} (hF₁ : ∀ (i : ι₁) (h : H) (p : P₁ i), F₁ ⟨i, h +ᵥ p⟩ = F₁ ⟨i, p⟩ - N h) (hF₂ : ∀ (j : ι₂) (h : H) (p : P₂ j), F₂ ⟨j, h +ᵥ p⟩ = F₂ ⟨j, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [Zero R] (M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N) [Finite ι₁] [Finite ι₂] [Finite ι₀] :
            ∃ (C : ℝ), ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j) (p₀ : (k : ι₀) × P₀ k), kernelOfMatrix r₁ r₂ r₀ M p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C

            Every finite matrix of Novikov series has a supported kernel. With finitely many orbits, the kernel of any matrix of Novikov series obeys a potential bound with some constant C, since the periods of the support of each of the finitely many entries are bounded below.

            theorem TauCeti.NovikovModule.kernelOfMatrix_mem {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₀ : (k : ι₀) × P₀ k → ℝ} (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [Semiring R] (M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N) [Finite ι₀] (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j) :
            kernelOfMatrix r₁ r₂ r₀ M p₁ p₂ ∈ NovikovModule R F₀

            The outputs of the kernel of a matrix are completed combinations: in the output coordinates relative to r₀, the output at p₁ and p₂ is the family M i j · e^(u + v), where u and v are the displacements of p₁ and p₂ from their reference generators.

            @[simp]
            theorem TauCeti.NovikovModule.kernelMatrix_kernelOfMatrix {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₀ : (k : ι₀) × P₀ k → ℝ} (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [Semiring R] (M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N) [Finite ι₀] :
            kernelMatrix hF₀ ⋯ r₁ r₂ r₀ = M

            The matrix of the kernel of a matrix, relative to the same reference generators, is the matrix itself.

            theorem TauCeti.NovikovModule.kernelOfMatrix_kernelMatrix {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₀ : (k : ι₀) × P₀ k → ℝ} (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [Semiring R] [Finite ι₀] {n : (i : ι₁) × P₁ i → (j : ι₂) × P₂ j → (k : ι₀) × P₀ k → R} (hfin : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j), n p₁ p₂ ∈ NovikovModule R F₀) (hn₁ : ∀ (g : H) (i : ι₁) (p₁ : P₁ i) (p₂ : (j : ι₂) × P₂ j) (k : ι₀) (p₀ : P₀ k), n ⟨i, g +ᵥ p₁⟩ p₂ ⟨k, g +ᵥ p₀⟩ = n ⟨i, p₁⟩ p₂ ⟨k, p₀⟩) (hn₂ : ∀ (g : H) (p₁ : (i : ι₁) × P₁ i) (j : ι₂) (p₂ : P₂ j) (k : ι₀) (p₀ : P₀ k), n p₁ ⟨j, g +ᵥ p₂⟩ ⟨k, g +ᵥ p₀⟩ = n p₁ ⟨j, p₂⟩ ⟨k, p₀⟩) :
            kernelOfMatrix r₁ r₂ r₀ (kernelMatrix hF₀ hfin r₁ r₂ r₀) = n

            An invariant kernel is the kernel of its matrix: kernels invariant under translating either input together with the output are determined by their matrices.

            theorem TauCeti.NovikovModule.potential_le_of_kernelOfMatrix_ne_zero {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} (hF₁ : ∀ (i : ι₁) (h : H) (p : P₁ i), F₁ ⟨i, h +ᵥ p⟩ = F₁ ⟨i, p⟩ - N h) (hF₂ : ∀ (j : ι₂) (h : H) (p : P₂ j), F₂ ⟨j, h +ᵥ p⟩ = F₂ ⟨j, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [AddGroup R] {M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N} {C : ℝ} (hM : ∀ (i : ι₁) (j : ι₂) (k : ι₀), M i j k ∈ NovikovSeries.periodFiltration R N (F₀ ⟨k, r₀ k⟩ - F₁ ⟨i, r₁ i⟩ - F₂ ⟨j, r₂ j⟩ - C)) (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j) (p₀ : (k : ι₀) × P₀ k) (h : kernelOfMatrix r₁ r₂ r₀ M p₁ p₂ p₀ ≠ 0) :
            F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C

            The potential bound of the kernel of a matrix. If the (i, j, k) entry of the matrix lies in the period filtration at level F₀(r₀ k) - F₁(r₁ i) - F₂(r₂ j) - C, then the kernel obeys the potential bound with constant C. This is the converse of NovikovModule.kernelMatrix_mem_periodFiltration.

            noncomputable def TauCeti.NovikovModule.novikovProductOfMatrix {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} (hF₁ : ∀ (i : ι₁) (h : H) (p : P₁ i), F₁ ⟨i, h +ᵥ p⟩ = F₁ ⟨i, p⟩ - N h) (hF₂ : ∀ (j : ι₂) (h : H) (p : P₂ j), F₂ ⟨j, h +ᵥ p⟩ = F₂ ⟨j, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [CommSemiring R] [Finite ι₁] [Finite ι₂] [Finite ι₀] (M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N) :

            The Novikov-bilinear product of a matrix of Novikov series. For finitely many orbits and reference generators r₁, r₂ and r₀, every matrix M of Novikov series defines the product of its kernel NovikovModule.kernelOfMatrix, a bilinear map over the Novikov ring for the module structures of TauCeti.NovikovModule.module. In the reference coordinates it is (a ⋆ b)ₖ = ∑ᵢ ∑ⱼ aᵢ bⱼ Mᵢⱼₖ (NovikovModule.coordinates_novikovProductOfMatrix).

            Instances For
              @[simp]
              theorem TauCeti.NovikovModule.novikovProductOfMatrix_apply_val {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} (hF₁ : ∀ (i : ι₁) (h : H) (p : P₁ i), F₁ ⟨i, h +ᵥ p⟩ = F₁ ⟨i, p⟩ - N h) (hF₂ : ∀ (j : ι₂) (h : H) (p : P₂ j), F₂ ⟨j, h +ᵥ p⟩ = F₂ ⟨j, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [CommSemiring R] [Finite ι₁] [Finite ι₂] [Finite ι₀] (M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N) (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₂)) (p₀ : (k : ι₀) × P₀ k) :
              ↑(((novikovProductOfMatrix hF₁ hF₂ hF₀ r₁ r₂ r₀ M) a) b) p₀ = ∑ᶠ (q : ((i : ι₁) × P₁ i) × (j : ι₂) × P₂ j), ↑a q.1 * ↑b q.2 * kernelOfMatrix r₁ r₂ r₀ M q.1 q.2 p₀

              The coefficient of a generator in the product of a matrix is the finite sum, over all pairs of input generators, of the product of their coefficients with the kernel of the matrix.

              theorem TauCeti.NovikovModule.novikovProductOfMatrix_eq_kernelProduct {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} (hF₁ : ∀ (i : ι₁) (h : H) (p : P₁ i), F₁ ⟨i, h +ᵥ p⟩ = F₁ ⟨i, p⟩ - N h) (hF₂ : ∀ (j : ι₂) (h : H) (p : P₂ j), F₂ ⟨j, h +ᵥ p⟩ = F₂ ⟨j, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [CommSemiring R] [Finite ι₁] [Finite ι₂] [Finite ι₀] (M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N) {C : ℝ} (hn : ∀ (p₁ : (i : ι₁) × P₁ i) (p₂ : (j : ι₂) × P₂ j) (p₀ : (k : ι₀) × P₀ k), kernelOfMatrix r₁ r₂ r₀ M p₁ p₂ p₀ ≠ 0 → F₀ p₀ ≤ F₁ p₁ + F₂ p₂ + C) (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₂)) :
              ((novikovProductOfMatrix hF₁ hF₂ hF₀ r₁ r₂ r₀ M) a) b = ((kernelProduct hn ⋯) a) b

              The product of a matrix is the kernel product of its kernel, for any potential bound of that kernel. Thus the results on kernel products, such as the shift of potential cutoffs by C and continuity, apply to it.

              theorem TauCeti.NovikovModule.coordinates_novikovProductOfMatrix {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} (hF₁ : ∀ (i : ι₁) (h : H) (p : P₁ i), F₁ ⟨i, h +ᵥ p⟩ = F₁ ⟨i, p⟩ - N h) (hF₂ : ∀ (j : ι₂) (h : H) (p : P₂ j), F₂ ⟨j, h +ᵥ p⟩ = F₂ ⟨j, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [CommSemiring R] [Finite ι₁] [Finite ι₂] [Finite ι₀] (M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N) [Fintype ι₁] [Fintype ι₂] (a : ↥(NovikovModule R F₁)) (b : ↥(NovikovModule R F₂)) (k : ι₀) :
              (coordinates hF₀ r₀) (((novikovProductOfMatrix hF₁ hF₂ hF₀ r₁ r₂ r₀ M) a) b) k = ∑ i : ι₁, ∑ j : ι₂, (coordinates hF₁ r₁) a i * (coordinates hF₂ r₂) b j * M i j k

              The matrix formula for the product of a matrix. In the coordinates relative to the reference generators, the product of a and b is (a ⋆ b)ₖ = ∑ᵢ ∑ⱼ aᵢ bⱼ Mᵢⱼₖ.

              @[simp]
              theorem TauCeti.NovikovModule.coordinates_novikovProductOfMatrix_basis {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} (hF₁ : ∀ (i : ι₁) (h : H) (p : P₁ i), F₁ ⟨i, h +ᵥ p⟩ = F₁ ⟨i, p⟩ - N h) (hF₂ : ∀ (j : ι₂) (h : H) (p : P₂ j), F₂ ⟨j, h +ᵥ p⟩ = F₂ ⟨j, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [CommSemiring R] [Finite ι₁] [Finite ι₂] [Finite ι₀] (M : ι₁ → ι₂ → ι₀ → NovikovSeries R H N) (i : ι₁) (j : ι₂) (k : ι₀) :
              (coordinates hF₀ r₀) (((novikovProductOfMatrix hF₁ hF₂ hF₀ r₁ r₂ r₀ M) ((basis hF₁ r₁) i)) ((basis hF₂ r₂) j)) k = M i j k

              The product of two reference basis vectors has the (i, j) entries of the matrix as its coordinates: eᵢ ⋆ eⱼ = ∑ₖ Mᵢⱼₖ eₖ.

              theorem TauCeti.NovikovModule.eq_novikovProductOfMatrix {R : Type u_1} {H : Type u_2} {ι₁ : Type u_3} {ι₂ : Type u_4} {ι₀ : Type u_5} [AddCommGroup H] {N : H →+ ℝ} {P₁ : ι₁ → Type u_6} {P₂ : ι₂ → Type u_7} {P₀ : ι₀ → Type u_8} [(i : ι₁) → AddTorsor H (P₁ i)] [(j : ι₂) → AddTorsor H (P₂ j)] [(k : ι₀) → AddTorsor H (P₀ k)] {F₁ : (i : ι₁) × P₁ i → ℝ} {F₂ : (j : ι₂) × P₂ j → ℝ} {F₀ : (k : ι₀) × P₀ k → ℝ} (hF₁ : ∀ (i : ι₁) (h : H) (p : P₁ i), F₁ ⟨i, h +ᵥ p⟩ = F₁ ⟨i, p⟩ - N h) (hF₂ : ∀ (j : ι₂) (h : H) (p : P₂ j), F₂ ⟨j, h +ᵥ p⟩ = F₂ ⟨j, p⟩ - N h) (hF₀ : ∀ (k : ι₀) (h : H) (p : P₀ k), F₀ ⟨k, h +ᵥ p⟩ = F₀ ⟨k, p⟩ - N h) (r₁ : (i : ι₁) → P₁ i) (r₂ : (j : ι₂) → P₂ j) (r₀ : (k : ι₀) → P₀ k) [CommSemiring R] [Finite ι₁] [Finite ι₂] [Finite ι₀] (B : ↥(NovikovModule R F₁) →ₗ[NovikovSeries R H N] ↥(NovikovModule R F₂) →ₗ[NovikovSeries R H N] ↥(NovikovModule R F₀)) :
              B = novikovProductOfMatrix hF₁ hF₂ hF₀ r₁ r₂ r₀ fun (i : ι₁) (j : ι₂) (k : ι₀) => (coordinates hF₀ r₀) ((B ((basis hF₁ r₁) i)) ((basis hF₂ r₂) j)) k

              Every Novikov-bilinear map is the product of a matrix. A bilinear map over the Novikov ring between finitely generated completed modules is the product of the matrix of coordinates of its values on the reference basis vectors.