Library RulerCompassGeometry.B2_Orient_Prop
Require Export B1_Confondu_Prop.
Section CLOCKWISE_PROPERTIES.
Lemma ClockwiseBCA : forall A B C,
Clockwise A B C -> Clockwise B C A.
Proof.
exact ClockwisePerm.
Qed.
Lemma ClockwiseCAB : forall A B C,
Clockwise A B C -> Clockwise C A B.
Proof.
intros A B C H; do 2 apply ClockwisePerm; trivial.
Qed.
Lemma NotClockwiseAAB : forall A B, ~Clockwise A A B.
Proof.
intros A B; destruct (ClockwiseAntisym A A B); trivial.
Qed.
Lemma NotClockwiseABA : forall A B , ~Clockwise A B A.
Proof.
intros A B H; elim (NotClockwiseAAB A B); apply ClockwiseCAB; trivial.
Qed.
Lemma NotClockwiseBAA : forall A B , ~Clockwise B A A.
Proof.
intros A B H; elim (NotClockwiseAAB A B); apply ClockwiseBCA; trivial.
Qed.
Lemma ClockwiseDistinctAB : forall A B C,
Clockwise A B C -> A <> B.
Proof.
intros A B C H Hi; subst.
elim (NotClockwiseAAB B C); trivial.
Qed.
Lemma ClockwiseDistinctBC : forall A B C,
Clockwise A B C -> B <> C.
Proof.
intros A B C H Hi; subst.
elim (NotClockwiseBAA C A); trivial.
Qed.
Lemma ClockwiseDistinctCA : forall A B C,
Clockwise A B C -> C <> A.
Proof.
intros A B C H Hi; subst.
elim (NotClockwiseABA A B); trivial.
Qed.
Lemma ClockwiseNotClockwise : forall A B C,
Clockwise A B C -> ~Clockwise B A C.
Proof.
intros A B C H H0.
destruct (ClockwiseAntisym A B C); intuition.
Qed.
Lemma ClockwiseClockwiseDistinct : forall A B C D,
Clockwise A B C ->
Clockwise B A D ->
C <> D.
Proof.
intros A B C D H H0 H1; subst.
elim (ClockwiseNotClockwise A B D H); trivial.
Qed.
Lemma ExclusiveFourCases : forall A B C,
A <> C ->
Clockwise A B C \/
Clockwise B A C \/
HalfLine A B C \/
EquiOriented A B C A.
Proof.
intros A B C H; decompose [or] (FourCases A B C).
auto.
auto.
auto.
decompose [or] (FourCases A C B).
generalize (ClockwiseCAB A C B H1); auto.
generalize (ClockwiseBCA C A B); auto.
generalizeChange.
generalizeChange.
Qed.
End CLOCKWISE_PROPERTIES.
Section CLOCKWISE_PROPERTIES.
Lemma ClockwiseBCA : forall A B C,
Clockwise A B C -> Clockwise B C A.
Proof.
exact ClockwisePerm.
Qed.
Lemma ClockwiseCAB : forall A B C,
Clockwise A B C -> Clockwise C A B.
Proof.
intros A B C H; do 2 apply ClockwisePerm; trivial.
Qed.
Lemma NotClockwiseAAB : forall A B, ~Clockwise A A B.
Proof.
intros A B; destruct (ClockwiseAntisym A A B); trivial.
Qed.
Lemma NotClockwiseABA : forall A B , ~Clockwise A B A.
Proof.
intros A B H; elim (NotClockwiseAAB A B); apply ClockwiseCAB; trivial.
Qed.
Lemma NotClockwiseBAA : forall A B , ~Clockwise B A A.
Proof.
intros A B H; elim (NotClockwiseAAB A B); apply ClockwiseBCA; trivial.
Qed.
Lemma ClockwiseDistinctAB : forall A B C,
Clockwise A B C -> A <> B.
Proof.
intros A B C H Hi; subst.
elim (NotClockwiseAAB B C); trivial.
Qed.
Lemma ClockwiseDistinctBC : forall A B C,
Clockwise A B C -> B <> C.
Proof.
intros A B C H Hi; subst.
elim (NotClockwiseBAA C A); trivial.
Qed.
Lemma ClockwiseDistinctCA : forall A B C,
Clockwise A B C -> C <> A.
Proof.
intros A B C H Hi; subst.
elim (NotClockwiseABA A B); trivial.
Qed.
Lemma ClockwiseNotClockwise : forall A B C,
Clockwise A B C -> ~Clockwise B A C.
Proof.
intros A B C H H0.
destruct (ClockwiseAntisym A B C); intuition.
Qed.
Lemma ClockwiseClockwiseDistinct : forall A B C D,
Clockwise A B C ->
Clockwise B A D ->
C <> D.
Proof.
intros A B C D H H0 H1; subst.
elim (ClockwiseNotClockwise A B D H); trivial.
Qed.
Lemma ExclusiveFourCases : forall A B C,
A <> C ->
Clockwise A B C \/
Clockwise B A C \/
HalfLine A B C \/
EquiOriented A B C A.
Proof.
intros A B C H; decompose [or] (FourCases A B C).
auto.
auto.
auto.
decompose [or] (FourCases A C B).
generalize (ClockwiseCAB A C B H1); auto.
generalize (ClockwiseBCA C A B); auto.
generalizeChange.
generalizeChange.
Qed.
End CLOCKWISE_PROPERTIES.
