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
- 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 •.
Equations
- ⋯ = ⋯
A special case of eq_intCast' that happens to be true definitionally
Equations
- ⋯ = ⋯
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.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
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 := ⋯ }