 
													Maple
Logiciel de mathématiques puissant facile à utiliser
• Maple Académique • Maple Edition Étudiant • Maple Learn • Maple Calculator App • Maple pour l’industrie et le gouvernement • Edition personnelle Maple 
													
													Add-ons Maple
• E-Books & Guides d'étude • Boîte à outils et add-ons Maple • MapleNet • Maple Player gratuit 
                                                    Student Success Platform
Améliorer les taux de retention
Maple Flow
Engineering calculations & documentation
• Maple Flow • Maple Flow Migration Assistant 
                                                    
 
                             
													  
													  
                                                     
                                                     
													 
                            
 and
 and  are quantum operators and
 are quantum operators and  are, respectively, their eigenkets. The following works since the introduction of the Physics package in Maple
 are, respectively, their eigenkets. The following works since the introduction of the Physics package in Maple 



![[quantumoperators = {A, B}]](Physics/Physics_8.gif)

![Typesetting:-mprintslash([Physics:-`*`(A, Physics:-Ket(A, alpha)) = `*`(alpha, `*`(Physics:-Ket(A, alpha)))], [Physics:-`*`(A, Physics:-Ket(A, alpha)) = `*`(alpha, `*`(Physics:-Ket(A, alpha)))])](Physics/Physics_10.gif)

![Typesetting:-mprintslash([Physics:-`*`(B, Physics:-Ket(B, beta)) = `*`(beta, `*`(Physics:-Ket(B, beta)))], [Physics:-`*`(B, Physics:-Ket(B, beta)) = `*`(beta, `*`(Physics:-Ket(B, beta)))])](Physics/Physics_12.gif)
 and
 and  act on different, disjointed, Hilbert spaces.
 act on different, disjointed, Hilbert spaces.  , is introduced. With it you can indicate the quantum operators that act on a Hilbert space, say as in
, is introduced. With it you can indicate the quantum operators that act on a Hilbert space, say as in  with the meaning that the operator
 with the meaning that the operator  acts on one Hilbert space while
 acts on one Hilbert space while  acts on another one.
 acts on another one.   , automatically,
, automatically,  become quantum operators satisfying (see comment (ii) on page 156 of ref.[1])
 become quantum operators satisfying (see comment (ii) on page 156 of ref.[1])  
  
   
   
  
  
  instead of
 instead of  , and
, and  instead of
 instead of  . The product of an operator
. The product of an operator  of one space and a Ket of another space
 of one space and a Ket of another space  however, is displayed
 however, is displayed 
 , without ⊗.
, without ⊗. ,
, 
 
    
  and
 and  is consistent with
 is consistent with  , see footnote on page 154 of ref. [1].
, see footnote on page 154 of ref. [1].  acting on it and the other has operators
 acting on it and the other has operators  then a product of contiguous eigenkets of these operators is sorted as
 then a product of contiguous eigenkets of these operators is sorted as  
  is sorted before
 is sorted before  ) and within a subspace, the Kets are also sorted alphabetically (so
) and within a subspace, the Kets are also sorted alphabetically (so  before
 before  , then in the second subspace
, then in the second subspace  before
 before  ).
).  the standard convention for tensor products is to preserve the order, as in
 the standard convention for tensor products is to preserve the order, as in  representing an exception to the “reverse the order†rule of the Dagger operation. This is conventional, in that Kets and Bras belonging to disjointed spaces actually commute. This convention, however is notationally important for two reasons
representing an exception to the “reverse the order†rule of the Dagger operation. This is conventional, in that Kets and Bras belonging to disjointed spaces actually commute. This convention, however is notationally important for two reasons  , and
, and  as
as  , that is, preserving the order of the quantum numbers, the first index refers to the first Hilbert subspace and the second index to the other one, in both the Ket and the Bra (its Dagger). So, when these multi-index Kets can be expressed as tensor products, the ordering of the Hilbert subspaces is preserved.
, that is, preserving the order of the quantum numbers, the first index refers to the first Hilbert subspace and the second index to the other one, in both the Ket and the Bra (its Dagger). So, when these multi-index Kets can be expressed as tensor products, the ordering of the Hilbert subspaces is preserved.
 
  and
 and  , we would have
, we would have   
  
  
  acting on one of them and
 acting on one of them and  on the other one (you can think of
 on the other one (you can think of   )
) 
![[disjointedspaces = {{A, C}, {B, C}}]](Physics/Physics_65.gif)
 
 
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Ket(A, 1), Physics:-Ket(B, 0))], [Physics:-`*`(Physics:-Ket(A, 1), Physics:-Ket(B, 0))])](Physics/Physics_68.gif)


