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

Lemma perp_cong : forall A B P R X, A <> B -> A <> P -> Perp A B P A -> Perp A B R B -> Cong A P B R -> Col A B X -> Bet P X R -> Cong A R P B.