Ltac Col := auto 3 with col.Ltac line A B l Hdiff := let H:=fresh in (assert(H:= line_existence A B Hdiff); destruct H as [l]; spliter).Ltac ColHR :=
 let tpoint := constr:(Point) in
 let col := constr:(ColH) in
   Col_refl tpoint col.Ltac two_points l X Y := assert(_H := two_points_on_line l); destruct _H as [X _H]; destruct _H as [Y _H]; spliter.

Lemma cong_existence' : forall A B l M, A <> B -> IncidL M l -> exists A' B', IncidL A' l /\ IncidL B' l /\ BetH A' M B' /\ CongH M A' A B /\ CongH M B' A B.