Section T.
Context `{TnEQD:Tarski_neutral_dimensionless_with_decidable_point_equality}.
(** We need a notion of line. *)
Definition Line := @Couple Tpoint.
Definition Lin := build_couple Tpoint.
Definition IncidentL := fun A l => Col A (P1 l) (P2 l).
(** * Group I Incidence *)
(** For every pair of distinct points there is a line containing them. *)
(** We need a notion of equality over lines. *)
Definition EqL : relation Line := fun l m => forall X, IncidentL X l <-> IncidentL X m.
Infix "=l=" := EqL (at level 70):type_scope.
(** Our equality is an equivalence relation. *)
Instance EqL_Equiv : Equivalence EqL.
Instance incident_Proper (A:Tpoint) :
Proper (EqL ==>iff) (IncidentL A).
(** There is only one line going through two points. *)
(** Every line contains at least two points. *)
(** Definition of the collinearity predicate. We say that three points are collinear if they belongs to the same line. *)
Definition Col_H := fun A B C =>
exists l, IncidentL A l /\ IncidentL B l /\ IncidentL C l.
(** We show that the notion of collinearity we just defined is equivalent to the notion of collinearity of Tarski. *)

Lemma cols_coincide : forall A B C, Col A B C <-> Col_H A B C.