MerLean-example

2 Rem 2: Notation Conventions

This chapter establishes the notation conventions used throughout the formalization, documenting the precise correspondence between paper notation and Mathlib definitions.

Definition 6 Chain Complex over \(\mathbb {F}_2\)
#

A chain complex of \(\mathbb {F}_2\)-vector spaces indexed by \(\mathbb {Z}\) is defined as

\[ \operatorname {ChainComplex}(\operatorname {ModuleCat}\, \mathbb {F}_2,\, \mathbb {Z}). \]

The differential \(\partial _i : C_i \to C_{i-1}\) is given by \(\mathtt{d}\, i\, j\) in Mathlib where the complex shape satisfies \(j + 1 = i\) (i.e. \(j = i - 1\)). This corresponds to the paper’s \((C_\bullet , \partial )\).

Definition 7 Cochain Complex over \(\mathbb {F}_2\)
#

A cochain complex of \(\mathbb {F}_2\)-vector spaces indexed by \(\mathbb {Z}\) is defined as

\[ \operatorname {CochainComplex}(\operatorname {ModuleCat}\, \mathbb {F}_2,\, \mathbb {Z}). \]

The differential \(\delta ^i : C^i \to C^{i+1}\) is given by \(\mathtt{d}\, i\, j\) in Mathlib where \(i + 1 = j\). In the paper, the coboundary \(\delta ^i\) is the transpose of \(\partial _{i+1}\).

Definition 8 Boundary Map
#

For a chain complex \(C \in \operatorname {ChainComplex}_{\mathbb {F}_2}\) and indices \(i, j \in \mathbb {Z}\), the boundary map \(\partial _i : C_i \to C_{i-1}\) is defined as

\[ \operatorname {boundary}(C, i, j) \; :=\; C.\mathtt{d}\, i\, j. \]

This is the paper’s differential \(\partial \) accessed via the Mathlib API HomologicalComplex.d.

Definition 9 Coboundary Map
#

For a cochain complex \(C \in \operatorname {CochainComplex}_{\mathbb {F}_2}\) and indices \(i, j \in \mathbb {Z}\), the coboundary map \(\delta ^i : C^i \to C^{i+1}\) is defined as

\[ \operatorname {coboundary}(C, i, j) \; :=\; C.\mathtt{d}\, i\, j. \]

This corresponds to the paper’s coboundary \(\delta \), accessed via HomologicalComplex.d on cochain complexes.

Definition 10 Image of a Linear Map
#

For \(\mathbb {F}_2\)-modules \(M\) and \(N\) and a linear map \(f : M \to _{\mathbb {F}_2} N\), the image of \(f\), denoted \(\operatorname {im}(f)\) in the paper, is defined as

\[ \operatorname {im}(f) \; :=\; \operatorname {LinearMap.range}(f). \]
Definition 11 Identity Map
#

For an \(\mathbb {F}_2\)-module \(M\), the identity linear map, denoted \(\operatorname {id}\) in the paper, is defined as

\[ \operatorname {idMap}(M) \; :=\; \operatorname {LinearMap.id}_{\mathbb {F}_2,\, M}. \]
Definition 12 Transpose of a Linear Map
#

For \(\mathbb {F}_2\)-modules \(M\) and \(N\) and a linear map \(f : M \to _{\mathbb {F}_2} N\), the transpose (dual) of \(f\) is defined as

\[ \operatorname {transpose}(f) \; :=\; \operatorname {Module.Dual.transpose}(f) : N^* \to M^*. \]

In the paper, the coboundary satisfies \(\delta = \partial ^\top \).

Theorem 13 Boundary Squares to Zero

For any chain complex \(C \in \operatorname {ChainComplex}_{\mathbb {F}_2}\) and indices \(i, j, k \in \mathbb {Z}\),

\[ \partial _j \circ \partial _i \; =\; 0, \]

i.e. \(C.\mathtt{d}\, i\, j \, \gg \, C.\mathtt{d}\, j\, k = 0\).

Proof

This follows directly from the Mathlib lemma HomologicalComplex.d_comp_d, applied to \(C\) at indices \(i\), \(j\), \(k\). Specifically, we have \(C.\mathtt{d\_ comp\_ d}\, i\, j\, k = 0\) by the axioms of a homological complex, which states that consecutive differentials compose to zero.

Theorem 14 Coboundary Squares to Zero

For any cochain complex \(C \in \operatorname {CochainComplex}_{\mathbb {F}_2}\) and indices \(i, j, k \in \mathbb {Z}\),

\[ \delta ^j \circ \delta ^i \; =\; 0, \]

i.e. \(C.\mathtt{d}\, i\, j \, \gg \, C.\mathtt{d}\, j\, k = 0\).

Proof

This follows directly from the Mathlib lemma HomologicalComplex.d_comp_d, applied to the cochain complex \(C\) at indices \(i\), \(j\), \(k\). Consecutive coboundary maps compose to zero by the axioms of a homological complex.

Theorem 15 Image Equals Range

For \(\mathbb {F}_2\)-modules \(M\), \(N\) and a linear map \(f : M \to _{\mathbb {F}_2} N\),

\[ \operatorname {im}(f) \; =\; \operatorname {LinearMap.range}(f). \]
Proof

This holds by reflexivity, since \(\operatorname {im}(f)\) is defined to be \(\operatorname {LinearMap.range}(f)\) by definition.

Theorem 16 Identity Map Equals LinearMap.id

For any \(\mathbb {F}_2\)-module \(M\),

\[ \operatorname {idMap}(M) \; =\; \operatorname {LinearMap.id}. \]
Proof

This holds by reflexivity, since \(\operatorname {idMap}(M)\) is defined to be \(\operatorname {LinearMap.id}_{\mathbb {F}_2,\, M}\) by definition.

[Mathlib Correspondence for Homological Algebra] The following Mathlib definitions correspond to the paper’s notation:

  • \(\partial \) or \(\delta \) (differential): HomologicalComplex.d i j

  • \(Z_i(C)\) (cycles \(= \ker \partial _i\)): HomologicalComplex.cycles C i

  • \(B_i(C)\) (boundaries \(= \operatorname {im}\, \partial _{i+1}\)): image of the incoming differential

  • \(H_i(C)\) (homology \(= Z_i(C)/B_i(C)\)): HomologicalComplex.homology C i

  • \(\operatorname {im}(f)\) (image): LinearMap.range f

  • \(\delta = \partial ^\top \) (coboundary as transpose): Module.Dual.transpose

  • \(\operatorname {id}\) (identity): LinearMap.id

  • \(\operatorname {Tot}\) (total complex functor): HomologicalComplex.total

The same Mathlib API applies to cochains (\(Z^i\), \(B^i\), \(H^i\)) via CochainComplex.