diff --git a/algebra/upred.v b/algebra/upred.v
index 4a0c0817b381fee76f7bc937926d6595343f7e1c..32bfd8318f838f84e16633650a7b9858bbfcb311 100644
--- a/algebra/upred.v
+++ b/algebra/upred.v
@@ -319,12 +319,13 @@ Proof. intros P1 P2 HP n' x; split; apply HP; eauto using cmra_unit_validN. Qed.
 Global Instance always_proper :
   Proper ((≡) ==> (≡)) (@uPred_always M) := ne_proper _.
 Global Instance ownM_ne n : Proper (dist n ==> dist n) (@uPred_ownM M).
-Proof.
-  by intros a1 a2 Ha n' x; split; intros [a' ?]; exists a'; simpl; first
-    [rewrite -(dist_le _ _ _ _ Ha); last lia
-    |rewrite (dist_le _ _ _ _ Ha); last lia].
-Qed.
-Global Instance ownM_proper : Proper ((≡) ==> (≡)) (@uPred_ownM M) := ne_proper _.
+Proof. move=> a b Ha n' x ? /=. by rewrite (dist_le _ _ _ _ Ha); last lia. Qed.
+Global Instance ownM_proper: Proper ((≡) ==> (≡)) (@uPred_ownM M) := ne_proper _.
+Global Instance valid_ne {A : cmraT} n :
+  Proper (dist n ==> dist n) (@uPred_valid M A).
+Proof. move=> a b Ha n' x ? /=. by rewrite (dist_le _ _ _ _ Ha); last lia. Qed.
+Global Instance valid_proper {A : cmraT} :
+  Proper ((≡) ==> (≡)) (@uPred_valid M A) := ne_proper _.
 Global Instance iff_ne n : Proper (dist n ==> dist n ==> dist n) (@uPred_iff M).
 Proof. unfold uPred_iff; solve_proper. Qed.
 Global Instance iff_proper :