Formalization Blueprint for “An Introduction to Algebraic Combinatorics” by Darij Grinberg

1.12 Infinite products of FPSs

1.12.1 Determining coefficients in products

Definition 1.340
#

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) be a (possibly infinite) family of FPSs. Let \(n\in \mathbb {N}\). Let \(M\) be a finite subset of \(I\).

(a) We say that \(M\) determines the \(x^{n}\)-coefficient in the sum of \(\left(\mathbf{a}_{i}\right)_{i\in I}\) if every finite subset \(J\) of \(I\) satisfying \(M\subseteq J\subseteq I\) satisfies

\[ \left[x^{n}\right]\left(\sum _{i\in J}\mathbf{a}_{i}\right) =\left[x^{n}\right]\left(\sum _{i\in M}\mathbf{a}_{i}\right). \]

(b) We say that \(M\) determines the \(x^{n}\)-coefficient in the product of \(\left(\mathbf{a}_{i}\right)_{i\in I}\) if every finite subset \(J\) of \(I\) satisfying \(M\subseteq J\subseteq I\) satisfies

\[ \left[x^{n}\right]\left(\prod _{i\in J}\mathbf{a}_{i}\right) =\left[x^{n}\right]\left(\prod _{i\in M}\mathbf{a}_{i}\right). \]
def PowerSeries.DeterminesCoeffInProd {R : Type u_1} [CommRing R] {I : Type u_2} (a : IPowerSeries R) (M : Finset I) (n : ) :
Definition 1.341
#

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) be a (possibly infinite) family of FPSs. Let \(n\in \mathbb {N}\).

(a) We say that the \(x^{n}\)-coefficient in the sum of \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is finitely determined if there is a finite subset \(M\) of \(I\) that determines the \(x^{n}\)-coefficient in the sum of \(\left(\mathbf{a}_{i}\right)_{i\in I}\).

(b) We say that the \(x^{n}\)-coefficient in the product of \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is finitely determined if there is a finite subset \(M\) of \(I\) that determines the \(x^{n}\)-coefficient in the product of \(\left(\mathbf{a}_{i}\right)_{i\in I}\).

Proposition 1.342

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) be a (possibly infinite) family of FPSs. Then:

(a) The family \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is summable if and only if each coefficient in its sum is finitely determined (i.e., for each \(n\in \mathbb {N}\), the \(x^{n}\)-coefficient in the sum of \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is finitely determined).

(b) If the family \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is summable, then its sum \(\sum _{i\in I}\mathbf{a}_{i}\) is the FPS whose \(x^{n}\)-coefficient (for any \(n\in \mathbb {N}\)) can be computed as follows: If \(n\in \mathbb {N}\), and if \(M\) is a finite subset of \(I\) that determines the \(x^{n}\)-coefficient in the sum of \(\left(\mathbf{a}_{i}\right)_{i\in I}\), then

\[ \left[x^{n}\right]\left(\sum _{i\in I}\mathbf{a}_{i}\right) =\left[x^{n}\right]\left(\sum _{i\in M}\mathbf{a}_{i}\right). \]
theorem PowerSeries.summable_iff_coeff_finitely_determined {R : Type u_1} [CommRing R] {I : Type u_2} (a : IPowerSeries R) :
(∀ (n : ), {i : I | (coeff n) (a i) 0}.Finite) ∀ (n : ), CoeffFinitelyDeterminedInSum a n
Proof

Easy and LTTR.

1.12.2 Multipliable families and infinite products

Definition 1.343
#

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\) be a (possibly infinite) family of FPSs. Then:

(a) The family \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is said to be multipliable if and only if each coefficient in its product is finitely determined.

(b) If the family \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is multipliable, then its product \(\prod _{i\in I}\mathbf{a}_{i}\) is defined to be the FPS whose \(x^{n}\)-coefficient (for any \(n\in \mathbb {N}\)) can be computed as follows: If \(n\in \mathbb {N}\), and if \(M\) is a finite subset of \(I\) that determines the \(x^{n}\)-coefficient in the product of \(\left( \mathbf{a}_{i}\right)_{i\in I}\), then

\[ \left[x^{n}\right]\left(\prod _{i\in I}\mathbf{a}_{i}\right) =\left[x^{n}\right]\left(\prod _{i\in M}\mathbf{a}_{i}\right). \]
Proposition 1.344

This definition of \(\prod _{i\in I}\mathbf{a}_{i}\) is well-defined – i.e., the coefficient \(\left[x^{n}\right]\left(\prod _{i\in M}\mathbf{a}_{i}\right)\) does not depend on \(M\) (as long as \(M\) is a finite subset of \(I\) that determines the \(x^{n}\)-coefficient in the product of \(\left(\mathbf{a}_{i}\right)_{i\in I}\)).

theorem PowerSeries.multipliable_coeff_eq_of_determines {R : Type u_1} [CommRing R] {I : Type u_2} {a : IPowerSeries R} {M₁ M₂ : Finset I} {n : } (h₁ : DeterminesCoeffInProd a M₁ n) (h₂ : DeterminesCoeffInProd a M₂ n) :
(coeff n) (∏ iM₁, a i) = (coeff n) (∏ iM₂, a i)
Proof

