diff --git a/lifetime/lifetime_sig.v b/lifetime/lifetime_sig.v
index 241b2b4b47dc6a5f447bdbe3da7c45c7b9497d61..343976ac4db6b629d94058063c87b04531e2c3b7 100644
--- a/lifetime/lifetime_sig.v
+++ b/lifetime/lifetime_sig.v
@@ -122,7 +122,7 @@ Module Type lifetime_sig.
      such that [m ⊓ κ'] is syntactically different from [κ].
      This is useful in conjunction with [lft_create_strong] to generate
      fresh lifetimes when using lifetimes as keys to index into a map. *)
-  Parameter lft_fresh_strong : ∀ κ κ', ∃ i : positive,
+  Parameter lft_fresh : ∀ κ κ', ∃ i : positive,
     ∀ m : positive, (i < m)%positive → (positive_to_lft m) ⊓ κ' ≠ κ.
 
   Parameter bor_create : ∀ E κ P,
diff --git a/lifetime/model/creation.v b/lifetime/model/creation.v
index 46c32bbd31dfe06d86d093d29cc810ad4086cd32..5eccf4b91c20aa0209be8ec7fa1e5058fe9751ee 100644
--- a/lifetime/model/creation.v
+++ b/lifetime/model/creation.v
@@ -185,21 +185,11 @@ Proof.
     + iRight. iFrame. iPureIntro. by apply lft_dead_in_insert_false.
 Qed.
 
-(* TODO: remove once stdpp!562 is merged *)
-Lemma lower_bound_exists `{FinSet A C} R `{!Transitive R,
-    ∀ x y, Decision (R x y)} `{!Inhabited A} (X : C) :
-  ∃ x, minimal R x X.
-Proof.
-  destruct (set_choose_or_empty X) as [ (y & Ha) | Hne].
-  - edestruct (minimal_exists R X) as (x & Hel & Hmin); first set_solver.
-    exists x. done.
-  - exists inhabitant. intros y Hel. set_solver.
-Qed.
-Lemma lft_fresh_strong κ κ' :
+Lemma lft_fresh κ κ' :
   ∃ i : positive, ∀ m : positive, (i < m)%positive → (positive_to_lft m) ⊓ κ' ≠ κ.
 Proof.
   unfold meet, lft_intersect.
-  destruct (lower_bound_exists (flip Pos.le) (dom κ)) as (i & Ha).
+  destruct (minimal_exists (flip Pos.le) (dom κ)) as (i & Ha).
   exists (i + 1)%positive.
   intros k Hik Heq. subst κ.
   ospecialize (Ha k _ _); simpl in *; [ | lia..].