(* Roland Coghetto, 29 March 2018, 04 April 2018. GNU Lesser General Public License v3.0 See LICENSE GeoCoq 2.3.0  MOTIVATION:  - Existence of a rhombus (absolute geometry). - Unicity of rhomus with 3 points determinated (absolute geometry).  TODO:  29 march 2018 - In Euclidean geometry, construction of a rhombus from 3 determined points. DONE - What about rhombus in non-euclidean geometry case ? 04 april 2018 - MOVE all "Plg"'s lemma in quadrialterals.v (after modify context Tarski_2D by Tarski_neutral_dimensionless_with_decidable_point_equality in quadrilaterals.v) ? - MOVE all "rhombus"'s lemma in quadrilaterals.v (after modify context Tarski_2D by Tarski_neutral_dimensionless_with_decidable_point_equality in quadrilaterals.v) ? - DELETE rhombus.v - EXPERIMENTAL: (in quadrilaterals_inter_dec.v) Lemma rmb_cong : forall A B C D, Rhombus A B C D -> Cong A B B C /\ Cong A B C D /\ Cong A B D A. TRY MODIFY CONTEXT ? Tarski_2D_euclidean -> Tarski_2D or Tarski_neutral_dimensionless_with_decidable_point_equality  CHANGES: 04 april 2018, RC 1) See JNarboux, comments about pull requests Rhombus. 2) ADD End Rhombus_Existence_Unicity. 2) MODIFY CONTEXT: Tarski_2D by Tarski_neutral_dimensionless_with_decidable_point_equality. 3) ADD Existence Plg, Rhombus.  *)
Require Export GeoCoq.Tarski_dev.Annexes.perp_bisect.
Section Rhombus_Existence_Unicity.
Context `{TnEQD:Tarski_neutral_dimensionless_with_decidable_point_equality}.

(* Specifications: *)
Lemma PlgLeft: forall A B C D, Plg A B C D -> (A <> C \/ B <> D).
Lemma PlgEquivDef: forall A B C D, (A <> C \/ B <> D) -> ((exists M,
OnCircle C M A /\ OnCircle D M B /\ Bet C M A /\ Bet D M B) <-> Plg A B C D).
Lemma PlgAABB: forall A B, A <> B -> Plg A A B B.
Lemma PlgEx: exists A B C D, Plg A B C D.
Lemma RhombusEx: exists A B C D, Rhombus A B C D.
Lemma RhombusUnicity: forall A B C D E, Rhombus A B C D -> Rhombus A B C E -> D = E.
Lemma ColCongMid: forall A B C, A <> C -> Col A B C -> Cong A B B C -> Midpoint B A C.
Lemma PlgExABC1: forall A B C, A <> C -> Col A B C -> Cong A B B C -> exists D, Plg A B C D.
Lemma PlgExABC2: forall A B C, ~Col A B C -> Cong A B B C -> exists D, Plg A B C D.
Lemma RhombusExABC1: forall A B C, A <> C -> Col A B C -> Cong A B B C -> exists D, Rhombus A B C D.
Lemma RhombusExABC2: forall A B C, ~Col A B C -> Cong A B B C -> exists D, Rhombus A B C D.
End Rhombus_Existence_Unicity.