 
													Maple
シンプルな操作性の高度数学ソフトウェア
• 教育機関向け Maple • 学生向け Maple • Maple Learn • Maple Calculator App • 企業及び官公庁向け Maple • 個人利用向け Maple 
													Maple Add-Ons
• 学生向けEブック & 学習ガイド • Maple ツールボックス • MapleNet • 無償版 Maple Player 
                                                    Student Success Platform
定着率の向上
Maple Flow
Engineering calculations & documentation
• Maple Flow • Maple Flow Migration Assistant 
                                                    
 
                             
													  
													  
                                                     
                                                     
													 
                            
 relates the initial and final states,
 relates the initial and final states,  and
 and  , of a quantum interacting system. In a 4-dimensional spacetime with coordinates
, of a quantum interacting system. In a 4-dimensional spacetime with coordinates  ,
,  can be written as:
 can be written as: 
  is the imaginary unit
 and
 is the imaginary unit
 and  is the interaction Lagrangian, written in terms of quantum fields depending on the spacetime coordinates
 is the interaction Lagrangian, written in terms of quantum fields depending on the spacetime coordinates  . The T symbol means time-ordered. For the terminology used in this page, see for instance chapter IV, "The Scattering Matrix", of ref.[1].
. The T symbol means time-ordered. For the terminology used in this page, see for instance chapter IV, "The Scattering Matrix", of ref.[1]. ![S = `+`(1, S[1], S[2], S[3], `...`);](physics/Physics_10.gif) 
 ![S[n] = `#mrow(mo(](physics/Physics_11.gif) 
 ![T(L(X[1]), `...`, L(X[n]));](physics/Physics_12.gif) is the time-ordered product of n interaction Lagrangians evaluated at different points. The S matrix formulation is at the core of perturbative approaches in relativistic Quantum Field Theory, where exact solutions are known only for some 2-dimensional models.
 is the time-ordered product of n interaction Lagrangians evaluated at different points. The S matrix formulation is at the core of perturbative approaches in relativistic Quantum Field Theory, where exact solutions are known only for some 2-dimensional models.![S = `+`(1, S[1], S[2], S[3], `...`);](physics/Physics_13.gif) in coordinates representation up to arbitrary order (the limitation is now only the hardware)
 in coordinates representation up to arbitrary order (the limitation is now only the hardware) in momentum representation up to arbitrary order for given number of loops and initial and final particles (the contents of the
 in momentum representation up to arbitrary order for given number of loops and initial and final particles (the contents of the  and
 and  states); optionally, also the transition probability density, constructed using the square of the scattering matrix element
 states); optionally, also the transition probability density, constructed using the square of the scattering matrix element  , as shown in formula (13) of sec. 21.1 of ref.[1].
, as shown in formula (13) of sec. 21.1 of ref.[1]. .
. to represent a quantum operator
 to represent a quantum operator 
![Setup(mathematicalnotation = true, coordinates = [X, Y, Z], quantumoperators = phi);](physics/Physics_21.gif)


![[coordinatesystems = {X, Y, Z}, mathematicalnotation = true, quantumoperators = {phi}]](physics/Physics_24.gif)
 be the interaction Lagrangian
 be the interaction Lagrangian 
![Typesetting:-mprintslash([L := `*`(lambda, `*`(Physics:-`^`(phi(X), 4)))], [`*`(lambda, `*`(Physics:-`^`(phi(X), 4)))])](physics/Physics_27.gif)
 in coordinates representation, computed by default up to order = 3 (you can change that using the option order = n), by definition containing all possible configurations of external legs, displaying the related Feynman Diagrams, is given by
 in coordinates representation, computed by default up to order = 3 (you can change that using the option order = n), by definition containing all possible configurations of external legs, displaying the related Feynman Diagrams, is given by 
 
		 
		 
		 
		 
		 
		 
		 
		 
		 
		 
		 
		




 in coordinates representation to a specific order shows in a compact way the topology of the underlying Feynman diagrams. Each integral is represented with a new command, FeynmanIntegral, that works both in coordinates and momentum representation. To each term of the integrands corresponds a diagram, and the correspondence is always clear from the symmetry factors and normal products shown.
  in coordinates representation to a specific order shows in a compact way the topology of the underlying Feynman diagrams. Each integral is represented with a new command, FeynmanIntegral, that works both in coordinates and momentum representation. To each term of the integrands corresponds a diagram, and the correspondence is always clear from the symmetry factors and normal products shown.  ![%eval(S, [`=`(order, 3), `=`(loops, 1)]) = FeynmanDiagrams(L, numberofloops = 1, diagrams);](physics/Physics_48.gif)
 
		 
		

 in momentum representation, corresponding to the term with 4 external legs (symmetry factor = 72), could be any process where the total number of incoming + outgoing particles is equal to 4. For example, one with 2 incoming and 2 outgoing particles. The transition probability for that process is given by
 in momentum representation, corresponding to the term with 4 external legs (symmetry factor = 72), could be any process where the total number of incoming + outgoing particles is equal to 4. For example, one with 2 incoming and 2 outgoing particles. The transition probability for that process is given by 
 
		


 is related to the transition probability density
 is related to the transition probability density  (formula (13) of sec. 21.1 of ref.[1]) by
 (formula (13) of sec. 21.1 of ref.[1]) by![dw = `*`(`^`(`+`(`*`(2, `*`(Pi))), `+`(`*`(3, `*`(s)), `-`(4))), `*`(n__1, `*`(`...`, `*`(n__s, `*`(`^`(abs(F(p[i], p[f])), 2), `*`(delta(`+`(sum(p[i], i = 1 .. s), `-`(sum(p[f], f = 1 .. r)))), `*`(`...](physics/Physics_61.gif)
 represent the particle densities of each of the s particles in the initial state
 represent the particle densities of each of the s particles in the initial state  , the
, the  (Dirac) is the expected singular factor due to the conservation of the energy-momentum and the amplitude
 (Dirac) is the expected singular factor due to the conservation of the energy-momentum and the amplitude ![F(p[i], p[f]);](physics/Physics_65.gif) is related to
is related to  via
 via 
 instead of
 instead of use the option output = probabilitydensity
use the option output = probabilitydensity ![FeynmanDiagrams(L, incomingparticles = [phi, phi], outgoingparticles = [phi, phi], numberofloops = 1, output = probabilitydensity);](physics/Physics_70.gif)

 up to order = 3, restricting the outcome to the terms corresponding to diagrams with only 2 external legs
 up to order = 3, restricting the outcome to the terms corresponding to diagrams with only 2 external legs ![%eval(S, [`=`(order, 3), `=`(legs, 2)]) = FeynmanDiagrams(L, numberofexternallegs = 2, diagrams);](physics/Physics_75.gif)
 
		 
		 
		

 corresponding to the first integral (1 term with symmetry factor = 96) is then
corresponding to the first integral (1 term with symmetry factor = 96) is then ![FeynmanDiagrams(L, incomingparticles = [phi], outgoingparticles = [phi], numberofloops = 2, diagrams, output = probabilitydensity);](physics/Physics_82.gif)
 
		

![%eval(%Bracket(phi, S, phi), `=`(loops, 2)) = FeynmanDiagrams(L, incoming = [phi], outgoing = [phi], numberofloops = 2, indices);](physics/Physics_86.gif)



![%eval(S[3], [`=`(legs, 2), `=`(loops, 3)]) = FeynmanDiagrams(L, legs = 2, loops = 3);](physics/Physics_91.gif)




![%eval(%Bracket(phi, S, phi), `=`(loops, 3)) = FeynmanDiagrams(L, incomingparticles = [phi], outgoingparticles = [phi], numberofloops = 3);](physics/Physics_96.gif)





![A[mu];](physics/Physics_102.gif) .
. ![Define(A[mu]);](physics/Physics_103.gif)

