Component Counts and Subgraph Counts #
This module develops the component-count ↔ subgraph-count machinery needed
for Kelly's 1942 multiset-recovery induction in the reconstruction of
disconnected graphs. The centerpiece is a decomposition identity: for any
connected graph F, the number of induced copies of F in G equals the sum
of induced copies of F in each connected component of G.
Main definitions #
SimpleGraph.componentCount— for a (connected) graphFand a graphG, the number of connected components ofGwhose induced subgraph is isomorphic toF.
Main results #
SimpleGraph.componentCount_eq_of_iso— component counts are iso-invariants.SimpleGraph.ConnectedComponent.card_supp_lt_of_not_connected— in a finite disconnected graph, every connected component has fewer vertices than the host.SimpleGraph.subgraphCount_eq_sum_over_components— ifFis connected,subgraphCount F G = ∑ c, subgraphCount F (G.induce c.supp). This is the structural identity that lets the reconstruction induction turn subgraph counts (given by Kelly's Lemma) into component counts.SimpleGraph.subgraphCount_eq_componentCount_add_larger— the triangular accounting identity: copies of a connectedFinGare the components isomorphic toF, plus copies lying inside strictly larger components.SimpleGraph.componentIsoClassEquivOfComponentCountEq— equal component counts for a fixed connected-component type give an equivalence between the corresponding component fibers.SimpleGraph.componentEquivOfComponentCountEq— equal component counts for every component type assemble into a global component bijection preserving component isomorphism classes.SimpleGraph.largerComponentEquivOfComponentCountEq— equal component counts for every component type above a size threshold assemble into the restricted larger-component matching used by the triangular induction.SimpleGraph.SameDeck.componentCount_eq_components_of_not_connected— the descending triangular induction recovering every represented component isomorphism class in two same-deck disconnected graphs.
References #
- Kelly, P. J. (1942). "On isometric transformations".
The number of connected components of G whose induced subgraph
G.induce c.supp is isomorphic to the reference graph F.
Equations
- F.componentCount G = Fintype.card { c : G.ConnectedComponent // Nonempty (SimpleGraph.induce c.supp G ≃g F) }
Instances For
Component size in disconnected graphs #
If one connected component contains every vertex, then the graph is connected.
In a disconnected finite graph, every connected component is a proper vertex subset. In particular, component graphs are small enough for Kelly's Lemma whenever the host graph is disconnected.
Isomorphism invariance of componentCount #
Component counts are invariant under graph isomorphism.
Small host and equal-size host counts #
If the host graph has fewer vertices than F, then it has no induced
copies of F.
If the host graph and F have the same number of vertices, then the
induced-copy count is all-or-nothing: it is 1 if the whole host is
isomorphic to F, and 0 otherwise.
Component decomposition of subgraphCount #
For F connected and G arbitrary, every copy of F in G sits inside a
single connected component of G. We prove this and then show
subgraphCount F G = ∑ c, subgraphCount F (G.induce c.supp).
Component decomposition for subgraph counts. If F is connected, the
number of induced copies of F in G equals the sum, over connected
components c of G, of the number of induced copies of F in the
component-induced subgraph G.induce c.supp.
Triangular component-count accounting #
Component counts as a sum of indicator functions over connected components. This is the cardinality form used when separating equal-size components from larger components.
On components with the same number of vertices as F, the induced-copy
sum is exactly the component count for F.
Triangular component-count accounting. If F is connected, then every
induced copy of F in G is either an entire connected component isomorphic
to F, or it lies inside a strictly larger connected component. This identity
is the bookkeeping step behind Kelly's disconnected-graph reconstruction
induction.
If the strictly larger components of G and H can be paired by
isomorphism, then they make the same contribution to the triangular
component-count identity for F.
This is the bookkeeping form of the induction hypothesis in Kelly's
component-multiset recovery: once all components larger than F have been
matched by isomorphism, the larger-component error term is known to agree.
The cancellative step for the disconnected-graph induction. If the
strictly-larger-component contribution for a connected graph F is already
known to agree for two same-deck graphs, then the number of connected
components isomorphic to F agrees as well.
The local triangular induction step for component-multiset recovery.
For a connected graph F with fewer vertices than the host graphs, suppose
that all strictly larger components of G and H have already been paired by
isomorphism. Then the number of connected components isomorphic to F agrees
between G and H.
The next few private definitions build a common quotient of the connected
components of G and H by component-graph isomorphism. The public theorem
below then uses fiberwise cardinal equality over this quotient to assemble a
global component matching.
Equal component counts for every component isomorphism class assemble into
a global bijection between the connected components of G and H.
Equations
- SimpleGraph.componentEquivOfComponentCountEq hGcount hHcount = Equiv.ofFiberEquiv (SimpleGraph.componentIsoClassFiberEquiv✝ hGcount hHcount)
Instances For
The component bijection obtained from per-class component-count equality preserves the component isomorphism class.
Equal component counts for a fixed component type F produce a bijection
between the components of G and H whose induced component graphs are
isomorphic to F.
This packages the cardinal equality supplied by the triangular recovery step into the actual matching object needed for the later global assembly.
Equations
Instances For
Matching components above a size threshold #
The local triangular recovery step only needs an isomorphism-preserving
matching between the components strictly larger than the current connected
graph F. The following restricted version of the component-class matching
API packages exactly that induction hypothesis.
Equal component counts for every component above a size threshold assemble into a bijection between the larger-component subtypes.
Equations
- SimpleGraph.largerComponentEquivOfComponentCountEq hGcount hHcount = Equiv.ofFiberEquiv (SimpleGraph.largerComponentIsoClassFiberEquiv✝ hGcount hHcount)
Instances For
The larger-component bijection obtained from component-count equality preserves component isomorphism classes.
Descending recovery of represented component classes #
In two same-deck disconnected graphs, every component isomorphism class represented in either graph has the same multiplicity in both graphs.
This is the triangular induction in Kelly's disconnected-graph reconstruction
argument. The induction descends by component size: for a component type F,
Kelly's Lemma recovers the induced-subgraph count of F, and all strictly
larger component contributions have already been matched by the induction
hypothesis.