Skip to content
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(ring_theory/tensor_product): A predicate for being the tensor product. #15512

Closed
wants to merge 6 commits into from

Conversation

erdOne
Copy link
Member

@erdOne erdOne commented Jul 19, 2022


Open in Gitpod

@erdOne erdOne added the awaiting-review The author would like community review of the PR label Jul 19, 2022
`M` is the tensor product of `M₁` and `M₂` via `f`.
This is defined by requiring the lift `M₁ ⊗[R] M₂ → M` to be bijective.
-/
def is_tensor_product : Prop := function.bijective (tensor_product.lift f)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to follow the design of direct_sum.decomposition here and provide an explicit inverse?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer if this is a Prop and does not contain any data. Besides, the inverse of this is usually not that constructive, for example the inverse M_p -> A_p x M takes a choice of fraction m/s to 1/s x m, but there isn't a canonical choice of the fraction representation.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't really understand your comment about canonicity; the inverse is always canonical because it's unique, right?

My thinking behind making the typeclass carry data is that an instance can still always provide it non-computably; but we don't have to throw away computability to use tensor_product through this API.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought the main concern were bad defeqs, and what I was saying that the definition of the inverse is usually no better than "the inverse of the lift".
But still I don't think there are many cases where there is a computable inverse? Maybe M/IM -> A/I x M since quotients seem to be computable?
I think the choice I made is in line with the approach we took on localizations: we have a computable localization and an Prop-valued is_localization whose API are mostly incomputable.

@jcommelin jcommelin added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review The author would like community review of the PR labels Jul 20, 2022
@erdOne erdOne added awaiting-review The author would like community review of the PR and removed awaiting-author A reviewer has asked the author a question or requested changes labels Jul 20, 2022
Copy link
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks 🎉

bors merge

@leanprover-community-bot-assistant leanprover-community-bot-assistant added ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) and removed awaiting-review The author would like community review of the PR labels Jul 27, 2022
bors bot pushed a commit that referenced this pull request Jul 27, 2022
@bors
Copy link

bors bot commented Jul 27, 2022

Build failed (retrying...):

bors bot pushed a commit that referenced this pull request Jul 27, 2022
@bors
Copy link

bors bot commented Jul 27, 2022

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(ring_theory/tensor_product): A predicate for being the tensor product. [Merged by Bors] - feat(ring_theory/tensor_product): A predicate for being the tensor product. Jul 27, 2022
@bors bors bot closed this Jul 27, 2022
@bors bors bot deleted the is_tensor_product branch July 27, 2022 14:34
bottine pushed a commit to bottine/mathlib that referenced this pull request Jul 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants