Why is NonCommutativeMultiply Protected?
- To: mathgroup at smc.vnet.net
- Subject: [mg82668] Why is NonCommutativeMultiply Protected?
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Sun, 28 Oct 2007 03:56:58 -0500 (EST)
Why is NonCommutativeMultiply Protected? Is it safe to redefine NonCommutativeMultiply? Does it have any special built-in properties (apart from being Flat and OneIdentity)? Is it used by any of the built-in functions? NonCommutativeMultiply certainly does not evaluate to anything, but the same can be said about Rule[], which is not at all safe to redefine because: 1. It has some special properties (it affects scoping, it does not like Unevaluated[], etc.) 2. It is used together with functions such as Replace, and (most probably) built-in functions use it internally. So is it safe to Unprotect[NonCommutativeMultiply] and attach definitions to it? (I know that in certain situations one can use UpValues, but I would like to know the answer to this question.) -- Szabolcs