![Typesetting:-mprintslash([[A[mu], Physics:-Dgamma[mu], P__1[mu], P__2[mu], P__3[mu], P__4[mu], Physics:-Psigma[mu], Physics:-d_[mu], Physics:-g_[mu, nu], p__1[mu], p__2[mu], p__3[mu], p__4[mu], p__5[m...](physics/Physics_105.gif)
 , so set
, so set  as an anticommutativeprefix, and set
 as an anticommutativeprefix, and set  and
 and  as quantum operators
 as quantum operators 


![[anticommutativeprefix = {psi}, quantumoperators = {A, phi, psi}, spinorindices = lowercaselatin_is]](physics/Physics_113.gif)
![conjugate(psi[j]);](physics/Physics_114.gif)
), `*`(Dgamma[mu][j, k], `*`(psi[k](X), `*`(A[mu](X))))));](physics/Physics_115.gif)
), psi[k](X), A[mu](X)), `*`(Physics:-Dgamma[`~mu`][j, k])))], [`*`(alpha, `*`(Physics:-`*`(conjugate(psi[j](X)), psi...](physics/Physics_116.gif)
![S[2];](physics/Physics_117.gif) , only the terms with 4 external legs, and display the diagrams: they have no loops
, only the terms with 4 external legs, and display the diagrams: they have no loops ![%eval(S[2], `=`(legs, 4)) = FeynmanDiagrams(L__QED, numberofvertices = 2, numberoflegs = 4, diagrams);](physics/Physics_118.gif)
 
		 
		

![%eval(S[2], `=`(legs, 2)) = FeynmanDiagrams(L__QED, numberofvertices = 2, numberoflegs = 2, diagrams);](physics/Physics_123.gif)
 
		 
		

![%eval(S[2], [`=`(legs, 2), `=`(products, _NP(A, A))]) = FeynmanDiagrams(L__QED, numberofvertices = 2, numberoflegs = 2, normalproduct = _NP(A, A));](physics/Physics_128.gif)


![%eval(%Bracket(A, S, A), `=`(loops, 1)) = FeynmanDiagrams(L__QED, incomingparticles = [A], outgoing = [A], numberofloops = 1, diagrams);](physics/Physics_131.gif)
 
		

![varepsilon[A];](physics/Physics_135.gif) is the corresponding polarization vector.
 is the corresponding polarization vector. ![%eval(%Bracket(psi, S, psi), `=`(loops, 1)) = FeynmanDiagrams(L__QED, incoming = [psi], outgoing = [psi], numberofloops = 1);](physics/Physics_136.gif)


![u[psi];](physics/Physics_139.gif) spinor (see ref.[2]), and the propagator of the field
 spinor (see ref.[2]), and the propagator of the field ![A[mu];](physics/Physics_140.gif) with a mass
 with a mass ![m[A];](physics/Physics_141.gif) . To indicate that this field is massless use
. To indicate that this field is massless use 


![[masslessfields = {A}]](physics/Physics_145.gif)
![A[mu];](physics/Physics_146.gif) is the one of a massless vector field:
 is the one of a massless vector field: ![%eval(%Bracket(psi, S, psi), `=`(loops, 1)) = FeynmanDiagrams(L__QED, incoming = [psi], outgoing = [psi], numberofloops = 1);](physics/Physics_147.gif)

![B[mu, a];](physics/Physics_149.gif) where a is a SU2 index (see eq.(12) of sec. 19.4 of ref.[1]). The interaction Lagrangian can be entered as follows
 where a is a SU2 index (see eq.(12) of sec. 19.4 of ref.[1]). The interaction Lagrangian can be entered as follows 



![[masslessfields = {A, B}, quantumoperators = {A, B, phi, psi, psi1}, su2indices = lowercaselatin_ah]](physics/Physics_154.gif)
![Define(B[mu, a], quiet); -1](physics/Physics_155.gif)
![F__B[mu, nu, a] := `+`(d_[mu](B[nu, a](X)), `-`(d_[nu](B[mu, a](X))));](physics/Physics_156.gif)
![Typesetting:-mprintslash([F__B[mu, nu, a] := `+`(Physics:-d_[mu](B[nu, a](X), [X]), `-`(Physics:-d_[nu](B[mu, a](X), [X])))], [`+`(Physics:-d_[mu](B[nu, a](X), [X]), `-`(Physics:-d_[nu](B[mu, a](X), [...](physics/Physics_157.gif)
![L := `+`(`*`(`/`(1, 2), `*`(g, `*`(LeviCivita[a, b, c], `*`(F__B[mu, nu, a], `*`(B[mu, b](X), `*`(B[nu, c](X))))))), `*`(`/`(1, 4), `*`(`^`(g, 2), `*`(LeviCivita[a, b, c], `*`(LeviCivita[a, e, f], `*`...](physics/Physics_158.gif)
![L := `+`(`*`(`/`(1, 2), `*`(g, `*`(LeviCivita[a, b, c], `*`(F__B[mu, nu, a], `*`(B[mu, b](X), `*`(B[nu, c](X))))))), `*`(`/`(1, 4), `*`(`^`(g, 2), `*`(LeviCivita[a, b, c], `*`(LeviCivita[a, e, f], `*`...](physics/Physics_159.gif)
![Typesetting:-mprintslash([L := `+`(`*`(`/`(1, 2), `*`(g, `*`(Physics:-LeviCivita[a, b, c], `*`(Physics:-`*`(`+`(Physics:-d_[mu](B[nu, a](X), [X]), `-`(Physics:-d_[nu](B[mu, a](X), [X]))), B[`~mu`, b](...](physics/Physics_160.gif)
![FeynmanDiagrams(L, incomingparticles = [B, B], outgoingparticles = [B, B], numberofloops = 0, output = probabilitydensity, factor, diagrams);](physics/Physics_161.gif)
![FeynmanDiagrams(L, incomingparticles = [B, B], outgoingparticles = [B, B], numberofloops = 0, output = probabilitydensity, factor, diagrams);](physics/Physics_162.gif)

 
		









![Check(Physics:-FeynmanDiagrams:-ProbabilityDensity(`+`(`*`(4, `*`(`^`(Pi, 2), `*`(%mul(n[i], i = 1 .. 2), `*`(`^`(abs(F), 2), `*`(Dirac(`+`(`-`(P__3[`~sigma`]), `-`(P__4[`~sigma`]), P__1[`~sigma`], P_...](physics/Physics_175.gif)
![`*`(`The repeated indices per term are: `[{`...`}, {`...`}, `...`], `*`(`, the free indices are: `, `*`({`...`})));](physics/Physics_176.gif)
![[{a1, a2, a3, alpha, beta, chi, d, g, h, kappa, lambda, sigma, tau}], {}](physics/Physics_177.gif)



![[quantumoperators = {A, B, W, Z, phi, psi, psi1}]](physics/Physics_181.gif)
![Define(W[mu], Z[mu]);](physics/Physics_182.gif)

![Typesetting:-mprintslash([[A[mu], B[mu, a], Physics:-Dgamma[mu], P__1[mu], P__2[mu], P__3[mu], P__4[mu], Physics:-Psigma[mu], W[mu], Z[mu], Physics:-d_[mu], Physics:-g_[mu, nu], p__1[mu], p__2[mu], p_...](physics/Physics_184.gif)

















![[ADMEquations, Christoffel3, D3_, ExtrinsicCurvature, Lapse, LapseAndShiftConditions, Ricci3, Riemann3, Shift, TimeVector, UnitNormalVector, gamma3_]](physics/Physics_202.gif)
![[ADMEquations, Christoffel3, D3_, ExtrinsicCurvature, Lapse, LapseAndShiftConditions, Ricci3, Riemann3, Shift, TimeVector, UnitNormalVector, gamma3_]](physics/Physics_203.gif)

![[advectiveonepluslog, generalizedharmonicslicing, geodesicslicing, harmoniccoordinates, harmonicslicing, kdriver, maximalslicing, onepluslog]](physics/Physics_205.gif)





 = `+`(`-`(`*`(2, `*`(%ExtrinsicCurvature[trace])))), `+`(%d_[0](Lapse), `-`(`*`(Shift[`~j`], `*`(%d_[j](Lapse))))) = `+`(`...](physics/Physics_211.gif)

 = `+`(`-`(`*`(`^`(Lapse, 2), `*`(%f(Lapse), `*`(%ExtrinsicCurvature[trace]))))), Shift[`~i`] = 0], subtype = Vector[column]);](physics/Physics_213.gif)

![geodesicslicing = rtable(1 .. 2, [Lapse = 1, Shift[`~i`] = 0], subtype = Vector[column]);](physics/Physics_215.gif)

, `-`(`*`(Shift[`~j`], `*`(%d_[j](Lapse))))) = `+`(`-`(`*`(`^`(Lapse, 2), `*`(%ExtrinsicCurvature[trace])))), `+`(%d_[0](Shift[`~i`]), `-`(`*`(Sh...](physics/Physics_217.gif)

 = `+`(`-`(`*`(`^`(Lapse, 2), `*`(%ExtrinsicCurvature[trace])))), Lapse = `*`(%C(x, y, z, t), `*`(sqrt(%gamma3_[determinant]))), Shift[`~i`] = 0], subtyp...](physics/Physics_219.gif)

 = `*`(%c, `*`(%ExtrinsicCurvature[trace])), %d_[0](Lapse) = `+`(`-`(`*`(%epsilon, `*`(`+`(%d_[0](%ExtrinsicCurvature[trace]), `*`(%c, `*`(%...](physics/Physics_221.gif)

![maximalslicing = rtable(1 .. 2, [%ExtrinsicCurvature[trace] = 0, %d_[0](%ExtrinsicCurvature[trace]) = 0, D_[`~mu`](D_[mu](Lapse)) = `*`(Lapse, `*`(`+`(`*`(%ExtrinsicCurvature[mu, nu], `*`(%ExtrinsicCu...](physics/Physics_223.gif)





![g_[];](physics/Physics_229.gif)



![{Physics:-ThreePlusOne:-Lapse = _F1(x, y, z), Physics:-ThreePlusOne:-Shift[`~1`] = 0, Physics:-ThreePlusOne:-Shift[`~2`] = 0, Physics:-ThreePlusOne:-Shift[`~3`] = 0}, {Physics:-ThreePlusOne:-Lapse = R...](physics/Physics_233.gif)
, 1)));](physics/Physics_234.gif)




![[lapseandshift = arbitrary]](physics/Physics_241.gif)
![Kappa[trace];](physics/Physics_242.gif) = 0 we have the trace expressed in terms of arbitrary Lapse and Shift
= 0 we have the trace expressed in terms of arbitrary Lapse and Shift ![ExtrinsicCurvature[trace];](physics/Physics_243.gif)
![Typesetting:-mprintslash([`+`(`-`(`/`(`*`(`+`(`*`(Physics:-ThreePlusOne:-Shift[`~1`], `*`(diff(Physics:-ThreePlusOne:-Lapse, x), `*`(`^`(Physics:-ThreePlusOne:-Lapse, 2)))), `*`(Physics:-ThreePlusOne:...](physics/Physics_244.gif)
 using the evaluate option, we have
 using the evaluate option, we have 


 , into the equations for the Lapse
, into the equations for the Lapse  
 ![convert(EQ[2], setofequations);](physics/Physics_251.gif)
![{Physics:-ThreePlusOne:-Shift[`~1`] = 0, Physics:-ThreePlusOne:-Shift[`~2`] = 0, Physics:-ThreePlusOne:-Shift[`~3`] = 0}](physics/Physics_252.gif)
![subs({Physics:-ThreePlusOne:-Shift[`~1`] = 0, Physics:-ThreePlusOne:-Shift[`~2`] = 0, Physics:-ThreePlusOne:-Shift[`~3`] = 0}, EQ[1]);](physics/Physics_253.gif)
![Typesetting:-mprintslash([diff(Physics:-ThreePlusOne:-Lapse, t) = `+`(`-`(`*`(diff(Physics:-ThreePlusOne:-Lapse, t), `*`(f(Physics:-ThreePlusOne:-Lapse)))))], [Physics:-diff(Physics:-ThreePlusOne:-Lap...](physics/Physics_254.gif)
 (the second solution in (39), resulting in (40)) or the Lapse
 (the second solution in (39), resulting in (40)) or the Lapse  does not depend on t (the first solution in (39)).
 does not depend on t (the first solution in (39)).  
 


![[lapseandshift = standard]](physics/Physics_265.gif)



 , in the next step the derivative of the Lapse is computed rewriting the Lapse in terms of the Minkowski metric (38), for which the Lapse is actually equal to 1
, in the next step the derivative of the Lapse is computed rewriting the Lapse in terms of the Minkowski metric (38), for which the Lapse is actually equal to 1 
, `*`(Physics:-D_[`~mu`](t, [X]))))))))], [Physics:-ThreePlusOne:-Lapse = `/`(1, `*`(sqrt(`+...](physics/Physics_272.gif)
, `*`(Physics:-D_[`~mu`](t, [X])))))))));](physics/Physics_273.gif)

![subs({Physics:-ThreePlusOne:-Shift[`~1`] = 0, Physics:-ThreePlusOne:-Shift[`~2`] = 0, Physics:-ThreePlusOne:-Shift[`~3`] = 0}, EQ[1]);](physics/Physics_276.gif)

![g[mu, nu];](physics/Physics_278.gif) , when
, when  the Lapse and Shift are defined in terms of the components
 the Lapse and Shift are defined in terms of the components ![g[0, mu];](physics/Physics_280.gif) . That is why in (49) we have
. That is why in (49) we have  . On the other hand, when
. On the other hand, when  the Lapse and Shift are not expressed in terms of the metric, they remain arbitrary, allowing for solving the condition equations in order to then express the components
 the Lapse and Shift are not expressed in terms of the metric, they remain arbitrary, allowing for solving the condition equations in order to then express the components ![g[0, mu];](physics/Physics_284.gif) in terms of the Lapse and Shift.
 in terms of the Lapse and Shift. ![g_[sc];](physics/Physics_285.gif)



![`*`(`The Schwarzschild metric in coordinates `, `*`([r, theta, phi, t]));](physics/Physics_289.gif)
![`Parameters: `[m];](physics/Physics_290.gif)




 , in the internal intermediate computations of LapseAndShiftConditions
, in the internal intermediate computations of LapseAndShiftConditions  is used, so the problem can be formulated and tackled in the right way, resulting in the right conditions equations when using the option evaluate, allowing to compute a solution
 is used, so the problem can be formulated and tackled in the right way, resulting in the right conditions equations when using the option evaluate, allowing to compute a solution 






![{Physics:-ThreePlusOne:-Lapse = `+`(`-`(`*`(`^`(sin(theta), `/`(1, 2)), `*`(`^`(_F1(r, theta, phi), `/`(1, 2)), `*`(r))))), m = m, Physics:-ThreePlusOne:-Shift[`~1`] = 0, Physics:-ThreePlusOne:-Shift[...](physics/Physics_304.gif)
![{Physics:-ThreePlusOne:-Lapse = `+`(`-`(`*`(`^`(sin(theta), `/`(1, 2)), `*`(`^`(_F1(r, theta, phi), `/`(1, 2)), `*`(r))))), m = m, Physics:-ThreePlusOne:-Shift[`~1`] = 0, Physics:-ThreePlusOne:-Shift[...](physics/Physics_305.gif)







![A[mu, nu] = Matrix(4, {(1, 1) = `/`(`*`(a(t)), `*`(sqrt(`+`(`-`(`*`(k, `*`(`^`(r, 2)))), 1)))), (2, 2) = `*`(a(t), `*`(r)), (3, 3) = `*`(a(t), `*`(r, `*`(sin(theta)))), (4, 4) = 1});](physics/Physics_313.gif)

![B[mu, nu] = Matrix(4, {(1, 1) = `/`(`*`(sqrt(`+`(`-`(`*`(k, `*`(`^`(r, 2)))), 1))), `*`(a(t))), (2, 2) = `/`(1, `*`(a(t), `*`(r))), (3, 3) = `/`(1, `*`(a(t), `*`(r, `*`(sin(theta))))), (4, 4) = 1});](physics/Physics_315.gif)



![Typesetting:-mprintslash([[A[mu, nu], B[mu, nu], Physics:-D_[mu], Physics:-Dgamma[mu], Physics:-Psigma[mu], Physics:-Ricci[mu, nu], Physics:-Riemann[mu, nu, alpha, beta], Physics:-Weyl[mu, nu, alpha, ...](physics/Physics_319.gif)
![`*`(A[nu, alpha], `*`(B[sigma, beta], `*`(Christoffel[nu, sigma, mu])));](physics/Physics_320.gif)
![`*`(B[beta, sigma], `*`(A[alpha, nu], `*`(Physics:-Christoffel[`~nu`, mu, `~sigma`])))](physics/Physics_321.gif)
![Check(`*`(B[beta, sigma], `*`(A[alpha, nu], `*`(Physics:-Christoffel[`~nu`, mu, `~sigma`]))), free);](physics/Physics_322.gif)


![TensorArray(`*`(B[beta, sigma], `*`(A[alpha, nu], `*`(Physics:-Christoffel[`~nu`, mu, `~sigma`]))));](physics/Physics_325.gif)

![TensorArray(`*`(B[beta, sigma], `*`(A[alpha, nu], `*`(Physics:-Christoffel[`~nu`, mu, `~sigma`]))), explore);](physics/Physics_330.gif)


 , making clear what is being displayed: the 2x2 slice for
, making clear what is being displayed: the 2x2 slice for  and
 and  (always the last two indices in the ordering list) when you take
 (always the last two indices in the ordering list) when you take  .
. without having to recompute anything, and in that way see the different 2x2 slices for
 without having to recompute anything, and in that way see the different 2x2 slices for  and
 and  .
. , and in that way select the (remaining) indices that conform the 2x2 slice of components being shown (the ordering of indices in the 2x2 slice shown is always the one in the ordering list after you remove Index 1).
, and in that way select the (remaining) indices that conform the 2x2 slice of components being shown (the ordering of indices in the 2x2 slice shown is always the one in the ordering list after you remove Index 1).
![`*`(R[alpha, rho], `*`(R[beta, nu], `*`(R[mu, sigma])));](physics/Physics_346.gif) 
 ![TensorArray(`*`(Ricci[alpha, rho], `*`(Ricci[beta, nu], `*`(Ricci[mu, sigma]))), explore);](physics/Physics_347.gif)
![`*`(R[alpha, rho], `*`(R[beta, nu], `*`(R[mu, sigma], `*`(`      `(`ordering of free indices` = [alpha, beta, mu, nu, rho, sigma])))));](physics/Physics_348.gif)
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 ![`𝔢`[a, mu];](physics/Physics_370.gif) or with respect to it, of the determinant of the metric and the tetrad, and related manipulations with inert versions of these tensors.
 or with respect to it, of the determinant of the metric and the tetrad, and related manipulations with inert versions of these tensors. ![g[mu, nu];](physics/Physics_371.gif) with respect to itself
 with respect to itself
![restart; 1; with(Physics); -1; with(Tetrads); -1; Setup(coordinates = X); -1; g_[arbitrary]; 1](physics/Physics_372.gif)


![`*`(`Defined as tetrad tensors `(`see ?Physics,tetrads`), `*`(`^`(`, `, 4), `*`(`𝔢`[a, mu], `*`(eta[a, b], `*`(gamma[a, b, c], `*`(lambda[a, b, c]))))));](physics/Physics_375.gif)
![`*`(`Defined as spacetime tensors representing the NP null vectors of the tetrad formalism `(`see ?Physics,tetrads`), `*`(`^`(`, `, 4), `*`(l[mu], `*`(n[mu], `*`(m[mu], `*`(conjugate(m[mu])))))));](physics/Physics_376.gif)





![(%diff = diff)(g_[mu, nu], g_[alpha, beta]);](physics/Physics_382.gif)

![(%diff = diff)(g_[mu, nu], g_[`~alpha`, `~beta`]);](physics/Physics_384.gif)

![`*`(g_[mu, nu], `*`(g_[`~nu`, `~xi`])) = g_[mu, `~xi`];](physics/Physics_386.gif)
![`*`(Physics:-g_[mu, nu], `*`(Physics:-g_[`~nu`, `~xi`])) = Physics:-g_[mu, `~xi`]](physics/Physics_387.gif)
![Simplify(`*`(Physics:-g_[mu, nu], `*`(Physics:-g_[`~nu`, `~xi`])) = Physics:-g_[mu, `~xi`]);](physics/Physics_388.gif)
![Physics:-g_[mu, `~xi`] = Physics:-g_[mu, `~xi`]](physics/Physics_389.gif)
![g[`~alpha`, `~beta`];](physics/Physics_390.gif) 
 ![%diff(`*`(Physics:-g_[mu, nu], `*`(Physics:-g_[`~nu`, `~xi`])) = Physics:-g_[mu, `~xi`], g[`~alpha`, `~beta`]);](physics/Physics_391.gif)

![expand(%diff(`*`(Physics:-g_[mu, nu], `*`(Physics:-g_[`~nu`, `~xi`])) = Physics:-g_[mu, `~xi`], Physics:-g_[`~alpha`, `~beta`]));](physics/Physics_393.gif)

![isolate(`+`(`*`(%diff(Physics:-g_[mu, nu], Physics:-g_[`~alpha`, `~beta`]), `*`(Physics:-g_[`~nu`, `~xi`])), `*`(Physics:-g_[mu, nu], `*`(%diff(Physics:-g_[`~nu`, `~xi`], Physics:-g_[`~alpha`, `~beta`...](physics/Physics_395.gif)

![g[`~nu`, `~xi`];](physics/Physics_397.gif) , multiply both sides of the equation by
, multiply both sides of the equation by ![g[xi, rho];](physics/Physics_398.gif) , and use the dot operator `.` in order to multiply and simplify the indices in one go
, and use the dot operator `.` in order to multiply and simplify the indices in one go ![Typesetting:-delayDotProduct(`*`(%diff(Physics:-g_[mu, nu], Physics:-g_[`~alpha`, `~beta`]), `*`(Physics:-g_[`~nu`, `~xi`])) = `+`(%diff(Physics:-g_[mu, `~xi`], Physics:-g_[`~alpha`, `~beta`]), `-`(`*...](physics/Physics_399.gif)

![%diff(g_[mu, `~xi`], g_[`~alpha`, `~beta`]);](physics/Physics_401.gif) , is equal to zero since the derivand is a constant. The second derivative,
, is equal to zero since the derivand is a constant. The second derivative, ![%diff(g_[`~nu`, `~xi`], g_[`~alpha`, `~beta`]);](physics/Physics_402.gif) is the easy case (65), so we have
 is the easy case (65), so we have ![lhs(%diff(Physics:-g_[mu, rho], Physics:-g_[`~alpha`, `~beta`]) = `*`(`+`(%diff(Physics:-g_[mu, `~xi`], Physics:-g_[`~alpha`, `~beta`]), `-`(`*`(Physics:-g_[mu, nu], `*`(%diff(Physics:-g_[`~nu`, `~xi`...](physics/Physics_404.gif)

![Simplify(%diff(Physics:-g_[mu, rho], Physics:-g_[`~alpha`, `~beta`]) = `+`(`-`(`*`(Physics:-g_[mu, nu], `*`(Physics:-g_[alpha, `~nu`], `*`(Physics:-g_[beta, `~xi`], `*`(Physics:-g_[rho, xi])))))));](physics/Physics_407.gif)

![`𝔢`[`~a`, alpha];](physics/Physics_409.gif) with respect to itself
with respect to itself ![(%diff = diff)(`𝔢`[`~a`, alpha], `𝔢`[`~c`, nu]);](physics/Physics_410.gif)

![(%diff = diff)(`𝔢`[`~a`, alpha], `𝔢`[c, nu]);](physics/Physics_412.gif)

![(%diff = diff)(`𝔢`[`~a`, alpha], `𝔢`[c, `~nu`]);](physics/Physics_414.gif)

![`*`(`𝔢`[`~a`, alpha], `*`(`𝔢`[a, `~beta`])) = g_[alpha, `~beta`];](physics/Physics_416.gif)
![`*`(Physics:-Tetrads:-e_[`~a`, alpha], `*`(Physics:-Tetrads:-e_[a, `~beta`])) = Physics:-g_[alpha, `~beta`]](physics/Physics_417.gif)
![Simplify(`*`(Physics:-Tetrads:-e_[`~a`, alpha], `*`(Physics:-Tetrads:-e_[a, `~beta`])) = Physics:-g_[alpha, `~beta`]);](physics/Physics_418.gif)
![Physics:-g_[alpha, `~beta`] = Physics:-g_[alpha, `~beta`]](physics/Physics_419.gif)
![`𝔢`[c, `~nu`];](physics/Physics_420.gif) 
 ![%diff(`*`(Physics:-Tetrads:-e_[`~a`, alpha], `*`(Physics:-Tetrads:-e_[a, `~beta`])) = Physics:-g_[alpha, `~beta`], `𝔢`[c, `~nu`]);](physics/Physics_421.gif)



![isolate(`+`(`*`(%diff(Physics:-Tetrads:-e_[`~a`, alpha], Physics:-Tetrads:-e_[c, `~nu`]), `*`(Physics:-Tetrads:-e_[a, `~beta`])), `*`(Physics:-Tetrads:-e_[`~a`, alpha], `*`(%diff(Physics:-Tetrads:-e_[...](physics/Physics_425.gif)

![`𝔢`[a, `~beta`];](physics/Physics_427.gif) , multiply both sides of the equation by
, multiply both sides of the equation by ![`𝔢`[`~b`, beta];](physics/Physics_428.gif) , and use the dot operator `.` in order to multiply and simplify the indices in one go
, and use the dot operator `.` in order to multiply and simplify the indices in one go ![Typesetting:-delayDotProduct(`*`(%diff(Physics:-Tetrads:-e_[`~a`, alpha], Physics:-Tetrads:-e_[c, `~nu`]), `*`(Physics:-Tetrads:-e_[a, `~beta`])) = `+`(%diff(Physics:-g_[alpha, `~beta`], Physics:-Tetr...](physics/Physics_429.gif)

![lhs(%diff(Physics:-Tetrads:-e_[`~b`, alpha], Physics:-Tetrads:-e_[c, `~nu`]) = `*`(`+`(%diff(Physics:-g_[alpha, `~beta`], Physics:-Tetrads:-e_[c, `~nu`]), `-`(`*`(Physics:-Tetrads:-e_[`~a`, alpha], `*...](physics/Physics_431.gif)

![Simplify(%diff(Physics:-Tetrads:-e_[`~b`, alpha], Physics:-Tetrads:-e_[c, `~nu`]) = `+`(`-`(`*`(Physics:-Tetrads:-e_[`~a`, alpha], `*`(Physics:-Tetrads:-eta_[a, `~c`], `*`(Physics:-g_[nu, `~beta`], `*...](physics/Physics_434.gif)

![g[alpha, beta];](physics/Physics_436.gif) with respect to the tetrad
 with respect to the tetrad ![`𝔢`[a, nu];](physics/Physics_437.gif) 
 ![(%diff = diff)(g[alpha, beta], `𝔢`[a, nu]);](physics/Physics_438.gif)

![`*`(`𝔢`[`~a`, alpha], `*`(`𝔢`[a, `~beta`])) = g_[alpha, `~beta`];](physics/Physics_440.gif) with both spacetime indices covariant
 with both spacetime indices covariant ![g_[alpha, beta] = `*`(e_[`~c`, alpha], `*`(e_[c, beta]));](physics/Physics_441.gif)
![Physics:-g_[alpha, beta] = `*`(Physics:-Tetrads:-e_[`~c`, alpha], `*`(Physics:-Tetrads:-e_[c, beta]))](physics/Physics_442.gif)
![%diff(Physics:-g_[alpha, beta] = `*`(Physics:-Tetrads:-e_[`~c`, alpha], `*`(Physics:-Tetrads:-e_[c, beta])), `𝔢`[a, nu]);](physics/Physics_443.gif)

![expand(%diff(Physics:-g_[alpha, beta] = `*`(Physics:-Tetrads:-e_[`~c`, alpha], `*`(Physics:-Tetrads:-e_[c, beta])), Physics:-Tetrads:-e_[a, nu]));](physics/Physics_445.gif)

![lhs(%diff(Physics:-g_[alpha, beta], Physics:-Tetrads:-e_[a, nu]) = `+`(`*`(%diff(Physics:-Tetrads:-e_[`~c`, alpha], Physics:-Tetrads:-e_[a, nu]), `*`(Physics:-Tetrads:-e_[c, beta])), `*`(Physics:-Tetr...](physics/Physics_447.gif)

![Simplify(%diff(Physics:-g_[alpha, beta], Physics:-Tetrads:-e_[a, nu]) = `+`(`*`(Physics:-Tetrads:-e_[c, beta], `*`(Physics:-Tetrads:-eta_[`~a`, `~c`], `*`(Physics:-g_[alpha, `~nu`]))), `*`(Physics:-Te...](physics/Physics_449.gif)

![(%diff = diff)(g[alpha, beta], `𝔢`[`~a`, nu]);](physics/Physics_451.gif)

![(%diff = diff)(g[alpha, beta], `𝔢`[a, `~nu`]);](physics/Physics_453.gif)

![%diff(g_[alpha, beta], e_[a, nu]);](physics/Physics_455.gif) , changing
, changing ![`𝔢`[a, nu];](physics/Physics_456.gif) by
 by ![`𝔢`[a, `~nu`];](physics/Physics_457.gif) 
 ![Define(A[alpha, beta], B[alpha, beta]);](physics/Physics_458.gif)

![Typesetting:-mprintslash([[A[alpha, beta], B[alpha, beta], Physics:-D_[mu], Physics:-Dgamma[mu], Physics:-Psigma[mu], Physics:-Ricci[mu, nu], Physics:-Riemann[mu, nu, alpha, beta], Physics:-Weyl[mu, n...](physics/Physics_460.gif)
![S__1 := `+`(`*`(A[`~alpha`, `~beta`], `*`(g[alpha, beta])), `*`(B[xi, eta], `*`(g[`~xi`, `~eta`])));](physics/Physics_461.gif)
![Typesetting:-mprintslash([S__1 := `+`(`*`(A[`~alpha`, `~beta`], `*`(Physics:-g_[alpha, beta])), `*`(B[xi, eta], `*`(Physics:-g_[`~eta`, `~xi`])))], [`+`(`*`(A[`~alpha`, `~beta`], `*`(Physics:-g_[alpha...](physics/Physics_462.gif)
!['`+`(`*`(%diff(S__1, `𝔢`[f, `~nu`]), `*`(`𝔢`[f, `~mu`])), `*`(%diff(S__1, A[`~nu`, `~eta`]), `*`(A[`~mu`, `~eta`])), `*`(%diff(S__1, A[`~eta`, `~nu`]), `*`(A[eta, `~mu`])), `-`(`*`(%diff(S__1,...](physics/Physics_463.gif)

![`+`(Physics:-`*`(%diff(S__1, Physics:-Tetrads:-e_[f, `~nu`]), Physics:-Tetrads:-e_[f, `~mu`]), Physics:-`*`(%diff(S__1, A[`~nu`, `~eta`]), A[`~mu`, `~eta`]), Physics:-`*`(%diff(S__1, A[`~eta`, `~nu`])...](physics/Physics_465.gif)


![value(`+`(`*`(%diff(`+`(`*`(A[`~alpha`, `~beta`], `*`(Physics:-g_[alpha, beta])), `*`(B[xi, eta], `*`(Physics:-g_[`~eta`, `~xi`]))), Physics:-Tetrads:-e_[f, `~nu`]), `*`(Physics:-Tetrads:-e_[f, `~mu`]...](physics/Physics_468.gif)
![`+`(`*`(`+`(`*`(A[`~alpha`, `~beta`], `*`(`+`(`-`(`*`(Physics:-Tetrads:-e_[`~f`, alpha], `*`(Physics:-g_[beta, nu]))), `-`(`*`(Physics:-Tetrads:-e_[`~f`, beta], `*`(Physics:-g_[alpha, nu])))))), `*`(B...](physics/Physics_469.gif)
![`+`(`*`(`+`(`*`(A[`~alpha`, `~beta`], `*`(`+`(`-`(`*`(Physics:-Tetrads:-e_[`~f`, alpha], `*`(Physics:-g_[beta, nu]))), `-`(`*`(Physics:-Tetrads:-e_[`~f`, beta], `*`(Physics:-g_[alpha, nu])))))), `*`(B...](physics/Physics_470.gif)
![Simplify(`+`(`*`(`+`(`*`(A[`~alpha`, `~beta`], `*`(`+`(`-`(`*`(Physics:-Tetrads:-e_[`~f`, alpha], `*`(Physics:-g_[beta, nu]))), `-`(`*`(Physics:-Tetrads:-e_[`~f`, beta], `*`(Physics:-g_[alpha, nu]))))...](physics/Physics_471.gif)

![S__2 := `+`(`*`(`𝔢`[c, `~xi`], `*`(`𝔢`[d, `~eta`], `*`(B[xi, eta], `*`(eta[`~c`, `~d`])))), `*`(`𝔢`[`~a`, alpha], `*`(`𝔢`[`~b`, beta], `*`(A[`~alpha`, `~beta`], `*`(eta[a, b])))));](physics/Physics_473.gif)
![Typesetting:-mprintslash([S__2 := `+`(`*`(A[`~alpha`, `~beta`], `*`(Physics:-Tetrads:-e_[`~a`, alpha], `*`(Physics:-Tetrads:-e_[`~b`, beta], `*`(Physics:-Tetrads:-eta_[a, b])))), `*`(B[xi, eta], `*`(P...](physics/Physics_474.gif)
![subs(S__1 = S__2, `+`(Physics:-`*`(%diff(S__1, Physics:-Tetrads:-e_[f, `~nu`]), Physics:-Tetrads:-e_[f, `~mu`]), Physics:-`*`(%diff(S__1, A[`~nu`, `~eta`]), A[`~mu`, `~eta`]), Physics:-`*`(%diff(S__1,...](physics/Physics_475.gif)



![value(`+`(`*`(%diff(`+`(`*`(A[`~alpha`, `~beta`], `*`(Physics:-Tetrads:-e_[`~a`, alpha], `*`(Physics:-Tetrads:-e_[`~b`, beta], `*`(Physics:-Tetrads:-eta_[a, b])))), `*`(B[xi, eta], `*`(Physics:-Tetrad...](physics/Physics_479.gif)
![`+`(`*`(`+`(`-`(`*`(A[`~alpha`, `~beta`], `*`(Physics:-Tetrads:-e_[`~a`, alpha], `*`(Physics:-Tetrads:-e_[`~b`, nu], `*`(Physics:-Tetrads:-e_[`~f`, beta], `*`(Physics:-Tetrads:-eta_[a, b])))))), `-`(`...](physics/Physics_480.gif)
![`+`(`*`(`+`(`-`(`*`(A[`~alpha`, `~beta`], `*`(Physics:-Tetrads:-e_[`~a`, alpha], `*`(Physics:-Tetrads:-e_[`~b`, nu], `*`(Physics:-Tetrads:-e_[`~f`, beta], `*`(Physics:-Tetrads:-eta_[a, b])))))), `-`(`...](physics/Physics_481.gif)
![Simplify(`+`(`*`(`+`(`-`(`*`(A[`~alpha`, `~beta`], `*`(Physics:-Tetrads:-e_[`~a`, alpha], `*`(Physics:-Tetrads:-e_[`~b`, nu], `*`(Physics:-Tetrads:-e_[`~f`, beta], `*`(Physics:-Tetrads:-eta_[a, b]))))...](physics/Physics_482.gif)

![g_[determinant];](physics/Physics_484.gif)




![%g_[determinant];](physics/Physics_489.gif)

![value(%g_[determinant]);](physics/Physics_491.gif)




 , taking
, taking ![M = g[mu, nu];](physics/Physics_497.gif) and
 and ![`/`(1, `*`(M)) = g[`~mu`, `~nu`];](physics/Physics_498.gif) , the derivative of the determinant of the metric is proportional to itself, and this rule is understood in Maple 2020 when you use the inert representation
, the derivative of the determinant of the metric is proportional to itself, and this rule is understood in Maple 2020 when you use the inert representation ![%g_[determinant];](physics/Physics_499.gif) 
 ![(%diff = diff)(%g_[determinant], g[mu, nu]);](physics/Physics_500.gif)

![delta(`*`(g[`~mu`, `~nu`], `*`(g[mu, nu]))) = 0;](physics/Physics_502.gif) , hence
, hence ![`*`(g[`~mu`, `~nu`], `*`(delta, `*`(g[mu, nu]))) = `+`(`-`(`*`(g[`~mu`, `~nu`], `*`(delta, `*`(g[mu, nu])))));](physics/Physics_503.gif) so that
 so that ![(%diff = diff)(%g_[determinant], g[`~mu`, `~nu`]);](physics/Physics_504.gif)

![(%diff = diff)(%e_[determinant], `𝔢`[a, nu]);](physics/Physics_506.gif)

![(%diff = diff)(%e_[determinant], `𝔢`[a, `~nu`]);](physics/Physics_508.gif)

![(%diff = diff)(%e_[determinant], `𝔢`[`~a`, nu]);](physics/Physics_510.gif)

![(%diff = diff)(sqrt(`+`(`-`(%g_[determinant]))), `𝔢`[`~a`, nu]);](physics/Physics_512.gif)

![`*`(eta[`~a`, `~b`], `*`(`𝔢`[b, alpha], `*`(`𝔢`[a, beta]))) = g[alpha, beta];](physics/Physics_518.gif) 
 ![`≡`(e_[determinant], det(`𝔢`[a, beta]));](physics/Physics_519.gif) and recalling that the determinant of a product is equal to the product of the determinants,
 and recalling that the determinant of a product is equal to the product of the determinants, ![`*`(%eta_[determinant], `*`(`^`(%e_[determinant], 2))) = %g_[determinant];](physics/Physics_520.gif) 
 ![%eta_[determinant] = -1;](physics/Physics_521.gif) , while for a null tetrad,
, while for a null tetrad, ![%eta_[determinant] = 1;](physics/Physics_522.gif) . So in both cases we can rewrite this expression as
. So in both cases we can rewrite this expression as ![`*`(`^`(e_[determinant], 2)) = `*`(eta_[determinant], `*`(g_[determinant]));](physics/Physics_523.gif) 
 ![%e_[determinant] = sqrt(`*`(%eta_[determinant], `*`(%g_[determinant])));](physics/Physics_524.gif)
![%e_[determinant] = `*`(`^`(`*`(%eta_[determinant], `*`(%g_[determinant])), `/`(1, 2)))](physics/Physics_525.gif)
![eta_[determinant] = 1;](physics/Physics_526.gif) , and so
, and so ![`and`(`≡`(e_[determinant], det(`𝔢`[a, beta])) = det(`*`(eta[a, b], `*`(`𝔢`[`~b`, beta]))), det(`*`(eta[a, b], `*`(`𝔢`[`~b`, beta]))) = det(`𝔢`[`~a`, beta]));](physics/Physics_527.gif) . On the other hand, in the (default) case of an orthonormal tetrad,
. On the other hand, in the (default) case of an orthonormal tetrad, ![eta[a, b];](physics/Physics_528.gif) is a Minkowski metric with
 is a Minkowski metric with ![eta_[determinant] = -1;](physics/Physics_529.gif) , and so
, and so ![det(`𝔢`[a, beta]) = `+`(`-`(det(`𝔢`[`~a`, beta])));](physics/Physics_530.gif) 
 ![%e_[determinant];](physics/Physics_531.gif) with respect to the tetrad
 with respect to the tetrad ![%diff(%e_[determinant] = `*`(`^`(`*`(%eta_[determinant], `*`(%g_[determinant])), `/`(1, 2))), `𝔢`[a, nu]);](physics/Physics_532.gif)

![expand(%diff(%e_[determinant] = `*`(`^`(`*`(%eta_[determinant], `*`(%g_[determinant])), `/`(1, 2))), Physics:-Tetrads:-e_[a, nu]));](physics/Physics_534.gif)

![%diff(%g_[determinant], %e_[a, nu]);](physics/Physics_536.gif) derived in the previous sections we obtain
 derived in the previous sections we obtain ![lhs(%diff(%e_[determinant], Physics:-Tetrads:-e_[a, nu]) = %diff(`*`(`^`(`*`(%eta_[determinant], `*`(%g_[determinant])), `/`(1, 2))), Physics:-Tetrads:-e_[a, nu])) = eval(rhs(%diff(%e_[determinant], P...](physics/Physics_537.gif)

![%diff(%e_[determinant], e_[a, nu]) = `*`(`𝔢`[`~a`, `~nu`], `*`(%e_[determinant]));](physics/Physics_540.gif) 
 ![subs(`𝔢`[a, nu] = `𝔢`[a, `~nu`], %diff(%e_[determinant], Physics:-Tetrads:-e_[a, nu]) = %diff(`*`(`^`(`*`(%eta_[determinant], `*`(%g_[determinant])), `/`(1, 2))), Physics:-Tetrads:-e_[a, nu]))...](physics/Physics_542.gif)

![lhs(%diff(%e_[determinant], Physics:-Tetrads:-e_[a, `~nu`]) = %diff(`*`(`^`(`*`(%eta_[determinant], `*`(%g_[determinant])), `/`(1, 2))), Physics:-Tetrads:-e_[a, `~nu`])) = eval(rhs(%diff(%e_[determina...](physics/Physics_544.gif)

![%diff(%e_[determinant], e_[a, `~nu`]) = `+`(`-`(`*`(`𝔢`[`~a`, nu], `*`(%e_[determinant]))));](physics/Physics_547.gif) 
 ![Define(a[mu], T[mu, nu]);](physics/Physics_548.gif)

![Typesetting:-mprintslash([[A[alpha, beta], B[alpha, beta], Physics:-D_[mu], Physics:-Dgamma[mu], Physics:-Psigma[mu], Physics:-Ricci[mu, nu], Physics:-Riemann[mu, nu, alpha, beta], T[mu, nu], Physics:...](physics/Physics_550.gif)
![Define(f[mu, nu], antisymmetric);](physics/Physics_551.gif)

![Typesetting:-mprintslash([[A[alpha, beta], B[alpha, beta], Physics:-D_[mu], Physics:-Dgamma[mu], Physics:-Psigma[mu], Physics:-Ricci[mu, nu], Physics:-Riemann[mu, nu, alpha, beta], T[mu, nu], Physics:...](physics/Physics_553.png)
![L := `*`(`+`(`-`(`*`(`/`(1, 4), `*`(f[alpha, beta], `*`(f[xi, eta], `*`(g[`~alpha`, `~xi`], `*`(g[`~beta`, `~eta`])))))), `*`(`/`(1, 2), `*`(`^`(m, 2), `*`(a[alpha], `*`(a[xi], `*`(g[`~alpha`, `~xi`])...](physics/Physics_554.gif)
![Typesetting:-mprintslash([L := `*`(`+`(`-`(`*`(`/`(1, 4), `*`(f[alpha, beta], `*`(f[xi, eta], `*`(Physics:-g_[`~alpha`, `~xi`], `*`(Physics:-g_[`~beta`, `~eta`])))))), `*`(`/`(1, 2), `*`(`^`(m, 2), `*...](physics/Physics_555.gif)
![T[`~nu`, `~mu`] = `+`(`-`(`/`(`*`(2, `*`(%diff(%L, g[nu, mu]))), `*`(sqrt(`+`(`-`(%g_[determinant])))))));](physics/Physics_556.gif)

![%g_[determinant];](physics/Physics_558.gif) , selectively activate %diff and %L
, selectively activate %diff and %L ![eval(T[`~nu`, `~mu`] = `+`(`-`(`/`(`*`(2, `*`(%diff(%L, Physics:-g_[mu, nu]))), `*`(`^`(`+`(`-`(%g_[determinant])), `/`(1, 2)))))), [%L = L, %diff = diff]);](physics/Physics_559.gif)
![T[`~nu`, `~mu`] = `+`(`-`(`/`(`*`(2, `*`(`+`(`-`(`/`(`*`(`/`(1, 2), `*`(`+`(`-`(`*`(`/`(1, 4), `*`(f[alpha, beta], `*`(f[xi, eta], `*`(Physics:-g_[`~alpha`, `~xi`], `*`(Physics:-g_[`~beta`, `~eta`])))...](physics/Physics_560.gif)
![T[`~nu`, `~mu`] = `+`(`-`(`/`(`*`(2, `*`(`+`(`-`(`/`(`*`(`/`(1, 2), `*`(`+`(`-`(`*`(`/`(1, 4), `*`(f[alpha, beta], `*`(f[xi, eta], `*`(Physics:-g_[`~alpha`, `~xi`], `*`(Physics:-g_[`~beta`, `~eta`])))...](physics/Physics_561.gif)
![Simplify(T[`~nu`, `~mu`] = `+`(`-`(`/`(`*`(2, `*`(`+`(`-`(`/`(`*`(`/`(1, 2), `*`(`+`(`-`(`*`(`/`(1, 4), `*`(f[alpha, beta], `*`(f[xi, eta], `*`(Physics:-g_[`~alpha`, `~xi`], `*`(Physics:-g_[`~beta`, `...](physics/Physics_562.gif)
![T[`~nu`, `~mu`] = `+`(`*`(`/`(1, 4), `*`(Physics:-g_[`~mu`, `~nu`], `*`(`+`(`-`(`*`(2, `*`(`^`(m, 2), `*`(a[beta], `*`(a[`~beta`]))))), `*`(f[beta, xi], `*`(f[`~beta`, `~xi`])))))), `*`(`^`(m, 2), `*`...](physics/Physics_563.gif)
 
  . The matrix indices are entered as a second indexation,
. The matrix indices are entered as a second indexation, ![Dgamma[mu][i, j];](physics/Physics_566.gif) . Spinor indices can also be used to index Dirac spinors, anticommutative objects, relevant in quantum field theory (see Maple 2020 developments for computing the Scattering matrix and Feynman Diagrams in coordinates and momentum representation). In a 4-dimensional spacetime, these indices run from 1 to 4 (not from 0 to 3). Note that, in general, Dirac matrices are
. Spinor indices can also be used to index Dirac spinors, anticommutative objects, relevant in quantum field theory (see Maple 2020 developments for computing the Scattering matrix and Feynman Diagrams in coordinates and momentum representation). In a 4-dimensional spacetime, these indices run from 1 to 4 (not from 0 to 3). Note that, in general, Dirac matrices are  where
 where  , so only when
, so only when  is that the spacetime and spinor dimensions are equal.
 is that the spacetime and spinor dimensions are equal. when Physics is loaded .
when Physics is loaded . Pauli matrices
. These indices are entered as a second indexation, e.g.
 
Pauli matrices
. These indices are entered as a second indexation, e.g. ![Psigma[mu][i, j];](physics/Physics_572.gif) .
. .
 . . These indices are entered as a second indexation, e.g.
. These indices are entered as a second indexation, e.g. ![Glambda[a][i, j];](physics/Physics_575.gif) .
.

![[anticommutativeprefix = {psi}, spinorindices = lowercaselatin_is, su2indices = lowercaselatin_ah, su2matrixindices = uppercaselatin]](physics/Physics_578.gif)
![Define(psi[j]);](physics/Physics_579.gif)

![{Physics:-Dgamma[mu], Physics:-Psigma[mu], Physics:-d_[mu], Physics:-g_[mu, nu], psi[j], Physics:-LeviCivita[alpha, beta, mu, nu]}](physics/Physics_581.gif)
![psi[j];](physics/Physics_582.gif) , the following two expressions are zero
, the following two expressions are zero ![`*`(psi[j], `*`(psi[k], `*`(KroneckerDelta[j, k])));](physics/Physics_583.gif)
![Typesetting:-mprintslash([`*`(Physics:-KroneckerDelta[j, k], `*`(Physics:-`*`(psi[j], psi[k])))], [`*`(Physics:-KroneckerDelta[j, k], `*`(Physics:-`*`(psi[j], psi[k])))])](physics/Physics_584.gif)
![Simplify(`*`(Physics:-KroneckerDelta[j, k], `*`(Physics:-`*`(psi[j], psi[k]))));](physics/Physics_585.gif)

![`*`(psi[j], `*`(psi[k], `*`(LeviCivita[j, m, n], `*`(LeviCivita[k, m, n]))));](physics/Physics_587.gif)
![Typesetting:-mprintslash([`*`(Physics:-LeviCivita[j, m, n], `*`(Physics:-LeviCivita[k, m, n], `*`(Physics:-`*`(psi[j], psi[k]))))], [`*`(Physics:-LeviCivita[j, m, n], `*`(Physics:-LeviCivita[k, m, n],...](physics/Physics_588.gif)
![Simplify(`*`(Physics:-LeviCivita[j, m, n], `*`(Physics:-LeviCivita[k, m, n], `*`(Physics:-`*`(psi[j], psi[k])))));](physics/Physics_589.gif)

![[selectremove(has, `*`(Physics:-LeviCivita[j, m, n], `*`(Physics:-LeviCivita[k, m, n], `*`(Physics:-`*`(psi[j], psi[k])))), LeviCivita)];](physics/Physics_591.gif)
![Typesetting:-mprintslash([[`*`(Physics:-LeviCivita[j, m, n], `*`(Physics:-LeviCivita[k, m, n])), Physics:-`*`(psi[j], psi[k])]], [[`*`(Physics:-LeviCivita[j, m, n], `*`(Physics:-LeviCivita[k, m, n])),...](physics/Physics_592.gif)
![map(Simplify, [`*`(Physics:-LeviCivita[j, m, n], `*`(Physics:-LeviCivita[k, m, n])), Physics:-`*`(psi[j], psi[k])]);](physics/Physics_593.gif)
![Typesetting:-mprintslash([[`+`(`*`(2, `*`(Physics:-KroneckerDelta[j, k]))), Physics:-`*`(psi[j], psi[k])]], [[`+`(`*`(2, `*`(Physics:-KroneckerDelta[j, k]))), Physics:-`*`(psi[j], psi[k])]])](physics/Physics_594.gif)
![Simplify(`*`(Physics:-KroneckerDelta[j, k], `*`(Physics:-`*`(psi[j], psi[k]))));](physics/Physics_595.gif) ,
,  ![`*`(epsilon[j, m, n], `*`(epsilon[k, m, n], `*`(psi[j], `*`(psi[k])))) = 0;](physics/Physics_596.gif) 
  and their su2matrix indices
 and their su2matrix indices  
 ![`*`(sigma[nu][A, B], `*`(sigma[`~nu`][B, A]));](physics/Physics_599.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Psigma[nu][A, B], Physics:-Psigma[`~nu`][B, A])], [Physics:-`*`(Physics:-Psigma[nu][A, B], Physics:-Psigma[`~nu`][B, A])])](physics/Physics_600.gif)
![Library:-PerformMatrixOperations(Physics:-`*`(Physics:-Psigma[nu][A, B], Physics:-Psigma[`~nu`][B, A]));](physics/Physics_601.gif)

![B[mu, a];](physics/Physics_603.gif) where a is a SU2 index (see eq.(12) of sec. 19.4 of ref.[1]). The interaction Lagrangian can be entered as follows:
 where a is a SU2 index (see eq.(12) of sec. 19.4 of ref.[1]). The interaction Lagrangian can be entered as follows: 





![[coordinatesystems = {X}, masslessfields = {B}, quantumoperators = {B}]](physics/Physics_610.gif)
![Define(B[mu, a]);](physics/Physics_611.gif)

![Typesetting:-mprintslash([[B[mu, a], Physics:-Dgamma[mu], Physics:-Psigma[mu], Physics:-d_[mu], Physics:-g_[mu, nu], psi[j], Physics:-LeviCivita[alpha, beta, mu, nu], X[mu]]], [{B[mu, a], Physics:-Dga...](physics/Physics_613.gif)


![F__B[mu, nu, a] := `+`(d_[mu](B[nu, a](X)), `-`(d_[nu](B[mu, a](X))));](physics/Physics_616.gif)

![L := `+`(`*`(`/`(1, 2), `*`(q, `*`(LeviCivita[a, b, c], `*`(F__B[mu, nu, a], `*`(B[mu, b](X), `*`(B[nu, c](X))))))), `*`(`/`(1, 4), `*`(`^`(q, 2), `*`(LeviCivita[a, b, c], `*`(LeviCivita[a, e, f], `*`...](physics/Physics_618.gif)
![L := `+`(`*`(`/`(1, 2), `*`(q, `*`(LeviCivita[a, b, c], `*`(F__B[mu, nu, a], `*`(B[mu, b](X), `*`(B[nu, c](X))))))), `*`(`/`(1, 4), `*`(`^`(q, 2), `*`(LeviCivita[a, b, c], `*`(LeviCivita[a, e, f], `*`...](physics/Physics_619.gif)

 , where S is the Scattering matrix, is given by
, where S is the Scattering matrix, is given by ![FeynmanDiagrams(L, incomingparticles = [B, B], outgoingparticles = [B, B], numberofloops = 0);](physics/Physics_622.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_),...](physics/Physics_623.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_),...](physics/Physics_624.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_),...](physics/Physics_625.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_),...](physics/Physics_626.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_),...](physics/Physics_627.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_),...](physics/Physics_628.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_),...](physics/Physics_629.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_),...](physics/Physics_630.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_),...](physics/Physics_631.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_),...](physics/Physics_632.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_),...](physics/Physics_633.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_),...](physics/Physics_634.gif)
![number_of_factors = nops(`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_), ...](physics/Physics_635.gif)

![codegen:-cost(`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_), `*`(conjuga...](physics/Physics_637.gif)

![Check(`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2_), `*`(conjugate(Physi...](physics/Physics_639.gif)
![`*`(`The repeated indices per term are: `[{`...`}, {`...`}, `...`], `*`(`, the free indices are: `, `*`({`...`})));](physics/Physics_640.gif)


![[13, 13, 13, 8]](physics/Physics_643.gif)
![g[mu, nu];](physics/Physics_644.gif) and the su2 metric
 and the su2 metric ![delta[a, b];](physics/Physics_645.gif) are symmetric, applying simplification in size at the end, resulting in an expression with less repeated indices, and where the indices cannot be simplified furthermore
 are symmetric, applying simplification in size at the end, resulting in an expression with less repeated indices, and where the indices cannot be simplified furthermore ![map(`@`(simplify, Simplify), `+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][alpha, d](P__1_), `*`(Physics:-FeynmanDiagrams:-PolarizationVector[B][beta, g](P__2...](physics/Physics_646.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_647.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_648.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_649.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_650.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_651.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_652.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_653.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_654.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_655.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_656.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_657.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_658.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_659.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_660.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_661.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_662.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_663.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_664.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_665.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_666.gif)
![Typesetting:-mprintslash([`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`...](physics/Physics_667.gif)
![Check(`+`(`/`(`*`(`*`(`/`(1, 8), `*`(I)), `*`(Dirac(`+`(`-`(P__3[sigma]), `-`(P__4[sigma]), P__1[sigma], P__2[sigma])), `*`(`^`(q, 2), `*`(`+`(`*`(`+`(P__1[`~kappa`], P__2[`~kappa`], P__4[`~kappa`]), ...](physics/Physics_668.gif)
![`*`(`The repeated indices per term are: `[{`...`}, {`...`}, `...`], `*`(`, the free indices are: `, `*`({`...`})));](physics/Physics_669.gif)
![[{alpha, beta, chi, d, g, h, kappa, lambda, tau}, {alpha, beta, chi, d, g, h, kappa, lambda, tau}, {alpha, beta, chi, g, h, tau}, {beta, d, g, h}], {}](physics/Physics_670.gif)
![[13, 13, 13, 8];](physics/Physics_671.gif) we now have
 we now have ![map(nops, ([{alpha, beta, chi, d, g, h, kappa, lambda, tau}, {alpha, beta, chi, d, g, h, kappa, lambda, tau}, {alpha, beta, chi, g, h, tau}, {beta, d, g, h}], {})[1]);](physics/Physics_672.gif)
![[9, 9, 6, 4]](physics/Physics_673.gif)
![sigma[mu];](physics/Physics_674.gif) (entered as Psigma[mu]), representing a 4-vector whose components are the three Pauli matrices and the identity 2x2 matrix, could not be changed. Likewise,
 (entered as Psigma[mu]), representing a 4-vector whose components are the three Pauli matrices and the identity 2x2 matrix, could not be changed. Likewise,  (entered as KroneckerDelta[a,b]) could not be used as a tensor, in order to have the possibility of using it as the standard Kronecker delta symbol, equal to 1 when
 (entered as KroneckerDelta[a,b]) could not be used as a tensor, in order to have the possibility of using it as the standard Kronecker delta symbol, equal to 1 when  and equal to 0 otherwise.
 and equal to 0 otherwise. ![sigma[1];](physics/Physics_677.gif) representing the 2x2 identity matrix, not the 1st Pauli matrix; and there was no symbol available to represent the metric in the SU(2), SU(3) or spinor tensor space, where it is actually equal to
 representing the 2x2 identity matrix, not the 1st Pauli matrix; and there was no symbol available to represent the metric in the SU(2), SU(3) or spinor tensor space, where it is actually equal to  , a Kronecker delta. The difference between being or not a metric is that, for a metric, due to Einstein's convention of summing over repeated indices
, a Kronecker delta. The difference between being or not a metric is that, for a metric, due to Einstein's convention of summing over repeated indices  , while for the Kronecker delta symbol,
, while for the Kronecker delta symbol,  
 ![sigma[mu];](physics/Physics_681.gif) as in previous releases), either in the space part of spacetime or in a separate SU(2) space.
as in previous releases), either in the space part of spacetime or in a separate SU(2) space. as in Maple 2019, unless it is indexed with su2indices, su2matrixindices, su3indices, su3matrixindices, spinorindices, or gaugeindices, set as such using Setup, in which case it represents the corresponding metrics
 as in Maple 2019, unless it is indexed with su2indices, su2matrixindices, su3indices, su3matrixindices, spinorindices, or gaugeindices, set as such using Setup, in which case it represents the corresponding metrics 

![[spaceindices = lowercaselatin_is, su2indices = lowercaselatin_ah]](physics/Physics_685.gif)
![g_[];](physics/Physics_686.gif)

![Psigma[];](physics/Physics_688.gif)

![sigma[j];](physics/Physics_690.gif) with j from 1 to 3 are the Pauli matrices
 with j from 1 to 3 are the Pauli matrices 

![sigma[`~mu`];](physics/Physics_693.gif) due to the signature (---+)
due to the signature (---+) ![Psigma[`~`];](physics/Physics_694.gif)





![sigma[mu];](physics/Physics_700.gif) are
 are 











![sigma[mu];](physics/Physics_713.gif) is the 2x2 identity matrix, not
 is the 2x2 identity matrix, not ![sigma[x];](physics/Physics_714.gif) . For example
. For example 
![[signature = `+ - - -`]](physics/Physics_716.gif)
![sigma[1];](physics/Physics_717.gif) is the identity matrix, and the 1st Pauli matrix is given by
 is the identity matrix, and the 1st Pauli matrix is given by ![sigma[2];](physics/Physics_718.gif) 
 ![Psigma[1, matrix];](physics/Physics_719.gif)

![Psigma[2, matrix];](physics/Physics_721.gif)


![[spaceindices = lowercaselatin_is]](physics/Physics_724.gif)
![Define(redo, Psigma[j]);](physics/Physics_725.gif)
![`*`(`Defined Pauli sigma matrices (Psigma): `, `*`(sigma[1], `*`(`^`(`, `, 2), `*`(sigma[2], `*`(sigma[3])))));](physics/Physics_726.gif)


![{Physics:-Dgamma[mu], Physics:-Psigma[j], Physics:-d_[mu], Physics:-g_[mu, nu], Physics:-gamma_[i, j], Physics:-LeviCivita[alpha, beta, mu, nu]}](physics/Physics_729.gif)
![sigma[1];](physics/Physics_730.gif) be
be ![sigma[x];](physics/Physics_731.gif) , the 1st Pauli matrix
, the 1st Pauli matrix ![Psigma[1, matrix];](physics/Physics_732.gif)

![gamma[i, j];](physics/Physics_734.gif) instead of the 4D metric
 instead of the 4D metric ![g[mu, nu];](physics/Physics_735.gif) 
 

![gamma_[definition];](physics/Physics_738.gif)
![Physics:-gamma_[i, j] = `+`(`-`(Physics:-g_[i, j]), `/`(`*`(Physics:-g_[0, i], `*`(Physics:-g_[0, j])), `*`(Physics:-g_[0, 0])))](physics/Physics_739.gif)
![gamma_[];](physics/Physics_740.gif)

![gamma_[`~`];](physics/Physics_742.gif)

![TensorArray([%Commutator(Physics:-Psigma[i], Physics:-Psigma[j]) = `*`(`*`(2, `*`(I)), `*`(Physics:-LeviCivita[i, j, `~k`], `*`(Physics:-Psigma[k]))), %AntiCommutator(Physics:-Psigma[i], Physics:-Psig...](physics/Physics_744.gif)


![[su2indices = lowercaselatin_ah]](physics/Physics_747.gif)
![Define(redo, Psigma[a]);](physics/Physics_748.gif)

![{Physics:-Dgamma[mu], Physics:-Psigma[a], Physics:-d_[mu], Physics:-g_[mu, nu], Physics:-gamma_[i, j], Physics:-LeviCivita[alpha, beta, mu, nu]}](physics/Physics_750.gif)


![TensorArray([%Commutator(Physics:-Psigma[a], Physics:-Psigma[b]) = `*`(`*`(2, `*`(I)), `*`(Physics:-LeviCivita[a, b, c], `*`(Physics:-Psigma[c]))), %AntiCommutator(Physics:-Psigma[a], Physics:-Psigma[...](physics/Physics_753.gif)



 , equal to 1 when
, equal to 1 when  and equal to 0 otherwise.
 and equal to 0 otherwise. and
 and  should be set as indices of the corresponding space), in which case
 should be set as indices of the corresponding space), in which case  .
.
![[spinorindices = lowercaselatin_is, su2indices = lowercaselatin_ah, su3indices = uppercaselatin]](physics/Physics_763.gif)
 ) only when it is indexed with indices of spinor, su2, su2matrix, su3, su3matrix, or gauge indices.
) only when it is indexed with indices of spinor, su2, su2matrix, su3, su3matrix, or gauge indices. ![%KroneckerDelta[Mu, Mu] = KroneckerDelta[Mu, Mu];](physics/Physics_765.gif)
![%KroneckerDelta[Mu, Mu] = 1](physics/Physics_766.gif)
![%KroneckerDelta[mu, mu] = KroneckerDelta[mu, mu];](physics/Physics_767.gif)
![%KroneckerDelta[mu, mu] = 1](physics/Physics_768.gif)
![%KroneckerDelta[a, a] = KroneckerDelta[a, a];](physics/Physics_769.gif)
![%KroneckerDelta[a, a] = 3](physics/Physics_770.gif)
![%KroneckerDelta[j, j] = KroneckerDelta[j, j];](physics/Physics_771.gif)
![%KroneckerDelta[j, j] = 4](physics/Physics_772.gif)
 .
. ![%KroneckerDelta[A, A] = KroneckerDelta[A, A];](physics/Physics_774.gif)
![%KroneckerDelta[A, A] = 8](physics/Physics_775.gif)

![[gaugeindices = uppercasegreek]](physics/Physics_777.gif)
![%KroneckerDelta[Mu, Mu] = KroneckerDelta[Mu, Mu];](physics/Physics_778.gif)
![%KroneckerDelta[Mu, Mu] = Physics:-KroneckerDelta[Mu, Mu]](physics/Physics_779.gif)
![Define(W[Alpha]);](physics/Physics_780.gif)

![{Physics:-Dgamma[mu], Physics:-Psigma[mu], W[Alpha], Physics:-d_[mu], Physics:-g_[mu, nu], Physics:-LeviCivita[alpha, beta, mu, nu]}](physics/Physics_782.gif)
![`*`(KroneckerDelta[Alpha, Beta], `*`(W[Alpha]));](physics/Physics_783.gif)
![`*`(Physics:-KroneckerDelta[Alpha, Beta], `*`(W[Alpha]))](physics/Physics_784.gif)
![Simplify(`*`(Physics:-KroneckerDelta[Alpha, Beta], `*`(W[Alpha])));](physics/Physics_785.gif)
![W[Beta]](physics/Physics_786.gif)
![`*`(LeviCivita[Alpha, Beta, Gamma], `*`(W[Alpha], `*`(W[Beta])));](physics/Physics_787.gif)
![`*`(Physics:-LeviCivita[Alpha, Beta, Gamma], `*`(W[Alpha], `*`(W[Beta])))](physics/Physics_788.gif)
![Simplify(`*`(Physics:-LeviCivita[Alpha, Beta, Gamma], `*`(W[Alpha], `*`(W[Beta]))));](physics/Physics_789.gif)





![Define(A[mu]);](physics/Physics_795.gif)

![Typesetting:-mprintslash([[A[mu], Physics:-Dgamma[mu], Physics:-Psigma[mu], Physics:-d_[mu], Physics:-g_[mu, nu], Physics:-LeviCivita[alpha, beta, mu, nu], X[mu]]], [{A[mu], Physics:-Dgamma[mu], Physi...](physics/Physics_797.gif)
![F[mu, nu] = `+`(d_[mu](A[nu](X)), `-`(d_[nu](A[mu](X))));](physics/Physics_798.gif)
![Typesetting:-mprintslash([F[mu, nu] = `+`(Physics:-d_[mu](A[nu](X), [X]), `-`(Physics:-d_[nu](A[mu](X), [X])))], [F[mu, nu] = `+`(Physics:-d_[mu](A[nu](X), [X]), `-`(Physics:-d_[nu](A[mu](X), [X])))])](physics/Physics_799.gif)
![Define(F[mu, nu] = `+`(Physics:-d_[mu](A[nu](X), [X]), `-`(Physics:-d_[nu](A[mu](X), [X]))));](physics/Physics_800.gif)

![Typesetting:-mprintslash([[A[mu], Physics:-Dgamma[mu], F[mu, nu], Physics:-Psigma[mu], Physics:-d_[mu], Physics:-g_[mu, nu], Physics:-LeviCivita[alpha, beta, mu, nu], X[mu]]], [{A[mu], Physics:-Dgamma...](physics/Physics_802.gif)
![Library:-GetTensorSymmetryProperties(F[mu, nu]);](physics/Physics_803.gif)
![{}, {[1, 2]}](physics/Physics_804.gif)
![F[mu, mu];](physics/Physics_805.gif)

)); 1](physics/Physics_807.gif)
, [X]), [X])], [Physics:-d_[mu](Physics:-d_[nu](A[rho](X), [X]), [X])])](physics/Physics_808.gif)
, [X]), [X]));](physics/Physics_809.gif)
![{[1, 2]}, {}](physics/Physics_810.gif)




![[anticommutativeprefix = {Q}, coordinatesystems = {X, Y}, quantumoperators = {A, Q}, spinorindices = lowercaselatin]](physics/Physics_815.gif)
![Q[a];](physics/Physics_816.gif) are now recognized as the components of a Dirac Spinor using the new
 are now recognized as the components of a Dirac Spinor using the new  type: any anticommutative object indexed with spinorindices is considered a Dirac spinor
 type: any anticommutative object indexed with spinorindices is considered a Dirac spinor ![type(Q[a], Library:-PhysicsType:-DiracSpinor);](physics/Physics_818.gif)

, Q[b](Y));](physics/Physics_820.gif)

), Dagger(Q[b](Y)));](physics/Physics_822.gif)

, 2)), A[nu](Y));](physics/Physics_824.gif)

![Define(W[mu, a]);](physics/Physics_826.gif)

![Typesetting:-mprintslash([[A[mu], Physics:-Dgamma[mu], F[mu, nu], Physics:-Psigma[mu], Q[a], W[mu, a], Physics:-d_[mu], Physics:-g_[mu, nu], Physics:-LeviCivita[alpha, beta, mu, nu], X[mu], Y[mu]]], [...](physics/Physics_828.gif)
 ≡
 ≡ and the spinor metric
 and the spinor metric ![delta[a, b];](physics/Physics_831.gif) represented by KroneckerDelta:
 represented by KroneckerDelta: , W[beta, b](Y));](physics/Physics_832.gif)

![(%diff = diff)(W[alpha, a], W[beta, b]);](physics/Physics_834.gif)

![Define(T[mu, i, j]);](physics/Physics_836.gif)

![Typesetting:-mprintslash([[A[mu], Physics:-Dgamma[mu], F[mu, nu], Physics:-Psigma[mu], Q[a], T[mu, i, j], W[mu, a], Physics:-d_[mu], Physics:-g_[mu, nu], Physics:-LeviCivita[alpha, beta, mu, nu], X[mu...](physics/Physics_838.gif)
![Dgamma[`~alpha`][`~k`, m];](physics/Physics_839.gif)
![Physics:-Dgamma[`~alpha`][`~k`, m]](physics/Physics_840.gif)
![SubstituteTensor(gamma[mu][i, j] = T[mu, i, j], Physics:-Dgamma[`~alpha`][`~k`, m]);](physics/Physics_841.gif)
![T[`~alpha`, `~k`, m]](physics/Physics_842.gif)
![`*`(`�`, `*`(SubstituteTensor(Dgamma[mu][i, j] = 1, Dgamma[`~alpha`][`~k`, m])));](physics/Physics_843.gif)
![SubstituteTensor(Dgamma[mu][i, j] = 1, Dgamma[`~alpha`][`~k`, m], disregardfreeindices); 1](physics/Physics_844.gif)

![Define(B[mu, nu]);](physics/Physics_846.gif)

![Typesetting:-mprintslash([[A[mu], B[mu, nu], Physics:-Dgamma[mu], F[mu, nu], Physics:-Psigma[mu], Q[a], T[mu, i, j], W[mu, a], Physics:-d_[mu], Physics:-g_[mu, nu], Physics:-LeviCivita[alpha, beta, mu...](physics/Physics_848.gif)
![B[trace] = B[mu, mu];](physics/Physics_849.gif)
![B[trace] = B[mu, `~mu`]](physics/Physics_850.gif)
![SumOverRepeatedIndices(B[trace] = B[mu, `~mu`]);](physics/Physics_851.gif)
![`+`(B[1, `~1`], B[2, `~2`], B[3, `~3`], B[4, `~4`]) = `+`(B[1, `~1`], B[2, `~2`], B[3, `~3`], B[4, `~4`])](physics/Physics_852.gif)
![TensorArray(`*`(B[mu, alpha], `*`(B[nu, alpha])), performsum = false);](physics/Physics_853.gif)


![TensorArray(`*`(B[mu, alpha], `*`(B[nu, alpha])), performsumoverrepeatedindices = false, output = setofequations);](physics/Physics_856.gif)
![{`*`(B[1, alpha], `*`(B[1, `~alpha`])) = 0, `*`(B[1, alpha], `*`(B[2, `~alpha`])) = 0, `*`(B[1, alpha], `*`(B[3, `~alpha`])) = 0, `*`(B[1, alpha], `*`(B[4, `~alpha`])) = 0, `*`(B[2, alpha], `*`(B[1, `...](physics/Physics_857.gif)
![{`*`(B[1, alpha], `*`(B[1, `~alpha`])) = 0, `*`(B[1, alpha], `*`(B[2, `~alpha`])) = 0, `*`(B[1, alpha], `*`(B[3, `~alpha`])) = 0, `*`(B[1, alpha], `*`(B[4, `~alpha`])) = 0, `*`(B[2, alpha], `*`(B[1, `...](physics/Physics_858.gif)
![Q[a];](physics/Physics_859.gif) are now recognized as the components of a Dirac Spinor using the new
 are now recognized as the components of a Dirac Spinor using the new  type: any anticommutative object indexed with spinorindices is considered a Dirac spinor
 type: any anticommutative object indexed with spinorindices is considered a Dirac spinor ![type(Q[a], Library:-PhysicsType:-DiracSpinor);](physics/Physics_861.gif)

![g_[arbitrary];](physics/Physics_863.gif)

![g_[determinant];](physics/Physics_865.gif)




![%g_[determinant];](physics/Physics_870.gif)

![value(%g_[determinant]);](physics/Physics_872.gif)



