The limit homeomorphism of the interiors #
The blueprint opens this section with a sentence that is an instruction to the formalizer: "We
now forget how the decompositions were constructed and use only their nesting, matching, and
shrinking properties." This module takes it literally. LimitTower is a structure recording
exactly those properties — a sequence of matched cell structures with two realizations each, a
Realization.Refines instance between consecutive stages on each side sharing one parent map,
nested skeleton homeomorphisms, and the two shrinking hypotheses of prop:shrinking-stars — and
everything from the definition of F to prop:interior-homeomorphism is proved against it.
Nothing below mentions a mesh, a grid, or a constructor. The still-open construction has to
produce one LimitTower; none of the analysis waits for it.
What is not a field #
Three things the task list expected to appear as hypotheses turned out to be derivable and are therefore proved here rather than assumed.
lem:outer-incidence.docs/ROADMAP.mdrecords it as done inCombinatorialInvariance.leanunderouterEdge_face_corresponds; that is a different statement (assertion (vi) oflem:cellulation-invariants, transported). The reallem:outer-incidence—closure σmeetsCiff some outer cell is a subcell ofσiffclosure σ'meetsS— is proved below asRealization.IsCellDecomposition.closure_cell_meets_outer_iffand, for stars,LimitTower.star_meets_bdry_iff. The one geometric input it needs isRealization.outerSet_eq_iUnion_cell: the realized outer cycle is exactly the union of the open cells of the outer cells, which is a consequence of the twoRealizationclausescell_vertexandcell_edgeand holds for any subcomplex.- Assertion (vii) of
lem:cellulation-invariants(every 2-cell boundary a Jordan curve with the open cell its bounded region). The limit argument was expected to need it, through assertion (viii). It does not: the only use is "a 2-cell is not a proper subcell of a 2-cell", and that isCombInvariants.face_maximal, which is already an inductive invariant onmain. There is therefore no field for (vii) and no dependency on it. prop:target-skeleton-dense. The blueprint's surjectivity proof goes through the density of the target skeleton and a compactness argument inC ∪ D. That is not needed: the sets⋂ₙ St_{Γₙ}(car_{Γ'ₙ}(y))— the source stars of the target carriers ofy— are a nested sequence of nonempty compacts, and any point of their intersection is already a preimage ofy.prop:target-skeleton-denseis proved anyway, because the boundary-continuity module cites it, but it is not on the critical path toprop:F-surjective.
The two shrinking hypotheses are not symmetric #
prop:shrinking-stars gives pointwise convergence of the source star diameters and uniform
convergence of the target ones. The asymmetry is real and is used: F is defined, and continuous,
on the whole closed domain (only the uniform bound enters), whereas injectivity and the continuity
of the inverse hold on the open region (they need the pointwise bound at a point of D).
One hypothesis that the blueprint does not state is carried throughout: the closed domains are
bounded. It is not optional — Metric.diam is 0 on an unbounded set, so without it the star
diameter bounds are false rather than weak — and it is trivially true for a closed Jordan domain.
Blueprint #
All of the following live in Schoenflies.CellStructure.
LimitTower— the abstraction of the head of the section: "we now forget how the decompositions were constructed and use only their nesting, matching, and shrinking properties".- The definition of
F(tex "The limit homeomorphism of the interiors") —LimitTower.F, withLimitTower.iInter_tgtStar_eqits characterisation (lem:nested-compactapplied to the nested starsLimitTower.tgtStar),LimitTower.F_mem_tgtStarandLimitTower.eq_F_of_mem_iInter. lem:outer-incidence—Realization.IsCellDecomposition.closure_cell_meets_outer_iffandRealization.IsCellDecomposition.star_meets_outer_iff, with the matched form the limit argument cites,LimitTower.star_meets_bdry_iff. Their geometric input isRealization.outerSet_eq_iUnion_cell.prop:skeleton-agreement—LimitTower.F_eq_skelHomeo.prop:F-continuous—LimitTower.continuousOn_F, on the closed domain.prop:image-interior—LimitTower.F_mem_region'.prop:F-injective—LimitTower.injOn_F.prop:target-skeleton-dense—LimitTower.exists_mem_tgt_skeletonSet.prop:F-surjective—LimitTower.exists_mem_region_F_eq, throughLimitTower.preStarandLimitTower.F_eq_of_mem_iInter_preStar.lem:exact-cell-correspondence—LimitTower.image_cell, with the corollary the inverse argument actually uses,LimitTower.tgt_carrier_F.prop:inverse-continuous—LimitTower.continuousOn_inv, on the explicit inverseLimitTower.inv.prop:interior-homeomorphism—LimitTower.isHomeoOn_Fand, with the skeleton clause,LimitTower.interior_homeomorphism; in theSchoenflies.IsHomeoOnshape thatEndgame.leanand the boundary-continuity module consume.lem:cell-neighborhoodis used, not restated: it isRealization.IsCellDecomposition.sub_carrier_of_mem_cellNbhdinRefinementStars.lean, and the cross-realization form the limit map needs isLimitTower.tgtStar_subset_of_mem_cellNbhd.
The realized skeleton and outer cycle, cell by cell #
Realization.skeletonSet and Realization.outerSet are defined as point sets of drawn graphs.
The limit argument needs them as unions of open cells, because that is the form in which they
interact with IsCellDecomposition: "the carrier of any point of C is an outer cell" is the
first sentence of the blueprint's proof of lem:outer-incidence, and it is exactly this
rewriting.
Every outer cell is a cell.
A proper subcell of a 2-cell is a 0- or 1-cell: nothing but the 2-cell itself is a 2-cell below it.
A 2-cell is never an outer cell: outer cells are 0- and 1-cells of the skeleton.
A nonboundary edge — assertion (iii) of lem:cellulation-invariants produces one on every
2-cell boundary — is not an outer cell.
The realized point set of a subcomplex of the skeleton is the union of the open cells of its 0- and 1-cells. A drawn edge is its open cell together with the two 0-cells at its ends, and those ends belong to the subcomplex whenever the edge does.
The realized 1-skeleton is the union of the open 0- and 1-cells.
The realized outer cycle is the union of the open outer cells. This is the sentence "C
is exactly the union of the outer vertices and the open outer edges" at the head of the
blueprint's proof of lem:outer-incidence.
Off the outer cycle, the open cell of a cell that is not an outer cell. Open cells are disjoint and the outer cycle is the union of the outer ones, so a cell's open part misses the outer cycle exactly when the cell is not outer.
An open cell is disjoint from the union of the open cells of any collection of cells not
containing it. This is how IsCellDecomposition sees the realized skeleton and the realized
outer cycle, once those have been rewritten as unions of open cells.
An open 2-cell never meets the realized skeleton.
The realized skeleton lies in the closed domain.
The closed star of a 2-cell is its own closed cell. By lem:star-face-mesh a closed star
is the union of the closed 2-cells above the cell, and CombInvariants.face_maximal says the
only 2-cell above a 2-cell is itself. This is the step the blueprint attributes to assertion
(viii) of lem:cellulation-invariants, and it needs neither (vii) nor openness of the open
2-cell.
The carrier of a point of the realized outer cycle is an outer cell.
lem:outer-incidence, the closed-cell form: a closed cell meets the realized outer cycle
exactly when some outer cell is one of its subcells. The middle condition is a statement of the
abstract structure alone, which is what makes the equivalence transfer between the two
realizations with nothing to transport.
lem:outer-incidence, the star form: a closed star meets the realized outer cycle
exactly when some supercell of the cell has an outer subcell.
The tower of matched cellulations #
Every field below is an obligation on whoever eventually constructs the sequence of decompositions, and there is nothing here that the limit argument does not use.
The nesting, matching and shrinking properties of a sequence of matched cellulations, and nothing else. The blueprint's "we now forget how the decompositions were constructed" is this structure.
str n is the stage-n abstract matched cell structure; src n and tgt n are its two
realizations, in the closed Jordan domain dom and in the closed square dom'; skelHomeo n is
the stage-n skeleton homeomorphism g_n. Consecutive stages are related by a pair of
Realization.Refines instances sharing one parent map par n — that sharing is
lem:refinement-compatibility(c), "corresponding cells have corresponding parents", under the
representation of CombinatorialInvariance.lean, where cells are abstract names.
The shrinking clauses are prop:shrinking-stars, and they are deliberately asymmetric, exactly
as the blueprint states them: the target star diameters are bounded uniformly by a null
sequence eps, while the source star diameters are only assumed to tend to zero pointwise, and
only at points of the open region.
- str : ℕ → CellStructure γ
The stage-
nabstract matched cell structure. - src (n : ℕ) : (self.str n).Realization
The source realization, in the closed Jordan domain.
- tgt (n : ℕ) : (self.str n).Realization
The target realization, in the closed square.
- skelHomeo (n : ℕ) : SkeletonHomeo (self.src n) (self.tgt n)
The stage-
nskeleton homeomorphismg_n. - par : ℕ → γ → γ
The composite parent map from stage
n + 1to stagen, shared by the two sides. The closed source domain
C ∪ D.The source outer curve
C.The closed target domain
Q.The target outer curve
S.The uniform target mesh:
2 ε_nof the blueprint.- srcDecomp (n : ℕ) : (self.src n).IsCellDecomposition self.dom
Assertions (i) and (ii) on the source side.
- tgtDecomp (n : ℕ) : (self.tgt n).IsCellDecomposition self.dom'
Assertions (i) and (ii) on the target side.
- comb (n : ℕ) : (self.str n).CombInvariants
Assertions (iii), (v), (vi) and the rest of the combinatorial invariants.
Consecutive source stages refine, along
par n.Consecutive target stages refine, along the same
par n.The realized source outer cycle is
C, at every stage.The realized target outer cycle is
S, at every stage.C ∪ Dis closed.Qis closed.- isBounded_dom : Bornology.IsBounded self.dom
C ∪ Dis bounded. Not in the blueprint, and not optional:Metric.diamis0on an unbounded set. - isBounded_dom' : Bornology.IsBounded self.dom'
Qis bounded, for the same reason. D = Int(C)is open.Q°is open.- skeletonSet_mono (n : ℕ) : (self.src n).skeletonSet ⊆ (self.src (n + 1)).skeletonSet
The realized source skeletons grow.
- skelHomeo_succ (n : ℕ) : Set.EqOn (self.skelHomeo (n + 1)).toFun (self.skelHomeo n).toFun (self.src n).skeletonSet
The skeleton maps are nested: "an edge subdivision leaves the skeleton map unchanged as a point map, and a 2-cell split extends it by the chosen homeomorphism on the new ear".
- diam_tgtStar_le (n : ℕ) ⦃σ : γ⦄ : σ ∈ (self.str n).cells → Metric.diam ((self.tgt n).star σ) ≤ self.eps n
prop:shrinking-stars, the uniform half: every stage-ntarget star has diameter at mosteps n. - tendsto_eps : Filter.Tendsto self.eps Filter.atTop (nhds 0)
…and
epsis a null sequence. - tendsto_diam_srcStar ⦃x : Plane⦄ : x ∈ self.dom \ self.bdry → Filter.Tendsto (fun (n : ℕ) => Metric.diam ((self.src n).star ((self.src n).carrier x))) Filter.atTop (nhds 0)
prop:shrinking-stars, the pointwise half: at every point of the open region the source star diameters tend to zero.
Instances For
St_{Γ'_n}(σ'_n(x)), written T_n(x) in the blueprint: the closed target star of the cell
corresponding to the source carrier of x.
Instances For
A null real sequence is eventually below any positive bound. Used with eps and with the
pointwise source-star diameters.
Stars of the tower #
The limit map #
The limit map F: the unique point of ⋂ₙ T_n(x). Junk off the closed domain; every
lemma about it carries x ∈ L.dom.
Equations
Instances For
Agreement with the finite skeleton maps #
The skeleton maps are nested, so g_n = g_N on G_N for every n ≥ N; at each such stage the
skeleton map carries the carrier of x onto the corresponding target cell, which sits inside
T_n(x). The intersection of the T_n(x) is the single point F x.
The skeleton maps are nested: g_n = g_m on G_m whenever m ≤ n.
At a stage-n skeleton point the skeleton map lands in the stage-n target star: the
carrier of x is a 0- or 1-cell, and g_n carries its open cell onto the target open cell of
the same abstract name.
prop:skeleton-agreement: F agrees with the stage-N skeleton map on G_N ∩ (C ∪ D).
Since the skeleton maps are nested, this is the blueprint's F = g_∞ on ⋃ₙ Gₙ ∩ D as well.
Continuity #
The cross-realization form of lem:cell-neighborhood the limit map needs: for z in the
stage-n source cell neighbourhood of x, T_n(z) ⊆ T_n(x). The subcell relation is read in
the source realization and used in the target one; it is a relation of the common abstract
structure, so nothing is transported.
prop:F-continuous, on the whole closed domain. Only the uniform half of
prop:shrinking-stars enters, so nothing here restricts x to the open region.
The image lies in the interior #
lem:outer-incidence, matched form: a stage-n source star meets C exactly when the
target star of the same abstract cell meets S. Both sides reduce to the middle condition of
the blueprint's statement, which mentions only the abstract structure and its outer cycle.
At a point of the open region the source star is eventually contained in the region: the point lies in its own star, and the star diameters tend to zero.
Injectivity #
prop:F-injective. This is where the pointwise half of prop:shrinking-stars is needed,
and it is why injectivity is asserted on the open region rather than on the closed domain.
Density of the target skeleton #
An open cell that is not an outer cell lies in the open region: open cells are disjoint and
S is the union of the open outer ones.
prop:target-skeleton-dense: every point of Q° is approximated by target skeleton
points of Q°. If y is not already on the stage-n skeleton its carrier is a 2-cell, and
assertion (iii) of lem:cellulation-invariants puts a nonboundary edge on its boundary; that
edge's open cell lies in the star of the carrier, of diameter at most eps n.
Surjectivity #
The blueprint reaches y through the density of the target skeleton and a compactness argument
in C ∪ D. The route taken here is shorter and needs neither: the source stars of the
target carriers of y are themselves a nested sequence of nonempty compacts, and every point
of their intersection is already a preimage of y.
St_{Γ_n}(car_{Γ'_n}(y)): the source star of the target carrier of y. This is the set the
blueprint calls K, read at every stage instead of at one.
Instances For
The heart of surjectivity: a point lying in every preStar n y is carried to y. At
each stage the source carrier of x and the target carrier of y share a supercell τ, so the
two target stars meet, and both have diameter at most eps n.
At a point of Q° the target star is eventually inside Q°. Here the uniform half of
prop:shrinking-stars is what is available, and it suffices.
Exact cell correspondence #
The source counterpart of tgt_cell_subset_region'.
A point of the open region has a nonboundary carrier: an outer cell's open cell lies on the outer cycle.
The half of lem:exact-cell-correspondence that carries the argument: an open source 2-cell
is mapped into the corresponding open target 2-cell.
The closed star of a 2-cell is its own closed cell, so F x lies in closure σ'; if it lay on
the frontier it would be a stage-n target skeleton point, and its skeleton preimage w would
be a second point of D with F w = F x, contradicting injectivity — while x itself, lying in
an open 2-cell, is not a skeleton point.
lem:exact-cell-correspondence: F carries each nonboundary open cell of the stage-n
source decomposition onto the corresponding open cell of the target decomposition. For a 0- or
1-cell this is prop:skeleton-agreement together with the skeleton homeomorphism; for a 2-cell it
is the previous lemma plus surjectivity.
The inverse, and the interior homeomorphism #
The inverse of F, as an explicit function Plane → Plane rather than a bundled
Homeomorph: a chosen preimage in D. Surjectivity makes the choice possible and injectivity
makes it irrelevant. Endgame.lean consumes the pair (F, inv) in the IsHomeoOn shape, which
needs the inverse named.
Instances For
prop:inverse-continuous: F⁻¹ : Q° → D is continuous. lem:cell-neighborhood is
applied on the target side; lem:exact-cell-correspondence, in the form src_carrier_inv,
transports the resulting subcell relation to the source, where the source star of x is small.
prop:interior-homeomorphism: F : Int(C) → Q° is a homeomorphism, in the
Schoenflies.IsHomeoOn shape — the map, its explicit inverse, and the four laws on the two
sets — that Endgame.lean and the boundary-continuity module consume.
prop:interior-homeomorphism as the blueprint states it: a homeomorphism of Int(C) onto
Q° that agrees with the stage-N skeleton map on G_N ∩ (C ∪ D) for every N.