Let \(n\in \mathbb {N}\). We need to check that the coefficient \(\left[x^{n}\right]\left(\prod _{i\in M}\mathbf{a}_{i}\right)\) does not depend on \(M\). In other words, we need to check that if \(M_{1}\) and \(M_{2}\) are two finite subsets of \(I\) that each determine the \(x^{n}\)-coefficient in the product of \(\left(\mathbf{a}_{i}\right)_{i\in I}\), then

\[ \left[x^{n}\right]\left(\prod _{i\in M_{1}}\mathbf{a}_{i}\right) =\left[x^{n}\right]\left(\prod _{i\in M_{2}}\mathbf{a}_{i}\right). \]

So let us prove this. Since \(M_{1}\) determines the \(x^{n}\)-coefficient, every finite subset \(J\) of \(I\) with \(M_{1}\subseteq J\) satisfies \(\left[x^{n}\right]\left(\prod _{i\in J}\mathbf{a}_{i}\right) =\left[x^{n}\right]\left(\prod _{i\in M_{1}}\mathbf{a}_{i}\right)\). Applying this to \(J=M_{1}\cup M_{2}\), we obtain

\[ \left[x^{n}\right]\left(\prod _{i\in M_{1}\cup M_{2}}\mathbf{a}_{i}\right) =\left[x^{n}\right]\left(\prod _{i\in M_{1}}\mathbf{a}_{i}\right). \]

The same argument (with the roles of \(M_{1}\) and \(M_{2}\) swapped) yields

\[ \left[x^{n}\right]\left(\prod _{i\in M_{2}\cup M_{1}}\mathbf{a}_{i}\right) =\left[x^{n}\right]\left(\prod _{i\in M_{2}}\mathbf{a}_{i}\right). \]

Since \(M_{1}\cup M_{2}=M_{2}\cup M_{1}\), the left hand sides are equal, whence \(\left[x^{n}\right]\left(\prod _{i\in M_{1}}\mathbf{a}_{i}\right) =\left[x^{n}\right]\left(\prod _{i\in M_{2}}\mathbf{a}_{i}\right)\).

Proposition 1.345

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\) be a finite family of FPSs. Then, the product \(\prod _{i\in I}\mathbf{a}_{i}\) defined according to Definition 1.343 (b) equals the finite product \(\prod _{i\in I}\mathbf{a}_{i}\) defined in the usual way (i.e., defined as in any commutative ring).

theorem PowerSeries.tprod_eq_finprod {R : Type u_1} [CommRing R] {I : Type u_2} [Fintype I] (a : IPowerSeries R) (ha : Multipliable a) :
tprod a ha = i : I, a i
Proof

Argue that \(I\) itself is a subset of \(I\) that determines all coefficients in the product of \(\left(\mathbf{a}_{i}\right)_{i\in I}\). See Section A.1 for a detailed proof.

1.12.3 Irrelevance lemmas

Lemma 1.346

If \(a\overset {x^n}{\equiv } b\) and \(c\overset {x^n}{\equiv } d\), then \(ac\overset {x^n}{\equiv } bd\). In other words, \(x^n\)-equivalence is preserved under multiplication.

theorem AlgebraicCombinatorics.FPS.xnEquiv_mul_of_coeff_eq {K : Type u_1} [CommRing K] {n : } {a b c d : PowerSeries K} (hab : mn, (PowerSeries.coeff m) a = (PowerSeries.coeff m) b) (hcd : mn, (PowerSeries.coeff m) c = (PowerSeries.coeff m) d) (m : ) :
m n(PowerSeries.coeff m) (a * c) = (PowerSeries.coeff m) (b * d)
Proof

This follows from the Cauchy product formula: the \(x^m\)-coefficient of a product \(ac\) depends only on the coefficients of \(a\) and \(c\) up to degree \(m\).

Lemma 1.347

If \(a\overset {x^n}{\equiv } b\) and \(c\overset {x^n}{\equiv } d\) with \(c\) and \(d\) invertible (i.e., \([x^0]c\) and \([x^0]d\) are units), then \(a/c \overset {x^n}{\equiv } b/d\).

theorem AlgebraicCombinatorics.FPS.xnEquiv_div {K : Type u_1} [CommRing K] {n : } {a b c d : PowerSeries K} (hab : a ≡[x^n] b) (hcd : c ≡[x^n] d) (hc : IsUnit (PowerSeries.constantCoeff c)) (hd : IsUnit (PowerSeries.constantCoeff d)) :
Proof

First show that \(c^{-1}\overset {x^n}{\equiv } d^{-1}\) using \(x^n\)-equivalence of inverses, then apply Lemma 1.346 to \(a\cdot c^{-1}\) and \(b\cdot d^{-1}\).

Lemma 1.348

Let \(a,f\in K\left[\left[x\right]\right]\) be two FPSs. Let \(n\in \mathbb {N}\). Assume that

