assert(HH1:=H1).
assert(HH2:=H2).
unfold Le in HH1.
unfold Le in HH2.
ex_and HH1 X.
ex_and HH2 Y.
assert(Le A C A' Y).
eapply le_cong_le.
3: apply H1.
apply H.
(* assumption. *)
eapply between_inner_transitivity.
apply H0.
assumption.
assumption.
induction (eq_dec_points B' Y).
subst Y.
assert(Le A' B' A' C').
unfold Le.
exists B'.
split.
assumption.
apply cong_reflexivity.
eapply le_transitivity.
apply H7.
assumption.
assert(Bet A' Y C').
eapply outer_transitivity_between2.
2: apply H5.
eapply between_inner_transitivity.
apply H0.
assumption.
assumption.
eapply le_transitivity.
apply H7.
unfold Le.
exists Y.
split.
assumption.
apply cong_reflexivity.
Qed.

(* Specifications: *)
Lemma bet_double_bet : forall A B C B' C', Midpoint B' A B -> Midpoint C' A C -> Bet A B' C' -> Bet A B C.
intros.