Detecting sheaf isomorphisms on a basis #
A morphism of sheaves on a topological space is an isomorphism when its components are isomorphisms on a basis of opens. The proof completes Mathlib's basiswise injectivity result with the matching surjectivity statement, then detects the isomorphism on stalks.
These results are topological sheaf theory: their signatures require a topological space, its opens, a basis, germs, and stalk functors, but no scheme.
Main results #
TopCat.Presheaf.stalkFunctor_map_surjective_of_isBasis— surjectivity on a basis implies surjectivity on every stalk;TopCat.Sheaf.isIso_of_isIso_app_of_isBasis— a sheaf morphism that is an isomorphism on a basis is an isomorphism.
Surjectivity on stalks may be checked on a basis.
The mirror image of Mathlib's stalkFunctor_map_injective_of_isBasis: every germ is
represented by a section over a basic open (germ_exist_of_isBasis), and a surjection there
lifts it.
A morphism of sheaves that is an isomorphism on a basis is an isomorphism.
Checked on stalks: injectivity is Mathlib's stalkFunctor_map_injective_of_isBasis and
surjectivity is stalkFunctor_map_surjective_of_isBasis above.
The hypotheses are written out rather than taken from a variable block: FC and CC do
not appear in the statement, so variable auto-inclusion drops the ConcreteCategory and
forget-preservation binders along with them.