Bilinear maps read off multilinear maps in two variables #
A multilinear map on the constant family fun _ : Fin 2 => V and a bilinear map on V carry the
same data. This file records the direction that is used downstream:
MultilinearMap.toBilinMap reads a multilinear map m as the bilinear map
(x, y) ↦ m ![x, y], and two recognition lemmas say when that map is symmetric or alternating.
The point of the construction is that the maps out of a second symmetric or exterior power are
multilinear in exactly this sense, so a functional on Sym²V or on ⋀²V becomes a bilinear form
on V by composing with the universal multilinear map. That is what
TauCeti/LinearAlgebra/BilinearForm/Squares.lean builds on this file. An alternating bilinear
map can likewise be read as an AlternatingMap on Fin 2, and these two readings are inverse.
Main definitions #
MultilinearMap.toBilinMap: the bilinear map(x, y) ↦ m ![x, y]of a multilinear mapmin two variables.LinearMap.IsAlt.toAlternatingMap: an alternating bilinear map read as an alternating map on two arguments.
Main results #
MultilinearMap.isSymm_toBilinMap: the scalar-valued form is symmetric whenmis unchanged by swapping its two arguments.MultilinearMap.isAlt_toBilinMap: the map is alternating whenmvanishes on a repeated argument;AlternatingMap.isAlt_toBilinMapspecializes this to alternating maps.MultilinearMap.toBilinMap_injective: the other half of "the same data" -- the bilinear map determines the multilinear map.AlternatingMap.toAlternatingMap_isAlt_toBilinMapandLinearMap.IsAlt.toBilinMap_toAlternatingMap: the two round trips between alternating maps onFin 2and alternating bilinear maps.
Implementation notes #
Bilinearity is Mathlib's MultilinearMap.cons_add and cons_smul at the first argument and
MultilinearMap.snoc_add and snoc_smul at the second, since ![x, y] is both Fin.cons x ![y]
and Fin.snoc ![x] y. Feeding those four facts to LinearMap.mk₂ keeps the four linearity goals
stated in the ![·, ·] notation, so none of them has to be massaged into the nested form a bare
LinearMap constructor would present.
An alternating bilinear map read as an alternating map in two arguments.
Instances For
Evaluating the alternating map recovers the original bilinear map on the two arguments.
The bilinear map (x, y) ↦ m ![x, y] of a multilinear map m in two variables.
Instances For
The form of a scalar-valued multilinear map that is unchanged by swapping its two arguments is symmetric.
The bilinear map of a multilinear map that vanishes on a repeated argument is alternating.
A multilinear map in two variables is determined by its bilinear map. Every argument of
m is a ![x, y], and the bilinear map records the value of m there.
The bilinear map of an alternating map in two arguments is alternating.
Reading an alternating map in two arguments as a bilinear map and back recovers the map.
Reading an alternating bilinear map as an alternating map and back recovers the map.