Re: Non-commutative algebra

*To*: mathgroup at smc.vnet.net*Subject*: [mg13280] Re: Non-commutative algebra*From*: Daniel Lichtblau <danl>*Date*: Fri, 17 Jul 1998 03:18:28 -0400*Organization*: Wolfram Research, Inc.*References*: <6ocuue$he8@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

> ...Wolfram Research Inc. strongly disapproves of clearing any Attributes or > otherwise modifying low level built-in functions, such as Times, Plus etc., > and in particular removing their Orderless attribute. If you do this terrible > things may happen to your programs... and cause cancer in laboratory mice > ...either immediately or in the future. It is not made clear why we are > actually given the opportunity to engage in such unhygienic behaviour, but > perhaps it is just to provide a little excitement for those who like > living dangerously. That's about correct. In some sense the situation is thus: Mathematica supports several attributes, and modification thereof can be useful. Mathematica also is implemented largely in terms of itself (even the functions written in C call Mathematica). Hence modification of default attributes of low-level functionsmay be dangerous. So why do we allow this? Well, one can argue that actually we do not. As you saw, removing Orderless for Times is only partially supported. Way back someone apparently decided it should not be supported at all, and until version 3 it was not. Whether this was a good change (to support non-commutative Times in this way) is unclear. We did it mostly for purposes of logical consistency, and not because we wanted people to actually use it (silly us). Generally it is safe for quick localized applications that rely on structural rather than mathematical transformations, for example the one you showed. Were you instead to Collect with respect to some product you might not have such good results, because Collect will rely on Times internally. Daniel Lichtblau Wolfram Research

**Follow-Ups**:**Re: Re: Non-commutative algebra***From:*MJE <evans.nospam@gte.net>