While this submission is a draft, it cannot be used by other submissions.

Modular decompositions

Lax183560.ModularDecomposition · concepts/Lax183560/ModularDecomposition.lean · lax-183560

definition

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural Language Statement

    Definition

    A modular decomposition recursively partitions a graph into nonempty modules. A module is a vertex set whose vertices have the same neighbors outside the set. Between any two parts, either all possible edges are present or none are; a quotient graph records which parts are adjacent. Each part is decomposed recursively, with graphs on at most one vertex as the base case.

    A decomposition has width at most kk if every substitution uses at most kk parts, except for disjoint unions and complete joins, whose numbers of parts are unrestricted. The quotient graphs need not be prime.

    Concept map
    1 concept; 1 descendant hidden
    100%
    DefinitionThis conceptRelated conceptA → B: B builds on A

    Lean source view on GitHub

    1import Mathlib.Combinatorics.SimpleGraph.Maps
    2
    3/-!
    4---
    5title: Modular decompositions
    6type: definition
    7---
    8A modular decomposition recursively partitions a graph into nonempty modules.
    9A module is a vertex set whose vertices have the same neighbors outside the
    10set. Between any two parts, either all possible edges are present or none
    11are; a quotient graph records which parts are adjacent. Each part is
    12decomposed recursively, with graphs on at most one vertex as the base case.
    13
    14A decomposition has width at most kk if every substitution uses at most
    15kk parts, except for disjoint unions and complete joins, whose numbers of
    16parts are unrestricted. The quotient graphs need not be prime.
    17-/
    18
    19namespace Lax183560.ModularDecomposition
    20
    21/-- A recursive modular decomposition whose nontrivial substitutions use at
    22most `k` parts. -/
    23inductive ModularDecomposition :
    24 (V : Type) → SimpleGraph V → ℕ → Prop where
    25 | atom {V : Type} [Fintype V] (G : SimpleGraph V) (k : ℕ)
    26 (h : Fintype.card V ≤ 1) : ModularDecomposition V G k
    27 | substitute {V : Type} [Fintype V] [DecidableEq V]
    28 (G : SimpleGraph V) (k n : ℕ)
    29 (part : V → Fin n) (Q : SimpleGraph (Fin n))
    30 (nontrivial : 2 ≤ n)
    31 (surjective : Function.Surjective part)
    32 (cross : ∀ u v : V, part u ≠ part v →
    33 (G.Adj u v ↔ Q.Adj (part u) (part v)))
    34 (children : ∀ i : Fin n,
    35 ModularDecomposition {v : V // part v = i}
    36 (G.induce {v : V | part v = i}) k)
    37 (arity : Q = ⊥ ∨ Q = ⊤ ∨ n ≤ k) :
    38 ModularDecomposition V G k
    39
    40
    41end Lax183560.ModularDecomposition
    42

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…