Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] goal selectors; tactic expressions

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] goal selectors; tactic expressions


Chronological Thread 
  • From: Jeremy Dawson <Jeremy.Dawson AT anu.edu.au>
  • To: "coq-club AT inria.fr" <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] goal selectors; tactic expressions
  • Date: Fri, 25 Jan 2019 13:37:13 +0000
  • Accept-language: en-US
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=Jeremy.Dawson AT anu.edu.au; spf=Pass smtp.mailfrom=Jeremy.Dawson AT anu.edu.au; spf=Pass smtp.helo=postmaster AT AUS01-ME1-obe.outbound.protection.outlook.com
  • Ironport-phdr: 9a23:+WLSjxP/WKmjr6gAyaol6mtUPXoX/o7sNwtQ0KIMzox0Ivv/rarrMEGX3/hxlliBBdydt6oUzbKO+4nbGkU4qa6bt34DdJEeHzQksu4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1Ov71GonPhMiryuy+4ZLebxlLiTanfb9+MAi9oBnMuMURnYZsMLs6xAHTontPdeRWxGdoKkyWkh3h+Mq+/4Nt/jpJtf45+MFOTav1f6IjTbxFFzsmKHw65NfqtRbYUwSC4GYXX3gMnRpJBwjF6wz6Xov0vyDnuOdxxDWWMMvrRr0yRD+s7bpkSAXwhSkHKTA37X3XhMJzgqJVoh2hpgBwzYHbb4yOKPpxZbnQcc8GSWZdXMtcUTFKDIOmb4sICuoMJeJWoJfnp1QQqBu/BRSnCu31xT5GnX/22qs62PkmHA/CwgMgBcwBsHHUrdnvOqkdS+60zLLPzTXFdP5ZwzH96JXSfh8/vP6MQKh8ftDMyUQ2EQ7Ok1aeqZT9Mj6ayugBqXWX4/ZiWO61lmIqpQB8riKyysoihYTFno0Yx1Te+SlkxIs4Jce0RFNlbdK4Cpdcqi+XOohuTsMsXW5luzo2x7gDtJO5YCQHy5UqyhvQZvyJbYSH/xfuWeaMLjp4n31ofayzihey/EWjzOD3S9O630xQriVfl9nBrnAN2ALX6siAUvZw4kmu1yuT2wzO8+1KJk86mbfCJ54m2bE/iIAfsUPeHi/qg0r2i7KWdkM59eSy8+TneLLmpoOCOIBolgH+M6MumsqlDeQ/LwgOQ2yb+eO71L3g50H2XLJKjvgunqnYtpDVO9gbq7a2DgNJyIov9gqzAjW83NgFk3QKLUhJdA+JgoXmI13OJer3Dfa7g1SiijdrwPXGM6XlDJrTNHjMjrLhfLZn50BS0gUyw8tf55VSCrwaOv3zXFLxuMbGARAkLgy42fzoCMhl2oMERW2PGrOZML/VsVKQ+u0vJPCMaJYJtzb5Nvgq/OXjjWQ5mF8YZammx4EbaHG+HvR8IkWWe2DggtkbETRCgg1rBuftkRiJVSNZT3e0RaM1oD8hQsryBoDaA4upnbap3SGhH5QQaHoQWX6WFnK9VYieVvIdIA6bPdRmlHRQd7W7Roowkz2nqxT9zZJuKPeS9yEF85v+gosmr9bPnA0/oGQnR/+W1HuAGjktzzE4AgQu1aU6mnRTj1KK0Kx2mftdTIYB7vVUFAo2KNjV0r4jUoygakf6Zt6MDW2ebJC+GzhoFIA4xcJIbkpgXdy/3EiagniaRoQNnrnOP6Qat6LR23+teJRU9k2ejewEogBjRcFCc2q7mqR46g7fQZbTlFmUnLqrcqJa2zPR8GCEziyFu0QKCQM=

Hi Jason,

