Combinatorial invariance #
The first module of Part II. It introduces the abstract record of a matched cellulation, the
notion of a geometric realization of that record, and proves that everything a realization
inherits from the record is the same for two realizations of one record —
lem:combinatorial-invariance.
Per the blueprint's citation index this lemma has no internal prerequisites: the whole point of the design is that the combinatorial content of the cellulation machinery is separated from all of the geometry, so this can be built while the Jordan curve theorem is still unproved.
What is defined here, and how faithful it is #
CellStructure is the abstract record of def:matched-cellulation: the finite cell sets in
each dimension, the endpoint maps, the outer subcomplex, the boundary walks, and the subcell
relation. Cells of all three dimensions are names drawn from one type γ; the 0- and 1-cells
are the vertices and the edges of an abstract multigraph skel : Graph γ γ, the 2-cells are a
set faces, and the three collections are disjoint. What is deliberately not in the record:
the parent maps (they belong to a refinement — a pair of stages — not to a stage), and any
compatibility between sub and the realizations (that is assertion (ix) of
lem:cellulation-invariants, and the blueprint is explicit that ≼_abs "enters as a raw
datum"). No reflexivity or transitivity of sub is assumed; the one lemma that needs
transitivity takes it as a hypothesis.
CellStructure.Realization is one of the two geometric realizations. The repository's plane
graphs have V(G) : Set Plane — vertices are points — so the drawn skeleton cannot literally
be the abstract graph. It is instead the pushforward S.skel.map pos along the positions of
the 0-cells, with pos injective on V(S.skel). This is the representation choice of the
module, and the alternative — carrying an abstract graph isomorphism as data — was rejected
because with the pushforward "the two skeleta realize the same abstract graph" is a
definitional identity rather than a theorem, which is exactly what the blueprint's proof of
part (a) asserts.
The price of the choice is paid here, once: Graph.isTwoConnected_map_iff and
Graph.connected_map_iff transport connectivity along an injective relabelling of the
vertices, so that 2-connectivity of the drawn graph — which is what
def:admissible-graph requires — transfers between the realizations. Those two, and the walk
and vertex-deletion lemmas they rest on, are general facts about Graph.map in the root
Graph namespace and belong in Schoenflies/Graph/ if a second consumer appears.
SkeletonHomeo is g : |Γ| → |Γ'| of def:matched-pair, as a set-level homeomorphism with
its inverse supplied as data (so that no finiteness hypothesis is needed to invert it).
Clause 3 of def:matched-pair is recorded in the weaker form "g carries each drawn edge onto
the corresponding drawn edge", which is all that is used and which the full clause implies.
The three parts of the lemma #
Only part (b) has topological content. Parts (a) and (c) are, under this representation, either definitional identities or one-line consequences of the fact that the index sets involved are fields of the single structure both realizations realize; that is precisely the blueprint's argument ("all the data in (c) belong to the common abstract cell structure"), and the statements below are shaped so that a consumer gets the geometric conclusion on both sides from one combinatorial hypothesis.
Blueprint #
Schoenflies.CellStructure— the abstract record ofdef:matched-cellulation.Schoenflies.CellStructure.Realization— one of its two geometric realizations.Schoenflies.CellStructure.Realization.nonboundary— the open nonboundary part|Γ| \ Cofdef:admissible-graph.Schoenflies.CellStructure.Realization.star— the closed starSt(σ) = ⋃_{σ ≼ τ} closure τ.Schoenflies.CellStructure.SkeletonHomeo— the skeleton homeomorphism ofdef:matched-pair.Schoenflies.CellStructure.combinatorial_invariance—lem:combinatorial-invariance, assembled from:- (a)
Realization.graph_eq_map,Realization.edgeSet_graph_congr,Realization.isTwoConnected_congr,SkeletonHomeo.image_outerSet; - (b)
SkeletonHomeo.image_nonboundary,SkeletonHomeo.isConnected_nonboundary_iff; - (c)
Realization.star_mono,Realization.star_transfer,Realization.star_subset_of_sub,outerEdge_face_corresponds.
- (a)
Graph.isTwoConnected_map_iff,Graph.connected_map_iff— connectivity is invariant under an injective relabelling of the vertices; the transport that the pushforward representation of a realization needs.
An injective relabelling can be undone: Function.invFunOn inverts it on the vertex set.
The point set of a subgraph #
The abstract record of a matched cellulation (def:matched-cellulation), stripped to the data every consumer of combinatorial invariance reads.
The cells of all three dimensions are names drawn from one type γ: the 0-cells are the
vertices of the skeleton, the 1-cells are its edges, and the 2-cells are faces. The three
collections are required to be disjoint, so "the dimension of a cell" is well defined without
being a field.
sub is the abstract subcell relation ≼_abs. The blueprint is explicit that it "enters as a
raw datum" and imposes no compatibility with the realizations: that compatibility is assertion
(ix) of lem:cellulation-invariants, proved elsewhere and for generated structures only. No
reflexivity or transitivity is assumed here either; the two lemmas below that need
transitivity take it as a hypothesis.
- skel : Graph γ γ
The abstract 1-skeleton: its vertices are the 0-cells, its edges the 1-cells.
- faces : Set γ
The 2-cells.
- outerGraph : Graph γ γ
The distinguished outer cycle, as a subgraph of the skeleton.
The outer cycle is part of the skeleton.
- boundary : γ → List γ
The cyclic boundary walk of each 2-cell, as a list of edge names. Raw datum: the blueprint lists it in the record of a matched cellulation and updates it explicitly under the two constructors.
- sub : γ → γ → Prop
The abstract subcell relation
≼_abs. Finitely many 0-cells.
Finitely many 1-cells.
Finitely many 2-cells.
A name is not both a 0-cell and a 1-cell.
A name is not both a 2-cell and a 0-cell.
A name is not both a 2-cell and a 1-cell.
Instances For
The cells of the distinguished outer cycle: its vertices and its edges.
Equations
- S.outerCells = S.outerGraph.vertexSet ∪ S.outerGraph.edgeSet
Instances For
The supercells of a cell: the index set of its closed star.
Instances For
A cell is incident with the outer cycle when some outer cell is a subcell of it. This is the middle, purely combinatorial condition of lem:outer-incidence.
Equations
- S.MeetsOuter τ = ∃ κ ∈ S.outerCells, S.sub κ τ
Instances For
Realizations #
A geometric realization of the abstract structure: a position for each 0-cell, a parametrization for each 1-cell, and a point set for every open cell.
The drawn graph is S.skel.map pos — literally the pushforward of the one abstract
skeleton. That is what makes "two realizations of the same abstract graph" a matter of
definition rather than of a transported isomorphism.
Nothing is required of cell on a 2-cell. What it would have to satisfy — that the open
2-cell is the bounded complementary region of the Jordan curve of its boundary walk — is
assertion (vii) of lem:cellulation-invariants, which is not available at this point in the
development and which combinatorial invariance does not use.
- pos : γ → Plane
Where each 0-cell sits.
How each 1-cell runs.
Distinct 0-cells sit at distinct points.
The positions and parametrizations draw the skeleton in the plane.
The point set of each open cell.
A 0-cell is realized by its point.
- cell_edge ⦃e x y : γ⦄ : S.skel.IsLink e x y → self.cell e = Graph.edgeArc self.drawing e \ {self.pos x, self.pos y}
A 1-cell is realized by its open arc: the drawn arc minus its two endpoints.
Instances For
The drawn skeleton: the pushforward of the abstract skeleton along the positions.
Instances For
The realized 1-skeleton |Γ|.
Equations
- R.skeletonSet = R.graph.pointSet R.drawing
Instances For
The realized outer cycle: C in the source realization, S in the target one.
Instances For
The open nonboundary part |Γ| \ C of def:admissible-graph.
Equations
- R.nonboundary = R.skeletonSet \ R.outerSet
Instances For
The closed star of a cell: the union of the closures of its supercells. The index set is abstract; only the summands are geometric.
Equations
- R.star σ = ⋃ τ ∈ S.supercells σ, closure (R.cell τ)
Instances For
An open 0-cell or 1-cell is part of the realized skeleton: a 0-cell is realized by a drawn vertex, a 1-cell by part of a drawn edge.
Hoisted here because Schoenflies/LimitMap.lean and Schoenflies/FiniteTransfer.lean each
proved it independently and the duplicate gate caught the collision — two alpha-equivalent
Props pass Lean's import checker under proof irrelevance, so a clean build would not have.
The skeleton homeomorphism #
The skeleton homeomorphism g : |Γ| → |Γ'| of def:matched-pair, between two realizations
of one abstract cell structure.
Clause 3 of def:matched-pair — "on each corresponding pair of edges, g restricts to a fixed
chosen homeomorphism between them, matching endpoints" — is recorded here in the weaker form
edgeArc_image, which says only that g carries each drawn edge onto the corresponding drawn
edge. That is all combinatorial invariance uses, and it is implied by the stronger clause.
Clause 2 of def:matched-pair, g = u on C, is not recorded: the boundary homeomorphism
u is not part of a cell structure. A consumer that needs the identification carries it
alongside; nothing here depends on it.
The inverse is supplied as data rather than produced from compactness, so that no finiteness
hypothesis is needed to speak of a homeomorphism; a producer holding u⁻¹ has it anyway.
The map.
Its inverse.
- continuousOn_toFun : ContinuousOn self.toFun R₁.skeletonSet
The map is continuous on the skeleton.
- continuousOn_invFun : ContinuousOn self.invFun R₂.skeletonSet
The inverse is continuous on the other skeleton.
- leftInvOn : Set.LeftInvOn self.invFun self.toFun R₁.skeletonSet
The inverse undoes the map.
- rightInvOn : Set.RightInvOn self.invFun self.toFun R₂.skeletonSet
The map undoes the inverse.
Corresponding 0-cells correspond.
- edgeArc_image ⦃e : γ⦄ : e ∈ S.skel.edgeSet → self.toFun '' Graph.edgeArc R₁.drawing e = Graph.edgeArc R₂.drawing e
Corresponding 1-cells correspond.
Instances For
g carries the realization of any subcomplex of the skeleton onto the realization of the
same subcomplex on the other side. Used for the whole skeleton and for the outer cycle.
The outer cycle corresponds — part (a) of lem:combinatorial-invariance, at the level of the two realizations.
The homeomorphism run backwards.
Equations
Instances For
The open nonboundary part corresponds — the geometric half of part (b) of lem:combinatorial-invariance. The skeleton homeomorphism carries the outer cycle onto the outer cycle, hence restricts to a bijection of the two open nonboundary parts.
Connectedness of the open nonboundary part is invariant — part (b) of lem:combinatorial-invariance. This is the one clause with genuine topological content: it is what makes admissibility (def:admissible-graph) transfer between the two realizations.
Combinatorial invariance #
The abstract skeleton is one graph — part (a) of lem:combinatorial-invariance. Both
drawn skeleta are pushforwards of S.skel, so in particular they carry the same edge names.
Connectedness of the skeleton is invariant — part (a).
2-connectivity of the skeleton is invariant — part (a) of lem:combinatorial-invariance, and the clause the finite-transfer theorem cites when it concludes that a reproduced realization "has the same 2-connectivity" as the given one.
The closed star is a union over an index set that belongs to the abstract structure, so an inclusion of index sets gives an inclusion of stars in every realization. This is what part (c) of lem:combinatorial-invariance means by "all star-containment statements induced by refinement".
The same combinatorial hypothesis yields the geometric containment on both sides.
A subcell has the larger star, once the abstract relation is known to be transitive.
The clause "every outer edge is a subcell of exactly one 2-cell" — assertion (vi) of lem:cellulation-invariants — as a property of the abstract structure alone.
Equations
Instances For
The 2-cell incident with an outer edge is combinatorial — part (c) of
lem:combinatorial-invariance. There is nothing to transport: the witness is a single abstract
cell F, and the two realizations realize that one cell as R₁.cell F and R₂.cell F.
Combinatorial invariance (lem:combinatorial-invariance), assembled.
Given two realizations of one generated matched cell structure and the skeleton homeomorphism between them:
- (a) the two drawn skeleta are pushforwards of the same abstract graph
S.skel, they carry the same edge names, 2-connectivity holds for one iff it holds for the other, and the realized outer cycles correspond underg; - (b) the realized open nonboundary parts correspond under
g, so one is connected iff the other is; - (c) an inclusion of supercell sets — a statement of the common abstract structure — gives the corresponding star containment in both realizations.
The subcell relation, the parent maps and the collection of supercells of a cell do not
appear in the conclusion because under this representation they are not two objects to be
compared: they are fields of the single S that both realizations are realizations of.