Definition cut' A B X Y := X <> Y /\ forall l, IncidL X l -> IncidL Y l -> cut l A B.
Global Instance cut_morphism : Proper(EqL ==> eq ==> eq ==> iff) cut.

(* Specifications: *)
Lemma same_side_comm : forall A B l,
same_side A B l -> same_side B A l.
Lemma same_side_not_incid : forall A B l,
same_side A B l -> ~ IncidL A l /\ ~ IncidL B l.
Lemma out_same_side' : forall X Y A B C l , X <> Y ->
IncidL X l -> IncidL Y l -> IncidL A l -> ~ IncidL B l-> outH A B C ->
same_side' B C X Y.
Lemma same_side_trans : forall A B C l,
same_side A B l -> same_side B C l -> same_side A C l.
Lemma colH_IncidL__IncidL : forall A B C l,
A<>B ->
IncidL A l ->
IncidL B l ->
ColH A B C ->
IncidL C l.
Lemma IncidL_not_IncidL__not_colH :forall A B C l,
A<>B ->
IncidL A l ->
IncidL B l ->
~ IncidL C l ->
~ ColH A B C.
Lemma same_side_prime_not_colH : forall A B C D,
same_side' A B C D -> ~ ColH A C D /\ ~ ColH B C D.
Lemma OS2__TS : forall O X Y Z,
same_side' Y Z O X -> same_side' X Y O Z -> cut' X Z O Y.
Lemma th15: forall H K O L H' K' O' L',
~ ColH H O L -> ~ ColH H' O' L' -> ~ ColH K O L -> ~ ColH K' O' L' ->
~ ColH H O K -> ~ ColH H' O' K' ->
(cut' H K O L /\ cut' H' K' O' L') \/ (same_side' H K O L /\ same_side' H' K' O' L') ->
CongaH H O L H' O' L' -> CongaH K O L K' O' L' ->
CongaH H O K H' O' K'.
Lemma th17:
forall X Y Z1 Z2 I,
~ ColH X Y Z1 ->
~ ColH X Y Z2 ->
ColH X I Y ->
BetH Z1 I Z2 ->
CongH X Z1 X Z2 ->
CongH Y Z1 Y Z2 ->
CongaH X Y Z1 X Y Z2.
Lemma congaH_existence_congH :
forall A B C O X P U V : Point,
U<>V ->
~ ColH P O X ->
~ ColH A B C ->
exists Y : Point, CongaH A B C X O Y /\ same_side' P Y O X /\ CongH O Y U V.
Lemma th18_aux:
forall A B C A' B' C',
~ ColH A B C ->
~ ColH A' B' C' ->
CongH A B A' B' ->
CongH A C A' C' ->
CongH B C B' C' ->
CongaH B A C B' A' C'.
Lemma th19: forall O A B O1 A1 B1 O2 A2 B2,
~ ColH O A B ->
~ ColH O1 A1 B1 ->
~ ColH O2 A2 B2 ->
CongaH A O B A1 O1 B1 ->
CongaH A O B A2 O2 B2 ->
CongaH A1 O1 B1 A2 O2 B2.
Lemma congaH_sym : forall A B C D E F, ~ColH A B C -> ~ColH D E F
-> CongaH A B C D E F -> CongaH D E F A B C.
Lemma congaH_commr : forall A B C D E F, ~ColH A B C -> ~ColH D E F
-> CongaH A B C D E F -> CongaH A B C F E D.
Lemma cong_preserves_col : forall A B C A' B' C', BetH A B C -> CongH A B A' B' -> CongH B C B' C' -> CongH A C A' C'
-> ColH A' B' C'.
Lemma cong_preserves_col_stronger : forall A B C A' B' C',
A <> B -> A <> C -> B <> C ->
ColH A B C -> CongH A B A' B' -> CongH B C B' C' -> CongH A C A' C' ->
ColH A' B' C'.
Lemma betH_congH2__False : forall A B C A' B' C',
BetH A B C ->
BetH A' C' B' ->
CongH A B A' B' ->
CongH A C A' C' -> False.
Lemma cong_preserves_bet : forall A B C A' B' C', A'<>B' -> B'<>C' -> A'<>C' ->
BetH A B C -> CongH A B A' B' -> CongH B C B' C' -> CongH A C A' C' ->
BetH A' B' C'.
Lemma axiom_five_segmentsH:
forall A A' B B' C C' D D', A<>D -> A'<>D' -> B<>D -> B'<>D' -> C<>D -> C'<>D' ->
CongH A B A' B' ->
CongH B C B' C' ->
CongH A D A' D' ->
CongH B D B' D' ->
BetH A B C -> BetH A' B' C' -> A' <> D' ->
CongH C D C' D'.
Lemma five_segment :
forall A A' B B' C C' D D' : Point,
Cong A B A' B' ->
Cong B C B' C' ->
Cong A D A' D' ->
Cong B D B' D' -> Bet A B C -> Bet A' B' C' -> A <> B -> Cong C D C' D'.
Lemma bet_comm:
forall (A B C : Point), Bet A B C -> Bet C B A.
Lemma bet_trans:
forall A B C D : Point, Bet A B D -> Bet B C D -> Bet A B C.
Lemma cong_transitivity :
forall A B C D E F : Point, Cong A B E F -> Cong C D E F -> Cong A B C D.
Lemma cong_permT :
forall A B : Point, Cong A B B A.
Lemma pasch_general_case:
forall A B C P Q : Point,
Bet A P C ->
Bet B Q C ->
A <> P ->
P <> C ->
B <> Q ->
Q <> C ->
~ (Bet A B C \/ Bet B C A \/ Bet C A B) ->
exists x : Point, Bet P x B /\ Bet Q x A.
Lemma lower_dim_l : ~ (Bet PP PQ PR \/ Bet PQ PR PP \/ Bet PR PP PQ).
Lemma ColH_bets : forall A B C, ColH A B C -> Bet A B C \/ Bet B C A \/ Bet C A B.
Global Instance independent_Tarski_neutral_dimensionless_follows_from_Hilbert :
Gupta_inspired_variant_of_Tarski_neutral_dimensionless_with_decidable_point_equality.
Lemma line_col : forall A B C l, IncidL A l -> IncidL B l -> IncidL C l -> Col A B C.
Lemma bet__beth : forall A B C, A <> B -> B <> C -> Bet A B C -> BetH A B C.
Lemma coplanar_plane0 : forall A B C D X, ColH A B X -> ColH C D X ->
exists p, IncidP A p /\ IncidP B p /\ IncidP C p /\ IncidP D p.
Lemma coplanar_plane1 : forall A B C D X,
(Bet A B X \/ Bet B X A \/ Bet X A B) -> (Bet C D X \/ Bet D X C \/ Bet X C D) ->
exists p, IncidP A p /\ IncidP B p /\ IncidP C p /\ IncidP D p.
Lemma coplanar_plane : forall A B C D, Coplanar A B C D ->
exists p, IncidP A p /\ IncidP B p /\ IncidP C p /\ IncidP D p.
Lemma plane_coplanar : forall A B C D p, IncidP A p -> IncidP B p -> IncidP C p -> IncidP D p ->
Coplanar A B C D.
Lemma pars__para : forall A B C D l m,
IncidL A l -> IncidL B l -> IncidL C m -> IncidL D m -> Par_strict A B C D -> Para l m.
Lemma par__or_eq_para : forall A B C D l m,
IncidL A l -> IncidL B l -> IncidL C m -> IncidL D m -> Par A B C D -> Para l m \/ EqL l m.