diff --git a/theories/program_logic/adequacy.v b/theories/program_logic/adequacy.v
index b7e9d42c7d69b27319d7d97b63457104fdb3cb38..9d5a3bceefbd710bf46caf7bf5ad8d8cc7a74e02 100644
--- a/theories/program_logic/adequacy.v
+++ b/theories/program_logic/adequacy.v
@@ -1,3 +1,4 @@
+From stdpp Require Import namespaces.
 From iris.program_logic Require Export weakestpre.
 From iris.algebra Require Import gmap auth agree gset coPset.
 From iris.base_logic.lib Require Import wsat.
@@ -203,3 +204,20 @@ Proof.
   iDestruct "Hwp" as (Istate) "(HIstate & Hwp & Hclose)".
   iApply (@wptp_invariance _ _ (IrisG _ _ Hinv Istate)); eauto with iFrame.
 Qed.
+
+(* An equivalent version that does not require finding [fupd_intro_mask'], but
+can be confusing to use. *)
+Corollary wp_invariance' Σ Λ `{invPreG Σ} s e σ1 t2 σ2 φ :
+  (∀ `{Hinv : invG Σ},
+     (|={⊤}=> ∃ stateI : state Λ → iProp Σ,
+       let _ : irisG Λ Σ := IrisG _ _ Hinv stateI in
+       stateI σ1 ∗ WP e @ s; ⊤ {{ _, True }} ∗ (stateI σ2 -∗ ∃ E, |={⊤,E}=> ⌜φ⌝))%I) →
+  rtc step ([e], σ1) (t2, σ2) →
+  φ.
+Proof.
+  intros Hwp. eapply wp_invariance; first done.
+  intros Hinv. iMod (Hwp Hinv) as (stateI) "(? & ? & Hφ)".
+  iModIntro. iExists stateI. iFrame. iIntros "Hσ".
+  iDestruct ("Hφ" with "Hσ") as (E) ">Hφ".
+  iMod (fupd_intro_mask') as "_"; last by iModIntro. solve_ndisj.
+Qed.