Isomorphisms over an open of the target: composition, monotonicity, transport #
The predicate f.IsIsoOver V (f restricts to an isomorphism f⁻¹V → V; condition (2) of a
resolution in [Hir64, Introduction], clause (2) of [Kol07, Theorem 45]) and its bookkeeping, needed
to read off that the resolution morphism is an isomorphism over the simple locus piece by piece:
Hom.restrictSet_comp: the restriction of a composite is the composite of the restrictions;Hom.isIsoOver_of_isOpenImmersion: an open immersion is an isomorphism over every open subset of its range (the point-level criterionisIso_restrictTo_of_bijOn_of_bijective_stalkMap);Hom.IsIsoOver.comp:f ≫ gis an isomorphism overVwhengis overVandfoverg⁻¹V;Hom.IsIsoOver.mono: an isomorphism over the openVis one over every openP ⊆ V(the criterion again, frominjOn/surjOn/the stalk maps overV);Hom.IsIsoOver.of_isIso_restrictSet_comm:IsIsoOvertransports along an isomorphism over the base (exists_restrictSet_isIso_of_restrictSet_isIso_of_subsetofHironaka/Resolution/Analytic/Kol07Thm45/AmbientFactorizationTransport.lean).
Routine; used by Hironaka/Resolution/Analytic/Kol07Thm45/Glue/OverIsoReg.lean and
Hironaka/Resolution/Analytic/Kol07Thm45/CoproductLevelPair.lean.
The restriction of a composite to opens is the composite of the restrictions: both agree
after the open immersion Z|U'' ⟶ Z (Hom.restrictTo_comp_ofRestrict).
The restriction of a composite is the composite of the restrictions — Hom.restrictTo_comp
at the opens openOf (the two spellings of (f ≫ g)⁻¹V are definitionally equal).
An open immersion is an isomorphism over every open subset of its range: on g⁻¹V → V it is
a bijection with bijective stalk maps (isIso_restrictTo_of_bijOn_of_bijective_stalkMap).
f ≫ g is an isomorphism over V when g is one over V and f one over g⁻¹V
(Hom.restrictSet_comp).
An isomorphism over the open V is one over every open P ⊆ V: on f⁻¹P → P the map is a
bijection (injOn/surjOn over V) with bijective stalk maps
(bijective_stalkMap_of_isIso_restrictSet), so the point-level criterion applies.
IsIsoOver transports along an isomorphism over the base: with e : Y|f⁻¹O ≅ Y'|f'⁻¹O over
X|O and an open P ⊆ O, f' an isomorphism over P makes f one — f|P = e' ≫ f'|P for the
restriction e' of e (exists_restrictSet_isIso_of_restrictSet_isIso_of_subset).