Bounded continuous functions #
The type of bounded continuous functions taking values in a metric space, with the uniform distance.
α →ᵇ β
is the type of bounded continuous functions α → β
from a topological space to a
metric space.
When possible, instead of parametrizing results over (f : α →ᵇ β)
,
you should parametrize over (F : Type*) [BoundedContinuousMapClass F α β] (f : F)
.
When you extend this structure, make sure to extend BoundedContinuousMapClass
.
- toFun : α → β
- continuous_toFun : Continuous self.toFun
α →ᵇ β
is the type of bounded continuous functions α → β
from a topological space to a
metric space.
When possible, instead of parametrizing results over (f : α →ᵇ β)
,
you should parametrize over (F : Type*) [BoundedContinuousMapClass F α β] (f : F)
.
When you extend this structure, make sure to extend BoundedContinuousMapClass
.
Equations
- One or more equations did not get rendered due to their size.
BoundedContinuousMapClass F α β
states that F
is a type of bounded continuous maps.
You should also extend this typeclass when you extend BoundedContinuousFunction
.
Instances
Equations
- BoundedContinuousFunction.instFunLike = { coe := fun (f : BoundedContinuousFunction α β) => f.toFun, coe_injective' := ⋯ }
Equations
- BoundedContinuousFunction.instCoeTC = { coe := fun (f : F) => { toFun := ⇑f, continuous_toFun := ⋯, map_bounded' := ⋯ } }
See Note [custom simps projection]. We need to specify this projection explicitly in this case, because it is a composition of multiple projections.
Equations
A continuous function with an explicit bound is a bounded continuous function.
Equations
- BoundedContinuousFunction.mkOfBound f C h = { toContinuousMap := f, map_bounded' := ⋯ }
A continuous function on a compact space is automatically a bounded continuous function.
Equations
- BoundedContinuousFunction.mkOfCompact f = { toContinuousMap := f, map_bounded' := ⋯ }
If a function is bounded on a discrete space, it is automatically continuous, and therefore gives rise to an element of the type of bounded continuous functions.
Equations
- BoundedContinuousFunction.mkOfDiscrete f C h = { toFun := f, continuous_toFun := ⋯, map_bounded' := ⋯ }
The uniform distance between two bounded continuous functions.
The pointwise distance is controlled by the distance between functions, by definition.
The distance between two functions is controlled by the supremum of the pointwise distances.
The type of bounded continuous functions, with the uniform distance, is a pseudometric space.
Equations
- One or more equations did not get rendered due to their size.
The type of bounded continuous functions, with the uniform distance, is a metric space.
Equations
- BoundedContinuousFunction.instMetricSpace = { toPseudoMetricSpace := BoundedContinuousFunction.instPseudoMetricSpace, eq_of_dist_eq_zero := ⋯ }
On an empty space, bounded continuous functions are at distance 0.
The topology on α →ᵇ β
is exactly the topology induced by the natural map to α →ᵤ β
.
Alias of BoundedContinuousFunction.isInducing_coeFn
.
The topology on α →ᵇ β
is exactly the topology induced by the natural map to α →ᵤ β
.
Constant as a continuous bounded function.
Equations
- BoundedContinuousFunction.const α b = { toContinuousMap := ContinuousMap.const α b, map_bounded' := ⋯ }
If the target space is inhabited, so is the space of bounded continuous functions.
Equations
- BoundedContinuousFunction.instInhabited = { default := BoundedContinuousFunction.const α default }
When x
is fixed, (f : α →ᵇ β) ↦ f x
is continuous.
The evaluation map is continuous, as a joint function of u
and x
.
Bounded continuous functions taking values in a complete space form a complete space.
Composition of a bounded continuous function and a continuous function.
Equations
- f.compContinuous g = { toContinuousMap := f.comp g, map_bounded' := ⋯ }
Restrict a bounded continuous function to a set.
Equations
- f.restrict s = f.compContinuous (ContinuousMap.restrict s (ContinuousMap.id α))
Composition (in the target) of a bounded continuous function with a Lipschitz map again gives a bounded continuous function.
Equations
- BoundedContinuousFunction.comp G H f = { toFun := fun (x : α) => G (f x), continuous_toFun := ⋯, map_bounded' := ⋯ }
The composition operator (in the target) with a Lipschitz map is Lipschitz.
The composition operator (in the target) with a Lipschitz map is uniformly continuous.
The composition operator (in the target) with a Lipschitz map is continuous.
Restriction (in the target) of a bounded continuous function taking values in a subset.
Equations
- BoundedContinuousFunction.codRestrict s f H = { toFun := Set.codRestrict (⇑f) s H, continuous_toFun := ⋯, map_bounded' := ⋯ }
A version of Function.extend
for bounded continuous maps. We assume that the domain has
discrete topology, so we only need to verify boundedness.
Equations
- BoundedContinuousFunction.extend f g h = { toFun := Function.extend ⇑f ⇑g ⇑h, continuous_toFun := ⋯, map_bounded' := ⋯ }
The indicator function of a clopen set, as a bounded continuous function.
Equations
- BoundedContinuousFunction.indicator s hs = { toFun := s.indicator 1, continuous_toFun := ⋯, map_bounded' := ⋯ }
Equations
- BoundedContinuousFunction.instOne = { one := BoundedContinuousFunction.const α 1 }
Equations
- BoundedContinuousFunction.instZero = { zero := BoundedContinuousFunction.const α 0 }
Equations
- BoundedContinuousFunction.instMul = { mul := fun (f g : BoundedContinuousFunction α R) => { toFun := fun (x : α) => f x * g x, continuous_toFun := ⋯, map_bounded' := ⋯ } }
Equations
- BoundedContinuousFunction.instAdd = { add := fun (f g : BoundedContinuousFunction α R) => { toFun := fun (x : α) => f x + g x, continuous_toFun := ⋯, map_bounded' := ⋯ } }
Equations
- One or more equations did not get rendered due to their size.
Equations
- BoundedContinuousFunction.instPow = { pow := fun (f : BoundedContinuousFunction α R) (n : ℕ) => { toFun := fun (x : α) => f x ^ n, continuous_toFun := ⋯, map_bounded' := ⋯ } }
Equations
Equations
Equations
- BoundedContinuousFunction.instCommMonoid = { toMonoid := BoundedContinuousFunction.instMonoid, mul_comm := ⋯ }
Equations
- BoundedContinuousFunction.instAddCommMonoid = { toAddMonoid := BoundedContinuousFunction.instAddMonoid, add_comm := ⋯ }
Equations
- BoundedContinuousFunction.instMulOneClass = Function.Injective.mulOneClass (fun (f : BoundedContinuousFunction α R) => ⇑f) ⋯ ⋯ ⋯
Equations
- BoundedContinuousFunction.instAddZeroClass = Function.Injective.addZeroClass (fun (f : BoundedContinuousFunction α R) => ⇑f) ⋯ ⋯ ⋯
Composition on the left by a (lipschitz-continuous) homomorphism of topological monoids, as a
MonoidHom
. Similar to MonoidHom.compLeftContinuous
.
Equations
- MonoidHom.compLeftContinuousBounded α g hg = { toFun := fun (f : BoundedContinuousFunction α β) => BoundedContinuousFunction.comp (⇑g) hg f, map_one' := ⋯, map_mul' := ⋯ }
Composition on the left by a (lipschitz-continuous) homomorphism of topological AddMonoid
s, as a
AddMonoidHom
. Similar to AddMonoidHom.compLeftContinuous
.
Equations
- AddMonoidHom.compLeftContinuousBounded α g hg = { toFun := fun (f : BoundedContinuousFunction α β) => BoundedContinuousFunction.comp (⇑g) hg f, map_zero' := ⋯, map_add' := ⋯ }
Coercion of a NormedAddGroupHom
is an AddMonoidHom
. Similar to AddMonoidHom.coeFn
.
Equations
- BoundedContinuousFunction.coeFnAddHom = { toFun := DFunLike.coe, map_zero' := ⋯, map_add' := ⋯ }
The additive map forgetting that a bounded continuous function is bounded.
Equations
- BoundedContinuousFunction.toContinuousMapAddHom α β = { toFun := BoundedContinuousFunction.toContinuousMap, map_zero' := ⋯, map_add' := ⋯ }
The pointwise difference of two bounded continuous functions is again bounded continuous.
Equations
- BoundedContinuousFunction.instSub = { sub := fun (f g : BoundedContinuousFunction α R) => { toFun := fun (x : α) => f x - g x, continuous_toFun := ⋯, map_bounded' := ⋯ } }
Equations
- BoundedContinuousFunction.instNatCast = { natCast := fun (n : ℕ) => BoundedContinuousFunction.const α ↑n }
Equations
- BoundedContinuousFunction.instIntCast = { intCast := fun (m : ℤ) => BoundedContinuousFunction.const α ↑m }
Equations
IsBoundedSMul
(in particular, topological module) structure #
In this section, if β
is a metric space and a 𝕜
-module whose addition and scalar multiplication
are compatible with the metric structure, then we show that the space of bounded continuous
functions from α
to β
inherits a so-called IsBoundedSMul
structure (in particular, a
ContinuousMul
structure, which is the mathlib formulation of being a topological module), by
using pointwise operations and checking that they are compatible with the uniform distance.
Equations
- One or more equations did not get rendered due to their size.
Equations
- BoundedContinuousFunction.instMulAction = Function.Injective.mulAction (fun (f : BoundedContinuousFunction α β) => ⇑f) ⋯ ⋯
Equations
- BoundedContinuousFunction.instDistribMulAction = Function.Injective.distribMulAction { toFun := DFunLike.coe, map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯
Equations
- BoundedContinuousFunction.instModule = Function.Injective.module 𝕜 { toFun := DFunLike.coe, map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯
The evaluation at a point, as a continuous linear map from α →ᵇ β
to β
.
Equations
- BoundedContinuousFunction.evalCLM 𝕜 x = { toFun := fun (f : BoundedContinuousFunction α β) => f x, map_add' := ⋯, map_smul' := ⋯, cont := ⋯ }
The linear map forgetting that a bounded continuous function is bounded.
Equations
- BoundedContinuousFunction.toContinuousMapLinearMap α β 𝕜 = { toFun := BoundedContinuousFunction.toContinuousMap, map_add' := ⋯, map_smul' := ⋯ }