Library ProjectiveGeometry.Space.projective_space_rank_axioms
Require Export sets_of_points.
Require Export matroids_axioms.
Module Type RankProjectiveSpace (DecPoints: FSetInterface.WS).
Declare Module Export FiniteSetsDefs : BuildFSets DecPoints.
Definition set_of_points := t.
Definition Point := DecPoints.t.
Require Export matroids_axioms.
Module Type RankProjectiveSpace (DecPoints: FSetInterface.WS).
Declare Module Export FiniteSetsDefs : BuildFSets DecPoints.
Definition set_of_points := t.
Definition Point := DecPoints.t.
General Axioms of Matroids
Parameter rk : set_of_points -> nat.
Axiom matroid1_a : forall X, rk X >= 0.
Axiom matroid1_b : forall X, rk X <= cardinal X.
Axiom matroid2: forall X Y, Subset X Y -> rk X <= rk Y.
Axiom matroid3: forall X Y,
rk(union X Y) + rk(inter X Y) <= rk X + rk Y.
Axioms needed for projective geometry
Axiom rk_singleton_ge : forall P, rk (singleton P) >= 1.
Axiom rk_couple_ge : forall P Q, ~ P [==] Q -> rk(couple P Q) >= 2.
Axiom pasch : forall A B C D, rk (quadruple A B C D) <= 3 ->
exists J, rk (triple A B J) = 2 /\ rk (triple C D J) = 2.
Axiom three_points_on_lines : forall A B, exists C,
rk (triple A B C) = 2 /\ rk (couple B C) = 2 /\ rk (couple A C) = 2.
Parameter P0 P1 P2 P3 : Point.
Axiom lower_dim : rk (quadruple P0 P1 P2 P3) >= 4.
End RankProjectiveSpace.