Documentation

Hironaka.Manifold.IdealSheaf.LogDeriv

The logarithmic derivative ideal sheaf D(โˆ’log S)(๐“˜) along a hypersurface #

Kollรกr's logarithmic derivatives along a smooth hypersurface S [Kol07, 87]: the sheaf Der_X(โˆ’log S) of derivations preserving the ideal of S, which in local coordinates with S = (xโ‚ = 0) is "Der_X(โˆ’log S) = โŸจxโ‚ โˆ‚/โˆ‚xโ‚, โˆ‚/โˆ‚xโ‚‚, โ€ฆ, โˆ‚/โˆ‚xโ‚™โŸฉ", and the logarithmic derivative D(โˆ’log S)(I) of an ideal sheaf, generated by I and the images of I under these derivations, with its iterates D^{r+1}(โˆ’log S)(I) := D(โˆ’log S)(D^r(โˆ’log S)(I)).

The definition is stalkwise and chart-free: the stalk of D(โˆ’log S)(J) at a is the Hironaka library's Ideal.logDerivative ๐•œ (I_{S,a}) J_a = J_a โŠ” โˆ‘_ฮด โŸจฮด J_aโŸฉ over the ๐•œ-derivations ฮด of ๐’ช_{M,a} preserving the stalk I_{S,a} of the reduced ideal sheaf of the hypersurface (IsClosedSubmanifold.idealSheaf, itself chart-independent). The family of stalks has local generators (so IdealSheaf.ofStalks applies, as for deriv): in a chart adapted to S with S = (x_h = 0), the derivations x_h โˆ‚_h and โˆ‚_j (j โ‰  h) generate the preserving derivations at every point of the chart โ€” at a point of S because a derivation is โˆ‘_i ฮด(x_i โˆ’ x_i(a)) โˆ‚_i and ฮด(x_h) โˆˆ (x_h), at a point off S because x_h is a unit there and all derivations preserve the unit ideal โ€” so on the chart the germs of the generators f_j of J, of x_h โˆ‚_h f_j and of โˆ‚_i f_j (i โ‰  h) generate the stalks (Kollรกr's "D(f_1, โ€ฆ, f_s) = (f_i, โˆ‚f_i/โˆ‚x_j)" with โˆ‚_h weighted by x_h). The iterates D^r(โˆ’log S)(J) are logDerivIter. Their properties are in Hironaka/Manifold/IdealSheaf/LogDerivLemmas.lean and their restriction to S in Hironaka/Manifold/IdealSheaf/LogDerivRestrict.lean.

The algebraic span lemma for D(โˆ’log J) #

theorem Ideal.logDerivative_span_eq_of_span {k : Type u_1} {A : Type u_2} [CommRing k] [CommRing A] [Algebra k A] {ฮน : Type u_3} (der : ฮน โ†’ Derivation k A A) {J : Ideal A} (hder : โˆ€ (i : ฮน), (der i).PreservesIdeal J) (h : โˆ€ (ฮด : Derivation k A A), ฮด.PreservesIdeal J โ†’ ฮด โˆˆ Submodule.span A (Set.range der)) (S : Set A) :
logDerivative k J (span S) = span (S โˆช โ‹ƒ (i : ฮน), โ‡‘(der i) '' S)

