New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Merged by Bors] - feat(linear_algebra/tensor_product): tensor_product.map is bilinear in its two arguments #13608
Conversation
antoinelab01
commented
Apr 22, 2022
…n its two arguments
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One thing we could consider doing is redefining map
directly as the bilinear version. Here's one way to do that:
-- this belongs in `bilinear_map.lean`
/-- A bilinear version of `linear_map.compl₁₂`. -/
def _root_.linear_map.lcompl₁₂ (f : P →ₗ[R] Q →ₗ[R] S) :
(M →ₗ[R] P) →ₗ[R] (N →ₗ[R] Q) →ₗ[R] (M →ₗ[R] N →ₗ[R] S) :=
begin
refine linear_map.mk₂ R f.compl₁₂ _ _ _ _; sorry
end
/-- The tensor product of a pair of linear maps between modules, bilinear in both maps. -/
def map : (M →ₗ[R] P) →ₗ[R] (N →ₗ[R] Q) →ₗ[R] (M ⊗[R] N →ₗ[R] P ⊗[R] Q) :=
(mk R P Q).lcompl₁₂.compr₂ $ uncurry R M N (P ⊗ Q)
If nothing breaks, then I think that would maybe be a good idea. Might be worth waiting for other reviewer opinions
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
Co-authored-by: Johan Commelin <johan@commelin.net>
Co-authored-by: Johan Commelin <johan@commelin.net>
Co-authored-by: Johan Commelin <johan@commelin.net>
Co-authored-by: Johan Commelin <johan@commelin.net>
Co-authored-by: Johan Commelin <johan@commelin.net>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you (or other reviewers) think about renaming to something along the lines of:
dual_tensor_dual_map
totensor_product.dual_distrib
dual_tensor_dual_inv_of_basis
todual.tensor_product_distrib_of_basis
dual_tensor_dual_equiv_of_basis
totensor_product.dual_distrib_equiv_of_basis
Sounds fair, though don't it feels a bit weird to have a different prefix for the inverse function? Why not |
One reason I see for not doing that is that |
Looks good, thanks! bors r+ |
…n its two arguments (#13608) Co-authored-by: antoinelab01 <66086247+antoinelab01@users.noreply.github.com>
Pull request successfully merged into master. Build succeeded: |