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
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
NonUnitalAlgSemiHomClass F φ A B
asserts F
is a type of bundled algebra homomorphisms
from A
to B
which are equivariant with respect to φ
.
Instances
NonUnitalAlgHomClass F R A B
asserts F
is a type of bundled algebra homomorphisms
from A
to B
which are R
-linear.
This is an abbreviation to NonUnitalAlgSemiHomClass F (MonoidHom.id R) A B
Equations
- NonUnitalAlgHomClass F R A B = NonUnitalAlgSemiHomClass F (MonoidHom.id R) A B
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Turn an element of a type F
satisfying NonUnitalAlgSemiHomClass F φ A B
into an actual
NonUnitalAlgHom
. This is declared as the default coercion from F
to A →ₛₙₐ[φ] B
.
Equations
- ↑f = { toFun := ⇑f, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯ }
Instances For
Equations
- NonUnitalAlgHomClass.instCoeTCNonUnitalAlgHomOfNonUnitalAlgSemiHomClass = { coe := NonUnitalAlgHomClass.toNonUnitalAlgSemiHom }
Turn an element of a type F
satisfying NonUnitalAlgHomClass F R A B
into an actual
@[coe]
NonUnitalAlgHom
. This is declared as the default coercion from F
to A →ₛₙₐ[R] B
.
Equations
- NonUnitalAlgHomClass.toNonUnitalAlgHom f = { toFun := ⇑f, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯ }
Instances For
Equations
- NonUnitalAlgHomClass.instCoeTCNonUnitalAlgHomId = { coe := NonUnitalAlgHomClass.toNonUnitalAlgHom }
Equations
- NonUnitalAlgHom.instDFunLike φ A B = { coe := fun (f : A →ₛₙₐ[φ] B) => f.toFun, coe_injective' := ⋯ }
See Note [custom simps projection]
Equations
- NonUnitalAlgHom.Simps.apply φ A B f = ⇑f
Instances For
Equations
- ⋯ = ⋯
Equations
- NonUnitalAlgHom.instCoeOutDistribMulActionHom = { coe := NonUnitalAlgHom.toDistribMulActionHom }
Equations
- NonUnitalAlgHom.instCoeOutMulHom = { coe := NonUnitalAlgHom.toMulHom }
The identity map as a NonUnitalAlgHom
.
Equations
- NonUnitalAlgHom.id R A = { toFun := id, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯ }
Instances For
Equations
- NonUnitalAlgHom.instZero = { zero := let __src := 0; { toDistribMulActionHom := __src, map_mul' := ⋯ } }
Equations
- NonUnitalAlgHom.instOneId = { one := NonUnitalAlgHom.id R A }
Equations
- NonUnitalAlgHom.instInhabited = { default := 0 }
The composition of morphisms is a morphism.
Equations
- f.comp g = { toFun := ((↑f).comp ↑g).toFun, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯ }
Instances For
The inverse of a bijective morphism is a morphism.
Equations
- f.inverse g h₁ h₂ = { toFun := ((↑f).inverse g h₁ h₂).toFun, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯ }
Instances For
The inverse of a bijective morphism is a morphism.
Equations
- f.inverse' g k h₁ h₂ = { toFun := ((↑f).inverse g h₁ h₂).toFun, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯ }
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 = { 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 = { toFun := Prod.snd, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯ }
Instances For
The prod of two morphisms is a morphism.
Equations
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 = { toFun := (↑↑f.toRingHom).toFun, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯ }
Instances For
If a monoid R
acts on another monoid S
, then a non-unital algebra homomorphism
over S
can be viewed as a non-unital algebra homomorphism over R
.
Equations
- NonUnitalAlgHom.restrictScalars R f = { toFun := (↑f).toFun, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯ }