Hacker News new | ask | show | jobs
by neoplatonian 2126 days ago
Lol. Like, the rest of math? Geometry? Constructions? Counter examples? Probabilistic methods? Non-computable theorems?
1 comments

I always felt Math use data structures and algorithms. Properties of whatever you manipulate let you have some sort of known structure with proven theorems, then you use these theorems one after an other until you get to where you maybe "want" to be .
It seems to me that mathematical objects are often more abstract than data structures are required to be. For example, you can reason about a triangle without specifying how you would represent it. You could represent a triangle as a list of three points, or as a list of side lengths and angles or even a list of angles which forces you to reason about the class of similar triangles with those angles. In fact, to represent certain algebraic structures is an entire subfield of algebra (representation theory) distinct from the parts of algebra that reason about those structures without trying to represent them.
Representation theory is about study of functors between category of vector spaces and category of interest, which is quite different from the problem of different representations of a triangle.
Different how? They are both ways of making abstract descriptions of an object more concrete, which is analogous to the job of a programmer designing a data structure to concretely describe an abstractly specified computational object.

My point is just that in math, you can reason about an object even if you can't concretely represent it. For example, you can figure out properties of a number or function that you don't know enough about to write down. But in programming you can't use an object unless you have a concrete representation of it, and often getting that concrete representation (in both math and programming) requires a kind of work which is quite different than the work of abstractly describing or specifying it. So it's maybe not always appropriate to call an abstract description of a mathematical object a "data structure", since often it's more analogous to (say) the interface of an object than it's implementation.