Algebraic operations on SeparationQuotient
#
In this file we define algebraic operations (multiplication, addition etc) on the separation quotient of a topological space with corresponding operation, provided that the original operation is continuous.
We also prove continuity of these operations
and show that they satisfy the same kind of laws (Monoid
etc) as the original ones.
Finally, we construct a section of the quotient map
which is a continuous linear map SeparationQuotient E →L[K] E
.
Equations
- SeparationQuotient.instVAdd = { vadd := fun (c : M) => Quotient.map' (fun (x : X) => c +ᵥ x) ⋯ }
Equations
- SeparationQuotient.instSMul = { smul := fun (c : M) => Quotient.map' (fun (x : X) => c • x) ⋯ }
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- SeparationQuotient.instSMulZeroClass = { toFun := SeparationQuotient.mk, map_zero' := ⋯ }.smulZeroClass ⋯
Equations
- SeparationQuotient.instAddAction = Function.Surjective.addAction SeparationQuotient.mk ⋯ ⋯
Equations
- SeparationQuotient.instMulAction = Function.Surjective.mulAction SeparationQuotient.mk ⋯ ⋯
Equations
- SeparationQuotient.instAdd = { add := Quotient.map₂' (fun (x1 x2 : M) => x1 + x2) ⋯ }
Equations
- SeparationQuotient.instMul = { mul := Quotient.map₂' (fun (x1 x2 : M) => x1 * x2) ⋯ }
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- SeparationQuotient.instAddCommMagma = Function.Surjective.addCommMagma SeparationQuotient.mk ⋯ ⋯
Equations
- SeparationQuotient.instCommMagma = Function.Surjective.commMagma SeparationQuotient.mk ⋯ ⋯
Equations
- SeparationQuotient.instAddSemigroup = Function.Surjective.addSemigroup SeparationQuotient.mk ⋯ ⋯
Equations
- SeparationQuotient.instSemigroup = Function.Surjective.semigroup SeparationQuotient.mk ⋯ ⋯
Equations
- SeparationQuotient.instAddCommSemigroup = Function.Surjective.addCommSemigroup SeparationQuotient.mk ⋯ ⋯
Equations
- SeparationQuotient.instCommSemigroup = Function.Surjective.commSemigroup SeparationQuotient.mk ⋯ ⋯
Equations
- SeparationQuotient.instAddZeroClass = Function.Surjective.addZeroClass SeparationQuotient.mk ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instMulOneClass = Function.Surjective.mulOneClass SeparationQuotient.mk ⋯ ⋯ ⋯
SeparationQuotient.mk
as an AddMonoidHom
.
Equations
- SeparationQuotient.mkAddMonoidHom = { toFun := SeparationQuotient.mk, map_zero' := ⋯, map_add' := ⋯ }
Instances For
SeparationQuotient.mk
as a MonoidHom
.
Equations
- SeparationQuotient.mkMonoidHom = { toFun := SeparationQuotient.mk, map_one' := ⋯, map_mul' := ⋯ }
Instances For
Equations
- SeparationQuotient.instNSmul = inferInstance
Equations
- SeparationQuotient.instPow = { pow := fun (x : SeparationQuotient M) (n : ℕ) => Quotient.map' (fun (x : M) => x ^ n) ⋯ x }
Equations
- SeparationQuotient.instAddMonoid = Function.Surjective.addMonoid SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instMonoid = Function.Surjective.monoid SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instAddCommMonoid = Function.Surjective.addCommMonoid SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instCommMonoid = Function.Surjective.commMonoid SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instNeg = { neg := Quotient.map' (fun (x : G) => -x) ⋯ }
Equations
- SeparationQuotient.instInv = { inv := Quotient.map' (fun (x : G) => x⁻¹) ⋯ }
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- SeparationQuotient.instInvolutiveNeg = Function.Surjective.involutiveNeg SeparationQuotient.mk ⋯ ⋯
Equations
- SeparationQuotient.instInvolutiveInv = Function.Surjective.involutiveInv SeparationQuotient.mk ⋯ ⋯
Equations
- SeparationQuotient.instNegZeroClass = NegZeroClass.mk ⋯
Equations
- SeparationQuotient.instInvOneClass = InvOneClass.mk ⋯
Equations
- SeparationQuotient.instSub = { sub := Quotient.map₂' (fun (x1 x2 : G) => x1 - x2) ⋯ }
Equations
- SeparationQuotient.instDiv = { div := Quotient.map₂' (fun (x1 x2 : G) => x1 / x2) ⋯ }
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- SeparationQuotient.instZSMul = inferInstance
Equations
- SeparationQuotient.instZPow = { pow := fun (x : SeparationQuotient G) (n : ℤ) => Quotient.map' (fun (x : G) => x ^ n) ⋯ x }
Equations
- SeparationQuotient.instAddGroup = Function.Surjective.addGroup SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instGroup = Function.Surjective.group SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instAddCommGroup = Function.Surjective.addCommGroup SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instCommGroup = Function.Surjective.commGroup SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- SeparationQuotient.instMulZeroClass = Function.Surjective.mulZeroClass SeparationQuotient.mk ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instSemigroupWithZero = Function.Surjective.semigroupWithZero SeparationQuotient.mk ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instMulZeroOneClass = Function.Surjective.mulZeroOneClass SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instMonoidWithZero = Function.Surjective.monoidWithZero SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instCommMonoidWithZero = Function.Surjective.commMonoidWithZero SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instDistrib = Function.Surjective.distrib SeparationQuotient.mk ⋯ ⋯ ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- SeparationQuotient.instNonUnitalnonAssocSemiring = Function.Surjective.nonUnitalNonAssocSemiring SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instNonUnitalSemiring = Function.Surjective.nonUnitalSemiring SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instNatCast = { natCast := fun (n : ℕ) => SeparationQuotient.mk ↑n }
Equations
- SeparationQuotient.instIntCast = { intCast := fun (n : ℤ) => SeparationQuotient.mk ↑n }
Equations
- SeparationQuotient.instNonAssocSemiring = Function.Surjective.nonAssocSemiring SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instNonUnitalNonAssocRing = Function.Surjective.nonUnitalNonAssocRing SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instNonUnitalRing = Function.Surjective.nonUnitalRing SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instNonAssocRing = Function.Surjective.nonAssocRing SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instSemiring = Function.Surjective.semiring SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instRing = Function.Surjective.ring SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instNonUnitalNonAssocCommSemiring = Function.Surjective.nonUnitalNonAssocCommSemiring SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instNonUnitalCommSemiring = Function.Surjective.nonUnitalCommSemiring SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instCommSemiring = Function.Surjective.commSemiring SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instHasDistribNeg = Function.Surjective.hasDistribNeg SeparationQuotient.mk ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instNonUnitalNonAssocCommRing = Function.Surjective.nonUnitalNonAssocCommRing SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instNonUnitalCommRing = Function.Surjective.nonUnitalCommRing SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- SeparationQuotient.instCommRing = Function.Surjective.commRing SeparationQuotient.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
SeparationQuotient.mk
as a RingHom
.
Equations
- SeparationQuotient.mkRingHom = { toFun := SeparationQuotient.mk, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Equations
- SeparationQuotient.instDistribSMul = Function.Surjective.distribSMul SeparationQuotient.mkAddMonoidHom ⋯ ⋯
Equations
- SeparationQuotient.instDistribMulAction = Function.Surjective.distribMulAction SeparationQuotient.mkAddMonoidHom ⋯ ⋯
Equations
- SeparationQuotient.instMulDistribMulAction = Function.Surjective.mulDistribMulAction SeparationQuotient.mkMonoidHom ⋯ ⋯
Equations
- SeparationQuotient.instModule = Function.Surjective.module R SeparationQuotient.mkAddMonoidHom ⋯ ⋯
SeparationQuotient.mk
as a continuous linear map.
Equations
- SeparationQuotient.mkCLM R M = { toFun := SeparationQuotient.mk, map_add' := ⋯, map_smul' := ⋯, cont := ⋯ }
Instances For
Equations
- SeparationQuotient.instAlgebra = Algebra.mk (SeparationQuotient.mkRingHom.comp (algebraMap R A)) ⋯ ⋯
There exists a continuous K
-linear map from SeparationQuotient E
to E
such that mk (outCLM x) = x
for all x
.
Note that continuity of this map comes for free, because mk
is a topology inducing map.
A continuous K
-linear map from SeparationQuotient E
to E
such that mk (outCLM x) = x
for all x
.
Equations
- SeparationQuotient.outCLM K E = ⋯.choose
Instances For
The SeparationQuotient.outCLM K E
map is a topological embedding.