diff --git a/program_logic/auth.v b/program_logic/auth.v
index 3cb74b8085775e010663d62c0b884982bec3b65f..362e3e4fe1250753c6921acafd4c18a4b279e8a2 100644
--- a/program_logic/auth.v
+++ b/program_logic/auth.v
@@ -42,7 +42,7 @@ Section auth.
   Global Instance auth_own_ne n γ : Proper (dist n ==> dist n) (auth_own γ).
   Proof. rewrite auth_own_eq; solve_proper. Qed.
   Global Instance auth_own_proper γ : Proper ((≡) ==> (≡)) (auth_own γ).
-  Proof. by rewrite auth_own_eq /auth_own_def=> a b ->. Qed.
+  Proof. by rewrite auth_own_eq; solve_proper. Qed.
   Global Instance auth_own_timeless γ a : TimelessP (auth_own γ a).
   Proof. rewrite auth_own_eq. apply _. Qed.
 
diff --git a/program_logic/ghost_ownership.v b/program_logic/ghost_ownership.v
index 9e580abf91dad533f25df7e80246a07956c909b5..ad194c52926bb40048b1a9e1d32358fc38f76a9a 100644
--- a/program_logic/ghost_ownership.v
+++ b/program_logic/ghost_ownership.v
@@ -64,7 +64,7 @@ Qed.
 
 (** * Properties of own *)
 Global Instance own_ne γ n : Proper (dist n ==> dist n) (own γ).
-Proof. by intros m m' Hm; rewrite /own Hm. Qed.
+Proof. solve_proper. Qed.
 Global Instance own_proper γ : Proper ((≡) ==> (≡)) (own γ) := ne_proper _.
 
 Lemma own_op γ a1 a2 : own γ (a1 ⋅ a2) ≡ (own γ a1 ★ own γ a2)%I.
diff --git a/program_logic/hoare.v b/program_logic/hoare.v
index e9bf2d02f77f8591ef09b04f3413609a058e8ff3..95992a7766cd0ff04cfb2591db63f2618e16bd44 100644
--- a/program_logic/hoare.v
+++ b/program_logic/hoare.v
@@ -30,13 +30,13 @@ Global Instance ht_ne E n :
 Proof. solve_proper. Qed.
 Global Instance ht_proper E :
   Proper ((≡) ==> eq ==> pointwise_relation _ (≡) ==> (≡)) (@ht Λ Σ E).
-Proof. by intros P P' HP e ? <- Φ Φ' HΦ; rewrite /ht HP; setoid_rewrite HΦ. Qed.
+Proof. solve_proper. Qed.
 Lemma ht_mono E P P' Φ Φ' e :
   P ⊑ P' → (∀ v, Φ' v ⊑ Φ v) → {{ P' }} e @ E {{ Φ' }} ⊑ {{ P }} e @ E {{ Φ }}.
 Proof. by intros; apply always_mono, impl_mono, wp_mono. Qed.
 Global Instance ht_mono' E :
   Proper (flip (⊑) ==> eq ==> pointwise_relation _ (⊑) ==> (⊑)) (@ht Λ Σ E).
-Proof. by intros P P' HP e ? <- Φ Φ' HΦ; apply ht_mono. Qed.
+Proof. solve_proper. Qed.
 
 Lemma ht_alt E P Φ e : (P ⊑ || e @ E {{ Φ }}) → {{ P }} e @ E {{ Φ }}.
 Proof.
diff --git a/program_logic/ownership.v b/program_logic/ownership.v
index 4b2c543bbdbb5341de0a3fa5d6f89edab4031ada..4b657f72b973a417babeaff0b614697bd4f74f71 100644
--- a/program_logic/ownership.v
+++ b/program_logic/ownership.v
@@ -46,7 +46,7 @@ Proof. rewrite /ownP; apply _. Qed.
 
 (* ghost state *)
 Global Instance ownG_ne n : Proper (dist n ==> dist n) (@ownG Λ Σ).
-Proof. by intros m m' Hm; unfold ownG; rewrite Hm. Qed.
+Proof. solve_proper. Qed.
 Global Instance ownG_proper : Proper ((≡) ==> (≡)) (@ownG Λ Σ) := ne_proper _.
 Lemma ownG_op m1 m2 : ownG (m1 ⋅ m2) ≡ (ownG m1 ★ ownG m2)%I.
 Proof. by rewrite /ownG -uPred.ownM_op Res_op !left_id. Qed.
diff --git a/program_logic/viewshifts.v b/program_logic/viewshifts.v
index 014e0bdb9867877befeb3fc873a91a7a4a9254d1..a01eab178aefe63c28de69e32772e1d9f407a631 100644
--- a/program_logic/viewshifts.v
+++ b/program_logic/viewshifts.v
@@ -41,7 +41,7 @@ Proof. by intros HP HQ; rewrite /vs -HP HQ. Qed.
 
 Global Instance vs_mono' E1 E2 :
   Proper (flip (⊑) ==> (⊑) ==> (⊑)) (@vs Λ Σ E1 E2).
-Proof. by intros until 2; apply vs_mono. Qed.
+Proof. solve_proper. Qed.
 
 Lemma vs_false_elim E1 E2 P : False ={E1,E2}=> P.
 Proof. apply vs_alt, False_elim. Qed.