diff --git a/theories/heap_lang/lifting.v b/theories/heap_lang/lifting.v
index 780a0eae4f3fbb2d11ef69478fa7c9c68fe95128..89aae2c19185817fed0b9e2e92bdf1f9f0190202 100644
--- a/theories/heap_lang/lifting.v
+++ b/theories/heap_lang/lifting.v
@@ -66,6 +66,30 @@ Local Ltac solve_atomic :=
     [inversion 1; naive_solver
     |apply ectxi_language_sub_redexes_are_values; intros [] **; naive_solver].
 
+Instance rec_atomic s f x e : Atomic s (Rec f x e).
+Proof. solve_atomic. Qed.
+Instance pair_atomic s v1 v2 : Atomic s (Pair (Val v1) (Val v2)).
+Proof. solve_atomic. Qed.
+Instance injl_atomic s v : Atomic s (InjL (Val v)).
+Proof. solve_atomic. Qed.
+Instance injr_atomic s v : Atomic s (InjR (Val v)).
+Proof. solve_atomic. Qed.
+Instance beta_atomic s f x v1 v2 : Atomic s (App (RecV f x (Val v1)) (Val v2)).
+Proof. destruct f, x; solve_atomic. Qed.
+Instance unop_atomic s op v : Atomic s (UnOp op (Val v)).
+Proof. solve_atomic. Qed.
+Instance binop_atomic s op v1 v2 : Atomic s (BinOp op (Val v1) (Val v2)).
+Proof. solve_atomic. Qed.
+Instance if_true_atomic s v1 e2 : Atomic s (If (Val $ LitV $ LitBool true) (Val v1) e2).
+Proof. solve_atomic. Qed.
+Instance if_false_atomic s e1 v2 : Atomic s (If (Val $ LitV $ LitBool false) e1 (Val v2)).
+Proof. solve_atomic. Qed.
+Instance fst_atomic s v : Atomic s (Fst (Val v)).
+Proof. solve_atomic. Qed.
+Instance snd_atomic s v : Atomic s (Snd (Val v)).
+Proof. solve_atomic. Qed.
+Instance fork_atomic s e : Atomic s (Fork e).
+Proof. solve_atomic. Qed.
 Instance alloc_atomic s v w : Atomic s (AllocN (Val v) (Val w)).
 Proof. solve_atomic. Qed.
 Instance load_atomic s v : Atomic s (Load (Val v)).
@@ -76,16 +100,9 @@ Instance cmpxchg_atomic s v0 v1 v2 : Atomic s (CmpXchg (Val v0) (Val v1) (Val v2
 Proof. solve_atomic. Qed.
 Instance faa_atomic s v1 v2 : Atomic s (FAA (Val v1) (Val v2)).
 Proof. solve_atomic. Qed.
-Instance fork_atomic s e : Atomic s (Fork e).
-Proof. solve_atomic. Qed.
-Instance skip_atomic s  : Atomic s Skip.
-Proof. solve_atomic. Qed.
 Instance new_proph_atomic s : Atomic s NewProph.
 Proof. solve_atomic. Qed.
-Instance binop_atomic s op v1 v2 : Atomic s (BinOp op (Val v1) (Val v2)).
-Proof. solve_atomic. Qed.
-
-Instance proph_resolve_atomic s e v1 v2 :
+Instance resolve_atomic s e v1 v2 :
   Atomic s e → Atomic s (Resolve e (Val v1) (Val v2)).
 Proof.
   rename e into e1. intros H σ1 e2 κ σ2 efs [Ks e1' e2' Hfill -> step].
@@ -104,9 +121,6 @@ Proof.
     + econstructor 1 with (K := Ks ++ [K]); try done. simpl. by rewrite fill_app.
 Qed.
 
-Instance resolve_proph_atomic s v1 v2 : Atomic s (ResolveProph (Val v1) (Val v2)).
-Proof. by apply proph_resolve_atomic, skip_atomic. Qed.
-
 Local Ltac solve_exec_safe := intros; subst; do 3 eexists; econstructor; eauto.
 Local Ltac solve_exec_puredet := simpl; intros; by inv_head_step.
 Local Ltac solve_pure_exec :=