Documentation

Hironaka.Resolution.Algebraic.Monomial.State

The monomial state: Kollár's Step 3 as a combinatorial object #

Step 3 of the proof of [Kol07, Theorem 107] ([Kol07, 111, Step 3]) reduces the order of a monomial ideal 𝒪_X(-∑ a_j E^j), E = ∑ E^j a simple normal crossing divisor with an ordered index set, below the mark m by blowing up intersections of the E^j in a prescribed order. The procedure only looks at which intersections are nonempty and at the exponents, so this module runs it on a purely combinatorial state, with no scheme in sight. The state records the irreducible components of the divisors as natural numbers below nextComp, each with the label of its divisor E^j (a natural number below nextLabel; the exceptional divisor of a blow-up gets the label nextLabel, [Kol07, Definition 65]: the new divisor is put last) and an exponent, and the nerve: the finite family of nonempty sets of components with nonempty common intersection. The nerve is down-closed, its faces have size at most the dimension bound n and carry at most one component per label; dead components (empty divisors) lie in no face.

Deviation from the source. Kollár's state has one exponent per divisor E^j and blows up the whole intersection E^{j₁} ∩ ⋯ ∩ E^{j_r}. Here every irreducible component of E^j has its own exponent (the order of the ideal along that component, the fine monomial split of Hironaka/Resolution/Algebraic/MarkedOrderReduction/MonomialPart.lean), and the centre at a phase is a set of faces with a common label tuple, each of which contributes its own exceptional component with its own exponent. With one component per label the two procedures coincide. The refinement is forced by functoriality under open immersions: with one exponent per possibly reducible member the procedure is not even compatible with restriction to an open subscheme (HironakaExamples/Monomial/Examples.lean, coarseX and coarseU, and the computation split_coarse_runs of HironakaExamples/Monomial/Example112.lean). Not in the sources in this form.

The measure decreases under a blow-up along choice st r (Hironaka/Resolution/Algebraic/Monomial/Measure.lean); the phases and their termination are Hironaka/Resolution/Algebraic/Monomial/Step3Phases.lean. The geometric realisation of the state on a scheme is Hironaka.Monomial.PieceFamily (Hironaka/Resolution/Algebraic/Monomial/Geometric/Pieces.lean), and the real-analytic strand (Hironaka/Resolution/Analytic/OrderReduction/BMO/Step3Monomial/) runs the same combinatorial procedure on its own piece families.

The combinatorial state of the monomial procedure of [Kol07, 111, Step 3]. Components and labels are natural numbers below nextComp and nextLabel; label c is the divisor E^j the component c belongs to, a c its exponent; nerve is the family of faces (nonempty sets of components with nonempty common intersection): down-closed, every face of size at most the dimension bound n, with injective labels. Dead components lie in no face.

