(* Gabriel Braun April 2013 *)
Require Export GeoCoq.Tarski_dev.Ch13_5_Pappus_Pascal.
Section Desargues_Hessenberg.
Context `{T2D:Tarski_2D}.
Context `{TE:@Tarski_euclidean Tn TnEQD}.

(* Specifications: *)
Lemma l13_15_1 : forall A B C A' B' C' O ,
~ Col A B C -> ~ Par O B A C ->
Par_strict A B A' B' -> Par_strict A C A' C'->
Col O A A' -> Col O B B' -> Col O C C' ->
Par B C B' C'.
Lemma l13_15_2_aux : forall A B C A' B' C' O , ~Col A B C
-> ~Par O A B C
-> Par O B A C
-> Par_strict A B A' B'
-> Par_strict A C A' C'
-> Col O A A' -> Col O B B' -> Col O C C'
-> Par B C B' C'.
Lemma l13_15_2 : forall A B C A' B' C' O , ~Col A B C
-> Par O B A C
-> Par_strict A B A' B'
-> Par_strict A C A' C'
-> Col O A A' -> Col O B B' -> Col O C C'
-> Par B C B' C'.
Lemma l13_15 : forall A B C A' B' C' O , ~Col A B C
-> Par_strict A B A' B'
-> Par_strict A C A' C'
-> Col O A A' -> Col O B B' -> Col O C C'
-> Par B C B' C'.
Lemma l13_15_par : forall A B C A' B' C', ~Col A B C
-> Par_strict A B A' B'
-> Par_strict A C A' C'
-> Par A A' B B'
-> Par A A' C C'
-> Par B C B' C'.
Lemma l13_18_2 : forall A B C A' B' C' O, ~Col A B C
-> Par_strict A B A' B'
-> Par_strict A C A' C'
-> (Par_strict B C B' C' /\ Col O A A' /\ Col O B B' -> Col O C C').
Lemma l13_18_3 : forall A B C A' B' C', ~Col A B C
-> Par_strict A B A' B'
-> Par_strict A C A' C'
-> (Par_strict B C B' C' /\ Par A A' B B')
-> (Par C C' A A' /\ Par C C' B B').
Lemma l13_18 :  forall A B C A' B' C' O, ~Col A B C /\ Par_strict A B A' B' /\  Par_strict A C A' C'
->(Par_strict B C B' C' /\ Col O A A' /\ Col O B B' -> Col O C C')
/\ ((Par_strict B C B' C' /\ Par A A' B B') -> (Par C C' A A' /\ Par C C' B B'))
/\ (Par A A' B B' /\ Par A A' C C' -> Par B C B' C').
Lemma l13_19_aux : forall A B C D A' B' C' D' O, ~Col O A B -> A <> A' -> A <> C
-> O <> A -> O <> A' -> O <> C -> O <> C'
-> O <> B -> O <> B' -> O <> D -> O <> D'
-> Col O A C -> Col O A A' -> Col O A C'
-> Col O B D -> Col O B B' -> Col O B D'
-> ~Par A B C D
-> Par A B A' B' -> Par A D A' D' -> Par B C B' C'
-> Par C D C' D'.
Lemma l13_19 : forall A B C D A' B' C' D' O, ~Col O A B
-> O <> A -> O <> A' -> O <> C -> O <> C'
-> O <> B -> O <> B' -> O <> D -> O <> D'
-> Col O A C -> Col O A A' -> Col O A C'
-> Col O B D -> Col O B B' -> Col O B D'
-> Par A B A' B' -> Par A D A' D' -> Par B C B' C'
-> Par C D C' D'.
Lemma l13_19_par_aux : forall A B C D A' B' C' D' X Y,
X <> A -> X <> A' -> X <> C -> X <> C'
-> Y <> B -> Y <> B' -> Y <> D -> Y <> D'
-> Col X A C -> Col X A A' -> Col X A C'
-> Col Y B D -> Col Y B B' -> Col Y B D'
-> A <> C -> B <> D -> A <> A'
-> Par_strict X A Y B
-> ~Par A B C D
-> Par A B A' B' -> Par A D A' D' -> Par B C B' C'
-> Par C D C' D'.
Lemma l13_19_par : forall A B C D A' B' C' D' X Y,
X <> A -> X <> A' -> X <> C -> X <> C'-> Y <> B -> Y <> B' -> Y <> D -> Y <> D' ->
Col X A C -> Col X A A' -> Col X A C' -> Col Y B D -> Col Y B B' -> Col Y B D' ->
Par_strict X A Y B -> Par A B A' B' -> Par A D A' D' -> Par B C B' C' ->
Par C D C' D'.