Ltac out_exists A B X := try match goal with |H : A <> B |- _
                                 => assert(HH:=between_out A B H);auto; destruct HH as [X]
                              end.Ltac not_on_line A B X :=  try match goal with |H : A <> B |- _
                                 => assert(HH:=ncolH_exists A B H);auto; destruct HH as [X]
                              end.

Lemma TS_upper_dim_bis : forall A B C P Q I, BetH P I Q -> BetH I B A -> P <> Q -> A <> B -> A <> C -> B <> C -> A <> P -> A <> Q -> B <> P -> B <> Q -> C <> P -> C <> Q -> CongH A P A Q -> CongH B P B Q -> CongH C P C Q -> (Bet A B C \/ Bet B C A \/ Bet C A B).