\[ \left[x^{m}\right]f=0 \qquad \text{for each }m\in \left\{ 0,1,\ldots ,n\right\} . \]

Then,

\[ \left[x^{m}\right]\left(a\left(1+f\right)\right)=\left[x^{m}\right]a \qquad \text{for each }m\in \left\{ 0,1,\ldots ,n\right\} . \]
theorem PowerSeries.coeff_mul_one_add_eq_of_coeff_zero {R : Type u_1} [CommRing R] {a f : PowerSeries R} {n : } (hf : mn, (coeff m) f = 0) (m : ) (hm : m n) :
(coeff m) (a * (1 + f)) = (coeff m) a
Proof

The FPS \(af\) is a multiple of \(f\) (since \(af=fa\)). Hence, Lemma 1.132 yields that \(\left[x^{m}\right]\left(af\right)=0\) for each \(m\in \left\{ 0,1,\ldots ,n\right\} \). Now, for each \(m\in \left\{ 0,1,\ldots ,n\right\} \), we have

\[ \left[x^{m}\right]\left(a\left(1+f\right)\right) =\left[x^{m}\right]\left(a+af\right) =\left[x^{m}\right]a+\underbrace{\left[x^{m}\right]\left(af\right)}_{=0} =\left[x^{m}\right]a. \]
Lemma 1.349

Let \(a\in K\left[\left[x\right]\right]\) be an FPS. Let \(\left(f_{i}\right)_{i\in J} \in K\left[\left[x\right]\right]^{J}\) be a finite family of FPSs. Let \(n\in \mathbb {N}\). Assume that each \(i\in J\) satisfies

\[ \left[x^{m}\right]\left(f_{i}\right)=0 \qquad \text{for each } m\in \left\{ 0,1,\ldots ,n\right\} . \]

Then,

\[ \left[x^{m}\right]\left(a\prod _{i\in J}\left(1+f_{i}\right)\right) =\left[x^{m}\right]a \qquad \text{for each }m\in \left\{ 0,1,\ldots ,n\right\} . \]
theorem PowerSeries.coeff_mul_prod_one_add_eq {R : Type u_1} [CommRing R] {I : Type u_2} {a : PowerSeries R} {J : Finset I} {f : IPowerSeries R} {n : } (hf : iJ, mn, (coeff m) (f i) = 0) (m : ) (hm : m n) :
(coeff m) (a * iJ, (1 + f i)) = (coeff m) a
Proof

This is just Lemma 1.348, applied \(\left|J\right|\) many times. See Section A.1 for a detailed proof.

1.12.4 Multipliability criterion

Theorem 1.350

