Morphisms of non-unital algebras #
This file defines morphisms between two types, each of which carries:
- an addition,
- an additive zero,
- a multiplication,
- a scalar action.
The multiplications are not assumed to be associative or unital, or even to be compatible with the scalar actions. In a typical application, the operations will satisfy compatibility conditions making them into algebras (albeit possibly non-associative and/or non-unital) but such conditions are not required to make this definition.
This notion of morphism should be useful for any category of non-unital algebras. The motivating
application at the time it was introduced was to be able to state the adjunction property for
magma algebras. These are non-unital, non-associative algebras obtained by applying the
group-algebra construction except where we take a type carrying just Mul instead of Group.
For a plausible future application, one could take the non-unital algebra of compactly-supported
functions on a non-compact topological space. A proper map between a pair of such spaces
(contravariantly) induces a morphism between their algebras of compactly-supported functions which
will be a NonUnitalAlgHom.
TODO: add NonUnitalAlgEquiv when needed.
Main definitions #
Tags #
non-unital, algebra, morphism
A morphism respecting addition, multiplication, and scalar multiplication. When these arise from algebra structures, this is the same as a not-necessarily-unital morphism of algebras.
- toFun : A → B
- map_zero' : self.toFun 0 = 0
The proposition that the function preserves multiplication
Instances For
A morphism respecting addition, multiplication, and scalar multiplication. When these arise from algebra structures, this is the same as a not-necessarily-unital morphism of algebras.
Equations
- «term_→ₙₐ_» = Lean.ParserDescr.trailingNode `term_→ₙₐ_ 25 26 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " →ₙₐ ") (Lean.ParserDescr.cat `term 25))
Instances For
A morphism respecting addition, multiplication, and scalar multiplication. When these arise from algebra structures, this is the same as a not-necessarily-unital morphism of algebras.
Equations
- One or more equations did not get rendered due to their size.
Instances For
NonUnitalAlgHomClass F R A B asserts F is a type of bundled algebra homomorphisms
from A to B.
Instances
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Turn an element of a type F satisfying NonUnitalAlgHomClass F R A B into an actual
NonUnitalAlgHom. This is declared as the default coercion from F to A →ₙₐ[R] B.
Equations
- ↑f = let __src := ↑f; { toDistribMulActionHom := { toMulActionHom := { toFun := __src.toFun, map_smul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }, map_mul' := ⋯ }
Instances For
Equations
- NonUnitalAlgHomClass.instCoeTCNonUnitalAlgHom = { coe := NonUnitalAlgHomClass.toNonUnitalAlgHom }
See Note [custom simps projection]
Equations
Instances For
Equations
- ⋯ = ⋯
Equations
- NonUnitalAlgHom.instCoeOutNonUnitalAlgHomDistribMulActionHomToAddMonoidToAddCommMonoidToAddMonoidToAddCommMonoid = { coe := NonUnitalAlgHom.toDistribMulActionHom }
Equations
- NonUnitalAlgHom.instCoeOutNonUnitalAlgHomMulHomToMulToMul = { coe := NonUnitalAlgHom.toMulHom }
The identity map as a NonUnitalAlgHom.
Equations
- NonUnitalAlgHom.id R A = let __src := NonUnitalRingHom.id A; { toDistribMulActionHom := { toMulActionHom := { toFun := id, map_smul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }, map_mul' := ⋯ }
Instances For
Equations
- NonUnitalAlgHom.instZeroNonUnitalAlgHom = { zero := let __src := 0; { toDistribMulActionHom := __src, map_mul' := ⋯ } }
Equations
- NonUnitalAlgHom.instOneNonUnitalAlgHom = { one := NonUnitalAlgHom.id R A }
Equations
- NonUnitalAlgHom.instInhabitedNonUnitalAlgHom = { default := 0 }
The composition of morphisms is a morphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The inverse of a bijective morphism is a morphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Operations on the product type #
Note that much of this is copied from LinearAlgebra/Prod.
The first projection of a product is a non-unital alg_hom.
Equations
- NonUnitalAlgHom.fst R A B = { toDistribMulActionHom := { toMulActionHom := { toFun := Prod.fst, map_smul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }, map_mul' := ⋯ }
Instances For
The second projection of a product is a non-unital alg_hom.
Equations
- NonUnitalAlgHom.snd R A B = { toDistribMulActionHom := { toMulActionHom := { toFun := Prod.snd, map_smul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }, map_mul' := ⋯ }
Instances For
The prod of two morphisms is a morphism.
Equations
- NonUnitalAlgHom.prod f g = { toDistribMulActionHom := { toMulActionHom := { toFun := Pi.prod ⇑f ⇑g, map_smul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }, map_mul' := ⋯ }
Instances For
Taking the product of two maps with the same domain is equivalent to taking the product of their codomains.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The left injection into a product is a non-unital algebra homomorphism.
Equations
- NonUnitalAlgHom.inl R A B = NonUnitalAlgHom.prod 1 0
Instances For
The right injection into a product is a non-unital algebra homomorphism.
Equations
- NonUnitalAlgHom.inr R A B = NonUnitalAlgHom.prod 0 1
Instances For
Equations
- ⋯ = ⋯
A unital morphism of algebras is a NonUnitalAlgHom.
Equations
- ↑f = { toDistribMulActionHom := { toMulActionHom := { toFun := f.toFun, map_smul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }, map_mul' := ⋯ }