Documentation

Mathlib.Combinatorics.Configuration

Configurations of Points and lines #

This file introduces abstract configurations of points and lines, and proves some basic properties.

Main definitions #

Main statements #

def Configuration.Dual (P : Type u_1) :
Type u_1

A type synonym.

Equations
Instances For
    class Configuration.Nondegenerate (P : Type u_1) (L : Type u_2) [Membership P L] :

    A configuration is nondegenerate if:

    1. there does not exist a line that passes through all of the points,
    2. there does not exist a point that is on all of the lines,
    3. there is at most one line through any two points,
    4. any two lines have at most one intersection point. Conditions 3 and 4 are equivalent.
    • exists_point : ∀ (l : L), ∃ (p : P), pl
    • exists_line : ∀ (p : P), ∃ (l : L), pl
    • eq_or_eq : ∀ {p₁ p₂ : P} {l₁ l₂ : L}, p₁ l₁p₂ l₁p₁ l₂p₂ l₂p₁ = p₂ l₁ = l₂
    Instances
      class Configuration.HasPoints (P : Type u_1) (L : Type u_2) [Membership P L] extends Configuration.Nondegenerate :
      Type (max u_1 u_2)

      A nondegenerate configuration in which every pair of lines has an intersection point.

      Instances
        class Configuration.HasLines (P : Type u_1) (L : Type u_2) [Membership P L] extends Configuration.Nondegenerate :
        Type (max u_1 u_2)

        A nondegenerate configuration in which every pair of points has a line through them.

        Instances
          Equations
          • One or more equations did not get rendered due to their size.
          Equations
          • One or more equations did not get rendered due to their size.
          theorem Configuration.HasPoints.existsUnique_point (P : Type u_1) (L : Type u_2) [Membership P L] [Configuration.HasPoints P L] (l₁ : L) (l₂ : L) (hl : l₁ l₂) :
          ∃! (p : P), p l₁ p l₂
          theorem Configuration.HasLines.existsUnique_line (P : Type u_1) (L : Type u_2) [Membership P L] [Configuration.HasLines P L] (p₁ : P) (p₂ : P) (hp : p₁ p₂) :
          ∃! (l : L), p₁ l p₂ l
          theorem Configuration.Nondegenerate.exists_injective_of_card_le {P : Type u_1} {L : Type u_2} [Membership P L] [Configuration.Nondegenerate P L] [Fintype P] [Fintype L] (h : Fintype.card L Fintype.card P) :
          ∃ (f : LP), Function.Injective f ∀ (l : L), f ll

          If a nondegenerate configuration has at least as many points as lines, then there exists an injective function f from lines to points, such that f l does not lie on l.

          noncomputable def Configuration.lineCount {P : Type u_1} (L : Type u_2) [Membership P L] (p : P) :

          Number of points on a given line.

          Equations
          Instances For
            noncomputable def Configuration.pointCount (P : Type u_1) {L : Type u_2} [Membership P L] (l : L) :

            Number of lines through a given point.

            Equations
            Instances For
              theorem Configuration.sum_lineCount_eq_sum_pointCount (P : Type u_1) (L : Type u_2) [Membership P L] [Fintype P] [Fintype L] :
              (Finset.sum Finset.univ fun (p : P) => Configuration.lineCount L p) = Finset.sum Finset.univ fun (l : L) => Configuration.pointCount P l
              theorem Configuration.HasLines.pointCount_le_lineCount {P : Type u_1} {L : Type u_2} [Membership P L] [Configuration.HasLines P L] {p : P} {l : L} (h : pl) [Finite { l : L // p l }] :
              theorem Configuration.HasPoints.lineCount_le_pointCount {P : Type u_1} {L : Type u_2} [Membership P L] [Configuration.HasPoints P L] {p : P} {l : L} (h : pl) [hf : Finite { p : P // p l }] :

              If a nondegenerate configuration has a unique line through any two points, then |P| ≤ |L|.

              If a nondegenerate configuration has a unique point on any two lines, then |L| ≤ |P|.

              If a nondegenerate configuration has a unique line through any two points, and if |P| = |L|, then there is a unique point on any two lines.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                If a nondegenerate configuration has a unique point on any two lines, and if |P| = |L|, then there is a unique line through any two points.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  class Configuration.ProjectivePlane (P : Type u_1) (L : Type u_2) [Membership P L] extends Configuration.HasPoints :
                  Type (max u_1 u_2)

                  A projective plane is a nondegenerate configuration in which every pair of lines has an intersection point, every pair of points has a line through them, and which has three points in general position.

                  Instances

                    The order of a projective plane is one less than the number of lines through an arbitrary point. Equivalently, it is one less than the number of points on an arbitrary line.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For