Equations
- PUnit.algebra = Algebra.mk { toFun := fun (x : R) => PUnit.unit, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯
Equations
- ULift.algebra = Algebra.mk { toFun := fun (r : R) => { down := (algebraMap R A) r }, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯
Algebra over a subsemiring. This builds upon Subsemiring.module
.
Equations
- Algebra.ofSubsemiring S = Algebra.mk ((algebraMap R A).comp S.subtype) ⋯ ⋯
Algebra over a subring. This builds upon Subring.module
.
Equations
- Algebra.ofSubring S = Algebra.mk ((algebraMap R A).comp S.subtype) ⋯ ⋯
Explicit characterization of the submonoid map in the case of an algebra.
S
is made explicit to help with type inference
Equations
- Algebra.algebraMapSubmonoid S M = Submonoid.map (algebraMap R S) M
Instances For
A Semiring
that is an Algebra
over a commutative ring carries a natural Ring
structure.
See note [reducible non-instances].
Equations
- Algebra.semiringToRing R = Ring.mk ⋯ SubNegMonoid.zsmul ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Equations
- Algebra.instSubtypeMemSubringCenter = Algebra.mk { toFun := Subtype.val, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯
Equations
- Module.End.instAlgebra R S M = Algebra.ofModule ⋯ ⋯
An alternate statement of LinearMap.map_smul
for when algebraMap
is more convenient to
work with than •
.
A special case of eq_intCast'
that happens to be true definitionally
If algebraMap R A
is injective and A
has no zero divisors,
R
-multiples in A
are zero only if one of the factors is zero.
Cannot be an instance because there is no Injective (algebraMap R A)
typeclass.
A
-linearly coerce an R
-linear map from M
to A
to a function, given an algebra A
over
a commutative semiring R
and M
a module over R
.
Equations
- LinearMap.ltoFun R M A = { toFun := fun (f : M →ₗ[R] A) => f.toFun, map_add' := ⋯, map_smul' := ⋯ }
Instances For
TODO: The following lemmas no longer involve Algebra
at all, and could be moved closer
to Algebra/Module/Submodule.lean
. Currently this is tricky because ker
, range
, ⊤
, and ⊥
are all defined in LinearAlgebra/Basic.lean
.
If there is a linear map f : A →ₗ[R] B
that preserves 1
, then algebraMap R B r
is
invertible when algebraMap R A r
is.
Equations
- Invertible.algebraMapOfInvertibleAlgebraMap f hf h = { invOf := f ⅟((algebraMap R A) r), invOf_mul_self := ⋯, mul_invOf_self := ⋯ }
Instances For
If there is a linear map f : A →ₗ[R] B
that preserves 1
, then algebraMap R B r
is
a unit when algebraMap R A r
is.
If E
is an F
-algebra, and there exists an injective F
-linear map from F
to E
,
then the algebra map from F
to E
is also injective.
If E
is an F
-algebra, and there exists a surjective F
-linear map from F
to E
,
then the algebra map from F
to E
is also surjective.
If E
is an F
-algebra, and there exists a bijective F
-linear map from F
to E
,
then the algebra map from F
to E
is also bijective.
NOTE: The same result can also be obtained if there are two F
-linear maps from F
to E
,
one is injective, the other one is surjective. In this case, use
injective_algebraMap_of_linearMap
and surjective_algebraMap_of_linearMap
separately.
If E
is an F
-algebra, there exists an F
-linear isomorphism from F
to E
(namely,
E
is a free F
-module of rank one), then the algebra map from F
to E
is bijective.
If R →+* S
is surjective, then S
-linear maps between modules are exactly R
-linear maps.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If R →+* S
is surjective, then R
-linear maps are also S
-linear.
Equations
Instances For
If R →+* S
is surjective, then R
-linear isomorphisms are also S
-linear.
Equations
- LinearEquiv.extendScalarsOfSurjective h f = { toAddHom := (↑f).toAddHom, map_smul' := ⋯, invFun := f.invFun, left_inv := ⋯, right_inv := ⋯ }