Documentation

LeanPool.MooreBound.DegreeDiameter.Framework

Generic finite-graph framework for the degree--diameter preprint #

This file contains only generic graph definitions and lemmas. In particular, it does not assume the flag-graph construction or any asymptotic input.

We use SimpleGraph.ediam, not SimpleGraph.diam: the latter is defined to be zero when the extended diameter is infinite, and would therefore allow disconnected graphs accidentally.

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

noncomputable def MooreBound.DegreeDiameter.MaxDegreeLE {V : Type u_1} (G : SimpleGraph V) (d : ℕ) :

Every vertex of G has degree at most d, expressed without choosing a decidable adjacency relation. For a finite vertex type, Set.ncard (G.neighborSet v) is the ordinary vertex degree.

Equations
Instances For

    A coarse breadth-first bound #

    One legal breadth-first move: stay at the current vertex, or cross one edge.

    Equations
    Instances For

      A uniform code space with d + 1 choices at each of n stages.

      Equations
      Instances For

        Exact-length breadth-first routes. Unlike graph walks, these permit stationary moves.

        Equations
        Instances For
          theorem MooreBound.DegreeDiameter.exists_bfsRouteCode_endpoint_of_walk {V : Type u} {G : SimpleGraph V} {x y : V} (p : G.Walk x y) {n : ℕ} (hp : p.length ≤ n) :
          ∃ (c : BFSRouteCode G x n), BFSRouteCode.endpoint G c = y

          A graph walk of length at most n can be padded by stationary moves to an exact-length breadth-first route code with the same endpoint.

          noncomputable def MooreBound.DegreeDiameter.closedNeighborEmbedding {V : Type u} [Finite V] {G : SimpleGraph V} {d : ℕ} (hdegree : MaxDegreeLE G d) (x : V) :

          Each closed neighborhood embeds in the uniform alphabet of size d + 1.

          Equations
          Instances For
            noncomputable def MooreBound.DegreeDiameter.encodeBFSRoute {V : Type u} [Finite V] {G : SimpleGraph V} {d : ℕ} (hdegree : MaxDegreeLE G d) (n : ℕ) (x : V) :
            BFSRouteCode G x n → BFSCode d n

            Encode a breadth-first route into a fixed-length word over Fin (d + 1).

            Equations
            Instances For
              theorem MooreBound.DegreeDiameter.encodeBFSRoute_injective {V : Type u} [Finite V] {G : SimpleGraph V} {d : ℕ} (hdegree : MaxDegreeLE G d) (n : ℕ) (x : V) :
              noncomputable def MooreBound.DegreeDiameter.bfsRouteEmbedding {V : Type u} [Finite V] {G : SimpleGraph V} {d : ℕ} (hdegree : MaxDegreeLE G d) (n : ℕ) (x : V) :

              Embed length-n routes into the finite set of degree-bounded BFS codes.

              Equations
              Instances For
                theorem MooreBound.DegreeDiameter.natCard_le_add_one_pow_of_ediam_le {V : Type u} [Finite V] [Nonempty V] {G : SimpleGraph V} {d k : ℕ} (hdegree : MaxDegreeLE G d) (hdiam : G.ediam ≤ ↑k) :
                Nat.card V ≤ (d + 1) ^ k

                Coarse breadth-first bound. Its leading term is still d^k, so it is sufficient for the upper asymptotic in Theorem 1.1.

                theorem MooreBound.DegreeDiameter.natCard_le_add_one_pow_of_ediam_le' {V : Type u} [Finite V] {G : SimpleGraph V} {d k : ℕ} (hdegree : MaxDegreeLE G d) (hdiam : G.ediam ≤ ↑k) :
                Nat.card V ≤ (d + 1) ^ k

                A coarse degree bound for line graphs #

                noncomputable def MooreBound.DegreeDiameter.lineGraphSharedVertex {V : Type u} {G : SimpleGraph V} (e : ↑G.edgeSet) (f : ↑(G.lineGraph.neighborSet e)) :
                V

                Choose the common endpoint of two adjacent edges of the original graph.

                Equations
                Instances For
                  noncomputable def MooreBound.DegreeDiameter.lineGraphNeighborCode {V : Type u} {G : SimpleGraph V} (e : ↑G.edgeSet) :
                  ↑(G.lineGraph.neighborSet e) → (v : ↥↑e) × ↑(G.neighborSet ↑v)

                  Encode an edge neighboring e in the line graph by a shared endpoint of e and the other endpoint of the neighboring edge.

                  Equations
                  Instances For
                    def MooreBound.DegreeDiameter.edgeOfLineGraphNeighborCode {V : Type u} {G : SimpleGraph V} {e : ↑G.edgeSet} (c : (v : ↥↑e) × ↑(G.neighborSet ↑v)) :
                    ↑G.edgeSet

                    Recover the encoded neighboring edge.

                    Equations
                    Instances For

                      A coarse line-graph maximum-degree bound. The sharper standard estimate is 2 * (d - 1); 2 * d is enough to establish finite boundedness of the edge extremum.

                      A finite simple graph of order n, maximum degree at most d, and diameter at most k.

                      The quantified vertex type is kept native instead of transporting every construction to Fin n. Finite V makes Nat.card V and the set cardinalities mathematically meaningful.

                      Equations
                      Instances For

                        The defining set for nKD is bounded, unconditionally.

                        noncomputable def MooreBound.DegreeDiameter.nKD (k d : ℕ) :

                        The degree--diameter extremal order. The specification lemmas below require (and later the Moore bound supplies) boundedness of the defining set.

                        Equations
                        Instances For
                          noncomputable def MooreBound.DegreeDiameter.EdgeAdmissible (ell d m : ℕ) :

                          A finite simple graph with m edges, maximum degree at most d, and line-graph diameter at most ell.

                          Equations
                          Instances For
                            theorem MooreBound.DegreeDiameter.edgeAdmissible_le_coarseBound {ell d m : ℕ} (hm : EdgeAdmissible ell d m) :
                            m ≤ (2 * d + 1) ^ ell

                            The defining edge-count set is bounded, unconditionally.

                            noncomputable def MooreBound.DegreeDiameter.h (ell d : ℕ) :

                            The paper defines h_ell(d) - 1 as the maximum admissible edge count, so we define h to be one plus that maximum.

                            Equations
                            Instances For

                              The exact Moore expression.

                              Equations
                              Instances For
                                theorem MooreBound.DegreeDiameter.maxDegreeLE_mono {V : Type u_1} {G : SimpleGraph V} {d d' : ℕ} (hdd' : d ≤ d') (hG : MaxDegreeLE G d) :
                                theorem MooreBound.DegreeDiameter.edgeAdmissible_mono_degree {ell d d' m : ℕ} (hdd' : d ≤ d') (hm : EdgeAdmissible ell d m) :
                                theorem MooreBound.DegreeDiameter.edgeAdmissible_mono_diameter {ell ell' d m : ℕ} (hell : ell ≤ ell') (hm : EdgeAdmissible ell d m) :

                                The admissible-order set is always nonempty; the one-vertex edgeless graph is a witness.

                                The admissible-edge-count set is always nonempty; an edgeless graph is a witness.

                                Any admissible order is at most the extremal value, once boundedness has been established.

                                Under boundedness, nKD is itself attained by a finite simple graph.

                                Conditional maximum specification for nKD.

                                theorem MooreBound.DegreeDiameter.le_nKD {k d n : ℕ} (hn : OrderAdmissible k d n) :
                                n ≤ nKD k d

                                Unconditional extremal specification, using the coarse breadth-first bound above.

                                theorem MooreBound.DegreeDiameter.le_h_sub_one_of_bddAbove {ell d m : ℕ} (hbdd : BddAbove {m : ℕ | EdgeAdmissible ell d m}) (hm : EdgeAdmissible ell d m) :
                                m ≤ h ell d - 1

                                Any admissible edge count is at most h ell d - 1, once boundedness has been established.

                                Under boundedness, h ell d - 1 is itself attained.

                                Conditional maximum specification for the paper's edge extremum h ell d - 1.

                                theorem MooreBound.DegreeDiameter.le_h_sub_one {ell d m : ℕ} (hm : EdgeAdmissible ell d m) :
                                m ≤ h ell d - 1

                                Unconditional edge-extremum specifications, using the coarse line-graph bound above.

                                theorem MooreBound.DegreeDiameter.h_sub_one_le_coarseBound (ell d : ℕ) :
                                h ell d - 1 ≤ (2 * d + 1) ^ ell