Continuous bundled maps #
In this file we define the type ContinuousMap
of continuous bundled maps.
We use the DFunLike
design, so each type of morphisms has a companion typeclass which is meant to
be satisfied by itself and all stricter types.
The type of continuous maps from α
to β
.
When possible, instead of parametrizing results over (f : C(α, β))
,
you should parametrize over {F : Type*} [ContinuousMapClass F α β] (f : F)
.
When you extend this structure, make sure to extend ContinuousMapClass
.
- toFun : α → β
The function
α → β
- continuous_toFun : Continuous self.toFun
Proposition that
toFun
is continuous
Instances For
Proposition that toFun
is continuous
The type of continuous maps from α
to β
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ContinuousMapClass F α β
states that F
is a type of continuous maps.
You should extend this class when you extend ContinuousMap
.
- map_continuous : ∀ (f : F), Continuous ⇑f
Continuity
Instances
Continuity
Coerce a bundled morphism with a ContinuousMapClass
instance to a ContinuousMap
.
Equations
- ↑f = { toFun := ⇑f, continuous_toFun := ⋯ }
Instances For
Equations
- instCoeTCContinuousMap = { coe := toContinuousMap }
Continuous maps #
Equations
- ContinuousMap.funLike = { coe := ContinuousMap.toFun, coe_injective' := ⋯ }
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
See note [custom simps projection].
Equations
Instances For
Copy of a ContinuousMap
with a new toFun
equal to the old one. Useful to fix definitional
equalities.
Equations
- f.copy f' h = { toFun := f', continuous_toFun := ⋯ }
Instances For
Deprecated. Use map_continuous
instead.
Deprecated. Use map_continuousAt
instead.
Deprecated. Use DFunLike.congr_fun
instead.
Deprecated. Use DFunLike.congr_arg
instead.
The continuous functions from α
to β
are the same as the plain functions when α
is discrete.
Equations
- ContinuousMap.equivFnOfDiscrete α β = { toFun := fun (f : C(α, β)) => ⇑f, invFun := fun (f : α → β) => { toFun := f, continuous_toFun := ⋯ }, left_inv := ⋯, right_inv := ⋯ }
Instances For
The identity as a continuous map.
Equations
- ContinuousMap.id α = { toFun := id, continuous_toFun := ⋯ }
Instances For
The constant map as a continuous map.
Equations
- ContinuousMap.const α b = { toFun := fun (x : α) => b, continuous_toFun := ⋯ }
Instances For
Function.const α b
as a bundled continuous function of b
.
Equations
- ContinuousMap.constPi α = { toFun := fun (b : β) => Function.const α b, continuous_toFun := ⋯ }
Instances For
Equations
- ContinuousMap.instInhabited α = { default := ContinuousMap.const α default }
The composition of continuous maps, as a continuous map.
Instances For
Equations
- ⋯ = ⋯
Prod.fst : (x, y) ↦ x
as a bundled continuous map.
Equations
- ContinuousMap.fst = { toFun := Prod.fst, continuous_toFun := ⋯ }
Instances For
Prod.snd : (x, y) ↦ y
as a bundled continuous map.
Equations
- ContinuousMap.snd = { toFun := Prod.snd, continuous_toFun := ⋯ }
Instances For
Given two continuous maps f
and g
, this is the continuous map x ↦ (f x, g x)
.
Equations
- f.prodMk g = { toFun := fun (x : α) => (f x, g x), continuous_toFun := ⋯ }
Instances For
Given two continuous maps f
and g
, this is the continuous map (x, y) ↦ (f x, g y)
.
Instances For
Prod.swap
bundled as a ContinuousMap
.
Equations
- ContinuousMap.prodSwap = ContinuousMap.snd.prodMk ContinuousMap.fst
Instances For
Sigma.mk i
as a bundled continuous map.
Equations
- ContinuousMap.sigmaMk i = { toFun := Sigma.mk i, continuous_toFun := ⋯ }
Instances For
To give a continuous map out of a disjoint union, it suffices to give a continuous map out of
each term. This is Sigma.uncurry
for continuous maps.
Equations
- ContinuousMap.sigma f = { toFun := fun (ig : (i : I) × X i) => (f ig.fst) ig.snd, continuous_toFun := ⋯ }
Instances For
Giving a continuous map out of a disjoint union is the same as giving a continuous map out of
each term. This is a version of Equiv.piCurry
for continuous maps.
Equations
- ContinuousMap.sigmaEquiv A X = { toFun := ContinuousMap.sigma, invFun := fun (f : C((i : I) × X i, A)) (i : I) => f.comp (ContinuousMap.sigmaMk i), left_inv := ⋯, right_inv := ⋯ }
Instances For
Abbreviation for product of continuous maps, which is continuous
Equations
- ContinuousMap.pi f = { toFun := fun (a : A) (i : I) => (f i) a, continuous_toFun := ⋯ }
Instances For
Evaluation at point as a bundled continuous map.
Equations
- ContinuousMap.eval i = { toFun := Function.eval i, continuous_toFun := ⋯ }
Instances For
Giving a continuous map out of a disjoint union is the same as giving a continuous map out of each term
Equations
- ContinuousMap.piEquiv A X = { toFun := ContinuousMap.pi, invFun := fun (f : C(A, (i : I) → X i)) (i : I) => (ContinuousMap.eval i).comp f, left_inv := ⋯, right_inv := ⋯ }
Instances For
Combine a collection of bundled continuous maps C(X i, Y i)
into a bundled continuous map
C(∀ i, X i, ∀ i, Y i)
.
Equations
- ContinuousMap.piMap f = ContinuousMap.pi fun (i : I) => (f i).comp (ContinuousMap.eval i)
Instances For
"Precomposition" as a continuous map between dependent types.
Equations
- ContinuousMap.precomp φ = { toFun := fun (f : (i : I) → X i) (j : ι) => f (φ j), continuous_toFun := ⋯ }
Instances For
The restriction of a continuous function α → β
to a subset s
of α
.
Equations
- ContinuousMap.restrict s f = { toFun := ⇑f ∘ Subtype.val, continuous_toFun := ⋯ }
Instances For
The restriction of a continuous map to the preimage of a set.
Equations
- f.restrictPreimage s = { toFun := s.restrictPreimage ⇑f, continuous_toFun := ⋯ }
Instances For
A family φ i
of continuous maps C(S i, β)
, where the domains S i
contain a neighbourhood
of each point in α
and the functions φ i
agree pairwise on intersections, can be glued to
construct a continuous map in C(α, β)
.
Equations
- ContinuousMap.liftCover S φ hφ hS = { toFun := Set.liftCover S (fun (i : ι) => ⇑(φ i)) hφ ⋯, continuous_toFun := ⋯ }
Instances For
A family F s
of continuous maps C(s, β)
, where (1) the domains s
are taken from a set A
of sets in α
which contain a neighbourhood of each point in α
and (2) the functions F s
agree
pairwise on intersections, can be glued to construct a continuous map in C(α, β)
.
Equations
- ContinuousMap.liftCover' A F hF hA = let S := Subtype.val; let F_1 := fun (i : ↑A) => F ↑i ⋯; ContinuousMap.liftCover S F_1 ⋯ ⋯
Instances For
Setoid.quotientKerEquivOfRightInverse
as a homeomorphism.
Equations
- hf.homeomorph = { toEquiv := Setoid.quotientKerEquivOfRightInverse (⇑f) (⇑f') hf, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
The homeomorphism from the quotient of a quotient map to its codomain. This is
Setoid.quotientKerEquivOfSurjective
as a homeomorphism.
Equations
- hf.homeomorph = { toEquiv := Setoid.quotientKerEquivOfSurjective ⇑f ⋯, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Descend a continuous map, which is constant on the fibres, along a quotient map.
Equations
- hf.lift g h = { toFun := (fun (i : Quotient (Setoid.ker ⇑f)) => i.liftOn' ⇑g ⋯) ∘ ⇑hf.homeomorph.symm, continuous_toFun := ⋯ }
Instances For
The obvious triangle induced by QuotientMap.lift
commutes:
g
X --→ Z
| ↗
f | / hf.lift g h
v /
Y
QuotientMap.lift
as an equivalence.
Equations
Instances For
The forward direction of a homeomorphism, as a bundled continuous map.
Equations
- e.toContinuousMap = { toFun := ⇑e, continuous_toFun := ⋯ }
Instances For
Homeomorph.toContinuousMap
as a coercion.
Equations
- Homeomorph.instCoeContinuousMap = { coe := Homeomorph.toContinuousMap }
Left inverse to a continuous map from a homeomorphism, mirroring Equiv.symm_comp_self
.
Right inverse to a continuous map from a homeomorphism, mirroring Equiv.self_comp_symm
.