-
Notifications
You must be signed in to change notification settings - Fork 331
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(Algebra/TensorAlgebra): support towers of algebras #6073
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This provide `Algebra R (FreeAlgebra A X)` when `Algebra R A`. This also fixes some diamonds that would arise as a result of this new instance.
… eric-wieser/tower-FreeAlgebra
eric-wieser
changed the title
Eric wieser/tower tensor algebra
feat(Algebra/TensorAlgebra): support towers of algebras
Jul 23, 2023
leanprover-community-mathlib4-bot
added
the
blocked-by-other-PR
This PR depends on another PR to Mathlib (this label is automatically managed by a bot)
label
Jul 23, 2023
1 task
leanprover-community-mathlib4-bot
removed
the
blocked-by-other-PR
This PR depends on another PR to Mathlib (this label is automatically managed by a bot)
label
Jul 24, 2023
This PR/issue depends on: |
eric-wieser
commented
Jul 24, 2023
eric-wieser
commented
Jul 24, 2023
Thanks! bors merge |
github-actions
bot
added
ready-to-merge
This PR has been sent to bors.
and removed
awaiting-review
labels
Aug 2, 2023
bors bot
pushed a commit
that referenced
this pull request
Aug 2, 2023
This is pre-work towards a base-change of clifford algebras. The main result here is ```lean @[nolint unusedArguments] instance instAlgebra {R A M} [CommSemiring R] [AddCommMonoid M] [CommSemiring A] [Algebra R A] [Module R M] [Module A M] [IsScalarTower R A M] : Algebra R (TensorAlgebra A M) ``` Note that strictly the `IsScalarTower R A M` argument isn't needed, but I'd claim the instance doesn't make any sense without it. In order to prevent diamonds in the `algebraMap` fields of the `Int` and `Nat` algebra instances, we have stop having `natCast` as an `irreducible_def`, and we have to add a missing `intCast` customization for `RingQuot`. In order to prevent diamonds in the `smul` fields there and elsewhere (such as a complex tensor algebra being a real algebra), we have to stop having the `smul` definition as an `irreducible_def`. We already had to make a similar refactor to prevent diamonds for `Algebra R (Polynomial A)`. If we backport any of this to mathlib3, we'd additionally have to change the `smul` definition to not use pattern matching. Thankfully, structure eta in Lean 4 makes that unnecessary. These diamonds are tested with inline `examples`.
Pull request successfully merged into master. Build succeeded! The publicly hosted instance of bors-ng is deprecated and will go away soon. If you want to self-host your own instance, instructions are here. If you want to switch to GitHub's built-in merge queue, visit their help page. |
bors
bot
changed the title
feat(Algebra/TensorAlgebra): support towers of algebras
[Merged by Bors] - feat(Algebra/TensorAlgebra): support towers of algebras
Aug 2, 2023
kim-em
pushed a commit
that referenced
this pull request
Aug 2, 2023
This is pre-work towards a base-change of clifford algebras. The main result here is ```lean @[nolint unusedArguments] instance instAlgebra {R A M} [CommSemiring R] [AddCommMonoid M] [CommSemiring A] [Algebra R A] [Module R M] [Module A M] [IsScalarTower R A M] : Algebra R (TensorAlgebra A M) ``` Note that strictly the `IsScalarTower R A M` argument isn't needed, but I'd claim the instance doesn't make any sense without it. In order to prevent diamonds in the `algebraMap` fields of the `Int` and `Nat` algebra instances, we have stop having `natCast` as an `irreducible_def`, and we have to add a missing `intCast` customization for `RingQuot`. In order to prevent diamonds in the `smul` fields there and elsewhere (such as a complex tensor algebra being a real algebra), we have to stop having the `smul` definition as an `irreducible_def`. We already had to make a similar refactor to prevent diamonds for `Algebra R (Polynomial A)`. If we backport any of this to mathlib3, we'd additionally have to change the `smul` definition to not use pattern matching. Thankfully, structure eta in Lean 4 makes that unnecessary. These diamonds are tested with inline `examples`.
kim-em
pushed a commit
that referenced
this pull request
Aug 2, 2023
This is pre-work towards a base-change of clifford algebras. The main result here is ```lean @[nolint unusedArguments] instance instAlgebra {R A M} [CommSemiring R] [AddCommMonoid M] [CommSemiring A] [Algebra R A] [Module R M] [Module A M] [IsScalarTower R A M] : Algebra R (TensorAlgebra A M) ``` Note that strictly the `IsScalarTower R A M` argument isn't needed, but I'd claim the instance doesn't make any sense without it. In order to prevent diamonds in the `algebraMap` fields of the `Int` and `Nat` algebra instances, we have stop having `natCast` as an `irreducible_def`, and we have to add a missing `intCast` customization for `RingQuot`. In order to prevent diamonds in the `smul` fields there and elsewhere (such as a complex tensor algebra being a real algebra), we have to stop having the `smul` definition as an `irreducible_def`. We already had to make a similar refactor to prevent diamonds for `Algebra R (Polynomial A)`. If we backport any of this to mathlib3, we'd additionally have to change the `smul` definition to not use pattern matching. Thankfully, structure eta in Lean 4 makes that unnecessary. These diamonds are tested with inline `examples`.
kim-em
pushed a commit
that referenced
this pull request
Aug 3, 2023
This is pre-work towards a base-change of clifford algebras. The main result here is ```lean @[nolint unusedArguments] instance instAlgebra {R A M} [CommSemiring R] [AddCommMonoid M] [CommSemiring A] [Algebra R A] [Module R M] [Module A M] [IsScalarTower R A M] : Algebra R (TensorAlgebra A M) ``` Note that strictly the `IsScalarTower R A M` argument isn't needed, but I'd claim the instance doesn't make any sense without it. In order to prevent diamonds in the `algebraMap` fields of the `Int` and `Nat` algebra instances, we have stop having `natCast` as an `irreducible_def`, and we have to add a missing `intCast` customization for `RingQuot`. In order to prevent diamonds in the `smul` fields there and elsewhere (such as a complex tensor algebra being a real algebra), we have to stop having the `smul` definition as an `irreducible_def`. We already had to make a similar refactor to prevent diamonds for `Algebra R (Polynomial A)`. If we backport any of this to mathlib3, we'd additionally have to change the `smul` definition to not use pattern matching. Thankfully, structure eta in Lean 4 makes that unnecessary. These diamonds are tested with inline `examples`.
kim-em
pushed a commit
that referenced
this pull request
Aug 14, 2023
This is pre-work towards a base-change of clifford algebras. The main result here is ```lean @[nolint unusedArguments] instance instAlgebra {R A M} [CommSemiring R] [AddCommMonoid M] [CommSemiring A] [Algebra R A] [Module R M] [Module A M] [IsScalarTower R A M] : Algebra R (TensorAlgebra A M) ``` Note that strictly the `IsScalarTower R A M` argument isn't needed, but I'd claim the instance doesn't make any sense without it. In order to prevent diamonds in the `algebraMap` fields of the `Int` and `Nat` algebra instances, we have stop having `natCast` as an `irreducible_def`, and we have to add a missing `intCast` customization for `RingQuot`. In order to prevent diamonds in the `smul` fields there and elsewhere (such as a complex tensor algebra being a real algebra), we have to stop having the `smul` definition as an `irreducible_def`. We already had to make a similar refactor to prevent diamonds for `Algebra R (Polynomial A)`. If we backport any of this to mathlib3, we'd additionally have to change the `smul` definition to not use pattern matching. Thankfully, structure eta in Lean 4 makes that unnecessary. These diamonds are tested with inline `examples`.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is pre-work towards a base-change of clifford algebras.
The main result here is
Note that strictly the
IsScalarTower R A M
argument isn't needed, but I'd claim the instance doesn't make any sense without it.In order to prevent diamonds in the
algebraMap
fields of theInt
andNat
algebra instances, we have stop havingnatCast
as anirreducible_def
, and we have to add a missingintCast
customization forRingQuot
. In order to prevent diamonds in thesmul
fields there and elsewhere (such as a complex tensor algebra being a real algebra), we have to stop having thesmul
definition as anirreducible_def
. We already had to make a similar refactor to prevent diamonds forAlgebra R (Polynomial A)
.If we backport any of this to mathlib3, we'd additionally have to change the
smul
definition to not use pattern matching. Thankfully, structure eta in Lean 4 makes that unnecessary.These diamonds are tested with inline
examples
.RingQuot
andBilinForm
#6066