Zulip Chat Archive

Stream: maths

Topic: Star modules over non-commutative scalars


Oliver Nash (Aug 10 2023 at 15:13):

I think our definition docs#StarModule is not right if the scalars are not commutative. We should have the axiom (ra)=ar(r \cdot a)^* = a^* \cdot r^* rather than (ra)=ra(r \cdot a)^* = r^* \cdot a^* . In particular, I claim this is a concept for bimodules.

Oliver Nash (Aug 10 2023 at 15:13):

Or in Lean I claim the "right" definition should be:

class StarModule (R A : Type _) [Star R] [Star A] [SMul R A] [SMul Rᵐᵒᵖ A] :=
  star_smul :  (r : R) (a : A), star (r  a) = (MulOpposite.op (star r))  a

Oliver Nash (Aug 10 2023 at 15:14):

However burdening every user with the obligation to supply an Rᵐᵒᵖ action seems like a bad idea so I propose keeping the "wrong" axiom but restricting the typeclass to require a commutative multiplication.

Oliver Nash (Aug 10 2023 at 15:14):

Any remarks / corrections welcome!

Eric Wieser (Aug 10 2023 at 15:27):

I think I claimed this some time ago :)

Oliver Nash (Aug 10 2023 at 15:27):

Two steps ahead as always :)

Oliver Nash (Aug 10 2023 at 15:27):

I'm not really affected by this but I'll try and do something about it in a few days if nobody else does.

Eric Wieser (Aug 10 2023 at 15:28):

https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Is.20star_module.20sensible.20for.20non-commutative.20rings.3F/near/257272767

Eric Wieser (Aug 10 2023 at 15:28):

I think there's a big obstacle here, and it's that Algebra R A does not imply SMul Rᵐᵒᵖ A

Eric Wieser (Aug 10 2023 at 15:28):

I spent quite some time fixing that in Lean3, but the PR (!3#10716) went stale

Oliver Nash (Aug 10 2023 at 15:30):

I'm proposing that we deal with this the way we currently deal with docs#Derivation: we restrict typeclasses so that the definition can only be used in the commutative case, when it is actually correct.


Last updated: Dec 20 2023 at 11:08 UTC