Partial homeomorphisms #
This file defines homeomorphisms between open subsets of topological spaces. An element e
of
OpenPartialHomeomorph X Y
is an extension of PartialEquiv X Y
, 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.toOpenPartialHomeomorph
: associating an open partial homeomorphism to a homeomorphism, withsource = target = Set.univ
;OpenPartialHomeomorph.symm
: the inverse of an open partial homeomorphismOpenPartialHomeomorph.trans
: the composition of two open partial homeomorphismsOpenPartialHomeomorph.refl
: the identity open partial homeomorphismOpenPartialHomeomorph.const
: an open partial homeomorphism which is a constant map, whose source and target are necessarily singleton setsOpenPartialHomeomorph.ofSet
: the identity on a sets
OpenPartialHomeomorph.restr s
: restrict an open partial homeomorphisme
toe.source ∩ interior s
OpenPartialHomeomorph.EqOnSource
: equivalence relation describing the "right" notion of equality for open partial homeomorphismsOpenPartialHomeomorph.prod
: the product of two open partial homeomorphisms, as an open partial homeomorphism on the product spaceOpenPartialHomeomorph.pi
: the product of a finite family of open partial homeomorphismsOpenPartialHomeomorph.disjointUnion
: combine two open partial homeomorphisms with disjoint sources and disjoint targetsOpenPartialHomeomorph.lift_openEmbedding
: extend an open partial homeomorphismX → Y
under an open embeddingX → X'
, to an open partial homeomorphismX' → Z
. (This is used to define the disjoint union of charted spaces.)
Implementation notes #
Most statements are copied from their PartialEquiv
versions, although some care is required
especially when restricting to subsets, as these should be open subsets.
For design notes, see PartialEquiv.lean
.
Local coding conventions #
If a lemma deals with the intersection of a set with either source or target of a PartialEquiv
,
then it should use e.source ∩ s
or e.target ∩ t
, not s ∩ e.source
or t ∩ e.target
.
Partial homeomorphisms, defined on open subsets of the space
- toFun : X → Y
- invFun : Y → X
- continuousOn_toFun : ContinuousOn (↑self.toPartialEquiv) self.source
- continuousOn_invFun : ContinuousOn self.invFun self.target
Instances For
Alias of OpenPartialHomeomorph
.
Partial homeomorphisms, defined on open subsets of the space
Equations
Instances For
Basic properties; inverse (symm instance)
Coercion of an open partial homeomorphisms to a function. We don't use e.toFun
because it is
actually e.toPartialEquiv.toFun
, so simp
will apply lemmas about toPartialEquiv
.
While we may want to switch to this behavior later, doing it mid-port will break a lot of proofs.
Equations
- ↑e = ↑e.toPartialEquiv
Instances For
Coercion of an OpenPartialHomeomorph
to function.
Note that an OpenPartialHomeomorph
is not DFunLike
.
Equations
- OpenPartialHomeomorph.instCoeFunForall = { coe := fun (e : OpenPartialHomeomorph X Y) => ↑e }
The inverse of an open partial homeomorphism
Equations
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
Variant of map_source
, stated for images of subsets of source
.
Interpret a Homeomorph
as an OpenPartialHomeomorph
by restricting it
to an open set s
in the domain and to t
in the codomain.
Equations
- e.toOpenPartialHomeomorphOfImageEq s hs t h = { toPartialEquiv := e.toPartialEquivOfImageEq s t h, open_source := hs, open_target := ⋯, continuousOn_toFun := ⋯, continuousOn_invFun := ⋯ }
Instances For
Alias of Homeomorph.toOpenPartialHomeomorphOfImageEq
.
Interpret a Homeomorph
as an OpenPartialHomeomorph
by restricting it
to an open set s
in the domain and to t
in the codomain.
Instances For
A homeomorphism induces an open partial homeomorphism on the whole space
Equations
Instances For
Alias of Homeomorph.toOpenPartialHomeomorph
.
A homeomorphism induces an open partial homeomorphism on the whole space
Instances For
Replace toPartialEquiv
field to provide better definitional equalities.
Equations
- e.replaceEquiv e' h = { toPartialEquiv := e', open_source := ⋯, open_target := ⋯, continuousOn_toFun := ⋯, continuousOn_invFun := ⋯ }
Instances For
Two open partial 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 EqOnSource
.
An open partial homeomorphism is continuous at any point of its source
An open partial 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 Z
).
An open partial homeomorphism is an open map on its source: the image of an open subset of the source is open.
The image of the restriction of an open set to the source is open.
The inverse of an open partial homeomorphism e
is an open map on e.target
.
OpenPartialHomeomorph.IsImage
relation #
We say that t : Set Y
is an image of s : Set X
under an open partial 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 PartialEquiv.IsImage
for open partial homeomorphisms.
In this section we transfer API about PartialEquiv.IsImage
to open partial homeomorphisms and
add a few OpenPartialHomeomorph
-specific lemmas like OpenPartialHomeomorph.IsImage.closure
.
We say that t : Set Y
is an image of s : Set X
under an open partial 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 forward direction of OpenPartialHomeomorph.IsImage.iff_preimage_eq
.
Alias of the reverse direction of OpenPartialHomeomorph.IsImage.iff_preimage_eq
.
Alias of the reverse direction of OpenPartialHomeomorph.IsImage.iff_symm_preimage_eq
.
Alias of the forward direction of OpenPartialHomeomorph.IsImage.iff_symm_preimage_eq
.
Alias of the forward direction of OpenPartialHomeomorph.IsImage.iff_symm_preimage_eq'
.
Alias of the reverse direction of OpenPartialHomeomorph.IsImage.iff_symm_preimage_eq'
.
Alias of the forward direction of OpenPartialHomeomorph.IsImage.iff_preimage_eq'
.
Alias of the reverse direction of OpenPartialHomeomorph.IsImage.iff_preimage_eq'
.
Restrict an OpenPartialHomeomorph
to a pair of corresponding open sets.
Equations
Instances For
Preimage of interior or interior of preimage coincide for open partial homeomorphisms, when restricted to the source.
A PartialEquiv
with continuous open forward map and open source is a
OpenPartialHomeomorph
.
Equations
- OpenPartialHomeomorph.ofContinuousOpenRestrict e hc ho hs = { toPartialEquiv := e, open_source := hs, open_target := ⋯, continuousOn_toFun := hc, continuousOn_invFun := ⋯ }
Instances For
A PartialEquiv
with continuous open forward map and open source is a
OpenPartialHomeomorph
.
Equations
- OpenPartialHomeomorph.ofContinuousOpen e hc ho hs = OpenPartialHomeomorph.ofContinuousOpenRestrict e hc ⋯ hs
Instances For
Restricting an open partial 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 PartialEquiv
is defeq to PartialEquiv.restr
.
Instances For
Restricting an open partial 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 open partial homeomorphisms
are by definition defined on open sets. In applications where s
is open, this coincides with the
restriction of partial equivalences.
Instances For
The identity on the whole space as an open partial homeomorphism.
Equations
Instances For
const: PartialEquiv.const
as an open partial homeomorphism
This is PartialEquiv.single
as an open partial homeomorphism: a constant map,
whose source and target are necessarily singleton sets.
Equations
- OpenPartialHomeomorph.const ha hb = { toPartialEquiv := PartialEquiv.single a b, open_source := ha, open_target := hb, continuousOn_toFun := ⋯, continuousOn_invFun := ⋯ }
Instances For
ofSet: the identity on a set s
The identity partial equivalence on a set s
Equations
- OpenPartialHomeomorph.ofSet s hs = { toPartialEquiv := PartialEquiv.ofSet s, open_source := hs, open_target := hs, continuousOn_toFun := ⋯, continuousOn_invFun := ⋯ }
Instances For
trans
: composition of two open partial homeomorphisms
Composition of two open partial homeomorphisms when the target of the first and the source of the second coincide.
Equations
Instances For
Composing two open partial homeomorphisms, by restricting to the maximal domain where their
composition is well defined.
Within the Manifold
namespace, there is the notation e ≫ₕ f
for this.
Instances For
EqOnSource
: equivalence on their source
EqOnSource e e'
means that e
and e'
have the same source, and coincide there. They
should really be considered the same partial equivalence.
Instances For
EqOnSource
is an equivalence relation.
Equations
- OpenPartialHomeomorph.eqOnSourceSetoid = { r := OpenPartialHomeomorph.EqOnSource, iseqv := ⋯ }
If two open partial homeomorphisms are equivalent, so are their inverses.
Two equivalent open partial homeomorphisms have the same source.
Two equivalent open partial homeomorphisms have the same target.
Two equivalent open partial homeomorphisms have coinciding toFun
on the source
Two equivalent open partial homeomorphisms have coinciding invFun
on the target
Composition of open partial homeomorphisms respects equivalence.
Restriction of open partial homeomorphisms respects equivalence
Two equivalent open partial homeomorphisms are equal when the source and target are univ
.
Composition of an open partial homeomorphism and its inverse is equivalent to the restriction of the identity to the source
product of two open partial homeomorphisms
The product of two open partial homeomorphisms, as an open partial homeomorphism on the product space.
Equations
Instances For
finite product of partial homeomorphisms
The product of a finite family of OpenPartialHomeomorph
s.
Equations
- OpenPartialHomeomorph.pi ei = { toPartialEquiv := PartialEquiv.pi fun (i : ι) => (ei i).toPartialEquiv, open_source := ⋯, open_target := ⋯, continuousOn_toFun := ⋯, continuousOn_invFun := ⋯ }
Instances For
combining two partial homeomorphisms using Set.piecewise
Combine two OpenPartialHomeomorph
s using Set.piecewise
. The source of the new
OpenPartialHomeomorph
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 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
Instances For
Combine two OpenPartialHomeomorph
s with disjoint sources and disjoint targets. We reuse
OpenPartialHomeomorph.piecewise
then override toPartialEquiv
to PartialEquiv.disjointUnion
.
This way we have better definitional equalities for source
and target
.
Equations
- e.disjointUnion e' Hs Ht = (e.piecewise e' e.source e.target ⋯ ⋯ ⋯ ⋯).replaceEquiv (e.disjointUnion e'.toPartialEquiv Hs Ht) ⋯
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 an open partial homeomorphism, if the point is in its target
A function is continuous on a set if and only if its composition with an open partial 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 an open partial homeomorphism if a neighborhood of the initial point is sent to the source of the partial homeomorphism
A function is continuous on a set if and only if its composition with an open partial homeomorphism on the left is continuous on the corresponding set.
A function is continuous if and only if its composition with an open partial homeomorphism on the left is continuous and its image is contained in the source.
The homeomorphism obtained by restricting an OpenPartialHomeomorph
to a subset of the source.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An open partial homeomorphism defines a homeomorphism between its source and target.
Equations
Instances For
If an open partial homeomorphism has source and target equal to univ, then it induces a homeomorphism between the whole spaces, expressed in this definition.
Equations
- e.toHomeomorphOfSourceEqUnivTargetEqUniv h h' = { toFun := ↑e, invFun := ↑e.symm, left_inv := ⋯, right_inv := ⋯, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
An open partial homeomorphism whose source is all of X
defines an open embedding of X
into
Y
. The converse is also true; see IsOpenEmbedding.toOpenPartialHomeomorph
.
Alias of Homeomorph.refl_toOpenPartialHomeomorph
.
Alias of Homeomorph.symm_toOpenPartialHomeomorph
.
Alias of Homeomorph.trans_toOpenPartialHomeomorph
.
Precompose an open partial homeomorphism with a homeomorphism. We modify the source and target to have better definitional behavior.
Equations
- e.transOpenPartialHomeomorph f' = { toPartialEquiv := e.transPartialEquiv f'.toPartialEquiv, open_source := ⋯, open_target := ⋯, continuousOn_toFun := ⋯, continuousOn_invFun := ⋯ }
Instances For
Alias of Homeomorph.transOpenPartialHomeomorph
.
Precompose an open partial homeomorphism with a homeomorphism. We modify the source and target to have better definitional behavior.
Instances For
An open embedding of X
into Y
, with X
nonempty, defines an open partial homeomorphism
whose source is all of X
. The converse is also true; see
OpenPartialHomeomorph.to_isOpenEmbedding
.
Equations
Instances For
Alias of Topology.IsOpenEmbedding.toOpenPartialHomeomorph
.
An open embedding of X
into Y
, with X
nonempty, defines an open partial homeomorphism
whose source is all of X
. The converse is also true; see
OpenPartialHomeomorph.to_isOpenEmbedding
.
Equations
Instances For
Alias of Topology.IsOpenEmbedding.toOpenPartialHomeomorph_left_inv
.
Alias of Topology.IsOpenEmbedding.toOpenPartialHomeomorph_right_inv
.
inclusion of an open set in a topological space
The inclusion of an open subset s
of a space X
into X
is an open partial homeomorphism
from the subtype s
to X
.
Equations
Instances For
Alias of TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe
.
The inclusion of an open subset s
of a space X
into X
is an open partial homeomorphism
from the subtype s
to X
.
Equations
Instances For
Alias of TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe_coe
.
Alias of TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe_source
.
Alias of TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe_target
.
Postcompose an open partial homeomorphism with a homeomorphism. We modify the source and target to have better definitional behavior.
Equations
- e.transHomeomorph f' = { toPartialEquiv := e.transEquiv f'.toEquiv, open_source := ⋯, open_target := ⋯, continuousOn_toFun := ⋯, continuousOn_invFun := ⋯ }
Instances For
subtypeRestr
: restriction to a subtype
The restriction of an open partial homeomorphism e
to an open subset s
of the domain type
produces an open partial homeomorphism whose domain is the subtype s
.
Equations
- e.subtypeRestr hs = (s.openPartialHomeomorphSubtypeCoe hs).trans e
Instances For
This lemma characterizes the transition functions of an open subset in terms of the transition functions of the original space.
Extend an open partial homeomorphism e : X → Z
to X' → Z
, using an open embedding
ι : X → X'
. On ι(X)
, the extension is specified by e
; its value elsewhere is arbitrary
(and uninteresting).
Equations
- One or more equations did not get rendered due to their size.