Require Export GeoCoq.Tarski_dev.Ch09_plane.
Section Upper_dim.
Context `{TnEQD:Tarski_neutral_dimensionless_with_decidable_point_equality}.
Definition upper_dim_axiom := forall A B C P Q : Tpoint,
P <> Q -> Cong A P A Q -> Cong B P B Q -> Cong C P C Q ->
(Bet A B C \/ Bet B C A \/ Bet C A B).
Definition all_coplanar_axiom := forall A B C D, Coplanar A B C D.

(* Specifications: *)
Lemma upper_dim_implies_per2__col :
upper_dim_axiom ->
(forall A B C X, Per A X C -> X <> C -> Per B X C -> Col A B X).
Lemma upper_dim_implies_col_perp2__col :
upper_dim_axiom ->
(forall A B X Y P,
Col A B P ->
Perp A B X P ->
Perp P A Y P ->
Col Y X P).
Lemma upper_dim_implies_perp2__col :
upper_dim_axiom ->
(forall X Y Z A B,
Perp X Y A B ->
Perp X Z A B ->
Col X Y Z).
Lemma upper_dim_implies_not_two_sides_one_side_aux :
upper_dim_axiom ->
(forall A B X Y PX,
A <> B -> PX <> A ->
Perp A B X PX ->
Col A B PX ->
~ Col X A B ->
~ Col Y A B ->
~ TS A B X Y ->
OS A B X Y).
Lemma upper_dim_implies_not_two_sides_one_side :
upper_dim_axiom ->
(forall A B X Y,
~ Col X A B ->
~ Col Y A B ->
~ TS A B X Y ->
OS A B X Y).
Lemma upper_dim_implies_not_one_side_two_sides :
upper_dim_axiom ->
(forall A B X Y,
~ Col X A B ->
~ Col Y A B ->
~ OS A B X Y ->
TS A B X Y).
Lemma upper_dim_implies_one_or_two_sides :
upper_dim_axiom ->
(forall A B X Y,
~ Col X A B ->
~ Col Y A B ->
TS A B X Y \/ OS A B X Y).
Lemma upper_dim_implies_all_coplanar : upper_dim_axiom -> all_coplanar_axiom.
Lemma all_coplanar_implies_upper_dim : all_coplanar_axiom -> upper_dim_axiom.
Lemma all_coplanar_upper_dim : all_coplanar_axiom <-> upper_dim_axiom.
Lemma upper_dim_stab : ~ ~ upper_dim_axiom -> upper_dim_axiom.
End Upper_dim.