Homological Algebra
Homological Algebra originated in algebraic topology but quickly became an essential tool in algebraic geometry and modern representation theory. It provides the machinery to measure “how far” a sequence of maps is from being exact, allowing us to compute invariants of complex mathematical objects.
Modules over a Ring
Before discussing homology, we must define the objects we are working with. A Module over a ring is a generalization of a vector space. While vector spaces must have a field as their scalars, modules allow for a ring .
- If , an -module is simply an Abelian group.
- If (a field), an -module is a vector space.
Chain Complexes
A Chain Complex is a sequence of modules and homomorphisms: such that the composition of any two consecutive maps is zero: This property implies that the image of the incoming map is contained within the kernel of the outgoing map: .
Homology Groups
The -th Homology Group is defined as the quotient:
- If , the sequence is said to be exact at .
- Homology measures the failure of a sequence to be exact. In topology, this corresponds to “holes” in a space.
Exact Sequences
An Exact Sequence is a chain complex where all homology groups are zero.
- Short Exact Sequence (SES): A sequence of the form where is a submodule of , and .
- Long Exact Sequence: Given a short exact sequence of complexes, we can derive a long exact sequence connecting their homology groups using the Snake Lemma.
Projective and Injective Resolutions
One of the central techniques in Homological Algebra is “resolving” a module by mapping simpler modules into it.
- Projective Resolution: A long exact sequence where each is a projective module (generalization of a free module).
- These resolutions allow us to define Derived Functors, such as Ext (measuring extensions) and Tor (measuring torsion).
The Ext and Tor Functors
These are the fundamental “hidden” invariants of modules:
- : Derived from the tensor product functor. It measures “torsion” or dependencies between elements of and .
- : Derived from the Hom functor. It measures how many ways we can “extend” by .
Python: Simulating a Chain Complex
We can represent modules as matrices and checks the condition using linear algebra (over a field).
import numpy as np
def is_chain_complex(d1, d2):
"""
Checks if d1 followed by d2 is a zero map.
d1: C_{n+1} -> C_n
d2: C_n -> C_{n-1}
"""
product = np.dot(d2, d1)
return np.allclose(product, 0)
# Example: Boundary maps in a 2D complex
d1 = np.array([[1], [-1]]) # From an edge to its two vertices
d2 = np.array([1, 1]) # Conceptual d2
print(f"Is chain complex: {is_chain_complex(d1, d2)}")
# Note: In real homology, d2 * d1 must be zero.
Significance
Homological Algebra provides the language for “diagram chasing,” a method of proof where we follow the path of elements through a grid of maps to prove commutativity or exactness. It is the backbone of modern structural mathematics, turning geometric intuition into algebraic calculation.