Subalgebras over Commutative Semiring #
In this file we define Subalgebra
s and the usual operations on them (map
, comap
).
More lemmas about adjoin
can be found in RingTheory.Adjoin
.
A subalgebra is a sub(semi)ring that includes the range of algebraMap
.
- carrier : Set A
- one_mem' : 1 ∈ self.carrier
- zero_mem' : 0 ∈ self.carrier
- algebraMap_mem' : ∀ (r : R), (algebraMap R A) r ∈ self.carrier
The image of
algebraMap
is contained in the underlying set of the subalgebra
Instances For
Equations
- Subalgebra.instSetLikeSubalgebra = { coe := fun (s : Subalgebra R A) => s.carrier, coe_injective' := ⋯ }
Equations
- ⋯ = ⋯
Copy of a subalgebra with a new carrier
equal to the old one. Useful to fix definitional
equalities.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Alias of Subalgebra.natCast_mem
.
Alias of Subalgebra.intCast_mem
.
The projection from a subalgebra of A
to an additive submonoid of A
.
Equations
- Subalgebra.toAddSubmonoid S = Subsemiring.toAddSubmonoid S.toSubsemiring
Instances For
A subalgebra over a ring is also a Subring
.
Equations
- Subalgebra.toSubring S = let __src := S.toSubsemiring; { toSubsemiring := __src, neg_mem' := ⋯ }
Instances For
Equations
- Subalgebra.instInhabitedSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebra S = { default := 0 }
Subalgebra
s inherit structure from their Subsemiring
/ Semiring
coercions.
Equations
- Subalgebra.toSemiring S = Subsemiring.toSemiring S.toSubsemiring
Equations
- Subalgebra.toCommSemiring S = Subsemiring.toCommSemiring S.toSubsemiring
Equations
Equations
The forgetful map from Subalgebra
to Submodule
as an OrderEmbedding
Equations
- One or more equations did not get rendered due to their size.
Instances For
Subalgebra
s inherit structure from their Submodule
coercions.
Equations
- Subalgebra.module' S = Submodule.module' (Subalgebra.toSubmodule S)
Equations
- One or more equations did not get rendered due to their size.
Equations
- ⋯ = ⋯
Equations
- Subalgebra.algebra' S = let __src := RingHom.codRestrict (algebraMap R' A) S ⋯; Algebra.mk __src ⋯ ⋯
Equations
Equations
- ⋯ = ⋯
Embedding of a subalgebra into the algebra.
Equations
- Subalgebra.val S = { toRingHom := { toMonoidHom := { toOneHom := { toFun := Subtype.val, map_one' := ⋯ }, map_mul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }, commutes' := ⋯ }
Instances For
Linear equivalence between S : Submodule R A
and S
. Though these types are equal,
we define it as a LinearEquiv
to avoid type equalities.
Equations
- Subalgebra.toSubmoduleEquiv S = LinearEquiv.ofEq (Subalgebra.toSubmodule S) (Subalgebra.toSubmodule S) ⋯
Instances For
Transport a subalgebra via an algebra homomorphism.
Equations
- Subalgebra.map f S = let __src := Subsemiring.map (↑f) S.toSubsemiring; { toSubsemiring := __src, algebraMap_mem' := ⋯ }
Instances For
Preimage of a subalgebra under an algebra homomorphism.
Equations
- Subalgebra.comap f S = let __src := Subsemiring.comap (↑f) S.toSubsemiring; { toSubsemiring := __src, algebraMap_mem' := ⋯ }
Instances For
Equations
- ⋯ = ⋯
A submodule containing 1
and closed under multiplication is a subalgebra.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Range of an AlgHom
as a subalgebra.
Equations
- AlgHom.range φ = let __src := RingHom.rangeS φ.toRingHom; { toSubsemiring := __src, algebraMap_mem' := ⋯ }
Instances For
Restrict the codomain of an algebra homomorphism.
Equations
- AlgHom.codRestrict f S hf = let __src := RingHom.codRestrict (↑f) S hf; { toRingHom := __src, commutes' := ⋯ }
Instances For
Restrict the codomain of an AlgHom
f
to f.range
.
This is the bundled version of Set.rangeFactorization
.
Equations
- AlgHom.rangeRestrict f = AlgHom.codRestrict f (AlgHom.range f) ⋯
Instances For
The equalizer of two R-algebra homomorphisms
Equations
- One or more equations did not get rendered due to their size.
Instances For
The range of a morphism of algebras is a fintype, if the domain is a fintype.
Note that this instance can cause a diamond with Subtype.fintype
if B
is also a fintype.
Equations
Restrict an algebra homomorphism with a left inverse to an algebra isomorphism to its range.
This is a computable alternative to AlgEquiv.ofInjective
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Restrict an injective algebra homomorphism to an algebra isomorphism
Equations
Instances For
Restrict an algebra homomorphism between fields to an algebra isomorphism
Equations
Instances For
Given an equivalence e : A ≃ₐ[R] B
of R
-algebras and a subalgebra S
of A
,
subalgebraMap
is the induced equivalence between S
and S.map e
Equations
- AlgEquiv.subalgebraMap e S = let __src := RingEquiv.subsemiringMap (AlgEquiv.toRingEquiv e) S.toSubsemiring; { toEquiv := __src.toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
The minimal subalgebra that includes s
.
Equations
- Algebra.adjoin R s = let __src := Subsemiring.closure (Set.range ⇑(algebraMap R A) ∪ s); { toSubsemiring := __src, algebraMap_mem' := ⋯ }
Instances For
Galois insertion between adjoin
and coe
.
Equations
- Algebra.gi = { choice := fun (s : Set A) (hs : ↑(Algebra.adjoin R s) ≤ s) => Subalgebra.copy (Algebra.adjoin R s) s ⋯, gc := ⋯, le_l_u := ⋯, choice_eq := ⋯ }
Instances For
Equations
- Algebra.instCompleteLatticeSubalgebra = let __spread.0 := GaloisInsertion.liftCompleteLattice Algebra.gi; CompleteLattice.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
AlgHom
to ⊤ : Subalgebra R A
.
Equations
- Algebra.toTop = AlgHom.codRestrict (AlgHom.id R A) ⊤ ⋯
Instances For
The bottom subalgebra is isomorphic to the base ring.
Equations
Instances For
The bottom subalgebra is isomorphic to the field.
Equations
Instances For
The top subalgebra is isomorphic to the algebra.
This is the algebra version of Submodule.topEquiv
.
Equations
- Subalgebra.topEquiv = AlgEquiv.ofAlgHom (Subalgebra.val ⊤) Algebra.toTop ⋯ ⋯
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- Subalgebra.instUniqueSubalgebraToSemiringId = let __src := inferInstanceAs (Inhabited (Subalgebra R R)); { toInhabited := __src, uniq := ⋯ }
The map S → T
when S
is a subalgebra contained in the subalgebra T
.
This is the subalgebra version of Submodule.inclusion
, or Subring.inclusion
Equations
- One or more equations did not get rendered due to their size.
Instances For
Two subalgebras that are equal are also equivalent as algebras.
This is the Subalgebra
version of LinearEquiv.ofEq
and Equiv.Set.ofEq
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A subalgebra is isomorphic to its image under an injective AlgHom
Equations
- One or more equations did not get rendered due to their size.
Instances For
Actions by Subalgebra
s #
These are just copies of the definitions about Subsemiring
starting from
Subring.mulAction
.
The action by a subalgebra is the action by the underlying algebra.
Equations
- Subalgebra.instSMulSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebra S = inferInstanceAs (SMul (↥S.toSubsemiring) α)
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Note that this provides IsScalarTower S R R
which is needed by smul_mul_assoc
.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The action by a subalgebra is the action by the underlying algebra.
Equations
- One or more equations did not get rendered due to their size.
The action by a subalgebra is the action by the underlying algebra.
Equations
- One or more equations did not get rendered due to their size.
The action by a subalgebra is the action by the underlying algebra.
Equations
- One or more equations did not get rendered due to their size.
The action by a subalgebra is the action by the underlying algebra.
Equations
The action by a subalgebra is the action by the underlying algebra.
Equations
- Subalgebra.moduleLeft S = inferInstanceAs (Module (↥S.toSubsemiring) α)
The action by a subalgebra is the action by the underlying algebra.
Equations
- Subalgebra.toAlgebra S = Algebra.ofSubsemiring S.toSubsemiring
Equations
- ⋯ = ⋯
The center of an algebra is the set of elements which commute with every element. They form a subalgebra.
Equations
- Subalgebra.center R A = let __src := Subsemiring.center A; { toSubsemiring := __src, algebraMap_mem' := ⋯ }
Instances For
Equations
- Subalgebra.instCommSemiringSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraCenter = inferInstanceAs (CommSemiring ↥(Subsemiring.center A))
Equations
- Subalgebra.instCommRingSubtypeMemSubalgebraToSemiringInstMembershipInstSetLikeSubalgebraCenter = inferInstanceAs (CommRing ↥(Subring.center A))
The centralizer of a set as a subalgebra.
Equations
- Subalgebra.centralizer R s = let __src := Subsemiring.centralizer s; { toSubsemiring := __src, algebraMap_mem' := ⋯ }
Instances For
A subsemiring is an ℕ
-subalgebra.
Equations
- subalgebraOfSubsemiring S = { toSubsemiring := S, algebraMap_mem' := ⋯ }
Instances For
A subring is a ℤ
-subalgebra.
Equations
- subalgebraOfSubring S = { toSubsemiring := S.toSubsemiring, algebraMap_mem' := ⋯ }