Documentation

Mathlib.Topology.OpenPartialHomeomorph.IsImage

Partial homeomorphisms: Images of sets #

Main definitions #

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.

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:

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.

def OpenPartialHomeomorph.IsImage {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : OpenPartialHomeomorph X Y) (s : Set X) (t : Set Y) :

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).
Equations
Instances For
    theorem OpenPartialHomeomorph.IsImage.toPartialEquiv {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) :
    e.IsImage s t
    theorem OpenPartialHomeomorph.IsImage.apply_mem_iff {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} {x : X} (h : e.IsImage s t) (hx : x e.source) :
    e x t x s
    theorem OpenPartialHomeomorph.IsImage.symm {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) :
    theorem OpenPartialHomeomorph.IsImage.symm_apply_mem_iff {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} {y : Y} (h : e.IsImage s t) (hy : y e.target) :
    e.symm y s y t
    @[simp]
    theorem OpenPartialHomeomorph.IsImage.symm_iff {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} :
    e.symm.IsImage t s e.IsImage s t
    theorem OpenPartialHomeomorph.IsImage.mapsTo {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) :
    Set.MapsTo (↑e) (e.source s) (e.target t)
    theorem OpenPartialHomeomorph.IsImage.symm_mapsTo {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) :
    Set.MapsTo (↑e.symm) (e.target t) (e.source s)
    theorem OpenPartialHomeomorph.IsImage.image_eq {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) :
    e '' (e.source s) = e.target t
    theorem OpenPartialHomeomorph.IsImage.symm_image_eq {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) :
    e.symm '' (e.target t) = e.source s
    theorem OpenPartialHomeomorph.IsImage.preimage_eq {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} :
    e.IsImage s te.source e ⁻¹' t = e.source s

    Alias of the forward direction of OpenPartialHomeomorph.IsImage.iff_preimage_eq.

    theorem OpenPartialHomeomorph.IsImage.of_preimage_eq {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} :
    e.source e ⁻¹' t = e.source se.IsImage s t

    Alias of the reverse direction of OpenPartialHomeomorph.IsImage.iff_preimage_eq.

    theorem OpenPartialHomeomorph.IsImage.preimage_eq' {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} :
    e.IsImage s te.source e ⁻¹' (e.target t) = e.source s

    Alias of the forward direction of OpenPartialHomeomorph.IsImage.iff_preimage_eq'.

    theorem OpenPartialHomeomorph.IsImage.of_preimage_eq' {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} :
    e.source e ⁻¹' (e.target t) = e.source se.IsImage s t

    Alias of the reverse direction of OpenPartialHomeomorph.IsImage.iff_preimage_eq'.

    theorem OpenPartialHomeomorph.IsImage.of_image_eq {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e '' (e.source s) = e.target t) :
    e.IsImage s t
    theorem OpenPartialHomeomorph.IsImage.of_symm_image_eq {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.symm '' (e.target t) = e.source s) :
    e.IsImage s t
    theorem OpenPartialHomeomorph.IsImage.compl {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) :
    theorem OpenPartialHomeomorph.IsImage.inter {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} {s' : Set X} {t' : Set Y} (h : e.IsImage s t) (h' : e.IsImage s' t') :
    e.IsImage (s s') (t t')
    theorem OpenPartialHomeomorph.IsImage.union {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} {s' : Set X} {t' : Set Y} (h : e.IsImage s t) (h' : e.IsImage s' t') :
    e.IsImage (s s') (t t')
    theorem OpenPartialHomeomorph.IsImage.diff {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} {s' : Set X} {t' : Set Y} (h : e.IsImage s t) (h' : e.IsImage s' t') :
    e.IsImage (s \ s') (t \ t')
    theorem OpenPartialHomeomorph.IsImage.leftInvOn_piecewise {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} {e' : OpenPartialHomeomorph X Y} [(i : X) → Decidable (i s)] [(i : Y) → Decidable (i t)] (h : e.IsImage s t) (h' : e'.IsImage s t) :
    Set.LeftInvOn (t.piecewise e.symm e'.symm) (s.piecewise e e') (s.ite e.source e'.source)
    theorem OpenPartialHomeomorph.IsImage.inter_eq_of_inter_eq_of_eqOn {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} {e' : OpenPartialHomeomorph X Y} (h : e.IsImage s t) (h' : e'.IsImage s t) (hs : e.source s = e'.source s) (Heq : Set.EqOn (↑e) (↑e') (e.source s)) :
    e.target t = e'.target t
    theorem OpenPartialHomeomorph.IsImage.symm_eqOn_of_inter_eq_of_eqOn {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} {e' : OpenPartialHomeomorph X Y} (h : e.IsImage s t) (hs : e.source s = e'.source s) (Heq : Set.EqOn (↑e) (↑e') (e.source s)) :
    Set.EqOn (↑e.symm) (↑e'.symm) (e.target t)
    theorem OpenPartialHomeomorph.IsImage.map_nhdsWithin_eq {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} {x : X} (h : e.IsImage s t) (hx : x e.source) :
    Filter.map (↑e) (nhdsWithin x s) = nhdsWithin (e x) t
    theorem OpenPartialHomeomorph.IsImage.closure {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) :
    theorem OpenPartialHomeomorph.IsImage.interior {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) :
    theorem OpenPartialHomeomorph.IsImage.frontier {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) :
    theorem OpenPartialHomeomorph.IsImage.isOpen_iff {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) :
    def OpenPartialHomeomorph.IsImage.restr {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) (hs : IsOpen (e.source s)) :

    Restrict an OpenPartialHomeomorph to a pair of corresponding open sets.

    Equations
    • h.restr hs = { toPartialEquiv := .restr, open_source := hs, open_target := , continuousOn_toFun := , continuousOn_invFun := }
    Instances For
      @[simp]
      theorem OpenPartialHomeomorph.IsImage.restr_apply {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) (hs : IsOpen (e.source s)) :
      (h.restr hs) = e
      @[simp]
      theorem OpenPartialHomeomorph.IsImage.restr_symm_apply {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) (hs : IsOpen (e.source s)) :
      (h.restr hs).symm = e.symm
      @[simp]
      theorem OpenPartialHomeomorph.IsImage.restr_toPartialEquiv {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : OpenPartialHomeomorph X Y} {s : Set X} {t : Set Y} (h : e.IsImage s t) (hs : IsOpen (e.source s)) :

      Preimage of interior or interior of preimage coincide for open partial homeomorphisms, when restricted to the source.

      Restriction #

      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.

      Equations
      Instances For
        @[simp]
        theorem OpenPartialHomeomorph.coe_restrOpen {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : OpenPartialHomeomorph X Y) {s : Set X} (hs : IsOpen s) :
        (e.restrOpen s hs) = e
        @[simp]
        theorem OpenPartialHomeomorph.coe_restrOpen_symm {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : OpenPartialHomeomorph X Y) {s : Set X} (hs : IsOpen s) :
        (e.restrOpen s hs).symm = e.symm

        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.

        Equations
        Instances For
          @[simp]
          theorem OpenPartialHomeomorph.restr_symm_apply {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : OpenPartialHomeomorph X Y) (s : Set X) :
          (e.restr s).symm = e.symm
          @[simp]
          theorem OpenPartialHomeomorph.restr_apply {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : OpenPartialHomeomorph X Y) (s : Set X) :
          (e.restr s) = e

          ofSet #

          The identity on a set s

          The identity partial equivalence on a set s

          Equations
          Instances For
            @[simp]
            theorem OpenPartialHomeomorph.ofSet_apply {X : Type u_1} [TopologicalSpace X] (s : Set X) (hs : IsOpen s) :
            (ofSet s hs) = id
            theorem OpenPartialHomeomorph.ofSet_target {X : Type u_1} [TopologicalSpace X] (s : Set X) (hs : IsOpen s) :
            (ofSet s hs).target = s
            theorem OpenPartialHomeomorph.ofSet_source {X : Type u_1} [TopologicalSpace X] (s : Set X) (hs : IsOpen s) :
            (ofSet s hs).source = s
            @[simp]
            theorem OpenPartialHomeomorph.ofSet_symm {X : Type u_1} [TopologicalSpace X] {s : Set X} (hs : IsOpen s) :
            (ofSet s hs).symm = ofSet s hs

            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.

            Equations
            Instances For

              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.

              theorem OpenPartialHomeomorph.EqOnSource.eqOn {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e e' : OpenPartialHomeomorph X Y} (h : e e') :
              Set.EqOn (↑e) (↑e') e.source

              Two equivalent open partial homeomorphisms have coinciding toFun on the source

              Two equivalent open partial homeomorphisms have coinciding invFun on the target

              theorem OpenPartialHomeomorph.EqOnSource.restr {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e e' : OpenPartialHomeomorph X Y} (he : e e') (s : Set X) :
              e.restr s e'.restr s

              Restriction of open partial homeomorphisms respects equivalence

              Two equivalent open partial homeomorphisms are equal when the source and target are univ.

              @[deprecated Homeomorph.refl_toOpenPartialHomeomorph (since := "2025-08-29")]

              Alias of Homeomorph.refl_toOpenPartialHomeomorph.

              @[deprecated Homeomorph.symm_toOpenPartialHomeomorph (since := "2025-08-29")]

              Alias of Homeomorph.symm_toOpenPartialHomeomorph.