Subject: Ssreflect Users Discussion List
List archive
- From: Jason Gross <>
- To: Georges Gonthier <>
- Cc: ssreflect <>
- Subject: Re: [ssreflect] Ssreflect (1.4) breaks Ltac's type of notation
- Date: Thu, 19 Jun 2014 11:09:49 +0100
Indeed, this is a known problem, one which I believe is corrected in ssreflect 1.5. It is due to the fact that ‘of’ is a true keyword in ssreflect but not in Coq, and that Coq’s camlp4 parser is sensitive to this. The ssreflect plugin code does hack into the parser to correct this for other uses of ‘of’ in the Ltac grammar, but this feature is a later addition to Ltac.
IMHO, this should be a Gallina rather than an Ltac feature, and indeed the following
Notation type_of := (fun _ : T => T).
not only works around the problem, but makes this feature available in any Gallina context.
Georges
From: [mailto:] On Behalf Of Jason Gross
Sent: 18 June 2014 14:30
To: ssreflect
Subject: [ssreflect] Ssreflect (1.4) breaks Ltac's type of notation
Is this a known bug?
Require Import Ssreflect.ssreflect.
Ltac foo x := type of x.
(* Toplevel input, characters 19-21:
Syntax error: '.' expected after [vernac:command] (in [vernac_aux]). *)
There's a workaround of doing
Ltac type_of x := type of x.
Require Import Ssreflect.ssreflect.
But it would be nice if ssr made [type of] work.
-Jason
- [ssreflect] Ssreflect (1.4) breaks Ltac's type of notation, Jason Gross, 06/18/2014
- RE: [ssreflect] Ssreflect (1.4) breaks Ltac's type of notation, Georges Gonthier, 06/19/2014
- Re: [ssreflect] Ssreflect (1.4) breaks Ltac's type of notation, Jason Gross, 06/19/2014
- RE: [ssreflect] Ssreflect (1.4) breaks Ltac's type of notation, Georges Gonthier, 06/19/2014
Archive powered by MHonArc 2.6.18.