Commit 2022-10-03 21:49 075b3f7d
View on Github →feat(linear_algebra/matrix): Add matrix properties for sesquilinear forms (#15906)
The main goal of this PR is to move linear_algebra/matrix/bilinear_form to the curried bilinear map form. Since this file as quite few dependencies we copy it to a new file linear_algebra/matrix/sesquilinear_form and then move all the dependencies.
The structure is taken literally from linear_algebra/matrix/bilinear_form with generalizations and easier proofs where possible. The new lemmas are named exactly as the old ones with the following changes:
- the namespace changed from
bilin_formtolinear_map bilinis changed tolinear_map₂. In case there is the necessity for separate bilinear and semi-bilinear lemmas we uselinear_map₂andlinear_mapₛₗ₂- If
bilinis not in the name of a lemma,matrixis changed tomatrix₂to avoid nameclashes with lemmas for linear mapsM →ₛₗ[ρ₁₂] NMoreover, the following changes were necessary:linear_algebra/bilinear_map: - Weakened some typeclass assumptions
- Added bilinear version of
sum_repr_mul_repr_muland moved sesquilinear version tosum_repr_mul_repr_mulₛₗlinear_algebra/matrix/bilinear_form: - Moved
basis.equiv_fun_symm_std_basistolinear_algebra/std_basis adjoint_pairsection: Removed a few definitions (they are now inlinear_algebra/matrix/sesquilinear_form) and added a prime to the names of lemmas that have the same name as the version inlinear_algebra/matrix/sesquilinear_formlinear_algebra/sesquilinear_form:- Added a few missing lemmas about left-separating bilinear forms (note that
separating_leftwas previously known asnondegenerate)linear_algebra/std_basis: - Lemma
std_basis_apply'for calculating the application ofi' : ιto(std_basis R (λ (_x : ι), R) i)algebra/hom/ring/: - Lemmas for calculating a ring homomorphism applied to
ite 0 1andite 1 0The last two additions are needed to get a reasonable proof formatrix.to_linear_map₂'_aux_std_basis.