Require Export GeoCoq.Meta_theory.Parallel_postulates.parallel_postulates.
Require Export GeoCoq.Meta_theory.Parallel_postulates.par_trans_NID.
Section T13.
Context `{TE:Tarski_euclidean}.

(* Specifications: *)
Lemma cop_npar__inter_exists : forall A1 B1 A2 B2,
Coplanar A1 B1 A2 B2 -> ~ Par A1 B1 A2 B2 -> exists X, Col X A1 B1 /\ Col X A2 B2.
Lemma cop_npar__inter : forall A1 B1 A2 B2, A1 <> B1 -> A2 <> B2 ->
Coplanar A1 B1 A2 B2 -> ~ Par A1 B1 A2 B2 -> exists X, Inter A1 B1 A2 B2 X.
Lemma parallel_uniqueness :
forall A1 A2 B1 B2 C1 C2 P : Tpoint,
Par A1 A2 B1 B2 -> Col P B1 B2 ->
Par A1 A2 C1 C2 -> Col P C1 C2 ->
Col C1 B1 B2 /\ Col C2 B1 B2.
Lemma par_trans : forall A1 A2 B1 B2 C1 C2,
Par A1 A2 B1 B2 -> Par B1 B2 C1 C2 -> Par A1 A2 C1 C2.
Lemma inter__npar : forall A1 A2 B1 B2 X,
Inter A1 A2 B1 B2 X -> ~ Par A1 A2 B1 B2.
Lemma l12_16 : forall A1 A2 B1 B2 C1 C2 X,
Par A1 A2 B1 B2 -> Coplanar B1 B2 C1 C2 -> Inter A1 A2 C1 C2 X -> exists Y, Inter B1 B2 C1 C2 Y.
Lemma par_dec : forall A B C D, Par A B C D \/ ~ Par A B C D.
Lemma cop_par__inter : forall A B C D P Q,
Par A B C D -> ~Par A B P Q -> Coplanar C D P Q ->
exists Y, Col P Q Y /\ Col C D Y.
Lemma l12_19 :
forall A B C D ,
~Col A B C -> Par A B C D -> Par B C D A ->
Cong A B C D /\ Cong B C D A /\ TS B D A C /\ TS A C B D.
Lemma l12_20_bis :
forall A B C D,
Par A B C D -> Cong A B C D -> TS B D A C ->
Par B C D A /\ Cong B C D A /\ TS A C B D.
Lemma l12_20 :
forall A B C D,
Par A B C D -> Cong A B C D -> TS A C B D ->
Par B C D A /\ Cong B C D A /\ TS A C B D.
Lemma l12_21_a :
forall A B C D,
TS A C B D ->
(Par A B C D -> CongA B A C D C A).
Lemma l12_21 : forall A B C D,
TS A C B D ->
(CongA B A C D C A <-> Par A B C D).
Lemma l12_22_a : forall A B C D P,
Out P A C -> OS P A B D -> Par A B C D ->
CongA B A P D C P.
Lemma l12_22 :
forall A B C D P,
Out P A C -> OS P A B D ->
(CongA B A P D C P <-> Par A B C D).
Lemma l12_23 :
forall A B C,
~Col A B C ->
exists B', exists C',
TS A C B B' /\ TS A B C C' /\
Bet B' A C' /\ CongA A B C B A C' /\ CongA A C B C A B'.
Lemma cop_npars__inter_exists :
forall A1 B1 A2 B2,
Coplanar A1 B1 A2 B2 -> ~ Par_strict A1 B1 A2 B2 ->
exists X, Col X A1 B1 /\ Col X A2 B2.
Lemma cop2_npar__inter : forall A B A' B' X Y,
Coplanar A B X Y -> Coplanar A' B' X Y -> ~ Par A B A' B' ->
(exists P, Col P X Y /\ (Col P A B \/ Col P A' B')).
Lemma not_par_one_not_par : forall A B A' B' X Y, ~Par A B A' B' -> ~Par A B X Y \/ ~Par A' B' X Y.
Lemma col_par_par_col : forall A B C A' B' C', Col A B C -> Par A B A' B' -> Par B C B' C' -> Col A' B' C'.
Lemma cop_par_perp__perp : forall A B C D P Q, Par A B C D -> Perp A B P Q -> Coplanar C D P Q ->
Perp C D P Q.
Lemma cop4_par_perp2__par : forall A B C D E F G H,
Par A B C D -> Perp A B E F -> Perp C D G H ->
Coplanar A B E G -> Coplanar A B E H ->
Coplanar A B F G -> Coplanar A B F H ->
Par E F G H.