diff --git a/theories/lang/lang.v b/theories/lang/lang.v
index eebf275c54279d4211f8e2aab2d04da31c028f26..bf91498c56cd817c4364e9b5d917b5c8e0709f57 100644
--- a/theories/lang/lang.v
+++ b/theories/lang/lang.v
@@ -484,7 +484,7 @@ Qed.
 (** Closed expressions *)
 Lemma is_closed_weaken X Y e : is_closed X e → X ⊆ Y → is_closed Y e.
 Proof.
-  revert e X Y. fix 1; destruct e=>X Y/=; try naive_solver.
+  revert e X Y. fix FIX 1; destruct e=>X Y/=; try naive_solver.
   - naive_solver set_solver.
   - rewrite !andb_True. intros [He Hel] HXY. split. by eauto.
     induction el=>/=; naive_solver.
@@ -497,7 +497,7 @@ Proof. intros. by apply is_closed_weaken with [], list_subseteq_nil. Qed.
 
 Lemma is_closed_subst X e x es : is_closed X e → x ∉ X → subst x es e = e.
 Proof.
-  revert e X. fix 1; destruct e=> X /=; rewrite ?bool_decide_spec ?andb_True=> He ?;
+  revert e X. fix FIX 1; destruct e=> X /=; rewrite ?bool_decide_spec ?andb_True=> He ?;
     repeat case_bool_decide; simplify_eq/=; f_equal;
     try by intuition eauto with set_solver.
   - case He=> _. clear He. induction el=>//=. rewrite andb_True=>?.
@@ -518,7 +518,7 @@ Proof. intros <-%of_to_val. apply is_closed_of_val. Qed.
 Lemma subst_is_closed X x es e :
   is_closed X es → is_closed (x::X) e → is_closed X (subst x es e).
 Proof.
-  revert e X. fix 1; destruct e=>X //=; repeat (case_bool_decide=>//=);
+  revert e X. fix FIX 1; destruct e=>X //=; repeat (case_bool_decide=>//=);
     try naive_solver; rewrite ?andb_True; intros.
   - set_solver.
   - eauto using is_closed_weaken with set_solver.
@@ -591,19 +591,19 @@ Fixpoint expr_beq (e : expr) (e' : expr) : bool :=
   end.
 Lemma expr_beq_correct (e1 e2 : expr) : expr_beq e1 e2 ↔ e1 = e2.
 Proof.
-  revert e1 e2; fix 1;
+  revert e1 e2; fix FIX 1.
     destruct e1 as [| | | |? el1| | | | | |? el1|],
              e2 as [| | | |? el2| | | | | |? el2|]; simpl; try done;
-  rewrite ?andb_True ?bool_decide_spec ?expr_beq_correct;
+  rewrite ?andb_True ?bool_decide_spec ?FIX;
   try (split; intro; [destruct_and?|split_and?]; congruence).
   - match goal with |- context [?F el1 el2] => assert (F el1 el2 ↔ el1 = el2) end.
     { revert el2. induction el1 as [|el1h el1q]; destruct el2; try done.
-      specialize (expr_beq_correct el1h). naive_solver. }
-    clear expr_beq_correct. naive_solver.
+      specialize (FIX el1h). naive_solver. }
+    clear FIX. naive_solver.
   - match goal with |- context [?F el1 el2] => assert (F el1 el2 ↔ el1 = el2) end.
     { revert el2. induction el1 as [|el1h el1q]; destruct el2; try done.
-      specialize (expr_beq_correct el1h). naive_solver. }
-    clear expr_beq_correct. naive_solver.
+      specialize (FIX el1h). naive_solver. }
+    clear FIX. naive_solver.
 Qed.
 Instance expr_dec_eq : EqDecision expr.
 Proof.
diff --git a/theories/lang/tactics.v b/theories/lang/tactics.v
index a7d8e6e56d14e0df5b47829bd2e312f97d9390c5..21ea93df05520ace50909d0c045e8e5ebef3308e 100644
--- a/theories/lang/tactics.v
+++ b/theories/lang/tactics.v
@@ -87,7 +87,7 @@ Fixpoint is_closed (X : list string) (e : expr) : bool :=
   end.
 Lemma is_closed_correct X e : is_closed X e → lang.is_closed X (to_expr e).
 Proof.
-  revert e X. fix 1; destruct e=>/=;
+  revert e X. fix FIX 1; destruct e=>/=;
     try naive_solver eauto using is_closed_to_val, is_closed_weaken_nil.
   - induction el=>/=; naive_solver.
   - induction el=>/=; naive_solver.
@@ -138,7 +138,7 @@ Fixpoint subst (x : string) (es : expr) (e : expr)  : expr :=
 Lemma to_expr_subst x er e :
   to_expr (subst x er e) = lang.subst x (to_expr er) (to_expr e).
 Proof.
-  revert e x er. fix 1; destruct e=>/= ? er; repeat case_bool_decide;
+  revert e x er. fix FIX 1; destruct e=>/= ? er; repeat case_bool_decide;
     f_equal; eauto using is_closed_nil_subst, is_closed_to_val, eq_sym.
   - induction el=>//=. f_equal; auto.
   - induction el=>//=. f_equal; auto.