Module

RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.lean

Nyll.AlgebraicCurves.RelativeDivisors.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
74 declarations indexed from sourceView source ↗

Splitting a relative divisor along a section

Splits a relative divisor into the graph of a section and a residual divisor.

Declarations

AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.eq_span_singleton_mul_colon
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
section ring
variable {R : Type*} [CommRing R]
open _root_.Ideal
theorem eq_span_singleton_mul_colon (I : Ideal R) (f : R) (h : I ≤ span {f}) :
    I = span {f} * I.colon {f}
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.span_singleton_mul_right_injective_of_mem
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
section ring
variable {R : Type*} [CommRing R]
open _root_.Ideal
theorem span_singleton_mul_right_injective_of_mem {f : R} (hf : f ∈ nonZeroDivisors R)
    {J J' : Ideal R} (h : span {f} * J = span {f} * J') : J = J'
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.map_colon_of_finite
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
section ring
variable {R : Type*} [CommRing R]
open _root_.Ideal
theorem map_colon_of_finite (M : Submonoid R) (S : Type*) [CommRing S] [Algebra R S]
    [IsLocalization M S] (I : Ideal R) {T : Set R} (hT : T.Finite) :
    (I.colon T).map (algebraMap R S) = (I.map (algebraMap R S)).colon (algebraMap R S '' T)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.map_colon_span_of_finite
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
section ring
variable {R : Type*} [CommRing R]
open _root_.Ideal
theorem map_colon_span_of_finite (M : Submonoid R) (S : Type*) [CommRing S] [Algebra R S]
    [IsLocalization M S] (I : Ideal R) {T : Set R} (hT : T.Finite) :
    (I.colon (Ideal.span T)).map (algebraMap R S) =
      (I.map (algebraMap R S)).colon ((Ideal.span T).map (algebraMap R S))
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.ker_mkQ_comp_toSpanSingleton
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
section ring
variable {R : Type*} [CommRing R]
open _root_.Ideal
theorem ker_mkQ_comp_toSpanSingleton (I : Ideal R) (f : R) :
    LinearMap.ker (I.mkQ ∘ₗ LinearMap.toSpanSingleton R R f) = I.colon {f}
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.range_mkQ_comp_toSpanSingleton
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
section ring
variable {R : Type*} [CommRing R]
open _root_.Ideal
theorem range_mkQ_comp_toSpanSingleton (I : Ideal R) (f : R) :
    LinearMap.range (I.mkQ ∘ₗ LinearMap.toSpanSingleton R R f) =
      Submodule.map I.mkQ (Ideal.span {f})
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.quotColonEquivMapSpan

Multiplication by f identifies the quotient by the colon ideal with the image of (f) in R/I.

Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
section ring
variable {R : Type*} [CommRing R]
open _root_.Ideal
def quotColonEquivMapSpan (I : Ideal R) (f : R) :
    (R ⧸ I.colon {f}) ≃ₗ[R] ↥(Submodule.map I.mkQ (Ideal.span {f}))
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.colonSheaf

The ideal sheaf whose affine ideals are I : 𝔞, using finite generation to commute with localization.

Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
section sheaf
variable {X : Scheme.{u}}
open _root_.AlgebraicGeometry.Scheme
def colonSheaf (I 𝔞 : X.IdealSheafData)
    (h𝔞 : ∀ U : X.affineOpens, (𝔞.ideal U).FG) : X.IdealSheafData where
  ideal U := (I.ideal U).colon (𝔞.ideal U)
  map_ideal_basicOpen U f := by
    obtain ⟨T, hT⟩ := h𝔞 U
    have := U.2.isLocalization_basicOpen f
    have key := map_colon_span_of_finite (Submonoid.powers f) Γ(X, X.basicOpen f)
      (I.ideal U) (T := (T : Set Γ(X, U.1))) T.finite_toSet
    rw [hT] at key
    have halg : algebraMap Γ(X, U.1) Γ(X, X.basicOpen f) =
        (X.presheaf.map (homOfLE <| X.basicOpen_le f).op).hom := rfl
    rw [halg] at key
    exact key.trans (congrArg₂ (fun (J K : Ideal Γ(X, X.basicOpen f)) => J.colon K)
      (I.map_ideal_basicOpen U f) (𝔞.map_ideal_basicOpen U f))
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.ideal_colonSheaf
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
section sheaf
variable {X : Scheme.{u}}
open _root_.AlgebraicGeometry.Scheme
lemma ideal_colonSheaf (I 𝔞 : X.IdealSheafData)
    (h𝔞 : ∀ U : X.affineOpens, (𝔞.ideal U).FG) (U : X.affineOpens) :
    (colonSheaf I 𝔞 h𝔞).ideal U = (I.ideal U).colon (𝔞.ideal U)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.graphHom

