The two stop clauses as predicates on a succession, and their transports #
The structure BMOmodFam (Functor/ModifiedMarkedFam.lean) has two fields about the stop predicate
IsSmoothTransversalIdealAt: output_isSmoothSubmanifoldIdeal, at every point of the support of
the last marked transform of (π, 1) that transform is the ideal of a smooth submanifold
transversal to the total boundary, and stopped_never_blownUp, a point of a stage on no member of
the boundary at which the predicate holds is never blown up later. They are the two properties of
the modified algorithm of [Wlo09, Theorem 7.4.1]: the form of its output (coordinates transversal
to the exceptional divisors) and the stop rule of its modified first step. The value of the
modified functor on an open U is built from local runs by pull-back along local analytic
isomorphisms, deletion of the empty blow-ups, concatenation along the induced triple and descent
along the maximal-contact cover (ComposeInduced.lean, StepBGlobal.lean, GlobalizeFam.lean),
so the two properties have to be carried across each of these operations. This module isolates
them as predicates on a finite succession from a pair (π, F) (OutputClause, StoppedClause:
the two fields word for word, with S := L.toSuccession and (π, F) the restricted triple's) and
on a family functor per open (OutputClauseFam, StoppedClauseFam), and proves the transports
used by the modules Clause*.lean that follow. Throughout, "the output clause" is OutputClause
and "the stopped clause" is StoppedClause.
- Pull-back along a local analytic isomorphism
h([Kol07, Definition 30, 30.1]).BlowUpSequence.totalTransformSeqFrom_pullback(the boundary at every stage ofh^* Lis the pull-back along the lifth_i;totalTransform_comap_liftStepat each step) andBlowUpSequence.stageMapAdd_pullbackLift(the composite blow-downs intertwine with the lifts); both clauses pull back (outputClause_pullback,stoppedClause_pullback, byIsSmoothTransversalIdealAt.comap) and descend along a surjectiveh(outputClause_of_pullback_of_surjective,stoppedClause_of_pullback_of_surjective): a point lifts along the surjective lift and the predicate comes back along a local inverse (IsSmoothTransversalIdealAt.of_comap, the converse ofcomap: the chart with simple normal crossings is transported bytransportChart, the stalk read through the bijective germ map). - Deletion of the empty blow-ups ([Kol07, 32]; the second condition of [Kol07, 34.1]). The output
clause by the last-stage identifications
markedTransformSeq_last_eraseEmptyandboundaryCorr_eraseEmpty(outputClause_eraseEmpty); the stopped clause by induction on the list (stoppedClause_eraseEmpty), aconsbeing read as the clause at stage0together with the tail's clause from the head triple (stoppedClause_cons_iff,stoppedClause_cons_of_forall_notMem); an empty first step is deleted and the rest carried along the diffeomorphism of the empty blow-up (map_eq_pullback_symm), the boundary reached beingT.Fwith one empty member (StoppedClause.of_isEmptyExtension). - Concatenation along the induced triple (
Induced.lean):outputClause_cons_iff,outputClause_concat,stoppedClause_concat, by induction on the first list withinduced_consandinduced_nil; a centre of the second list over a predicate point off the boundary lies over a predicate point of the join off the boundary (IsSmoothTransversalIdealAt.stageMapAdd_of_forall_notMem_center: the predicate persists along a fibre no centre meets, the analogue for the predicate ofnotMem_totalTransformSeqFrom_of_forall_notMem_center), which is excluded at stage0(StoppedClause.notMem_center_of_stageMap_eq,stageMapAdd_zero_left). - Descent along the maximal-contact cover ([Kol07, Theorem 103, Step 3]):
outputClauseFam_of_agreeFam,stoppedClauseFam_of_agreeFam, the analogues ofisOfOrderGe_of_agreeFam. - Two lemmas on the predicate and the members of the boundary,
IsSmoothTransversalIdealAt.emptyMemberandIsSmoothTransversalIdealAt.of_emptyMember_of_notMem: a chart with simple normal crossings at a point constrains only the members through the point, so the predicate ignores a member not through it; they let the descent and lift ofStopRestrict.leanbe applied with the boundary minus the maximal-contact member.
The mathematics is [Kol07, Definition 30, 30.1], [Kol07, 32], [Kol07, 34.1], the descent of
[Kol07, Theorem 103, Step 3] and the persistence lemmas of StopPersistence.lean; the statements
themselves are not in the sources.
The output clause for a succession S from the pair (π, F) (the field
output_isSmoothSubmanifoldIdeal of BMOmodFam, read on L.toSuccession from the restricted
triple): at every point of the support {ord β₯ 1} of the marked transform of (π, 1) at the last
stage, that transform is locally the ideal of a smooth submanifold with coordinates transversal to
the total boundary.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The stopped clause for a succession S from (π, F) (the field stopped_never_blownUp of
BMOmodFam): a point x of a stage i on no member of the boundary at which the marked transform
is a smooth submanifold ideal transversal to the boundary is never blown up: no later centre
contains a point over x.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The composite blow-down from stage 0 over k steps is the succession's stageMap at stage
0 + k (the bridge between stageMapAdd and stageMapAux, two recursions peeling the last
blow-up).
The stopped clause read at stage 0 with stageMap: no centre of the succession lies over a
predicate point of the start off the boundary (the stage number generalised to 0 + k,
stageMapAdd_zero_left).
The stopped clause descends along an empty extension G βͺ G' of the boundary family
(IsEmptyExtension: the members of G are members of G' and the other members of G' are
empty): stage by stage the boundaries stay in empty extension (isEmptyExtension_totalTransform),
and the predicate and "on no member" transport along one, since an empty member is through no
point (IsSmoothTransversalIdealAt.congr_nhds).
The output clause of a family functor on its class, per open: the value on U from the
restricted triple satisfies OutputClause. For Dom := BMOClass 1 at the model
refl π (Fin n β π) this is the field output_isSmoothSubmanifoldIdeal of BMOmodFam with
functor := B, definitionally.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The stopped clause of a family functor on its class, per open (the field
stopped_never_blownUp of BMOmodFam with functor := B, definitionally).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pull-back along a local analytic isomorphism #
The boundary families along h^* L at every stage (the all-stage form of
totalTransformSeqFrom_last_pullbackLiftLast): the boundary from F.comap h at stage i of
h^* L is the boundary from F at stage i of L pulled back along the lift h_i.
The composite blow-downs of h^* L between two stages are intertwined with those of L by the
lifts (stageMapAdd along pullbackLift).
The predicate descends along a local analytic isomorphism (the converse of
IsSmoothTransversalIdealAt.comap): the predicate for the pulled-back family and ideal at y gives
the predicate for F and J at g y. The chart with simple normal crossings at y is transported
along a local inverse Ξ¦β»ΒΉ of g (transportChart, the mirror of the proof of comap;
stalkIdeal_comap_eq_map_germMap, germMap_coord_eq_coord_transportChart). Used at the lifted
point in outputClause_of_pullback_of_surjective and stoppedClause_of_pullback_of_surjective.
The output clause descends along a surjective local analytic isomorphism: if h^* L from the
pulled-back triple satisfies the clause, so does L from T. A point of the last stage of L
lifts along the surjective last lift (markedTransformSeq_pullback,
totalTransformSeqFrom_pullback), and the predicate comes back along the local isomorphism
(IsSmoothTransversalIdealAt.of_comap).
The output clause pulls back along a local analytic isomorphism
(IsSmoothTransversalIdealAt.comap).
The stopped clause descends along a surjective local analytic isomorphism (center_pullback,
totalTransformSeqFrom_pullback, stageMapAdd_pullbackLift, and the predicate brought back by
IsSmoothTransversalIdealAt.of_comap).
The stopped clause pulls back along a local analytic isomorphism.
Deletion of the empty blow-ups ([Kol07, 32], [Kol07, 34.1]) #
The output clause survives the deletion of the empty blow-ups
(markedTransformSeq_last_eraseEmpty and boundaryCorr_eraseEmpty at the last stage, the predicate
transported along eraseEmptyLast).
The stopped clause for cons hY L' from the stopped clause of L' for the head triple and the
stage-0 content (a predicate point off the boundary is not in Y): a centre of L' over such a
point lies over a predicate point of the head stage off its boundary (the predicate and the absence
from the boundary persist under one blow-up off the centre, the marking legitimate by the head's
order clause), which is excluded at stage 0 by StoppedClause.notMem_center_of_stageMap_eq; the
later stages are L''s, one stage in.
The stopped clause is read one stage in: for cons hY rest it is the clause at stage 0 (no
later centre over a predicate point of M off the boundary) together with the clause of rest
from the head triple (the marked transform of (π, 1) and the total transform of F under the
first blow-up, AnalyticTriple.headTriple).
The stopped clause survives the deletion of the empty blow-ups, by induction on the list with
stoppedClause_cons_iff: a nonempty first centre stays (eraseEmpty_cons_of_ne_empty) and
stoppedClause_cons_of_forall_notMem rebuilds the clause from the tail's; an empty one is deleted
and the rest carried along the diffeomorphism of the empty blow-up (eraseEmpty_cons_of_eq_empty
with map_eq_pullback_symm and stoppedClause_pullback), the head triple's data being T.I
pulled back twice and T.F with one empty member, so that the clause comes back along
StoppedClause.of_isEmptyExtension.
Concatenation along the induced triple #
The output clause is read one stage in: for cons hY rest it is the clause of rest from the
head triple (the last stage and its transforms are rest's from the head triple,
cons_markedTransformSeq_last, cons_totalTransformSeqFrom_last).
The output clause of a concatenation is the output clause of the appended list from the induced
triple, by induction on the first list with induced_cons and induced_nil (the recursion of
boClass_induced_concat_aux); at a cons the two rewrites of outputClause_cons_iff,
cons_markedTransformSeq_last and cons_totalTransformSeqFrom_last, with the head clause of
hgeβ. outputClause_cons_iff itself asks for the order clause of the whole cons list, which a
concatenation does not carry, so it is not applied directly.
The predicate persists along a fibre no centre meets (the analogue for the predicate of
notMem_totalTransformSeqFrom_of_forall_notMem_center): a point x of stage i off the boundary
at which the marked transform is a smooth submanifold ideal transversal to the boundary, none of
whose images at the stages i, β¦, i + k β 1 lies in the centre blown up there, keeps the predicate
at every point y over it at stage i + k. At each step the blow-up is a local isomorphism off the
centre and the marking is legitimate by the order clause
(IsSmoothTransversalIdealAt.totalTransform_of_notMem).
The stopped clause of a concatenation from the stopped clauses of the two lists, by induction on
the first list with induced_cons and induced_nil: at a cons, stoppedClause_cons_iff reads
the first list's clause as its stage-0 content plus the tail's clause for the head triple, the
induction gives the tail's concatenation, and stoppedClause_cons_of_forall_notMem rebuilds the
clause of the cons.
Descent along the maximal-contact cover ([Kol07, Theorem 103, Step 3]) #
The output clause descends per open (the analogue of isOfOrderGe_of_agreeFam): a functor
B' on BOClass 1 agreeing with B on the local maximal-contact class and commuting with local
isomorphisms inherits the output clause of B. On the finite shrunk maximal-contact cover k of
closure U, the pull-back k^*(B'(T)|_U) is B at the pulled-back triple and satisfies the
clause, which descends along the surjective k (outputClause_of_pullback_of_surjective).
The stopped clause descends per open (the same descent with
stoppedClause_of_pullback_of_surjective).
Two member lemmas on the predicate #
Emptying a member keeps the predicate (the chart with simple normal crossings, the member's
coordinate forgotten; HypersurfaceFamily.emptyMember).
A member not through x may be restored: the predicate for F.emptyMember j at a point
x β F.hyp j gives the predicate for F. A chart with simple normal crossings at x constrains
only the members through x, and at x β F.hyp j the two index subtypes
{k // x β (F.emptyMember j).hyp k} and {k // x β F.hyp k} have the same predicate
(the members of F.emptyMember j are if k = j then β
else F.hyp k, emptyMember_hyp_of_ne,
emptyMember_hyp_self), so the same chart with cidx transported is
such a chart for F at x. No closedness and no shrinking of the chart is needed.