Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Setoid Rewrite with non-transitive (step-indexed) Relations

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Setoid Rewrite with non-transitive (step-indexed) Relations


Chronological Thread 
  • From: Matthieu Sozeau <mattam AT mattam.org>
  • To: Fabian Kunze <fkunze AT fakusb.de>, coq-club <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] Setoid Rewrite with non-transitive (step-indexed) Relations
  • Date: Sun, 23 Oct 2016 08:49:37 +0000
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=mattam AT mattam.org; spf=Pass smtp.mailfrom=matthieu.sozeau AT gmail.com; spf=None smtp.helo=postmaster AT mail-wm0-f51.google.com
  • Ironport-phdr: 9a23:lOn1sxBOQkKzLy0/1/l8UyQJP3N1i/DPJgcQr6AfoPdwSP74oMbcNUDSrc9gkEXOFd2CrakV0ayI6Ou4BCRAuc/H6y9SNsQUFlcssoY/oU8JOIa9E0r1LfrnPWQRPf9pcxtbxUy9KlVfA83kZlff8TWY5D8WHQjjZ0IufrymUqabtcm81viz9pvPeE0IwWPlOfIhZCmx+CvYvMgfh8NBN6Ajx1OdrHhVffZb7W1hJk+IlVDw65H0tJVk6mFbv+8rv5pLVry/dKAlR5RZCi4nOiY7/pu4mwPESF6q72cAUmQbj1JzBBrI5QyyCpL4rjfzs8J40TWGNMiwSqo7D2fxp5x3QQPl3X9UfwUy93va34kp1PpW

Hi Fabian,

  I don't think there's any ready to use tactic for your example, but you might want to have a look at the https://github.com/CertiKOS/coqrel library for logical relations [1], which might help in this case. We're currently thinking about mixing this library with the generalized rewriting/setoid_rewrite tactic to allow for this kind of dependent/heterogeneous rewriting [2], but we're not there yet.

[1] A Coq Library for Binary Logical Relations - Jerémie Koenig, Yale University 
http://www.chargueraud.org/events/coqpl2016/CoqPL_2016_paper_7.pdf 
[2] https://github.com/mattam82/RewriteStrat

Best,
-- Matthieu

On Fri, Oct 21, 2016 at 11:27 AM Fabian Kunze <fkunze AT fakusb.de> wrote:
Hi,
My intention was to rewrite 'with reduce_trans', so i would hope to be left with t ~>(j) u and the side condition i+j=i+j (by instantiation of the k in reduce_trans, since by rewriting in the goal, we would force the goal to instantiate the conclusion of reduce_trans).

Best,
Fabian

John Wiegley <johnw AT newartisans.com> schrieb am Do., 20. Okt. 2016 um 19:32 Uhr:
>>>>> "FK" == Fabian Kunze <fkunze AT fakusb.de> writes:

FK> I can not register 'Transitive reduce' as 'reduce' is not transitive. I
FK> can also not register a proper "Proper"-Instance, as the argument 't' in
FK> 'reduce_trans' is in different positions of 'reduce'.

forall (R1 : s ~>(i) t), t ~>(j) u -> s ~>(i+j) u.

Wouldn't a rewrite using R1 here result in the goal: t ~>(i+i+j) u?

--
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2



Archive powered by MHonArc 2.6.18.

Top of Page