Re: Algebra in Mathematica

*To*: mathgroup at smc.vnet.net*Subject*: [mg56088] Re: Algebra in Mathematica*From*: David Bailey <dave at Remove_Thisdbailey.co.uk>*Date*: Fri, 15 Apr 2005 04:47:28 -0400 (EDT)*References*: <d3ibcu$9qt$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

jamievicary at NgOmSaPiAlM.com wrote: > Dear all, > > I am trying to implement an algebra in mathematica, but I don't > want to use a matrix representation for it. So, I've got elements like > A, B and C, and I want to tell Mathematica, for example, that A.B==-C, > along with other identities. I then want to put some complicated > expression in, like A.B.B.C.B-B.C.A+A.B.C.B.A and have Mathematica > simplify it using the rules of the algebra. What's the best easiest way > to implement this? The elements of my algebra form a group; are there > group-theory capabilities in Mathematica that I can use to do what I > want? What if I change my algebra so that it stops being a group (for > example, make it nonassociative) --- would this then make things much > harder? > > Thanks very much! > > Jamie. > Don't use Plus and Times - use one of the undefined Mathematica operators - such as \[CirclePlus] and \[CircleTimes]. These already have suitable precedences, but are not, by default, commutative. Tou can make them commutative, if you wish, by setting the Orderless attribute on CircleTimes and CirclePlus. (See the FullForm of a\[CircleTimes]b, to understand this). Once you have all this in place, you can either write definitions for thinks like CircleTimes[a_,b_]:= ..... or you can operate on expressions using collections of transformation rules. I think the latter approach is more flexible because you can decide which if any transformations to apply at any point. David Bailey dbaileyconsultancy.co.uk