Skip to Content.
Sympa Menu

coq-club - [Coq-Club] equality between dependent pairs

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] equality between dependent pairs


Chronological Thread 
  • From: Dimitri Hendriks <diem AT xs4all.nl>
  • To: coq-club AT inria.fr
  • Subject: [Coq-Club] equality between dependent pairs
  • Date: Tue, 8 Oct 2013 12:07:04 +0200

Hi all, 

I have functions valq : list two -> Q and locq : Q -> list two, where two is a two-element set, and Q is the sigma type

Q := { x : nat*nat | let (a,b) := x in a > 0 /\ b > 0 /\ gcd a b = 1 }.

I have that valq is injective. Now for surjectivity I want to show that locq is a right-inverse of valq, i.e., forall r:Q, valq (locq r) = r. So I have to deal with equality between dependent pairs ... Do I need proof irrelevance, or can I somehow use that > and = are decidable on nat (as suggested by the answers to faq 38 and 138)? Any alternatives?

Further info: valq and locq are based on val : list two -> nat*nat, loc : nat*nat -> list two, and it holds that  forall a b, a > 0 -> b > 0 -> gcd a b = 1 -> val (loc (a,b)) = (a,b) .

Thanks for your suggestions, 
Dimitri




Archive powered by MHonArc 2.6.18.

Top of Page