![Typesetting:-mprintslash([Physics:-`*`(Physics:-Ket(A, 1), Physics:-Ket(B, 0), Physics:-Bra(A, 1), Physics:-Bra(B, 0))], [Physics:-`*`(Physics:-Ket(A, 1), Physics:-Ket(B, 0), Physics:-Bra(A, 1), Physi...](Physics/Physics_71.gif)
 instead of the projector sorting style of
 instead of the projector sorting style of  . Both reorderings of Kets and Bras are mathematically equal.
. Both reorderings of Kets and Bras are mathematically equal. 


![[hideketlabel = true]](Physics/Physics_77.gif)
 is now
 is now 
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Ket(A, 1), Physics:-Ket(B, 0), Physics:-Bra(A, 1), Physics:-Bra(B, 0))], [Physics:-`*`(Physics:-Ket(A, 1), Physics:-Ket(B, 0), Physics:-Bra(A, 1), Physi...](Physics/Physics_80.gif)
 is thus
 is thus  
 
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Ket(A, 1), Physics:-Ket(B, 0), Physics:-Bra(A, 1), Physics:-Bra(B, 0))], [Physics:-`*`(Physics:-Ket(A, 1), Physics:-Ket(B, 0), Physics:-Bra(A, 1), Physi...](Physics/Physics_84.gif)

![Typesetting:-mprintslash([Physics:-`*`(A, Physics:-Ket(A, 1)) = Physics:-Ket(A, 1)], [Physics:-`*`(A, Physics:-Ket(A, 1)) = Physics:-Ket(A, 1)])](Physics/Physics_86.gif)

![Typesetting:-mprintslash([Physics:-`*`(A, Physics:-Ket(A, 0)) = 0], [Physics:-`*`(A, Physics:-Ket(A, 0)) = 0])](Physics/Physics_88.gif)

![Typesetting:-mprintslash([Physics:-`*`(A, B)], [Physics:-`*`(A, B)])](Physics/Physics_90.gif)

![Typesetting:-mprintslash([Physics:-`*`(A, B, Physics:-Ket(A, 1), Physics:-Ket(B, 0), Physics:-Bra(A, 1), Physics:-Bra(B, 0))], [Physics:-`*`(A, B, Physics:-Ket(A, 1), Physics:-Ket(B, 0), Physics:-Bra(...](Physics/Physics_92.gif)

![Typesetting:-mprintslash([Physics:-`*`(A, Physics:-Ket(A, 1), B, Physics:-Ket(B, 0), Physics:-Bra(A, 1), Physics:-Bra(B, 0))], [Physics:-`*`(A, Physics:-Ket(A, 1), B, Physics:-Ket(B, 0), Physics:-Bra(...](Physics/Physics_94.gif)

![Typesetting:-mprintslash([`.`(Physics:-`*`(A, B), Physics:-`*`(Physics:-Ket(A, 1), Physics:-Ket(B, 0), Physics:-Bra(A, 1), Physics:-Bra(B, 0)))], [Typesetting:-delayDotProduct(Physics:-`*`(A, B), Phys...](Physics/Physics_96.gif)
 , and that
, and that  

 we have
 we have 


![[hideketlabel = false]](Physics/Physics_104.gif)











![[quantumoperators = {A, B, C, E}]](Physics/Physics_116.gif)





![[coordinatesystems = {X}, dimension = 3, quantumoperators = {A, B, C, E, x, y, z}, signature = `+ + +`]](Physics/Physics_122.gif)





![[quantumoperators = {A, B, C, E}]](Physics/Physics_128.gif)



![[hideketlabel = false]](Physics/Physics_132.gif)

![Typesetting:-mprintslash([Physics:-`*`(Physics:-Ket(A, n), Physics:-Ket(B, m)) = Physics:-`*`(Physics:-Ket(B, m), Physics:-Ket(A, n))], [Physics:-`*`(Physics:-Ket(A, n), Physics:-Ket(B, m)) = Physics:...](Physics/Physics_134.gif)

![Typesetting:-mprintslash([Physics:-`*`(Physics:-Ket(A, n), Physics:-Ket(B, m)) = Physics:-`*`(Physics:-Ket(A, n), Physics:-Ket(B, m))], [Physics:-`*`(Physics:-Ket(A, n), Physics:-Ket(B, m)) = Physics:...](Physics/Physics_136.gif)

![Typesetting:-mprintslash([`.`(Physics:-Ket(A, n), Physics:-Ket(B, m)) = `.`(Physics:-Ket(B, m), Physics:-Ket(A, n))], [Typesetting:-delayDotProduct(Physics:-Ket(A, n), Physics:-Ket(B, m)) = Typesettin...](Physics/Physics_138.gif)

![Typesetting:-mprintslash([Physics:-`*`(Physics:-Ket(A, n), Physics:-Ket(B, m)) = Physics:-`*`(Physics:-Ket(A, n), Physics:-Ket(B, m))], [Physics:-`*`(Physics:-Ket(A, n), Physics:-Ket(B, m)) = Physics:...](Physics/Physics_140.gif)

![Typesetting:-mprintslash([Physics:-`*`(Physics:-Bra(A, n), Physics:-Ket(B, n)) = Physics:-`*`(Physics:-Ket(B, n), Physics:-Bra(A, n))], [Physics:-`*`(Physics:-Bra(A, n), Physics:-Ket(B, n)) = Physics:...](Physics/Physics_142.gif)

![Typesetting:-mprintslash([Physics:-`*`(Physics:-Ket(B, n), Physics:-Bra(A, n)) = Physics:-`*`(Physics:-Ket(B, n), Physics:-Bra(A, n))], [Physics:-`*`(Physics:-Ket(B, n), Physics:-Bra(A, n)) = Physics:...](Physics/Physics_144.gif)
 is not a "scalar product", but an operator in the tensor product of spaces, since
is not a "scalar product", but an operator in the tensor product of spaces, since  and
 and  belong to different disjointed spaces.
 belong to different disjointed spaces. 
![Typesetting:-mprintslash([Physics:-`*`(A, Physics:-Ket(B, n)) = Physics:-`*`(Physics:-Ket(B, n), A)], [Physics:-`*`(A, Physics:-Ket(B, n)) = Physics:-`*`(Physics:-Ket(B, n), A)])](Physics/Physics_149.gif)

![Typesetting:-mprintslash([Physics:-`*`(Physics:-Ket(B, n), A) = Physics:-`*`(Physics:-Ket(B, n), A)], [Physics:-`*`(Physics:-Ket(B, n), A) = Physics:-`*`(Physics:-Ket(B, n), A)])](Physics/Physics_151.gif)
 is not interpreted as contraction between an operator and Ket, but as the product of
 is not interpreted as contraction between an operator and Ket, but as the product of ![A = `*`(A, `*`(`𝕀`[B]))](Physics/Physics_153.gif) acting on
 acting on  where
 where ![`𝕀`[B]](Physics/Physics_155.gif) is the identity (projector) onto the
 is the identity (projector) onto the  space. That is, an operator of one disjointed space acts transparently over a Bra or a Ket of a different disjointed space. The same happens with
 space. That is, an operator of one disjointed space acts transparently over a Bra or a Ket of a different disjointed space. The same happens with  just that, while
 just that, while  moves to the right, jumping over a Bra or Ket (see
 moves to the right, jumping over a Bra or Ket (see  ),
),  moves to the left:
 moves to the left: 




![Typesetting:-mprintslash([Physics:-`*`(A, B)], [Physics:-`*`(A, B)])](Physics/Physics_166.gif)





![[disjointedspaces = {{A, C}, {B, C}}]](Physics/Physics_172.gif)
 acts on the tensor product of the spaces where
 acts on the tensor product of the spaces where  and
 and  act. A state of
 act. A state of  can then always be written as
 can then always be written as ![Ket(C, m, n) = Sum(Sum(`*`(M[j, p], `*`(Ket(A, j), `*`(Ket(B, p)))), j), p)](Physics/Physics_177.gif)
![Typesetting:-mprintslash([Physics:-Ket(C, m, n) = Sum(Sum(`*`(M[j, p], `*`(Physics:-`*`(Physics:-Ket(A, j), Physics:-Ket(B, p)))), j), p)], [Physics:-Ket(C, m, n) = Sum(Sum(`*`(M[j, p], `*`(Physics:-`...](Physics/Physics_178.gif)
![M[j, p]](Physics/Physics_179.gif) is a matrix of complex coefficients. Bra states of
 is a matrix of complex coefficients. Bra states of  are formed as usual taking the Dagger
 are formed as usual taking the Dagger ![Dagger(Physics:-Ket(C, m, n) = Sum(Sum(`*`(M[j, p], `*`(Physics:-`*`(Physics:-Ket(A, j), Physics:-Ket(B, p)))), j), p))](Physics/Physics_181.gif)
![Typesetting:-mprintslash([Physics:-Bra(C, m, n) = Sum(Sum(`*`(conjugate(M[j, p]), `*`(Physics:-`*`(Physics:-Bra(A, j), Physics:-Bra(B, p)))), j), p)], [Physics:-Bra(C, m, n) = Sum(Sum(`*`(conjugate(M[...](Physics/Physics_182.gif)
 that can be written exactly as
 that can be written exactly as  , that is, the product of an arbitrary state of the subspace A and another of the subspace B, are product states, and all the other ones are entangled states. Entanglement is a property that is independent of the basis
, that is, the product of an arbitrary state of the subspace A and another of the subspace B, are product states, and all the other ones are entangled states. Entanglement is a property that is independent of the basis  used in
used in ![Ket(C, m, n) = Sum(Sum(`*`(M[j, p], `*`(Ket(A, j), `*`(Ket(B, p)))), j), p)](Physics/Physics_186.gif) .
. 
 while those for the subsystem B by
while those for the subsystem B by  . When the system is in an entangled state one typically cannot assign definite properties to the individual subsystems A or B, each subsystem has no independent reality.
. When the system is in an entangled state one typically cannot assign definite properties to the individual subsystems A or B, each subsystem has no independent reality.
 is entangled it then suffices to check the rank R of the matrix
 is entangled it then suffices to check the rank R of the matrix ![M[j, p]](Physics/Physics_190.gif) : when
 : when  the state is a product state, otherwise it is an entangled state. When the state being analyzed belongs to the tensor product of two subspaces,
 the state is a product state, otherwise it is an entangled state. When the state being analyzed belongs to the tensor product of two subspaces,  is equivalent to having the determinant of
 is equivalent to having the determinant of ![M[j, p]](Physics/Physics_193.gif) equal to 0. The condition
 equal to 0. The condition  , however, is more general, and suffices to determine whether a state is a product state also on a Hilbert space that is the tensor product of three or more subspaces:
, however, is more general, and suffices to determine whether a state is a product state also on a Hilbert space that is the tensor product of three or more subspaces: ![`ℋ` = `⊗`(`⊗`(diff(`ℋ`(x), x), diff(`ℋ`(x), x, x)), diff(`ℋ`(x), x, x, x)) .. diff(`ℋ`(x), [`$`(x, n)])](Physics/Physics_195.gif) , in which case the matrix M will have more rows and columns and a determinant equal to 0 would only warrant the possibility of factorizing one Ket.
, in which case the matrix M will have more rows and columns and a determinant equal to 0 would only warrant the possibility of factorizing one Ket. , and let
, and let  act upon another, disjointed, Hilbert space that is a replica of the Hilbert space on which
 act upon another, disjointed, Hilbert space that is a replica of the Hilbert space on which  acts. Set the dimensions of
 acts. Set the dimensions of  ,
,  and
 and  respectively equal to 2, 2 and 2x2
 respectively equal to 2, 2 and 2x2  ![Setup(quantumbasisdimension = {A = 2, B = 2, C[1] = 2, C[2] = 2})](Physics/Physics_202.gif)
![[quantumbasisdimension = {A = 2, B = 2, C[1] = 2, C[2] = 2}]](Physics/Physics_203.gif)
 , by taking their tensor products:
, by taking their tensor products: 





![[quantumoperators = {`ℬ`, A, B, C, E}]](Physics/Physics_211.gif)

![Typesetting:-mprintslash([Physics:-Ket(`ℬ`, 0) = `/`(`*`(`+`(Physics:-`*`(Physics:-Ket(A, 0), Physics:-Ket(B, 0)), Physics:-`*`(Physics:-Ket(A, 1), Physics:-Ket(B, 1)))), `*`(sqrt(2)))], [Physics...](Physics/Physics_213.gif)

![Typesetting:-mprintslash([Physics:-Ket(`ℬ`, 1) = `/`(`*`(`+`(Physics:-`*`(Physics:-Ket(A, 0), Physics:-Ket(B, 1)), Physics:-`*`(Physics:-Ket(A, 1), Physics:-Ket(B, 0)))), `*`(sqrt(2)))], [Physics...](Physics/Physics_215.gif)



![Typesetting:-mprintslash([Physics:-Ket(`ℬ`, 3) = `/`(`*`(`+`(Physics:-`*`(Physics:-Ket(A, 0), Physics:-Ket(B, 0)), `-`(Physics:-`*`(Physics:-Ket(A, 1), Physics:-Ket(B, 1))))), `*`(sqrt(2)))], [Ph...](Physics/Physics_219.gif)










 using the Pauli matrices
 using the Pauli matrices ![sigma[j]](Physics/Physics_231.gif) . For that purpose, using a Vector representation for
. For that purpose, using a Vector representation for  ,
,  ![Ket(B, 0) = Vector([1, 0]), Ket(B, 1) = Vector([0, 1])](Physics/Physics_233.gif)

 by each of the
by each of the ![sigma[j]](Physics/Physics_236.gif) Pauli matrices and performing the matrix operations we have
 Pauli matrices and performing the matrix operations we have 



![sigma[1]](Physics/Physics_241.gif) and
 and ![sigma[2]](Physics/Physics_242.gif) flip the state, transforming
 flip the state, transforming  into
 into  ,
, ![sigma[2]](Physics/Physics_245.gif) also multiplies by the imaginary unit
 also multiplies by the imaginary unit  , while
, while ![sigma[3]](Physics/Physics_247.gif) leaves the state
 leaves the state  unchanged.
unchanged.   the Vector representations shown in
 the Vector representations shown in ![Ket(B, 0) = Vector([1, 0]), Ket(B, 1) = Vector([0, 1])](Physics/Physics_250.gif) . For that purpose, create a list of substitution equations
. For that purpose, create a list of substitution equations 

![sigma[j]](Physics/Physics_253.gif) in
 in  is then given by
is then given by 
![Typesetting:-mprintslash([[Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 0)) = Physics:-Ket(B, 1), Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(B, 0)) = `*`(I, `*`(Physics:-Ket(B, 1))), Physics:-`...](Physics/Physics_256.gif)
 , performing the same steps, the action of the Pauli matrices on it is
, performing the same steps, the action of the Pauli matrices on it is 




![Typesetting:-mprintslash([[Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 1)) = Physics:-Ket(B, 0), Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(B, 1)) = `+`(`-`(`*`(`+`(I), `*`(Physics:-Ket(B, 0))...](Physics/Physics_263.gif)
 and
 and  , indicate to the system that the Pauli matrices operate in the subspace where
, indicate to the system that the Pauli matrices operate in the subspace where  operates
 operates 


![[disjointedspaces = {{A, C}, {B, C, Physics:-Psigma}}]](Physics/Physics_270.gif)
 given in
 given in  by each of the three
 by each of the three ![sigma[j]](Physics/Physics_273.gif) we get the other three Bell states
 we get the other three Bell states 

![`*`(Psigma[1], `*`(Physics:-Ket(`ℬ`, 0))) = `+`(`*`(`/`(1, 2), `*`(Psigma[1], `*`(`^`(2, `/`(1, 2)), `*`(`+`(Physics:-`*`(Physics:-Ket(A, 0), Physics:-Ket(B, 0)), Physics:-`*`(Physics:-Ket(A, 1),...](Physics/Physics_276.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(`ℬ`, 0)) = `+`(`*`(`/`(1, 2), `*`(`^`(2, `/`(1, 2)), `*`(Physics:-`*`(Physics:-Psigma[1], `+`(Physics:-`*`(Physics:-Ket(A, ...](Physics/Physics_277.gif)
 and
 and  
 ![[Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 0)) = Physics:-Ket(B, 1), Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(B, 0)) = `*`(I, `*`(Physics:-Ket(B, 1))), Physics:-`*`(Physics:-Psigma[3], Phy...](Physics/Physics_280.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 0)) = Physics:-Ket(B, 1), Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 1)) = Physics:-Ket(B, 0)], [Physics:-`*`(Physics:-...](Physics/Physics_281.gif)
![map(rhs = lhs, [Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 0)) = Physics:-Ket(B, 1), Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 1)) = Physics:-Ket(B, 0)])](Physics/Physics_282.gif)
![Typesetting:-mprintslash([[Physics:-Ket(B, 1) = Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 0)), Physics:-Ket(B, 0) = Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 1))]], [[Physics:-Ket(B, 1) ...](Physics/Physics_283.gif)
![subs([Physics:-Ket(B, 1) = Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 0)), Physics:-Ket(B, 0) = Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 1))], Physics:-`*`(Physics:-Psigma[1], Physics:-K...](Physics/Physics_284.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(`ℬ`, 0)) = `+`(`*`(`/`(1, 2), `*`(`^`(2, `/`(1, 2)), `*`(Physics:-`*`(Physics:-Psigma[1], `+`(Physics:-`*`(Physics:-Ket(A, ...](Physics/Physics_285.gif)
![factor(Simplify(Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(`ℬ`, 0)) = `+`(`*`(`/`(1, 2), `*`(`^`(2, `/`(1, 2)), `*`(Physics:-`*`(Physics:-Psigma[1], `+`(Physics:-`*`(Physics:-Ket(A, 0), Physic...](Physics/Physics_286.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(`ℬ`, 0)) = `+`(`*`(`/`(1, 2), `*`(`^`(2, `/`(1, 2)), `*`(`+`(Physics:-`*`(Physics:-Ket(A, 0), Physics:-Ket(B, 1)), Physics:...](Physics/Physics_287.gif)
 defined in
 defined in  
 

![`+`(Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(`ℬ`, 0)), `-`(Physics:-Ket(`ℬ`, 1))) = 0](Physics/Physics_292.gif)
![Typesetting:-mprintslash([`+`(Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(`ℬ`, 0)), `-`(Physics:-Ket(`ℬ`, 1))) = 0], [`+`(Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(`ℬ`, 0)), `-`(P...](Physics/Physics_293.gif)
![sigma[2]](Physics/Physics_294.gif) and substituting
 and substituting  using the
 using the  equations of
 equations of  and
 and  we get
 we get  
 ![`*`(Psigma[2], `*`(Physics:-Ket(`ℬ`, 0))) = `+`(`*`(`/`(1, 2), `*`(Psigma[2], `*`(`^`(2, `/`(1, 2)), `*`(`+`(Physics:-`*`(Physics:-Ket(A, 0), Physics:-Ket(B, 0)), Physics:-`*`(Physics:-Ket(A, 1),...](Physics/Physics_300.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(`ℬ`, 0)) = `+`(`*`(`/`(1, 2), `*`(`^`(2, `/`(1, 2)), `*`(Physics:-`*`(Physics:-Psigma[2], `+`(Physics:-`*`(Physics:-Ket(A, ...](Physics/Physics_301.gif)
![[Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 0)) = Physics:-Ket(B, 1), Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(B, 0)) = `*`(I, `*`(Physics:-Ket(B, 1))), Physics:-`*`(Physics:-Psigma[3], Phy...](Physics/Physics_302.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(B, 0)) = `*`(I, `*`(Physics:-Ket(B, 1))), Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(B, 1)) = `+`(`-`(`*`(`+`(I), `*`(Physics...](Physics/Physics_303.gif)
![zip(isolate, [Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(B, 0)) = `*`(I, `*`(Physics:-Ket(B, 1))), Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(B, 1)) = `+`(`-`(`*`(`+`(I), `*`(Physics:-Ket(B, 0))...](Physics/Physics_304.gif)
![Typesetting:-mprintslash([[Physics:-Ket(B, 1) = `+`(`-`(`*`(`+`(I), `*`(Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(B, 0)))))), Physics:-Ket(B, 0) = `*`(I, `*`(Physics:-`*`(Physics:-Psigma[2], Physi...](Physics/Physics_305.gif)
![factor(Simplify(subs([Physics:-Ket(B, 1) = `+`(`-`(`*`(`+`(I), `*`(Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(B, 0)))))), Physics:-Ket(B, 0) = `*`(I, `*`(Physics:-`*`(Physics:-Psigma[2], Physics:-K...](Physics/Physics_306.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(`ℬ`, 0)) = `+`(`-`(`*`(`+`(`*`(`/`(1, 2), `*`(I))), `*`(`^`(2, `/`(1, 2)), `*`(`+`(`-`(Physics:-`*`(Physics:-Ket(A, 0), Phy...](Physics/Physics_307.gif)
 defined in
 defined in  
 

![Expand(`+`(Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(`ℬ`, 0)) = `+`(`-`(`*`(`+`(`*`(`/`(1, 2), `*`(I))), `*`(`^`(2, `/`(1, 2)), `*`(`+`(`-`(Physics:-`*`(Physics:-Ket(A, 0), Physics:-Ket(B, 1)...](Physics/Physics_312.gif)
![Typesetting:-mprintslash([`+`(Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(`ℬ`, 0)), `-`(Physics:-Ket(`ℬ`, 2))) = 0], [`+`(Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(`ℬ`, 0)), `-`(P...](Physics/Physics_313.gif)
 by
 by ![sigma[3]](Physics/Physics_315.gif) 
 ![`*`(Psigma[3], `*`(Physics:-Ket(`ℬ`, 0))) = `+`(`*`(`/`(1, 2), `*`(Psigma[3], `*`(`^`(2, `/`(1, 2)), `*`(`+`(Physics:-`*`(Physics:-Ket(A, 0), Physics:-Ket(B, 0)), Physics:-`*`(Physics:-Ket(A, 1),...](Physics/Physics_316.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(`ℬ`, 0)) = `+`(`*`(`/`(1, 2), `*`(`^`(2, `/`(1, 2)), `*`(Physics:-`*`(Physics:-Psigma[3], `+`(Physics:-`*`(Physics:-Ket(A, ...](Physics/Physics_317.gif)
![[Physics:-`*`(Physics:-Psigma[1], Physics:-Ket(B, 0)) = Physics:-Ket(B, 1), Physics:-`*`(Physics:-Psigma[2], Physics:-Ket(B, 0)) = `*`(I, `*`(Physics:-Ket(B, 1))), Physics:-`*`(Physics:-Psigma[3], Phy...](Physics/Physics_318.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(B, 0)) = Physics:-Ket(B, 0), Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(B, 1)) = `+`(`-`(Physics:-Ket(B, 1)))], [Physics:-`*`...](Physics/Physics_319.gif)
![(rhs = lhs)((Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(B, 0)) = Physics:-Ket(B, 0), Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(B, 1)) = `+`(`-`(Physics:-Ket(B, 1))))[1]), (rhs = lhs)(`+`(`-`((P...](Physics/Physics_320.gif)
![Typesetting:-mprintslash([Physics:-Ket(B, 0) = Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(B, 0)), Physics:-Ket(B, 1) = `+`(`-`(Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(B, 1))))], [Physics:-Ket...](Physics/Physics_321.gif)
![factor(Simplify(subs(Physics:-Ket(B, 0) = Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(B, 0)), Physics:-Ket(B, 1) = `+`(`-`(Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(B, 1)))), Physics:-`*`(Physic...](Physics/Physics_322.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(`ℬ`, 0)) = `+`(`-`(`*`(`/`(1, 2), `*`(`^`(2, `/`(1, 2)), `*`(`+`(`-`(Physics:-`*`(Physics:-Ket(A, 0), Physics:-Ket(B, 0))),...](Physics/Physics_323.gif)
 
 

![Expand(`+`(Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(`ℬ`, 0)) = `+`(`-`(`*`(`/`(1, 2), `*`(`^`(2, `/`(1, 2)), `*`(`+`(`-`(Physics:-`*`(Physics:-Ket(A, 0), Physics:-Ket(B, 0))), Physics:-`*`(P...](Physics/Physics_327.gif)
![Typesetting:-mprintslash([`+`(Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(`ℬ`, 0)), `-`(Physics:-Ket(`ℬ`, 3))) = 0], [`+`(Physics:-`*`(Physics:-Psigma[3], Physics:-Ket(`ℬ`, 0)), `-`(P...](Physics/Physics_328.gif)

 , that is Hermitian and acts on the same space of
, that is Hermitian and acts on the same space of  , has the same dimension, and
, has the same dimension, and  are its mean values in an entangled and product states respectively.
 are its mean values in an entangled and product states respectively. ![Setup(additionally, hermitian = H, basisdimension = {H[1] = 2, H[2] = 2}, hilbertspaces = {{A, C, H}, {B, C, H}}, realobjects = {`ℍ`, `ℋ`})](Physics/Physics_333.gif)



![[disjointedspaces = {{A, C, H}, {B, C, H}, {B, C, Physics:-Psigma}}, hermitianoperators = {H}, quantumbasisdimension = {A = 2, B = 2, C[1] = 2, C[2] = 2, H[1] = 2, H[2] = 2}, realobjects = {`ℍ`, ...](Physics/Physics_337.gif)
![[disjointedspaces = {{A, C, H}, {B, C, H}, {B, C, Physics:-Psigma}}, hermitianoperators = {H}, quantumbasisdimension = {A = 2, B = 2, C[1] = 2, C[2] = 2, H[1] = 2, H[2] = 2}, realobjects = {`ℍ`, ...](Physics/Physics_338.gif)
 as acting on the tensor product of spaces where
 as acting on the tensor product of spaces where  and
 and  act (see
 act (see ![Ket(C, m, n) = Sum(Sum(`*`(M[j, p], `*`(Ket(A, j), `*`(Ket(B, p)))), j), p)](Physics/Physics_342.gif) ) and taking into account the dimensions specified for
) and taking into account the dimensions specified for  ,
,  and
 and  we have
 we have ![Ket(C, a, b) = Sum(Sum(`*`(M[a, j, b, p], `*`(Ket(A, j), `*`(Ket(B, p)))), j = 0 .. 1), p = 0 .. 1)](Physics/Physics_346.gif)
![Typesetting:-mprintslash([Physics:-Ket(C, a, b) = Sum(Sum(`*`(M[a, j, b, p], `*`(Physics:-`*`(Physics:-Ket(A, j), Physics:-Ket(B, p)))), j = 0 .. 1), p = 0 .. 1)], [Physics:-Ket(C, a, b) = Sum(Sum(`*`...](Physics/Physics_347.gif)
![Typesetting:-delayDotProduct(Bra(A, k), Physics:-Ket(C, a, b) = Sum(Sum(`*`(M[a, j, b, p], `*`(Physics:-`*`(Physics:-Ket(A, j), Physics:-Ket(B, p)))), j = 0 .. 1), p = 0 .. 1))](Physics/Physics_348.gif)
![Typesetting:-mprintslash([Physics:-Bracket(Physics:-Bra(A, k), Physics:-Ket(C, a, b)) = Sum(`*`(M[a, k, b, p], `*`(Physics:-Ket(B, p))), p = 0 .. 1)], [Physics:-Bracket(Physics:-Bra(A, k), Physics:-Ke...](Physics/Physics_349.gif)
![Typesetting:-delayDotProduct(Bra(B, k), Physics:-Ket(C, a, b) = Sum(Sum(`*`(M[a, j, b, p], `*`(Physics:-`*`(Physics:-Ket(A, j), Physics:-Ket(B, p)))), j = 0 .. 1), p = 0 .. 1))](Physics/Physics_350.gif)
![Typesetting:-mprintslash([Physics:-Bracket(Physics:-Bra(B, k), Physics:-Ket(C, a, b)) = Sum(`*`(M[a, j, b, k], `*`(Physics:-Ket(A, j))), j = 0 .. 1)], [Physics:-Bracket(Physics:-Bra(B, k), Physics:-Ke...](Physics/Physics_351.gif)
![Typesetting:-delayDotProduct(Typesetting:-delayDotProduct(Bra(A, k), Bra(B, l)), Physics:-Ket(C, a, b) = Sum(Sum(`*`(M[a, j, b, p], `*`(Physics:-`*`(Physics:-Ket(A, j), Physics:-Ket(B, p)))), j = 0 .....](Physics/Physics_352.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Bra(A, k), Physics:-Bracket(Physics:-Bra(B, l), Physics:-Ket(C, a, b))) = M[a, k, b, l]], [Physics:-`*`(Physics:-Bra(A, k), Physics:-Bracket(Physics:-Br...](Physics/Physics_353.gif)
 ,
,  and
 and  are the first two of these; Set these rules, so that the system can take them into account
 are the first two of these; Set these rules, so that the system can take them into account ![Setup(Physics:-Bracket(Physics:-Bra(A, k), Physics:-Ket(C, a, b)) = Sum(`*`(M[a, k, b, p], `*`(Physics:-Ket(B, p))), p = 0 .. 1), Physics:-Bracket(Physics:-Bra(B, k), Physics:-Ket(C, a, b)) = Sum(`*`(...](Physics/Physics_357.gif)

![Typesetting:-delayDotProduct(Typesetting:-delayDotProduct(Bra(A, k), Bra(B, l)), Physics:-Ket(C, a, b) = Sum(Sum(`*`(M[a, j, b, p], `*`(Physics:-`*`(Physics:-Ket(A, j), Physics:-Ket(B, p)))), j = 0 .....](Physics/Physics_359.gif) , the left-hand side is also computed
, the left-hand side is also computed ![Typesetting:-delayDotProduct(Typesetting:-delayDotProduct(Bra(A, k), Bra(B, l)), Physics:-Ket(C, a, b) = Sum(Sum(`*`(M[a, j, b, p], `*`(Physics:-`*`(Physics:-Ket(A, j), Physics:-Ket(B, p)))), j = 0 .....](Physics/Physics_360.gif)
![M[a, k, b, l] = M[a, k, b, l]](Physics/Physics_361.gif)
 , that operates on the same space as
, that operates on the same space as  , both using C and the operators
, both using C and the operators  and
 and  , as in
, as in ![Bracket(Bra(C, I, j), H, Ket(C, k, l)) = `ℋ`[i, j, k, l]](Physics/Physics_366.gif) 
 ![`*`(`⊗`(Bra(A, I), Bra(B, j)), `*`(H, `*`(`⊗`(Ket(A, k), Ket(B, l))))) = `ℍ`[I, j, k, l]](Physics/Physics_367.gif) 
 ![`ℋ`[i, j, k, l]](Physics/Physics_368.gif) =
 = ![`ℍ`[I, j, k, l]](Physics/Physics_369.gif) when
 when  is a product (not entangled) state.
 is a product (not entangled) state.  ![Bracket(Bra(C, I, j), H, Ket(C, k, l)) = `ℋ`[I, j, k, l]](Physics/Physics_371.gif) it suffices to set a bracket rule
 it suffices to set a bracket rule ![Setup(%Bracket(Bra(C, a, b), H, Ket(C, c, d)) = `ℋ`[a, b, c, d], real = `ℋ`)](Physics/Physics_372.gif)





![`ℋ`[j, k, m, n]](Physics/Physics_378.gif)
 , since
, since  belongs to the tensor product of spaces A and B, it can be an entangled operator, one that you cannot represent just as a product of one operator acting on A times another one acting on B. A computational representation for the operator
 belongs to the tensor product of spaces A and B, it can be an entangled operator, one that you cannot represent just as a product of one operator acting on A times another one acting on B. A computational representation for the operator  (that is not just itself or as abstract) is not possible in the general case. For that you can use a different feature: define the action of the operator
 (that is not just itself or as abstract) is not possible in the general case. For that you can use a different feature: define the action of the operator  on Kets of
 on Kets of  and
 and  .
.   
 
 
 













 
 

![H[k]](Physics/Physics_405.gif)
 is Hermitian,
 is Hermitian, 
![H[j]](Physics/Physics_408.gif)

![H[j, k]](Physics/Physics_410.gif)

![H[j, k, l]](Physics/Physics_412.gif)

![`ℍ`[i, j, k, l]](Physics/Physics_414.gif)
 as a procedure does not interfere with the setting of an bracket rule for it with
 as a procedure does not interfere with the setting of an bracket rule for it with  , that is still working
, that is still working 
![`ℋ`[i, j, k, l]](Physics/Physics_418.gif)
 is a product state. The definition of H takes precedence, so if in that definition you indicate what to do with a
 is a product state. The definition of H takes precedence, so if in that definition you indicate what to do with a  Ket, that will be taken into account before the bracket rule.
 Ket, that will be taken into account before the bracket rule. 
![Typesetting:-mprintslash([`𝕀__A` := Sum(Physics:-`*`(Physics:-Ket(A, i), Physics:-Bra(A, i)), i = 0 .. 1)], [Sum(Physics:-`*`(Physics:-Ket(A, i), Physics:-Bra(A, i)), i = 0 .. 1)])](Physics/Physics_422.gif)
![Typesetting:-mprintslash([`𝕀__B` := Sum(Physics:-`*`(Physics:-Ket(B, i), Physics:-Bra(B, i)), i = 0 .. 1)], [Sum(Physics:-`*`(Physics:-Ket(B, i), Physics:-Bra(B, i)), i = 0 .. 1)])](Physics/Physics_423.gif)
![Typesetting:-mprintslash([`𝕀__C` := Sum(Sum(Physics:-`*`(Physics:-Ket(C, a, b), Physics:-Bra(C, a, b)), a = 0 .. 1), b = 0 .. 1)], [Sum(Sum(Physics:-`*`(Physics:-Ket(C, a, b), Physics:-Bra(C, a, ...](Physics/Physics_424.gif)
 ,
,  and
 and  were already set in
 were already set in ![Setup(Physics:-Bracket(Physics:-Bra(A, k), Physics:-Ket(C, a, b)) = Sum(`*`(M[a, k, b, p], `*`(Physics:-Ket(B, p))), p = 0 .. 1), Physics:-Bracket(Physics:-Bra(B, k), Physics:-Ket(C, a, b)) = Sum(`*`(...](Physics/Physics_428.gif) , from the projectors above you can construct any subspace projector, for example
, from the projectors above you can construct any subspace projector, for example 
![Typesetting:-mprintslash([Sum(Sum(Sum(`*`(M[a, m, b, p], `*`(Physics:-`*`(Physics:-Ket(B, p), Physics:-Bra(C, a, b)))), p = 0 .. 1), a = 0 .. 1), b = 0 .. 1)], [Sum(Sum(Sum(`*`(M[a, m, b, p], `*`(Phys...](Physics/Physics_430.gif)

![Typesetting:-mprintslash([Sum(Sum(Sum(`*`(conjugate(M[a, m, b, p]), `*`(Physics:-`*`(Physics:-Ket(C, a, b), Physics:-Bra(B, p)))), p = 0 .. 1), a = 0 .. 1), b = 0 .. 1)], [Sum(Sum(Sum(`*`(conjugate(M[...](Physics/Physics_432.gif)
![M[a, m, b, p]](Physics/Physics_433.gif) is due to the contraction or attachment from the right of
 is due to the contraction or attachment from the right of  , that is with
, that is with ![Dagger(Physics:-Ket(C, a, b) = Sum(Sum(`*`(M[a, j, b, p], `*`(Physics:-`*`(Physics:-Ket(A, j), Physics:-Ket(B, p)))), j = 0 .. 1), p = 0 .. 1))](Physics/Physics_435.gif)
![Typesetting:-mprintslash([Physics:-Bra(C, a, b) = Sum(Sum(`*`(conjugate(M[a, j, b, p]), `*`(Physics:-`*`(Physics:-Bra(A, j), Physics:-Bra(B, p)))), j = 0 .. 1), p = 0 .. 1)], [Physics:-Bra(C, a, b) = ...](Physics/Physics_436.gif)
![M[a, m, b, p]](Physics/Physics_437.gif) satisfy constraints due to the normalization of Kets of
 satisfy constraints due to the normalization of Kets of  and
 and  . One can derive these constraints by inserting the unit operator
. One can derive these constraints by inserting the unit operator  in the identity
 in the identity 
![Sum(Sum(`*`(conjugate(M[a, r, b, s]), `*`(M[a, m, b, n])), a = 0 .. 1), b = 0 .. 1) = `*`(Physics:-KroneckerDelta[m, r], `*`(Physics:-KroneckerDelta[n, s]))](Physics/Physics_442.gif)
![P := unapply(subs(Sum = sum, Sum(Sum(`*`(conjugate(M[a, r, b, s]), `*`(M[a, m, b, n])), a = 0 .. 1), b = 0 .. 1) = `*`(Physics:-KroneckerDelta[m, r], `*`(Physics:-KroneckerDelta[n, s]))), m, n, r, s)](Physics/Physics_443.gif)
![Typesetting:-mprintslash([P := proc (m, n, r, s) options operator, arrow; sum(sum(`*`(conjugate(M[a, r, b, s]), `*`(M[a, m, b, n])), a = 0 .. 1), b = 0 .. 1) = `*`(Physics:-KroneckerDelta[m, r], `*`(P...](Physics/Physics_444.gif)
 , the second and fourth to
, the second and fourth to  , so the right-hand sides in the following are respectively 1 and 0
, so the right-hand sides in the following are respectively 1 and 0 
![`+`(`*`(conjugate(M[0, 1, 0, 0]), `*`(M[0, 1, 0, 0])), `*`(conjugate(M[1, 1, 0, 0]), `*`(M[1, 1, 0, 0])), `*`(conjugate(M[0, 1, 1, 0]), `*`(M[0, 1, 1, 0])), `*`(conjugate(M[1, 1, 1, 0]), `*`(M[1, 1, 1...](Physics/Physics_448.gif)

![`+`(`*`(conjugate(M[0, 0, 0, 0]), `*`(M[0, 1, 0, 0])), `*`(conjugate(M[1, 0, 0, 0]), `*`(M[1, 1, 0, 0])), `*`(conjugate(M[0, 0, 1, 0]), `*`(M[0, 1, 1, 0])), `*`(conjugate(M[1, 0, 1, 0]), `*`(M[1, 1, 1...](Physics/Physics_450.gif)
![M[a, m, b, n]](Physics/Physics_451.gif) , use P to construct an Array with four indices running from 0..1
, use P to construct an Array with four indices running from 0..1 


![{`+`(`*`(`^`(abs(M[0, 0, 0, 0]), 2)), `*`(`^`(abs(M[1, 0, 0, 0]), 2)), `*`(`^`(abs(M[0, 0, 1, 0]), 2)), `*`(`^`(abs(M[1, 0, 1, 0]), 2))) = 1, `+`(`*`(`^`(abs(M[0, 0, 0, 1]), 2)), `*`(`^`(abs(M[1, 0, 0...](Physics/Physics_455.gif)
![{`+`(`*`(`^`(abs(M[0, 0, 0, 0]), 2)), `*`(`^`(abs(M[1, 0, 0, 0]), 2)), `*`(`^`(abs(M[0, 0, 1, 0]), 2)), `*`(`^`(abs(M[1, 0, 1, 0]), 2))) = 1, `+`(`*`(`^`(abs(M[0, 0, 0, 1]), 2)), `*`(`^`(abs(M[1, 0, 0...](Physics/Physics_456.gif)
![{`+`(`*`(`^`(abs(M[0, 0, 0, 0]), 2)), `*`(`^`(abs(M[1, 0, 0, 0]), 2)), `*`(`^`(abs(M[0, 0, 1, 0]), 2)), `*`(`^`(abs(M[1, 0, 1, 0]), 2))) = 1, `+`(`*`(`^`(abs(M[0, 0, 0, 1]), 2)), `*`(`^`(abs(M[1, 0, 0...](Physics/Physics_457.gif)
![{`+`(`*`(`^`(abs(M[0, 0, 0, 0]), 2)), `*`(`^`(abs(M[1, 0, 0, 0]), 2)), `*`(`^`(abs(M[0, 0, 1, 0]), 2)), `*`(`^`(abs(M[1, 0, 1, 0]), 2))) = 1, `+`(`*`(`^`(abs(M[0, 0, 0, 1]), 2)), `*`(`^`(abs(M[1, 0, 0...](Physics/Physics_458.gif)
![{`+`(`*`(`^`(abs(M[0, 0, 0, 0]), 2)), `*`(`^`(abs(M[1, 0, 0, 0]), 2)), `*`(`^`(abs(M[0, 0, 1, 0]), 2)), `*`(`^`(abs(M[1, 0, 1, 0]), 2))) = 1, `+`(`*`(`^`(abs(M[0, 0, 0, 1]), 2)), `*`(`^`(abs(M[1, 0, 0...](Physics/Physics_459.gif)
![{`+`(`*`(`^`(abs(M[0, 0, 0, 0]), 2)), `*`(`^`(abs(M[1, 0, 0, 0]), 2)), `*`(`^`(abs(M[0, 0, 1, 0]), 2)), `*`(`^`(abs(M[1, 0, 1, 0]), 2))) = 1, `+`(`*`(`^`(abs(M[0, 0, 0, 1]), 2)), `*`(`^`(abs(M[1, 0, 0...](Physics/Physics_460.gif)
![{`+`(`*`(`^`(abs(M[0, 0, 0, 0]), 2)), `*`(`^`(abs(M[1, 0, 0, 0]), 2)), `*`(`^`(abs(M[0, 0, 1, 0]), 2)), `*`(`^`(abs(M[1, 0, 1, 0]), 2))) = 1, `+`(`*`(`^`(abs(M[0, 0, 0, 1]), 2)), `*`(`^`(abs(M[1, 0, 0...](Physics/Physics_461.gif)
![{`+`(`*`(`^`(abs(M[0, 0, 0, 0]), 2)), `*`(`^`(abs(M[1, 0, 0, 0]), 2)), `*`(`^`(abs(M[0, 0, 1, 0]), 2)), `*`(`^`(abs(M[1, 0, 1, 0]), 2))) = 1, `+`(`*`(`^`(abs(M[0, 0, 0, 1]), 2)), `*`(`^`(abs(M[1, 0, 0...](Physics/Physics_462.gif)
![{`+`(`*`(`^`(abs(M[0, 0, 0, 0]), 2)), `*`(`^`(abs(M[1, 0, 0, 0]), 2)), `*`(`^`(abs(M[0, 0, 1, 0]), 2)), `*`(`^`(abs(M[1, 0, 1, 0]), 2))) = 1, `+`(`*`(`^`(abs(M[0, 0, 0, 1]), 2)), `*`(`^`(abs(M[1, 0, 0...](Physics/Physics_463.gif)
![{`+`(`*`(`^`(abs(M[0, 0, 0, 0]), 2)), `*`(`^`(abs(M[1, 0, 0, 0]), 2)), `*`(`^`(abs(M[0, 0, 1, 0]), 2)), `*`(`^`(abs(M[1, 0, 1, 0]), 2))) = 1, `+`(`*`(`^`(abs(M[0, 0, 0, 1]), 2)), `*`(`^`(abs(M[1, 0, 0...](Physics/Physics_464.gif)

 and corresponding annihilation / creation operators
 and corresponding annihilation / creation operators 
![[quantumoperators = {A}]](Physics/Physics_468.gif)










 , with all of their properties, are now understood as such by the system
, with all of their properties, are now understood as such by the system 

 is an eigenket of
 is an eigenket of  but not of
 but not of   
 



 are, and since
 are, and since  is not Hermitian, its eigenvalues are not real but complex numbers. Instead of
 is not Hermitian, its eigenvalues are not real but complex numbers. Instead of  , in Maple 2019 we have
, in Maple 2019 we have 

 ,
,  

 , using the inert %Bracket on the left-hand side and the active Bracket on the other side:
, using the inert %Bracket on the left-hand side and the active Bracket on the other side: 


![Typesetting:-mprintslash([Sum(Physics:-`*`(Physics:-Ket(A, n), Physics:-Bra(A, n)), n = 0 .. infinity)], [Sum(Physics:-`*`(Physics:-Ket(A, n), Physics:-Bra(A, n)), n = 0 .. infinity)])](Physics/Physics_501.gif)









![[hideketlabel = true]](Physics/Physics_511.gif)














 
 



 basis of the Fock (occupation number) space
 basis of the Fock (occupation number) space 


![Bracket(%N)[alpha] = %Bracket(Bra(am, alpha), N, Ket(am, alpha))](Physics/Physics_535.gif)

![value(Physics:-Bracket(%N)[alpha] = %Bracket(Physics:-Bra(`#msup(mi(](Physics/Physics_537.gif)
![Typesetting:-mprintslash([Physics:-Bracket(%N)[alpha] = `*`(`^`(abs(alpha), 2))], [Physics:-Bracket(%N)[alpha] = `*`(`^`(abs(alpha), 2))])](Physics/Physics_538.gif)
 
 ![Bracket(`*`(`^`(%N, 2)))[alpha] = %Bracket(Bra(am, alpha), `*`(`^`(N, 2)), Ket(am, alpha))](Physics/Physics_540.gif)

![value(Physics:-Bracket(`*`(`^`(%N, 2)))[alpha] = %Bracket(Physics:-Bra(`#msup(mi(](Physics/Physics_542.gif)
![Typesetting:-mprintslash([Physics:-Bracket(`*`(`^`(%N, 2)))[alpha] = `+`(`*`(`^`(abs(alpha), 4)), `*`(`^`(abs(alpha), 2)))], [Physics:-Bracket(`*`(`^`(%N, 2)))[alpha] = `+`(`*`(`^`(abs(alpha), 4)), `*...](Physics/Physics_543.gif)
![`ΔN` = sqrt(`+`(`-`(`*`(`^`(Bracket(%N)[alpha], 2))), Bracket(`^`(%N, 2))[alpha]))](Physics/Physics_544.gif) for a state
 for a state  
 ![`*`(`^`(`+`(Physics:-Bracket(`*`(`^`(%N, 2)))[alpha] = `+`(`*`(`^`(abs(alpha), 4)), `*`(`^`(abs(alpha), 2))), `-`(`^`(Physics:-Bracket(%N)[alpha] = `*`(`^`(abs(alpha), 2)), 2))), `/`(1, 2)))](Physics/Physics_546.gif)
![`*`(`^`(`+`(`-`(`*`(`^`(Physics:-Bracket(%N)[alpha], 2))), Physics:-Bracket(`*`(`^`(%N, 2)))[alpha]), `/`(1, 2))) = abs(alpha)](Physics/Physics_547.gif)
 has a finite spreading
 has a finite spreading  .  Coherent states are good approximations for the states of a laser, where the laser intensity I  is proportional to the mean value of the photon number, I âˆ
.  Coherent states are good approximations for the states of a laser, where the laser intensity I  is proportional to the mean value of the photon number, I ∠![Bracket(%N)[alpha] = `*`(`^`(abs(alpha), 2))](Physics/Physics_550.gif) , and so the intensity fluctuation,
, and so the intensity fluctuation,  .
. 
![Bracket(%N)[n] = %Bracket(Bra(A, n), N, Ket(A, n))](Physics/Physics_553.gif)

![value(Physics:-Bracket(%N)[n] = %Bracket(Physics:-Bra(A, n), Physics:-`*`(`#msup(mi(](Physics/Physics_555.gif)
![Typesetting:-mprintslash([Physics:-Bracket(%N)[n] = n], [Physics:-Bracket(%N)[n] = n])](Physics/Physics_556.gif)
 is thus n itself, as expected since
 is thus n itself, as expected since  represents a (Fock space) state of n (quasi-) particles. Accordingly,
represents a (Fock space) state of n (quasi-) particles. Accordingly, ![Bracket(`*`(`^`(%N, 2)))[n] = %Bracket(Bra(A, n), `*`(`^`(N, 2)), Ket(A, n))](Physics/Physics_559.gif)

![value(Physics:-Bracket(`*`(`^`(%N, 2)))[n] = %Bracket(Physics:-Bra(A, n), Physics:-`^`(Physics:-`*`(`#msup(mi(](Physics/Physics_561.gif)
![Typesetting:-mprintslash([Physics:-Bracket(`*`(`^`(%N, 2)))[n] = `*`(`^`(n, 2))], [Physics:-Bracket(`*`(`^`(%N, 2)))[n] = `*`(`^`(n, 2))])](Physics/Physics_562.gif)
![`ΔN` = sqrt(`+`(`-`(`*`(`^`(Bracket(%N)[n], 2))), Bracket(`^`(%N, 2))[n]))](Physics/Physics_563.gif) for a state
 for a state  , is thus
, is thus ![`*`(`^`(`+`(Physics:-Bracket(`*`(`^`(%N, 2)))[n] = `*`(`^`(n, 2)), `-`(`^`(Physics:-Bracket(%N)[n] = n, 2))), `/`(1, 2)))](Physics/Physics_565.gif)
![`*`(`^`(`+`(`-`(`*`(`^`(Physics:-Bracket(%N)[n], 2))), Physics:-Bracket(`*`(`^`(%N, 2)))[n]), `/`(1, 2))) = 0](Physics/Physics_566.gif)
 , there is no intensity fluctuation.
, there is no intensity fluctuation.  
  into the
 into the  basis of occupation number states and the definition of
basis of occupation number states and the definition of  as the operator that annihilates the vacuum
 as the operator that annihilates the vacuum 
 
 



 from the formula above, start multiplying by
 from the formula above, start multiplying by  
 

 , discard the first term of the sum
, discard the first term of the sum 

 ; in the result rename
; in the result rename  
 

 by replacing, in the right-hand side, the product operator `*` by `.`
 by replacing, in the right-hand side, the product operator `*` by `.` 

 is equal to
 is equal to  times the right-hand side of
 times the right-hand side of  
 



 over an occupation number state
 over an occupation number state  
 

 for a sample of values of n and
 for a sample of values of n and  is thus as follows
 is thus as follows 

 using Explore
 using Explore 

 
		 
		 
		 
		 
  into the
into the  basis of occupation number states,
basis of occupation number states, 



 
 

 in the summand, change variables
in the summand, change variables  ; in the result rename
; in the result rename  
 



![`assuming`([simplify((`+`(lhs, `-`(rhs)))(`/`(1, `*`(`^`(factorial(`+`(n, `-`(1))), `/`(1, 2)))) = `/`(`*`(`^`(n, `/`(1, 2))), `*`(`^`(factorial(n), `/`(1, 2))))))], [n::posint])](Physics/Physics_631.gif)



 , is equal to 0
, is equal to 0 





 
 







 =
 =  
  can be constructed from the vacuum state using the operator
 can be constructed from the vacuum state using the operator ![`𝒟`[1] = `*`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), `*`(exp(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_654.gif) .
. 
![[quantumoperators = {`𝒟`, A}]](Physics/Physics_656.gif)
![`𝒟`[1] = `*`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), `*`(exp(`*`(alpha, `*`(ap)))))](Physics/Physics_657.gif)
![`𝒟`[1] = `*`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), `*`(exp(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_658.gif)
 in power series:
 in power series: 

![`𝒟`[1]](Physics/Physics_662.gif) becomes
becomes 
![`𝒟`[1] = `*`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), `*`(Sum(`/`(`*`(Physics:-`^`(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_664.gif)
![`𝒟`[1]](Physics/Physics_665.gif) ·
· , we have
, we have ![Typesetting:-delayDotProduct(`𝒟`[1] = `*`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), `*`(Sum(`/`(`*`(Physics:-`^`(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_667.gif)
![Typesetting:-mprintslash([Physics:-`.`(`𝒟`[1], Physics:-Ket(A, 0)) = Sum(`/`(`*`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), `*`(Physics:-`.`(Physics:-`^`(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_668.gif)
![combine(Expand(Physics:-`.`(`𝒟`[1], Physics:-Ket(A, 0)) = Sum(`/`(`*`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), `*`(Physics:-`.`(Physics:-`^`(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_669.gif)
![Typesetting:-mprintslash([Physics:-`.`(`𝒟`[1], Physics:-Ket(A, 0)) = Sum(`/`(`*`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), `*`(`^`(alpha, n), `*`(Physics:-Ket(A, n)))), `*`(`^`(fact...](Physics/Physics_670.gif)
 into the basis or occupation number states
into the basis or occupation number states  computed previously in
computed previously in  
 

![`+`(`*`(`𝒟`[1], `*`(Physics:-Ket(A, 0))), `-`(Physics:-Ket(`#msup(mi(](Physics/Physics_676.gif)
![Typesetting:-mprintslash([`+`(Physics:-`.`(`𝒟`[1], Physics:-Ket(A, 0)), `-`(Physics:-Ket(`#msup(mi(](Physics/Physics_677.gif)
![isolate(`+`(Physics:-`.`(`𝒟`[1], Physics:-Ket(A, 0)), `-`(Physics:-Ket(`#msup(mi(](Physics/Physics_678.gif)
![Typesetting:-mprintslash([Physics:-`.`(`𝒟`[1], Physics:-Ket(A, 0)) = Physics:-Ket(`#msup(mi(](Physics/Physics_679.gif)
![`𝒟`[1]](Physics/Physics_680.gif) is not unitary,
 is not unitary, ![`<>`(`*`(`𝒟`[1], `*`(`#msup(mi(](Physics/Physics_681.gif) 
 ![`*`(Dagger(`𝒟`[1] = `*`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), `*`(exp(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_682.gif)

![simplify(Physics:-`*`(Physics:-Dagger(`𝒟`[1]), `𝒟`[1]) = `*`(`^`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), 2), `*`(Physics:-`*`(exp(`*`(conjugate(alpha), `*`(`#msup(mi(](Physics/Physics_684.gif)


 =
 =  
 ![`𝒟`[2]](Physics/Physics_689.gif) =
=  to construct
 to construct  from the vacuum.
 from the vacuum. ![`𝒟`[2]](Physics/Physics_692.gif) is sometime called the "displacement" operator. It has the advantage over
 is sometime called the "displacement" operator. It has the advantage over ![`𝒟`[1]](Physics/Physics_693.gif) that
 that ![`𝒟`[2]](Physics/Physics_694.gif) is unitary,
is unitary,![`and`(`*`(`𝒟`[2], `*`(`#msup(mi(](Physics/Physics_695.gif) As a consequence:
As a consequence:   .
. ![`𝒟`[2] = exp(`+`(`*`(alpha, `*`(ap)), `-`(`*`(conjugate(alpha), `*`(am)))))](Physics/Physics_697.gif)
![`𝒟`[2] = exp(`+`(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_698.gif)
![`*`(Dagger(`𝒟`[2] = exp(`+`(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_699.gif)

![Simplify(Physics:-`*`(`𝒟`[2], Physics:-Dagger(`𝒟`[2])) = Physics:-`*`(exp(`+`(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_701.gif)

![`*`(`𝒟`[2], `*`(`#msup(mi(](Physics/Physics_703.gif) one can proceed as in the above, or directly compute their commutator, expecting
one can proceed as in the above, or directly compute their commutator, expecting ![Physics:-Commutator(`𝒟`[2], `#msup(mi(](Physics/Physics_704.gif) .
. ![%Commutator(`𝒟`[2] = exp(`+`(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_705.gif)



![`𝒟`[2]](Physics/Physics_709.gif) ·
· , start multiplying by
, start multiplying by ![`𝒟`[2]](Physics/Physics_711.gif) 
 ![`*`(Ket(A, 0), `*`(`𝒟`[2])) = `*`(Ket(A, 0), `*`(exp(`+`(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_712.gif)
![Typesetting:-mprintslash([Physics:-`*`(`𝒟`[2], Physics:-Ket(A, 0)) = Physics:-`*`(exp(`+`(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_713.gif)
![simplify(expand(Physics:-`*`(`𝒟`[2], Physics:-Ket(A, 0)) = Physics:-`*`(exp(`+`(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_714.gif)
![Typesetting:-mprintslash([Physics:-`*`(`𝒟`[2], Physics:-Ket(A, 0)) = `*`(Physics:-`*`(exp(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_715.gif)
![`𝒟`[1]](Physics/Physics_716.gif) in the previous section
in the previous section ![`𝒟`[1] = `*`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), `*`(exp(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_717.gif)
![`𝒟`[1] = `*`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), `*`(exp(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_718.gif)
![simplify(expand(Physics:-`*`(`𝒟`[2], Physics:-Ket(A, 0)) = Physics:-`*`(exp(`+`(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_719.gif) can be simplified using this definition
 can be simplified using this definition ![isolate(`𝒟`[1] = `*`(exp(`+`(`-`(`*`(`/`(1, 2), `*`(`^`(abs(alpha), 2)))))), `*`(exp(`*`(alpha, `*`(`#msup(mi(](Physics/Physics_720.gif)


![Typesetting:-mprintslash([Physics:-`*`(`𝒟`[2], Physics:-Ket(A, 0)) = Physics:-`*`(`𝒟`[1], exp(`+`(`-`(`*`(conjugate(alpha), `*`(`#msup(mi(](Physics/Physics_723.gif)
 can be computed by replacing the `*` product by a dot product `.`
 can be computed by replacing the `*` product by a dot product `.` ![eval(Physics:-`*`(`𝒟`[2], Physics:-Ket(A, 0)) = Physics:-`*`(`𝒟`[1], exp(`+`(`-`(`*`(conjugate(alpha), `*`(`#msup(mi(](Physics/Physics_725.gif)
![Typesetting:-mprintslash([Physics:-`.`(`𝒟`[2], Physics:-Ket(A, 0)) = Physics:-`.`(`𝒟`[1], Physics:-Ket(A, 0))], [Physics:-`.`(`𝒟`[2], Physics:-Ket(A, 0)) = Physics:-`.`(`𝒟`[1], Phy...](Physics/Physics_726.gif)
![Physics:-`.`(`𝒟`[1], Physics:-Ket(A, 0)) = Physics:-Ket(`#msup(mi(](Physics/Physics_727.gif)
![Typesetting:-mprintslash([Physics:-`.`(`𝒟`[1], Physics:-Ket(A, 0)) = Physics:-Ket(`#msup(mi(](Physics/Physics_728.gif)
![subs(Physics:-`.`(`𝒟`[1], Physics:-Ket(A, 0)) = Physics:-Ket(`#msup(mi(](Physics/Physics_729.gif)
![Typesetting:-mprintslash([Physics:-`.`(`𝒟`[2], Physics:-Ket(A, 0)) = Physics:-Ket(`#msup(mi(](Physics/Physics_730.gif)
 
  into the
into the  basis of occupation number states
basis of occupation number states 








 and
 and  are complex valued numbers. Below, the plots assume that
 are complex valued numbers. Below, the plots assume that  and
 and  are both real. To take into account the general case, the possibility to tune a phase difference
 are both real. To take into account the general case, the possibility to tune a phase difference  between
 between  and
 and  is explicitly added, so that
 is explicitly added, so that  becomes
 becomes 



 
		 
		 
		 
		 as an infinite product of exponential operators involving nested commutators of increasing complexity
 as an infinite product of exponential operators involving nested commutators of increasing complexity 
 
  ,
,  and their commutator
 and their commutator  , if
, if  and
 and  commute with
 commute with  ,
, ![C[n] = 0](Physics/Physics_768.gif) for
 for  and the Zassenhaus formula reduces to the product of the first three exponentials above. The interest here is in the general case, when
 and the Zassenhaus formula reduces to the product of the first three exponentials above. The interest here is in the general case, when  and
 and  , and the goal is to compute the Zassenhaus coefficients
, and the goal is to compute the Zassenhaus coefficients ![C[n]](Physics/Physics_772.gif) in terms of
in terms of  ,
,  for arbitrary n. Following [1], in that general case, differentiating the Zassenhaus formula with respect to
 for arbitrary n. Following [1], in that general case, differentiating the Zassenhaus formula with respect to  and multiplying from the right by
 and multiplying from the right by  one obtains
 one obtains  
  
 ![C[n]](Physics/Physics_779.gif) is obtained by equating to 0 the coefficient of
 is obtained by equating to 0 the coefficient of  . In this formula, the repeated commutator bracket is defined inductively in terms of the standard commutator
. In this formula, the repeated commutator bracket is defined inductively in terms of the standard commutator  by
by  
 ![{C[j], `^`(B, n), `^`(A, 0)} = {C[j], `^`(B, n)}, {C[j], `^`(A, m), `^`(B, n)} = %Commutator(A, {`^`(A, `-`(m, 1)), `^`(B, n), `^`(C[j], k)})](Physics/Physics_783.gif) 
  and
 and  and respectively solving each of them for
 and respectively solving each of them for ![C[2]](Physics/Physics_786.gif) and
 and ![C[3]](Physics/Physics_787.gif) one obtains
 one obtains  ![C[2] = `+`(`-`(`*`(`/`(1, 2), `*`(%Commutator(A, B)))))](Physics/Physics_788.gif) 
 ![C[3] = `+`(`*`(`/`(1, 2), `*`(%Commutator(B, %Commutator(A, B)))))](Physics/Physics_789.gif) 
 ![C[n]](Physics/Physics_790.gif) grows rapidly and in the literature only the coefficients up to
 grows rapidly and in the literature only the coefficients up to ![C[5]](Physics/Physics_791.gif) have been published. Taking advantage of developments in the Physics package for Maple 2019, below we show the computation up to
 have been published. Taking advantage of developments in the Physics package for Maple 2019, below we show the computation up to ![C[10]](Physics/Physics_792.gif) and provide a compact approach to compute them up to arbitrary order.
 and provide a compact approach to compute them up to arbitrary order. ![C[10]](Physics/Physics_793.gif) 
  ,
,  and
 and ![C[n]](Physics/Physics_796.gif) to represent quantum operators
 to represent quantum operators 



![[quantumoperators = {A, B, C}, signature = `+ + + -`, spaceindices = lowercaselatin]](Physics/Physics_801.gif)
![C[10]](Physics/Physics_802.gif) , a convenient example, where the commutator algebra is closed, consists of taking
, a convenient example, where the commutator algebra is closed, consists of taking  and
 and  as Pauli Matrices which, multiplied by the imaginary unit, form a basis for the
 as Pauli Matrices which, multiplied by the imaginary unit, form a basis for the  group, which in turn exponentiate to the relevant Special Unitary Group
group, which in turn exponentiate to the relevant Special Unitary Group  . The algebra for the Pauli matrices involves a commutator and an anticommutator
. The algebra for the Pauli matrices involves a commutator and an anticommutator 

 and
 and  to two Pauli matrices, for instance
 to two Pauli matrices, for instance ![A := Psigma[1]](Physics/Physics_811.gif)
![Typesetting:-mprintslash([A := Physics:-Psigma[1]], [Physics:-Psigma[1]])](Physics/Physics_812.gif)
![B := Psigma[3]](Physics/Physics_813.gif)
![Typesetting:-mprintslash([B := Physics:-Psigma[3]], [Physics:-Psigma[3]])](Physics/Physics_814.gif)
 from
 from  
 ![C[`+`(n, 1)]](Physics/Physics_817.gif) we note that each term has a factor
 we note that each term has a factor  multiplying a sum, so we only need to take into account the first
 multiplying a sum, so we only need to take into account the first  terms (sums) and in each sum replace
 terms (sums) and in each sum replace  by the corresponding
 by the corresponding  . For example, given
. For example, given  to compute
to compute ![C[3]](Physics/Physics_823.gif) we only need to compute these first three terms:
 we only need to compute these first three terms: ![0 = `+`(Sum(`/`(`*`(`^`(lambda, n), `*`({B, `^`(A, n)})), `*`(factorial(n))), n = 1 .. 2), `*`(2, `*`(lambda, `*`(Sum(Sum(`/`(`*`(`^`(lambda, `+`(n, m)), `*`({C[2], `^`(A, m), `^`(B, n)})), `*`(factor...](Physics/Physics_824.gif) 
 ![C[3]](Physics/Physics_825.gif) one gets
 one gets ![C[3] = `+`(`*`(`/`(1, 3), `*`(%Commutator(B, %Commutator(A, B)))), `*`(`/`(1, 6), `*`(%Commutator(A, %Commutator(A, B)))))](Physics/Physics_826.gif) .
. ![C[n]](Physics/Physics_827.gif) we only need the coefficient of
 we only need the coefficient of  , it is not necessary to compute all the terms of each multiple-sum. One way of restricting the multiple-sums to only one power of
, it is not necessary to compute all the terms of each multiple-sum. One way of restricting the multiple-sums to only one power of  consists of using multi-index summation, available in the Physics package. For that purpose, redefine sum to extend its functionality with multi-index summation
 consists of using multi-index summation, available in the Physics package. For that purpose, redefine sum to extend its functionality with multi-index summation 
![[redefinesum = true]](Physics/Physics_831.gif)
![C[3]](Physics/Physics_832.gif) without multiple sums and without computing unnecessary terms as
 without multiple sums and without computing unnecessary terms as  ![0 = `+`(Sum(`/`(`*`(`^`(lambda, n), `*`({B, `^`(A, n)})), `*`(factorial(n))), n = 1), `*`(2, `*`(lambda, `*`(Sum(`/`(`*`(`^`(lambda, `+`(n, m)), `*`({C[2], `^`(A, m), `^`(B, n)})), `*`(factorial(n), `...](Physics/Physics_833.gif) 
  
 

![Typesetting:-mprintslash([F := proc (A, B, n) option cache; if n::negint then 0 elif n = 0 then B elif n::posint then %Commutator(A, F(A, B, `+`(n, `-`(1)))) else 'F(A, B, n)' end if end proc], [proc ...](Physics/Physics_837.gif)
![Typesetting:-mprintslash([F := proc (A, B, n) option cache; if n::negint then 0 elif n = 0 then B elif n::posint then %Commutator(A, F(A, B, `+`(n, `-`(1)))) else 'F(A, B, n)' end if end proc], [proc ...](Physics/Physics_838.gif)
![Typesetting:-mprintslash([F := proc (A, B, n) option cache; if n::negint then 0 elif n = 0 then B elif n::posint then %Commutator(A, F(A, B, `+`(n, `-`(1)))) else 'F(A, B, n)' end if end proc], [proc ...](Physics/Physics_839.gif)






![C[2]](Physics/Physics_846.gif) 
 ![C[2] := `+`(`-`(`*`(`/`(1, 2), `*`(Commutator(A, B)))))](Physics/Physics_847.gif)
![Typesetting:-mprintslash([C[2] := `*`(I, `*`(Physics:-Psigma[2]))], [`*`(I, `*`(Physics:-Psigma[2]))])](Physics/Physics_848.gif)
![H := `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(A, B, n))), `*`(factorial(n))), n = 2), `*`(2, `*`(lambda, `*`(sum(`/`(`*`(`^`(lambda, `+`(n, m)), `*`(F(A, F(B, C[2], n), m))), `*`(factorial(n), `*`(factor...](Physics/Physics_849.gif)

![C[3]](Physics/Physics_851.gif) by solving for it the coefficient of
 by solving for it the coefficient of  , and since due to the multi-index summation this expression already contains
, and since due to the multi-index summation this expression already contains  as a factor,
 as a factor,  ![C[3] = solve(value(H), C[3])](Physics/Physics_854.gif)
![C[3] = `+`(`-`(`*`(`/`(4, 3), `*`(Physics:-Psigma[1]))), `*`(`/`(2, 3), `*`(Physics:-Psigma[3])))](Physics/Physics_855.gif)
 , the right-hand side of the multi-index summation limit can be expressed in terms of an abstract N, and H transformed into a mapping:
, the right-hand side of the multi-index summation limit can be expressed in terms of an abstract N, and H transformed into a mapping: ![H := unapply(`+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(A, B, n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(sum(`/`(`*`(`^`(lambda, `+`(n, m)), `*`(F(A, F(B, C[2], n), m))), `*`(factorial(n), `*...](Physics/Physics_857.gif)
![H := unapply(`+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(A, B, n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(sum(`/`(`*`(`^`(lambda, `+`(n, m)), `*`(F(A, F(B, C[2], n), m))), `*`(factorial(n), `*...](Physics/Physics_858.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(`/`(`*`(`^`(lambda, N), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], N))), `*`(factorial(N))), `*`(2, `*`(lambda, `*`(sum(Physics:...](Physics/Physics_859.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(`/`(`*`(`^`(lambda, N), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], N))), `*`(factorial(N))), `*`(2, `*`(lambda, `*`(sum(Physics:...](Physics/Physics_860.gif)

![Physics:-Psigma[3]](Physics/Physics_862.gif)


![H := `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(A, B, n))), `*`(factorial(n))), n = 2), `*`(2, `*`(lambda, `*`(sum(`/`(`*`(`^`(lambda, `+`(n, m)), `*`(F(A, F(B, C[2], n), m))), `*`(factorial(n), `*`(factor...](Physics/Physics_865.gif) 
 

![C[5]](Physics/Physics_868.gif) by adding two more multi-index sums to
 by adding two more multi-index sums to ![H := unapply(`+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(A, B, n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(sum(`/`(`*`(`^`(lambda, `+`(n, m)), `*`(F(A, F(B, C[2], n), m))), `*`(factorial(n), `*...](Physics/Physics_869.gif)
![H := unapply(`+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(A, B, n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(sum(`/`(`*`(`^`(lambda, `+`(n, m)), `*`(F(A, F(B, C[2], n), m))), `*`(factorial(n), `*...](Physics/Physics_870.gif) . Unassign
. Unassign  first
 first 
![H := unapply(`+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(A, B, n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(sum(`/`(`*`(`^`(lambda, `+`(n, m)), `*`(F(A, F(B, C[2], n), m))), `*`(factorial(n), `*...](Physics/Physics_873.gif)
![H := unapply(`+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(A, B, n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(sum(`/`(`*`(`^`(lambda, `+`(n, m)), `*`(F(A, F(B, C[2], n), m))), `*`(factorial(n), `*...](Physics/Physics_874.gif)
![H := unapply(`+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(A, B, n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(sum(`/`(`*`(`^`(lambda, `+`(n, m)), `*`(F(A, F(B, C[2], n), m))), `*`(factorial(n), `*...](Physics/Physics_875.gif)
![C[5]](Physics/Physics_876.gif) in one go
 in one go ![for j to 4 do C[`+`(j, 1)] := solve(value(H(j)), C[`+`(j, 1)]) end do; 1](Physics/Physics_877.gif)
![Typesetting:-mprintslash([C[2] := `*`(I, `*`(Physics:-Psigma[2]))], [`*`(I, `*`(Physics:-Psigma[2]))])](Physics/Physics_878.gif)
![Typesetting:-mprintslash([C[3] := `+`(`-`(`*`(`/`(4, 3), `*`(Physics:-Psigma[1]))), `*`(`/`(2, 3), `*`(Physics:-Psigma[3])))], [`+`(`-`(`*`(`/`(4, 3), `*`(Physics:-Psigma[1]))), `*`(`/`(2, 3), `*`(Phy...](Physics/Physics_879.gif)
![Typesetting:-mprintslash([C[4] := `+`(`*`(`*`(`/`(4, 3), `*`(I)), `*`(Physics:-Psigma[2])), Physics:-Psigma[1], `*`(2, `*`(Physics:-Psigma[3])))], [`+`(`*`(`*`(`/`(4, 3), `*`(I)), `*`(Physics:-Psigma[...](Physics/Physics_880.gif)
![Typesetting:-mprintslash([C[5] := `+`(`-`(`*`(`+`(`*`(`/`(16, 3), `*`(I))), `*`(Physics:-Psigma[2]))), `-`(`*`(`/`(8, 9), `*`(Physics:-Psigma[1]))), `-`(`*`(`/`(158, 45), `*`(Physics:-Psigma[3]))))], ...](Physics/Physics_881.gif)
![C[5]](Physics/Physics_882.gif) is
 is 





![C[n]](Physics/Physics_889.gif) , then use that generalization to compute all the Zassenhaus coefficients up to
, then use that generalization to compute all the Zassenhaus coefficients up to ![C[10]](Physics/Physics_890.gif) . To type the formula for H for higher powers of
. To type the formula for H for higher powers of  is however prone to typographical mistakes. The following is a program, using the Maple programming language, that produces these formulas for an arbitrary integer power of
 is however prone to typographical mistakes. The following is a program, using the Maple programming language, that produces these formulas for an arbitrary integer power of  :
: 
![C[n]](Physics/Physics_894.gif) we want to compute, in this case we need 10 of them
 we want to compute, in this case we need 10 of them 
![Typesetting:-mprintslash([summation_indices := n, m, k, l, p, q, r, s, t, u], [n, m, k, l, p, q, r, s, t, u])](Physics/Physics_896.gif)
![for j to 4 do C[`+`(j, 1)] := solve(value(H(j)), C[`+`(j, 1)]) end do; 1](Physics/Physics_897.gif) , unassign
, unassign  again
 again 
![C[2]](Physics/Physics_900.gif) ,
, ![C[3]](Physics/Physics_901.gif) and
 and ![C[5]](Physics/Physics_902.gif) , are respectively constructed by the computer
, are respectively constructed by the computer 







![C[10]](Physics/Physics_911.gif) and make it be a mapping with respect to N, as done for
 and make it be a mapping with respect to N, as done for ![C[5]](Physics/Physics_912.gif) after
 after  
 
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(...](Physics/Physics_915.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(...](Physics/Physics_916.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(...](Physics/Physics_917.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(...](Physics/Physics_918.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(...](Physics/Physics_919.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(...](Physics/Physics_920.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(...](Physics/Physics_921.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(...](Physics/Physics_922.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(...](Physics/Physics_923.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(...](Physics/Physics_924.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(...](Physics/Physics_925.gif)
![Typesetting:-mprintslash([H := proc (N) options operator, arrow; `+`(sum(`/`(`*`(`^`(lambda, n), `*`(F(Physics:-Psigma[1], Physics:-Psigma[3], n))), `*`(factorial(n))), n = N), `*`(2, `*`(lambda, `*`(...](Physics/Physics_926.gif)
![C[10]](Physics/Physics_927.gif) all in one go
 all in one go ![for j to 9 do C[`+`(j, 1)] := solve(value(H(j)), C[`+`(j, 1)]) end do; 1](Physics/Physics_928.gif)
![Typesetting:-mprintslash([C[2] := `*`(I, `*`(Physics:-Psigma[2]))], [`*`(I, `*`(Physics:-Psigma[2]))])](Physics/Physics_929.gif)
![Typesetting:-mprintslash([C[3] := `+`(`-`(`*`(`/`(4, 3), `*`(Physics:-Psigma[1]))), `*`(`/`(2, 3), `*`(Physics:-Psigma[3])))], [`+`(`-`(`*`(`/`(4, 3), `*`(Physics:-Psigma[1]))), `*`(`/`(2, 3), `*`(Phy...](Physics/Physics_930.gif)
![Typesetting:-mprintslash([C[4] := `+`(`*`(`*`(`/`(4, 3), `*`(I)), `*`(Physics:-Psigma[2])), Physics:-Psigma[1], `*`(2, `*`(Physics:-Psigma[3])))], [`+`(`*`(`*`(`/`(4, 3), `*`(I)), `*`(Physics:-Psigma[...](Physics/Physics_931.gif)
![Typesetting:-mprintslash([C[5] := `+`(`-`(`*`(`+`(`*`(`/`(16, 3), `*`(I))), `*`(Physics:-Psigma[2]))), `-`(`*`(`/`(8, 9), `*`(Physics:-Psigma[1]))), `-`(`*`(`/`(158, 45), `*`(Physics:-Psigma[3]))))], ...](Physics/Physics_932.gif)
![Typesetting:-mprintslash([C[6] := `+`(`*`(`*`(`/`(1078, 405), `*`(I)), `*`(Physics:-Psigma[2])), `*`(`/`(1030, 81), `*`(Physics:-Psigma[1])), `-`(`*`(`/`(8, 81), `*`(Physics:-Psigma[3]))))], [`+`(`*`(...](Physics/Physics_933.gif)
![Typesetting:-mprintslash([C[7] := `+`(`*`(`*`(`/`(11792, 243), `*`(I)), `*`(Physics:-Psigma[2])), `*`(`/`(358576, 42525), `*`(Physics:-Psigma[1])), `*`(`/`(12952, 135), `*`(Physics:-Psigma[3])))], [`+...](Physics/Physics_934.gif)
![Typesetting:-mprintslash([C[8] := `+`(`*`(`*`(`/`(35837299048, 17222625), `*`(I)), `*`(Physics:-Psigma[2])), `*`(`/`(87277417, 492075), `*`(Physics:-Psigma[1])), `*`(`/`(833718196, 820125), `*`(Physic...](Physics/Physics_935.gif)
![Typesetting:-mprintslash([C[9] := `+`(`-`(`*`(`+`(`*`(`/`(449018539801088, 104627446875), `*`(I))), `*`(Physics:-Psigma[2]))), `-`(`*`(`/`(263697596812424, 996451875), `*`(Physics:-Psigma[1]))), `*`(`...](Physics/Physics_936.gif)
![Typesetting:-mprintslash([C[10] := `+`(`*`(`*`(`/`(2185211616689851230363020476, 4204571658549609375), `*`(I)), `*`(Physics:-Psigma[2])), `*`(`/`(3226624781090887605597040906, 21022858292748046875), `...](Physics/Physics_937.gif)
![C[n]](Physics/Physics_938.gif) . For that you need:
. For that you need:  , as done above in two cases, to avoid interference of the results just computed.
, as done above in two cases, to avoid interference of the results just computed. in
 in  , as many as the maximum value of n in
, as many as the maximum value of n in ![C[n]](Physics/Physics_942.gif) .
.![C[n]](Physics/Physics_943.gif) taking significantly more time than the computation of all the previous ones.
 taking significantly more time than the computation of all the previous ones. and the loop
 and the loop ![for j to 9 do C[`+`(j, 1)] := solve(value(H(j)), C[`+`(j, 1)]) end do; 1](Physics/Physics_945.gif) .
.
 with
 with  , forming a basis enlarged by their products, that satisfies
, forming a basis enlarged by their products, that satisfies  , so that
, so that  The elements of the algebra involving these variables are linear combinations of the form
 The elements of the algebra involving these variables are linear combinations of the form  
  are complex numbers,
are complex numbers,  is called the body and everything else,
 is called the body and everything else,  , is called the soul (nilpotent part).
, is called the soul (nilpotent part).  which is assumed to be differentiable. Then
 which is assumed to be differentiable. Then  can be defined by its Taylor expansion,
 can be defined by its Taylor expansion,  
 
![[anticommutativeprefix = {Theta, theta}, quantumoperators = {Theta, a}]](Physics/Physics_958.gif)

![Typesetting:-mprintslash([Physics:-`^`(`+`(1, Physics:-`*`(theta__1, theta__2), theta__1), -1)], [Physics:-`^`(`+`(1, Physics:-`*`(theta__1, theta__2), theta__1), -1)])](Physics/Physics_960.gif)
 is the application of the mapping
 is the application of the mapping  
![Typesetting:-mprintslash([f := proc (u) options operator, arrow; Physics:-`^`(u, -1) end proc], [proc (u) options operator, arrow; Physics:-`^`(u, -1) end proc])](Physics/Physics_963.gif)

![Typesetting:-mprintslash([a := `+`(1, Physics:-`*`(theta__1, theta__2), theta__1)], [`+`(1, Physics:-`*`(theta__1, theta__2), theta__1)])](Physics/Physics_965.gif)
 is
 is 
![Typesetting:-mprintslash([body := 1], [1])](Physics/Physics_968.gif)
 is
 is 
![Typesetting:-mprintslash([soul := `+`(Physics:-`*`(theta__1, theta__2), theta__1)], [`+`(Physics:-`*`(theta__1, theta__2), theta__1)])](Physics/Physics_971.gif)

![Typesetting:-mprintslash([Physics:-`^`(`+`(Physics:-`*`(theta__1, theta__2), theta__1), 2) = 0], [Physics:-`^`(`+`(Physics:-`*`(theta__1, theta__2), theta__1), 2) = 0])](Physics/Physics_973.gif)
 , the Taylor expansion, mentioned in the introductory paragraph is
, the Taylor expansion, mentioned in the introductory paragraph is 
![Typesetting:-mprintslash([`+`(1, `-`(Physics:-`*`(theta__1, theta__2)), `-`(theta__1))], [`+`(1, `-`(Physics:-`*`(theta__1, theta__2)), `-`(theta__1))])](Physics/Physics_976.gif)

![Typesetting:-mprintslash([`+`(1, `-`(Physics:-`*`(theta__1, theta__2)), `-`(theta__1))], [`+`(1, `-`(Physics:-`*`(theta__1, theta__2)), `-`(theta__1))])](Physics/Physics_978.gif)
 
 


 options operator, arrow; theta[`+`(n, 3)] end proc)](Physics/Physics_983.gif)

 options operator, arrow; theta[n] end proc)](Physics/Physics_985.gif)


![Typesetting:-mprintslash([exp(`+`(`-`(Physics:-`*`(theta[1], `+`(`*`(m[1, 1], `*`(theta[4])), `*`(m[2, 1], `*`(theta[5])), `*`(m[3, 1], `*`(theta[6]))))), `-`(Physics:-`*`(theta[2], `+`(`*`(m[1, 2], `...](Physics/Physics_988.gif)
![theta[i]](Physics/Physics_989.gif) variables.
 variables. ![Theta := [theta[1], theta[2], theta[3], theta[4], theta[5], theta[6]]; -1](Physics/Physics_990.gif)
 , as in the other 
series
 commands of the Maple system, indicate the order term to be
, as in the other 
series
 commands of the Maple system, indicate the order term to be ![O(`*`(`^`(theta[i], 7)))](Physics/Physics_992.gif) .
. ![Gtaylor(exp(`+`(`-`(Physics:-`*`(theta[1], `+`(`*`(m[1, 1], `*`(theta[4])), `*`(m[2, 1], `*`(theta[5])), `*`(m[3, 1], `*`(theta[6]))))), `-`(Physics:-`*`(theta[2], `+`(`*`(m[1, 2], `*`(theta[4])), `*`...](Physics/Physics_993.gif)
![Typesetting:-mprintslash([`+`(1, `-`(`*`(m[2, 2], `*`(Physics:-`*`(theta[2], theta[5])))), `-`(`*`(m[1, 2], `*`(Physics:-`*`(theta[2], theta[4])))), `-`(`*`(m[3, 1], `*`(Physics:-`*`(theta[1], theta[6...](Physics/Physics_994.gif)
![Typesetting:-mprintslash([`+`(1, `-`(`*`(m[2, 2], `*`(Physics:-`*`(theta[2], theta[5])))), `-`(`*`(m[1, 2], `*`(Physics:-`*`(theta[2], theta[4])))), `-`(`*`(m[3, 1], `*`(Physics:-`*`(theta[1], theta[6...](Physics/Physics_995.gif)
![Typesetting:-mprintslash([`+`(1, `-`(`*`(m[2, 2], `*`(Physics:-`*`(theta[2], theta[5])))), `-`(`*`(m[1, 2], `*`(Physics:-`*`(theta[2], theta[4])))), `-`(`*`(m[3, 1], `*`(Physics:-`*`(theta[1], theta[6...](Physics/Physics_996.gif)
![Typesetting:-mprintslash([`+`(1, `-`(`*`(m[2, 2], `*`(Physics:-`*`(theta[2], theta[5])))), `-`(`*`(m[1, 2], `*`(Physics:-`*`(theta[2], theta[4])))), `-`(`*`(m[3, 1], `*`(Physics:-`*`(theta[1], theta[6...](Physics/Physics_997.gif)
![Typesetting:-mprintslash([`+`(1, `-`(`*`(m[2, 2], `*`(Physics:-`*`(theta[2], theta[5])))), `-`(`*`(m[1, 2], `*`(Physics:-`*`(theta[2], theta[4])))), `-`(`*`(m[3, 1], `*`(Physics:-`*`(theta[1], theta[6...](Physics/Physics_998.gif)
![diff(`+`(1, `-`(`*`(m[2, 2], `*`(Physics:-`*`(theta[2], theta[5])))), `-`(`*`(m[1, 2], `*`(Physics:-`*`(theta[2], theta[4])))), `-`(`*`(m[3, 1], `*`(Physics:-`*`(theta[1], theta[6])))), `-`(`*`(m[2, 1...](Physics/Physics_999.gif)
![`+`(`*`(`+`(`*`(m[1, 1], `*`(m[2, 2])), `-`(`*`(m[1, 2], `*`(m[2, 1])))), `*`(m[3, 3])), `*`(m[3, 1], `*`(m[1, 2], `*`(m[2, 3]))), `*`(m[1, 3], `*`(`+`(`*`(m[2, 1], `*`(m[3, 2])), `-`(`*`(m[2, 2], `*`...](Physics/Physics_1000.gif)

![Typesetting:-mprintslash([Delta := `+`(`*`(m[1, 1], `*`(m[2, 2], `*`(m[3, 3]))), `-`(`*`(m[1, 1], `*`(m[2, 3], `*`(m[3, 2])))), `-`(`*`(m[1, 2], `*`(m[2, 1], `*`(m[3, 3])))), `*`(m[1, 2], `*`(m[2, 3],...](Physics/Physics_1002.gif)
![normal(`+`(Delta, `-`(`*`(`+`(`*`(m[1, 1], `*`(m[2, 2])), `-`(`*`(m[1, 2], `*`(m[2, 1])))), `*`(m[3, 3]))), `-`(`*`(m[3, 1], `*`(m[1, 2], `*`(m[2, 3])))), `-`(`*`(m[1, 3], `*`(`+`(`*`(m[2, 1], `*`(m[3...](Physics/Physics_1003.gif)




![[anticommutativeprefix = {Lambda, Theta, lambda, theta}, quantumoperators = {Lambda, Theta, a}]](Physics/Physics_1008.gif)










 and
 and  are equal to 0.
are equal to 0.  

 and
 and  commute with their commutator, this product of exponentials can be combined using Hausdorff's formula
 commute with their commutator, this product of exponentials can be combined using Hausdorff's formula 

 ,
,  ,
,  ) and their square is equal to 0:
) and their square is equal to 0: 



 as a differentiation or series variable in equal footing as
 as a differentiation or series variable in equal footing as  itself
 itself






)(0, 0, 0))), `*`(`/`(1, 2), `*`(`^`(x, 2), `*`((D[1, 1](F))(0, 0, 0)))), `*`(`+`(`*`(x, `*`((D[1, 3](F))(0, 0, 0))), (D[3](F))(0, 0, 0)), ...](Physics/Physics_1043.gif)
)(0, 0, 0))), `*`(`/`(1, 2), `*`(`^`(x, 2), `*`((D[1, 1](F))(0, 0, 0)))), `*`(`+`(`*`(x, `*`((D[1, 3](F))(0, 0, 0))), (D[3](F))(0, 0, 0)), ...](Physics/Physics_1044.gif)

![[noncommutativeprefix = {A, B}]](Physics/Physics_1046.gif)




 
 
![Typesetting:-mprintslash([P := `*`(a, `*`(b, `*`(c, `*`(d))))], [`*`(a, `*`(b, `*`(c, `*`(d))))])](Physics/Physics_1053.gif)
 and
 and  "in place".
 "in place". ![SortProducts(P, [c, b])](Physics/Physics_1056.gif)

 and
 and  and put them to the left, then to the right
 and put them to the left, then to the right ![SortProducts(P, [c, b], totheleft)](Physics/Physics_1060.gif)

![SortProducts(P, [c, b], totheright)](Physics/Physics_1062.gif)

 and
 and  commute between themselves, but none of them commute with
 commute between themselves, but none of them commute with  .
. 



![Typesetting:-mprintslash([P := Physics:-`*`(Z1, Z2, Z3, Z4)], [Physics:-`*`(Z1, Z2, Z3, Z4)])](Physics/Physics_1071.gif)
![SortProducts(P, [Z3, Z2])](Physics/Physics_1072.gif)
![Typesetting:-mprintslash([Physics:-`*`(Z1, Z3, Z2, Z4)], [Physics:-`*`(Z1, Z3, Z2, Z4)])](Physics/Physics_1073.gif)
![SortProducts(P, [Z3, Z2], totheright)](Physics/Physics_1074.gif)
![Typesetting:-mprintslash([Physics:-`*`(Z1, Z4, Z3, Z2)], [Physics:-`*`(Z1, Z4, Z3, Z2)])](Physics/Physics_1075.gif)
![SortProducts(`*`(Z1, `*`(Z5)), [Z5, Z1])](Physics/Physics_1076.gif)
![Typesetting:-mprintslash([Physics:-`*`(Z1, Z5)], [Physics:-`*`(Z1, Z5)])](Physics/Physics_1077.gif)
![SortProducts(`*`(Z1, `*`(Z5)), [Z5, Z1], usecommutator)](Physics/Physics_1078.gif)


![Typesetting:-mprintslash([Physics:-`*`(Z1, Z5)], [Physics:-`*`(Z1, Z5)])](Physics/Physics_1081.gif)
![SortProducts(`*`(Z1, `*`(Z5)), [Z5, Z1], useanticommutator)](Physics/Physics_1082.gif)


![Typesetting:-mprintslash([Physics:-`*`(Z1, Z5)], [Physics:-`*`(Z1, Z5)])](Physics/Physics_1085.gif)
 with
 with  at the end (so, to the right of P) and sort it with
 at the end (so, to the right of P) and sort it with  to the left. This is a case where
 to the left. This is a case where  does not commute with any of the other operands. Compare the results with and without the option usecommutator,
 does not commute with any of the other operands. Compare the results with and without the option usecommutator, 
![Typesetting:-mprintslash([P := Physics:-`*`(Z1, Z2, Z3, Z4, Z5)], [Physics:-`*`(Z1, Z2, Z3, Z4, Z5)])](Physics/Physics_1091.gif)
![SortProducts(P, [Z5, Z1])](Physics/Physics_1092.gif)
![Typesetting:-mprintslash([Physics:-`*`(Z1, Z2, Z3, Z4, Z5)], [Physics:-`*`(Z1, Z2, Z3, Z4, Z5)])](Physics/Physics_1093.gif)
![SortProducts(P, [Z5, Z1], usecommutator)](Physics/Physics_1094.gif)

![SortProducts(P, [Z5, Z3], usecommutator)](Physics/Physics_1096.gif)


![[spacetimeindices = lowercaselatin]](Physics/Physics_1099.gif)

![{A, B, F, H, J, Physics:-Dgamma[a], Physics:-Psigma[a], Physics:-d_[a], Physics:-g_[a, b], Physics:-LeviCivita[a, b, c, d]}](Physics/Physics_1101.gif)












![Define(T[a, b, c], symmetric = [b, c])](Physics/Physics_1114.gif)

![{A[`~c`], B[a, `~d`], Physics:-Dgamma[a], F[e, d, `~j`], H[a, f, `~f`, j], J[e, c, j, k, f], Physics:-Psigma[a], T[a, b, c], Physics:-d_[a], Physics:-g_[a, b], Physics:-LeviCivita[a, b, c, d]}](Physics/Physics_1116.gif)
![`+`(T[1, 2, 3], `-`(T[1, 3, 2]))](Physics/Physics_1117.gif)
![`+`(T[1, 2, 3], `-`(T[1, 3, 2]))](Physics/Physics_1118.gif)
![Simplify(`+`(T[1, 2, 3], `-`(T[1, 3, 2])))](Physics/Physics_1119.gif)

 with
 with  and take the difference we get an antisymmetric tensorial expression
 and take the difference we get an antisymmetric tensorial expression ![TT := `+`(`*`(2, `*`(Antisymmetrize(T[a, b, c], [a, c]))))](Physics/Physics_1123.gif)
![Typesetting:-mprintslash([TT := `+`(T[a, b, c], `-`(T[c, b, a]))], [`+`(T[a, b, c], `-`(T[c, b, a]))])](Physics/Physics_1124.gif)
![expand(`*`(A[a], `*`(A[c], `*`(TT)))) = 0](Physics/Physics_1125.gif)
![`+`(`*`(A[`~a`], `*`(A[`~c`], `*`(T[a, b, c]))), `-`(`*`(A[`~a`], `*`(A[`~c`], `*`(T[c, b, a]))))) = 0](Physics/Physics_1126.gif)
![Simplify(`+`(`*`(A[`~a`], `*`(A[`~c`], `*`(T[a, b, c]))), `-`(`*`(A[`~a`], `*`(A[`~c`], `*`(T[c, b, a]))))) = 0)](Physics/Physics_1127.gif)


![[spaceindices = lowercaselatin]](Physics/Physics_1130.gif)
![Psigma[definition]](Physics/Physics_1131.gif)

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

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

![`+`(`*`(2, `*`(Psigma[1], `*`(Psigma[2]))))](Physics/Physics_1137.gif)
![Typesetting:-mprintslash([`+`(Physics:-`*`(Physics:-Psigma[1], Physics:-Psigma[2]), Physics:-`*`(Physics:-Psigma[2], Physics:-Psigma[1]))], [`+`(Physics:-`*`(Physics:-Psigma[1], Physics:-Psigma[2]), P...](Physics/Physics_1138.gif)
![Simplify(`+`(Physics:-`*`(Physics:-Psigma[1], Physics:-Psigma[2]), Physics:-`*`(Physics:-Psigma[2], Physics:-Psigma[1])))](Physics/Physics_1139.gif)

![`*`(`^`(Psigma[2], 2))](Physics/Physics_1141.gif)
![Physics:-`^`(Physics:-Psigma[2], 2)](Physics/Physics_1142.gif)
![Simplify(Physics:-`^`(Physics:-Psigma[2], 2))](Physics/Physics_1143.gif)

![`*`(Psigma[1], `*`(Psigma[3]))](Physics/Physics_1145.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Psigma[1], Physics:-Psigma[3])], [Physics:-`*`(Physics:-Psigma[1], Physics:-Psigma[3])])](Physics/Physics_1146.gif)
![Simplify(Physics:-`*`(Physics:-Psigma[1], Physics:-Psigma[3]))](Physics/Physics_1147.gif)
![`+`(`-`(`*`(`+`(I), `*`(Physics:-Psigma[2]))))](Physics/Physics_1148.gif)
![Library:-RewriteInMatrixForm(`+`(Physics:-`*`(Physics:-Psigma[1], Physics:-Psigma[2]), Physics:-`*`(Physics:-Psigma[2], Physics:-Psigma[1])))](Physics/Physics_1149.gif)

![Library:-PerformMatrixOperations(`+`(Physics:-`*`(Physics:-Psigma[1], Physics:-Psigma[2]), Physics:-`*`(Physics:-Psigma[2], Physics:-Psigma[1])))](Physics/Physics_1151.gif)

![Dgamma[definition]](Physics/Physics_1153.gif)

![TensorArray(%AntiCommutator(Physics:-Dgamma[`~mu`], Physics:-Dgamma[`~nu`]) = `+`(`*`(2, `*`(Physics:-g_[`~mu`, `~nu`]))))](Physics/Physics_1155.gif)

![gamma[`~mu`]](Physics/Physics_1157.gif) 
 ![Dgamma[`~`]](Physics/Physics_1158.gif)



![gamma[5]](Physics/Physics_1162.gif) is also visible using the keyword definition
 is also visible using the keyword definition ![Dgamma[5, definition]](Physics/Physics_1163.gif)
![Typesetting:-mprintslash([Physics:-Dgamma[5] = Physics:-Dgamma[`~5`], Physics:-Dgamma[`~5`] = `+`(`-`(`*`(`+`(I), `*`(Physics:-`*`(Physics:-Dgamma[`~0`], Physics:-Dgamma[`~1`], Physics:-Dgamma[`~2`], ...](Physics/Physics_1164.gif)
![value(TensorArray([Physics:-Dgamma[5] = Physics:-Dgamma[`~5`], Physics:-Dgamma[`~5`] = `+`(`-`(`*`(`+`(I), `*`(`*`(Physics:-Dgamma[`~0`], Physics:-Dgamma[`~1`], Physics:-Dgamma[`~2`], Physics:-Dgamma[...](Physics/Physics_1165.gif)

![(Physics:-Dgamma[5] = Physics:-Dgamma[`~5`], Physics:-Dgamma[`~5`] = `+`(`-`(`*`(`+`(I), `*`(`*`(Physics:-Dgamma[`~0`], Physics:-Dgamma[`~1`], Physics:-Dgamma[`~2`], Physics:-Dgamma[`~3`]))))), `*`(Ph...](Physics/Physics_1167.gif)

![value(TensorArray([Physics:-Dgamma[5] = Physics:-Dgamma[`~5`], Physics:-Dgamma[`~5`] = `+`(`-`(`*`(`+`(I), `*`(`*`(Physics:-Dgamma[`~0`], Physics:-Dgamma[`~1`], Physics:-Dgamma[`~2`], Physics:-Dgamma[...](Physics/Physics_1169.gif)

![`+`(`*`(Dgamma[1], `*`(Dgamma[2])), Dgamma[0])](Physics/Physics_1171.gif)
![Typesetting:-mprintslash([`+`(Physics:-`*`(Physics:-Dgamma[1], Physics:-Dgamma[2]), Physics:-Dgamma[4])], [`+`(Physics:-`*`(Physics:-Dgamma[1], Physics:-Dgamma[2]), Physics:-Dgamma[4])])](Physics/Physics_1172.gif)
![Library:-RewriteInMatrixForm(`+`(Physics:-`*`(Physics:-Dgamma[1], Physics:-Dgamma[2]), Physics:-Dgamma[4]))](Physics/Physics_1173.gif)

![Library:-PerformMatrixOperations(`+`(Physics:-`*`(Physics:-Dgamma[1], Physics:-Dgamma[2]), Physics:-Dgamma[4]))](Physics/Physics_1175.gif)

![`*`(`^`(Dgamma[mu], 2), `*`(Dgamma[`~lambda`], `*`(Dgamma[`~nu`], `*`(Dgamma[`~rho`], `*`(Dgamma[`~sigma`])))))](Physics/Physics_1177.gif)
![Typesetting:-mprintslash([Physics:-`*`(Physics:-Dgamma[mu], Physics:-Dgamma[`~lambda`], Physics:-Dgamma[`~nu`], Physics:-Dgamma[`~rho`], Physics:-Dgamma[`~sigma`], Physics:-Dgamma[`~mu`])], [Physics:-...](Physics/Physics_1178.gif)
![Simplify(Physics:-`*`(Physics:-Dgamma[mu], Physics:-Dgamma[`~lambda`], Physics:-Dgamma[`~nu`], Physics:-Dgamma[`~rho`], Physics:-Dgamma[`~sigma`], Physics:-Dgamma[`~mu`]))](Physics/Physics_1179.gif)
![Typesetting:-mprintslash([`+`(`*`(2, `*`(Physics:-`*`(Physics:-Dgamma[`~sigma`], Physics:-Dgamma[`~lambda`], Physics:-Dgamma[`~nu`], Physics:-Dgamma[`~rho`]))), `*`(2, `*`(Physics:-`*`(Physics:-Dgamma...](Physics/Physics_1180.gif)
![TensorArray(`+`(Physics:-`*`(Physics:-Dgamma[mu], Physics:-Dgamma[`~lambda`], Physics:-Dgamma[`~nu`], Physics:-Dgamma[`~rho`], Physics:-Dgamma[`~sigma`], Physics:-Dgamma[`~mu`]), `-`(`*`(2, `*`(Physic...](Physics/Physics_1181.gif)



 symbol is a tensor, its components do not change under a transformation of coordinates, that is not the case in a Minkowski or curved spacetime. Also, KroneckerDelta is more often than otherwise used taking
 symbol is a tensor, its components do not change under a transformation of coordinates, that is not the case in a Minkowski or curved spacetime. Also, KroneckerDelta is more often than otherwise used taking ![delta[a, b] = 1](Physics/Physics_1186.gif) when
 when  , while due to Einstein's sum rule for repeated indices, if KroneckerDelta were a tensor and
, while due to Einstein's sum rule for repeated indices, if KroneckerDelta were a tensor and  is a tensor index, then
 is a tensor index, then ![delta[a, a] = `*`(dimension, `*`(of, `*`(space)))](Physics/Physics_1189.gif) . To avoid this ambiguity of notation, in Maple 2019 KroneckerDelta is not implemented as a tensor, but as the standard non-tensorial
. To avoid this ambiguity of notation, in Maple 2019 KroneckerDelta is not implemented as a tensor, but as the standard non-tensorial  symbol.
 symbol. 
![g[a, b]](Physics/Physics_1191.gif) , or define a Kronecker
, or define a Kronecker  tensor for that purpose. For example
 tensor for that purpose. For example 
![`The dimension and signature of the tensor space are set to `[3, `- - +`]](Physics/Physics_1194.gif)


![[dimension = 3, metric = {(1, 1) = 1, (2, 2) = 1, (3, 3) = 1}, spacetimeindices = lowercaselatin]](Physics/Physics_1197.gif)
![KroneckerDelta[a, a]](Physics/Physics_1198.gif)

![g_[a, a]](Physics/Physics_1200.gif)

![delta[j, k] = Matrix(3, proc (j, k) options operator, arrow; KroneckerDelta[j, k] end proc)](Physics/Physics_1202.gif)



![{Physics:-Dgamma[a], Physics:-Psigma[a], Physics:-d_[a], delta[j, k], Physics:-g_[a, b], Physics:-LeviCivita[a, b, c]}](Physics/Physics_1206.gif)
![delta[]](Physics/Physics_1207.gif)

![delta[a, `~b`, matrix]](Physics/Physics_1209.gif)

![delta[`~`]](Physics/Physics_1211.gif)

![delta[trace]](Physics/Physics_1213.gif)

![delta[a, a]](Physics/Physics_1215.gif)
![delta[a, a]](Physics/Physics_1216.gif)
![SumOverRepeatedIndices(delta[a, a])](Physics/Physics_1217.gif)

 tensor, well defined in an Euclidean space, however changes when the space is not Euclidean. For example:
 tensor, well defined in an Euclidean space, however changes when the space is not Euclidean. For example: 
![[signature = `- - +`]](Physics/Physics_1221.gif)
![delta[]](Physics/Physics_1222.gif)

![delta[a, `~b`, matrix]](Physics/Physics_1224.gif)

![delta[trace]](Physics/Physics_1226.gif)