Let \(\left(f_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) be a (possibly infinite) summable family of FPSs. Then, the family \(\left(1+f_{i}\right)_{i\in I}\) is multipliable.

theorem PowerSeries.multipliable_one_add_of_summable {R : Type u_1} [CommRing R] {I : Type u_2} {f : IPowerSeries R} (hf : ∀ (n : ), {i : I | (coeff n) (f i) 0}.Finite) :
Multipliable fun (i : I) => 1 + f i
Proof

This is an easy consequence of Lemma 1.349. See Section A.1 for a detailed proof.

Proposition 1.351

If all but finitely many entries of a family \(\left(\mathbf{a}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) equal \(1\) (that is, if all but finitely many \(i\in I\) satisfy \(\mathbf{a}_{i}=1\)), then this family is multipliable.

theorem PowerSeries.multipliable_of_finite_ne_one {R : Type u_1} [CommRing R] {I : Type u_2} (a : IPowerSeries R) (h : {i : I | a i 1}.Finite) :
Proof

LTTR. (See Section A.1 for a detailed proof.)

1.12.5 Further multipliability results

Lemma 1.352

If every entry of a family \(\left(\mathbf{a}_{i}\right)_{i\in I}\) equals \(1\), then the family is multipliable.

theorem PowerSeries.multipliable_const_one {R : Type u_1} [CommRing R] {I : Type u_2} :
Multipliable fun (x : I) => 1
Proof

The empty set determines every coefficient (the product over \(\emptyset \) is \(1\)).

Lemma 1.353

Any family indexed by the empty type is multipliable.

Proof

The empty set determines all coefficients.

Lemma 1.354

Any family indexed by a unique (singleton) type is multipliable.

theorem PowerSeries.multipliable_singleton {R : Type u_1} [CommRing R] {I : Type u_2} [Unique I] (a : IPowerSeries R) :
Proof

The single-element set determines all coefficients.

Lemma 1.355

If some \(\mathbf{a}_j = 0\) in the family, then the family is multipliable (the product is \(0\)).

theorem PowerSeries.multipliable_of_zero_mem {R : Type u_1} [CommRing R] {I : Type u_2} (a : IPowerSeries R) {j : I} (hj : a j = 0) :
Proof

Any finite set containing \(j\) determines all coefficients (the product is \(0\)).

Lemma 1.356

If \(I\) is a finite set, then any family \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is multipliable.

Proof

\(I\) itself determines all coefficients.

Lemma 1.357

If \(I\) is a finite set and \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is a family of FPSs, then the infinite product \(\prod _{i\in I}\mathbf{a}_{i}\) equals the ordinary finite product.

theorem AlgebraicCombinatorics.FPS.infprod_of_finite {K : Type u_1} [CommRing K] {ι : Type u_2} [Fintype ι] (a : ιPowerSeries K) :
∏∞ a = i : ι, a i
Proof

This is a special case of Proposition 1.345.

Lemma 1.358

If every entry of a family equals \(1\), then the infinite product equals \(1\).

theorem PowerSeries.tprod_const_one {R : Type u_1} [CommRing R] {I : Type u_2} (h : Multipliable fun (x : I) => 1 := ) :
tprod (fun (x : I) => 1) h = 1
Proof

The empty set is an \(x^n\)-approximator for every \(n\), and \(\prod _{i\in \emptyset }\mathbf{a}_i = 1\).

1.12.6 Binary product example

Lemma 1.359

For each \(m\in \mathbb {N}\),

\[ \prod _{i=0}^{m}\left(1+x^{2^{i}}\right) =\left(1-x^{2^{m+1}}\right)\cdot \frac{1}{1-x}. \]
theorem PowerSeries.prod_one_add_pow_two_eq {R : Type u_1} [CommRing R] (m : ) :
iFinset.range (m + 1), (1 + X ^ 2 ^ i) = (1 - X ^ 2 ^ (m + 1)) * (1 - X).invOfUnit 1
Proof

By induction on \(m\), using the identity \(\left(1-a\right)\left(1+a\right)=1-a^{2}\).

Lemma 1.360

The family \(\left(1+x^{2^{i}}\right)_{i\in \mathbb {N}}\) is multipliable.

theorem PowerSeries.multipliable_one_add_pow_two {R : Type u_1} [CommRing R] :
Multipliable fun (i : ) => 1 + X ^ 2 ^ i
Proof

Apply Theorem 1.350: the family \(\left(x^{2^{i}}\right)_{i\in \mathbb {N}}\) is summable (for each \(n\), at most one \(i\) satisfies \(2^i = n\) since \(i\mapsto 2^i\) is injective).

Proposition 1.361

We have

\[ \prod _{i=0}^{\infty }\left(1+x^{2^{i}}\right) = \frac{1}{1-x}. \]

This relates to the unique binary representation of natural numbers.

theorem PowerSeries.tprod_one_add_pow_two_eq {R : Type u_1} [CommRing R] :
tprod (fun (i : ) => 1 + X ^ 2 ^ i) = (1 - X).invOfUnit 1
Proof

For each \(n\), the set \(\{ 0,1,\ldots ,n\} \) determines the \(x^n\)-coefficient: any factor \(\left(1+x^{2^i}\right)\) with \(i {\gt} n\) has \(2^i {\gt} n\), so it does not affect coefficients \(\le n\). The finite product for \(i\in \{ 0,\ldots ,n\} \) equals \(\left(1-x^{2^{n+1}}\right)/(1-x)\) by Lemma 1.359, and its \(x^n\)-coefficient equals that of \(1/(1-x)\) since \(2^{n+1} {\gt} n\).

1.12.7 \(x^n\)-approximators

Definition 1.362
#

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) be a family of FPSs. Let \(n\in \mathbb {N}\). An \(x^{n}\)-approximator for \(\left(\mathbf{a}_{i}\right)_{i\in I}\) means a finite subset \(M\) of \(I\) that determines the first \(n+1\) coefficients in the product of \(\left(\mathbf{a}_{i}\right)_{i\in I}\). (In other words, \(M\) has to determine the \(x^{m}\)-coefficient in the product of \(\left(\mathbf{a}_{i}\right)_{i\in I}\) for each \(m\in \left\{ 0,1,\ldots ,n\right\} \).)

Lemma 1.363

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) be a multipliable family of FPSs. Let \(n\in \mathbb {N}\). Then, there exists an \(x^{n}\)-approximator for \(\left(\mathbf{a}_{i}\right)_{i\in I}\).

theorem PowerSeries.exists_xn_approximator {R : Type u_1} [CommRing R] {I : Type u_2} [DecidableEq I] (a : IPowerSeries R) (ha : Multipliable a) (n : ) :
∃ (M : Finset I), IsXnApproximator a M n
theorem AlgebraicCombinatorics.FPS.multipliable_exists_approximator {K : Type u_1} [CommRing K] {ι : Type u_2} {a : ιPowerSeries K} (h : Multipliable a) (n : ) :
∃ (U : Finset ι), IsXnApproximator a n U
Proof

This is an easy consequence of the fact that a union of finitely many finite sets is finite. A detailed proof can be found in Section A.1.

Proposition 1.364

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) be a family of FPSs. Let \(n\in \mathbb {N}\). Let \(M\) be an \(x^{n}\)-approximator for \(\left(\mathbf{a}_{i}\right)_{i\in I}\). Then:

