diff --git a/FEM/Algebra/AffineSpace.v b/FEM/Algebra/AffineSpace.v
index 485d6db6d5dee9ad7b6331f67aae7ac12564ee67..c715d6f25eee1615d9f2acd78b382600ea994024 100644
--- a/FEM/Algebra/AffineSpace.v
+++ b/FEM/Algebra/AffineSpace.v
@@ -122,7 +122,7 @@ Lemma vect_l_bij_ex : forall (A : E) u, exists! B, A --> B = u.
 Proof. apply AffineSpace.ax2. Qed.
 
 Lemma vect_l_bij : forall (A : E), bijective (vect A).
-Proof. intros; apply bij_ex_uniq_equiv, vect_l_bij_ex. Qed.
+Proof. intros; apply bij_ex_uniq_rev, vect_l_bij_ex. Qed.
 
 Lemma vect_zero : forall (A : E), A --> A = 0.
 Proof.
@@ -152,7 +152,7 @@ move=> A' /opp_eq; rewrite -vect_sym; apply HA2.
 Qed.
 
 Lemma vect_r_bij : forall (B : E), bijective (vect^~ B).
-Proof. intros; apply bij_ex_uniq_equiv, vect_r_bij_ex. Qed.
+Proof. intros; apply bij_ex_uniq_rev, vect_r_bij_ex. Qed.
 
 Lemma vect_l_eq : forall (A B1 B2 : E), B1 = B2 -> A --> B1 = A --> B2.
 Proof. intros; subst; easy. Qed.
@@ -298,7 +298,7 @@ intros A; apply (bij_can_bij (vect_l_bij A)); apply transl_correct_l.
 Qed.
 
 Lemma transl_l_bij_ex : forall (A B : E), exists! u, A +++ u = B.
-Proof. intros A; rewrite -bij_ex_uniq_equiv; apply transl_l_bij. Qed.
+Proof. intros; apply bij_ex_uniq, transl_l_bij. Qed.
 
 Lemma transl_r_bij_ex : forall u (B : E), exists! A, A +++ u = B.
 Proof.
@@ -308,7 +308,7 @@ intros A; rewrite transl_opp_equiv; easy.
 Qed.
 
 Lemma transl_r_bij : forall u, bijective (transl^~ u : E -> E).
-Proof. intros; apply bij_ex_uniq_equiv, transl_r_bij_ex. Qed.
+Proof. intros; apply bij_ex_uniq_rev, transl_r_bij_ex. Qed.
 
 Lemma vect_transl : forall (O : E) u v, (O +++ u) --> (O +++ v) = v - u.
 Proof.
@@ -660,7 +660,7 @@ apply (vect_l_inj O); rewrite mapF_correct -vectF_correct HB; easy.
 Qed.
 
 Lemma vectF_l_bij : forall {n} (O : E), bijective (@vectF _ _ _ n O).
-Proof. intros; apply bij_ex_uniq_equiv, vectF_l_bij_ex. Qed.
+Proof. intros; apply bij_ex_uniq_rev, vectF_l_bij_ex. Qed.
 
 Lemma vectF_zero : forall {n} (O : E), vectF O (constF n O) = 0.
 Proof. intros; apply extF; intro; apply vect_zero. Qed.
@@ -878,7 +878,7 @@ intros n O; apply (bij_can_bij (vectF_l_bij O)); apply translF_vectF.
 Qed.
 
 Lemma translF_l_bij_ex : forall {n} O (A : 'E^n), exists! u, translF O u = A.
-Proof. intros n O; rewrite -bij_ex_uniq_equiv; apply translF_l_bij. Qed.
+Proof. intros; apply bij_ex_uniq, translF_l_bij. Qed.
 
 Lemma translF_inj_equiv :
   forall {n} (O : E) (u : 'V^n), injective (translF O u) <-> injective u.
diff --git a/FEM/Compl/Function_compl.v b/FEM/Compl/Function_compl.v
index 370de40939c289dc6f6e0bfc04163373c8821206..5c38dae936d8d57136f51afc6a78688f8aadce95 100644
--- a/FEM/Compl/Function_compl.v
+++ b/FEM/Compl/Function_compl.v
@@ -480,19 +480,23 @@ intros [Hf1 Hf2]; destruct (choice _ Hf2) as [g Hg];
     apply: (Bijective _ Hg); intro; auto.
 Qed.
 
-Lemma bij_ex_uniq_equiv : bijective f <-> forall x2, exists! x1, f x1 = x2.
+Lemma bij_ex_uniq : bijective f -> forall x2, exists! x1, f x1 = x2.
+Proof.
+rewrite bij_equiv; intros [Hf1 Hf2] x2; destruct (Hf2 x2) as [x1 Hx1];
+    exists x1; split; [| intros y1 Hy1; apply Hf1; rewrite Hy1]; easy.
+Qed.
+
+Lemma bij_ex_uniq_rev : (forall x2, exists! x1, f x1 = x2) -> bijective f.
 Proof.
-rewrite bij_equiv; split.
-(* *)
-intros [Hf1 Hf2] x2; destruct (Hf2 x2) as [x1 Hx1]; exists x1; split; [easy |].
-intros y1 Hy1; apply Hf1; rewrite Hy1; easy.
-(* *)
-intros Hf; split;
+rewrite bij_equiv; intros Hf; split;
     [| intros x2; destruct (Hf x2) as [x1 [Hx1 _]]; exists x1; easy].
 intros x1 y1 H1; destruct (Hf (f x1)) as [x2 [Hx2a Hx2b]].
 rewrite -(Hx2b x1); [apply Hx2b, eq_sym |]; easy.
 Qed.
 
+Lemma bij_ex_uniq_equiv : bijective f <-> forall x2, exists! x1, f x1 = x2.
+Proof. split; [apply bij_ex_uniq | apply bij_ex_uniq_rev]. Qed.
+
 Lemma bij_ext :
   forall {g : T1 -> T2}, same_fun f g -> bijective f -> bijective g.
 Proof. move=>> H Hf; apply (eq_bij Hf H). Qed.