Definition ltF : list Tree -> list Tree -> Prop := fun f' => fun f => exists w, exists a,
is_insert_forest f w a f'  /\ (forall t, tree_in_forest t f' -> bad_seq_in_lbl t) /\ f<>f'.
Fact acc_ltF_nil : Acc ltF nil.
constructor; intros f Hf.
elim Hf; clear Hf; intros w H; elim H; clear H; intros a H;
elim H; clear H; intros H1 H; elim H; clear H; intros H2 H3.
inversion H1; subst.
elim H3; trivial.
Qed.
Fact acc_ltF_cons : forall f t, Acc ltF f -> Acc ltF (t::nil) -> Acc ltF (t::f).

(* Specifications: *)
Lemma is_forest_roots_labels : forall ws f, is_forest ws f ->
roots_labels f = Some (bad_subsequence leA leA_dec (firsts ws)).
Lemma acc_ltF_single : forall ws, Acc (continues embeds) ws ->
forall l a bs, Acc (continues leA) bs ->
forall ts, Acc ltF ts ->
forall t, root t = (ws,a::l) /\ subtrees t = ts /\ Some bs = roots_labels ts ->
Acc ltF (t::nil).
Lemma higman_aux :
forall bs, Acc (continues leA) bs ->
forall f, Acc ltF f ->
forall ws, bs = bad_subsequence leA leA_dec (firsts ws) /\ is_forest ws f ->
bad embeds ws -> Acc (continues embeds) ws.
Theorem Higman :
Acc (continues leA) nil -> Acc (continues embeds) nil.