Catalog.Sparsity.ShallowMinor

Verification

Definition

A graph \(H\) is a minor of \(G\), written \(H \preccurlyeq G\), if there is a minor model \(\varphi\) of \(H\) in \(G\): a map \(\varphi\) which assigns to every vertex \(v \in V(H)\) a connected subgraph \(\varphi(v) \subseteq G\) and to every edge \(e \in E(H)\) an edge \(\varphi(e) \in E(G)\) such that:

  1. if \(u, v \in V(H)\) with \(u \neq v\) then \(V(\varphi(v)) \cap V(\varphi(u)) = \emptyset\), and
  2. if \(e = uv \in E(H)\) then \(\varphi(e) = u'v' \in E(G)\) for vertices \(u' \in V(\varphi(u))\) and \(v' \in V(\varphi(v))\).

The set \(\varphi(v)\) is the branch set of \(v\).

The radius of a connected graph \(G\) is \(\operatorname{rad}(G) = \min_{u \in V(G)} \max_{v \in V(G)} \operatorname{dist}(u, v)\).

Let \(H\), \(G\) be graphs and let \(d \in \mathbb{N}\). The graph \(H\) is a depth-\(d\) minor of \(G\), written \(H \preccurlyeq_d G\), if there is a minor model \(\varphi\) of \(H\) in \(G\) such that the branch set \(\varphi(v)\) has radius at most \(d\) for all \(v \in V(H)\).

For a graph \(G\) and \(d \in \mathbb{N}\): \[\nabla_d(G) := \sup \left\{ \frac{|E(H)|}{|V(H)|} : H \preccurlyeq_d G \right\}, \qquad \omega_d(G) := \sup \left\{ t : K_t \preccurlyeq_d G \right\}.\] For a graph class \(\mathcal{C}\) and \(d \in \mathbb{N}\): \[\nabla_d(\mathcal{C}) := \sup_{G \in \mathcal{C}} \nabla_d(G), \qquad \omega_d(\mathcal{C}) := \sup_{G \in \mathcal{C}} \omega_d(G).\]

Review notes

The Lean contract encodes depth-\(d\) minors as a structure type faithful to the source definition.

ShallowMinorModel. The structure carries a branch-set map, a center for each branch set, and proofs of the three properties: branch-set disjointness, bounded-radius connectivity within each branch set, and edge witnessing. The radius condition uses walks (not graph distance) to avoid dependence on metric infrastructure. Branch-set membership of every walk vertex is required explicitly, ensuring the walk stays inside the branch set. This matches Definition 2.3 of the source.

A full (unbounded) minor model corresponds to depth \(d = \infty\); in our formalization, omitting the depth bound is achieved by choosing \(d\) large enough (e.g., \(|V(G)|\)). We do not define an unbounded minor type separately, since the downstream theorems only use depth-bounded minors.

Omissions. The source also defines \(\nabla_d(G)\) and \(\omega_d(G)\) as numeric suprema. These are not formalized here because the downstream definitions (nowhere dense, bounded expansion) only need the predicate “\(K_t\) is not a depth-\(d\) minor,” which is directly expressed as \(\lnot\)IsShallowMinor. This avoids the need for rational- or real-valued supremum infrastructure.

Catalog/Sparsity/ShallowMinor/Contract.lean (full)

1import Mathlib.Combinatorics.SimpleGraph.Walk.Basic
2import Mathlib.Combinatorics.SimpleGraph.Paths
3
4namespace Catalog.Sparsity.ShallowMinor
5
6/-- A depth-`d` minor model of `H` in `G`.
7
8For each vertex of `H` we choose a branch set in `G` together with a fixed
9center. Every vertex of the branch set is connected to the center by a path of
10length at most `d` that stays inside the branch set; distinct branch sets are
11disjoint; and every edge of `H` is witnessed by an edge of `G` between the
12corresponding branch sets. (Defs 1.10, 2.2-2.4) -/
13structure ShallowMinorModel {V W : Type} (H : SimpleGraph W) (G : SimpleGraph V)
14 (d : ℕ) where
15 branchSet : W → Set V
16 center : W → V
17 center_mem : ∀ v, center v ∈ branchSet v
18 branchDisjoint : ∀ u v, u ≠ v → Disjoint (branchSet u) (branchSet v)
19 branchRadius : ∀ v x, x ∈ branchSet v →
20 ∃ p : G.Walk (center v) x, p.IsPath ∧ p.length ≤ d ∧
21 ∀ w ∈ p.support, w ∈ branchSet v
22 branchEdge : ∀ u v, H.Adj u v →
23 ∃ x ∈ branchSet u, ∃ y ∈ branchSet v, G.Adj x y
24
25/-- `H` is a depth-`d` minor of `G`. -/
26def IsShallowMinor {V W : Type} (H : SimpleGraph W) (G : SimpleGraph V)
27 (d : ℕ) : Prop :=
28 Nonempty (ShallowMinorModel H G d)
29
30end Catalog.Sparsity.ShallowMinor
31