4 ms·
With a program, you can always write test cases and run them to ensure they all pass. If your tests are solid and plentiful, the computer will catch your mistak
by awalGarg 11y ago
With a program, you can always write test cases and run them to ensure they all pass. If your tests are solid and plentiful, the computer will catch your mistakes and you can go fix them.
There is no corresponding “proof checker” for mathematics. There is no compiler to tell you that it’s nonsensical to construct the set of all sets, or that it’s a type error to quotient a set by something that’s not an equivalence relation.
This is something that I have been noticing for quite a while. As I got out of high-school and self discovered programming - something that I gradually realized is that programmers have an infrastructure of tooling setup to help themselves. They made their things to help themselves. Compiler compilers (and cross-compilers!) simply blew my mind away.
I joined college after a gap of an year, and as I faced Physics and Mathematics again, that feeling strengthened. I now sometimes think of a very strict compiler for mathematics that catches errors from the math lingua. Could possibly be extended to Physics too. Don't even know if that is feasibly possible, but I find the idea intriguing.
- jandrese 11y agoThis is what Mathematica is supposed to do. I'm not sure if I would call it a resounding success however.
- irremediable 11y ago> I now sometimes think of a very strict compiler for mathematics that catches errors from the math lingua. Is that what Coq (https://en.wikipedia.org/wiki/Coq https://en.wikipedia.org/wiki/Coq) is?
- Joof 11y agoCoq is either too immature or too strict. Writing a proof in coq is far too difficult for what it does. I agree that we need a proof 'compiler' though.
- irremediable 11y agoThanks for the insight on this, by the way; I'm more of an applied math person, so I have no firsthand experience of things like computer-verified proofs, Coq, etc. What do you think are the specific ways in which a proof compiler would be different?