Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Moving away from putting hints in the core hintdb

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Moving away from putting hints in the core hintdb


Chronological Thread 
  • From: Jim Fehrle <jfehrle AT sbcglobal.net>
  • To: "coq-club AT inria.fr" <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] Moving away from putting hints in the core hintdb
  • Date: Thu, 15 Nov 2018 20:02:20 +0000 (UTC)
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jfehrle AT sbcglobal.net; spf=None smtp.mailfrom=jfehrle AT sbcglobal.net; spf=None smtp.helo=postmaster AT sonic303-25.consmr.mail.ne1.yahoo.com
  • Ironport-phdr: 9a23:66YyIReQDylZvoql4pTg9xmPlGMj4u6mDksu8pMizoh2WeGdxcuzZx7h7PlgxGXEQZ/co6odzbaO4+a4ASQp2tWoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7Ovr6GpLIj8Swyuu+54Dfbx9HiTahYr5+Ngm6oRnMvcQKnIVuLbo8xAHUqXVSYeRWwm1oJVOXnxni48q74YBu/SdNtf8/7sBMSar1cbg2QrxeFzQmLns65Nb3uhnZTAuA/WUTX2MLmRdVGQfF7RX6XpDssivms+d2xSeXMdHqQb0yRD+v6bpgRh31hycdLzM3/mHZitZugqxYoh2hqQFxzIHIb4+SL/dxZL/RcMkBSmdbQspcVSpMCZ68YYsVCOoBOP5VoY38p1sLsBCwBRejBOP1yj9MmHD9wKo30+YvEQ7Y3AwgBdYOv2rPodXuL6gdTe+1zK3PzTrYdfxW3S3x6I7WfRA9uPyBW697f8nJyUQ3Fg7Ij0+cpZHkMj6bzOgBrmuW4ul6We6yi2Mrtgd8qSW1yMg2kInGnIcVx0jE9SpnxIY1IsW1SFV8Yd6iEZtfqy+XO5d4T887XW1luDw2xaEBuZ69ZygKzY4nywTaa/OdcoiI5gjvVOCPLjtlnn5keKiwhxa18Uin0OHzSs600FNSoipElNnDqGwN2gTS58WGUPdx40as1DiV2wzO6exJIlo4mbfbJpI82rIwk4AcsUXHHi/4gkX2i6qWe10m+uim9evnYq/mppuCOIJvkQHxKbghmsO7AeQ/KQcBRWyb9f661LL94U31WK9KgeEukqnFrJDaItwWqbK+Aw9My4os9xK/Dyq939kDhnkGLFdFeAqdgITzOlHOJur4DfaljFi2njdr3aOOArq0SJ7KNz3IlKrrVbd78U9VjgQph5gL7JVNT7oFPfjbW0nrtdWeAAVvYDa52+L2NNIo9IIbEUyCArWdPeuGs1GF5vgrLsGXboQavDH3Ivxj4fPy2ywXg1gYKIuo2NM5ZXCiGvkud0eXbHr2htopCm0BsQ45RuXuzluPTWgAND6JQ6sg62RjW8qdBoDZS9X12e3T7GKABpRTI1t+JBWJGHbseZ+DXq5ROjmYKcBllTYNUf6nRpNzjUjy5j+/8KJuK6/vwgNdrYjqjYUn/OfYmhU1/zVwScKQzzPVFjwmriYzXzYzmZtHjwl9x1OEivkqmPteFNcIv6gMCFp8Ppna1OlgTdX7WwaHeNrQDkevQtKhRzo2S4Bpzg==

Hi Michael,

Also if eauto is used, one can easily add the debug flag (for typeclasses eauto it is a global option). It is a good idea to have a look at the logs and the branching factors of the proof search.

Logs meaning the console output from Set Debug Auto/Set Debug Eauto?  By the branching factor, you just mean paying attention to the output (e.g. 1.2.3.1 is depth 4) and each digit counts the branches at it's level?

the core hint database includes hints which can loop to the search depth limit on some goals.

How helpful would it be if auto/eauto detected and avoided looping?  Either by a) detecting that the proof state has already been seen in the current search (e.g. there is a tactic for a commutative property) and/or b) using a queue that ranks various proof states by a size metric and processing the smaller proof states first.  This might give better performance and allow for a higher depth limit.

Thanks,

Jim


count_rev_tree < Set Debug Eauto.

count_rev_tree < eauto.
Debug: (* debug eauto: *)
Debug: 1 depth=5
Debug: 1.1 depth=4 simple apply f_equal_nat
Debug: 1.1.1 depth=3 simple apply f_equal2_nat
Debug: 1.2 depth=4 simple apply f_equal2_nat
Debug: 1.2.1 depth=4 simple apply @eq_refl
Debug: 1.2.1.1 depth=3 simple apply f_equal2_nat
Debug: 1.2.2 depth=4 simple apply eq_add_S ; trivial
Debug: 1.2.2.1 depth=3 simple apply f_equal2_nat
Debug: 1.2.3 depth=4 simple apply eq_sym ; trivial
Debug: 1.2.3.1 depth=3 simple apply f_equal2_nat



From: "Soegtrop, Michael" <michael.soegtrop AT intel.com>
To: "coq-club AT inria.fr" <coq-club AT inria.fr>
Sent: Thursday, November 15, 2018 2:22 AM
Subject: RE: [Coq-Club] Moving away from putting hints in the core hintdb

Dear Armaël,

in my experience including the core hint database frequently leads to bad proof search performance. E.g. the core hint database includes hints which can loop to the  search depth limit on some goals. I would generally recommend to apply proper engineering practices in designing hint databases and to not provide a substantially larger set of hints than required.

I typically use a set of tactics and/or tactic notations to wrap eauto with certain sets of hint databases suitable for specific problems. This wrapping also makes it easier to switch between eauto and typeclasses eauto, which is a good idea to try. Also if eauto is used, one can easily add the debug flag (for typeclasses eauto it is a global option). It is a good idea to have a look at the logs and the branching factors of the proof search.

Best regards,

Michael




Archive powered by MHonArc 2.6.18.

Top of Page