No, I used { on a subgoal, which subsequently gave two subgoals at the
point at the start of the output shown in my email below

Cheers,

Jeremy

On 01/26/2019 12:32 AM, Jason -Zhong Sheng- Hu wrote:
> Are you in an assert or something? all: won't catch a goal that is not
> visible in the current scope.
>
> Thanks,
> Jason Hu
>
> On Jan 25, 2019 08:19, Jeremy Dawson
> <Jeremy.Dawson AT anu.edu.au>
> wrote:
> Hi Gaëtan,
>
> all: repeat solve_eqs
> doesn't succeed, I don't know exactly what all : repeat solve_eqs does
> (previous emails addressed this question and the answer I was given)
> though in this case it's consistent with applying
> 1: repeat solve_eqs (which leaves one subgoal, so subgoal 2: is the
> original subgoal 2)
> then applying 2 : repeat solve_eqs.
> or maybe just
> 1: solve_eqs. then 2: solve_eqs. (ie without "repeat", I can't tell)
>
> It doesn't go back to try 1 : solve_eqs again.
>
> eg see the following, where the
> second application of the tactic
> all : repeat solve_eqs
> makes progress beyond the results of the first application of it.
>
> 2 focused subgoals
> (shelved: 5)
>
>    V : Set
>    Φ2, Ψ1, Ψ2, Γ1 : list (PropF V)
>    Q : PropF V
>    sel1, l, l1 : list (PropF V)
>    ============================
>    ((Γ1 ++ Q :: sel1) ++ l ++ Φ2, Ψ1 ++ l1 ++ Ψ2) =
>    (?Γ1 ++ ?Q :: ?Γ2 ++ ?Γ3, ?Δ)
>
> subgoal 2 is:
>   G ++ (?Γ1 ++ ?Γ2 ++ ?Q :: ?Γ3, ?Δ, d0) :: H6 =
>   G ++ ((Γ1 ++ sel1) ++ l ++ Q :: Φ2, Ψ1 ++ l1 ++ Ψ2, d0) :: H6
>
> gen_moveL < all : repeat solve_eqs.
> 1 subgoal
>
>    V : Set
>    Φ2, sel1, l : list (PropF V)
>    ============================
>    sel1 ++ l ++ Φ2 = (sel1 ++ l) ++ Φ2
>
> gen_moveL < all : repeat solve_eqs.
> This subproof is complete, but there are some unfocused goals.
> Try unfocusing with "}".
>
> Cheers,
>
> Jeremy
>
>
> On 01/25/2019 08:53 PM, Gaëtan Gilbert wrote:
>> Note that repeat runs the inner tactic focused on each goal separately
>> so "repeat (all: solve_eqs)" would (if the syntax allowed it) be the
>> same as "repeat (only 1: solve_eqs)" which is also the same as "repeat
>> solve_eqs", and "repeat (only 2: solve_eqs)" is the same as "repeat
>> fail" ie idtac.
>>
>> I feel like "all: repeat solve_eqs" should work given what you describe,
>> can you explain how it fails?
>>
>> Gaëtan Gilbert
>>
>> On 25/01/2019 06:54, Jeremy Dawson wrote:
>>>
>>> Hi Cyprian,
>>>
>>> What I wanted is what I would express as
>>> repeat (all : solve_eqs)
>>> but it seems as though that form is forbidden.
>>>
>>> The various things I tried as indicated in my earlier email were simply
>>> looking for alternatives that work.
>>>
>>> Detailed background to what I want: solve_eqs doesn't seem to enlarge
>>> the number of goals in the cases where I want to use it, and sometimes
>>> solves a goal, sometimes only after solve_eqs has instantiated an evar
>>> in another goal, sometimes only after being repeatedly called on the
>>> same goal (where each time it simplifies the goal)
>>>
>>> Cheers,
>>>
>>> Jeremy
>>>
>>>
>>> On 01/25/2019 10:00 AM, Cyprien Mangin wrote:
>>>> What you probably meant is something like "all : repeat solve_eqs"



Archive powered by MHonArc 2.6.18.

Top of Page