Documentation

LeanPool.MooreBound.DegreeDiameter.EdgeReduction

The edge-reduction construction #

This file formalizes the bipartite graph B(H) used in Lemma 4.1 of the draft. An edge between the two copies of the vertex set records either equality or adjacency in H.

Lean Pool port of wewantmoore commit d59bd80ea93fabb9faf769e790ab47692645e022. The port adds a namespace and adapts proofs to the current Mathlib APIs and repository style.

def MooreBound.DegreeDiameter.Linked {V : Type u} (H : SimpleGraph V) (x y : V) :

Equality or adjacency in a simple graph (the reflexive closure of adjacency).

Equations
Instances For
    theorem MooreBound.DegreeDiameter.linked_symm {V : Type u} {H : SimpleGraph V} {x y : V} :
    Linked H x y → Linked H y x

    The graph B(H) from the draft. Its two parts are the two summands of V ⊕ V.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def MooreBound.DegreeDiameter.bipartiteEdge {V : Type u} (H : SimpleGraph V) (x y : V) (hxy : Linked H x y) :

      The edge of B(H) represented in the draft by [x,y].

      Equations
      Instances For
        @[simp]
        theorem MooreBound.DegreeDiameter.bipartiteEdge_val {V : Type u} (H : SimpleGraph V) (x y : V) (hxy : Linked H x y) :
        ↑(bipartiteEdge H x y hxy) = s(Sum.inl x, Sum.inr y)

        B(H) raises the maximum-degree bound by exactly one.

        theorem MooreBound.DegreeDiameter.ncard_edgeSet_bipartiteExpansion_of_regular {V : Type u} [Finite V] (H : SimpleGraph V) (Delta : ℕ) (hregular : ∀ (x : V), (H.neighborSet x).ncard = Delta) :

        If every vertex of H has degree Delta, then the paper's graph B(H) has exactly |V(H)| * (Delta + 1) edges.

        theorem MooreBound.DegreeDiameter.exists_eq_bipartiteEdge {V : Type u} (H : SimpleGraph V) (e : ↑(bipartiteExpansion H).edgeSet) :
        ∃ (x : V) (y : V) (hxy : Linked H x y), e = bipartiteEdge H x y hxy

        Every edge of B(H) has a unique orientation from the left part to the right part.

        Two represented edges with the same left endpoint have line-graph distance at most one.

        Two represented edges with the same right endpoint have line-graph distance at most one.

        inductive MooreBound.DegreeDiameter.Route {V : Type u} (H : SimpleGraph V) :
        V → V → ℕ → Type u

        A route permits stationary steps as well as graph edges. It is indexed by its exact length; this is the formal counterpart of the padded sequences in the paper's proof of Lemma 4.1.

        Instances For
          def MooreBound.DegreeDiameter.Route.append {V : Type u} {H : SimpleGraph V} {x y z : V} {m n : ℕ} :
          Route H x y m → Route H y z n → Route H x z (n + m)

          Concatenate routes. The length index is written in this order so the defining equations reduce without arithmetic casts when recursing through the first route.

          Equations
          Instances For
            def MooreBound.DegreeDiameter.Route.padWalk {V : Type u} (H : SimpleGraph V) {x y : V} (p : H.Walk x y) (k : ℕ) (hp : p.length ≤ k) :
            Route H x y k

            Pad an ordinary graph walk by stationary steps to any prescribed larger length.

            Equations
            Instances For
              def MooreBound.DegreeDiameter.zigEndpoints {V : Type u} (H : SimpleGraph V) {x y : V} {n : ℕ} (p : Route H x y n) :
              ((a : V) → Linked H a x → ↑(bipartiteExpansion H).edgeSet) × ((b : V) → Linked H x b → ↑(bipartiteExpansion H).edgeSet)

              Compute both alternating edge endpoints by structural recursion on the route. The two functions record which coordinate is replaced first.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def MooreBound.DegreeDiameter.zigFirst {V : Type u} (H : SimpleGraph V) {x y : V} {n : ℕ} (p : Route H x y n) (a : V) (ha : Linked H a x) :

                Follow a route by first replacing the left coordinate of a represented bipartite edge.

                Equations
                Instances For
                  def MooreBound.DegreeDiameter.zigSecond {V : Type u} (H : SimpleGraph V) {x y : V} {n : ℕ} (p : Route H x y n) (b : V) (hb : Linked H x b) :

                  Follow a route by first replacing the right coordinate of a represented bipartite edge.

                  Equations
                  Instances For
                    theorem MooreBound.DegreeDiameter.zig_terminal {V : Type u} (H : SimpleGraph V) {x y : V} {n : ℕ} (p : Route H x y n) :
                    (∀ (a : V) (ha : Linked H a x), (Even n → ∃ (a' : V) (ha' : Linked H a' y), zigFirst H p a ha = bipartiteEdge H a' y ha') ∧ (Odd n → ∃ (b' : V) (hb' : Linked H y b'), zigFirst H p a ha = bipartiteEdge H y b' hb')) ∧ ∀ (b : V) (hb : Linked H x b), (Even n → ∃ (b' : V) (hb' : Linked H y b'), zigSecond H p b hb = bipartiteEdge H y b' hb') ∧ (Odd n → ∃ (a' : V) (ha' : Linked H a' y), zigSecond H p b hb = bipartiteEdge H a' y ha')
                    theorem MooreBound.DegreeDiameter.zigFirst_of_even {V : Type u} (H : SimpleGraph V) {x y : V} {n : ℕ} (p : Route H x y n) (a : V) (ha : Linked H a x) (hn : Even n) :
                    ∃ (a' : V) (ha' : Linked H a' y), zigFirst H p a ha = bipartiteEdge H a' y ha'
                    theorem MooreBound.DegreeDiameter.zigFirst_of_odd {V : Type u} (H : SimpleGraph V) {x y : V} {n : ℕ} (p : Route H x y n) (a : V) (ha : Linked H a x) (hn : Odd n) :
                    ∃ (b' : V) (hb' : Linked H y b'), zigFirst H p a ha = bipartiteEdge H y b' hb'
                    theorem MooreBound.DegreeDiameter.zigSecond_of_even {V : Type u} (H : SimpleGraph V) {x y : V} {n : ℕ} (p : Route H x y n) (b : V) (hb : Linked H x b) (hn : Even n) :
                    ∃ (b' : V) (hb' : Linked H y b'), zigSecond H p b hb = bipartiteEdge H y b' hb'
                    theorem MooreBound.DegreeDiameter.zigSecond_of_odd {V : Type u} (H : SimpleGraph V) {x y : V} {n : ℕ} (p : Route H x y n) (b : V) (hb : Linked H x b) (hn : Odd n) :
                    ∃ (a' : V) (ha' : Linked H a' y), zigSecond H p b hb = bipartiteEdge H a' y ha'
                    theorem MooreBound.DegreeDiameter.edist_zig_le {V : Type u} (H : SimpleGraph V) {x y : V} {n : ℕ} (p : Route H x y n) :
                    (∀ (a : V) (ha : Linked H a x), (bipartiteExpansion H).lineGraph.edist (bipartiteEdge H a x ha) (zigFirst H p a ha) ≤ ↑n) ∧ ∀ (b : V) (hb : Linked H x b), (bipartiteExpansion H).lineGraph.edist (bipartiteEdge H x b hb) (zigSecond H p b hb) ≤ ↑n

                    Both alternating coordinate routes cost no more than one line-graph step per route step.

                    theorem MooreBound.DegreeDiameter.edist_zigFirst_le {V : Type u} (H : SimpleGraph V) {x y : V} {n : ℕ} (p : Route H x y n) (a : V) (ha : Linked H a x) :
                    theorem MooreBound.DegreeDiameter.edist_zigSecond_le {V : Type u} (H : SimpleGraph V) {x y : V} {n : ℕ} (p : Route H x y n) (b : V) (hb : Linked H x b) :
                    theorem MooreBound.DegreeDiameter.nonempty_route_of_ediam_le {V : Type u} (H : SimpleGraph V) (k : ℕ) (hdiam : H.ediam ≤ ↑k) (x y : V) :
                    Nonempty (Route H x y k)

                    A diameter bound in H supplies an exact-length padded route between every two vertices.

                    Pointwise distance form of Lemma 4.1.

                    theorem MooreBound.DegreeDiameter.lemma_4_1_le {V : Type u} (H : SimpleGraph V) (k : ℕ) (hdiam : H.ediam ≤ ↑k) :

                    Lemma 4.1 in bounded-diameter form. This formulation also handles empty vertex and edge types without adding nonemptiness hypotheses.

                    Lemma 4.1 exactly as an inequality of extended diameters.