The two stop clauses across a change of boundary family #
The output clause and the stopped clause of ClauseTools.lean (the fields
output_isSmoothSubmanifoldIdeal and stopped_never_blownUp of BMOmodFam) are stated against
the total boundary of the run; the pieces of the modified first step satisfy them against other
boundary families. The boundary of the triple of [Kol07, Theorem 103, Step 2.2] (the exceptional
divisors of Step 2.1 with the maximal-contact member H_r emptied) is a sub-family of the total
boundary at that stage, the members present before Step 2.1 being dropped; and the boundary of the
run one dimension down is identified with the trace of the ambient boundary on the strict transforms
of H⁺ at the level of supports only (support_traceFamilyFrom_eq_support_boundarySeq,
boundarySeq_pushforwardStageIso, isSnc_totalTransformSeqFrom_and_boundarySeq_eq). This module
proves the generic bridges, for arbitrary boundary families:
HypersurfaceFamily.MembersSubset F' F: every nonempty member ofF'is a member ofF. The relation is kept by inverse images, by the total transform under a blow-up (equal members have equal strict transforms, the exceptional member is shared) and hence along the boundary families of a succession (membersSubset_totalTransformSeqFrom); the exceptional divisors alone form a sub-family of every boundary family (membersSubset_totalTransformSeq_totalTransformSeqFrom).IsSmoothTransversalIdealAt.of_membersSubset: the predicate passes to a sub-family (IsSmoothTransversalIdealAt.emptyMemberis the one-member case);IsSmoothTransversalIdealAt.of_forall_mem: and back when every member of the bigger family through the point is a member of the smaller one (the situation of the output clause, where the extra members miss the support of the transform).IsSnc.exists_hyp_inter_eq_of_support_eq,IsSnc.exists_equiv_of_support_eq_nhds,IsSmoothTransversalIdealAt.of_support_eq_nhds: two families with simple normal crossings and the same support near a point have the same members through it near it, so the predicate depends only on the support of the boundary near the point. On the open the member is a closed hypersurface having simple normal crossings with one family, hence, by the dictionaryhasOnlyNormalCrossingsWith_idealSheaf_iffon the reduced ideal sheaves, which agree on the open, with the other; in a chart with simple normal crossings it is a coordinate hyperplane inside the finite union of the coordinate hyperplanes of the members through the point, hence one of them (exists_mem_source_coord_eq_zero_ne: a coordinate hyperplane is not contained in a finite union of other coordinate hyperplanes near a point;IsSncChartAt.eq_of_hyp_inter_eq,IsSnc.hyp_injOn_nonempty); thenIsSmoothTransversalIdealAt.congr_nhds.StoppedClause.of_membersSubset,OutputClause.of_forall_mem: the same bridges for the two clauses.notMem_center_of_ord_eq_zero: a point of order0is never blown up. A centre point has order≥ 1([Kol07, Definition 66 (4′)]), and the marked transform at a point over a point off the centre is the pull-back of the stalk below (birationalTransform_stalkIdeal_of_notMem); an induction on the first stage at which the fibre would meet a centre, from the order clause alone; the stop predicate does not enter.
The relation between the boundary of the run on a hypersurface and the trace of the ambient
boundary is the E_i ∩ S_i of [Kol07, Definition 30, 30.2]; the order of a centre is
[Kol07, Definition 66 (4′)]; simple normal crossings are [Kol07, Definition 24] and
[Wlo09, Theorem 2.0.3 (2)]. The statements themselves are not in the sources.
The sub-family relation: every nonempty member of F' is a member of F (as a set). This
is the relation between the boundary of the triple of [Kol07, Theorem 103, Step 2.2] (the
exceptional divisors of Step 2.1, H_r emptied) and the total boundary at that stage: the members
present before Step 2.1 are dropped, and H_r is a member of neither.
Instances For
The support of a sub-family lies in the support.
The empty family is a sub-family of every family.
A family with one member emptied is a sub-family of the family.
The sub-family relation is kept by inverse images.
The sub-family relation is kept by the total transform under a blow-up: equal members have equal strict transforms, the empty member an empty one, and the exceptional member is shared.
The sub-family relation is kept by the boundary families of a succession at every stage
(MembersSubset.totalTransform along the recursion of totalTransformSeqFromAux).
The exceptional divisors alone (the boundary family from the empty start) form a sub-family of
the boundary family from any start F.
A coordinate hyperplane of a chart is not contained in a finite union of other coordinate
hyperplanes near a point: in a chart φ at a, for finitely many indices K and an index
k ∉ K whose coordinates all vanish at a, every neighbourhood of a contains a point of the
source where the k-th coordinate vanishes and none of the K-coordinates does (the point
ψ⁻¹(ψ (φ a) + ε · 1_K) for a small ε ≠ 0).
Two members through x of a family with simple normal crossings that agree near x are the
same member: in the chart at x they are coordinate hyperplanes with the same trace near x, so
their indices agree (exists_mem_source_coord_eq_zero_ne), and cidx is injective.
A family with simple normal crossings has no two indices with the same nonempty member
(IsSncChartAt.eq_of_hyp_inter_eq at a point of the member, with W = univ).
The predicate passes to a sub-family (the bigger boundary implies the smaller;
IsSmoothTransversalIdealAt.emptyMember is the one-member case): the members of F' through x
inject into those of F through x with the same sets, and the chart, the coordinates σ and the
ideal are unchanged.
The predicate passes back from a sub-family when every member of the bigger family through
the point is one of the sub-family (IsSmoothTransversalIdealAt.congr_nhds with an equivalence of
the members through x). This is the situation of the output clause, where the extra members miss
the support of the transform.
A member of F₂ through x is, near x, a member of F₁, for families with simple normal
crossings and the same support on an open U ∋ x (the E_i ∩ S_i of [Kol07, Definition 30, 30.2]
read member by member). On U the member is a closed hypersurface having simple normal crossings
with F₂|U, hence, by the dictionary hasOnlyNormalCrossingsWith_idealSheaf_iff on the reduced
ideal sheaves, which agree on U (idealSheaf_congr_support), with F₁|U; in the chart of F₁
at x it is a coordinate hyperplane inside the finite union of the coordinate hyperplanes of the
members of F₁ through x (the other members miss a neighbourhood,
LocallyFinite.iInter_compl_mem_nhds), so by exists_mem_source_coord_eq_zero_ne it is one of
them.
Two families with simple normal crossings and the same support near x have the same members
through x near x: IsSnc.exists_hyp_inter_eq_of_support_eq in both directions, the two maps
inverse to each other by IsSncChartAt.eq_of_hyp_inter_eq, on the finite intersection of the
neighbourhoods (finitely many members through x, LocallyFinite.point_finite).
The predicate depends only on the support of the boundary near the point, for families with
simple normal crossings: IsSnc.exists_equiv_of_support_eq_nhds and
IsSmoothTransversalIdealAt.congr_nhds. This is the bridge between the boundary of the run one
dimension down and the trace of the ambient boundary along a push-forward, which the library
identifies at the level of supports and reduced ideal sheaves only
(support_traceFamilyFrom_eq_support_boundarySeq, boundarySeq_pushforwardStageIso,
isSnc_totalTransformSeqFrom_and_boundarySeq_eq).
The stopped clause passes from a sub-family boundary to the bigger boundary: a predicate
point off the bigger boundary is a predicate point off the smaller one
(IsSmoothTransversalIdealAt.of_membersSubset at its stage, membersSubset_totalTransformSeqFrom,
MembersSubset.support_subset).
The output clause passes from a sub-family boundary to the bigger boundary when every member
of the bigger boundary through a support point of the last stage is a member of the smaller one
(IsSmoothTransversalIdealAt.of_forall_mem at the last stage).
A point of order 0 is never blown up, along a succession of order ≥ 1: a centre point
has order ≥ 1 along the centre, hence order ≥ 1 ([Kol07, Definition 66 (4′)]), so a point of
order 0 is not in the centre, and the marked transform at a point over it is the pull-back of the
stalk below (birationalTransform_stalkIdeal_of_notMem, the blow-up being a local isomorphism
there), of order 0 again. The proof is an induction on the number of steps; no predicate is
involved.