Ltac double A B A' :=
   assert (mp:= symmetric_point_construction A B);
   elim mp; intros A' ; intro; clear mp.

Lemma midpoint_existence_aux : forall A B P Q T, A<>B -> Perp A B Q B -> Perp A B P A -> Col A B T -> Bet Q T P -> Le A P B Q -> exists X : Tpoint, Midpoint X A B.