coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Robbert Krebbers <mailinglists AT robbertkrebbers.nl>
- To: coq-club <coq-club AT inria.fr>
- Subject: Re: [Coq-Club] Tactic Notation wrapper for ssreflect rewrite
- Date: Sun, 7 Jan 2018 17:05:18 -0800
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=mailinglists AT robbertkrebbers.nl; spf=None smtp.mailfrom=mailinglists AT robbertkrebbers.nl; spf=None smtp.helo=postmaster AT smtp1.science.ru.nl
- Ironport-phdr: 9a23:lusP6RF1S6NqEWW3ufPHH51GYnF86YWxBRYc798ds5kLTJ78rsuwAkXT6L1XgUPTWs2DsrQY07OQ6/iocFdDyK7JiGoFfp1IWk1NouQttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZrKeTpAI7SiNm82/yv95HJbAhEmCexbaluIBmqsA7cqtQYjYx+J6gr1xDHuGFIe+NYxWNpIVKcgRPx7dqu8ZBg7ipdpesv+9ZPXqvmcas4S6dYDCk9PGAu+MLrrxjDQhCR6XYaT24bjwBHAwnB7BH9Q5fxri73vfdz1SWGIcH7S60/VDK/5KlpVRDokj8KOSM5/m/JhMx+j6xVrxyuqBN934Hab5qYNOZ9c67HYd8WWWRMU8RXWidcAo28dYwPD+8ZMOhEqInyvEABogWkBQmwGejhzyVIiWHt0qIhzeshCxrG1xEnEtILqnvUrdH1NKYUUeC6yKnIzC7Db+9N2Trm8ojIdQsuruqSUrJqbcrRylMvGB3egVqLt4PlJSiV2v4Ls2if9udtU/+khW0/qwxpvzSiyNoghpPUio8XxV3I7zh1zYcvKdGlR0N2b8aoHZtMuy2AKod6WN4uTm5ptSog17ELuJC2cS4Xw5o93RHfceaIc42Q7xLjSumRJTB4iWp+eLK6mxay6VWsxvfnVsao0VZFsCxFncXSuXwXzRzT99KLSv15/ku52DaP0R7c6v1cLEwpm6fXNoQtzqMym5ccq0jPAy77lF/rgKKZeEgo4u2o5P7mYrXiqJ+cLYh0igTmP6QrgMO/AOA4MgkIX2iU/eS81abj/VHiQLhRlP02lbLWv4vEKsQBuq65ABVV3Zg45BmkETimys8YkWMBLFJBYB6HlZTmO0nSIPDkCveym0ijkDByx/zfIrLhBojNIWPYnbf6fbd97lZcxxApwdBe4ZJUELABL+jpVk//rtyLRiM+Zgez2qPsDMh3ntcVXnvKCauEOovTt0WJ76QhOb/fSpUSvWPHLPIv6uTyxVwjlFUXcLOylc8SYXG8H/JpJ0SCfWHEmNALG2oQogkkQebghUeZFzhXMSXhF5kg7y02Xdr1RbzIQZqg1eSM
I took a look at the ssr sources to see how the rewrite tactic is added to the Coq grammar:
TACTIC EXTEND ssrrewrite
| [ "rewrite" ssrrwargs(args) ssrclauses(clauses) ] ->
[ Proofview.V82.tactic (tclCLAUSES ist (ssrrewritetac ist args) clauses) ]
END
I tried to mimic this using a tactic notation:
Tactic Notation "foo" ssrrwargs(args) ssrclauses(clauses) :=
rewrite args clauses.
Unfortunately, this does not work (see below for an example). Does anyone know a way of making this work?
----
From Coq.ssr Require Import ssreflect.
From Coq Require Import Arith.
Tactic Notation "foo" ssrrwargs(args) ssrclauses(clauses) :=
rewrite args clauses.
Lemma test x y : x + y = y + x.
Fail foo /=.
Fail foo plus_comm.
(* Variable args should be bound to a term but is bound to a list. *)
On 01/01/2018 03:51 AM, Robbert Krebbers wrote:
Hi Coq-club,
I am trying to do something like:
Tactic Notation "foo" ssrrewriteargs(args) :=
do stuff;
rewrite args.
So that for args I can take anything that the ssreflect rewrite tactic accepts, e.g. `lem1 /= lem2 /const //`.
Does anyone know if this is possible and what I should pick for `ssrrewriteargs`?
Thanks!
Robbert
- [Coq-Club] Tactic Notation wrapper for ssreflect rewrite, Robbert Krebbers, 01/01/2018
- Re: [Coq-Club] Tactic Notation wrapper for ssreflect rewrite, Robbert Krebbers, 01/08/2018
Archive powered by MHonArc 2.6.18.