Zulip Chat Archive
Stream: mathlib4
Topic: Typeclass for compatible group actions
Thomas Browning (Oct 26 2025 at 15:15):
Given [CommRing R] [CommRing S] [Algebra R S] [Group G] [MulSemiringAction G R] [MulSemiringAction G S], is there a typeclass that imposes compatibility between these actions? I.e., g • algebraMap R S r = algebraMap R S (g • r)?
This condition is equivalent to g • (r • 1) = (g • r) • 1, so IsScalarTower G R S almost works, except that imposing g • (r • s) = (g • r) • s is too strong since implies that G fixes S pointwise (set r = 1).
(This comes up in PR #27053 where I need to impose this compatibility condition but don't know of a nice typeclass for it).
Thomas Browning (Oct 26 2025 at 15:19):
I'm guessing no, since the lemma docs#algebraMap.coe_smul is stated in terms of IsScalarTower (in which case, should there be a new typeclass made for this?).
Thomas Browning (Oct 26 2025 at 15:21):
In terms of •, I think the desired condition is just a distributive version of IsScalarTower: g • (r • s) = (g • r) • (g • s).
Aaron Liu (Oct 26 2025 at 15:44):
Thomas Browning said:
This condition is equivalent to
g • (r • 1) = (g • r) • 1, soIsScalarTower G R Salmost works, except that imposingg • (r • s) = (g • r) • sis too strong since implies thatGfixesSpointwise (setr = 1).
I set r = 1, now what? How do I get the fixing pointwise?
Aaron Liu (Oct 26 2025 at 15:45):
oh I get it now
Andrew Yang (Oct 26 2025 at 16:00):
I had this in one of my PRs for this exact reason here. But then I figured I didn't need it in that specific PR so I removed it.
Andrew Yang (Oct 26 2025 at 16:02):
If you are adding this typeclass then I am happy to review it. If not I'll open a new PR containing the deleted content in the above commit.
Thomas Browning (Oct 26 2025 at 16:06):
Nice! I won't have time to get around to this for a few days, so feel free to PR it if you have the time.
Thomas Browning (Oct 28 2025 at 01:10):
Here's a first stab at this: #30991
Last updated: Dec 20 2025 at 21:32 UTC