Subject: Ssreflect Users Discussion List
List archive
- From: Georges Gonthier <>
- To: Jason Gross <>, ssreflect <>
- Subject: RE: [ssreflect] Ssreflect (1.4) breaks Ltac's type of notation
- Date: Thu, 19 Jun 2014 08:10:56 +0000
- Accept-language: en-GB, en-US
- Authentication-results: spf=pass (sender IP is 131.107.125.37) ;
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
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.