Learning to prove theorems via interacting with proof assistants
blog.acolyer.org
Learning to prove theorems via interacting with proof assistants
1–10 of 31 posts
Re: Learning to prove theorems via interacting with proof assistants
#2Re: Learning to prove theorems via interacting with proof assistants
#3Another problem is that you will very rarely find examples of failing proofs, since users rarely commit them. I'm working on a joint UW-UCSD project on collecting and analyzing development data, and this is one of the goals. But our dataset is not very large, since it is hard to get users to agree to something so invasive, and there are still only 1000 or so active Coq users in total in the world right now.
Another big problem is that it is very, very difficult to define what it means for a proof to be "almost" correct. This makes it difficult to apply many existing techniques fruitfully.
Nonetheless, I think the general spirit is right. The biggest gains in proof automation in ITPs this decade are going to come from automation that makes use in some way of existing proofs, rather than starting from scratch and "blindly" (often very effectively or even decideably for certain fragments of the logic or certain domains if the user knows the right tactic to call) searching for some term with a given type.
Re: Learning to prove theorems via interacting with proof assistants
#4This feels a little misleading, the paper itself says that the phenomena "... suggests that theorems with longer proofs are much more challenging for the model." It'd be more interesting to see how the automated theorem proving length compares to the manual length for the same proofs (although I'd expect this to be biased downwards, for the same reason).
Re: Learning to prove theorems via interacting with proof assistants
#5There has been a lot of work like this popping up in the past year. I think it's somewhat promising, but for ML for ITPs to really become useful, I think the models need to better take into account semantic information about terms and types and not just tactics. And this is not easy, because Coq's logic is higher-order and dependently typed, and most work in ML for PL deals with much simpler logics. Still, anything t…
Let's say you write those proofs via induction over the natural numbers. You can choose between arguments to induct over if your functions take multiple inputs. The most effective choice often depends on the definitions of your functions. This means to pick the best argument, already you need to unfold your definition. Chances are you do that unfolding in your head, not using a tactic, or at least not one that you keep in your final proof.
So already, an ML technique for ITPs that does not unfold definitions in goals for more information is missing out on the essential piece that makes a user choose one argument for induction over another, even when syntactically the hypotheses and goals may look identical (I can define "add" to break down the first argument or the second argument, my call).
In general, I think the ITP community likes to pretend that we are using tactics to interact with a black box, but in practice, most of us have internalized heuristics that involve introspecting on the structures of terms and types. So any model that lacks the information to internalize those heuristics is missing out.
Re: Learning to prove theorems via interacting with proof assistants
#6Re: Learning to prove theorems via interacting with proof assistants
#7There has been a lot of work like this popping up in the past year. I think it's somewhat promising, but for ML for ITPs to really become useful, I think the models need to better take into account semantic information about terms and types and not just tactics. And this is not easy, because Coq's logic is higher-order and dependently typed, and most work in ML for PL deals with much simpler logics. Still, anything t…
Re: Learning to prove theorems via interacting with proof assistants
#8Two more: https://arxiv.org/abs/1907.07794 https://arxiv.org/pdf/1904.03241.pdf
https://arxiv.org/pdf/1608.02644.pdf
I'd really love to see someone like Deepmind get a hold of this. They are perfectly placed to apply a lot of resources to it and it's right in their wheelhouse.
Don't know how to contact them about it though.
Re: Learning to prove theorems via interacting with proof assistants
#9There has been a lot of work like this popping up in the past year. I think it's somewhat promising, but for ML for ITPs to really become useful, I think the models need to better take into account semantic information about terms and types and not just tactics. And this is not easy, because Coq's logic is higher-order and dependently typed, and most work in ML for PL deals with much simpler logics. Still, anything t…
Have you thought an interactive site where people could learn coq writing proofs? Something very similar to https://projecteuler.net/ . You could get thousands of failed proofs very fast.
Re: Learning to prove theorems via interacting with proof assistants
#10Earlier quoted context omitted.
Have you thought an interactive site where people could learn coq writing proofs? Something very similar to https://projecteuler.net/ . You could get thousands of failed proofs very fast.
That's a neat idea. It would mostly help for gathering data from beginners, which would be very skewed, but I'm sure it could still be useful, especially for developing tools to help beginners.