proposition: Lemma list_before_mid_l l l' x y : list_before (l ++ x :: l') x y <-> NoDup (l ++ x :: l') /\ In y l'.
proof: Proof. rewrite list_before_app, list_before_hd; split; ins; desf; splits; rewrite nodup_app, nodup_cons in *; desf; eauto; try solve [edestruct H2; ins; eauto using list_before_in1]. Qed.
imports: Arith HahnBase HahnList HahnRelationsBasic