The graph of a₀ in the fibre product over its fixed base morphism.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
abbrev graphHom (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t) : T ⟶ pullback c t
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.exists_affineOpen_ker_graph_eq_span_nonZeroDivisor
Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
theorem exists_affineOpen_ker_graph_eq_span_nonZeroDivisor (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
    (x : ↥(pullback c t)) :
    ∃ U : (pullback c t).affineOpens, x ∈ U.1 ∧
      ∃ g ∈ nonZeroDivisors Γ(pullback c t, U.1), (graphHom a₀ h₀).ker.ideal U = Ideal.span {g}
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.fg_ideal_of_forall_exists_span
Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
theorem fg_ideal_of_forall_exists_span {X : Scheme.{u}} (𝔞 : X.IdealSheafData)
    (hloc : ∀ x : X, ∃ V : X.affineOpens, x ∈ V.1 ∧
      ∃ g : Γ(X, V.1), 𝔞.ideal V = Ideal.span {g})
    (U : X.affineOpens) : (𝔞.ideal U).FG
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.ker_graphHom_fg
Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
theorem ker_graphHom_fg (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t) (U : (pullback c t).affineOpens) :
    ((graphHom a₀ h₀).ker.ideal U).FG
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.residualSheaf

The residual ideal of D obtained by taking its colon by the graph ideal.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
def residualSheaf {r : ℕ} (D : RelEffCartierDiv c (r + 1) t)
    (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t) : (pullback c t).IdealSheafData
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.I_eq_ker_mul_residualSheaf
Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
theorem I_eq_ker_mul_residualSheaf {r : ℕ} (D : RelEffCartierDiv c (r + 1) t)
    (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
    (hle : D.I ≤ (graphHom a₀ h₀).ker) :
    D.I = (graphHom a₀ h₀).ker * residualSheaf D a₀ h₀
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.isClosedImmersion_inclusion
Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
theorem isClosedImmersion_inclusion {X : Scheme.{u}} {I J : X.IdealSheafData} (h : I ≤ J) :
    IsClosedImmersion (Scheme.IdealSheafData.inclusion h)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.le_residualSheaf
Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
theorem le_residualSheaf {r : ℕ} (D : RelEffCartierDiv c (r + 1) t)
    (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t) : D.I ≤ residualSheaf D a₀ h₀
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.isFinite_residualSheaf
Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
theorem isFinite_residualSheaf {r : ℕ} (D : RelEffCartierDiv c (r + 1) t)
    (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t) :
    IsFinite ((residualSheaf D a₀ h₀).subschemeι ≫ pullback.snd c t)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.flat_ker_of_surjective
Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
section moduleGrain
variable {R : Type*} [CommRing R]
theorem flat_ker_of_surjective {A B : Type*} [AddCommGroup A] [Module R A]
    [AddCommGroup B] [Module R B] [Module.Flat R A] [Module.Projective R B]
    (f : A →ₗ[R] B) (hf : Function.Surjective f) :
    Module.Flat R (LinearMap.ker f)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.flat_localizedModule_of_flat
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem flat_localizedModule_of_flat {R₀ A : Type v} [CommRing R₀] [CommRing A] [Algebra R₀ A]
    (p : Submonoid A)
    {M : Type v} [AddCommGroup M] [Module R₀ M] [Module A M] [IsScalarTower R₀ A M]
    [Module.Flat R₀ M] : Module.Flat R₀ (LocalizedModule p M)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.hom_predicate_seam
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem hom_predicate_seam {Z Y : Scheme.{u}} (q : Z ⟶ Y) (U : Y.Opens)
    (P : ∀ {R S : CommRingCat.{u}}, (R ⟶ S) → Prop) :
    P ((q ∣_ U).appTop) ↔ P (q.appLE U (q ⁻¹ᵁ U) le_rfl)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.exists_affineOpen_le_span_nonZeroDivisor
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem exists_affineOpen_le_span_nonZeroDivisor (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
    {V₀ : TopologicalSpace.Opens ↥(pullback c t)} {x : ↥(pullback c t)} (hx : x ∈ V₀) :
    ∃ W : (pullback c t).affineOpens, x ∈ W.1 ∧ W.1 ≤ V₀ ∧
      ∃ g ∈ nonZeroDivisors Γ(pullback c t, W.1),
        (graphHom a₀ h₀).ker.ideal W = Ideal.span {g}
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.graphHom_snd
Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
omit [IsSeparated c] [SmoothOfRelativeDimension 1 c] in
theorem graphHom_snd (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t) :
    graphHom a₀ h₀ ≫ pullback.snd c t = 𝟙 T
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.isClosedImmersion_graphHom
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
instance isClosedImmersion_graphHom (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t) :
    IsClosedImmersion (graphHom a₀ h₀)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.isIso_ker_graphHom_subschemeι_snd
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
instance isIso_ker_graphHom_subschemeι_snd (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t) :
    IsIso ((graphHom a₀ h₀).ker.subschemeι ≫ pullback.snd c t)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.mk_subschemeObjIso_inclusion_appLE
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem mk_subschemeObjIso_inclusion_appLE {X : Scheme.{u}} {I J : X.IdealSheafData}
    (h : I ≤ J) (W : X.affineOpens) :
    CommRingCat.ofHom (Ideal.Quotient.mk (I.ideal W)) ≫ ((I.subschemeObjIso W).inv ≫
      ((Scheme.IdealSheafData.inclusion h).app (I.subschemeι ⁻¹ᵁ W.1) ≫
        J.subscheme.presheaf.map (eqToHom (by
          rw [← Scheme.IdealSheafData.inclusion_subschemeι h]; rfl :
            J.subschemeι ⁻¹ᵁ W.1 =
              Scheme.IdealSheafData.inclusion h ⁻¹ᵁ (I.subschemeι ⁻¹ᵁ W.1))).op) ≫
      (J.subschemeObjIso W).hom) =
    CommRingCat.ofHom (Ideal.Quotient.mk (J.ideal W)) := by
  have h1 := Scheme.Hom.congr_app (Scheme.IdealSheafData.inclusion_subschemeι h) W.1
  rw [Scheme.Hom.comp_app] at h1
  simp only [← Category.assoc]
  rw [← Scheme.IdealSheafData.subschemeι_app, h1]
  have hpre : J.subschemeι ⁻¹ᵁ W.1 =
      Scheme.IdealSheafData.inclusion h ⁻¹ᵁ (I.subschemeι ⁻¹ᵁ W.1) := by
    rw [← Scheme.IdealSheafData.inclusion_subschemeι h]
    rfl
  change ((J.subschemeι.app W.1 ≫ J.subscheme.presheaf.map (eqToHom hpre.symm).op) ≫
    J.subscheme.presheaf.map (eqToHom hpre).op) ≫ (J.subschemeObjIso W).hom = _
  simp only [Category.assoc, ← Functor.map_comp, ← op_comp, eqToHom_trans,
    eqToHom_refl, op_id]
  erw [CategoryTheory.Functor.map_id]
  simp only [Category.id_comp, Scheme.IdealSheafData.subschemeι_app,
    Category.assoc, Iso.inv_hom_id, Category.comp_id]
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.presheaf_map_injective_of_eq
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem presheaf_map_injective_of_eq {X : Scheme.{u}} {U V : X.Opens} (hUV : U = V)
    (i : Opposite.op V ⟶ Opposite.op U) : Function.Injective (X.presheaf.map i).hom
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.inclusion_app_mk_eq_zero_iff
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem inclusion_app_mk_eq_zero_iff {X : Scheme.{u}} {I J : X.IdealSheafData} (h : I ≤ J)
    (W : X.affineOpens) (y : Γ(X, W.1)) :
    ((Scheme.IdealSheafData.inclusion h).app (I.subschemeι ⁻¹ᵁ W.1)).hom
        ((I.subschemeObjIso W).inv.hom (Ideal.Quotient.mk (I.ideal W) y)) = 0 ↔
      y ∈ J.ideal W
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.subschemeObjIso_inv_mk_surjective
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem subschemeObjIso_inv_mk_surjective {X : Scheme.{u}} (I : X.IdealSheafData)
    (W : X.affineOpens) :
    Function.Surjective fun y : Γ(X, W.1) =>
      (I.subschemeObjIso W).inv.hom (Ideal.Quotient.mk (I.ideal W) y) :=
  (ConcreteCategory.bijective_of_isIso (I.subschemeObjIso W).inv).2.comp
    Ideal.Quotient.mk_surjective
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.finite_ker_of_surjective
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem finite_ker_of_surjective {R : Type*} [CommRing R] {A B : Type*} [AddCommGroup A]
    [Module R A] [AddCommGroup B] [Module R B] [Module.Finite R A] [Module.Projective R B]
    (f : A →ₗ[R] B) (hf : Function.Surjective f) :
    Module.Finite R (LinearMap.ker f)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.nonempty_linearEquiv_prod_of_surjective
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem nonempty_linearEquiv_prod_of_surjective {R : Type*} [CommRing R] {A B : Type*}
    [AddCommGroup A] [Module R A] [AddCommGroup B] [Module R B] [Module.Projective R B]
    (f : A →ₗ[R] B) (hf : Function.Surjective f) :
    Nonempty (A ≃ₗ[R] (LinearMap.ker f × B))
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.forall_finrank_eq_iff_of_isAffine
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem forall_finrank_eq_iff_of_isAffine {X Y : Scheme.{u}} [IsAffine X] [IsAffine Y]
    (g : X ⟶ Y) [Flat g] [IsFinite g] (n : ℕ) :
    (∀ y : Y, g.finrank y = n) ↔
      ∀ x : PrimeSpectrum Γ(Y, ⊤), g.appTop.hom.finrank x = n
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.forall_mem_finrank_eq_iff
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem forall_mem_finrank_eq_iff {Z Y : Scheme.{u}} (q : Z ⟶ Y) [Flat q] [IsFinite q]
    (U : Y.affineOpens) (n : ℕ) :
    (∀ s ∈ U.1, q.finrank s = n) ↔
      ∀ x : PrimeSpectrum Γ(Y, U.1), (q.appLE U.1 (q ⁻¹ᵁ U.1) le_rfl).hom.finrank x = n
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.algRA
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
instance algRA : Algebra Rᵤ Aᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.algAB
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
instance algAB : Algebra Aᵤ Bᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.algRB
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
instance algRB : Algebra Rᵤ Bᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.towerRAB
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
instance towerRAB : IsScalarTower Rᵤ Aᵤ Bᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.isFinite_subschemeι_comp_snd
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
instance isFinite_subschemeι_comp_snd : IsFinite (D.I.subschemeι ≫ pullback.snd c t)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.flat_subschemeι_comp_snd
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
instance flat_subschemeι_comp_snd : Flat (D.I.subschemeι ≫ pullback.snd c t)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.algRC
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
instance algRC : Algebra Rᵤ Cᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.flat_A
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
omit [IsSeparated c] [SmoothOfRelativeDimension 1 c] in
theorem flat_A : Module.Flat Rᵤ Aᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.finite_A
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
omit [IsSeparated c] [SmoothOfRelativeDimension 1 c] in
theorem finite_A : Module.Finite Rᵤ Aᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.inclusion_comp_eq_subschemeι
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
theorem inclusion_comp_eq_subschemeι :
    Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
      (D.I.subschemeι ≫ pullback.snd c t) =
    (residualSheaf D a₀ h₀).subschemeι ≫ pullback.snd c t
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.isFinite_inclusion_comp
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
instance isFinite_inclusion_comp :
    IsFinite (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
      (D.I.subschemeι ≫ pullback.snd c t))
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.finite_B
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
theorem finite_B : Module.Finite Rᵤ Bᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.inclusion_comp_eq_ker_subschemeι
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
omit [IsSeparated c] [SmoothOfRelativeDimension 1 c] in
theorem inclusion_comp_eq_ker_subschemeι :
    Scheme.IdealSheafData.inclusion hle ≫ (D.I.subschemeι ≫ pullback.snd c t) =
      (graphHom a₀ h₀).ker.subschemeι ≫ pullback.snd c t
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.isIso_inclusion_comp
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
instance isIso_inclusion_comp :
    IsIso (Scheme.IdealSheafData.inclusion hle ≫ (D.I.subschemeι ≫ pullback.snd c t))
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.isIso_app_inclusion_comp
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
instance isIso_app_inclusion_comp :
    IsIso ((Scheme.IdealSheafData.inclusion hle ≫
      (D.I.subschemeι ≫ pullback.snd c t)).app U.1)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.algEquivC

The sections of the graph subscheme are identified with the base sections via its projection.

Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
def algEquivC : Rᵤ ≃ₐ[Rᵤ] Cᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.free_C
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
instance free_C : Module.Free Rᵤ Cᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.finite_C
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
instance finite_C : Module.Finite Rᵤ Cᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.inclusion_app_comp_algebraMap
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
omit [IsSeparated c] [SmoothOfRelativeDimension 1 c] in
theorem inclusion_app_comp_algebraMap :
    ((Scheme.IdealSheafData.inclusion hle).app
        ((D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)).hom.comp (algebraMap Rᵤ Aᵤ) =
      algebraMap Rᵤ Cᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.πC

The restriction of sections from the divisor subscheme to the contained graph subscheme.

Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
def πC : Aᵤ →ₐ[Rᵤ] Cᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.πC_surjective
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
omit [IsSeparated c] [SmoothOfRelativeDimension 1 c] in
theorem πC_surjective : Function.Surjective (πC D a₀ h₀ hle U)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.kerπCEquiv

The canonical linear equivalence between the ring kernel and linear kernel of this restriction.

Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
def kerπCEquiv : (RingHom.ker (πC D a₀ h₀ hle U).toRingHom) ≃ₗ[Rᵤ]
    ↥(LinearMap.ker (πC D a₀ h₀ hle U).toLinearMap)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.flat_kerπC
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
omit [SmoothOfRelativeDimension 1 c] in
theorem flat_kerπC : Module.Flat Rᵤ (RingHom.ker (πC D a₀ h₀ hle U).toRingHom)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.finite_kerπC
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
omit [SmoothOfRelativeDimension 1 c] in
theorem finite_kerπC : Module.Finite Rᵤ (RingHom.ker (πC D a₀ h₀ hle U).toRingHom)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.residualBasicOpenAlgebra
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
section localizedChart
instance residualBasicOpenAlgebra (h : Aᵤ) : Algebra
      Γ((residualSheaf D a₀ h₀).subscheme,
        (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
          (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1)
      Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h))
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.divisorBasicOpenAlgebra
Source context 16 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
section localizedChart
noncomputable local instance residualBasicOpenAlgebra (h : Aᵤ) : Algebra
      Γ((residualSheaf D a₀ h₀).subscheme,
        (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
          (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1)
      Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h)) :=
    (((residualSheaf D a₀ h₀).subscheme.presheaf.map (homOfLE
      ((residualSheaf D a₀ h₀).subscheme.basicOpen_le _)).op).hom).toAlgebra
instance divisorBasicOpenAlgebra (h : Aᵤ) : Algebra Γ(D.I.subscheme,
  (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
      Γ(D.I.subscheme, D.I.subscheme.basicOpen h)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.residualBasicOpenAlgebraOverDivisor
Source context 17 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
section localizedChart
noncomputable local instance residualBasicOpenAlgebra (h : Aᵤ) : Algebra
      Γ((residualSheaf D a₀ h₀).subscheme,
        (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
          (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1)
      Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h)) :=
    (((residualSheaf D a₀ h₀).subscheme.presheaf.map (homOfLE
      ((residualSheaf D a₀ h₀).subscheme.basicOpen_le _)).op).hom).toAlgebra
noncomputable local instance divisorBasicOpenAlgebra (h : Aᵤ) : Algebra Γ(D.I.subscheme,
  (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
      Γ(D.I.subscheme, D.I.subscheme.basicOpen h) :=
    ((D.I.subscheme.presheaf.map (homOfLE
      (D.I.subscheme.basicOpen_le h)).op).hom).toAlgebra
instance residualBasicOpenAlgebraOverDivisor (h : Aᵤ) : Algebra
  Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
      Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h))
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.divisorBasicOpenIsLocalization
Source context 18 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
section localizedChart
noncomputable local instance residualBasicOpenAlgebra (h : Aᵤ) : Algebra
      Γ((residualSheaf D a₀ h₀).subscheme,
        (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
          (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1)
      Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h)) :=
    (((residualSheaf D a₀ h₀).subscheme.presheaf.map (homOfLE
      ((residualSheaf D a₀ h₀).subscheme.basicOpen_le _)).op).hom).toAlgebra
noncomputable local instance divisorBasicOpenAlgebra (h : Aᵤ) : Algebra Γ(D.I.subscheme,
  (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
      Γ(D.I.subscheme, D.I.subscheme.basicOpen h) :=
    ((D.I.subscheme.presheaf.map (homOfLE
      (D.I.subscheme.basicOpen_le h)).op).hom).toAlgebra
noncomputable local instance residualBasicOpenAlgebraOverDivisor (h : Aᵤ) : Algebra
  Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
      Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h)) :=
    ((algebraMap Γ((residualSheaf D a₀ h₀).subscheme,
        (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
          (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1)
        Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h))).comp
      (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
        Γ((residualSheaf D a₀ h₀).subscheme,
        (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
          (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1))).toAlgebra
instance divisorBasicOpenIsLocalization (h : Aᵤ) :
    IsLocalization.Away h Γ(D.I.subscheme, D.I.subscheme.basicOpen h)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.basicOpen_sections_equiv_kernel
Source context 19 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
section localizedChart
noncomputable local instance residualBasicOpenAlgebra (h : Aᵤ) : Algebra
      Γ((residualSheaf D a₀ h₀).subscheme,
        (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
          (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1)
      Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h)) :=
    (((residualSheaf D a₀ h₀).subscheme.presheaf.map (homOfLE
      ((residualSheaf D a₀ h₀).subscheme.basicOpen_le _)).op).hom).toAlgebra
noncomputable local instance divisorBasicOpenAlgebra (h : Aᵤ) : Algebra Γ(D.I.subscheme,
  (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
      Γ(D.I.subscheme, D.I.subscheme.basicOpen h) :=
    ((D.I.subscheme.presheaf.map (homOfLE
      (D.I.subscheme.basicOpen_le h)).op).hom).toAlgebra
noncomputable local instance residualBasicOpenAlgebraOverDivisor (h : Aᵤ) : Algebra
  Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
      Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h)) :=
    ((algebraMap Γ((residualSheaf D a₀ h₀).subscheme,
        (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
          (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1)
        Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h))).comp
      (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
        Γ((residualSheaf D a₀ h₀).subscheme,
        (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
          (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1))).toAlgebra
local instance divisorBasicOpenIsLocalization (h : Aᵤ) :
    IsLocalization.Away h Γ(D.I.subscheme, D.I.subscheme.basicOpen h) :=
  (U.2.preimage (D.I.subschemeι ≫ pullback.snd c t)).isLocalization_basicOpen h
theorem basicOpen_sections_equiv_kernel
    (W : (pullback c t).affineOpens) (hWle : W.1 ≤ (pullback.snd c t) ⁻¹ᵁ U.1)
    (g : Γ(pullback c t, W.1)) (hgspan : (graphHom a₀ h₀).ker.ideal W = Ideal.span {g})
    (h : Aᵤ) (hhle : D.I.subscheme.basicOpen h ≤ D.I.subschemeι ⁻¹ᵁ W.1) :
    Nonempty (Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h)) ≃ₗ[Γ(D.I.subscheme,
                  (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)]
      ↥((RingHom.ker (πC D a₀ h₀ hle U).toRingHom).localized'
        Γ(D.I.subscheme, D.I.subscheme.basicOpen h) (Submonoid.powers h)
        (Algebra.linearMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
          Γ(D.I.subscheme, D.I.subscheme.basicOpen h))))
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.localizedModule_equiv_of_chart
Source context 19 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
section localizedChart
noncomputable local instance residualBasicOpenAlgebra (h : Aᵤ) : Algebra
      Γ((residualSheaf D a₀ h₀).subscheme,
        (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
          (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1)
      Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h)) :=
    (((residualSheaf D a₀ h₀).subscheme.presheaf.map (homOfLE
      ((residualSheaf D a₀ h₀).subscheme.basicOpen_le _)).op).hom).toAlgebra
noncomputable local instance divisorBasicOpenAlgebra (h : Aᵤ) : Algebra Γ(D.I.subscheme,
  (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
      Γ(D.I.subscheme, D.I.subscheme.basicOpen h) :=
    ((D.I.subscheme.presheaf.map (homOfLE
      (D.I.subscheme.basicOpen_le h)).op).hom).toAlgebra
noncomputable local instance residualBasicOpenAlgebraOverDivisor (h : Aᵤ) : Algebra
  Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
      Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h)) :=
    ((algebraMap Γ((residualSheaf D a₀ h₀).subscheme,
        (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
          (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1)
        Γ((residualSheaf D a₀ h₀).subscheme,
        (residualSheaf D a₀ h₀).subscheme.basicOpen
          (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
            Γ((residualSheaf D a₀ h₀).subscheme,
              (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
                (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1) h))).comp
      (algebraMap Γ(D.I.subscheme, (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1)
        Γ((residualSheaf D a₀ h₀).subscheme,
        (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
          (D.I.subschemeι ≫ pullback.snd c t)) ⁻¹ᵁ U.1))).toAlgebra
local instance divisorBasicOpenIsLocalization (h : Aᵤ) :
    IsLocalization.Away h Γ(D.I.subscheme, D.I.subscheme.basicOpen h) :=
  (U.2.preimage (D.I.subschemeι ≫ pullback.snd c t)).isLocalization_basicOpen h
theorem localizedModule_equiv_of_chart
    (W : (pullback c t).affineOpens) (hWle : W.1 ≤ (pullback.snd c t) ⁻¹ᵁ U.1)
    (g : Γ(pullback c t, W.1)) (hgspan : (graphHom a₀ h₀).ker.ideal W = Ideal.span {g})
    (h : Aᵤ) (hhle : D.I.subscheme.basicOpen h ≤ D.I.subschemeι ⁻¹ᵁ W.1) :
    Nonempty (LocalizedModule (Submonoid.powers h) Bᵤ ≃ₗ[Aᵤ]
      LocalizedModule (Submonoid.powers h) (RingHom.ker (πC D a₀ h₀ hle U).toRingHom))
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.exists_basicOpen_localizedModule_equiv
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
theorem exists_basicOpen_localizedModule_equiv (z : D.I.subscheme)
    (hz : z ∈ (D.I.subschemeι ≫ pullback.snd c t) ⁻¹ᵁ U.1) :
    ∃ h : Aᵤ, z ∈ D.I.subscheme.basicOpen h ∧
      Nonempty (LocalizedModule (Submonoid.powers h) Bᵤ ≃ₗ[Aᵤ]
        LocalizedModule (Submonoid.powers h) (RingHom.ker (πC D a₀ h₀ hle U).toRingHom))
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.span_setOf_localizedModule_equiv_eq_top
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
theorem span_setOf_localizedModule_equiv_eq_top :
    Ideal.span {h : Aᵤ | Nonempty (LocalizedModule (Submonoid.powers h) Bᵤ ≃ₗ[Aᵤ]
      LocalizedModule (Submonoid.powers h) (RingHom.ker (πC D a₀ h₀ hle U).toRingHom))} =
    ⊤
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.flat_B
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
include hle in
theorem flat_B : Module.Flat Rᵤ Bᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.rankAtStalk_A
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
omit [IsSeparated c] [SmoothOfRelativeDimension 1 c] in
theorem rankAtStalk_A (x : PrimeSpectrum Rᵤ) : Module.rankAtStalk (R := Rᵤ) Aᵤ x = r + 1
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.rankAtStalk_kerπC
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
omit [SmoothOfRelativeDimension 1 c] in
theorem rankAtStalk_kerπC (x : PrimeSpectrum Rᵤ) :
    Module.rankAtStalk (R := Rᵤ) (RingHom.ker (πC D a₀ h₀ hle U).toRingHom) x = r
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.rankAtStalk_B
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
include hle in
theorem rankAtStalk_B (x : PrimeSpectrum Rᵤ) : Module.rankAtStalk (R := Rᵤ) Bᵤ x = r
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.finitePresentation_B
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
section chartModules
variable {r : ℕ} (D : RelEffCartierDiv c (r + 1) t) (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t)
  (hle : D.I ≤ (graphHom a₀ h₀).ker) (U : T.affineOpens)
local notation "Rᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace (T)))))
  (Opposite.op (Subtype.val U))
local notation "Aᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (RelEffCartierDiv.I D))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫
        pullback.snd c t))))) (Subtype.val U)))
local notation "Bᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (residualSheaf D a₀ h₀))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion (le_residualSheaf D a₀ h₀) ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
local notation "Cᵤ" => Functor.obj (D := CommRingCat) (PresheafedSpace.presheaf
  (SheafedSpace.toPresheafedSpace
    (LocallyRingedSpace.toSheafedSpace (Scheme.toLocallyRingedSpace
      (Scheme.IdealSheafData.subscheme (Scheme.Hom.ker (graphHom a₀ h₀)))))))
  (Opposite.op (Functor.obj (TopologicalSpace.Opens.map (PresheafedSpace.Hom.base
    (LocallyRingedSpace.Hom.toHom
      (Scheme.Hom.toLRSHom (Scheme.IdealSheafData.inclusion hle ≫
        (Scheme.IdealSheafData.subschemeι (RelEffCartierDiv.I D) ≫ pullback.snd c t))))))
        (Subtype.val U)))
include hle in
theorem finitePresentation_B : Module.FinitePresentation Rᵤ Bᵤ
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.flat_residualSheaf
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem flat_residualSheaf {r : ℕ} (D : RelEffCartierDiv c (r + 1) t)
    (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t) (hle : D.I ≤ (graphHom a₀ h₀).ker) :
    Flat ((residualSheaf D a₀ h₀).subschemeι ≫ pullback.snd c t)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.locallyOfFinitePresentation_residualSheaf
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem locallyOfFinitePresentation_residualSheaf {r : ℕ} (D : RelEffCartierDiv c (r + 1) t)
    (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t) (hle : D.I ≤ (graphHom a₀ h₀).ker) :
    LocallyOfFinitePresentation ((residualSheaf D a₀ h₀).subschemeι ≫ pullback.snd c t)
AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul.ResidualSplitting.finrank_residualSheaf
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
namespace ResidualSplitting
open _root_.AlgebraicGeometry.Scheme
variable {C S₀ : Scheme.{u}} {c : C ⟶ S₀}
  [IsSeparated c] [SmoothOfRelativeDimension 1 c]
  {T : Scheme.{u}} {t : T ⟶ S₀}
universe v in
theorem finrank_residualSheaf {r : ℕ} (D : RelEffCartierDiv c (r + 1) t)
    (a₀ : T ⟶ C) (h₀ : a₀ ≫ c = t) (hle : D.I ≤ (graphHom a₀ h₀).ker) (s : T) :
    ((residualSheaf D a₀ h₀).subschemeι ≫ pullback.snd c t).finrank s = r
AlgebraicGeometry.RelEffCartierDiv.exists_I_eq_ker_graphOver_mul
Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.RelativeDivisors.Proofs.RelEffCartierDiv_exists_I_eq_ker_graphOver_mul
universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry
theorem _root_.AlgebraicGeometry.RelEffCartierDiv.exists_I_eq_ker_graphOver_mul
    {𝒞 S : Scheme.{u}} {f : 𝒞 ⟶ S} [IsSeparated f] [SmoothOfRelativeDimension 1 f] {r : ℕ}
    {T : Scheme.{u}} {g : T ⟶ S} (D : RelEffCartierDiv f (r + 1) g)
    (a : T ⟶ 𝒞) (ha : a ≫ f = g) (hle : D.I ≤ (graphOver f a ha).ker) :
    ∃ E : RelEffCartierDiv f r g, D.I = (graphOver f a ha).ker * E.I