eigenmath/lisp/qed.tex

536 lines
11 KiB
TeX

\parindent=0pt
{\tt ;\ From\ "Quantum\ Electrodynamics"\ by\ Richard\ P.\ Feynman}
{\tt ;\ pp.\ 40-43}
$$
a=\left(\matrix{
a_t\cr
a_x\cr
a_y\cr
a_z\cr
}\right)
\quad
b=\left(\matrix{
b_t\cr
b_x\cr
b_y\cr
b_z\cr
}\right)
\quad
c=\left(\matrix{
c_t\cr
c_x\cr
c_y\cr
c_z\cr
}\right)
$$
{\tt ;\ generic\ spacetime\ vectors\ a,\ b\ and\ c}
{\tt (setq\ a\ (sum}
{\tt \ \ (product\ at\ (tensor\ t))}
{\tt \ \ (product\ ax\ (tensor\ x))}
{\tt \ \ (product\ ay\ (tensor\ y))}
{\tt \ \ (product\ az\ (tensor\ z))}
{\tt ))}
{\tt (setq\ b\ (sum}
{\tt \ \ (product\ bt\ (tensor\ t))}
{\tt \ \ (product\ bx\ (tensor\ x))}
{\tt \ \ (product\ by\ (tensor\ y))}
{\tt \ \ (product\ bz\ (tensor\ z))}
{\tt ))}
{\tt (setq\ c\ (sum}
{\tt \ \ (product\ ct\ (tensor\ t))}
{\tt \ \ (product\ cx\ (tensor\ x))}
{\tt \ \ (product\ cy\ (tensor\ y))}
{\tt \ \ (product\ cz\ (tensor\ z))}
{\tt ))}
{\tt ;\ define\ this\ function\ for\ multiplying\ spactime\ vectors}
{\tt ;\ how\ it\ works:\ (dot\ arg1\ (tensor\ t))\ picks\ off\ the\ t'th\ element,\ etc.}
{\tt ;\ the\ -1's\ are\ for\ the\ spacetime\ metric}
{\tt (define\ spacetime-dot\ (sum}
{\tt \ \ (dot\ (dot\ arg1\ (tensor\ t))\ (dot\ arg2\ (tensor\ t)))}
{\tt \ \ (dot\ -1\ (dot\ arg1\ (tensor\ x))\ (dot\ arg2\ (tensor\ x)))}
{\tt \ \ (dot\ -1\ (dot\ arg1\ (tensor\ y))\ (dot\ arg2\ (tensor\ y)))}
{\tt \ \ (dot\ -1\ (dot\ arg1\ (tensor\ z))\ (dot\ arg2\ (tensor\ z)))}
{\tt ))}
$$a^2\mathrel{\mathop=^?}a_t^2-a_x^2-a_y^2-a_z^2$$
{\tt (setq\ temp1\ (spacetime-dot\ a\ a))}
{\tt (setq\ temp2\ (sum}
{\tt \ \ (power\ at\ 2)}
{\tt \ \ (product\ -1\ (power\ ax\ 2))}
{\tt \ \ (product\ -1\ (power\ ay\ 2))}
{\tt \ \ (product\ -1\ (power\ az\ 2))}
{\tt ))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ "t"\ if\ it's\ true}
$$I=\left(\matrix{
1&0&0&0\cr
0&1&0&0\cr
0&0&1&0\cr
0&0&0&1\cr
}\right)$$
{\tt (setq\ I\ (sum}
{\tt \ \ (tensor\ t\ t)}
{\tt \ \ (tensor\ x\ x)}
{\tt \ \ (tensor\ y\ y)}
{\tt \ \ (tensor\ z\ z)}
{\tt ))}
$$\gamma_t=\left(\matrix{
1&0&0&0\cr
0&1&0&0\cr
0&0&-1&0\cr
0&0&0&-1\cr
}\right)$$
{\tt (setq\ gammat\ (sum}
{\tt \ \ (tensor\ t\ t)}
{\tt \ \ (tensor\ x\ x)}
{\tt \ \ (product\ -1\ (tensor\ y\ y))}
{\tt \ \ (product\ -1\ (tensor\ z\ z))}
{\tt ))}
$$\gamma_x=\left(\matrix{
0&0&0&1\cr
0&0&1&0\cr
0&-1&0&0\cr
-1&0&0&0\cr
}\right)$$
{\tt (setq\ gammax\ (sum}
{\tt \ \ (tensor\ t\ z)}
{\tt \ \ (tensor\ x\ y)}
{\tt \ \ (product\ -1\ (tensor\ y\ x))}
{\tt \ \ (product\ -1\ (tensor\ z\ t))}
{\tt ))}
$$\gamma_y=\left(\matrix{
0&0&0&-i\cr
0&0&i&0\cr
0&i&0&0\cr
-i&0&0&0\cr
}\right)$$
{\tt (setq\ gammay\ (sum}
{\tt \ \ (product\ -1\ i\ (tensor\ t\ z))}
{\tt \ \ (product\ i\ (tensor\ x\ y))}
{\tt \ \ (product\ i\ (tensor\ y\ x))}
{\tt \ \ (product\ -1\ i\ (tensor\ z\ t))}
{\tt ))}
$$\gamma_z=\left(\matrix{
0&0&1&0\cr
0&0&0&-1\cr
-1&0&0&0\cr
0&1&0&0\cr
}\right)$$
{\tt (setq\ gammaz\ (sum}
{\tt \ \ (tensor\ t\ y)}
{\tt \ \ (product\ -1\ (tensor\ x\ z))}
{\tt \ \ (product\ -1\ (tensor\ y\ t))}
{\tt \ \ (tensor\ z\ x)}
{\tt ))}
$$\gamma_t^2\mathrel{\mathop=^?}1$$
{\tt (equal\ (dot\ gammat\ gammat)\ I)\ ;\ print\ "t"\ if\ it's\ true}
$$\gamma_x^2=\gamma_y^2=\gamma_z^2\mathrel{\mathop=^?}-1$$
{\tt (equal\ (dot\ gammax\ gammax)\ (dot\ -1\ I))\ ;\ print\ "t"\ if\ it's\ true}
{\tt (equal\ (dot\ gammay\ gammay)\ (dot\ -1\ I))\ ;\ print\ "t"\ if\ it's\ true}
{\tt (equal\ (dot\ gammaz\ gammaz)\ (dot\ -1\ I))\ ;\ print\ "t"\ if\ it's\ true}
$$\gamma_5=\gamma_x\gamma_y\gamma_z\gamma_t$$
{\tt (setq\ gamma5\ (dot\ gammax\ gammay\ gammaz\ gammat))}
$$\gamma_5^2\mathrel{\mathop=^?}-1$$
{\tt (equal\ (dot\ gamma5\ gamma5)\ (dot\ -1\ I))\ ;\ print\ "t"\ if\ it's\ true}
$$\gamma=\left(\matrix{
\gamma_t\cr
\gamma_x\cr
\gamma_y\cr
\gamma_z\cr
}\right)$$
{\tt ;\ gamma\ is\ a\ "vector"\ of\ dirac\ matrices}
{\tt (setq\ gamma\ (sum}
{\tt \ \ (product\ gammat\ (tensor\ t))}
{\tt \ \ (product\ gammax\ (tensor\ x))}
{\tt \ \ (product\ gammay\ (tensor\ y))}
{\tt \ \ (product\ gammaz\ (tensor\ z))}
{\tt ))}
$$a\!\!\!/=a\gamma\qquad b\!\!\!/=b\gamma\qquad c\!\!\!/=c\gamma$$
{\tt (setq\ agamma\ (spacetime-dot\ a\ gamma))}
{\tt (setq\ bgamma\ (spacetime-dot\ b\ gamma))}
{\tt (setq\ cgamma\ (spacetime-dot\ c\ gamma))}
$$a\!\!\!/\mathrel{\mathop=^?}a_t\gamma_t-a_x\gamma_x-a_y\gamma_y-a_x\gamma_x$$
{\tt (setq\ temp1\ agamma)}
{\tt (setq\ temp2\ (sum}
{\tt \ \ (product\ at\ gammat)}
{\tt \ \ (product\ -1\ ax\ gammax)}
{\tt \ \ (product\ -1\ ay\ gammay)}
{\tt \ \ (product\ -1\ az\ gammaz)}
{\tt ))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ "t"\ if\ it's\ true}
$$a\!\!\!/b\!\!\!/\mathrel{\mathop=^?}-b\!\!\!/a\!\!\!/ + 2ab$$
{\tt ;\ note:\ gammas\ are\ square\ matrices,\ use\ "dot"\ to\ multiply}
{\tt ;\ use\ "spacetime-dot"\ to\ multiply\ spacetime\ vectors}
{\tt (setq\ temp1\ (dot\ agamma\ bgamma))}
{\tt (setq\ temp2\ (sum}
{\tt \ \ (dot\ -1\ bgamma\ agamma)}
{\tt \ \ (dot\ 2\ (spacetime-dot\ a\ b)\ I)}
{\tt ))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ "t"\ if\ it's\ true}
$$a\!\!\!/\gamma_5\mathrel{\mathop=^?}-\gamma_5a\!\!\!/$$
{\tt (setq\ temp1\ (dot\ agamma\ gamma5))}
{\tt (setq\ temp2\ (dot\ -1\ gamma5\ agamma))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ "t"\ if\ it's\ true}
$$\gamma_x a\!\!\!/\gamma_x\mathrel{\mathop=^?}a\!\!\!/+2a_x\gamma_x$$
{\tt (setq\ temp1\ (dot\ gammax\ agamma\ gammax))}
{\tt (setq\ temp2\ (sum\ agamma\ (dot\ 2\ ax\ gammax)))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ "t"\ if\ it's\ true}
$$\gamma\gamma\mathrel{\mathop=^?}4$$
{\tt (setq\ temp1\ (spacetime-dot\ gamma\ gamma))}
{\tt (setq\ temp2\ (dot\ 4\ I))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ "t"\ if\ it's\ true}
$$\gamma a\!\!\!/\gamma\mathrel{\mathop=^?}-2a\!\!\!/$$
{\tt (setq\ temp1\ (spacetime-dot\ gamma\ (dot\ agamma\ gamma)))}
{\tt (setq\ temp2\ (dot\ -2\ agamma))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ "t"\ if\ it's\ true}
$$\gamma a\!\!\!/b\!\!\!/\gamma\mathrel{\mathop=^?}4ab$$
{\tt (setq\ temp1\ (spacetime-dot\ gamma\ (dot\ agamma\ bgamma\ gamma)))}
{\tt (setq\ temp2\ (dot\ 4\ (spacetime-dot\ a\ b)\ I))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ "t"\ if\ it's\ true}
$$\gamma a\!\!\!/b\!\!\!/c\!\!\!/\gamma\mathrel{\mathop=^?}
-2c\!\!\!/b\!\!\!/a\!\!\!/$$
{\tt (setq\ temp1\ (spacetime-dot\ gamma\ (dot\ agamma\ bgamma\ cgamma\ gamma)))}
{\tt (setq\ temp2\ (dot\ -2\ cgamma\ bgamma\ agamma))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ "t"\ if\ it's\ true}
{\tt ;\ define\ series\ approximations\ for\ some\ transcendental\ functions}
{\tt ;\ for\ 32-bit\ integers,\ overflow\ occurs\ for\ powers\ above\ 5}
{\tt (define\ order\ 5)}
{\tt (define\ yexp\ (prog\ temp\ count}
{\tt \ \ (setq\ temp\ 0)}
{\tt \ \ (setq\ count\ order)}
{\tt loop}
{\tt \ \ (setq\ temp\ (product\ (power\ count\ -1)\ arg\ (sum\ 1\ temp)))}
{\tt \ \ (setq\ count\ (sum\ count\ -1))}
{\tt \ \ (cond\ ((greaterp\ count\ 0)\ (goto\ loop)))}
{\tt \ \ (return\ (sum\ 1\ temp))}
{\tt ))}
{\tt (define\ ysin\ (sum}
{\tt \ \ (product\ -1/2\ i\ (yexp\ (product\ i\ arg)))}
{\tt \ \ (product\ 1/2\ i\ (yexp\ (product\ -1\ i\ arg)))}
{\tt ))}
{\tt (define\ ycos\ (sum}
{\tt \ \ (product\ 1/2\ (yexp\ (product\ i\ arg)))}
{\tt \ \ (product\ 1/2\ (yexp\ (product\ -1\ i\ arg)))}
{\tt ))}
{\tt (define\ ysinh\ (sum}
{\tt \ \ (product\ 1/2\ (yexp\ arg))}
{\tt \ \ (product\ -1/2\ (yexp\ (product\ -1\ arg)))}
{\tt ))}
{\tt (define\ ycosh\ (sum}
{\tt \ \ (product\ 1/2\ (yexp\ arg))}
{\tt \ \ (product\ 1/2\ (yexp\ (product\ -1\ arg)))}
{\tt ))}
{\tt ;\ same\ as\ above\ but\ for\ matrices}
{\tt (define\ YEXP\ (prog\ temp\ count}
{\tt \ \ (setq\ temp\ 0)}
{\tt \ \ (setq\ count\ order)}
{\tt loop}
{\tt \ \ (setq\ temp\ (dot\ (power\ count\ -1)\ arg\ (sum\ I\ temp)))}
{\tt \ \ (setq\ count\ (sum\ count\ -1))}
{\tt \ \ (cond\ ((greaterp\ count\ 0)\ (goto\ loop)))}
{\tt \ \ (return\ (sum\ I\ temp))}
{\tt ))}
{\tt (define\ YSIN\ (sum}
{\tt \ \ (product\ -1/2\ i\ (YEXP\ (product\ i\ arg)))}
{\tt \ \ (product\ 1/2\ i\ (YEXP\ (product\ -1\ i\ arg)))}
{\tt ))}
{\tt (define\ YCOS\ (sum}
{\tt \ \ (product\ 1/2\ (YEXP\ (product\ i\ arg)))}
{\tt \ \ (product\ 1/2\ (YEXP\ (product\ -1\ i\ arg)))}
{\tt ))}
{\tt (define\ YSINH\ (sum}
{\tt \ \ (product\ 1/2\ (YEXP\ arg))}
{\tt \ \ (product\ -1/2\ (YEXP\ (product\ -1\ arg)))}
{\tt ))}
{\tt (define\ YCOSH\ (sum}
{\tt \ \ (product\ 1/2\ (YEXP\ arg))}
{\tt \ \ (product\ 1/2\ (YEXP\ (product\ -1\ arg)))}
{\tt ))}
{\tt ;\ for\ truncating\ products\ of\ power\ series}
{\tt (define\ POWER\ (cond}
{\tt \ \ ((greaterp\ arg2\ order)\ 0)}
{\tt \ \ (t\ (list\ 'power\ arg1\ arg2))}
{\tt ))}
{\tt (define\ truncate\ (eval\ (subst\ 'POWER\ 'power\ arg)))}
$$\exp[(u/2)\gamma_t\gamma_x]\mathrel{\mathop=^?}
\cosh(u/2)+\gamma_t\gamma_x\sinh(u/2)$$
{\tt (setq\ temp1\ (YEXP\ (dot\ 1/2\ u\ gammat\ gammax)))}
{\tt (setq\ temp2\ (sum}
{\tt \ \ (product\ I\ (ycosh\ (product\ 1/2\ u)))\ ;\ could\ use\ "dot"\ but\ not\ necessary}
{\tt \ \ (dot\ gammat\ gammax\ (ysinh\ (product\ 1/2\ u)))}
{\tt ))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ t\ if\ it's\ true}
$$\exp[(\theta/2)\gamma_x\gamma_y]\mathrel{\mathop=^?}
\cos(\theta/2)+\gamma_x\gamma_y\sin(\theta/2)$$
{\tt (setq\ temp1\ (YEXP\ (dot\ 1/2\ theta\ gammax\ gammay)))}
{\tt (setq\ temp2\ (sum}
{\tt \ \ (product\ I\ (ycos\ (product\ 1/2\ theta)))\ ;\ could\ use\ "dot"\ but\ not\ necessary}
{\tt \ \ (dot\ gammax\ gammay\ (ysin\ (product\ 1/2\ theta)))}
{\tt ))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ t\ if\ it's\ true}
$$\exp[-(u/2)\gamma_t\gamma_z]\gamma_t
\exp[(u/2)\gamma_t\gamma_z]
\mathrel{\mathop=^?}\gamma_t\cosh u+\gamma_z\sinh u$$
{\tt (setq\ temp1\ (truncate\ (dot}
{\tt \ \ (YEXP\ (dot\ -1/2\ u\ gammat\ gammaz))}
{\tt \ \ gammat}
{\tt \ \ (YEXP\ (dot\ 1/2\ u\ gammat\ gammaz))}
{\tt )))}
{\tt (setq\ temp2\ (sum}
{\tt \ \ (product\ gammat\ (ycosh\ u))\ ;\ could\ use\ "dot"\ but\ not\ necessary}
{\tt \ \ (product\ gammaz\ (ysinh\ u))\ ;\ could\ use\ "dot"\ but\ not\ necessary}
{\tt ))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ t\ if\ it's\ true}
$$\exp[-(u/2)\gamma_t\gamma_z]\gamma_z
\exp[(u/2)\gamma_t\gamma_z]
\mathrel{\mathop=^?}\gamma_z\cosh u+\gamma_t\sinh u$$
{\tt (setq\ temp1\ (truncate\ (dot}
{\tt \ \ (YEXP\ (dot\ -1/2\ u\ gammat\ gammaz))}
{\tt \ \ gammaz}
{\tt \ \ (YEXP\ (dot\ 1/2\ u\ gammat\ gammaz))}
{\tt )))}
{\tt (setq\ temp2\ (sum}
{\tt \ \ (product\ gammaz\ (ycosh\ u))\ ;\ could\ use\ "dot"\ but\ not\ necessary}
{\tt \ \ (product\ gammat\ (ysinh\ u))\ ;\ could\ use\ "dot"\ but\ not\ necessary}
{\tt ))}
{\tt (equal\ temp1\ temp2)\ ;\ print\ t\ if\ it's\ true}
$$\exp[-(u/2)\gamma_t\gamma_z]\gamma_y
\exp[(u/2)\gamma_t\gamma_z]
\mathrel{\mathop=^?}\gamma_y$$
{\tt (setq\ temp1\ (truncate\ (dot}
{\tt \ \ (YEXP\ (dot\ -1/2\ u\ gammat\ gammaz))}
{\tt \ \ gammay}
{\tt \ \ (YEXP\ (dot\ 1/2\ u\ gammat\ gammaz))}
{\tt )))}
{\tt (equal\ temp1\ gammay)\ ;\ print\ t\ if\ it's\ true}
$$\exp[-(u/2)\gamma_t\gamma_z]\gamma_x
\exp[(u/2)\gamma_t\gamma_z]
\mathrel{\mathop=^?}\gamma_x$$
{\tt (setq\ temp1\ (truncate\ (dot}
{\tt \ \ (YEXP\ (dot\ -1/2\ u\ gammat\ gammaz))}
{\tt \ \ gammax}
{\tt \ \ (YEXP\ (dot\ 1/2\ u\ gammat\ gammaz))}
{\tt )))}
{\tt (equal\ temp1\ gammax)\ ;\ print\ t\ if\ it's\ true}
\end