Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] proof uninformativeness vs. proof irrelevance

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] proof uninformativeness vs. proof irrelevance


Chronological Thread 
  • From: darktenaibre <darktenaibre AT isomorphis.me>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] proof uninformativeness vs. proof irrelevance
  • Date: Sun, 24 Apr 2016 03:09:34 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=darktenaibre AT isomorphis.me; spf=Pass smtp.mailfrom=darktenaibre AT isomorphis.me; spf=None smtp.helo=postmaster AT macaron.isomorphis.me
  • Ironport-phdr: 9a23:MfyNzhTiciqNvYNvUqAOAc4aLNpsv+yvbD5Q0YIujvd0So/mwa64YBCN2/xhgRfzUJnB7Loc0qyN4/CmBjZLu87f+Fk5M7VyFDY9wf0MmAIhBMPXQWbaF9XNKxIAIcJZSVV+9Gu6O0UGUOz3ZlnVv2HgpWVKQka3CwN5K6zPF5LIiIzvjqbpq82VPF8D3mLjKZpJbzyI7izp/vEMhoVjLqtjgjDomVBvP9ps+GVzOFiIlAz97MrjtLRq8iBXpu5zv5UYCfayLOwESulTCy1jOGQo7uXqswPCRE2B/CgySGITxxZBGQvZ4RfzX53rv2OuuuNn2zWXO8T3R6o5cTW56KJsUgfoiTxBMjNvozKfsdB5kK8O+EHpnBd42YOBOIw=

On 04/24/2016 03:00 AM, Jonathan Leivent wrote:


On 04/23/2016 08:41 PM, darktenaibre wrote:
Ah, that notprop predicate prevents this stupid observation though. You can certainly write something like (fun T => forall P : Prop, ~ (@eq Type P T)) which will easily block the previous proof, but it's probably unusable this way. I do not have any idea for a clever solution to this problem though.
On 04/24/2016 02:32 AM, darktenaibre wrote:
On 04/24/2016 02:21 AM, Jonathan Leivent wrote:

Definition proof_uninformativeness := forall (P : Prop)(S : Set)(f : P -> S)(p1 p2 : P), f p1 = f p2.
Hi,
If you take f:=id, isn't it just proof irrelevance ?


Lemma proof_uninformativeness_irrelevance : proof_uninformativeness -> forall (P : Prop) (p q : P), p = q.
intros pu P; apply pu.
Qed.

Oops - my (embarrassing) mistake having Prop not be a subtype of Set. :-[

So, there would need to be some usable notprop predicate.
Hmm... maybe types having at least 2 distinguished instances are sufficient? :

Definition distinguished(T : Type) := exists (a b : T), a <> b.

Definition proof_uninformativeness := forall (P : Prop)(T : Type)(f : P -> T)(p1 p2 : P), distinguished T -> f p1 = f p2.

Is this a suitable replacement for all interesting use cases of proof irrelevance?

-- Jonathan


I do not think so, taking T := P * bool and f := fun x => x , true.

Now that I thought more about it, even my (weaker I think) proposition is bogus in this respect. I conjecture you could take T := P * Type and then try to use the equality P * Type = Q for some (Q : Prop) and exhibit some sort of (Type : Type) paradox to prove false, thus also proving proof_irrelevance from that. But no certainties so far.



Archive powered by MHonArc 2.6.18.

Top of Page