(a) Every finite subset \(J\) of \(I\) satisfying \(M\subseteq J\subseteq I\) satisfies

\[ \prod _{i\in J}\mathbf{a}_{i}\overset {x^{n}}{\equiv }\prod _{i\in M}\mathbf{a}_{i}. \]

(b) If the family \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is multipliable, then

\[ \prod _{i\in I}\mathbf{a}_{i}\overset {x^{n}}{\equiv }\prod _{i\in M}\mathbf{a}_{i}. \]
theorem PowerSeries.xn_approximator_superset_xnEquiv {R : Type u_1} [CommRing R] {I : Type u_2} {a : IPowerSeries R} {M : Finset I} {n : } (hM : IsXnApproximator a M n) {J : Finset I} (hMJ : M J) :
iJ, a i ≡[x^n] iM, a i
theorem PowerSeries.tprod_xnEquiv_approximator {R : Type u_1} [CommRing R] {I : Type u_2} {a : IPowerSeries R} (ha : Multipliable a) {M : Finset I} {n : } (hM : IsXnApproximator a M n) :
tprod a ha ≡[x^n] iM, a i
Proof

This follows easily from Definition 1.362 and Definition 1.343 (b). See Section A.1 for a detailed proof.

1.12.8 Properties of infinite products

Proposition 1.365

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) be a family of FPSs. Let \(J\) be a subset of \(I\). Assume that the subfamilies \(\left(\mathbf{a}_{i}\right)_{i\in J}\) and \(\left(\mathbf{a}_{i}\right)_{i\in I\setminus J}\) are multipliable. Then:

(a) The entire family \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is multipliable.

(b) We have

\[ \prod _{i\in I}\mathbf{a}_{i}=\left(\prod _{i\in J}\mathbf{a}_{i}\right) \cdot \left(\prod _{i\in I\setminus J}\mathbf{a}_{i}\right). \]
theorem PowerSeries.multipliable_of_union {R : Type u_1} [CommRing R] {I : Type u_2} {a : IPowerSeries R} {J : Set I} (hJ : Multipliable fun (i : J) => a i) (hIJ : Multipliable fun (i : ↑(Set.univ \ J)) => a i) :
theorem PowerSeries.tprod_eq_tprod_mul_tprod {R : Type u_1} [CommRing R] {I : Type u_2} {a : IPowerSeries R} {J : Set I} (ha : Multipliable a) (hJ : Multipliable fun (i : J) => a i) (hIJ : Multipliable fun (i : ↑(Set.univ \ J)) => a i) :
tprod a ha = tprod (fun (i : J) => a i) hJ * tprod (fun (i : ↑(Set.univ \ J)) => a i) hIJ
Proof

Fix \(n\in \mathbb {N}\). Lemma 1.363 (applied to \(J\) instead of \(I\)) shows that there exists an \(x^{n}\)-approximator \(U\) for \(\left(\mathbf{a}_{i}\right)_{i\in J}\). Lemma 1.363 shows that there exists an \(x^{n}\)-approximator \(V\) for \(\left(\mathbf{a}_{i}\right)_{i\in I\setminus J}\). Note that \(U\cup V\) is finite. Now, \(U\cup V\) is an \(x^{n}\)-approximator for \(\left(\mathbf{a}_{i}\right)_{i\in I}\). Hence, the \(x^{n}\)-coefficient in the product of \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is finitely determined. This proves part (a). Part (b) follows using Proposition 1.364 (b).

See Section A.1 for the details.

