Transport a finite stratification along an actual scheme isomorphism.
Source context 5 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
universe u
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X Y : Scheme.{u}}def ConstructibleStratification.mapIso (S : ConstructibleStratification X) (e : X ≅ Y) :
ConstructibleStratification Y where
I := S.I
finite := S.finite
stratum := S.stratum
map i := S.map i ≫ e.hom
isImmersion i := by
have : IsImmersion (S.map i) := S.isImmersion i
infer_instance
constructible_range i := by
change Topology.IsConstructible (Set.range (e.hom ∘ S.map i))
rw [Set.range_comp]
apply (S.constructible_range i).image_of_isOpenEmbedding e.hom.isOpenEmbedding
rw [Set.range_eq_univ.mpr e.hom.surjective]
exact IsRetrocompact.univ
disjoint := by
intro i j hij
apply Set.disjoint_left.mpr
rintro y ⟨x, hx⟩ ⟨z, hz⟩
have hxz : S.map i x = S.map j z :=
e.hom.isOpenEmbedding.injective (hx.trans hz.symm)
exact (S.disjoint hij).notMem_of_mem_left ⟨x, rfl⟩ ⟨z, hxz.symm⟩
cover y := by
obtain ⟨i, x, hx⟩ := S.cover (e.inv y)
refine ⟨i, x, ?_⟩
change e.hom (S.map i x) = y
rw [hx]
exact congrArg (fun f : Y ⟶ Y => f y) e.inv_hom_id