Require Export GeoCoq.Tarski_dev.Ch11_angles.
Section Upper_dim_3.
Context `{TnEQD:Tarski_neutral_dimensionless_with_decidable_point_equality}.
(** In this file, we prove that all the following properties are equivalent. *)
(** If three points A, B and C are equidistant to three distinct points P, Q and R, then A, B and C are collinear. *)
Definition upper_dim_3_axiom := forall A B C P Q R,
P <> Q -> Q <> R -> P <> R ->
Cong A P A Q -> Cong B P B Q -> Cong C P C Q ->
Cong A P A R -> Cong B P B R -> Cong C P C R ->
(Bet A B C \/ Bet B C A \/ Bet C A B).
(** If four points are equidistant to two distinct points, then they are coplanar. *)
Definition median_planes_axiom := forall A B C D P Q, P <> Q ->
Cong A P A Q -> Cong B P B Q -> Cong C P C Q -> Cong D P D Q ->
Coplanar A B C D.
(** If two planes meet in some point, then they also meet in another point. *)
Definition plane_intersection_axiom := forall A B C D E F P,
Coplanar A B C P -> Coplanar D E F P ->
exists Q, Coplanar A B C Q /\ Coplanar D E F Q /\ P <> Q.
(** If two points do not lie on a plane, then they are either on opposite sides or on the same side of the plane. *)
Definition space_separation_axiom := forall A B C P Q,
~ Coplanar A B C P -> ~ Coplanar A B C Q -> TSP A B C P Q \/ OSP A B C P Q.
(** The line segments SU1, SU2, SU3 and SU4 can not form an orthonormal family *)
Definition orthonormal_family_axiom := forall S U1' U1 U2 U3 U4,
~ (S <> U1' /\ Bet U1 S U1' /\
Cong S U1 S U1' /\ Cong S U2 S U1' /\ Cong S U3 S U1' /\ Cong S U4 S U1' /\
Cong U1 U2 U1' U2 /\ Cong U1 U3 U1' U2 /\ Cong U1 U4 U1' U2 /\
Cong U2 U3 U1' U2 /\ Cong U2 U4 U1' U2 /\ Cong U3 U4 U1' U2).

Lemma orthonormal_family_axiom_implies_orth_at2__col :
orthonormal_family_axiom ->
(forall A B C P Q X, Orth_at X A B C X P -> Orth_at X A B C X Q -> Col P Q X).