
The axiomatic theory of sets is a vibrant part of pure mathematics, with its own basic notions, fundamental results, and deep open problems. At the same time, it is often viewed as a foundation of mathematics so that in the most prevalent, current mathematical practice "to make a notion precise" simply means "to define it in set theory." This book tries to do justice to both aspects of the subject: it gives a solid introduction to "pure set theory" through transfinite recursion and the construction of the cumulative hierarchy of sets (including the basic results that have applications to computer science), but it also attempts to explain precisely how mathematical objects can be faithfully modeled within the universe of sets.
1. Spivak's Calculus.
2. Johnstone's Notes on Set Theory and Logic.
3. Gamelin's Complex Analysis.
4. Hoffman & Kunz' Linear Algebra.
5. Dummit & Foote's Abstract Algebra; just the group theory.
6. Munkres' Topology; just the general topology.
Once I was happy with my preparation, I strived for a deeper understanding of Group Theory. I bumbled through Herstein, but didn't understand it very well. Then, I stumbled upon Artin's book, and worked through it using the outline provided on the MIT OCW course page, and I could confidently solve most of the exercises.
For category theory, the top resources that I would recommend are:
1. Mileweski's Category Theory for Programmers, the video lecture series. As is always the case with video lectures, this one can help motivate a Haskell programmer uninitiated in category theory.
2. Goldblatt's Topoi. It's fairly dated, but teaches category theory well, via its application to topoi.
3. MacLane's CatWork. I'm not especially fond of this one, but it's necessary to work through it.
The most important thing to understand when learning category theory is that it cannot be learnt in a vacuum: the subject is entirely vacuous, and you need to use it in other mathematical disciplines to give it meaning.
Good luck.
trying to have an informal discussion
That's fine, but you express yourself in a way that sounds like you have a deep understanding of LL, and its relationship to other subjects such as programming languages and economic games. You have gotten a lot of pushback here for this reason, I'm just expressing myself more bluntly than other. Sorry, but you don't currently have this knowledge, and that might be misleading to others. I recommend to take this criticism constructively, and deepen your knowledge of logic (linear or otherwise), and there is only one way of doing this, which is to go beyond intuition and informality, and "do the math". How many people do you think are familiar with it?
A lot on HN. Including myself, having written several papers on the subject, and discussed LL on numerous occasions with the world's leading researchers in the area, including Girard himself and several of his students. HOTT states nothing about optimization.
None of the foundations of mathematics
really tackle optimization.
This is a complete misunderstanding of the foundations of mathematics. ZF(C) doesn't mention the natural and real numbers either. You can construct the rational and the real numbers in all foundations of mathematics
(and this is typically done in undergraduate maths see e.g. [1] where I learned the construction from).
Notions of minimun/maximum as well as related concepts can be expressed, too. This means that all mathematical optimisation as conventionally understood is trivially expressible in e.g. ZFC. There is such a thing as linear types
I know, I coauthored some of the early papers on linear types. Linear types let you to trully distinguish
between values and references.
No, linear types let you distinguish between values that are guaranteed to be used exactly once, and values that may not be used exactly once. Note that Rust (at least last time I looked -- the language evolves fast) has more like affine rather than linear types (guaranteeing use at most once). that our current understanding of math is really
"all there is".
Nobody says this, indeed this is an immediate consequence of Goedel's incompleteness results.[1] Yiannis Moschovakis, Notes on Set Theory (https://www.amazon.com/Notes-Theory-Undergraduate-Texts-Math...)