Flat qcqs base change identifies the actual sections with the tensor product.
Source context 9 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
open CategoryTheory CategoryTheory.Limits
open scoped TensorProduct
namespace AlgebraicGeometry
universe u
variable {X S T : Scheme.{u}} (f : X ⟶ S) (g : T ⟶ S)
variable [QuasiCompact f] [QuasiSeparated f] [Flat g]
variable {U : S.Opens} {V : T.Opens} (hU : IsAffineOpen U) (hV : IsAffineOpen V)
variable (hVU : V ≤ g ⁻¹ᵁ U)def affinePullbackSectionsTensorEquiv :
let : Algebra Γ(S, U) Γ(T, V) := (g.appLE U V hVU).hom.toAlgebra
let : Algebra Γ(S, U) Γ(X, f ⁻¹ᵁ U) := (f.app U).hom.toAlgebra
let : Algebra Γ(T, V) Γ(pullback f g, pullback.snd f g ⁻¹ᵁ V) :=
((pullback.snd f g).app V).hom.toAlgebra
Γ(T, V) ⊗[Γ(S, U)] Γ(X, f ⁻¹ᵁ U) ≃ₐ[Γ(T, V)]
Γ(pullback f g, pullback.snd f g ⁻¹ᵁ V) := by
intro hRT hRX hTP
have hOpen : pullback.snd f g ⁻¹ᵁ V =
pullback.fst f g ⁻¹ᵁ (f ⁻¹ᵁ U) ⊓ pullback.snd f g ⁻¹ᵁ V := by
rw [← Scheme.Hom.comp_preimage, pullback.condition, Scheme.Hom.comp_preimage,
← Scheme.Hom.preimage_inf, inf_eq_right.mpr hVU]
have hSourceSection := isIso_pushoutSection_of_isQuasiSeparated_of_flat_right
(IsPullback.of_hasPullback f g) hVU le_rfl (UY := pullback.snd f g ⁻¹ᵁ V)
hOpen
hU hV (f.isCompact_preimage hU.isCompact) (f.isQuasiSeparated_preimage hU.isQuasiSeparated)
let e₀ := (CommRingCat.isPushout_tensorProduct Γ(S, U) Γ(T, V) Γ(X, f ⁻¹ᵁ U)).flip.isoPushout ≪≫
(pushout.congrHom f.app_eq_appLE rfl ≪≫ asIso
(pushoutSection (IsPullback.of_hasPullback f g) hVU le_rfl
(UY := pullback.snd f g ⁻¹ᵁ V) hOpen))
let e : Γ(T, V) ⊗[Γ(S, U)] Γ(X, f ⁻¹ᵁ U) ≃ₐ[Γ(T, V)]
Γ(pullback f g, pullback.snd f g ⁻¹ᵁ V) :=
{ toRingEquiv := e₀.commRingCatIsoToRingEquiv
commutes' r := by
change (CommRingCat.ofHom Algebra.TensorProduct.includeLeftRingHom ≫ e₀.hom) r =
(pullback.snd f g).app V r
congr 2
simp only [e₀, Iso.trans_hom, asIso_hom,
IsPushout.inr_isoPushout_hom_assoc, pushout.congrHom_hom, pushout.inr_desc_assoc,
Category.id_comp, pushout.inr_desc, Scheme.Hom.app_eq_appLE] }
exact e