Triangles All the Way Up: The Geometry of Abstract Math (Part 2 of 3)
In Part 1, we introduced the idea that math could be built on shapes and paths instead of sets. Now let's get into the simplicial part of simplicial homotopy type theory—and discover why triangles are secretly the building blocks of mathematical thinking.
What Does "Simplicial" Mean?
A simplex is the simplest possible shape in any dimension:
- 0-simplex: a point
- 1-simplex: a line segment (two points connected)
- 2-simplex: a triangle (three points, all connected)
- 3-simplex: a tetrahedron (four points, all connected)
- n-simplex: you get the pattern...
When you glue simplices together following certain rules, you get a simplicial complex—a shape built entirely from these fundamental pieces.
// A simplicial complex is like a mesh in 3D graphics
const simplicial2Complex = {
vertices: ['A', 'B', 'C', 'D'], // 0-simplices
edges: [ // 1-simplices
['A', 'B'], ['B', 'C'], ['A', 'C'],
['B', 'D'], ['C', 'D']
],
faces: [ // 2-simplices
['A', 'B', 'C'], // One triangle
['B', 'C', 'D'] // Another triangle, sharing an edge
]
};Why Triangles? Why Not Squares?
Great question! Triangles have a special property: they're rigid. You can't deform a triangle without changing the lengths of its sides. Squares, on the other hand, can be squished into parallelograms.
This rigidity means:
- Every simplicial structure has a unique geometry
- You can compute with them precisely
- They tile together without ambiguity
"Triangles are to geometry what prime numbers are to arithmetic—the indivisible building blocks from which everything else is constructed."
From Shapes to Abstract Math
Here's where it gets wild. Mathematicians discovered you can represent abstract concepts as simplicial structures:
| Abstract Concept | Simplicial Representation |
|---|---|
| A set with 3 elements | A triangle's vertices |
| A function | An edge connecting two points |
| An equivalence | A path (sequence of edges) |
| A proof that two proofs are the same | A filled-in triangle! |
That last one is the key insight. In sHoTT:
- Points represent objects
- Edges represent equivalences between objects
- Triangles represent proofs that equivalences are compatible
- Tetrahedra represent proofs about proofs about proofs...
// Imagine proving that three things are all equivalent
const equivalenceTriangle = {
// Three objects
objects: ['🍎', '🍏', '🍐'],
// Three equivalences (edges)
equivalences: [
{ from: '🍎', to: '🍏', reason: 'both are apples' },
{ from: '🍏', to: '🍐', reason: 'both are green' },
{ from: '🍎', to: '🍐', reason: 'both are fruit' }
],
// The triangle itself witnesses that these three
// equivalences are COHERENT—they don't contradict
coherenceWitness: 'the filled triangle'
};The Kan Condition: Filling in the Gaps
Not every collection of edges forms a valid space. In sHoTT, we need something called the Kan condition: if you have the outline of a simplex (like two sides of a triangle), you can always fill it in.
Think of it like autocomplete for geometry:
- You draw two edges meeting at a point
- The Kan condition guarantees a third edge exists to complete the triangle
- This "filling" property is what makes the space coherent
This is exactly how Git merge works! If you have two branches that diverged from the same commit, Git finds a way to merge them (fill in the triangle).
Why This Matters for Learning Math
Instead of memorizing that equivalence relations are "reflexive, symmetric, and transitive," you can see it:
- Reflexive: Every point has a trivial edge to itself
- Symmetric: Every edge can be traversed in both directions
- Transitive: Any two connected edges can be filled to form a triangle
The abstract definition becomes a geometric operation. You're not memorizing—you're seeing.
In Part 3, we'll bring it all together: how sHoTT connects to proof assistants, why mathematicians think this could revolutionize education, and how you can start exploring these ideas yourself.