Instances For
    theorem Hironaka.Monomial.MonomialState.ext {x y : MonomialState} (n : x.n = y.n) (m : x.m = y.m) (nextComp : x.nextComp = y.nextComp) (nextLabel : x.nextLabel = y.nextLabel) (label : x.label = y.label) (a : x.a = y.a) (nerve : x.nerve = y.nerve) :
    x = y

    The sum a(T) = ∑_{c ∈ T} a_c of the exponents of a set of components.

    Equations
    Instances For

      The set of labels of a set of components.

      Equations
      Instances For

        The elements of a finset of naturals as an increasing list: the numbers below sup + 1 that lie in the set. (Mathlib's Finset.sort is defined by well-founded recursion and does not reduce in the kernel; this enumeration does, so that the example computations run by decide.)

        Equations
        Instances For

          The label tuple of a face: its labels as an increasing list, Kollár's (j₁ < ⋯ < j_r), compared lexicographically.

          Equations
          Instances For
            theorem Hironaka.Monomial.MonomialState.total_insert (st : MonomialState) {T : Finset ℕ} {c : ℕ} (hc : c ∉ T) :
            st.total (insert c T) = st.a c + st.total T
            theorem Hironaka.Monomial.MonomialState.total_erase_add (st : MonomialState) {T : Finset ℕ} {c : ℕ} (hc : c ∈ T) :
            st.total (T.erase c) + st.a c = st.total T
            theorem Hironaka.Monomial.MonomialState.lt_nextComp_of_mem (st : MonomialState) {T : Finset ℕ} (hT : T ∈ st.nerve) {c : ℕ} (hc : c ∈ T) :
            c < st.nextComp

            A face of the nerve has all its components below nextComp.

            theorem Hironaka.Monomial.MonomialState.mem_nerve_of_subset (st : MonomialState) {T T' : Finset ℕ} (hT : T ∈ st.nerve) (h : T' ⊆ T) (hne : T'.Nonempty) :
            T' ∈ st.nerve

            The nonempty subsets of a face are faces.

            Kollár's measure and (∗_s) #

            The faces of size r.

            Equations
            Instances For

              Kollár's m_r(E) of [Kol07, 111, Step 3.r]: the maximal sum of an r-face (0 if there is none).

              Equations
              Instances For

                Kollár's n_r(E) of [Kol07, 111, Step 3.r]: the number of r-faces achieving m_r(E).

                Equations
                Instances For

                  Kollár's pair (m_r(E), n_r(E)) of [Kol07, 111, Step 3.2 and 3.r] in the lexicographic order ℕ ×ₗ ℕ.

                  Equations
                  Instances For

                    Kollár's condition (∗_s) of [Kol07, 111, Step 3.r]: every face of size s has sum < m.

                    Equations
                    Instances For
                      theorem Hironaka.Monomial.MonomialState.maxTotal_le (st : MonomialState) {r b : ℕ} (h : ∀ T ∈ st.faces r, st.total T ≤ b) :
                      st.maxTotal r ≤ b

                      (∗_0) holds vacuously: faces are nonempty.

                      theorem Hironaka.Monomial.MonomialState.star_of_lt (st : MonomialState) {s : ℕ} (hs : st.n < s) :
                      st.Star s

                      (∗_s) holds vacuously for s > n: faces have size at most n.

                      Kollár's choice #

                      The candidates at phase r: the faces of size r of sum ≥ m.

                      Equations
                      Instances For

                        The candidates of maximal sum.

                        Equations
                        Instances For

                          Kollár's choice at phase r ([Kol07, 111, Steps 3.1, 3.2 and 3.r]): the faces of size r of maximal sum among those of sum ≥ m whose label tuple is lexicographically smallest among the maximizers; empty when no r-face has sum ≥ m. With one component per label these are the faces of the lexicographically smallest (j₁ < ⋯ < j_r) with E^{j₁} ∩ ⋯ ∩ E^{j_r} ≠ ∅ and a_{j₁} + ⋯ + a_{j_r} ≥ m maximal, as in the source.

                          Equations
                          Instances For
                            theorem Hironaka.Monomial.MonomialState.mem_maximizers (st : MonomialState) {r : ℕ} {T : Finset ℕ} :
                            T ∈ st.maximizers r ↔ T ∈ st.faces r ∧ st.m ≤ st.total T ∧ ∀ T' ∈ st.faces r, st.m ≤ st.total T' → st.total T' ≤ st.total T
                            theorem Hironaka.Monomial.MonomialState.mem_choice (st : MonomialState) {r : ℕ} {T : Finset ℕ} :
                            T ∈ st.choice r ↔ T ∈ st.faces r ∧ st.m ≤ st.total T ∧ (∀ T' ∈ st.faces r, st.m ≤ st.total T' → st.total T' ≤ st.total T) ∧ ∀ T' ∈ st.faces r, st.total T' = st.total T → st.labelTuple T ≤ st.labelTuple T'

                            The characterization of Kollár's choice: the faces of size r of sum ≥ m and of maximal sum among those, whose label tuple is lexicographically smallest among the faces of that sum.

                            theorem Hironaka.Monomial.MonomialState.total_eq_of_mem_choice (st : MonomialState) {r : ℕ} {T T' : Finset ℕ} (h : T ∈ st.choice r) (h' : T' ∈ st.choice r) :
                            st.total T = st.total T'

                            The faces of the center have a common sum.

                            The faces of the center have a common label tuple.

                            The faces of the center are the r-faces of sum m_r, when the center is nonempty.

                            Kollár's choice is empty exactly when (∗_r) holds.

                            The transition #

                            The nerve rule for the faces of a centre S, with c P the new component of the face P: the old faces containing no face of the centre, and for each P ∈ S the faces T₁ ∪ {c P} with T₁ ∪ P an old face and no face of the centre inside T₁.

                            Equations
                            Instances For
                              theorem Hironaka.Monomial.MonomialState.mem_blowUpNerve {N S : Finset (Finset ℕ)} {c : Finset ℕ → ℕ} {T : Finset ℕ} :
                              T ∈ blowUpNerve N S c ↔ (T ∈ N ∧ ∀ P ∈ S, ¬P ⊆ T) ∨ ∃ P ∈ S, ∃ (T₁ : Finset ℕ), (T₁ = ∅ ∨ T₁ ∈ N) ∧ T₁ ∪ P ∈ N ∧ (∀ Q ∈ S, ¬Q ⊆ T₁) ∧ T = insert (c P) T₁

                              The components of a face as an increasing list: the key ordering the faces of a center.

                              Equations
                              Instances For

                                The rank of the face P among the faces of the center S, in the order of faceList.

                                Equations
                                Instances For

                                  The new component allocated to the face P of the center S: nextComp + rank S P.

                                  Equations
                                  Instances For

                                    The transition for a centre S ([Kol07, 111, Step 3.2 and 3.r]: the new divisor is put last with exponent a_{j₁} + ⋯ + a_{j_r} - m). New label nextLabel; for each P ∈ S a new component newComp S P with label nextLabel and exponent a(P) - m; the other exponents and labels unchanged; the nerve transformed by the rule of blowUpNerve.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For

                                      The transition, read off #

                                      theorem Hironaka.Monomial.MonomialState.blowUp_a_of_lt (st : MonomialState) (S : Finset (Finset ℕ)) {c : ℕ} (hc : c < st.nextComp) :
                                      (st.blowUp S).a c = st.a c

                                      The new components carry the new label.

                                      theorem Hironaka.Monomial.MonomialState.blowUp_a_newComp (st : MonomialState) (S : Finset (Finset ℕ)) {P : Finset ℕ} (hP : P ∈ S) :
                                      (st.blowUp S).a (st.newComp S P) = st.total P - st.m

                                      The new component of the face P has exponent a(P) - m.

                                      theorem Hironaka.Monomial.MonomialState.blowUp_total_of_lt (st : MonomialState) (S : Finset (Finset ℕ)) {T : Finset ℕ} (hT : ∀ c ∈ T, c < st.nextComp) :
                                      (st.blowUp S).total T = st.total T

                                      The sum of a set of old components is unchanged.

                                      theorem Hironaka.Monomial.MonomialState.blowUp_total_insert_newComp (st : MonomialState) (S : Finset (Finset ℕ)) {P T₁ : Finset ℕ} (hP : P ∈ S) (hT₁ : ∀ c ∈ T₁, c < st.nextComp) :
                                      (st.blowUp S).total (insert (st.newComp S P) T₁) = st.total P - st.m + st.total T₁

                                      The sum of a new face T₁ ∪ {c_P}: a(T₁) + (a(P) - m).

                                      A centre: a finset of faces with a common label tuple (each face of sum ≥ m is the admissibility condition, not part of this predicate).

                                      Equations
                                      Instances For

                                        Kollár's choice is a center.

                                        theorem Hironaka.Monomial.MonomialState.eq_of_isCenter_of_subset (st : MonomialState) (S : Finset (Finset ℕ)) {P Q T : Finset ℕ} (hS : st.IsCenter S) (hP : P ∈ S) (hQ : Q ∈ S) (hT : T ∈ st.nerve) (hPT : P ⊆ T) (hQT : Q ⊆ T) :
                                        P = Q

                                        Two faces of a center contained in a common face are equal (the components of a label are disjoint: a face has injective labels).

                                        theorem Hironaka.Monomial.MonomialState.mem_blowUp_nerve (st : MonomialState) (S : Finset (Finset ℕ)) {T : Finset ℕ} (hS : st.IsCenter S) :
                                        T ∈ (st.blowUp S).nerve ↔ (T ∈ st.nerve ∧ ∀ P ∈ S, ¬P ⊆ T) ∨ ∃ P ∈ S, ∃ (T₁ : Finset ℕ), T₁ ∪ P ∈ st.nerve ∧ ¬P ⊆ T₁ ∧ T = insert (st.newComp S P) T₁

                                        For a centre, the rule reads as stated in the module docstring: the new faces of P are the T₁ ∪ {c_P} with T₁ ∪ P ∈ N and P ⊄ T₁.

                                        A decidable constructor (for the example computations by decide) #

                                        def Hironaka.Monomial.MonomialState.Valid (n m k L : ℕ) (label : ℕ → ℕ) (N : Finset (Finset ℕ)) :

                                        The invariants of a state with bounded quantifiers, decidable for concrete data.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          @[instance_reducible]
                                          instance Hironaka.Monomial.MonomialState.decidableValid (n m k L : ℕ) (label : ℕ → ℕ) (N : Finset (Finset ℕ)) :
                                          Decidable (Valid n m k L label N)
                                          Equations
                                          def Hironaka.Monomial.MonomialState.ofValid (n m k L : ℕ) (label a : ℕ → ℕ) (N : Finset (Finset ℕ)) (h : Valid n m k L label N) :

                                          A state from checked data (the invariants by decide on concrete data).

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For

                                            The data of a monomial state are Valid (its six invariants).