diff --git a/FEM/Algebra/Finite_family.v b/FEM/Algebra/Finite_family.v
index d27d436a3a89a9371b299c6ab583fbb3c9cb30c3..dd9ae437c42d361cda7ce5ee7eb062dfd5447d28 100644
--- a/FEM/Algebra/Finite_family.v
+++ b/FEM/Algebra/Finite_family.v
@@ -1493,7 +1493,7 @@ Definition incrF {n1 n2} (f : 'I_{n1,n2}) : Prop :=
 Lemma injF_restr_bij_EX :
   forall {n1 n2} {f : 'I_{n1,n2}} (Hf : injective f),
     { p : 'I_[n1] | bijective p /\
-      exists (q : 'I_{n1,n2}), incrF q /\ f = q \o p }. (* q := f \o f_inv Hp *)
+      exists (g : 'I_{n1,n2}), incrF g /\ f = g \o p }. (* g := f \o f_inv Hp *)
 Proof.
 (* Hint: pas besoin d'induction!
   p^-1 est la permutation permettant de trier f 'I_n1 et q = f o p^-1. *)
@@ -1506,7 +1506,7 @@ destruct n2 as [|n2]; [exists id | exists (fun=> ord0)];
 (* *)
 pose (f' := fun i1 => f (widen_S i1)).
 assert (Hf' : injective f') by now move=> i1 j1 /Hf /widen_ord_inj.
-destruct (Hn1 _ Hf') as [p' [Hp' [q' [Hq' H']]]]; clear Hn1.
+destruct (Hn1 _ Hf') as [p' [Hp' [g' [Hg' H']]]]; clear Hn1.
 pose (p'1 := f_inv Hp').
 (*
 pose (nn1 := widen_ord (inj_ord_leq Hf) ord_max).
@@ -4622,29 +4622,26 @@ Lemma filterPF_unfunF :
       (Hf : injective f) (HP : extendPF f P1 P2)
       (A1 : 'F^n1) x0 i0,
     P1 i0 ->
-    let Hg1 := proj1 (proj2_sig (injF_restr_bij_EX Hf)) in
-    let g := f_inv Hg1 in
-    let Hg := f_inv_inj Hg1 in
+    let Hp1 := proj1 (proj2_sig (injF_restr_bij_EX Hf)) in
+    let p := f_inv Hp1 in
+    let Hp := f_inv_inj Hp1 in
     filterPF P2 (unfunF f A1 x0) =
-      castF (lenPF_extendPF Hf HP) (castF (lenPF_permutF Hg)
-        (filterPF (permutF g P1) (permutF g A1))).
-Proof.
-intros F n1 n2 f P1 P2 Hf HP A1 x0 i0 HP1 Hg1 g Hg.
-pose (p := proj1_sig (injF_restr_bij_EX Hf)); pose (i1 := p i0).
-assert (HP1' : permutF g P1 i1)
-    by now unfold permutF, i1, g; rewrite f_inv_correct_l.
-rewrite (filterPF_permutF Hg HP1').
-(*
-apply sym_eq; rewrite castF_sym_equiv -(filterPF_funF Hf HP) funF_unfunF//.
-apply extF; intros j1; unfold castF, funF.
-f_equal; unfold filterP_f_ord; rewrite f_inv_invol.
-*)
+      castF (lenPF_extendPF Hf HP) (castF (lenPF_permutF Hp)
+        (filterPF (permutF p P1) (permutF p A1))).
+Proof.
+intros F n1 n2 f P1 P2 Hf HP A1 x0 i0 HP1 Hp1 p Hp.
+pose (p1 := proj1_sig (injF_restr_bij_EX Hf)); pose (i1 := p1 i0).
+assert (HP1' : permutF p P1 i1)
+    by now unfold permutF, i1, p; rewrite f_inv_correct_l.
+rewrite (filterPF_permutF Hp HP1') -{2}(funF_unfunF x0 Hf A1).
+assert (HP2 : P2 (f i0))
+    by now rewrite (extendPF_unfunF_rev Hf HP) (unfunF_correct_l _ i0 _ Hf).
+rewrite (filterPF_funF HP2 Hf HP).
+apply extF; intros j2; unfold castF, funF, filterP_f_ord_n, filterP_f_ord_p.
+f_equal; rewrite f_inv_invol.
+
+
 
-(*
-apply filterP_ord_inj.
-rewrite filterP_unfilterP_ord_in.
-rewrite filterP_unfilterP_ord_in_equiv out.
-*)