Row Reduction Over A Field
We’re quite eager to get to applications of algebraic topology to things like machine learning (in particular, persistent homology). Even though there’s a massive amount of theory behind it (and we do...
View ArticleThe Fundamental Theorem of Algebra (with the Fundamental Group)
This post assumes familiarity with some basic concepts in algebraic topology, specifically what a group is and the definition of the fundamental group of a topological space. The fundamental theorem of...
View ArticleThe Fundamental Theorem of Algebra (with Galois Theory)
This post assumes familiarity with some basic concepts in abstract algebra, specifically the terminology of field extensions, and the classical results in Galois theory and group theory. The...
View ArticleOptimally Stacking the Deck – Texas Hold ‘Em
Main Theorem: There exist optimal stackings for standard two-player Texas Hold ‘Em. A Puzzle is Solved (and then some!) It’s been quite a while since we first formulated the idea of an optimal...
View ArticleGroups — A Primer
The study of groups is often one’s first foray into advanced mathematics. In the naivete of set theory one develops tools for describing basic objects, and through a first run at analysis one develops...
View ArticleGroups — A Second Primer
The First Isomorphism Theorem The meat of our last primer was a proof that quotient groups are well-defined. One important result that helps us compute groups is a very easy consequence of this...
View ArticleThe Fundamental Group — A Primer
Being part of the subject of algebraic topology, this post assumes the reader has read our previous primers on both topology and group theory. As a warning to the reader, it is more advanced than most...
View ArticleHomology Theory — A Primer
This series on topology has been long and hard, but we’re are quickly approaching the topics where we can actually write programs. For this and the next post on homology, the most important background...
View ArticleComputing Homology
In our last post in this series on topology, we defined the homology group. Specifically, we built up a topological space as a simplicial complex (a mess of triangles glued together), we defined an...
View ArticleRings — A Second Primer
Last time we defined and gave some examples of rings. Recapping, a ring is a special kind of group with an additional multiplication operation that “plays nicely” with addition. The important thing to...
View ArticleFixing Bugs in “Computing Homology”
A few awesome readers have posted comments in Computing Homology to the effect of, “Your code is not quite correct!” And they’re right! Despite the almost year since that post’s publication, I haven’t...
View ArticleElliptic Curves as Elementary Equations
Finding solutions to systems of polynomial equations is one of the oldest and deepest problems in all of mathematics. This is broadly the domain of algebraic geometry, and mathematicians wield some of...
View ArticleElliptic Curves as Algebraic Structures
Last time we looked at the elementary formulation of an elliptic curve as the solutions to the equation where are such that the discriminant is nonzero: We have yet to explain why we want our equation...
View ArticleElliptic Curves as Python Objects
Last time we saw a geometric version of the algorithm to add points on elliptic curves. We went quite deep into the formal setting for it (projective space ), and we spent a lot of time talking about...
View Article(Finite) Fields — A Primer
So far on this blog we’ve given some introductory notes on a few kinds of algebraic structures in mathematics (most notably groups and rings, but also monoids). Fields are the next natural step in the...
View ArticleConnecting Elliptic Curves with Finite Fields
So here we are. We’ve studied the general properties of elliptic curves, written a program for elliptic curve arithmetic over the rational numbers, and taken a long detour to get some familiarity with...
View ArticleElliptic Curve Diffie-Hellman
So far in this series we’ve seen elliptic curves from many perspectives, including the elementary, algebraic, and programmatic ones. We implemented finite field arithmetic and connected it to our...
View ArticleA Quasipolynomial Time Algorithm for Graph Isomorphism: The Details
Update 2017-01-09: Laci claims to have found a workaround to the previously posted error, and the claim is again quasipolynoimal time! Updated arXiv paper to follow. Update 2017-01-04: Laci has posted...
View ArticleHashing to Estimate the Size of a Stream
Problem: Estimate the number of distinct items in a data stream that is too large to fit in memory. Solution: (in python) import random def randomHash(modulus): a, b = random.randint(0,modulus-1),...
View ArticleModulus Switching in LWE
The Learning With Errors problem is the basis of a few cryptosystems, and a foundation for many fully homomorphic encryption (FHE) schemes. In this article I’ll describe a technique used in some of...
View Article