intros.
induction(eq_dec_points A B).
subst B.
assert(A = B').
eapply proj_uniqueness.
apply H0.
assumption.
subst B'.
apply between_trivial2.
induction(eq_dec_points B C).
subst C.
assert(B' = C').
eapply proj_uniqueness.
apply H1.
assumption.
subst C'.
apply between_trivial.
assert(A <> C).
intro.
subst C.
apply between_identity in H.
contradiction.
assert(P <> Q).
eapply proj_diff.
apply H0.
assert(Col A P Q).
eapply proj_col.
apply H0.
assert(Col B' P Q).
eapply proj_col.
apply H1.
assert(Col C' P Q).
eapply proj_col.
apply H2.
assert(Col A B C).
eapply bet_col.
assumption.
induction(eq_dec_points B B').
subst B'.
assert(C = C').
apply (proj3_id A B C C' P Q); Col.
subst C'.
assumption.
induction (eq_dec_points A C').
subst C'.
assert(Col P A B').
ColR.
assert(proj B P Q A).
eapply col_proj_proj.
3: apply H2.
auto.
Col.
assert(A = B').
eapply proj_uniqueness.
apply H13.
assumption.
subst B'.
apply l7_3_2.
induction(eq_dec_points B' C').
subst C'.
apply between_trivial.
assert(HH:= proj_not_eq_not_col B C B' C' P Q H13 H11 H1 H2).
assert(A <> B').
intro.
subst B'.
assert(Col B C C').
eapply col_proj_col.
4:apply H2.
3: apply H1.
auto.
Col.
apply HH.
ColR.
assert(HH1:= proj_one_side B C B' C' P Q H11 H1 H2).
assert(Col A B' C').
eapply proj3_col.
apply H0.
apply H1.
apply H2.
induction HH1.
apply False_ind.
apply HH.
assert(Col A B B').
ColR.
ColR.
assert(TS B B' A C).
unfold TS.
repeat split.
assert(~Col B B' A).
eapply proj_not_eq_not_col; auto.
apply H1.
apply H0.
intro.
apply H17.
Col.
intro.
apply HH.
apply col_permutation_2.
eapply (col_transitivity_1 _ A).
auto.
Col.
ColR.
exists B.
split; Col.
assert(TS B B' A C').
apply l9_2.
eapply l9_8_2.
apply l9_2.
apply H17.
assumption.
unfold TS in H18.
spliter.
ex_and H20 BB.
assert(BB= B').
eapply l6_21.
apply not_col_permutation_1.
apply H19.
4: apply col_permutation_2.
4: apply bet_col.
4: apply H21.
auto.
Col.
Col.
Col.
subst BB.
assumption.
Qed.

(* Specifications: *)
Lemma proj_preserves_bet : forall A B C A' B' C' P Q, Bet A B C ->
proj A P Q A' -> proj B P Q B' -> proj C P Q C' ->
Bet A' B' C'.