Ideal.derivative_span_eq_of_span for the logarithmic derivative (Kollรกr's description of D(โˆ’log S) in coordinates, [Kol07, 87]): if the derivations der i preserve J and span (over A) the derivations preserving J, then D(โˆ’log J)(โŸจSโŸฉ) = โŸจS โˆช โ‹ƒ_i der i '' SโŸฉ.

The coordinate logarithmic derivations x_h โˆ‚_h, โˆ‚_j (j โ‰  h) at a point of a chart #

noncomputable def Manifold.logCoordDerivStalk {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) (ฯ† : OpenPartialHomeomorph M E) (hฯ† : ฯ† โˆˆ IsManifold.maximalAtlas (modelWithCornersSelf ๐•œ E) โŠค M) {a : M} (ha : a โˆˆ ฯ†.source) (h i : Fin n) :
Derivation ๐•œ โ†‘((structureSheaf ๐•œ E M).presheaf.stalk a) โ†‘((structureSheaf ๐•œ E M).presheaf.stalk a)

Kollรกr's generators of Der_X(โˆ’log S) in coordinates with S = (x_h = 0) [Kol07, 87]: the family i โ†ฆ x_h โˆ‚_h for i = h, โˆ‚_i otherwise, on the stalk at a.

Equations
Instances For
    theorem Manifold.logCoordDerivStalk_self {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) (ฯ† : OpenPartialHomeomorph M E) (hฯ† : ฯ† โˆˆ IsManifold.maximalAtlas (modelWithCornersSelf ๐•œ E) โŠค M) {a : M} (ha : a โˆˆ ฯ†.source) (h : Fin n) :
    logCoordDerivStalk E ฯˆ ฯ† hฯ† ha h h = coord E ฯˆ ฯ† hฯ† ha h โ€ข coordDerivStalk E ฯˆ ฯ† hฯ† ha h
    theorem Manifold.logCoordDerivStalk_of_ne {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) (ฯ† : OpenPartialHomeomorph M E) (hฯ† : ฯ† โˆˆ IsManifold.maximalAtlas (modelWithCornersSelf ๐•œ E) โŠค M) {a : M} (ha : a โˆˆ ฯ†.source) {h i : Fin n} (hi : i โ‰  h) :
    logCoordDerivStalk E ฯˆ ฯ† hฯ† ha h i = coordDerivStalk E ฯˆ ฯ† hฯ† ha i
    theorem Manifold.logCoordDerivStalk_preservesIdeal {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) (ฯ† : OpenPartialHomeomorph M E) (hฯ† : ฯ† โˆˆ IsManifold.maximalAtlas (modelWithCornersSelf ๐•œ E) โŠค M) {a : M} (ha : a โˆˆ ฯ†.source) (h i : Fin n) :
    (logCoordDerivStalk E ฯˆ ฯ† hฯ† ha h i).PreservesIdeal (Ideal.span {coord E ฯˆ ฯ† hฯ† ha h})

    Each x_h โˆ‚_h, โˆ‚_j (j โ‰  h) preserves the ideal (x_h) [Kol07, 87].

    theorem Manifold.mem_span_logCoordDerivStalk_of_preservesIdeal {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) (ฯ† : OpenPartialHomeomorph M E) (hฯ† : ฯ† โˆˆ IsManifold.maximalAtlas (modelWithCornersSelf ๐•œ E) โŠค M) {a : M} (ha : a โˆˆ ฯ†.source) (h : Fin n) (ฮด : Derivation ๐•œ โ†‘((structureSheaf ๐•œ E M).presheaf.stalk a) โ†‘((structureSheaf ๐•œ E M).presheaf.stalk a)) (hฮด : ฮด.PreservesIdeal (Ideal.span {coord E ฯˆ ฯ† hฯ† ha h})) :
    ฮด โˆˆ Submodule.span (โ†‘((structureSheaf ๐•œ E M).presheaf.stalk a)) (Set.range (logCoordDerivStalk E ฯˆ ฯ† hฯ† ha h))

    A derivation preserving (x_h) is an ๐’ช_{M,a}-combination of x_h โˆ‚_h and the โˆ‚_j, j โ‰  h ([Kol07, 87], from ฮด = โˆ‘_i ฮด(x_i โˆ’ x_i(a)) โˆ‚_i).

    theorem Manifold.logDerivative_span_coord_eq {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) (ฯ† : OpenPartialHomeomorph M E) (hฯ† : ฯ† โˆˆ IsManifold.maximalAtlas (modelWithCornersSelf ๐•œ E) โŠค M) {a : M} (ha : a โˆˆ ฯ†.source) (h : Fin n) (T : Set โ†‘((structureSheaf ๐•œ E M).presheaf.stalk a)) :
    Ideal.logDerivative ๐•œ (Ideal.span {coord E ฯˆ ฯ† hฯ† ha h}) (Ideal.span T) = Ideal.span (T โˆช โ‹ƒ (i : Fin n), โ‡‘(logCoordDerivStalk E ฯˆ ฯ† hฯ† ha h i) '' T)

    On the stalk at a point where x_h = 0: D(โˆ’log (x_h))(โŸจTโŸฉ) = โŸจT โˆช x_h โˆ‚_h T โˆช โ‹ƒ_{j โ‰  h} โˆ‚_j TโŸฉ ([Kol07, 87], in coordinates).

    theorem Manifold.derivative_span_eq_span_logCoordDerivStalk {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) (ฯ† : OpenPartialHomeomorph M E) (hฯ† : ฯ† โˆˆ IsManifold.maximalAtlas (modelWithCornersSelf ๐•œ E) โŠค M) {a : M} (ha : a โˆˆ ฯ†.source) (h : Fin n) (hu : IsUnit (coord E ฯˆ ฯ† hฯ† ha h)) (T : Set โ†‘((structureSheaf ๐•œ E M).presheaf.stalk a)) :
    Ideal.derivative ๐•œ (Ideal.span T) = Ideal.span (T โˆช โ‹ƒ (i : Fin n), โ‡‘(logCoordDerivStalk E ฯˆ ฯ† hฯ† ha h i) '' T)

    At a point where x_h is a unit (off the hypersurface), the same family generates the plain derivative: D(โŸจTโŸฉ) = โŸจT โˆช x_h โˆ‚_h T โˆช โ‹ƒ_{j โ‰  h} โˆ‚_j TโŸฉ.

    The section-level family and the local generators #

    noncomputable def Manifold.logCoordDerivSection {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) (ฯ† : OpenPartialHomeomorph M E) (hฯ† : ฯ† โˆˆ IsManifold.maximalAtlas (modelWithCornersSelf ๐•œ E) โŠค M) (V : TopologicalSpace.Opens M) (hV : โ†‘V โІ ฯ†.source) (h i : Fin n) (f : โ†‘((structureSheaf ๐•œ E M).presheaf.obj (Opposite.op V))) :
    โ†‘((structureSheaf ๐•œ E M).presheaf.obj (Opposite.op V))

    The section-level family f โ†ฆ x_h ยท โˆ‚_h f (i = h), f โ†ฆ โˆ‚_i f (i โ‰  h) over V.

    Equations
    Instances For
      theorem Manifold.germ_logCoordDerivSection {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) (ฯ† : OpenPartialHomeomorph M E) (hฯ† : ฯ† โˆˆ IsManifold.maximalAtlas (modelWithCornersSelf ๐•œ E) โŠค M) (V : TopologicalSpace.Opens M) (hV : โ†‘V โІ ฯ†.source) {b : M} (hb : b โˆˆ V) (h i : Fin n) (f : โ†‘((structureSheaf ๐•œ E M).presheaf.obj (Opposite.op V))) :
      (CategoryTheory.ConcreteCategory.hom ((structureSheaf ๐•œ E M).presheaf.germ V b hb)) (logCoordDerivSection E ฯˆ ฯ† hฯ† V hV h i f) = (logCoordDerivStalk E ฯˆ ฯ† hฯ† โ‹ฏ h i) ((CategoryTheory.ConcreteCategory.hom ((structureSheaf ๐•œ E M).presheaf.germ V b hb)) f)

      The germ of logCoordDerivSection is logCoordDerivStalk of the germ.

      theorem Manifold.logDerivative_stalkIdeal_eq_span {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) (ฯ† : OpenPartialHomeomorph M E) (hฯ† : ฯ† โˆˆ IsManifold.maximalAtlas (modelWithCornersSelf ๐•œ E) โŠค M) (V : TopologicalSpace.Opens M) (hV : โ†‘V โІ ฯ†.source) {S : Set M} (hS : IsClosedSubmanifold ฯˆ S 1) {ฯƒ : Fin 1 โ†ช Fin n} (hฯ†S : IsAdaptedChart ฯˆ S ฯ† ฯƒ) (J : IdealSheaf (structureSheaf ๐•œ E M)) {U : TopologicalSpace.Opens M} {k : โ„•} (f : Fin k โ†’ โ†‘((structureSheaf ๐•œ E M).presheaf.obj (Opposite.op U))) (hf : โˆ€ (b : M) (hb : b โˆˆ U), J.stalkIdeal b = Ideal.span (Set.range fun (j : Fin k) => (CategoryTheory.ConcreteCategory.hom ((structureSheaf ๐•œ E M).presheaf.germ U b hb)) (f j))) (hVU : V โ‰ค U) {b : M} (hb : b โˆˆ V) :

      Kollรกr's "D(f_1, โ€ฆ, f_s) = (f_i, โˆ‚f_i/โˆ‚x_j)" for the logarithmic derivative along the hypersurface S = (x_h = 0) of an adapted chart, uniformly on an open V of the chart contained in a generating open set U of J: at every b โˆˆ V the stalk D(โˆ’log S)(J)_b is generated by the germs of the f_j, of x_h โˆ‚_h f_j and of the โˆ‚_i f_j, i โ‰  h โ€” at b โˆˆ S by the description of the preserving derivations, at b โˆ‰ S because x_h(b) โ‰  0.

      theorem Manifold.hasLocalGenerators_logDerivative_stalkIdeal {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) {S : Set M} [IsManifold (modelWithCornersSelf ๐•œ E) โŠค M] (hS : IsClosedSubmanifold ฯˆ S 1) (J : IdealSheaf (structureSheaf ๐•œ E M)) :
      IdealSheaf.HasLocalGenerators fun (a : โ†‘โ†งM) => Ideal.logDerivative ๐•œ (hS.idealSheaf.stalkIdeal a) (J.stalkIdeal a)

      The logarithmic derivatives of the stalk ideals along a hypersurface have local generators: on an adapted chart at a point of S (the generators f_j, x_h โˆ‚_h f_j, โˆ‚_i f_j), and off S the plain derivatives.

      The logarithmic derivative ideal sheaf and its iterates #

      noncomputable def Manifold.IdealSheaf.logDeriv {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) {S : Set M} [IsManifold (modelWithCornersSelf ๐•œ E) โŠค M] (hS : IsClosedSubmanifold ฯˆ S 1) (J : IdealSheaf (structureSheaf ๐•œ E M)) :
      IdealSheaf (structureSheaf ๐•œ E M)

      The logarithmic derivative ideal sheaf D(โˆ’log S)(J) along a closed hypersurface S [Kol07, 87]: the locally finitely generated ideal sheaf whose stalk at a is Ideal.logDerivative ๐•œ (I_{S,a}) J_a โ€” generated by J_a and all ฮด f, f โˆˆ J_a, ฮด a ๐•œ-derivation of ๐’ช_{M,a} preserving the ideal of S; in an adapted chart S = (x_h = 0), by J_a, x_h โˆ‚_h f and โˆ‚_j f (j โ‰  h).

      Equations
      Instances For
        theorem Manifold.IdealSheaf.stalkIdeal_logDeriv {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) {S : Set M} [IsManifold (modelWithCornersSelf ๐•œ E) โŠค M] (hS : IsClosedSubmanifold ฯˆ S 1) (J : IdealSheaf (structureSheaf ๐•œ E M)) (a : M) :
        (logDeriv E ฯˆ hS J).stalkIdeal a = Ideal.logDerivative ๐•œ (hS.idealSheaf.stalkIdeal a) (J.stalkIdeal a)

        The stalk of D(โˆ’log S)(J) at a is D(โˆ’log I_{S,a})(J_a) (Ideal.logDerivative).

        noncomputable def Manifold.IdealSheaf.logDerivIter {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) {S : Set M} [IsManifold (modelWithCornersSelf ๐•œ E) โŠค M] (hS : IsClosedSubmanifold ฯˆ S 1) (r : โ„•) (J : IdealSheaf (structureSheaf ๐•œ E M)) :
        IdealSheaf (structureSheaf ๐•œ E M)

        The iterates D^r(โˆ’log S)(J) [Kol07, 87].

        Equations
        Instances For
          @[simp]
          theorem Manifold.IdealSheaf.logDerivIter_zero {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) {S : Set M} [IsManifold (modelWithCornersSelf ๐•œ E) โŠค M] (hS : IsClosedSubmanifold ฯˆ S 1) (J : IdealSheaf (structureSheaf ๐•œ E M)) :
          logDerivIter E ฯˆ hS 0 J = J
          @[simp]
          theorem Manifold.IdealSheaf.logDerivIter_succ {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) {S : Set M} [IsManifold (modelWithCornersSelf ๐•œ E) โŠค M] (hS : IsClosedSubmanifold ฯˆ S 1) (r : โ„•) (J : IdealSheaf (structureSheaf ๐•œ E M)) :
          logDerivIter E ฯˆ hS (r + 1) J = logDeriv E ฯˆ hS (logDerivIter E ฯˆ hS r J)
          theorem Manifold.IdealSheaf.logDerivIter_succ' {๐•œ : Type} [RCLike ๐•œ] (E : Type u_1) [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) {S : Set M} [IsManifold (modelWithCornersSelf ๐•œ E) โŠค M] (hS : IsClosedSubmanifold ฯˆ S 1) (r : โ„•) (J : IdealSheaf (structureSheaf ๐•œ E M)) :
          logDerivIter E ฯˆ hS (r + 1) J = logDerivIter E ฯˆ hS r (logDeriv E ฯˆ hS J)