Local homeomorphisms #
This file defines homeomorphisms between open subsets of topological spaces. An element e
of
LocalHomeomorph α β
is an extension of LocalEquiv α β
, i.e., it is a pair of functions
e.toFun
and e.invFun
, inverse of each other on the sets e.source
and e.target
.
Additionally, we require that these sets are open, and that the functions are continuous on them.
Equivalently, they are homeomorphisms there.
As in equivs, we register a coercion to functions, and we use e x
and e.symm x
throughout
instead of e.toFun x
and e.invFun x
.
Main definitions #
Homeomorph.toLocalHomeomorph
: associating a local homeomorphism to a homeomorphism, with
source = target = Set.univ
;
LocalHomeomorph.symm
: the inverse of a local homeomorphism
LocalHomeomorph.trans
: the composition of two local homeomorphisms
LocalHomeomorph.refl
: the identity local homeomorphism
LocalHomeomorph.ofSet
: the identity on a set s
LocalHomeomorph.EqOnSource
: equivalence relation describing the "right" notion of equality
for local homeomorphisms
Implementation notes #
Most statements are copied from their LocalEquiv
versions, although some care is required
especially when restricting to subsets, as these should be open subsets.
For design notes, see LocalEquiv.lean
.
Local coding conventions #
If a lemma deals with the intersection of a set with either source or target of a LocalEquiv
,
then it should use e.source ∩ s
or e.target ∩ t
, not s ∩ e.source
or t ∩ e.target
.
- toFun : α → β
- invFun : β → α
- source : Set α
- target : Set β
- map_target' : ∀ ⦃x : β⦄, x ∈ s.target → LocalEquiv.invFun s.toLocalEquiv x ∈ s.source
- left_inv' : ∀ ⦃x : α⦄, x ∈ s.source → LocalEquiv.invFun s.toLocalEquiv (↑s.toLocalEquiv x) = x
- right_inv' : ∀ ⦃x : β⦄, x ∈ s.target → ↑s.toLocalEquiv (LocalEquiv.invFun s.toLocalEquiv x) = x
- open_source : IsOpen s.source
- open_target : IsOpen s.target
- continuous_toFun : ContinuousOn (↑s.toLocalEquiv) s.source
- continuous_invFun : ContinuousOn s.invFun s.target
local homeomorphisms, defined on open subsets of the space
Instances For
Coercion of a local homeomorphisms to a function. We don't use e.toFun
because it is actually
e.toLocalEquiv.toFun
, so simp
will apply lemmas about toLocalEquiv
. While we may want to
switch to this behavior later, doing it mid-port will break a lot of proofs.
Equations
- ↑e = ↑e.toLocalEquiv
Instances For
Coercion of a LocalHomeomorph
to function. Note that a LocalHomeomorph
is not FunLike
.
Equations
- LocalHomeomorph.instCoeFunLocalHomeomorphForAll = { coe := fun e => ↑e }
The inverse of a local homeomorphism
Equations
- One or more equations did not get rendered due to their size.
Instances For
See Note [custom simps projection]. We need to specify this projection explicitly in this case, because it is a composition of multiple projections.
Equations
Instances For
See Note [custom simps projection]
Equations
Instances For
Interpret a Homeomorph
as a LocalHomeomorph
by restricting it
to an open set s
in the domain and to t
in the codomain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A homeomorphism induces a local homeomorphism on the whole space
Equations
- Homeomorph.toLocalHomeomorph e = Homeomorph.toLocalHomeomorphOfImageEq e Set.univ (_ : IsOpen Set.univ) Set.univ (_ : ↑e '' Set.univ = Set.univ)
Instances For
Replace toLocalEquiv
field to provide better definitional equalities.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Two local homeomorphisms are equal when they have equal toFun
, invFun
and source
.
It is not sufficient to have equal toFun
and source
, as this only determines invFun
on
the target. This would only be true for a weaker notion of equality, arguably the right one,
called eq_on_source
.
A local homeomorphism is continuous at any point of its source
A local homeomorphism inverse is continuous at any point of its target
This lemma is useful in the manifold library in the case that e
is a chart. It states that
locally around e x
the set e.symm ⁻¹' s
is the same as the set intersected with the target
of e
and some other neighborhood of f x
(which will be the source of a chart on γ
).
LocalHomeomorph.IsImage
relation #
We say that t : Set β
is an image of s : Set α
under a local homeomorphism e
if any of the
following equivalent conditions hold:
e '' (e.source ∩ s) = e.target ∩ t
;e.source ∩ e ⁻¹ t = e.source ∩ s
;∀ x ∈ e.source, e x ∈ t ↔ x ∈ s
(this one is used in the definition).
This definition is a restatement of LocalEquiv.IsImage
for local homeomorphisms. In this section
we transfer API about LocalEquiv.IsImage
to local homeomorphisms and add a few
LocalHomeomorph
-specific lemmas like LocalHomeomorph.IsImage.closure
.
We say that t : Set β
is an image of s : Set α
under a local homeomorphism e
if any of the
following equivalent conditions hold:
e '' (e.source ∩ s) = e.target ∩ t
;e.source ∩ e ⁻¹ t = e.source ∩ s
;∀ x ∈ e.source, e x ∈ t ↔ x ∈ s
(this one is used in the definition).
Instances For
Alias of the reverse direction of LocalHomeomorph.IsImage.iff_preimage_eq
.
Alias of the forward direction of LocalHomeomorph.IsImage.iff_preimage_eq
.
Alias of the forward direction of LocalHomeomorph.IsImage.iff_symm_preimage_eq
.
Alias of the reverse direction of LocalHomeomorph.IsImage.iff_symm_preimage_eq
.
Alias of the reverse direction of LocalHomeomorph.IsImage.iff_symm_preimage_eq'
.
Alias of the forward direction of LocalHomeomorph.IsImage.iff_symm_preimage_eq'
.
Alias of the forward direction of LocalHomeomorph.IsImage.iff_preimage_eq'
.
Alias of the reverse direction of LocalHomeomorph.IsImage.iff_preimage_eq'
.
Restrict a LocalHomeomorph
to a pair of corresponding open sets.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Preimage of interior or interior of preimage coincide for local homeomorphisms, when restricted to the source.
The image of an open set in the source is open.
The image of the restriction of an open set to the source is open.
A LocalEquiv
with continuous open forward map and an open source is a LocalHomeomorph
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A LocalEquiv
with continuous open forward map and an open source is a LocalHomeomorph
.
Equations
- LocalHomeomorph.ofContinuousOpen e hc ho hs = LocalHomeomorph.ofContinuousOpenRestrict e hc (_ : IsOpenMap (Set.restrict e.source ↑e)) hs
Instances For
Restricting a local homeomorphism e
to e.source ∩ s
when s
is open. This is sometimes hard
to use because of the openness assumption, but it has the advantage that when it can
be used then its local_equiv is defeq to local_equiv.restr
Equations
- LocalHomeomorph.restrOpen e s hs = LocalHomeomorph.IsImage.restr (_ : LocalHomeomorph.IsImage e s (↑(LocalHomeomorph.symm e) ⁻¹' s)) (_ : IsOpen (e.source ∩ s))
Instances For
Restricting a local homeomorphism e
to e.source ∩ interior s
. We use the interior to make
sure that the restriction is well defined whatever the set s, since local homeomorphisms are by
definition defined on open sets. In applications where s
is open, this coincides with the
restriction of local equivalences
Equations
- LocalHomeomorph.restr e s = LocalHomeomorph.restrOpen e (interior s) (_ : IsOpen (interior s))
Instances For
The identity on the whole space as a local homeomorphism.
Equations
Instances For
The identity local equiv on a set s
Equations
- One or more equations did not get rendered due to their size.
Instances For
Composition of two local homeomorphisms when the target of the first and the source of the second coincide.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Composing two local homeomorphisms, by restricting to the maximal domain where their composition is well defined.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Postcompose a local homeomorphism with a homeomorphism. We modify the source and target to have better definitional behavior.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Precompose a local homeomorphism with a homeomorphism. We modify the source and target to have better definitional behavior.
Equations
- One or more equations did not get rendered due to their size.
Instances For
EqOnSource e e'
means that e
and e'
have the same source, and coincide there. They
should really be considered the same local equiv.
Equations
- LocalHomeomorph.EqOnSource e e' = (e.source = e'.source ∧ Set.EqOn (↑e) (↑e') e.source)
Instances For
EqOnSource
is an equivalence relation
Equations
- LocalHomeomorph.eqOnSourceSetoid = let src := Setoid.comap LocalHomeomorph.toLocalEquiv LocalEquiv.eqOnSourceSetoid; { r := LocalHomeomorph.EqOnSource, iseqv := (_ : Equivalence Setoid.r) }
If two local homeomorphisms are equivalent, so are their inverses
Two equivalent local homeomorphisms have the same source
Two equivalent local homeomorphisms have the same target
Two equivalent local homeomorphisms have coinciding toFun
on the source
Two equivalent local homeomorphisms have coinciding invFun
on the target
Composition of local homeomorphisms respects equivalence
Restriction of local homeomorphisms respects equivalence
Composition of a local homeomorphism and its inverse is equivalent to the restriction of the identity to the source
The product of two local homeomorphisms, as a local homeomorphism on the product space.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Combine two LocalHomeomorph
s using Set.piecewise
. The source of the new LocalHomeomorph
is s.ite e.source e'.source = e.source ∩ s ∪ e'.source \ s
, and similarly for target. The
function sends e.source ∩ s
to e.target ∩ t
using e
and e'.source \ s
to e'.target \ t
using e'
, and similarly for the inverse function. To ensure that the maps toFun
and invFun
are inverse of each other on the new source
and target
, the definition assumes that the sets s
and t
are related both by e.is_image
and e'.is_image
. To ensure that the new maps are
continuous on source
/target
, it also assumes that e.source
and e'.source
meet frontier s
on the same set and e x = e' x
on this intersection.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Combine two LocalHomeomorph
s with disjoint sources and disjoint targets. We reuse
LocalHomeomorph.piecewise
then override toLocalEquiv
to LocalEquiv.disjointUnion
.
This way we have better definitional equalities for source
and target
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The product of a finite family of LocalHomeomorph
s.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Continuity within a set at a point can be read under right composition with a local homeomorphism, if the point is in its target
Continuity at a point can be read under right composition with a local homeomorphism, if the point is in its target
A function is continuous on a set if and only if its composition with a local homeomorphism on the right is continuous on the corresponding set.
Continuity within a set at a point can be read under left composition with a local homeomorphism if a neighborhood of the initial point is sent to the source of the local homeomorphism
Continuity at a point can be read under left composition with a local homeomorphism if a neighborhood of the initial point is sent to the source of the local homeomorphism
A function is continuous on a set if and only if its composition with a local homeomorphism on the left is continuous on the corresponding set.
A function is continuous if and only if its composition with a local homeomorphism on the left is continuous and its image is contained in the source.
The homeomorphism obtained by restricting a LocalHomeomorph
to a subset of the source.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A local homeomorphism defines a homeomorphism between its source and target.
Equations
- LocalHomeomorph.toHomeomorphSourceTarget e = LocalHomeomorph.homeomorphOfImageSubsetSource e (_ : e.source ⊆ e.source) (_ : ↑e '' e.source = e.target)
Instances For
If a local homeomorphism has source and target equal to univ, then it induces a homeomorphism between the whole spaces, expressed in this definition.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A local homeomorphism whose source is all of α
defines an open embedding of α
into β
. The
converse is also true; see OpenEmbedding.toLocalHomeomorph
.
An open embedding of α
into β
, with α
nonempty, defines a local homeomorphism whose source
is all of α
. The converse is also true; see LocalHomeomorph.to_openEmbedding
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The inclusion of an open subset s
of a space α
into α
is a local homeomorphism from the
subtype s
to α
.
Equations
- TopologicalSpace.Opens.localHomeomorphSubtypeCoe s = OpenEmbedding.toLocalHomeomorph Subtype.val (_ : OpenEmbedding Subtype.val)
Instances For
The restriction of a local homeomorphism e
to an open subset s
of the domain type produces a
local homeomorphism whose domain is the subtype s
.