Theory of topological monoids #
In this file we define mixin classes ContinuousMul
and ContinuousAdd
. While in many
applications the underlying type is a monoid (multiplicative or additive), we do not require this in
the definitions.
- continuous_add : Continuous fun p => p.fst + p.snd
Basic hypothesis to talk about a topological additive monoid or a topological additive
semigroup. A topological additive monoid over M
, for example, is obtained by requiring both the
instances AddMonoid M
and ContinuousAdd M
.
Continuity in only the left/right argument can be stated using
ContinuousConstVAdd α α
/ContinuousConstVAdd αᵐᵒᵖ α
.
Instances
- continuous_mul : Continuous fun p => p.fst * p.snd
Basic hypothesis to talk about a topological monoid or a topological semigroup.
A topological monoid over M
, for example, is obtained by requiring both the instances Monoid M
and ContinuousMul M
.
Continuity in only the left/right argument can be stated using
ContinuousConstSMul α α
/ContinuousConstSMul αᵐᵒᵖ α
.
Instances
Equations
- (_ : ContinuousAdd Mᵒᵈ) = inst
Equations
- (_ : ContinuousMul Mᵒᵈ) = inst
Construct an additive unit from limits of additive units and their negatives.
Equations
Instances For
Construct a unit from limits of units and their inverses.
Equations
Instances For
Equations
Equations
A version of Pi.continuousAdd
for non-dependent functions. It is needed
because sometimes Lean fails to use Pi.continuousAdd
for non-dependent functions.
A version of Pi.continuousMul
for non-dependent functions. It is needed because sometimes
Lean 3 fails to use Pi.continuousMul
for non-dependent functions.
Construct a bundled additive monoid homomorphism M₁ →+ M₂
from a function f
and a proof that it belongs to the closure of the range of the coercion from M₁ →+ M₂
(or another
type of bundled homomorphisms that has an AddMonoidHomClass
instance) to M₁ → M₂
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a bundled monoid homomorphism M₁ →* M₂
from a function f
and a proof that it
belongs to the closure of the range of the coercion from M₁ →* M₂
(or another type of bundled
homomorphisms that has a MonoidHomClass
instance) to M₁ → M₂
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a bundled additive monoid homomorphism from a pointwise limit of additive monoid homomorphisms
Equations
- addMonoidHomOfTendsto f g h = addMonoidHomOfMemClosureRangeCoe f (_ : f ∈ closure (Set.range fun f x => ↑f x))
Instances For
Construct a bundled monoid homomorphism from a pointwise limit of monoid homomorphisms.
Equations
- monoidHomOfTendsto f g h = monoidHomOfMemClosureRangeCoe f (_ : f ∈ closure (Set.range fun f x => ↑f x))
Instances For
The (topological-space) closure of an additive submonoid of a space M
with
ContinuousAdd
is itself an additive submonoid.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The (topological-space) closure of a submonoid of a space M
with ContinuousMul
is
itself a submonoid.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- AddSubmonoid.addCommMonoidTopologicalClosure.match_1 s motive x h_1 = Subtype.casesOn x fun val property => h_1 val property
Instances For
If a submonoid of an additive topological monoid is commutative, then so is its topological closure.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If a submonoid of a topological monoid is commutative, then so is its topological closure.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- exists_nhds_zero_half.match_1 motive x h_1 = Exists.casesOn x fun w h => And.casesOn h fun left right => And.casesOn right fun left_1 right => h_1 w left left_1 right
Instances For
Given an open neighborhood U
of 0
there is an open neighborhood V
of 0
such that V + V ⊆ U
.
Given a neighborhood U
of 1
there is an open neighborhood V
of 1
such that VV ⊆ U
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- continuous_nsmul.match_1 motive x h_1 h_2 = Nat.casesOn x (h_1 ()) fun n => h_2 n
Instances For
Left-multiplication by a left-invertible element of a topological monoid is proper, i.e., inverse images of compact sets are compact.
Right-multiplication by a right-invertible element of a topological monoid is proper, i.e., inverse images of compact sets are compact.
If R
acts on A
via A
, then continuous addition implies
continuous affine addition by constants.
If R
acts on A
via A
, then continuous multiplication implies continuous scalar
multiplication by constants.
Notably, this instances applies when R = A
, or when [Algebra R A]
is available.
If the action of R
on A
commutes with left-addition, then
continuous addition implies continuous affine addition by constants.
Notably, this instances applies when R = Aᵃᵒᵖ
.
If the action of R
on A
commutes with left-multiplication, then continuous multiplication
implies continuous scalar multiplication by constants.
Notably, this instances applies when R = Aᵐᵒᵖ
.
If addition is continuous in α
, then it also is in αᵃᵒᵖ
.
If multiplication is continuous in α
, then it also is in αᵐᵒᵖ
.
If addition on an additive monoid is continuous, then addition on the additive units of the monoid, with respect to the induced topology, is continuous.
Negation is also continuous, but we register this in a later file, Topology.Algebra.Group
, because
the predicate ContinuousNeg
has not yet been defined.
If multiplication on a monoid is continuous, then multiplication on the units of the monoid, with respect to the induced topology, is continuous.
Inversion is also continuous, but we register this in a later file, Topology.Algebra.Group
,
because the predicate ContinuousInv
has not yet been defined.
Equations
- finsum_eventually_eq_sum.match_1 x motive x h_1 = Exists.casesOn x fun w h => h_1 w h
Instances For
The continuous map fun y => y + x
Equations
- ContinuousMap.addRight x = ContinuousMap.mk fun b => b + x
Instances For
The continuous map fun y => y * x
Equations
- ContinuousMap.mulRight x = ContinuousMap.mk fun b => b * x
Instances For
The continuous map fun y => x + y
Equations
- ContinuousMap.addLeft x = ContinuousMap.mk fun b => x + b
Instances For
The continuous map fun y => x * y
Equations
- ContinuousMap.mulLeft x = ContinuousMap.mk fun b => x * b