Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Eliminating equalities over dependent function types

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Eliminating equalities over dependent function types


Chronological Thread 
  • From: Fabian Kunze <fabian.kunze AT cs.uni-saarland.de>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Eliminating equalities over dependent function types
  • Date: Wed, 3 Nov 2021 17:46:19 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=fabian.kunze AT cs.uni-saarland.de; spf=Pass smtp.mailfrom=fabian.kunze AT cs.uni-saarland.de; spf=None smtp.helo=postmaster AT triton.rz.uni-saarland.de
  • Ironport-hdrordr: A9a23:1ja6Gqg5bjri+SOjPoelO1xaBXBQXlAji2hC6mlwRA09TyX4rbHNoB1/73XJYVkqNE3I9ervBEDiewK+yXcW2+Qs1N6ZNWGMhILPFuBfBODZrAEIdRefysdQzrxnaLI7FduYNykBsS65jTPIaOoIxdmc7eS1gv3DxG1mVgFgZ8hbnn9EIwOaCFAzWA5dGZEiHoGd7cYCvjy7ZB0sH72GL2IIQvTZoJnXkvvdEHg7Lg9i4hOHyTmv7Kf+Gxieww12aUIp/Z4ytXLOlEj87qWn9/G3oyWss1P7/tBNktyk09NfBaW3+60oFgk=
  • Ironport-phdr: A9a23:/HiT4hzWxeTJd1LXCzJ9ylBlVkEcU1XcAAcZ59Idhq5Udez7ptK+ZhSZtKwm0QCBdL6YwsoMs/DRvaHkVD5Iyre6m1dGTqZxUQQYg94dhQ0qDZ3NI0T6KPn3c35yR5waBxdq8H6hLEdaBtv1aUHMrX2u9z4SHQj0ORZoKujvFYPekdi72/q29pHObAlFhDiwaq5uIRurqgncqtMYipZ4JKYrzRvJrHpIe+BIym5tOFmegRXy6Nqu8ZB66yhftO4v+MBGUaXhYqQ3VqdYAyg8M2A0/8Lkqx/ORhaS63QGU2UWlh1IAxXZ7Bz/Q5z8vDf2uvZ71SKHO8D9ULI6Vim476pzSxHmhigIODAk/m/JhMx+jKBUrw6uqRFk347ZY5uYOOZicq7Tf94XQ3dKUMZLVyxGB4Oxd4sBAPAaMuZZtYb9oUYFox6jBQmqBeLg1CJDi3j43aIgyOshEBvJ3Ao6E9INrXTUqtT0O7kJXO+p16nE1yjDb/VX2Tvk84jHaAouoeuIXb1qd8re1FMjGB7bgViJr4HuIjya2PgXvWeB8+pgSfygi3QhqwxpvjSi2Mghh5TGiI8WxV7I6Sp3zYI7KNO3VUJ2b9+pHIdQuiyYM4Z7QMcvTm9mtiskybAIt5G2cSoExZop2xLSa/qKeJWL7BL7TOudPDl1iX1/dL+7hhu+60qtxvfiWsS0yFpGsyRIn9bWun0J1hHf8NWLR/h880u7xzqC1wbe4fxeL08uj6rUMZshz6YwlpUNtUTDGTf7mFnsjK+XakUk/e6o5/79YrTnvJOcKol0igDnPqQ1gMOwG/44MgwUUGid5OuwzqDs8lPhTLVLiP05jLXZvYjHKckVqaO1GQtY34c55xu9FTuqztQVkWECLF1feRKHi4bpO0vJIPD9Ffq/jU6jnyxqx//cOL3tGJbNLmXFkLbgY7lw8FJTyBEpwdBC4ZJUC6gNIOnpVUDrrtzYCgU2MwqpzOr9FdpyyJsSWXiTDa+BLKPSrViI6/ozLOmLfY8ZoSryK/w45/H1lnI5gl8cfayx3ZQNcny4H/JmI1+YYXX2mNsBH30K7UICS7nhj0THWjpObV6zWbg973c1EtGIF4DGE66kir2I2m+YA5tEaygSBFmGEH7uMYaZXeUBQCmJZNJnk3kfXLG7T4Yn2VeiuVmpmPJcMuPI93hA5trY399v6riL/fnT3SBuDtia1SeXXSdpmGJNXDY/xqR2p0A7xlrRicCQbNRTDppO4fIMSQ4zL5rVyeA8B92gA2opm/+CUxC7RNTjGjg4VNY4xdNIb0svQ72f

Dear Grant Jurgensen,

I'm sceptical the theorem holds. At least if one looks at Prop instead of Type, and looks at it through the eyes of classical logic, the theorem looks like
forall (P Q : X -> Prop),
((forall x, P x) <-> (forall x, Q x))
-> forall x, P x <-> Q x

Which does not hold: For example take P and Q that hold for different x and are false for at least one x.

Best,
Fabian


On 03/11/2021 16:38, Grant Jurgensen wrote:
Hi all,

I was wondering if the following property is provable (or disprovable) in Coq:

Theorem forall_eq_elim: forall (A: Type) (B C: A -> Type),
  (forall a, B a) = (forall a, C a) ->
  (forall a, B a = C a).

This is the converse of `forall_extensionality`, found in the standard module `Coq.Logic.FunctionalExtensionality`. Assuming functional extensionality, this `forall_eq_elim` property essentially states the injectivity of the forall binder.

The property appears very intuitive to me, but I don't see any proof path, even assuming functional extensionality. I'm guessing it would be sound to axiomatize it, but it also seems specific enough that there should be a more palatable/generalized alternative to axiomatize.

For what its worth, the reason I first considered this property above is because it appeared necessary in order to prove the following fact concerning heterogeneous equalities:

Theorem JMeq_f :
  forall A (B: A -> Type) (C: A -> Type) (f: forall a, B a) (g: forall a, C a),
    JMeq f g ->
    forall x, JMeq (f x) (g x).

Thanks,
Grant Jurgensen



Archive powered by MHonArc 2.6.19+.

Top of Page