Earlier quoted context omitted.
Yes, but if I told IBM that I had a proof that a particular algebraic property or relationship related to homomorphic encryption holds true, I'm sure they would much prefer that it was constructive, rather than non-constructive, because they can produce a usable algorithm from the constructive proof. The point is that by exploring mathematics using only constructive proofs, we are guaranteed to produce (possibly usef…
You probably have no experience with constructive proof checkers, else you wouldn't be missing Auggie's point. > I'm sure they would much prefer that it was constructive, rather than non-constructive One point against constructivism is that the proof could be less readable. > can produce a usable algorithm from the constructive proof No. Between the automated tactics and inductive propositions constructed to carry al…
Formalising Mathematics: An Introduction
111–120 of 125 posts
Re: Formalising Mathematics: An Introduction
#112If anyone wants of a concrete reason to formalize mathematics, consider this. The classification of finite simple groups is a major result in mathematics that is a foundation for many others. See https://en.wikipedia.org/wiki/Classification_of_finite_simpl... for more. However at the time the proof was finishing, people were leaving the field, and the very people who proved it did not feel that their results were che…
Re: Formalising Mathematics: An Introduction
#113Earlier quoted context omitted.
Hmm... If not proof trees, what? > Not to mention that any format that isn't just strictly text is probably doomed to fail from the start. LaTeX is text. (I'm not being snarky.) - - - - The key might be in formalizing the subjective processes like what was described starting here: > Mathematicians think in pictures > I have a picture of the real numbers in my head. It’s a straight line. This picture provides a great…
> If not proof trees, what? Just make the proof language similar to the standard mathematics language and possibly process it with a presentation layer that makes it even better. The examples start from Mizar [1] (since 1973), IsarMathLib [2] (disclaimer: my project), Naproche-SAD [3] (bundled with Isabelle recently) [1] http://mizar.org/ [2] https://isarmathlib.org/ [3] http://ceur-ws.org/Vol-2634/FMM4.pdf
Re: Formalising Mathematics: An Introduction
#114Earlier quoted context omitted.
Proof trees just become unmanageable for anything but trivial example and not only that, their biggest benefit - knowing which rule is applied, doesn't get you much for a dependent type system. Not to mention that any format that isn't just strictly text is probably doomed to fail from the start. If you want essentially a text version of proof trees, just write fully annotated terms for your proofs. I think you'll qu…
Hmm... If not proof trees, what? > Not to mention that any format that isn't just strictly text is probably doomed to fail from the start. LaTeX is text. (I'm not being snarky.) - - - - The key might be in formalizing the subjective processes like what was described starting here: > Mathematicians think in pictures > I have a picture of the real numbers in my head. It’s a straight line. This picture provides a great…
I don't know. Both tactics and proof terms are already quite old (for CS concepts, that is) and there hasn't been any real competition, so I imagine in the medium-term we'll just see refinements of them.
>LaTeX is text. (I'm not being snarky.)
I can't imagine anyone wanting to read latex source code over tactics/proof term code. Unless you're talking about rendered latex? But that's not something people can realistically work with. Graphical proof assistants exist, but nobody uses them. For better or worse, plain text is simply king.
>The key might be in formalizing the subjective processes like what was described starting here:
In a sense, tactics are a very weak form of this. Instead of just describing a proof as its structured in the system, they allow a proof author to also describe some of their intent or intuition. It's definitely why some people prefer tactics based proofs. I imagine we'll see some attempts to incorporate some more of this into proof terms, but I don't know how successful this will be.
But honestly, I can't even imagine would formalizing something so subjective would even look beyond this. I'm not sure if it's even possible. If it is, I imagine it's going to be a radical departure from everything we know.
Re: Formalising Mathematics: An Introduction
#115Earlier quoted context omitted.
I don't know! But I don't think so. Also think about other properties of an algorithm, like runtime, etc. You could have a non-constructive proof for the upper bound on the runtime, but not a constructive one.
Here is an example: after inputing positive integers a, b and c, output all natural numbers n for which a^n + b^n = c^n. My algorithm: If a + b == c then output 1. If a^2 + b^2 == c^2 then output 2. Stop. This algorithm is correct, because Fermat's last theorem holds. Now, try to come up with a simpler algorithm than that, and one that in addition has a constructive proof.
And we are done, because the statement of the theorem in the "classical fragment" of constructive logic is identical to the constructive statement as it does not involve any existentials or disjunctions. However if the theorem did involve a limited use of these connectives, we could use Goedel's Dialectica interpretation[3] to turn them in to their constructive counterparts, as long as the theorem is Pi_2 or lower, which is going to be the case for the vast majority of theorems about software.
[1] https://news.ycombinator.com/item?id=26217587
[2] https://en.wikipedia.org/wiki/Absoluteness#Shoenfield%27s_ab...
[3] https://www.andrew.cmu.edu/user/avigad/Papers/dialect.pdf
Re: Formalising Mathematics: An Introduction
#116Earlier quoted context omitted.
Here is an example: after inputing positive integers a, b and c, output all natural numbers n for which a^n + b^n = c^n. My algorithm: If a + b == c then output 1. If a^2 + b^2 == c^2 then output 2. Stop. This algorithm is correct, because Fermat's last theorem holds. Now, try to come up with a simpler algorithm than that, and one that in addition has a constructive proof.
Fermat's last theorem holds constructively. This is because we can take the entire proof an rewrite it using the "classical fragment" of constructive logic[1]. I don't know if the proof of FLT (appears) to use the axiom of choice or not, but if it does we use Shoenfield's absoluteness theorem to remove any uses of the axiom of choice from the proof. And we are done, because the statement of the theorem in the "classi…
That is very cool! So, even less reason to demand a constructive proof, a non-constructive one is then often good enough even for hard-core constructivists.
Do you know if this has been implemented in any actual (interactive) theorem proving system, for example Lean? It sounds like a great feature to me to allow non-constructive proofs in certain situations, but to have the theorem hold even in a constructive setting.
Re: Formalising Mathematics: An Introduction
#117Earlier quoted context omitted.
Does that presuppose that it's computationally expensive to verify proofs? If so, isn't that kind of unrealistic?
Verifying fully formalized proofs is cheap. What is expensive is to produce such formalized proofs. More precisely, to formalize a proof written in a typical math paper is extremely time-consuming and not so informative (that's why it's almost never done in practice).
But doesn't that bring us full-circle to Buzzard's point? Isn't that why he's saying, "Hey gang, let's do math with machines." in the first place?
Re: Formalising Mathematics: An Introduction
#118Earlier quoted context omitted.
Fermat's last theorem holds constructively. This is because we can take the entire proof an rewrite it using the "classical fragment" of constructive logic[1]. I don't know if the proof of FLT (appears) to use the axiom of choice or not, but if it does we use Shoenfield's absoluteness theorem to remove any uses of the axiom of choice from the proof. And we are done, because the statement of the theorem in the "classi…
Hi Russell, thank you for clarifying this! So what you are saying is, if the algorithm and its correctness theorem have a certain form (which is usually the case), we can rewrite any non-constructive proof of it in a constructive way? That is very cool! So, even less reason to demand a constructive proof, a non-constructive one is then often good enough even for hard-core constructivists. Do you know if this has been…
Myself, I've never seen an automated theorem prover that will perform this sort of translation automatically. I have, on rare occasion, gone through by hand to remove uses of classical axioms in Coq proofs of theorems than ought not to be using them. Usually the uses are pretty superficial.
Re: Formalising Mathematics: An Introduction
#119Earlier quoted context omitted.
Hmm... If not proof trees, what? > Not to mention that any format that isn't just strictly text is probably doomed to fail from the start. LaTeX is text. (I'm not being snarky.) - - - - The key might be in formalizing the subjective processes like what was described starting here: > Mathematicians think in pictures > I have a picture of the real numbers in my head. It’s a straight line. This picture provides a great…
> Hmm... If not proof trees, what? I don't know. Both tactics and proof terms are already quite old (for CS concepts, that is) and there hasn't been any real competition, so I imagine in the medium-term we'll just see refinements of them. >LaTeX is text. (I'm not being snarky.) I can't imagine anyone wanting to read latex source code over tactics/proof term code. Unless you're talking about rendered latex? But that's…
So it's really more of an issue of presentation? The techniques are fine? (I'm a professional programmer but an amateur logician, I really don't know what the big kids do.)
> I can't imagine anyone wanting to read latex source code over tactics/proof term code. Unless you're talking about rendered latex?
Yeah, you would generally only be looking at LaTeX source to debug your tools.
> But that's not something people can realistically work with.
I don't understand. I rarely work with it, but I was under the impression that it's pretty standard for writing math and science papers? Are there no WYSIWYG tools for working with rendered LaTeX? How do people work with it now, I guess is what I'm asking.
> Graphical proof assistants exist, but nobody uses them.
I just did a quick search and found two but they seem obscure:
https://en.wikipedia.org/wiki/Jape_(software)
https://github.com/liamoc/holbert
I guess the question I have is why does no one use them? Is it just inertia? I mean this is a thread about promoting the use of Lean et. al., so even the non-graphical, well-known tools are still kind of a niche, no?
Are graphical proof assistants only good for students and teaching, not "heavy lifting"?
In any event, I still feel that we can do better on the presentation side of things. (That's not controversial is it? The Lean folks are working on it?) I want to understand what kinds of software would help mathematicians.
> In a sense, tactics are a very weak form of this. Instead of just describing a proof as its structured in the system, they allow a proof author to also describe some of their intent or intuition. It's definitely why some people prefer tactics-based proofs.
That's pretty cool. :)
> I can't even imagine would formalizing something so subjective would even look beyond this. I'm not sure if it's even possible.
The Turing Machine is itself a formalization of a subjective process, eh?
If we get to the point where the machines can "read our minds" then it will be really easy. :) Heck, mathematicians can just watch videos of each other's mental imagery!
In the meantime, externalizing and formalizing these subjective intuitive processes with the machinery we've got seems like a fun and useful challenge, eh?
Re: Formalising Mathematics: An Introduction
#120Earlier quoted context omitted.
> Hmm... If not proof trees, what? I don't know. Both tactics and proof terms are already quite old (for CS concepts, that is) and there hasn't been any real competition, so I imagine in the medium-term we'll just see refinements of them. >LaTeX is text. (I'm not being snarky.) I can't imagine anyone wanting to read latex source code over tactics/proof term code. Unless you're talking about rendered latex? But that's…
> Both tactics and proof terms are already quite old (for CS concepts, that is) and there hasn't been any real competition, so I imagine in the medium-term we'll just see refinements of them. So it's really more of an issue of presentation? The techniques are fine? (I'm a professional programmer but an amateur logician, I really don't know what the big kids do.) > I can't imagine anyone wanting to read latex source c…
Well, both techniques are ultimately just a way of representing natural deduction (for a different proof calculus that isn't closely related to natural deduction you'll definitely need different techniques). Proof terms are the representation you get from the Curry-Howard Isomorphism (essentially the derivation is left implicit since it is unambiguous), while tactics based proofs are approximations of traditional proofs written in prose.
Are they 'fine'? Well, maybe there's some amazing graph-based way that will make current approaches look completely inadequate, but at the moment they work and we just don't know any better way.
>I don't understand. I rarely work with it, but I was under the impression that it's pretty standard for writing math and science papers? Are there no WYSIWYG tools for working with rendered LaTeX? How do people work with it now, I guess is what I'm asking.
It's definitely the standard, but I personally don't find working with diagrams in it pleasant (though I know some disagree). WSYIWYG tools exist, but don't find much usage. Everyone I know simply has a preview window open right next to their latex code, so it's not really an 'interactive' process. If you're fine with that, I'd just recommend generating latex code from proof objects/tactics scripts (which there already is some work on as far as I know). You should be able to generate e.g. proof trees very easily, they'll just be massive.
>I guess the question I have is why does no one use them? Is it just inertia? I mean this is a thread about promoting the use of Lean et. al., so even the non-graphical, well-known tools are still kind of a niche, no?
I imagine it's a combination of all sorts of factors. Proof assistants are very niche, the community is very academic and proof assistants require a lot of infrastructure which is why most users are concentrated among a handful of proof assistants. Proof assistants using dependent types (such as Lean) are also programming languages which I think naturally biases them towards text.
>Are graphical proof assistants only good for students and teaching, not "heavy lifting"?
I don't see any reason why that should fundamentally need to be - but I think the same applies to visual programming languages, which are essentially stuck in the same position for whatever reason.
>In any event, I still feel that we can do better on the presentation side of things. (That's not controversial is it? The Lean folks are working on it?) I want to understand what kinds of software would help mathematicians.
I don't think this is controversial at all - _how_ to improve presentation on the other hand might be.
>In the meantime, externalizing and formalizing these subjective intuitive processes with the machinery we've got seems like a fun and useful challenge, eh?
Sure, but anything beyond very incremental improvements also strike me as very hard, so it's not an area where I would expect much change for now, especially because there's still a good amount of low-hanging fruit in the area of proof assistants.