Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Proof irrelevance for equalities - is there a trick without axioms?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Proof irrelevance for equalities - is there a trick without axioms?


Chronological Thread 
  • From: Jonathan Leivent <jonikelee AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Proof irrelevance for equalities - is there a trick without axioms?
  • Date: Wed, 17 Aug 2016 15:01:58 -0400
  • Authentication-results: mail3-smtp-sop.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-qk0-f179.google.com
  • Ironport-phdr: 9a23:dRiJdBTqF4LQ94lkgETUJCMdkdpsv+yvbD5Q0YIujvd0So/mwa64YR2N2/xhgRfzUJnB7Loc0qyN4vmmAzVLuMzY+DBaKdoXBkdD0Z1X1yUbQ+e9QXXhK/DrayFoVO9jb3RCu0+BDE5OBczlbEfTqHDhpRQbGxH4KBYnbr+tQt2asc272qiI9oHJZE0Q3XzmMOo0dkz99F+I/olO2M05e/53kkOI6lJzOM1ujVtyIlySmxuuruyRx7VEtxpqhvQ66sRbWr/7dalrBZZRDTAhLnxnrJaz7UqLHkOz4S4XVXxTmR5VCSDE6gv7V9H/qHjUrO14jQudO8TqTbkyERCv7rlmTgOg3CUAMT86/WXah+R/iatapFSqoBkpkN2cW52cKPcrJvCVRtgdX2cUBss=



On 08/17/2016 02:48 PM, ikdc wrote:
On 08/17/2016 02:08 PM, Jonathan Leivent wrote:


...

Goal forall (b:bool)(H:b=b), H=eq_refl.
intros.
refine (match H with eq_refl => _ end).

The refine doesn't help here. Why not? (Yes I know the proof exists in
Eqdep_dec, but that is besides the point). I've experimenting with UIP
recently, and find it actually quite surprising that the refine works in
Michael's goal, considering how it fails to do so in so many other
similar cases.

...

Your goal isn't analogous:

Goal forall H : true = true, H = eq_refl.
intro H.
refine (match H with eq_refl => _ end).
reflexivity.
Qed.


So it matters that the equality is between constructors instead of variables? OK - thanks - but that still seems strange. Although I have found other cases recently of similar strange behavior in how Coq infers return clauses - those related to injection proofs, which are very similar.

It would be nice to have a tactic that does "refine (match H with ctor1 _ => _ | ctor2 _ => _ ... end)" for H with arbitrary inductive type - as it is extremely difficult (maybe impossible?) for Ltac to build match expressions for arbitrary inductive types on its own.

-- Jonathan




Archive powered by MHonArc 2.6.18.

Top of Page