Documentation

LeanPool.ErdosGinzburgZiv.EGZ.ConvexFlag.Basic

Convex flags #

This file formalizes Definitions 3.1, 3.4, 3.5, and 3.6 of the paper. Nodes form a finite nonempty upper semilattice. Fibre coordinates are real, and each fibre carries its own affine lattice. Transitions preserve both the polytope and the chosen lattice.

The base of a point is retained as data. This is intentional: points with the same coordinate at an upper node but different domains are distinct (the 0 versus 0' phenomenon in the examples following Proposition 3.11).

structure EGZ.ConvexFlag :
Type (u + 1)

A convex flag in affine-lattice coordinates.

The transition attached to x ≤ y goes from the fibre at x to the fibre at y; it is the paper's map ψ_{y,x}.

Instances For
    structure EGZ.ConvexFlag.Point (F : ConvexFlag) :
    Type u_1

    The points of a flag are dependent pairs of a base and a point of that base polytope.

    Instances For

      The upper-set domain of a flag point.

      Equations
      Instances For
        @[simp]
        theorem EGZ.ConvexFlag.Point.mem_domain {F : ConvexFlag} (q : F.Point) (x : F.Node) :
        def EGZ.ConvexFlag.Point.coord {F : ConvexFlag} (q : F.Point) {x : F.Node} (h : q.base ≤ x) :

        Coordinate of a point at a node in its domain.

        Equations
        Instances For
          theorem EGZ.ConvexFlag.Point.coord_mem {F : ConvexFlag} (q : F.Point) {x : F.Node} (h : q.base ≤ x) :
          @[simp]

          A point is integral if its coordinate at its base is in that fibre's distinguished affine lattice.

          Equations
          Instances For
            theorem EGZ.ConvexFlag.Point.isIntegral_coord {F : ConvexFlag} {q : F.Point} (hq : q.IsIntegral) {x : F.Node} (h : q.base ≤ x) :
            q.coord h ∈ F.lattice x

            q is a projection of q' when q' has the larger domain and they agree on the domain of q. By the cocycle law it is enough to compare at q.base.

            Equations
            Instances For
              theorem EGZ.ConvexFlag.Point.coord_eq_of_projection {F : ConvexFlag} {q q' : F.Point} (hbase : q'.base ≤ q.base) (hval : q.val = q'.coord hbase) {x : F.Node} (hx : q.base ≤ x) :
              q.coord hx = q'.coord ⋯

              A "linear function" in the paper: an affine functional based at one node, with constant terms allowed.

              Instances For

                The lower-set domain of a flag linear function.

                Equations
                Instances For

                  A function can be evaluated at a point exactly when their domains meet.

                  Equations
                  Instances For

                    Evaluation, using the function's base.

                    Equations
                    Instances For
                      structure EGZ.ConvexFlag.ConvexCombination {F : ConvexFlag} {I : Type u_1} [Fintype I] (points : I → F.Point) (weight : I → ℝ) (result : F.Point) :

                      Data witnessing one finite convex combination of flag points. Only strictly positive coefficients constrain the result's base; this is crucial in Proposition 7.1 and avoids zero coefficients shrinking the domain.

                      • nonnegative (i : I) : 0 ≤ weight i
                      • sum_eq_one : ∑ i : I, weight i = 1
                      • base_isLUB : IsLeast {x : F.Node | ∀ (i : I), 0 < weight i → (points i).base ≤ x} result.base
                      • val_eq : result.val = ∑ i : { i : I // 0 < weight i }, weight ↑i • (points ↑i).coord ⋯
                      Instances For
                        theorem EGZ.ConvexFlag.ConvexCombination.sum_active {F : ConvexFlag} {I : Type u_1} [Fintype I] {points : I → F.Point} {weight : I → ℝ} {result : F.Point} (c : ConvexCombination points weight result) :
                        ∑ i : { i : I // 0 < weight i }, weight ↑i = 1

                        The weights on the strictly positive support still sum to one.

                        theorem EGZ.ConvexFlag.ConvexCombination.coord_eq {F : ConvexFlag} {I : Type u_1} [Fintype I] {points : I → F.Point} {weight : I → ℝ} {result : F.Point} (c : ConvexCombination points weight result) {y : F.Node} (hy : result.base ≤ y) :
                        result.coord hy = ∑ i : { i : I // 0 < weight i }, weight ↑i • (points ↑i).coord ⋯

                        Equation convc at an arbitrary upper node. This is the API form used as equation comb2 in Proposition 7.1.

                        theorem EGZ.ConvexFlag.exists_convexCombination {F : ConvexFlag} {I : Type u_1} [Fintype I] (points : I → F.Point) (weight : I → ℝ) (hnonneg : ∀ (i : I), 0 ≤ weight i) (hsum : ∑ i : I, weight i = 1) :
                        ∃ (result : F.Point), ConvexCombination points weight result

                        Convex combinations exist. This theorem is the implementation-level counterpart of equation convc: the base is the supremum of the positive support and convexity of the target fibre supplies membership.

                        The flag-convex hull from Definition 3.5.

                        Equations
                        Instances For

                          A designated set of proper points: it is closed under flag convex combinations.

                          Instances For