RE: Expanding expressions with Dot, Times and Plus
- To: mathgroup at smc.vnet.net
- Subject: [mg35524] RE: [mg35501] Expanding expressions with Dot, Times and Plus
- From: "DrBob" <majort at cox-internet.com>
- Date: Wed, 17 Jul 2002 02:09:26 -0400 (EDT)
- Reply-to: <drbob at bigfoot.com>
- Sender: owner-wri-mathgroup at wolfram.com
See if this does (part of) what you want: expr = -ex[0, 1].(ex[0, 1].ex[1, 2] - ex[1, 2].ex[0, 1]); ClearAll[h] Attributes[h] = {Flat}; rules = {Dot -> h, h[a_, b_ - c_] -> h[a, b] - h[a, c], h[a_, b_ + c_] -> h[a, b] + h[a, c]}; expr //. rules /. h -> Dot -ex[0, 1].ex[0, 1].ex[1, 2] + ex[0, 1].ex[1, 2].ex[0, 1] Bobby Treat -----Original Message----- From: JL [mailto:jl at aol.com] To: mathgroup at smc.vnet.net Subject: [mg35524] [mg35501] Expanding expressions with Dot, Times and Plus I am trying to expand a large expression that has terms that look as follows: -ex[0,1].(ex[0,1].ex[1,2]-ex[1,2].ex[0,1]) where ex[i,j] are unevaluated expressions. I would like Mathematica to simplify this and analogous expressions so that they read: ex[0,1].ex[1,2].ex[0,1]-ex[0,1].ex[0,1].ex[1,2] However, I cannot seem to find anything that will work. The problem is that I need to keep track of the order of the expressions ex[i,j]. If Dot were replaced by Times, there would be no problem whatsoever. If anyone knows how to help me with this problem, I would greatly appreciate it. Thanks, Jeremy Levy jlevy at pitt.edu