Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] rewriting without instantiating

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] rewriting without instantiating


Chronological Thread 
  • From: Jason Gross <jasongross9 AT gmail.com>
  • To: coq-club AT inria.fr, Robbert Krebbers <mailinglists AT robbertkrebbers.nl>
  • Subject: Re: [Coq-Club] rewriting without instantiating
  • Date: Mon, 3 Dec 2018 23:49:42 -0500
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jasongross9 AT gmail.com; spf=Pass smtp.mailfrom=jasongross9 AT gmail.com; spf=None smtp.helo=postmaster AT mail-ed1-f46.google.com
  • Ironport-phdr: 9a23:pFlgTxQxUphBm2zFWaZTDfkSGNpsv+yvbD5Q0YIujvd0So/mwa69bBWN2/xhgRfzUJnB7Loc0qyK6/CmATRIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+KPjrFY7OlcS30P2594HObwlSizexfbB/IA+qoQnNq8IbnZZsJqEtxxXTv3BGYf5WxWRmJVKSmxbz+MK994N9/ipTpvws6ddOXb31cKokQ7NYCi8mM30u683wqRbDVwqP6WACXWgQjxFFHhLK7BD+Xpf2ryv6qu9w0zSUMMHqUbw5Xymp4qF2QxHqlSgHLSY0/27ZisNyjKxVrhGvqQFhzYHIe4yaLuZyc7nHcN8GWWZMXMBcXDFBDIOmaIsPCvIMM+JCoInmoFsOqwa1Cwi2BOPo0T9InWL90Ko40+s7CgHG2wogH90UsHTTt9X1L6MfXPu6zKnN1zrDbvdW1S3h54jPdxAsuPeBVq9+f8rWzEkgDQLFjlOIpIzkOTOVzOUNvHKB4+puT+KijXMspQJpojW32Msglo3EipgWx13E7yl13po5KN6iREN0YNOpFoZbuTuAOItsWMwiRnlluCYkxb0Cvp62ZC0Kx44mxx7bcvCIbZWH7g/6WOafLjp1hWhpeL24hxa1/kigzvPzWtOo31ZNqypJitjMtnYT2BzP8sWLVOdx80O71TuM1w3f8P9ILVw3mKbBJJMsw6Y8lp8JvkTCGi/2ll/2jKiTdkg8+Oin8f/nYrLgpp+TLY90jRr+Mr8ql8GkDuQ4NxIBX2mf+eimyLLj+kj5TK1QjvIqiqnZrIzaJcMDq6GlBA9Vy58v5Aq7Dze7y9sVhmIHLVJAeBKflYflIVDOIPbiDfe+mVugijlrx+qVdoHmV57KNz3IlKrrVbd78U9VjgQpiZhl4JheB6sdaNHpV0X7ucbDRks8Og2wwuDoDNRmypg2Q2WFCKKDLKDIvFWC6/g0Ze+IMtw7ojH4ftos/PnoxVAjnkQGNf2r1IAQbn+iGe99cm2WZHPthpEKFmJc7Vl2d/DjlFDXCW0bXH21Ra9pvmhqWrLjNp/KQ8WWuJLE2S66GpNMYWUfUwKDFH7pc8OPXPJeMXvOcP8kqSQNUP2ac6FkzQun7VaoxL9uL+6S8Sod58q6iYpFotbLnBR3zgRaSsSQ12bXEjNxl2IMAjI6heVx/RI7xVCE3qx1xfdfEI4L6g==

The general solution I use is a tactic I call set_evars:

Ltac set_evars :=
  repeat match goal with
         | [ |- context[?ev] ] => is_evar ev; let e := fresh "e" in set (e := ev)
         end.

The rewrite tactic will not unfold these context definitions to find the evars underneath them.

On Mon, Dec 3, 2018, 05:49 Emilio Jesús Gallego Arias <e AT x80.org> wrote:
Robbert Krebbers <mailinglists AT robbertkrebbers.nl> writes:

> For this concrete example, it appears that the ssreflect rewrite
> tactic is doing what you want (i.e. it does _not_ instantiate the evar
> with []). I have no idea if this is coincidental, or an explicit
> feature of the ssreflect rewrite tactic.
>
> Maybe some of the ssr developers around here could tell more.

See p. 44, Sec 7.2 of https://hal.inria.fr/inria-00258384v17:

,----
| Existential metavariables and rewriting
|
| The rewrite tactic will not instantiate existing existential
| metavariables when matching a redex pattern
`----

Cheers,
E.




Archive powered by MHonArc 2.6.18.

Top of Page