Require Export GeoCoq.Elements.OriginalProofs.lemma_ray3.

Section Euclid.

Context `{Ax:euclidean_neutral_ruler_compass}.

Lemma lemma_equalangleshelper : 
   forall A B C a b c p q, 
   CongA A B C a b c -> Out b a p -> Out b c q ->
   CongA A B C p b q.
Proof.
(* Goal: forall (A B C a b c p q : @Point Ax0) (_ : @CongA Ax0 A B C a b c) (_ : @Out Ax0 b a p) (_ : @Out Ax0 b c q), @CongA Ax0 A B C p b q *)
intros.
let Tf:=fresh in
assert (Tf:exists U V u v, (Out B A U /\ Out B C V /\ Out b a u /\ Out b c v /\ Cong B U b u /\ Cong B V b v /\ Cong U V u v /\ nCol A B C)) by (conclude_def CongA );destruct Tf as [U[V[u[v]]]];spliter.
(* Goal: @CongA Ax0 A B C p b q *)
assert (Out b p u) by (conclude lemma_ray3).
(* Goal: @CongA Ax0 A B C p b q *)
assert (Out b q v) by (conclude lemma_ray3).
(* Goal: @CongA Ax0 A B C p b q *)
assert (CongA A B C p b q) by (conclude_def CongA ).
(* Goal: @CongA Ax0 A B C p b q *)
close.
Qed.

End Euclid.


