Abstraction is about a simultaneous fusion of two concepts: generalization and an extreme focus on invariants. In many ways these are describing the same thing. To generalize among a group of things, we do not look at specific members of the group, but rather what they all have in common. We look their invariances, the essence that characterizes them.
That’s what makes abstraction so beautiful. It helps us zoom out, and look at something from another perspective–an elevated view where the true nature of the "members of the group" is revealed. In this view, we no longer need to look at individual members. Specific details are disregarded and we can simply view the "group of members" as an object itself.
In real analysis we don't care about specific real numbers or operations between specific real numbers. We look at the fundamental properties that defines our notion of "real numbers". Consider the set of all real numbers, . Let's say I have a function . It's useless to only be able to "prove" that is continuous at all points by saying "it looks smooth and doesn't break". Instead, we need to understand what this even means, independent of what the function might be. This is where we zoom out. We now generalize by not focusing on any specific and instead focus on what makes any function continuous. In real analysis (when in general ), this means that "any tiny change in should imply a tiny change in ". We never specify what the might be, just what the nature of "not breaking" even mean for a function.
Let's take a less classical example. In category theory, which to me comes down to studying and making sense of mathematical structure in the most general sense, by means of abstraction. All of us have taken a product. Maybe between real numbers like , between polynomials like , or maybe real functions . But then, zoom out! What is a "product"? It seems like a weird question at first. But what if I come up with some new mathematical object and want to know how to take a "product"? Then it would be nice to have a notion of a product that any mathematical object can have, whether if it's a product of real numbers, polynomials, or functions. This indeed exist. Let's explore it! If you now consider two mathematical objects and , then we want to somehow define their "product" without even thinking about what kinds of objects they might be. First, this "product", which we naturally can denote , should surely be another of these objects. That is, zooming in, the product of, for example, two sets is another set. Secondly, for any "product" we should be able to project back to both and . Why? Because a product acts as a sort of "bridge" between elements, allowing you to "see" both of them simultaneously. This means that there should exist two kinds of processes or operations, and , such that and . We can take a (Cartesian) product of sets. The product of and would be the set . The projections would simply take a member of the product and pull out coordinates that live in their respective codomain ( or ). For instance, and .
Then, we say that the product of and is given by some construction where and . That's the invariant, fundamentally characterizing what a "product" really is, independent of what or might be. Technically, just having projections isn't enough to define the product. Many other objects might project down to and . The true essence of the product is its universal property: it is the most optimal object that does this. This means that if any other object has its own projections to and , those projections must uniquely route through the "real product" . I'll probably make a blog post about this idea of "universality" in the future. But again, let's go back to the example where we work with sets. Let and . The actual product has exactly 4 elements and is the Cartesian product . Now, let's build a "fake" or "non-universal product", . We can just arbitrarily add a useless extra element, , to the true product so that . Then, we can easily define valid projections and for this candidate. For the normal pairs, they act exactly like and we used earlier. For the added element , we can just arbitrarily choose where it maps. Let's say and . Now, if were the real product, this would mean any other object mapping into and would have to route through uniquely. So let's test this! Let’s take a test set, , which is just a singleton set, which maps to via and to via . If we try to route through via a unique map , we hit a problem. To make the diagrams commute, needs to land on an element in that projects to both and . But the problem is that we have two such elements in . The pair and the added element . Because we have a choice, the routing map is not unique. So is not technically a product of and because it does not have the universal property. It is not the "optimal solution" because it adds a redundant element .
For me, the power comes from living in abstractions. It's beautiful to understand something based solely on their abstractions. In this process, one’s knowledge applies to all objects determined by the invariants. That’s all that matters, no matter if they initially seem like two completely different objects on a local, smaller scale. If they are characterized by the same invariants, then they are the same thing at the most fundamental level. For me, I felt this first in linear algebra. We spend so much time thinking of vectors as "something that has a magnitude and direction" but later we zoom out and say that all of these "vectors" are characterized by simple axioms and so any other collection of objects that obey these axioms must also be vectors. This leads us to thinking about function spaces, where the "vectors" are functions or the "vector space" of polynomials. This not only helps us studying the concepts like functions and function spaces, but also the mathematical nature of vector spaces themselves.