Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Tactic Notation wrapper for ssreflect rewrite

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Tactic Notation wrapper for ssreflect rewrite


Chronological Thread 
  • 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



Archive powered by MHonArc 2.6.18.

Top of Page