Proposition 1.366

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) and \(\left(\mathbf{b}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) be two multipliable families of FPSs. Then:

(a) The family \(\left(\mathbf{a}_{i}\mathbf{b}_{i}\right)_{i\in I}\) is multipliable.

(b) We have

\[ \prod _{i\in I}\left(\mathbf{a}_{i}\mathbf{b}_{i}\right)=\left(\prod _{i\in I} \mathbf{a}_{i}\right)\cdot \left(\prod _{i\in I}\mathbf{b}_{i}\right). \]
theorem PowerSeries.multipliable_mul {R : Type u_1} [CommRing R] {I : Type u_2} {a b : IPowerSeries R} (ha : Multipliable a) (hb : Multipliable b) :
Multipliable fun (i : I) => a i * b i
theorem PowerSeries.tprod_mul_eq_mul_tprod {R : Type u_1} [CommRing R] {I : Type u_2} {a b : IPowerSeries R} (ha : Multipliable a) (hb : Multipliable b) (hab : Multipliable fun (i : I) => a i * b i := ) :
tprod (fun (i : I) => a i * b i) hab = tprod a ha * tprod b hb
Proof

Fix \(n\in \mathbb {N}\). Lemma 1.363 shows that there exists an \(x^{n}\)-approximator \(U\) for \(\left(\mathbf{a}_{i}\right)_{i\in I}\). Lemma 1.363 (applied to \(\mathbf{b}_{i}\) instead of \(\mathbf{a}_{i}\)) shows that there exists an \(x^{n}\)-approximator \(V\) for \(\left(\mathbf{b}_{i}\right)_{i\in I}\). Note that \(U\cup V\) is finite. Now, \(U\cup V\) is an \(x^{n}\)-approximator for \(\left(\mathbf{a}_{i}\mathbf{b}_{i}\right)_{i\in I}\). From here, proceed as in the proof of Proposition 1.365.

See Section A.1 for the details.

Proposition 1.367

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) and \(\left(\mathbf{b}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) be two multipliable families of FPSs. Assume that the FPS \(\mathbf{b}_{i}\) is invertible for each \(i\in I\). Then:

(a) The family \(\left(\frac{\mathbf{a}_{i}}{\mathbf{b}_{i}}\right)_{i\in I}\) is multipliable.

(b) We have

\[ \prod _{i\in I}\frac{\mathbf{a}_{i}}{\mathbf{b}_{i}} =\frac{\prod _{i\in I}\mathbf{a}_{i}}{\prod _{i\in I}\mathbf{b}_{i}}. \]
theorem PowerSeries.multipliable_div {R : Type u_1} [CommRing R] {I : Type u_2} {a b : IPowerSeries R} (ha : Multipliable a) (hb : Multipliable b) (hb_inv : ∀ (i : I), IsUnit ((coeff 0) (b i))) :
Multipliable fun (i : I) => a i * Ring.inverse (b i)
theorem PowerSeries.tprod_div_eq_div_tprod {R : Type u_1} [CommRing R] {I : Type u_2} {a b : IPowerSeries R} (ha : Multipliable a) (hb : Multipliable b) (hb_inv : ∀ (i : I), IsUnit ((coeff 0) (b i))) (hab : Multipliable fun (i : I) => a i * Ring.inverse (b i) := ) :
tprod (fun (i : I) => a i * Ring.inverse (b i)) hab = tprod a ha * Ring.inverse (tprod b hb)
Proof

This is similar to the proof of Proposition 1.366, but using Lemma 1.347 (\(x^n\)-equivalence of quotients) instead of Lemma 1.346. See Section A.1 for the details.

1.12.9 Subfamilies of multipliable families

Lemma 1.368

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\) be a family of invertible FPSs. Let \(U\) be an \(x^n\)-approximator for \(\left(\mathbf{a}_{i}\right)_{i\in I}\). Let \(J\subseteq I\). Then \(U\cap J\) (viewed as a subset of \(J\)) is an \(x^n\)-approximator for the subfamily \(\left(\mathbf{a}_{i}\right)_{i\in J}\).

theorem AlgebraicCombinatorics.FPS.xnApproximator_inter {K : Type u_1} [CommRing K] {ι : Type u_2} [DecidableEq ι] {a : ιPowerSeries K} {n : } {U J : Finset ι} (hU : IsXnApproximator a n U) (hinv : ∀ (i : ι), IsUnit (PowerSeries.constantCoeff (a i))) :
∃ (M : Finset J), IsXnApproximator (fun (i : J) => a i) n M
Proof

Let \(T\supseteq U\cap J\) be a finite subset of \(J\). Then \(T\cup (U\setminus J)\) and \((U\cap J)\cup (U\setminus J) = U\) are both finite supersets of \(U\), so their products are \(x^n\)-equivalent to \(\prod _{i\in U}\mathbf{a}_i\) by the approximator property. Writing each product as a product over the \(J\)-part times a product over \(U\setminus J\), and canceling the invertible common factor \(\prod _{i\in U\setminus J}\mathbf{a}_i\), we conclude \(\prod _{i\in T}\mathbf{a}_i \overset {x^n}{\equiv } \prod _{i\in U\cap J}\mathbf{a}_i\).

Proposition 1.369

Let \(\left(\mathbf{a}_{i}\right)_{i\in I}\in K\left[\left[x\right]\right]^{I}\) be a multipliable family of invertible FPSs. Then, any subfamily of \(\left(\mathbf{a}_{i}\right)_{i\in I}\) is multipliable.

theorem PowerSeries.multipliable_subfamily {R : Type u_1} [CommRing R] {I : Type u_2} {a : IPowerSeries R} (ha : Multipliable a) (ha_inv : ∀ (i : I), IsUnit ((coeff 0) (a i))) (J : Set I) :
Multipliable fun (i : J) => a i
Proof

We must show that \((\mathbf{a}_i)_{i\in J}\) is multipliable whenever \(J \subseteq I\). The idea is to show that if \(U\) is an \(x^{n}\)-approximator for \(\left(\mathbf{a}_{i}\right)_{i\in I}\), then \(U\cap J\) determines the \(x^{n}\)-coefficient in the product of \(\left(\mathbf{a}_{i}\right)_{i\in J}\) (and, in fact, is an \(x^{n}\)-approximator for \(\left(\mathbf{a}_{i}\right)_{i\in J}\)). This uses Lemma 1.368 and relies on the invertibility of \(\prod _{i\in U\setminus J}\mathbf{a}_{i}\); this is why the FPS \(\mathbf{a}_{i}\) are required to be invertible in the proposition.

See Section A.1 for the details.

1.12.10 Reindexing

