Require Export B9_Inegalite_Triang.
Section METRIC_BASICS.
Definition LS0 := Distance Oo Oo.

(* Specifications: *)
Lemma NullDist : forall A,
Distance A A = LS0.
Lemma NullLSlt : forall A B : Point,
A <> B -> LSlt LS0 (Distance A B).
Lemma EquiOrientedNotEquiOriented : forall A B C D : Point,
A <> B ->
EquiOriented A B C D ->
~EquiOriented A B D C.
Lemma LSltDistinct : forall A B C D,
LSlt (Distance A B) (Distance C D) -> C <> D.
Lemma LSltNull : forall A B,
LSlt LS0 (Distance A B) -> A <> B.
Lemma NotLSltNullNull : ~LSlt LS0 LS0.
Lemma LS0NeutralRight : forall A B : Point,
LSplus (Distance A B) LS0 = Distance A B.
Lemma LS0NeutralLeft : forall A B : Point,
LSplus LS0 (Distance A B) = Distance A B.
Lemma EquiOrientedNotEquiOrientedABC : forall A B C : Point,
A <> B ->
EquiOriented A B B C ->
~EquiOriented A C C B.
Lemma HalfLineAntisymLSlt  : forall A B C : Point,
A <> B ->
HalfLine A B C ->
LSlt (Distance A B) (Distance A C) ->
~LSlt (Distance A C) (Distance A B).
Lemma AntisymLSlt  : forall A B C : Point,
A <> B ->
LSlt (Distance A B) (Distance A C) ->
~LSlt (Distance A C) (Distance A B).
Lemma ClockwiseNotNullSide : forall A B C : Point,
Clockwise A B C ->
~Distance B C = LS0.
Lemma DistDistinctNull : forall A B D : Point,
Distance A B = LS0 ->
D <> A ->
A = B.
Lemma DistNull : forall A B,
Distance A B = LS0 -> A = B.
Lemma EquiDistantDistinct : forall A B C D : Point,
A <> B ->
Distance A B = Distance C D ->
C <> D.
Lemma BetweenLSlt : forall A B C,
(Between A B C) ->
LSlt (Distance A B) (Distance A C).
Lemma LSltBetween : forall A B C,
A <> B ->
HalfLine A B C ->
LSlt (Distance A B) (Distance A C) ->
(Between A B C).
Lemma DistDistinct : forall A B,
Distance A B <> LS0 -> A <> B.
Lemma DistinctDist : forall A B,
A <> B -> Distance A B <> LS0.