Algebraic structures over continuous functions #
In this file we define instances of algebraic structures over the type ContinuousMap α β
(denoted C(α, β)) of bundled continuous maps from α to β. For example, C(α, β)
is a group when β is a group, a ring when β is a ring, etc.
For each type of algebraic structure, we also define an appropriate subobject of α → β
with carrier { f : α → β | Continuous f }. For example, when β is a group, a subgroup
continuousSubgroup α β of α → β is constructed with carrier { f : α → β | Continuous f }.
Note that, rather than using the derived algebraic structures on these subobjects
(for example, when β is a group, the derived group structure on continuousSubgroup α β),
one should use C(α, β) with the appropriate instance of the structure.
Equations
- ContinuousFunctions.instCoeFunElemForallSetOfContinuous = { coe := Subtype.val }
mul and add #
one #
Equations
- ContinuousMap.instZero = { zero := ContinuousMap.const α 0 }
Equations
- ContinuousMap.instOne = { one := ContinuousMap.const α 1 }
Equations
- ContinuousMap.instNatCast = { natCast := fun (n : ℕ) => ContinuousMap.const α ↑n }
Alias of ContinuousMap.coe_natCast.
Alias of ContinuousMap.natCast_apply.
Equations
- ContinuousMap.instIntCast = { intCast := fun (n : ℤ) => ContinuousMap.const α ↑n }
Alias of ContinuousMap.coe_intCast.
Alias of ContinuousMap.intCast_apply.
nsmul and pow #
inv and neg #
div and sub #
zpow and zsmul #
Group structure #
In this section we show that continuous functions valued in a topological group inherit the structure of a group.
The AddSubmonoid of continuous maps α → β.
Equations
- continuousAddSubmonoid α β = { carrier := {f : α → β | Continuous f}, add_mem' := ⋯, zero_mem' := ⋯ }
Instances For
The Submonoid of continuous maps α → β.
Equations
- continuousSubmonoid α β = { carrier := {f : α → β | Continuous f}, mul_mem' := ⋯, one_mem' := ⋯ }
Instances For
The AddSubgroup of continuous maps α → β.
Equations
- continuousAddSubgroup α β = let __src := continuousAddSubmonoid α β; { toAddSubmonoid := __src, neg_mem' := ⋯ }
Instances For
The subgroup of continuous maps α → β.
Equations
- continuousSubgroup α β = let __src := continuousSubmonoid α β; { toSubmonoid := __src, inv_mem' := ⋯ }
Instances For
Equations
- ContinuousMap.instAddSemigroupOfContinuousAdd = Function.Injective.addSemigroup DFunLike.coe ⋯ ⋯
Equations
- ContinuousMap.instSemigroupOfContinuousMul = Function.Injective.semigroup DFunLike.coe ⋯ ⋯
Equations
- ContinuousMap.instAddCommSemigroupOfContinuousAdd = Function.Injective.addCommSemigroup DFunLike.coe ⋯ ⋯
Equations
- ContinuousMap.instCommSemigroupOfContinuousMul = Function.Injective.commSemigroup DFunLike.coe ⋯ ⋯
Equations
- ContinuousMap.instAddZeroClassOfContinuousAdd = Function.Injective.addZeroClass DFunLike.coe ⋯ ⋯ ⋯
Equations
- ContinuousMap.instMulOneClassOfContinuousMul = Function.Injective.mulOneClass DFunLike.coe ⋯ ⋯ ⋯
Equations
- ContinuousMap.instMulZeroClassOfContinuousMul = Function.Injective.mulZeroClass DFunLike.coe ⋯ ⋯ ⋯
Equations
- ContinuousMap.instSemigroupWithZeroOfContinuousMul = Function.Injective.semigroupWithZero DFunLike.coe ⋯ ⋯ ⋯
Equations
- ContinuousMap.instAddMonoidOfContinuousAdd = Function.Injective.addMonoid DFunLike.coe ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instMonoidOfContinuousMul = Function.Injective.monoid DFunLike.coe ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instMonoidWithZeroOfContinuousMul = Function.Injective.monoidWithZero DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instAddCommMonoidOfContinuousAdd = Function.Injective.addCommMonoid DFunLike.coe ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instCommMonoidOfContinuousMul = Function.Injective.commMonoid DFunLike.coe ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instCommMonoidWithZeroOfContinuousMul = Function.Injective.commMonoidWithZero DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Coercion to a function as an AddMonoidHom. Similar to AddMonoidHom.coeFn.
Equations
Instances For
Coercion to a function as a MonoidHom. Similar to MonoidHom.coeFn.
Equations
Instances For
Composition on the left by a (continuous) homomorphism of topological AddMonoids, as an
AddMonoidHom. Similar to AddMonoidHom.comp_left.
Equations
- AddMonoidHom.compLeftContinuous α g hg = { toFun := fun (f : C(α, β)) => { toFun := ⇑g, continuous_toFun := hg }.comp f, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Composition on the left by a (continuous) homomorphism of topological monoids, as a
MonoidHom. Similar to MonoidHom.compLeft.
Equations
- MonoidHom.compLeftContinuous α g hg = { toFun := fun (f : C(α, β)) => { toFun := ⇑g, continuous_toFun := hg }.comp f, map_one' := ⋯, map_mul' := ⋯ }
Instances For
Composition on the right as an AddMonoidHom. Similar to AddMonoidHom.compHom'.
Equations
Instances For
Composition on the right as a MonoidHom. Similar to MonoidHom.compHom'.
Equations
Instances For
Equations
- ContinuousMap.instAddGroupOfTopologicalAddGroup = Function.Injective.addGroup DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instGroupOfTopologicalGroup = Function.Injective.group DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instAddCommGroupContinuousMap = Function.Injective.addCommGroup DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instCommGroupContinuousMap = Function.Injective.commGroup DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
If α is locally compact, and an infinite sum of functions in C(α, β)
converges to g (for the compact-open topology), then the pointwise sum converges to g x for
all x ∈ α.
Ring structure #
In this section we show that continuous functions valued in a topological semiring R inherit
the structure of a ring.
The subsemiring of continuous maps α → β.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The subring of continuous maps α → β.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ContinuousMap.instNonUnitalNonAssocSemiringOfTopologicalSemiring = Function.Injective.nonUnitalNonAssocSemiring DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instNonUnitalSemiringOfTopologicalSemiring = Function.Injective.nonUnitalSemiring DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instAddMonoidWithOneOfContinuousAdd = Function.Injective.addMonoidWithOne DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instNonAssocSemiringOfTopologicalSemiring = Function.Injective.nonAssocSemiring DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instSemiringOfTopologicalSemiring = Function.Injective.semiring DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instNonUnitalNonAssocRingOfTopologicalRing = Function.Injective.nonUnitalNonAssocRing DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instNonUnitalRingOfTopologicalRing = Function.Injective.nonUnitalRing DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instNonAssocRingOfTopologicalRing = Function.Injective.nonAssocRing DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instRing = Function.Injective.ring DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instNonUnitalCommSemiringOfTopologicalSemiring = Function.Injective.nonUnitalCommSemiring DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instCommSemiringOfTopologicalSemiring = Function.Injective.commSemiring DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instNonUnitalCommRingOfTopologicalRing = Function.Injective.nonUnitalCommRing DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ContinuousMap.instCommRingOfTopologicalRing = Function.Injective.commRing DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Composition on the left by a (continuous) homomorphism of topological semirings, as a
RingHom. Similar to RingHom.compLeft.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Coercion to a function as a RingHom.
Equations
- ContinuousMap.coeFnRingHom = let __src := ContinuousMap.coeFnMonoidHom; let __src_1 := ContinuousMap.coeFnAddMonoidHom; { toMonoidHom := __src, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Module structure #
In this section we show that continuous functions valued in a topological module M over a
topological semiring R inherit the structure of a module.
The R-submodule of continuous maps α → M.
Equations
- continuousSubmodule α R M = let __src := continuousAddSubgroup α M; { carrier := {f : α → M | Continuous f}, add_mem' := ⋯, zero_mem' := ⋯, smul_mem' := ⋯ }
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ContinuousMap.instMulActionOfContinuousConstSMul = Function.Injective.mulAction DFunLike.coe ⋯ ⋯
Equations
- ContinuousMap.instDistribMulActionOfContinuousConstSMul = Function.Injective.distribMulAction ContinuousMap.coeFnAddMonoidHom ⋯ ⋯
Equations
- ContinuousMap.module = Function.Injective.module R ContinuousMap.coeFnAddMonoidHom ⋯ ⋯
Composition on the left by a continuous linear map, as a LinearMap.
Similar to LinearMap.compLeft.
Equations
- ContinuousLinearMap.compLeftContinuous R α g = let __src := AddMonoidHom.compLeftContinuous α (↑g).toAddMonoidHom ⋯; { toFun := (↑__src).toFun, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Coercion to a function as a LinearMap.
Equations
- ContinuousMap.coeFnLinearMap R = let __src := ContinuousMap.coeFnAddMonoidHom; { toFun := (↑__src).toFun, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Algebra structure #
In this section we show that continuous functions valued in a topological algebra A over a ring
R inherit the structure of an algebra. Note that the hypothesis that A is a topological algebra
is obtained by requiring that A be both a ContinuousSMul and a TopologicalSemiring.
The R-subalgebra of continuous maps α → A.
Equations
- continuousSubalgebra = let __src := continuousSubsemiring α A; { carrier := {f : α → A | Continuous f}, mul_mem' := ⋯, one_mem' := ⋯, add_mem' := ⋯, zero_mem' := ⋯, algebraMap_mem' := ⋯ }
Instances For
Continuous constant functions as a RingHom.
Equations
- ContinuousMap.C = { toFun := fun (c : R) => { toFun := fun (x : α) => (algebraMap R A) c, continuous_toFun := ⋯ }, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Equations
- ContinuousMap.algebra = Algebra.mk ContinuousMap.C ⋯ ⋯
Composition on the left by a (continuous) homomorphism of topological R-algebras, as an
AlgHom. Similar to AlgHom.compLeft.
Equations
- AlgHom.compLeftContinuous R g hg = let __src := RingHom.compLeftContinuous α g.toRingHom hg; { toRingHom := __src, commutes' := ⋯ }
Instances For
Precomposition of functions into a topological semiring by a continuous map is an algebra homomorphism.
Equations
- ContinuousMap.compRightAlgHom R A f = { toFun := fun (g : C(β, A)) => g.comp f, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
Coercion to a function as an AlgHom.
Equations
- ContinuousMap.coeFnAlgHom R = let __src := ContinuousMap.coeFnRingHom; { toRingHom := __src, commutes' := ⋯ }
Instances For
A version of Set.SeparatesPoints for subalgebras of the continuous functions,
used for stating the Stone-Weierstrass theorem.
Instances For
A set of continuous maps "separates points strongly" if for each pair of distinct points there is a function with specified values on them.
We give a slightly unusual formulation, where the specified values are given by some
function v, and we ask f x = v x ∧ f y = v y. This avoids needing a hypothesis x ≠ y.
In fact, this definition would work perfectly well for a set of non-continuous functions, but as the only current use case is in the Stone-Weierstrass theorem, writing it this way avoids having to deal with casts inside the set. (This may need to change if we do Stone-Weierstrass on non-compact spaces, where the functions would be continuous functions vanishing at infinity.)
Instances For
Working in continuous functions into a topological field, a subalgebra of functions that separates points also separates points strongly.
By the hypothesis, we can find a function f so f x ≠ f y.
By an affine transformation in the field we can arrange so that f x = a and f x = b.
Equations
- ⋯ = ⋯
Structure as module over scalar functions #
If M is a module over R, then we show that the space of continuous functions from α to M
is naturally a module over the ring of continuous functions from α to R.
Equations
- ContinuousMap.module' R M = Module.mk ⋯ ⋯
We now provide formulas for f ⊓ g and f ⊔ g, where f g : C(α, β),
in terms of ContinuousMap.abs.
C(α, β)is a lattice ordered group
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Star structure #
If β has a continuous star operation, we put a star structure on C(α, β) by using the
star operation pointwise.
If β is a ⋆-ring, then C(α, β) inherits a ⋆-ring structure.
If β is a ⋆-ring and a ⋆-module over R, then the space of continuous functions from α to β
is a ⋆-module over R.
Equations
- ⋯ = ⋯
Equations
- ContinuousMap.instInvolutiveStarOfContinuousStar = InvolutiveStar.mk ⋯
Equations
- ContinuousMap.starAddMonoid = StarAddMonoid.mk ⋯
Equations
- ContinuousMap.starMul = StarMul.mk ⋯
Equations
- ContinuousMap.instStarRingOfContinuousStar = let __src := ContinuousMap.starAddMonoid; let __src_1 := ContinuousMap.starMul; StarRing.mk ⋯
Equations
- ⋯ = ⋯
The functorial map taking f : C(X, Y) to C(Y, A) →⋆ₐ[𝕜] C(X, A) given by pre-composition
with the continuous function f. See ContinuousMap.compMonoidHom' and
ContinuousMap.compAddMonoidHom', ContinuousMap.compRightAlgHom for bundlings of
pre-composition into a MonoidHom, an AddMonoidHom and an AlgHom, respectively, under
suitable assumptions on A.
Equations
- ContinuousMap.compStarAlgHom' 𝕜 A f = { toFun := fun (g : C(Y, A)) => g.comp f, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯, commutes' := ⋯, map_star' := ⋯ }
Instances For
ContinuousMap.compStarAlgHom' sends the identity continuous map to the identity
StarAlgHom
ContinuousMap.compStarAlgHom' is functorial.
Post-composition with a continuous star algebra homomorphism is a star algebra homomorphism between spaces of continuous maps.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ContinuousMap.compStarAlgHom sends the identity StarAlgHom on A to the identity
StarAlgHom on C(X, A).
ContinuousMap.compStarAlgHom is functorial.
Summing translates of a function #
Summing the translates of f by ℤ • p gives a map which is periodic with period p.
(This is true without any convergence conditions, since if the sum doesn't converge it is taken to
be the zero map, which is periodic.)
ContinuousMap.compStarAlgHom' as a StarAlgEquiv when the continuous map f is
actually a homeomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Evaluation as a bundled map #
Evaluation of continuous maps at a point, bundled as an algebra homomorphism.
Equations
- ContinuousMap.evalAlgHom S R x = { toFun := fun (f : C(X, R)) => f x, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
Evaluation of continuous maps at a point, bundled as a star algebra homomorphism.
Equations
- ContinuousMap.evalStarAlgHom S R x = let __src := ContinuousMap.evalAlgHom S R x; { toAlgHom := __src, map_star' := ⋯ }