intros.
apply Corresponding.
+ intros p' s VarySome.
inversion Corr as [Vary_In In_Vary Pref'].
apply addToTreeCorrect3 in VarySome.
inversion VarySome.
- left; auto.
- right. eapply Vary_In; eassumption.
+ intros p' InP'.
inversion Corr as [Vary_In In_Vary Pref'].
inversion InP'.
- subst.
apply addToTreeCorrect1.
- apply addToTreeCorrect2. apply In_Vary. auto.
+ apply FreeCons.
- inversion Corr; auto.
- intros.
eapply Pref.
eassumption.
instantiate (1 := p1); instantiate (1:= p2); subst; auto.
Qed.

(* Specifications: *)
Lemma PrefixFreeTail : forall a l, PrefixFree (a :: l) -> PrefixFree l.
intros.