From 6db1563119f3ee172475a87680db66f855347156 Mon Sep 17 00:00:00 2001
From: Jacques-Henri Jourdan <jacques-henri.jourdan@normalesup.org>
Date: Wed, 1 Jun 2016 18:59:41 +0200
Subject: [PATCH] Simplify frac : use a pair of a rational and a carrier

---
 theories/base.v | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/theories/base.v b/theories/base.v
index bfcb09ae..6872ec7f 100644
--- a/theories/base.v
+++ b/theories/base.v
@@ -466,6 +466,11 @@ Instance fst_proper `{Equiv A, Equiv B} : Proper ((≡) ==> (≡)) (@fst A B) :=
 Instance snd_proper `{Equiv A, Equiv B} : Proper ((≡) ==> (≡)) (@snd A B) := _.
 Typeclasses Opaque prod_equiv.
 
+Instance prod_leibniz `{LeibnizEquiv A, !Equivalence ((≡) : relation A),
+                        LeibnizEquiv B, !Equivalence ((≡) : relation B)}
+  : LeibnizEquiv (A * B).
+Proof. intros [] [] []; fold_leibniz; simpl; congruence. Qed.
+
 (** ** Sums *)
 Definition sum_map {A A' B B'} (f: A → A') (g: B → B') (xy : A + B) : A' + B' :=
   match xy with inl x => inl (f x) | inr y => inr (g y) end.
-- 
GitLab