Subalgebras over Commutative Semiring #
In this file we define subalgebras and the usual operations on them (map, comap').
More lemmas about adjoin can be found in ring_theory.adjoin.
- carrier : set A
- mul_mem' : ∀ {a b : A}, a ∈ self.carrier → b ∈ self.carrier → a * b ∈ self.carrier
- one_mem' : 1 ∈ self.carrier
- add_mem' : ∀ {a b : A}, a ∈ self.carrier → b ∈ self.carrier → a + b ∈ self.carrier
- zero_mem' : 0 ∈ self.carrier
- algebra_map_mem' : ∀ (r : R), ⇑(algebra_map R A) r ∈ self.carrier
A subalgebra is a sub(semi)ring that includes the range of algebra_map.
Reinterpret a subalgebra as a subsemiring.
Equations
- subalgebra.set_like = {coe := subalgebra.carrier _inst_3, coe_injective' := _}
Equations
- subalgebra.subsemiring_class = {to_submonoid_class := {to_mul_mem_class := {mul_mem := _}, one_mem := _}, add_mem := _, zero_mem := _}
Copy of a subalgebra with a new carrier equal to the old one. Useful to fix definitional
equalities.
Equations
The projection from a subalgebra of A to an additive submonoid of A.
Equations
The projection from a subalgebra of A to a submonoid of A.
Equations
A subalgebra over a ring is also a subring.
subalgebras inherit structure from their subsemiring / semiring coercions.
Equations
Equations
Equations
- S.to_ring = S.to_subring.to_ring
Equations
Equations
Equations
Equations
Equations
Equations
There is no linear_ordered_comm_semiring.
Equations
Equations
Convert a subalgebra to submodule
subalgebras inherit structure from their submodule coercions.
Equations
- S.module' = S.to_submodule.module'
Equations
- S.algebra' = {to_has_scalar := smul_with_zero.to_has_scalar (mul_action_with_zero.to_smul_with_zero R' ↥S), to_ring_hom := {to_fun := ((algebra_map R' A).cod_srestrict S.to_subsemiring _).to_fun, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}, commutes' := _, smul_def' := _}
Embedding of a subalgebra into the algebra.
Linear equivalence between S : submodule R A and S. Though these types are equal,
we define it as a linear_equiv to avoid type equalities.
Equations
Transport a subalgebra via an algebra homomorphism.
Equations
- S.map f = {carrier := (subsemiring.map ↑f S.to_subsemiring).carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}
Preimage of a subalgebra under an algebra homomorphism.
Equations
- S.comap' f = {carrier := (subsemiring.comap ↑f S.to_subsemiring).carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}
A submodule containing 1 and closed under multiplication is a subalgebra.
Equations
- p.to_subalgebra h_one h_mul = {carrier := p.carrier, mul_mem' := h_mul, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}
Range of an alg_hom as a subalgebra.
Restrict the codomain of an algebra homomorphism.
Equations
- f.cod_restrict S hf = {to_fun := (↑f.cod_srestrict S.to_subsemiring hf).to_fun, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _, commutes' := _}
Restrict the codomain of a alg_hom f to f.range.
This is the bundled version of set.range_factorization.
Equations
- f.range_restrict = f.cod_restrict f.range _
The equalizer of two R-algebra homomorphisms
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 alg_equiv.of_injective.
Restrict an injective algebra homomorphism to an algebra isomorphism
Equations
Restrict an algebra homomorphism between fields to an algebra isomorphism
Equations
Given an equivalence e : A ≃ₐ[R] B of R-algebras and a subalgebra S of A,
subalgebra_map is the induced equivalence between S and S.map e
Equations
- e.subalgebra_map S = {to_fun := (e.to_ring_equiv.subsemiring_map S.to_subsemiring).to_fun, inv_fun := (e.to_ring_equiv.subsemiring_map S.to_subsemiring).inv_fun, left_inv := _, right_inv := _, map_mul' := _, map_add' := _, commutes' := _}
The minimal subalgebra that includes s.
Equations
- algebra.adjoin R s = {carrier := (subsemiring.closure (set.range ⇑(algebra_map R A) ∪ s)).carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}
Galois insertion between adjoin and coe.
Equations
- algebra.gi = {choice := λ (s : set A) (hs : ↑(algebra.adjoin R s) ≤ s), (algebra.adjoin R s).copy s _, gc := _, le_l_u := _, choice_eq := _}
Equations
alg_hom to ⊤ : subalgebra R A.
Equations
- algebra.to_top = (alg_hom.id R A).cod_restrict ⊤ algebra.to_top._proof_1
The bottom subalgebra is isomorphic to the base ring.
Equations
The bottom subalgebra is isomorphic to the field.
Equations
The top subalgebra is isomorphic to the algebra.
This is the algebra version of submodule.top_equiv.
Equations
- subalgebra.top_equiv = alg_equiv.of_alg_hom ⊤.val algebra.to_top subalgebra.top_equiv._proof_1 subalgebra.top_equiv._proof_2
For performance reasons this is not an instance. If you need this instance, add
local attribute [instance] alg_hom.subsingleton subalgebra.subsingleton_of_subsingleton
in the section that needs it.
Equations
- subalgebra.unique = {to_inhabited := {default := default algebra.subalgebra.inhabited}, uniq := _}
The map S → T when S is a subalgebra contained in the subalgebra T.
This is the subalgebra version of submodule.of_le, or subring.inclusion
Equations
- subalgebra.inclusion h = {to_fun := set.inclusion h, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _, commutes' := _}
Two subalgebras that are equal are also equivalent as algebras.
This is the subalgebra version of linear_equiv.of_eq and equiv.set.of_eq.
The product of two subalgebras is a subalgebra.
Define an algebra homomorphism on a directed supremum of subalgebras by defining it on each subalgebra, and proving that it agrees on the intersection of subalgebras.
Actions by subalgebras #
These are just copies of the definitions about subsemiring starting from
subring.mul_action.
The action by a subalgebra is the action by the underlying algebra.
Equations
Note that this provides is_scalar_tower S R R which is needed by smul_mul_assoc.
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
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
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
The center of an algebra is the set of elements which commute with every element. They form a subalgebra.
Equations
- subalgebra.center R A = {carrier := (subsemiring.center A).carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}
The centralizer of a set as a subalgebra.
Equations
- subalgebra.centralizer R s = {carrier := (subsemiring.centralizer s).carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}
A subsemiring is a ℕ-subalgebra.
Equations
- subalgebra_of_subsemiring S = {carrier := S.carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}
A subring is a ℤ-subalgebra.
Equations
- subalgebra_of_subring S = {carrier := S.carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}