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

Lemma Perp_perm : forall A B C D, Perp A B C D -> Perp A B C D /\ Perp B A C D /\ Perp A B D C /\ Perp B A D C /\ Perp C D A B /\ Perp C D B A /\ Perp D C A B /\ Perp D C B A.