Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] From equality of foralls to equality of their bodies

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] From equality of foralls to equality of their bodies


Chronological Thread 
  • From: Jason Gross <jasongross9 AT gmail.com>
  • To: Edwin Westbrook <westbrook AT kestrel.edu>
  • Cc: coq-club <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] From equality of foralls to equality of their bodies
  • Date: Fri, 13 Dec 2013 22:58:40 -0500

It is false, if you assume univalence.  Consider A = bool, and B x = if x then True else False, and B' x = if x then False else True.  Univalence gives  (forall (x:A), B x) = (forall (x:A), B' x) (because they are isomorphic types; both are isomorphic to the empty set), but it is clear that we shouldn't have forall x, B x = B' x (and thus can't have (fun x => B x) = (fun x => B' x)), because True != False.  Therefore, it's unprovable in vanilla Coq, and provably false in Coq + Univalence.

I'm not sure what it's status is if you have some particular axiom that contradicts univalence.  (As an extreme example, you could probably take it to be true as an axiom.  I don't think this is inconsistent, but it might be.)

-Jason


On Fri, Dec 13, 2013 at 9:20 PM, Edwin Westbrook <westbrook AT kestrel.edu> wrote:
Hi,

Does anyone know if the following lemma is provable in Coq? I am perfectly happy to use functional extensionality, or even stronger axioms, as I am already using informative excluded middle:

Lemma pi_eq_to_app_eq A B B' :
  (forall (x:A), B x) = (forall (x:A), B' x) ->
  (fun x => B x) = (fun x => B' x).

Thanks in advance!
-Eddy




Archive powered by MHonArc 2.6.18.

Top of Page