Documentation

Hironaka.Resolution.Analytic.MaximalContact.OneStepDescentLemmas

Bookkeeping for the one-step descent of agreement #

Small lemmas used by the proof of agreeOnSubspace_blowUpLift (Hironaka/Resolution/Analytic/MaximalContact/OneStepDescent.lean):

The colon by a principal ideal #

theorem Ideal.mem_colon_span_singleton_iff {R : Type u_1} [CommRing R] (I : Ideal R) (e x : R) :

Values through local homomorphisms; germs of an ideal vanish on its cosupport #

theorem Hironaka.Manifold.eval_map_of_isLocalHom {๐•œ : Type} [RCLike ๐•œ] {E : Type v} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {N : Type u} [TopologicalSpace N] [ChartedSpace E N] {a : M} {b : N} (G : โ†‘((Manifold.structureSheaf ๐•œ E M).presheaf.stalk a) โ†’+* โ†‘((Manifold.structureSheaf ๐•œ E N).presheaf.stalk b)) [IsLocalHom G] (hG : โˆ€ (c : ๐•œ), G ((Manifold.const ๐•œ E M a) c) = (Manifold.const ๐•œ E N b) c) (s : โ†‘((Manifold.structureSheaf ๐•œ E M).presheaf.stalk a)) :
(Manifold.eval ๐•œ E N b) (G s) = (Manifold.eval ๐•œ E M a) s

A local ring homomorphism of stalks fixing the constants preserves the values of germs.

theorem Hironaka.Manifold.stalkIdeal_le_vanishingStalk_of_subset_cosupport {๐•œ : Type} [RCLike ๐•œ] {E : Type v} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {Z : Set M} (J : Manifold.IdealSheaf (Manifold.structureSheaf ๐•œ E M)) (hZ : Z โІ J.support) (a : M) :

Kollรกr's "Z_i^U โІ W_i" [Kol07, Theorem 97, proof] read at the level of ideals: if the closed set Z lies in the cosupport of J, every germ of J vanishes on Z โ€” J_a โІ I_{Z,a} for the vanishing ideal of Z (vanishingStalk).

Transport of stalks along an equality of points #

noncomputable def Hironaka.Manifold.stalkCast {๐•œ : Type} [RCLike ๐•œ] {E : Type v} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {x y : M} (h : x = y) :
โ†‘((Manifold.structureSheaf ๐•œ E M).presheaf.stalk x) โ†’+* โ†‘((Manifold.structureSheaf ๐•œ E M).presheaf.stalk y)

The transport ๐’ช_{M,x} โ†’ ๐’ช_{M,y} along x = y (the identity after subst).