Proposition 1.370

Let \(S\) and \(T\) be two sets. Let \(f:S\rightarrow T\) be a bijection. Let \(\left(\mathbf{a}_{t}\right)_{t\in T}\in K\left[\left[x\right]\right]^{T}\) be a multipliable family of FPSs. Then,

\[ \prod _{t\in T}\mathbf{a}_{t}=\prod _{s\in S}\mathbf{a}_{f\left(s\right)} \]

(and, in particular, the product on the right hand side is well-defined, i.e., the family \(\left(\mathbf{a}_{f\left(s\right)}\right)_{s\in S}\) is multipliable).

theorem PowerSeries.multipliable_reindex {R : Type u_1} [CommRing R] {S : Type u_3} {T : Type u_4} {f : ST} (hf : Function.Bijective f) {a : TPowerSeries R} (ha : Multipliable a) :
theorem PowerSeries.tprod_reindex {R : Type u_1} [CommRing R] {S : Type u_3} {T : Type u_4} {f : ST} (hf : Function.Bijective f) {a : TPowerSeries R} (ha : Multipliable a) (haf : Multipliable (a f) := ) :
tprod (a f) haf = tprod a ha
Proof

This is a trivial consequence of the definitions of multipliability and infinite products.

1.12.11 Breaking products into subproducts

Lemma 1.371

Let \(n\in \mathbb {N}\) and let \(V\) be a finite set. Let \(c,d : V \to K[[x]]\) be two families of FPSs such that \(c_v \overset {x^n}{\equiv } d_v\) for each \(v\in V\). Then

\[ \prod _{v\in V} c_v \overset {x^n}{\equiv } \prod _{v\in V} d_v. \]
theorem AlgebraicCombinatorics.FPS.xnEquiv_finprod {K : Type u_1} [CommRing K] {ι : Type u_2} {n : } {V : Finset ι} {c d : ιPowerSeries K} (h : vV, c v ≡[x^n] d v) :
vV, c v ≡[x^n] vV, d v
Proof

By induction on \(|V|\). The base case \(V = \emptyset \) is trivial. In the inductive step, use \(x^n\)-equivalence of products: \(\prod _{v\in V \cup \{ w\} } c_v = c_w \cdot \prod _{v\in V} c_v\) and similarly for \(d\), then apply the fact that \(x^n\)-equivalence is preserved under multiplication.

Proposition 1.372

Let \(\left(\mathbf{a}_{s}\right)_{s\in S}\in K\left[\left[x\right]\right]^{S}\) be a multipliable family of FPSs. Let \(W\) be a set. Let \(f:S\rightarrow W\) be a map. Assume that for each \(w\in W\), the family \(\left(\mathbf{a}_{s}\right)_{s\in S,\; f(s)=w}\) is multipliable. Then,

\[ \prod _{s\in S}\mathbf{a}_{s}=\prod _{w\in W}\; \; \prod _{\substack{[s, \in , S, ;, \\ , , f, (, s, ), =, w]}}\mathbf{a}_{s}. \]

(In particular, the right hand side is well-defined – i.e., the family \(\left(\prod _{\substack{[s, \in , S, ;, \\ , , f, (, s, ), =, w]}}\mathbf{a}_{s}\right)_{w\in W}\) is multipliable.)

Note: The Lean formalization of this proposition (without sorry) requires the additional assumption that all FPSs are invertible (i.e., \([x^0]\mathbf{a}_s\) is a unit for each \(s\)), which is used through Proposition 1.369 to guarantee multipliability of subfamilies. The versions without this invertibility hypothesis are formalized with sorry.

