Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Is it possible to rewrite under binders?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Is it possible to rewrite under binders?


Chronological Thread 
  • From: Thorsten Altenkirch <Thorsten.Altenkirch AT nottingham.ac.uk>
  • To: "coq-club AT inria.fr" <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] Is it possible to rewrite under binders?
  • Date: Wed, 27 Jan 2016 08:39:12 +0000
  • Accept-language: en-US, en-GB
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=Thorsten.Altenkirch AT nottingham.ac.uk; spf=None smtp.mailfrom=Thorsten.Altenkirch AT nottingham.ac.uk; spf=None smtp.helo=postmaster AT uidappmx05.nottingham.ac.uk
  • Ironport-phdr: 9a23:uV/Nbh/YZGvEbP9uRHKM819IXTAuvvDOBiVQ1KB92+kcTK2v8tzYMVDF4r011RmSDdqds6sP0rCK+4nbGkU+or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6anHS+4HYoFwnlMkItf6KuStGU1538jrrus7ToICx2xxOFKYtoKxu3qQiD/uI3uqBFbpgL9x3Sv3FTcP5Xz247bXianhL7+9vitMU7q3cY6Lod8JsKWqLjOq88ULZwDTI8Mmlz6teh/U3IShLK7X8BWE0XlABJCk7L9kepcI32t37Gtu1nwzWXO4XfSaw5Xzej9axrAEvUiCAdLCI09if+jtB9iqFauhmhjxp435LVZo6VPf84d6ibYNBMFjkJZdpYSyEUWtD0VIAIFedUZes=

Indeed you need functional extensionality which isn’t provable in coq.
Imho this is a bug, but one which isn’t easy to fix.

We suggested a solution a while ago (called Observational Type Theory) but this was never implemented in any real system. Now there is something better coming up, see Coquand et al’s work on Cubical Type Theory.

Cheers,
Thorsten

From: <coq-club-request AT inria.fr> on behalf of Hugo Carvalho <hugoccomp AT gmail.com>
Reply-To: "coq-club AT inria.fr" <coq-club AT inria.fr>
Date: Tuesday, 26 January 2016 18:56
To: coq-club <coq-club AT inria.fr>
Subject: [Coq-Club] Is it possible to rewrite under binders?

Hi Club!

Consider the following goal:

Example e1 : (fun x => 1 + x) = (fun x => S x).

This is provable, as computation occurs under binders normally, and addition in Coq happens to be defined recursively over the first argument.

This other goal doesn't look as provable:

Example e2: (fun x => x + 1) = (fun x => S x).

Doesn't seem like you can rewrite "x+1" into "S x" (since you can't introduce "x" into the context, you can't refer to it in order to instantiate an equality you'd use to rewrite)... Is this the case? Is this goal unprovable without relying on axioms (functional extensionality does the trick, of course)?


This message and any attachment are intended solely for the addressee
and may contain confidential information. If you have received this
message in error, please send it back to me, and immediately delete it. 

Please do not use, copy or disclose the information contained in this
message or in any attachment.  Any views or opinions expressed by the
author of this email do not necessarily reflect the views of the
University of Nottingham.

This message has been checked for viruses but the contents of an
attachment may still contain software viruses which could damage your
computer system, you are advised to perform your own checks. Email
communications with the University of Nottingham may be monitored as
permitted by UK legislation.



Archive powered by MHonArc 2.6.18.

Top of Page