Basics on bilinear maps #
This file provides basics on bilinear maps. The most general form considered are maps that are
semilinear in both arguments. They are of type M →ₛₗ[ρ₁₂] N →ₛₗ[σ₁₂] P, where M and N
are modules over R and S respectively, P is a module over both R₂ and S₂ with
commuting actions, and ρ₁₂ : R →+* R₂ and σ₁₂ : S →+* S₂.
Main declarations #
linear_map.mk₂: a constructor for bilinear maps, taking an unbundled function together with proof witnesses of bilinearitylinear_map.flip: turns a bilinear mapM × N → PintoN × M → Plinear_map.lcompandlinear_map.llcomp: composition of linear maps as a bilinear maplinear_map.compl₂: composition of a bilinear mapM × N → Pwith a linear mapQ → Mlinear_map.compr₂: composition of a bilinear mapM × N → Pwith a linear mapQ → Nlinear_map.lsmul: scalar multiplication as a bilinear mapR × M → M
Tags #
bilinear
Create a bilinear map from a function that is semilinear in each component.
See mk₂' and mk₂ for the linear case.
Create a bilinear map from a function that is linear in each component.
See mk₂ for the special case where both arguments come from modules over the same ring.
Equations
- linear_map.mk₂' R S f H1 H2 H3 H4 = linear_map.mk₂'ₛₗ (ring_hom.id R) (ring_hom.id S) f H1 H2 H3 H4
Given a linear map from M to linear maps from N to P, i.e., a bilinear map from M × N to
P, change the order of variables and get a linear map from N to linear maps from M to P.
Equations
- f.flip = linear_map.mk₂'ₛₗ σ₁₂ ρ₁₂ (λ (n : N) (m : M), ⇑(⇑f m) n) _ _ _ _
Restricting a bilinear map in the second entry
Equations
- f.dom_restrict₂ q = {to_fun := λ (m : M), (⇑f m).dom_restrict q, map_add' := _, map_smul' := _}
Restricting a bilinear map in both components
Equations
- f.dom_restrict₁₂ p q = (f.dom_restrict p).dom_restrict₂ q
Create a bilinear map from a function that is linear in each component.
This is a shorthand for mk₂' for the common case when R = S.
Equations
- linear_map.mk₂ R f H1 H2 H3 H4 = linear_map.mk₂' R R f H1 H2 H3 H4
Given a linear map from M to linear maps from N to P, i.e., a bilinear map M → N → P,
change the order of variables and get a linear map from N to linear maps from M to P.
Equations
- linear_map.lflip R M N P = {to_fun := linear_map.flip σ₂₃, map_add' := _, map_smul' := _}
Composing a linear map M → N and a linear map N → P to form a linear map M → P.
Equations
- linear_map.lcomp R Pₗ f = (linear_map.id.flip.comp f).flip
Composing a semilinear map M → N and a semilinear map N → P to form a semilinear map
M → P is itself a linear map.
Equations
- linear_map.lcompₛₗ P σ₂₃ f = (linear_map.id.flip.comp f).flip
Composing a linear map M → N and a linear map N → P to form a linear map M → P.
Equations
- linear_map.llcomp R M Nₗ Pₗ = {to_fun := linear_map.lcomp R Pₗ _inst_20, map_add' := _, map_smul' := _}.flip
Composing a linear map Q → N and a bilinear map M → N → P to
form a bilinear map M → Q → P.
Equations
- f.compl₂ g = (linear_map.lcompₛₗ P σ₂₃ g).comp f
Composing linear maps Q → M and Q' → N with a bilinear map M → N → P to
form a bilinear map Q → Q' → P.
Composing a linear map P → Q and a bilinear map M → N → P to
form a bilinear map M → N → Q.
Equations
- f.compr₂ g = (⇑(linear_map.llcomp R Nₗ Pₗ Qₗ) g).comp f
Scalar multiplication as a bilinear map R → M → M.
Equations
- linear_map.lsmul R M = linear_map.mk₂ R has_scalar.smul _ _ _ _
Two bilinear maps are equal when they are equal on all basis vectors.
Write out B x y as a sum over B (b i) (b j) if b is a basis.