diff --git a/barrier/heap_lang.v b/barrier/heap_lang.v
index 25bc98d831e127c2cad60d3759c7bb57150f0fec..93f206bd90346544136a3a09b2dc86ba01ae97f1 100644
--- a/barrier/heap_lang.v
+++ b/barrier/heap_lang.v
@@ -263,7 +263,7 @@ Lemma fill_item_no_val_inj Ki1 Ki2 e1 e2 :
   fill_item Ki1 e1 = fill_item Ki2 e2 → Ki1 = Ki2.
 Proof.
   destruct Ki1, Ki2; intros; try discriminate; simplify_equality';
-    repeat match goal with
+    try match goal with
     | H : to_val (of_val _) = None |- _ => by rewrite to_of_val in H
     end; auto.
 Qed.
@@ -278,7 +278,7 @@ Proof.
   intros Hfill Hred Hnval; revert K' Hfill.
   induction K as [|Ki K IH]; simpl; intros K' Hfill; auto using prefix_of_nil.
   destruct K' as [|Ki' K']; simplify_equality'.
-  { destruct (proj1 (eq_None_not_Some (to_val (fill K e1))));
+  { exfalso; apply (eq_None_not_Some (to_val (fill K e1)));
       eauto using fill_not_val, head_ctx_step_val. }
   cut (Ki = Ki'); [naive_solver eauto using prefix_of_cons|].
   eauto using fill_item_no_val_inj, values_head_stuck, fill_not_val.