Ltac fireInLeft name :=
  match goal with
    | [H : In ?X (?X :: ?XS) -> _ |- _ ] =>
      assert (In X (X :: XS)) as name by (left; auto); apply H in name; clear H
  end.

(* Specifications: *)
Lemma corrUndefEmpty : forall l f, correspondingSeedTree l f SeedTreeUndef -> l = [].
Lemma PrefixFreeWithNil : forall l, PrefixFree ([] :: l) -> l = [].
Lemma corrEmptyLeaf : forall s l f, correspondingSeedTree l f (SeedTreeLeaf s) -> l = [[]] /\ s = f [].
Lemma corrNodeNonEmpty : forall st1 st2 l p f, correspondingSeedTree l f (SeedTreeNode st1 st2) -> In p l -> p <> [].