coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Pierre Courtieu <pierre.courtieu AT gmail.com>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] Cascading tactics
- Date: Sat, 01 Apr 2017 12:22:28 +0000
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=pierre.courtieu AT gmail.com; spf=Pass smtp.mailfrom=pierre.courtieu AT gmail.com; spf=None smtp.helo=postmaster AT mail-wm0-f44.google.com
- Ironport-phdr: 9a23:tCttWBLUSMurHhKzwNmcpTZWNBhigK39O0sv0rFitYgRL/vxwZ3uMQTl6Ol3ixeRBMOAuq4C07KempujcFRI2YyGvnEGfc4EfD4+ouJSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgppPOT1HZPZg9iq2+yo9ZDeZwpFiCChbb9uMR67sRjfus4KjIV4N60/0AHJonxGe+RXwWNnO1eelAvi68mz4ZBu7T1et+ou+MBcX6r6eb84TaFDAzQ9L281/szrugLdQgaJ+3ART38ZkhtMAwjC8RH6QpL8uTb0u+ZhxCWXO9D9QLYpUjqg8qhrUgflhygJNzE78G/ZhM9+gr9Frh29vBFw2ZLYbZuPOfZiYq/Qf9UXTndBUMZLUCxBB5uxYZEOD+UfJ+ZYtZfyrEYQoBu5GAmsHv/vyj5WiX/rwKY31PwhEQDY0ww6BdIBrm7Yo8nyNKcPS+C10KjIwiveb/5N1jf97ZLHchElof2WQb1wds/RxFApGgjYgFuQronlMCmU1uQLq2Wb7uxgVfiui2E9sQ1xrCKvy8ExgYfKnoIY0lLJ+CpjzIooO9G1SFR3bN26HJdKuCyXOI17Sd44TW5yoiY10LgGtIa7fCcUzJQnwAbSa/mdfIiJ5hLvTeiQITJkiH58drKyiBm//VKvyu37Ucm031JKoTRfntbQsXAN0gTf6smBSvRj4keswTSC2g/J5u1ZP0w5lbDXJp0/zrIqmZcevlzPHirsl0X3iK+WeF8k+u+t6+n/erXmp4GTN5Vuig7gKKghhsu/AfkiMggSXmiU5/m82abs/U38WrpKj/k2nrPFv5DdIMQXvrS5DBNN0oY/9xa/CC+r38gfnXkeNV5KZBaHj5XyNFzVO/D5DfK/g0y2nztxxvDGOKfhApTXIXTZnrfhZ+U110kJww0qiNtb+ph8C7cbIfu1VFWimsbfC0oBMgGu2euvI9JgzJ8fVH/HVreYPbnIvBmD4f81P+iBeacavT/8L74u4Pu43ixxokMUYaT8hchfU3u/BPkze0g=
What about
repeat progress type_check_once.
?
Best
P
Le sam. 1 avr. 2017 à 01:38, Jonathan Leivent <jonikelee AT gmail.com> a écrit :
On 03/31/2017 05:59 PM, Robert Rand wrote:
> Hi all,
>
> I'm trying to use Ltac to apply a tactic called type_check_once to all
> goals until no further progress can be made. Often this requires a cascade:
> type_check_once might instantiate a existential variable in goal #6 which
> then allows us to solve goal #3. No new goals are generated in this process.
>
> The problem is that the tactics seem to focus on a single goal, and does
> not cascade properly.
>
> In Coq 8.5 the following code worked but it fails in 8.6 (that is, we now
> have to call "all: type_check" multiple times in a row to solve all goals).
>
> Ltac type_check := let n := numgoals in do n type_check_once.
>
> (I've also tried using [> type_check_once..] in place of type_check, but
> this doesn't seem to buy us anything.)
>
> The following two approaches seemed to show promise, but both fail in some
> cases, for reasons unclear to me:
>
> Ltac type_check_num :=
> let pre := numgoals in
> type_check_once;
> let post := numgoals in
> tryif (guard post < pre) then type_check_num else idtac.
>
> Ltac type_check_circ :=
> intros; compute;
> try (progress [> type_check_once ..]; type_check_circ)
>
> Any suggestions?
Robert,
Have you tried:
Ltac type_check := let n := numgoals in do n repeat type_check_once.
You also might be interested in the lengthy discussion in
https://coq.inria.fr/bugs/show_bug.cgi?id=3878
-- Jonathan
- Re: [Coq-Club] Cascading tactics, Jonathan Leivent, 04/01/2017
- Re: [Coq-Club] Cascading tactics, Pierre Courtieu, 04/01/2017
- Re: [Coq-Club] Cascading tactics, Robert Rand, 04/03/2017
- Re: [Coq-Club] Cascading tactics, Jonathan Leivent, 04/03/2017
- Re: [Coq-Club] Cascading tactics, Robert Rand, 04/03/2017
- Re: [Coq-Club] Cascading tactics, Pierre Courtieu, 04/01/2017
Archive powered by MHonArc 2.6.18.