The Dawn of Formalized Mathematics
math.andrej.com
math.andrej.com
> This is not separate groups of two or three mathematicians each belaboring on a paper on their own. It's not like that. This is not anymore the medieval mathematician's guild--which is how mathematics is still organized today. This is a post-industrial division of labor. It is completely new. It's a math hive. It's exciting, and we haven't seen this sort of thing before, and I think it's going to change mathematics.
That was the vision of SQL too. Managers were supposed to write "select sum(amount) from sales where month=2021-05"
Didn't happen. Developers still prefer function calls, ORMs and API calls over English-like sentences. And 4GL has died off like UML.
But things are better now. Getting easier. You don't need to write assembly. And can develop a web page using wordpress without any coding.
But that created a separate class of developers and didn't make seasoned developers out of job. Even though it's been like 20 years since.
Underneath it all there will be people that develop and maintain these AI techs. And as usage rise so will demand for people that can maintain and develop those AI.
On top of this, the company I work for provides amazing tools for non-tech personnel: for example Looker is basically SQL for managers. It is also much more powerful that SQL: for example for simple GROUP BY queries it also provides the UI to access the underlying rows in each of the rows returned by GROUP BY.
You are missing a lot in the industry right now.
None of these are new in this decade for that matter. The point is : we are still waiting to see it reduce software engineer's demand overall.
Things are getting easier. Getting more adopted. Leading to increase in demand for software engineers rather than decrease.
Individuals keep arriving at the same conclusions, but they invent different notations/languages to express those results. Communication stalls. Tribes form around languages/styles of expression.
It's much much worse than wheel re-inventing too. It takes a very long time to figure out that two Mathematical constructions/notations are equivalent.
It took decades for somebody to notice that proofs are programs.
Disclaimer I have written many "hacky" proofs.
One thing I would be interested in is an objective look of how the limitations of computation affect formalized mathematics. I think there’s a lot of sticky computational and philosophical problems there that I don’t see mentioned a lot.
I am not against including a human focused discussion of a proof, stepping through it in human terms. A verified proof is more like the final step or output.
I agree this is not how maths is done, there is a huge exploration stage. People do not just crank out a proof even though sometimes it is written in a way to make you believe that. You can spend days, weeks, months exploring. But at some point you should try to formalise that into something coherent.
Amendment: this seems to be a very controversial discussion with wildly swinging upvotes/downvotes. I hope people would elaborate on their viewpoints.
In both mathematics and writing programs, one must come up with something that models the solution needed for a given problem or system even if one can formally verify it afterwards, but that first part is the hard part (especially in programming since the assumptions in mathematics are quite explicit and known). I suppose there could be or are systems that generate techniques and proofs rather than merely verify, but I can only imagine that being an intractable problem and one not likely to be practically solved soon.
> One thing I would be interested in is an objective look of how the limitations of computation affect formalized mathematics. I think there’s a lot of sticky computational and philosophical problems there that I don’t see mentioned a lot.
~Goëdel~ Gödel's theorems are not relevant. Consider even if the halting problem had the other answer, it still could be impractical to do the brute force search. Same thing here.
And frankly, the formal methods community is sick of people spreading FUD from that stuff. Mixing romantic humanism with technical misunderstandings is no good.
Maybe I didn’t make that part clear, but it’s more of a question of mine than a statement. It seems to me there would be problems and limits but I haven’t seen them addressed in a way I understand, so the questions and misunderstandings remain.
If you have any references, then by all means share them.
> Mixing romantic humanism with technical misunderstandings is no good.
I think this miscategorizes what I wrote. One could easily do the same.
Mathematics is indeed a human endeavor, as are its goals. If machines are to help, then that’s absolutely great (I’m actually a big fan of computers being used to augment human endeavors), but making grand sweeping claims like I’ve seen in discussion of proof assistants is as romantic as anything.
https://xenaproject.wordpress.com/2021/06/05/half-a-year-of-...
State of the art research explored with lean. I think a certain level of hand wavy romanticism is fine for a HN comment if it can inspire people to be interested in the field. I also would prefer to be corrected in a reasonable discussion than a silent chilling downvote.
https://xenaproject.wordpress.com/2021/06/05/half-a-year-of-...
This is actually a great article that helps to show that humans are still very much involved in convincing each other, using machines to aid to that effect.
Regarding downvotes, you can’t even downvote someone you’ve replied to or they’ve replied to you on Hacker News.
there are true but unprovable propositions (although [Gödel 1934] results do not hold for foundations).
See following for a proof:
https://papers.ssrn.com/abstract=3603021
However, inferential incompleteness does not cause practical
difficulties for proof checking assistants :-)
What are you referring to with this comment?
How? I can see how proving properties of programs is a place where constructivism won't get in the way, but do you have an example of where it can be more convenient?
properties of concurrent systems.
Instead, need to use Actor Event induction:
some important logical principles.
For example, it lacks the following principles:
* excluded middle
* double negation elimination
The principles can be valuable for proving properties ofconcurrent systems,
work of Double Negation Elimination in practice.
I'm thinking 'automatic lemma matching' for software verification. e.g. In a SPARK proof you might need to use a lemma [0]. If you formal math education is lacking or maybe your theorem library is not encyclopedic, you might want suggestions from 'the hive'...
[0] https://blog.adacore.com/gnatprove-tips-and-tricks-using-the...
https://leanprover-community.github.io/mathlib_docs/tactics....
I'm much less certain of this, but I think Lean is better for non-mathematicians trying to learn more about math --- provided, that is, that you're set on playing with a proof assistant. I'm not sure I'd recommend that.
I've worked for a good numbers of years in the US software industry as a compiler engineer, and am a Mathematics masters student now. I've played with proof assistants extensively, and in particular I'm currently working on a paper to formalize semi-cubical sets in Coq. Working with Coq has been most painful, and it requires spoon-feeding for verifying even the simplest results. Worst of all, it's riddled with bugs, and I'm constantly astounded at how stupid it is.
That said, Lean is a much newer proof assistant, and while it offers some nice conveniences, it will take at least a decade before its power is comparable to Coq.
Mathematics is a solitary activity for good reason. Much of the work happens on pen-and-paper, and it takes months of toil to prove a result. No serious mathematician is going to go through the pain of encoding her proof in a proof assistant, and spoon-feeding it to verify every little result.
What's the news? That several computer scientists in the area are doing the work of formalizing simple mathematical results in Lean. Don't mistake Lean for some ground-breaking new technology; sure, it has a thriving community, and offers many conveniences, but the level of abstraction it offers isn't even close to the level of abstraction that my subject offers (I study stable ∞-categories).
Sure, if you want to do the thankless work of formalizing well-known results from group theory, ring theory, or vector spaces in Lean, be my guest. But don't be under the illusion that it's going to change the way mathematics is fundamentally done. The work is comparable to type-setting a document, except that it's a LOT more painful.
"I find it absolutely insane that interactive proof assistants are now at the level that within a very reasonable time span they can formally verify difficult original research." Peter Scholze [1].
[1] https://xenaproject.wordpress.com/2021/06/05/half-a-year-of-...
You know what you want to express - you don't know how to express it in a way that your interlocutor will understand.
Whether your interlocutor is a computer speaking Lean, or a human speaking your non-native tongue.
All the benefits are on the other side of the learning curve.