Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] help with automating derived UIP_refl proofs

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] help with automating derived UIP_refl proofs


Chronological Thread 
  • From: Jonathan Leivent <jonikelee AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] help with automating derived UIP_refl proofs
  • Date: Thu, 1 Sep 2016 00:07:01 -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-qt0-f179.google.com
  • Ironport-phdr: 9a23:RQY59h006WoB4EdosmDT+DRfVm0co7zxezQtwd8ZsesRLvad9pjvdHbS+e9qxAeQG96KsrQZ06GG4+igATVGusnR9ihaMdRlbFwst4Y/p0QYGsmLCEn2frbBThcRO4B8bmJj5GyxKkNPGczzNBX4q3y26iMOSF2kbVImbre9JomHhMOukuu25pf7YgNShTP7b6khAg+xqFDzsc8fnYtrLO4VxxrXr31UM7BUwmVpJl+XkhvU6cK5/Zol+CNV7aFyv/VcWLn3KvxrBYdTCy4rZjg4



On 08/31/2016 11:41 PM, Jonathan Leivent wrote:

On 08/31/2016 11:18 PM, Jason Gross wrote:
Actually, I think it's possible to do better; you should only need
AtoB_BtoA specialized to the point you care about. This should be a
relatively simple transformation to make, and, I think, should be powerful
enough to let you handle recursive types

I think you are right that AtoB_BtoA only needs to be at a point. But, if AtoB is always a ctor and BtoA is always a proj, then I'm not sure that this specialization helps much, if at all.

-- Jonathan


Oops - it is needed. I just tried using UIP_iso_pointed to prove UIP on nat, and got:

|- forall b : nat, S (pred b) = b

which is obviously not true at b=0. OK - how to make it only need AtoB_BtoA at a point? Obviously, f_equal_cancel needs to be reworked, but the obvious way "(e : x=x)" doesn't work. It always seems peculiar to me that in some circumstances in Coq, one can do more to x=y than to x=x - as in this case.

-- Jonathan




Archive powered by MHonArc 2.6.18.

Top of Page