theorem PowerSeries.multipliable_prod_fibers_inv {R : Type u_1} [CommRing R] {S : Type u_3} {W : Type u_4} {f : SW} {a : SPowerSeries R} (ha : Multipliable a) (ha_inv : ∀ (s : S), IsUnit ((coeff 0) (a s))) (ha_fibers : ∀ (w : W), Multipliable fun (s : { s : S // f s = w }) => a s := ) :
Multipliable fun (w : W) => tprod (fun (s : { s : S // f s = w }) => a s)
theorem PowerSeries.tprod_eq_tprod_fibers_inv {R : Type u_1} [CommRing R] {S : Type u_3} {W : Type u_4} {f : SW} {a : SPowerSeries R} (ha : Multipliable a) (ha_inv : ∀ (s : S), IsUnit ((coeff 0) (a s))) (ha_fibers : ∀ (w : W), Multipliable fun (s : { s : S // f s = w }) => a s := ) (ha_outer : Multipliable fun (w : W) => tprod (fun (s : { s : S // f s = w }) => a s) := ) :
tprod a ha = tprod (fun (w : W) => tprod (fun (s : { s : S // f s = w }) => a s) ) ha_outer
Proof

This can be derived from the analogous property of finite products, since all coefficients in a multipliable product are finitely determined (conveniently using \(x^{n}\)-approximators, which determine several coefficients at the same time). See Section A.1 for the details.

1.12.12 Fubini rule for infinite products

Proposition 1.373 Fubini rule for infinite products of FPSs

Let \(I\) and \(J\) be two sets. Let \(\left(\mathbf{a}_{(i,j)}\right)_{(i,j)\in I\times J}\in K\left[\left[x\right]\right]^{I\times J}\) be a multipliable family of FPSs. Assume that for each \(i\in I\), the family \(\left(\mathbf{a}_{(i,j)}\right)_{j\in J}\) is multipliable. Assume that for each \(j\in J\), the family \(\left(\mathbf{a}_{(i,j)}\right)_{i\in I}\) is multipliable. Then,

\[ \prod _{i\in I}\; \; \prod _{j\in J}\mathbf{a}_{(i,j)} =\prod _{(i,j)\in I\times J}\mathbf{a}_{(i,j)} =\prod _{j\in J}\; \; \prod _{i\in I}\mathbf{a}_{(i,j)}. \]

(In particular, all the products appearing in this equality are well-defined.)

theorem PowerSeries.tprod_fubini {R : Type u_1} [CommRing R] {I : Type u_3} {J : Type u_4} {a : I × JPowerSeries R} (ha : Multipliable a) (ha_I : ∀ (i : I), Multipliable fun (j : J) => a (i, j)) (_ha_J : ∀ (j : J), Multipliable fun (i : I) => a (i, j)) (ha_outer_I : Multipliable fun (i : I) => tprod (fun (j : J) => a (i, j)) := ) :
tprod a ha = tprod (fun (i : I) => tprod (fun (j : J) => a (i, j)) ) ha_outer_I
theorem PowerSeries.tprod_fubini_J {R : Type u_1} [CommRing R] {I : Type u_3} {J : Type u_4} {a : I × JPowerSeries R} (ha : Multipliable a) (ha_J : ∀ (j : J), Multipliable fun (i : I) => a (i, j)) (ha_outer_J : Multipliable fun (j : J) => tprod (fun (i : I) => a (i, j)) := ) :
tprod a ha = tprod (fun (j : J) => tprod (fun (i : I) => a (i, j)) ) ha_outer_J
theorem PowerSeries.tprod_fubini_full {R : Type u_1} [CommRing R] {I : Type u_3} {J : Type u_4} {a : I × JPowerSeries R} (ha : Multipliable a) (ha_I : ∀ (i : I), Multipliable fun (j : J) => a (i, j)) (ha_J : ∀ (j : J), Multipliable fun (i : I) => a (i, j)) (ha_outer_I : Multipliable fun (i : I) => tprod (fun (j : J) => a (i, j)) := ) (ha_outer_J : Multipliable fun (j : J) => tprod (fun (i : I) => a (i, j)) := ) :
tprod (fun (i : I) => tprod (fun (j : J) => a (i, j)) ) ha_outer_I = tprod a ha tprod a ha = tprod (fun (j : J) => tprod (fun (i : I) => a (i, j)) ) ha_outer_J
theorem PowerSeries.multipliable_tprod_fubini {R : Type u_1} [CommRing R] {I : Type u_3} {J : Type u_4} {a : I × JPowerSeries R} (ha : Multipliable a) (ha_I : ∀ (i : I), Multipliable fun (j : J) => a (i, j)) :
Multipliable fun (i : I) => tprod (fun (j : J) => a (i, j))
theorem PowerSeries.multipliable_tprod_fubini_J {R : Type u_1} [CommRing R] {I : Type u_3} {J : Type u_4} {a : I × JPowerSeries R} (ha : Multipliable a) (ha_J : ∀ (j : J), Multipliable fun (i : I) => a (i, j)) :
Multipliable fun (j : J) => tprod (fun (i : I) => a (i, j))
Proof

The first equality follows by applying Proposition 1.372 to \(S=I\times J\) and \(W=I\) and \(f(i,j)=i\) (and appropriately reindexing the products). The second equality is analogous. See Section A.1 for the details.

Proposition 1.374 Fubini rule for infinite products, invertible case

Let \(I\) and \(J\) be two sets. Let \(\left(\mathbf{a}_{(i,j)}\right)_{(i,j)\in I\times J}\in K\left[\left[x\right]\right]^{I\times J}\) be a multipliable family of invertible FPSs. Then,

\[ \prod _{i\in I}\; \; \prod _{j\in J}\mathbf{a}_{(i,j)} =\prod _{(i,j)\in I\times J}\mathbf{a}_{(i,j)} =\prod _{j\in J}\; \; \prod _{i\in I}\mathbf{a}_{(i,j)}. \]

(In particular, all the products appearing in this equality are well-defined.)

theorem PowerSeries.fubini_prod_invertible {R : Type u_1} [CommRing R] {I : Type u_3} {J : Type u_4} {a : I × JPowerSeries R} (ha : Multipliable a) (ha_inv : ∀ (p : I × J), IsUnit ((coeff 0) (a p))) :
(∀ (i : I), Multipliable fun (j : J) => a (i, j)) ∀ (j : J), Multipliable fun (i : I) => a (i, j)
Proof

See Section A.1.