Independent blow-ups and projection
Lax263307.IndependentBlowUp · concepts/Lax263307/IndependentBlowUp.lean · lax-263307
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
For a graph and nonnegative integer multiplicities , replace vertex by an independent set of copies. Copies of distinct vertices are adjacent exactly when their original vertices are adjacent. Zero multiplicities omit vertices. Lift a vertex set by taking all of its copies; project a set of copies by taking the vertices represented by at least one selected copy.
Concept map
Lean source view on GitHub
| 1 | import Lax263307.WeightedIndependentSet |
| 2 | import Mathlib.Combinatorics.SimpleGraph.Maps |
| 3 | import Mathlib.Data.Finset.Sigma |
| 4 | import Mathlib.Data.Fintype.BigOperators |
| 5 | |
| 6 | /-! |
| 7 | --- |
| 8 | title: Independent blow-ups and projection |
| 9 | type: definition |
| 10 | --- |
| 11 | For a graph and nonnegative integer multiplicities , replace vertex |
| 12 | by an independent set of copies. Copies of distinct vertices are |
| 13 | adjacent exactly when their original vertices are adjacent. Zero multiplicities |
| 14 | omit vertices. Lift a vertex set by taking all of its copies; project a set |
| 15 | of copies by taking the vertices represented by at least one selected copy. |
| 16 | |
| 17 | # Formalization notes |
| 18 | |
| 19 | A copy is a pair with . This dependent pair type has |
| 20 | exactly elements and admits the usual finite-type instances. |
| 21 | The blow-up graph is the comap of along the projection to . |
| 22 | The cardinality approximation predicate compares the returned independent |
| 23 | set with every independent set in this finite graph. |
| 24 | -/ |
| 25 | |
| 26 | namespace Lax263307.IndependentBlowUp |
| 27 | |
| 28 | /-- The vertices of an independent blow-up, including possibly empty fibres. -/ |
| 29 | abbrev Vertex {n : ℕ} (copies : Fin n → ℕ) := (v : Fin n) × Fin (copies v) |
| 30 | |
| 31 | /-- Copies are adjacent precisely when their original vertices are adjacent. -/ |
| 32 | def graph {n : ℕ} (G : SimpleGraph (Fin n)) (copies : Fin n → ℕ) : |
| 33 | SimpleGraph (Vertex copies) := G.comap fun v => v.1 |
| 34 | |
| 35 | /-- All copies of a given original vertex set. -/ |
| 36 | def lift {n : ℕ} (copies : Fin n → ℕ) (I : Finset (Fin n)) : Finset (Vertex copies) := |
| 37 | I.sigma fun _ => Finset.univ |
| 38 | |
| 39 | /-- Vertices represented by at least one selected copy. -/ |
| 40 | def project {n : ℕ} {copies : Fin n → ℕ} (K : Finset (Vertex copies)) : Finset (Fin n) := |
| 41 | K.image fun v => v.1 |
| 42 | |
| 43 | /-- The usual multiplicative cardinality guarantee on the blow-up graph. -/ |
| 44 | def IsCardinalityApproximation {n : ℕ} (G : SimpleGraph (Fin n)) |
| 45 | (copies : Fin n → ℕ) (δ : ℚ) (K : Finset (Vertex copies)) : Prop := |
| 46 | (graph G copies).IsIndepSet (K : Set (Vertex copies)) ∧ |
| 47 | ∀ J : Finset (Vertex copies), (graph G copies).IsIndepSet (J : Set (Vertex copies)) → |
| 48 | (1 - δ) * (J.card : ℚ) ≤ K.card |
| 49 | |
| 50 | end Lax263307.IndependentBlowUp |
| 51 |
Formalization notes
A copy is a pair with . This dependent pair type has exactly elements and admits the usual finite-type instances. The blow-up graph is the comap of along the projection to . The cardinality approximation predicate compares the returned independent set with every independent set in this finite graph.
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments