diff --git a/iris/cofe.v b/iris/cofe.v
index 7e667277c725073a71e49a49f5d62b8a5af35d8c..f0cd655a8d4be000e6f00b1270737259b9500937 100644
--- a/iris/cofe.v
+++ b/iris/cofe.v
@@ -8,6 +8,12 @@ Notation "x ={ n }= y" := (dist n x y)
   (at level 70, n at next level, format "x  ={ n }=  y").
 Hint Extern 0 (?x ={_}= ?x) => reflexivity.
 Hint Extern 0 (_ ={_}= _) => symmetry; assumption.
+Ltac cofe_subst :=
+  repeat match goal with
+  | _ => progress simplify_equality'
+  | H: @dist _ ?d ?n ?x _ |- _ => setoid_subst_aux (@dist _ d n) x
+  | H: @dist _ ?d ?n _ ?x |- _ => symmetry in H;setoid_subst_aux (@dist _ d n) x
+  end.
 
 Record chain (A : Type) `{Dist A} := {
   chain_car :> nat → A;