@@ -125,11 +125,12 @@ protected lemma mk' {P : MorphismProperty Scheme} [P.RespectsIso]
125125 (of_sSup_eq_top :
126126 ∀ {X Y : Scheme.{u}} (f : X ⟶ Y) {ι : Type u} (U : ι → Y.Opens), iSup U = ⊤ →
127127 (∀ i, P (f ∣_ U i)) → P f) :
128- IsZariskiLocalAtTarget P where
129- pullbackSnd 𝒰 i hf := (P.arrow_mk_iso_iff (morphismRestrictOpensRange _ _)).mp (restrict _ _ hf)
130- of_zeroHypercover {X Y f} 𝒰 h := by
131- refine of_sSup_eq_top f _ (Scheme.OpenCover.iSup_opensRange 𝒰) ?_
132- exact fun i ↦ (P.arrow_mk_iso_iff (morphismRestrictOpensRange f _)).mpr (h i)
128+ IsZariskiLocalAtTarget P := by
129+ refine .mk_of_iff_of_zeroHypercover fun {X Y} f 𝒰 ↦ ?_
130+ refine ⟨fun hf i ↦ (P.arrow_mk_iso_iff (morphismRestrictOpensRange _ _)).mp (restrict _ _ hf),
131+ fun h ↦ ?_⟩
132+ refine of_sSup_eq_top f _ (Scheme.OpenCover.iSup_opensRange <| .ulift 𝒰) ?_
133+ exact fun i ↦ (P.arrow_mk_iso_iff (morphismRestrictOpensRange f _)).mpr (h _)
133134
134135variable {P : MorphismProperty Scheme.{u}} [IsZariskiLocalAtTarget P]
135136 {X Y : Scheme.{u}} {f : X ⟶ Y} (𝒰 : Y.OpenCover)
@@ -233,18 +234,18 @@ protected lemma mk' {P : MorphismProperty Scheme} [P.RespectsIso]
233234 (of_sSup_eq_top :
234235 ∀ {X Y : Scheme.{u}} (f : X ⟶ Y) {ι : Type u} (U : ι → X.Opens), iSup U = ⊤ →
235236 (∀ i, P ((U i).ι ≫ f)) → P f) :
236- IsZariskiLocalAtSource P where
237- comp 𝒰 i H := by
238- rw [← IsOpenImmersion.isoOfRangeEq_hom_fac (𝒰.f i) (Scheme.Opens.ι _)
237+ IsZariskiLocalAtSource P := by
238+ refine .mk_of_iff_of_zeroHypercover fun {X Y} f 𝒰 ↦ ⟨ fun hf i ↦ ?_, fun hf ↦ ?_⟩
239+ · rw [← IsOpenImmersion.isoOfRangeEq_hom_fac (𝒰.f i) (Scheme.Opens.ι _)
239240 (congr_arg Opens.carrier (𝒰.f i).opensRange.opensRange_ι.symm), Category.assoc,
240241 P.cancel_left_of_respectsIso]
241- exact restrict _ _ H
242- of_zeroHypercover {X Y} f 𝒰 h := by
243- refine of_sSup_eq_top f _ (Scheme.OpenCover.iSup_opensRange 𝒰) fun i ↦ ?_
244- rw [← IsOpenImmersion.isoOfRangeEq_inv_fac (𝒰.f i ) (Scheme.Opens.ι _)
245- (congr_arg Opens.carrier (𝒰.f i ).opensRange.opensRange_ι.symm), Category.assoc,
242+ exact restrict _ _ hf
243+ · refine of_sSup_eq_top f _ (Scheme.OpenCover.iSup_opensRange <| .ulift 𝒰) fun i ↦ ?_
244+ dsimp
245+ rw [← IsOpenImmersion.isoOfRangeEq_inv_fac (𝒰.f _ ) (Scheme.Opens.ι _)
246+ (congr_arg Opens.carrier (𝒰.f _ ).opensRange.opensRange_ι.symm), Category.assoc,
246247 P.cancel_left_of_respectsIso]
247- exact h _
248+ exact hf _
248249
249250variable {P : MorphismProperty Scheme.{u}} [IsZariskiLocalAtSource P]
250251variable {X Y : Scheme.{u}} {f : X ⟶ Y} (𝒰 : X.OpenCover)
@@ -286,13 +287,12 @@ lemma of_isOpenImmersion [P.ContainsIdentities] [IsOpenImmersion f] : P f :=
286287
287288lemma isZariskiLocalAtTarget [P.IsMultiplicative]
288289 (hP : ∀ {X Y Z : Scheme.{u}} (f : X ⟶ Y) (g : Y ⟶ Z) [IsOpenImmersion g], P (f ≫ g) → P f) :
289- IsZariskiLocalAtTarget P where
290- pullbackSnd {X Y} f 𝒰 i hf := by
291- apply hP _ (𝒰.f i)
290+ IsZariskiLocalAtTarget P := by
291+ refine .mk_of_iff_of_zeroHypercover fun {X Y} f 𝒰 ↦ ⟨ fun hf i ↦ ?_, fun h ↦ ?_⟩
292+ · apply hP _ (𝒰.f i)
292293 rw [← pullback.condition]
293294 exact IsZariskiLocalAtSource.comp hf _
294- of_zeroHypercover {X Y} f 𝒰 h := by
295- rw [P.iff_of_zeroHypercover_source (𝒰.pullback₁ f)]
295+ · rw [P.iff_of_zeroHypercover_source (𝒰.pullback₁ f)]
296296 intro i
297297 rw [← Scheme.Cover.pullbackHom_map]
298298 exact P.comp_mem _ _ (h i) (of_isOpenImmersion _)
@@ -646,13 +646,16 @@ theorem isStableUnderBaseChange (hP' : Q.IsStableUnderBaseChange) :
646646lemma isZariskiLocalAtSource
647647 (H : ∀ {X Y : Scheme.{u}} (f : X ⟶ Y) [IsAffine Y] (𝒰 : Scheme.OpenCover.{u} X),
648648 Q f ↔ ∀ i, Q (𝒰.f i ≫ f)) : IsZariskiLocalAtSource P := by
649- refine .mk_of_iff ?_
650- intro X Y f 𝒰
651- simp_rw [IsZariskiLocalAtTarget.iff_of_iSup_eq_top _ (iSup_affineOpens_eq_top Y)]
652- rw [forall_comm]
653- refine forall_congr' fun U ↦ ?_
654- simp_rw [HasAffineProperty.iff_of_isAffine, morphismRestrict_comp]
655- exact @H _ _ (f ∣_ U.1 ) U.2 (Scheme.OpenCover.restrict 𝒰 (f ⁻¹ᵁ U.1 ))
649+ refine .mk_of_small (fun {X Y f} 𝒰 hf ↦ ?_) (fun {X Y f} 𝒰 hf ↦ ?_) <;>
650+ simp_rw [IsZariskiLocalAtTarget.iff_of_iSup_eq_top _ (iSup_affineOpens_eq_top Y),
651+ HasAffineProperty.iff_of_isAffine, morphismRestrict_comp] at hf ⊢
652+ · intro i U
653+ let 𝒰' : X.OpenCover := (Scheme.Cover.ulift 𝒰).add (𝒰.f i)
654+ exact (H (f ∣_ U.1 ) (𝒰'.restrict _)).mp (hf _) none
655+ · intro U
656+ rw [H (f ∣_ U.1 ) (Scheme.OpenCover.restrict 𝒰 _)]
657+ intro i
658+ exact hf _ _
656659
657660end HasAffineProperty
658661
0 commit comments