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 to- linear_map₂. In case there is the necessity for separate bilinear and semi-bilinear lemmas we use- linear_map₂and- linear_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 in- linear_algebra/matrix/sesquilinear_form) and added a prime to the names of lemmas that have the same name as the version in- linear_algebra/matrix/sesquilinear_form- linear_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.