2 * This program is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU General Public License as
4 * published by the Free Software Foundation; either version 2 of
5 * the License, or (at your option) any later version.
7 * This program is distributed in the hope that it will be
8 * useful, but WITHOUT ANY WARRANTY; without even the implied
9 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
10 * PURPOSE. See the GNU General Public License for more details.
15 if get('itensor,'version)=false then load(itensor);
16 ("We are working with a spinor base, which is two dimensional")$
18 ("The epsilon-spinor is antisymmetric and contracts to the Kronecker-delta")$
23 decsym(e,2,0,[anti(all)],[]);
24 decsym(e,0,2,[],[anti(all)]);
26 ("Verifying the epsilon-spinor's properties")$
27 ishow(e([A,B],[])*e([],[B,C]))$
29 ishow(e([A,B],[])*e([],[C,B]))$
31 ishow(contract(e([A],[A])))$
34 ("h is a spinor representing, for instance, a Lorentz transform")$
36 h([A,B],[])*h([],[A,B]),noeval$
38 ishow(LHS:contract(%))$
40 ("We split h into symmetric and antisymmetric parts:")$
41 decsym(f,2,0,[sym(all)],[]);
42 decsym(f,0,2,[],[sym(all)]);
44 components(h([A,B],[]),a*e([A,B],[])+f([A,B],[]));
46 ("Now we compute the upper-index components of h")$
47 ishow(contract(h([A,B],[])*e([],[A,D])))$
48 ishow(contract(expand(%)))$
49 ishow(contract(%*e([],[C,B])))$
50 ishow(contract(expand(%)))$
51 components(h([],[C,D]),%);
53 ("We can now contract h with itself and evaluate")$
54 ishow(h([A,B],[])*h([],[A,B]))$
55 ishow(RHS:contract(expand(%)))$
57 /* NB: I believe Penrose&Rindler p172 contains a sign error here */
59 ("And get a simple identity for Lorentz transforms in a spinor base:")$
60 ishow(ev(distrib((LHS=RHS)/2)))$
62 /* End of demo -- comment line needed by MAXIMA to resume demo menu */