       Kronecker Delta

• To: mathgroup at smc.vnet.net
• Subject: [mg7505] Kronecker Delta
• From: "Arturas Acus" <acus at itpa.lt>
• Date: Sat, 7 Jun 1997 03:48:36 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```Dear Group,

Almost a week I try to find solution to the problem, which seems
rather simple from the first view. But now I am not sure the
solution exist at all. In  particular I wish to implement usual
properties of Kronecker delta function, which manipulates on indices.
Namely, it should replace *all* indices A with index B if KD[A,B]
appears inside Times. Obvious solution:

KD/: Literal[Times[any_,KD[A_,B_]]]:=ReplaceAll[Times[any],A->B]/;Not[
FreeQ[Times[any],A,Infinity]]

is wrong, because there can be more than two dummy indices. To make
things clear I should say that I am working on the SU(2) manifold,
where summation over index C like:

D_{C,_}*ClebschGordan[{j1_,C},{_},{_}]*(-1)^C

is natural. Here D_{} stands for Wigner D matrix.
This additional phase (which sometimes appears but sometimes not)
makes things quite complicated. For example at least in one case the
code above is incorrect:

Times[(-1)^A,Plus[D_{A,_}*KD[A,B],any]].

It is clear that the code will leave (-1)^A unchanged. It seems, that
to do correct substitution I always need to know all expression, but
not a part. Of course, I can always define additional function, say
EliminateKD, and apply to all expression. Bu this is bad solution,
because KD appears in various stages of calculations. So I should
continuosly apply the function.

Any ideas?

Arturas Acus
Institute of Theoretical
Physics and Astronomy
Gostauto 12, 2600,Vilnius
Lithuania

E-mail: acus at itpa.lt
Fax: 370-2-225361
Tel: 370-2-612906

```

• Prev by Date: Re: How do you make Mma assume a parameter is real
• Next by Date: Re: Re: bug in Mathematica 3.0 ?
• Previous by thread: Re: How do you make Mma assume a parameter is real
• Next by thread: Re: Re: bug in Mathematica 3.0 ?