Equations
Instances For
    theorem Hironaka.Manifold.stalkCast_germ {๐•œ : Type} [RCLike ๐•œ] {E : Type v} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {x y : M} (h : x = y) {W : TopologicalSpace.Opens M} (hx : x โˆˆ W) (hy : y โˆˆ W) (s : โ†‘((Manifold.structureSheaf ๐•œ E M).presheaf.obj (Opposite.op W))) :
    theorem Hironaka.Manifold.stalkCast_const {๐•œ : Type} [RCLike ๐•œ] {E : Type v} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {x y : M} (h : x = y) (c : ๐•œ) :
    (stalkCast h) ((Manifold.const ๐•œ E M x) c) = (Manifold.const ๐•œ E M y) c
    theorem Hironaka.Manifold.stalkCast_coord {๐•œ : Type} [RCLike ๐•œ] {E : Type v} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {n : โ„•} (ฯˆ : E โ‰ƒL[๐•œ] Fin n โ†’ ๐•œ) {x y : M} (h : x = y) {ฯ† : OpenPartialHomeomorph M E} (hฯ† : ฯ† โˆˆ IsManifold.maximalAtlas (modelWithCornersSelf ๐•œ E) โŠค M) (hx : x โˆˆ ฯ†.source) (hy : y โˆˆ ฯ†.source) (i : Fin n) :
    (stalkCast h) (Manifold.coord E ฯˆ ฯ† hฯ† hx i) = Manifold.coord E ฯˆ ฯ† hฯ† hy i
    instance Hironaka.Manifold.isLocalHom_stalkCast {๐•œ : Type} [RCLike ๐•œ] {E : Type v} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {x y : M} (h : x = y) :

    Functoriality of the stalk maps on a commuting square; the pointwise criterion #

    theorem Hironaka.Manifold.stalkCast_germMap_germ {๐•œ : Type} [RCLike ๐•œ] {E : Type v} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {M M' : AnalyticManifold ๐•œ E} (ฯ€ : AnalyticMap M' M) {x y : M'.carrier} (h : x = y) {V : TopologicalSpace.Opens M.carrier} (hV : ฯ€ x โˆˆ V) (hV' : ฯ€ y โˆˆ V) (t : โ†‘((Manifold.structureSheaf ๐•œ E M.carrier).presheaf.obj (Opposite.op V))) :
    (stalkCast h) ((Manifold.germMap โ‡‘ฯ€ โ‹ฏ x) ((CategoryTheory.ConcreteCategory.hom ((Manifold.structureSheaf ๐•œ E M.carrier).presheaf.germ V (ฯ€ x) hV)) t)) = (Manifold.germMap โ‡‘ฯ€ โ‹ฏ y) ((CategoryTheory.ConcreteCategory.hom ((Manifold.structureSheaf ๐•œ E M.carrier).presheaf.germ V (ฯ€ y) hV')) t)

    The transport commutes with the stalk map of ฯ€ on germs of sections.

    theorem Hironaka.Manifold.germMap_germMap_germ {๐•œ : Type} [RCLike ๐•œ] {E : Type v} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {U U' M M' : AnalyticManifold ๐•œ E} (f' : AnalyticMap U' M') (ฯ€ : AnalyticMap M' M) (ฯ€' : AnalyticMap U' U) (f : AnalyticMap U M) (hcomm : โˆ€ (x : U'.carrier), ฯ€ (f' x) = f (ฯ€' x)) (q : U'.carrier) {W : TopologicalSpace.Opens M.carrier} (hW : ฯ€ (f' q) โˆˆ W) (hW' : f (ฯ€' q) โˆˆ W) (h : โ†‘((Manifold.structureSheaf ๐•œ E M.carrier).presheaf.obj (Opposite.op W))) :
    (Manifold.germMap โ‡‘f' โ‹ฏ q) ((Manifold.germMap โ‡‘ฯ€ โ‹ฏ (f' q)) ((CategoryTheory.ConcreteCategory.hom ((Manifold.structureSheaf ๐•œ E M.carrier).presheaf.germ W (ฯ€ (f' q)) hW)) h)) = (Manifold.germMap โ‡‘ฯ€' โ‹ฏ q) ((Manifold.germMap โ‡‘f โ‹ฏ (ฯ€' q)) ((CategoryTheory.ConcreteCategory.hom ((Manifold.structureSheaf ๐•œ E M.carrier).presheaf.germ W (f (ฯ€' q)) hW')) h))

    Functoriality of the stalk maps on a commuting square ฯ€ โˆ˜ f' = f โˆ˜ ฯ€', on the germ of a section h at the common image point (the two membership proofs are separate, so no transport of stalks is needed).

    theorem Hironaka.Manifold.agreeOnSubspace_of_forall_sub_mem {๐•œ : Type} [RCLike ๐•œ] {E : Type v} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {U' M' : AnalyticManifold ๐•œ E} (f' g' : AnalyticMap U' M') (K : U'.IdealSheaf) (h : โˆ€ (q : U'.carrier), Manifold.IdealSheaf.stalkIdeal K q โ‰  โŠค โ†’ โˆƒ (hpp' : f' q = g' q), โˆ€ (s : โ†‘((Manifold.structureSheaf ๐•œ E M'.carrier).presheaf.stalk (f' q))), (Manifold.germMap โ‡‘f' โ‹ฏ q) s - (Manifold.germMap โ‡‘g' โ‹ฏ q) ((stalkCast hpp') s) โˆˆ Manifold.IdealSheaf.stalkIdeal K q) :

    The pointwise criterion for AgreeOnSubspace f' g' K: at every point q where K_q โ‰  โŠค, the two maps agree, f' q = g' q, and their stalk maps agree modulo K_q on every germ at that point (the second read through the transport along f' q = g' q).