coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: "Soegtrop, Michael" <michael.soegtrop AT intel.com>
- To: "coq-club AT inria.fr" <coq-club AT inria.fr>
- Subject: RE: [Coq-Club] Making COq do more of the search work
- Date: Mon, 12 Mar 2018 14:11:39 +0000
- Accept-language: de-DE, en-US
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=michael.soegtrop AT intel.com; spf=Pass smtp.mailfrom=michael.soegtrop AT intel.com; spf=None smtp.helo=postmaster AT mga18.intel.com
- Dlp-product: dlpe-windows
- Dlp-reaction: no-action
- Dlp-version: 11.0.0.116
- Ironport-phdr: 9a23:Ohn6bxAGmalHOvQLaUhrUyQJP3N1i/DPJgcQr6AfoPdwSPT+pcbcNUDSrc9gkEXOFd2Cra4c0KyO6+jJYi8p2d65qncMcZhBBVcuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6JvjvGo7Vks+7y/2+94fcbglUijexe69+IAmrpgjNq8cahpdvJLwswRXTuHtIfOpWxWJsJV2Nmhv3+9m98p1+/SlOovwt78FPX7n0cKQ+VrxYES8pM3sp683xtBnMVhWA630BWWgLiBVIAgzF7BbnXpfttybxq+Rw1DWGMcDwULs5Xymp4aV2Rx/ykCoJNyA3/nzLisJ+j6xbrhCupx1jzIHbe4yaLuZyc6fHcN8GWWZNQMBcXDFBDIOmaIsPCvIMMehFoYn6uVQOoge+BROrBOP30jNDm3j43awm3OQhCw7JwgggE9wTu3nTqdX1NbsdUeCvw6bWyTXPdehW2TDj54jHbhAhu/aMXaprfMrQz0kvCx3KjlGKpYP5ODOV0/0Avm6G5ORuUuKvjnQoqwB3ojW3x8csjJXJiZwRylze6Cp23oA4LsC7Rk5jedOoDZVdui6AO4drTM4vTHtktDs0x7AHo5K3YTYGxZU/yxLCavGKfZKE7xztWeqLPzt1inZodKiiixux7USs0vDwW8iw3VpQsCZIktbBumoT2xDJ98SLVv1w9Vq71zmVzQDc8ORELFg0laXFL54hxaY9lp8csUvZAyP7m1/6jK6QdkU45Oeo7/7rbanhpp+ZL4N0iwf+PboymsGnHOg1PAcDU3KG9emy27Dv51D1TbtLg/Esj6XVrpHXKdwepqGjAg9V1ogj6wy4DzejyNkYmHgHI05FeB2dkYfpP0vCIOv/DfihjFSsjC1rx/fePrD6A5XNKGTDn6nlfbpn90Fczw8zwchF551IErEBPO7zWkjpudPECR85KhW4zPrjCNVgzYwTQnmPA6+cMKPKq1CE/OMvI++WZI8UojnxMfYl5+S9xUM+zBUWerDs1p8KYli5GO5nKgOXezCk1twGCCIBuhc0ZO3sklyLFzBJMSWcRaU5s3sAD4+pEZ3EXsTlpb2K3C62GtceMmVHAVCFHHOubIKJVOsWbzq6I8l9nzhCXr+kHdxynSqyvRP3nuI0ZtHf/TcV4Mq6hYpFotbLnBR3zgRaSsGU0mWDVWZxxzpaRjkq0aQ5qkt4mA7ajfpIxsdAHNkW3MtnFx8gPMeFne18F932HAnGe4XREQv0cpCdGTg0C+kJ7ZoObkJ6Qorwix/KhnrsArkJmrjND5sxoPrR
I don’t think that something like the crunch tactic is that helpful for larger developments. If I remember right, Adam wrote in his book, that this is more of an example, and that it needs to be tailored to what is needed in specific cases. The main question is how does a mechanism look for a highly configurable version of crunch.
The approach I usually use is as follows:
· I use hint databases · I split theorems into two categories, those which are more suitable for forward search (extending from what you have) and those more suitable for backward search (going back from your goal). In which category a theorem belongs depends mostly on the relative specificness of the goals and hypothesis. Stuff with complex hypothesis and easy goal is better for forward search, stuff with complex goal and likely easy to satisfy hypothesis is more for backward search. One can easily see that this split improves proof search effectiveness very substantially. · Theorems in between I put together with some guard tactics, which check if the theorem is likely to be useful either in forward or in backward search.
My main problem is that Coq doesn’t have a good mechanism for a forward theorem databases and forward application. Hint databases and eauto work inherently in backwards mode. I would need a tactic which applies lemmas from a hint database as long as applicable lemmas exist. Eauto can’t be used for this (easily) because it insists on solving the goal and backtracks. I usually end up with a tactic in the hint database which does the forward stuff, but it requires really ugly hacks to get this extensible (although it works reasonably well in practice).
Regarding saving proofs: I think it would make more sense to have some sort of machine learning to guide eauto search to theorems which are applicable in certain situations. The result of something like this might get fairly scary … Saving proof terms likely has no significant advantages over using fine grain .v and .vo files with properly designed dependencies to minimize recompiles. I think the dependencies in quite a few Coq libraries and projects have not been designed but somehow happened, and are not specifically good examples for managing this.
Best regards,
Michael Intel Deutschland GmbH |
- [Coq-Club] Making COq do more of the search work, Jim Fehrle, 03/12/2018
- RE: [Coq-Club] Making COq do more of the search work, Soegtrop, Michael, 03/12/2018
- Re: [Coq-Club] Making COq do more of the search work, Abhishek Anand, 03/12/2018
- Re: [Coq-Club] Making COq do more of the search work, Matthieu Sozeau, 03/12/2018
- RE: [Coq-Club] Making COq do more of the search work, Soegtrop, Michael, 03/12/2018
- Re: [Coq-Club] Making COq do more of the search work, Théo Zimmermann, 03/12/2018
- Re: [Coq-Club] Making COq do more of the search work, Armaël Guéneau, 03/13/2018
- Re: [Coq-Club] Making COq do more of the search work, Matthieu Sozeau, 03/13/2018
- Re: [Coq-Club] Making COq do more of the search work, Clément Pit-Claudel, 03/13/2018
- RE: [Coq-Club] Making COq do more of the search work, Soegtrop, Michael, 03/14/2018
- Re: [Coq-Club] Making COq do more of the search work, Armaël Guéneau, 03/13/2018
- Re: [Coq-Club] Making COq do more of the search work, Théo Zimmermann, 03/12/2018
- RE: [Coq-Club] Making COq do more of the search work, Soegtrop, Michael, 03/12/2018
- Re: [Coq-Club] Making COq do more of the search work, R. Pollack, 03/12/2018
- Re: [Coq-Club] Making COq do more of the search work, Matthieu Sozeau, 03/12/2018
- Re: [Coq-Club] Making COq do more of the search work, Abhishek Anand, 03/12/2018
- RE: [Coq-Club] Making COq do more of the search work, Soegtrop, Michael, 03/12/2018
Archive powered by MHonArc 2.6.18.