[Date Index] [Thread Index] [Author Index]
Why is NonCommutativeMultiply Protected?
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