diff --git a/program_logic/sts.v b/program_logic/sts.v
index 893606f761940d18cfa8b21f4d67a8e844b75325..d732966cad707f9eb2dd68242c5861940628cbcd 100644
--- a/program_logic/sts.v
+++ b/program_logic/sts.v
@@ -93,7 +93,20 @@ Section sts.
     (▷ φ s' ★ own StsI γ (sts_auth sts.(st) sts.(tok) s T))
     ⊑ pvs E E (▷ inv StsI sts γ φ ★ own StsI γ (sts_frag sts.(st) sts.(tok) S' T')).
   Proof.
-  Abort.
+    intros Hstep Hin Hcl. rewrite /inv -(exist_intro s').
+    rewrite later_sep [(_ ★ ▷φ _)%I]comm -assoc.
+    rewrite -pvs_frame_l. apply sep_mono; first done.
+    rewrite -later_intro.
+    transitivity (pvs E E (own StsI γ (sts_auth sts.(st) sts.(tok) s' T'))).
+    { by apply own_update, sts_update. }
+    apply pvs_mono. rewrite -own_op. apply equiv_spec, own_proper.
+    split; first split; simpl.
+    - intros _. by eapply closed_disjoint.
+    - intros ?. split_ands; first by solve_elem_of-.
+      + done.
+      + constructor; [done | solve_elem_of-].
+    - intros _. constructor. solve_elem_of-.
+  Qed.
 
 End sts.