coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Robbert Krebbers <mailinglists AT robbertkrebbers.nl>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] fun <-> forall
- Date: Thu, 26 Oct 2017 13:18:25 +0200
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=mailinglists AT robbertkrebbers.nl; spf=None smtp.mailfrom=mailinglists AT robbertkrebbers.nl; spf=None smtp.helo=postmaster AT smtp2.science.ru.nl
- Ironport-phdr: 9a23:nHg0KhAE81epZXzLpTJnUyQJP3N1i/DPJgcQr6AfoPdwSP38psbcNUDSrc9gkEXOFd2Crakb26yL6+jJYi8p39WoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6i760TlHERLmcAFxO+7dG4jIjs3x2frh1YfUZlBygzC3bKluZDasoA/bu9MNyd9nI6c1yx3GpnpTZ/9+32RiL1+JgxXm68268YR4tSJU7aFyv/VcWLn3KvxrBYdTCy4rZjg4
Unless I am mistaken, what Burak wants goes in the opposite way, so function extensionality is not needed.
A simplified example of what I think he asks for:
Goal forall (A B : Type) (f g : A -> B),
(fun x => f x) = (fun x => g x) ->
forall x, f x = g x.
Proof.
intros A B f g Hfg x.
change ((fun x => f x) x = (fun x => g x) x).
rewrite Hfg.
reflexivity.
Qed.
On 10/26/2017 01:13 PM, Ralf Jung wrote:
Hi Burak,
what you are looking for is function extensionality:
f = g <-> forall x, f x = g x
Function extensionality cannot be proven in Coq, but you can assume it
as an axiom. (It is compatible with the theory.)
So, the answer to "Is there a way" is "Yes, if you are willing to assume
an axiom". You can find it in the standard library at
<https://coq.inria.fr/stdlib/Coq.Logic.FunctionalExtensionality.html>.
Kind regards,
Ralf
On 26.10.2017 13:09, Burak Ekici wrote:
Hi all,
I have an hypothesis of the following form "H : (fun a b f => XX a b f)
= (fun a b f => YY a b f)".
Is there a way to turn it into "H: forall a b f, XX a b f = YY a b f"?
Thanks!
Best,
―
Burak.
- [Coq-Club] fun <-> forall, Burak Ekici, 10/26/2017
- Re: [Coq-Club] fun <-> forall, Ralf Jung, 10/26/2017
- Re: [Coq-Club] fun <-> forall, Robbert Krebbers, 10/26/2017
- Re: [Coq-Club] fun <-> forall, Ralf Jung, 10/26/2017
- Re: [Coq-Club] fun <-> forall, Burak Ekici, 10/26/2017
- Re: [Coq-Club] fun <-> forall, Clément Pit-Claudel, 10/26/2017
- Re: [Coq-Club] fun <-> forall, Burak Ekici, 10/26/2017
- Re: [Coq-Club] fun <-> forall, Clément Pit-Claudel, 10/26/2017
- Message not available
- Re: [Coq-Club] fun <-> forall, Samuel Gruetter, 10/28/2017
- [Coq-Club] Macro for Ltac, Dominique Larchey-Wendling, 10/30/2017
- Re: [Coq-Club] Macro for Ltac, Pierre Courtieu, 10/30/2017
- Re: [Coq-Club] Macro for Ltac, Dominique Larchey-Wendling, 10/30/2017
- Re: [Coq-Club] fun <-> forall, Burak Ekici, 10/26/2017
- Re: [Coq-Club] fun <-> forall, Clément Pit-Claudel, 10/30/2017
- Re: [Coq-Club] fun <-> forall, Clément Pit-Claudel, 10/26/2017
- Re: [Coq-Club] fun <-> forall, Burak Ekici, 10/26/2017
- Re: [Coq-Club] fun <-> forall, Ralf Jung, 10/26/2017
- Re: [Coq-Club] fun <-> forall, Robbert Krebbers, 10/26/2017
- Re: [Coq-Club] fun <-> forall, Ralf Jung, 10/26/2017
Archive powered by MHonArc 2.6.18.