Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Coq 8.6 change poll

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Coq 8.6 change poll


Chronological Thread 
  • From: Jonathan Leivent <jonikelee AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Coq 8.6 change poll
  • Date: Tue, 31 May 2016 11:20:11 -0400
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jonikelee AT gmail.com; spf=Pass smtp.mailfrom=jonikelee AT gmail.com; spf=None smtp.helo=postmaster AT mail-qg0-f48.google.com
  • Ironport-phdr: 9a23:NT+aVBRaE84KS8MqeFfafaKXqtpsv+yvbD5Q0YIujvd0So/mwa64Zx2N2/xhgRfzUJnB7Loc0qyN4/GmBDFLscvJmUtBWaIPfidNsd8RkQ0kDZzNImzAB9muURYHGt9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3BPAZ4bt74BpTVx5zukbviqtuOPk4Y2XKUWvBbElaflU3prM4YgI9veO4a6yDihT92QdlQ3n5iPlmJnhzxtY+a9Z9n9DlM6bp6r5YTGfayQ6NtRrtBST8iLmod5cvxtBCFQxHcyGEbVzA0lRxBHwjM6lneU5bvvy3m/r5/3y+bPsDyQL0cVjGr7qMtQxjt3nRUfwUl+X3a35QjxJlQpwis8kRy



On 05/31/2016 11:05 AM, Pierre-Marie Pédrot wrote:
Hello coq-club,

here is a little poll for you about the inclusion details of a feature
in Coq 8.6. From this version, it will be possible to use first-class
quotations in Ltac that were previously limited to Tactic Notations, e.g.

let id := ident:(foo) in ...

let c := open_constr:(f _ _) in ...

The string in parentheses is parsed as the argument described by the
string and then interpreted as such.

For uniformity and parsing reasons, the current implementation requires
such quotations to be of the form IDENT COLON LEFTPAREN entry
RIGHTPAREN, with mandatory parentheses.

Pro:

1. Uniform quotation syntax, as used by most (meta-)languages
2. Allowance of parsing of objects where spaces are significant, e.g.
complex intro-patterns of the form "[] []"

This looks really good...

Will it be possible to use Ltac to incrementally build up and break down things like simple_intropattern and hyp_list? Or will they stay opaque as in 8.5?


Cons:

1. No more special handling of the constr:(...) entry.

This means that constr quotations require parentheses as well, and that
you cannot write

constr:x

anymore. Likewise, for reasons I am not really sure to understand, it
forces you to write the ugly

constr:((x, y))

when parsing pairs.

I did some grepping and found I have only one instance of constr: lacking parens - and that is:

Ltac last_hyp := lazymatch goal with H : _ |- _ => constr:H end.

In this case, the "constr:" isn't needed in 8.5. Will that change in 8.6? In other words, will it be necessary to enclose all constrs in a "constr:(...)" wrapper in 8.6, even those not requiring this in 8.5? It will be harder to find such occurrences...

-- Jonathan




Archive powered by MHonArc 2.6.18.

Top of Page