diff --git a/Util/ListComplements.v b/Util/ListComplements.v
index 236ef41264f9d23942a68eb97aae0f4d492bf36c..ead544c0868c2c1743761bde2911034b6e472af2 100644
--- a/Util/ListComplements.v
+++ b/Util/ListComplements.v
@@ -52,6 +52,22 @@ intros x l Hin. induction l.
 - destruct Hin. subst. now left. right. auto.
 Qed. *)
 
+Lemma hd_proof : forall l : list A, 0 < length l -> A.
+Proof using .
+  intros * H. destruct l as [|a t]. 2: exact a. exfalso.
+  rewrite (proj2 (length_zero_iff_nil _)) in H by reflexivity.
+  inversion H.
+Qed.
+
+Lemma all_eq : forall (l : list A) (a1 : A), In a1 l ->length l = 1
+  -> forall a2 : A, In a2 l -> a2 = a1.
+Proof using .
+  intros * Hi1 H * Hi2. destruct l as [|h t].
+  rewrite (proj2 (length_zero_iff_nil _)) in H by reflexivity. discriminate H.
+  destruct t as [|h1 t]. cbn in Hi1, Hi2. destruct Hi1, Hi2. subst. reflexivity.
+  1-3: contradiction. exfalso. eapply Nat.neq_succ_0, eq_add_S, H.
+Qed.
+
 Lemma InA_Leibniz : forall (x : A) l, InA Logic.eq x l <-> In x l.
 Proof using .
 intros x l. split; intro Hl; induction l; inversion_clear Hl;