
    sh9                         S SK JrJr  S SKJrJrJrJrJr  S SK	J
rJrJrJrJrJr  S SKJr  S rS rS rS rS	 rS
 rS rg)    )eyeMatrix)tensor_indices
TensorHeadtensor_headsTensExprcanon_bp)GammaMatrixLorentzIndexkahane_simplifygamma_trace_simplify_single_linesimplify_gamma_expression)Symbolc                     [        U 5      n [        U5      n[        U [        5      (       a  U R                  U5      $ [        U[        5      (       a  UR                  U 5      $ X:H  $ N)r	   
isinstancer   equals)arg1arg2s     /Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/sympy/physics/hep/tests/test_gamma_matrices.py_is_tensor_eqr   	   sT    D>DD>D$!!{{4  	D(	#	#{{4  <    c           	      Z*   [        S[        5      u  p#pE[        S[        5      u  pgpp[        S[        5      u  ppnnnn[        S[        5      u  nnn[        S[        5      u  nnnnnnnS nUS:X  Ga  [        U5      [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U5      -  [        U* 5      -  n[        U " U5      S[        U5      -  [        U5      -  [        U5      -  S[        U5      -  [        U5      -  [        U5      -  -
  5      (       d   e[        U5      [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U	5      -  [        U5      -  [        U* 5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U5      -  [        U* 5      -  [        U5      -  [        U5      -  [        U	* 5      -  n[        U " U5      S	[        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  S	[        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  -   S	[        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  -   S	[        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  -   5      (       d   eS
 n [        U5      [        U* 5      -  nU " U5      n![        U " U5      U!5      (       d   e[        U5      [        U5      -  [        U* 5      -  [        U* 5      -  nU " SU-  US-  -
  5      n![        U " U5      U!5      (       d   e[        U5      [        U5      -  [        U* 5      -  [        U* 5      -  nU " US-  5      n![        U " U5      U!5      (       d   e[        U5      [        U5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U5      -  nU " SU-  SUS-  -  -
  US-  -   5      n![        U " U5      U!5      (       d   e[        U5      [        U5      -  [        U5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  nU " US-  5      n![        U " U5      U!5      (       d   e[        U5      [        U5      -  [        U5      -  [        U	5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U	* 5      -  nU " SU-  S	US-  -  -   SUS-  -  -
  US-  -   5      n![        U " U5      U!5      (       d   e[        U* 5      [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  nU " SU-  SUS-  -  -   SUS-  -  -
  US-  -   5      n![        U " U5      U!5      (       d   e[        U* 5      [        U5      -  [        U* 5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U5      -  [        U* 5      -  nU " SU-  SUS-  -  -
  SUS-  -  -   US-  -
  5      n![        U " U5      U!5      (       d   e[        U5      [        U5      -  [        U5      -  [        U	5      -  [        U
5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U
* 5      -  [        U	* 5      -  nU " SU-  SUS-  -  -
  SUS-  -  -   SUS-  -  -
  US-  -   5      n![        U " U5      U!5      (       d   e[        U5      [        U5      -  [        U5      -  [        U	5      -  [        U
5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U	* 5      -  [        U
* 5      -  nU " SU-  SUS-  -  -
  SUS-  -  -   S	US-  -  -
  US-  -   5      n![        U " U5      U!5      (       d   e[        U5      [        U5      -  [        U5      -  [        U	5      -  [        U
5      -  [        U5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U
* 5      -  [        U	* 5      -  nU " SU-  SUS-  -  -
  SUS-  -  -   SUS-  -  -
  SUS-  -  -   US-  -
  5      n![        U " U5      U!5      (       d   e[        U5      [        U5      -  [        U5      -  [        U	5      -  [        U
5      -  [        U5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U	* 5      -  [        U
* 5      -  nU " SU-  SUS-  -  -
  SUS-  -  -   S US-  -  -
  S!US-  -  -   US-  -
  5      n![        U " U5      U!5      (       d   e[        U5      [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  n[        U " U5      S"[        U5      -  [        U5      -  [        U5      -  SU-
  [        U5      -  [        U5      -  [        U5      -  -   5      (       d   e[        U5      [        U5      -  [        U* 5      -  n[        U " U5      SU-
  [        U5      -  5      (       d   e[        U5      [        U5      -  [        U5      -  [        U* 5      -  n[        U " U5      S[        U5      -  [        U5      -  S[        U5      -  [        U5      -  -   SU-
  [        U5      -  [        U5      -  -
  5      (       d   eS[        U5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U* 5      -  nU " U5      n"[        U"US"U-  S-   -  [        U5      -  5      (       d   e[        U5      [        U5      -  [        U5      -  [        U* 5      -  [        U* 5      -  nU " U5      n"[        U"U* S-   S-  [        U5      -  5      (       d   e[        U5      [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  nU " U5      n"[        U"US-
  [        U5      -  [        U5      -  [        U5      -  S[        U5      -  U" UU5      -  -   5      (       d   e[        U5      [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U* 5      -  nU " U5      n"[        U"US-
  S-  [        U5      -  [        U5      -  SU-  S	-
  U" UU5      -  -   5      (       d   e[        U5      [        U5      -  [        U5      -  [        U* 5      -  [        U* 5      -  nU " U5      n"[        U"U* S-   US-
  -  S-   [        U5      -  5      (       d   e[        U5      [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  nU " U5      n"[        U"SU-  U* S-   S-  US-
  -  -   S-   [        U5      -  5      (       d   eS[        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  nU " U5      n"[        U"S"U-  S-   [        U5      -  [        U5      -  [        U5      -  S[        U5      -  [        U5      -  [        U5      -  -
  5      (       d   e[        U5      [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U5      -  [        U* 5      -  nU " U5      n"[        U"U* S-   U* S-   -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  SU-  S-
  [        U5      -  [        U5      -  [        U5      -  [        U5      -  -   5      (       d   e[        U5      * [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U5      -  nU " U5      n"[        U"US-
  [        U5      -  [        U5      -  [        U5      -  [        U5      -  S[        U5      -  [        U5      -  [        U5      -  [        U5      -  -   5      (       d   e[        U* 5      [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U5      -  nU " U5      n"U* S-   S-  S-   [        U5      -  [        U5      -  [        U5      -  [        U5      -  SU-  S	-
  [        U5      -  [        U5      -  [        U5      -  [        U5      -  -   SU-  S	-
  [        U5      -  [        U5      -  [        U5      -  [        U5      -  -   S[        U5      -  [        U5      -  [        U5      -  [        U5      -  -   S[        U5      -  [        U5      -  [        U5      -  [        U5      -  -   S[        U5      -  [        U5      -  [        U5      -  [        U5      -  -   n#S[        U5      -  [        U5      -  [        U5      -  [        U5      -  S[        U5      -  [        U5      -  [        U5      -  [        U5      -  -   n$US:X  a%  [        U"U#5      (       d  [        U"U$5      (       d   eO[        U"U#5      (       d   e[        U5      nU " U5      n"[        U"U5      (       d   eS#[        U5      -  nU " U5      n"[        U"U5      (       d   eS$[        U5      -  [        U5      -  [        U* 5      -  [        U5      -  nU " U5      n"[        U"U5      (       d   eg%)&z
Perform tests to check if sfunc is able to simplify gamma matrix expressions.

Parameters
==========

`sfunc`     a function to simplify a `TIDS`, shall return the simplified `TIDS`.
`D`         the number of dimension (in most cases `D=4`).

mu, nu, rho, sigmaza1:7z.mu11, mu12, mu21, mu31, mu32, mu41, mu51, mu52zmu61, mu71, mu72m0:7c                 f    [        U 5      [        U5      -  [        U5      [        U 5      -  -   S-  $ )N   )G)xxyys     r   g4execute_gamma_simplify_tests_for_function.<locals>.g$   s*    "aeaeAbEk)1,,r         c                     U [        S5      -  $ )Nr$   )r   )nes    r   	add_delta<execute_gamma_simplify_tests_for_function.<locals>.add_delta9   s    CF{r   r                  @   p   <      x   H   i  i0  i        iP  iH        i   N)r   r   r   r   )%tfuncDmunurhosigmaa1a2a3a4a5a6mu11mu12mu21mu31mu32mu41mu51mu52mu61mu71mu72m0m1m2m3m4m5m6r"   tr)   tsstresult1result2s%                                        r   )execute_gamma_simplify_tests_for_functionra      s|    ((<lKBC+FLABBB5CDt  wC  6D2DD$d%&8,GD$!/!EBBBB- 	AvrU1T7]1R5 4(B3/$72#>U1Xr!D'z!D''9!D''AAagIaPTgDUVWX\V]D]']^^^^rU1T7]1T7"e$$%dG,e$$%dG,,-dG4  e$ %&dG,  f	% &'tW	- ./tW	5
  f%
 &'tW-  f% &'tW- ./tW5  f% U1XqwJqwqw&qw.qw6qw>qwFqwNqQUwVWXY]W^^_`ae_ffiklmnrlsistuvzt{i{|}  C  }D  jD  EF  GK  EL  jL  MN  OS  MT  jT  UV  W[  U\  j\  ]^  _c  ]d  jd  ef  gk  el  jl  mn  os  mt  jt  uv  w{  u|  j|  }~  C  }D  jD  D  GI  JK  LP  JQ  GQ  RS  TX  RY  GY  Z[  \`  Za  Ga  bc  dh  bi  Gi  jk  lp  jq  Gq  rs  tx  ry  Gy  z{  |@  zA  GA  BC  DH  BI  GI  JK  LP  JQ  GQ  RS  TX  RY  GY  Z[  \`  Za  Ga  a  df  gh  im  gn  dn  op  qu  ov  dv  wx  y}  w~  d~  @  AE  F  dF  GH  IM  GN  dN  OP  QU  OV  dV  WX  Y]  W^  d^  _`  ae  _f  df  gh  im  gn  dn  op  qu  ov  dv  wx  y}  w~  d~  ~  	 
 
2q"vA	1Bq2&&&&	
2quQsV	ArcF	"A	1Q3A:	Bq2&&&&	
2quQsV	ArcF	"A	1a4Bq2&&&&	
2quQtW	QsV	#ArcF	*1S6	1A	1Q31a4<!Q$&	'Bq2&&&&	
2quQsV	AsdG	#ArcF	*1bS6	1A	1a4Bq2&&&&	
2quQrU	1R5	 B3	'2#	.q"v	5af	<A	2a4"QT'>AadF*QT1	2Bq2&&&&	
B32#q#w	q%y	(2	.qu	4QuX	=af	DA	3q52ad7?Qq!tV+ad2	3Bq2&&&&	
B3"ag	ah	&qv	-af	4QrU	:1eV9	DA	1Q3AqD=1QT6)AqD0	1Bq2&&&&	
2quQrU	1R5	 2	&q"v	-af	4QsV	;ArcF	B1bS6	IA	2a4#ad(?R1W,r!Q$w6A=	>Bq2&&&&	
2quQrU	1R5	 2	&q"v	-af	4QsV	;ArcF	B1bS6	IA	2a4#ad(?R1W,r!Q$w6A=	>Bq2&&&&	
2quQrU	1R5	 2	&qu	,QsV	3ArcF	:1bS6	A!RC&	HB3	OPQSURUPV	VA	3q53q!t8#c!Q$h.QT9Bq!tGCadJ	KBq2&&&&	
2quQrU	1R5	 2	&qu	,QsV	3ArcF	:1bS6	A!RC&	HB3	OPQSURUPV	VA	3q53q!t8#c!Q$h.QT9Bq!tGCadJ	KBq2&&&& 
2quQsV	AeH	$QsV	+AqBqxK#$6qu$<!QrU{1S6?QRSTYRZ?Z$Z\\\\	
2quQsV	AqAaC2;////	
2quQsV	ArcF	"Aq1QrU71S6>AafHQrUN#Bac1R5[QRSVQWEW#WXXXX	!B%"aeArcF"1bS6)A	qBaAlAbE12222	"aeAbE!RC& B3'A	qBrAvk1R501111	"aeAbE!B%2#&A	qBa!eQrU]1R50261R52r9JJKKKK	"aeAbE!B%2#&q"v-A	qBq1uqj!B%/"51r1R98LLMMMM	"aeAbE!RC& B3'A	qBrAvA.2AbE9::::	"aeAbE!B%2#&q"v-af4A	qBbdqb1fq[!a%%881<aeCDDDD	!B%"aeAbE!!RC&(A	qBr!tax2.qu4QrU:QquWQrU]1R5=PPRRRR	"aeAbE!B%"%af,QrU21bS69A	qBQ!a0!B%7"=aeCAbEIQqSSTWVWXZV[O\]^`\aLabcdfbgLghijlhmLmmoooo	
2quQrU1R5 B3'"-A	qBq1uaemAbE1!B%7"=!B%"aPRe@STUVXTY@YY[[[[	2#quQrU1R5 2&qu,QsV3AbE9A	qBQ{Q"%ae+AbE1!B%7	
1r1R52qu$QrU*+./cBh"-=ae-CAbE-I!B%-OP
AbE'!B%-"
ae
#$&'"gaemAbE&9!B%&?@ 	
!B%"aeAbE!"G "gaemAbE!!B%'!AbE'!B%-"*=ae*CCGAvR'++}R'/K/KKKR'++++ 	
"A	qBQ
1R5A	qBQAbE	!B%2#qu$A	qBQr   c                      S n [        U SS9  g )Nc                     [        U 5      $ r   )r   )es    r   r>   $test_kahane_algorithm.<locals>.tfunc   s    $Q''r   r$   r?   )ra   )r>   s    r   test_kahane_algorithmrg      s    ( .eq9r   c                     [        S[        5      u  pp#pEpgpppp[        S[        5      u  nnnnSn[        U 5      [        U5      -  n[        U5      nUR	                  U5      (       d   e[        U 5      [        U5      -  [        U * 5      -  n[        U5      nUR	                  S[        U5      -  5      (       d   e[        U 5      [        U5      -  [        U * 5      -  n[        U5      nUR	                  S[        U5      -  5      (       d   e[        U 5      [        U5      -  n[        U5      nUR	                  U5      (       d   e[        U 5      [        U5      -  n[        U5      nUR	                  U5      (       d   e[        U 5      [        U * 5      -  n[        U5      nUR	                  S[        S5      -  5      (       d   e[        U 5      [        U * 5      -  n[        U5      nUR	                  S[        S5      -  5      (       d   e[        U 5      [        U * 5      -  n[        U5      nUR	                  S[        S5      -  5      (       d   e[        U 5      [        U5      -  [        U * 5      -  n[        U5      nUR	                  S[        U5      -  5      (       d   e[        U 5      [        U5      -  [        U * 5      -  [        U* 5      -  n[        U5      nUR	                  SU-  US-  -
  [        S5      -  5      (       d   e[        U 5      [        U5      -  [        U * 5      -  [        U* 5      -  n[        U5      nUR	                  SU-  US-  -
  [        S5      -  5      (       d   e[        U 5      [        U * 5      -  [        U5      -  [        U* 5      -  n[        U5      nUR	                  S[        S5      -  5      (       d   e[        U5      [        U5      -  [        U* 5      -  [        U* 5      -  n[        U5      nUR	                  US-  [        S5      -  5      (       d   e[        U5      [        U5      -  [        U* 5      -  [        U* 5      -  n[        U5      nUR	                  US-  [        S5      -  5      (       d   e[        U5      [        U5      -  [        U* 5      -  [        U* 5      -  n[        U5      nUR	                  US-  [        S5      -  5      (       d   e[        U5      [        U5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U5      -  n[        U5      nUR	                  SU-  SUS-  -  -
  US-  -   [        S5      -  5      (       d   e[        U* 5      [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  n[        U5      nUR	                  SU-  S	US-  -  -   S
US-  -  -
  US-  -   [        S5      -  5      (       d   e[        U* 5      [        U5      -  [        U* 5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U5      -  [        U* 5      -  n[        U5      nUR	                  S
U-  SUS-  -  -
  SUS-  -  -   US-  -
  [        S5      -  5      (       d   e[        U5      [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  n[        U5      nUR	                  S[        U5      -  [        U5      -  [        U5      -  5      (       d   e[        U5      [        U* 5      -  [        U5      -  [        U5      -  n[        U5      nUR	                  S[        U5      -  [        U5      -  5      (       d   e[        U5      [        U5      -  [        U5      -  [        U* 5      -  n[        U5      nUR	                  S[        U5      -  [        U5      -  5      (       d   eg )Nzi0:16r   r$   r<   r   r&   r+   r.   r/   r-   r0   r1   )r   r   r   r   r   r   )i0i1i2i3i4i5i6i7i8i9i10i11i12i13i14i15r@   rA   rB   rC   r?   r\   rs                          r   test_kahane_simplify1rz      s   <J7T`<a9B"bB###'(<lKBC	A	"aeAA88A;;;	"aeArcFAA88BquH	"aeArcFAA88BquH	"aeAA88A;;;	"aeAA88A;;;	"afAA88Ac!fH	"afAA88Ac!fH	"afAA88Ac!fH	"aeArcFAA88BquH	"aeArcF1bS6!AA88QqS1a4ZQ'((((	"aeArcF1bS6!AA88QqS1a4ZQ'((((	"afQrU1bS6!AA88Bs1vI	
2quQsV	ArcF	"AA88AqDQK    	
2quQsV	ArcF	"AA88AqDQK    	
2quQsV	ArcF	"AA88AqDQK    	
2quQtW	QsV	#ArcF	*1S6	1AA88QqS1QT6\AqD(#a&01111	
B32#q#w	q%y	(2	.qu	4QuX	=af	DAA88SUR1W_qAv-14c!f<====	
B3"ag	ah	&qv	-af	4QrU	:1eV9	DAA88QqS2ad7]Qq!tV+ad2CF:;;;; 
2quQsV	AeH	$QsV	+AA88BqxK#&qu,----	
2q"vaf	QuX	%AA88AafHQuX%&&&&	
3%2	q"v	%AA88AafHQuX%&&&&r   c            
         [        S[        5      u  pn[        S[        /5      nU" U5      [        U 5      -  [        U * 5      -  n[	        U5      n[        U[        / SQ/ SQ/ SQ/ SQ/5      U" U5      -  5      (       d   e[        U 5      U" U5      -  [        U5      -  n[	        U5      n[        XS" U5      [        U 5      -  [        U5      -  5      (       d   e[        [        SS9  g )	Nzi,j,kA)r$   r   r   r   )r   r$   r   r   )r   r   r$   r   )r   r   r   r$   r$   rf   )r   r   r   r   r   r   r   ra   )ijkr|   r\   r]   s         r   test_gamma_matrix_classr     s    Wl3GA! 	3'A	!QqT	!QB%A	"1	%BV	%  t	     	
!QqT	!A$A	"1	%BQqT!A$Yqt^,,,,-.G1Mr   c            
      $   [         R                  n [        S[         5      u  pp4pVn[        S[         5      u  pppSn[        U5      n[	        U5      nUR                  S5      (       d   e[        U5      [        U5      -  [        U5      -  n[	        U5      nUR                  S5      (       d   e[        U5      [        U5      -  [        U* 5      -  n[	        U5      nUR                  S5      (       d   e[        U5      [        U5      -  [        U5      -  [        U5      -  [        U5      -  n[	        U5      nUR                  S5      (       d   e[        U5      [        U5      -  n[	        U5      n[        USU " X5      -  5      (       d   e[        U5      [        U5      -  [        U5      -  [        U5      -  n[	        U5      nSU " X5      -  U " X$5      -  SU " X5      -  U " X45      -  -   SU " X5      -  U " X#5      -  -   n[        UU5      (       d   e[        U5      [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  n[	        U5      nUU " U* U* 5      -  nUR                  U 5      n[        UU[	        [        U5      [        U5      -  [        U5      -  [        U5      -  5      -  5      (       d   e[        U5      [        U* 5      -  n[	        U5      nUR                  SU-  5      (       d   e[        U5      [        U5      -  [        U* 5      -  [        U* 5      -  n[	        U5      nUR                  SU-  SUS-  -  -
  5      (       d   e[        U5      [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  n[	        U5      nSU-  U " X$5      -  U " X55      -  SU-  U " X#5      -  U " XE5      -  -   SU-  U " X%5      -  U " X45      -  -   n[        UU5      (       d   e[        U* 5      [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U5      -  n[	        U5      nSU-  SU* S-   S-  -  -   S	-
  U " X#5      U " XE5      -  U " X$5      U " X55      -  -
  U " X%5      U " X45      -  -   -  n[        UU5      (       d   e[        U5      [        U5      -  [        U* 5      -  [        U5      -  n[	        U5      nUR                  SU-  S-   U " X$5      -  5      (       d   e[        U5      [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  n[	        U5      nUR                  SUS
-  -  SUS-  -  -   SUS-  -  -
  SUS-  -  -   SUS-  -  -
  SU-  -   5      (       d   e[        U5      [        U5      -  [        U	5      -  [        U5      -  [        U
5      -  [        U5      -  [        U5      -  [        U
* 5      -  [        U	* 5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  n[	        U5      nSU-  SUS-  -  -   SUS-  -  -
  SUS-  -  -   SUS-  -  -
  SUS
-  -  -   SUS-  -  -
  nUR                  U5      (       d   e[        U5      [        U5      -  [        U	5      -  [        U5      -  [        U
5      -  [        U5      -  [        U5      -  [        U5      -  [        U5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  [        U* 5      -  n[	        U5      nSUS-  -  SUS-  -  -   SUS-  -  -
  SUS-  -  -   SU-  -
  S-   nSUS-  -  SUS-  -  -   SUS-  -  -
  SUS-  -  -   SU-  -
  S -   n[        UUU " X5      -  U " X5      -  UU " X5      -  U " X5      -  -   U* U " X5      -  U " X5      -  -   5      (       d   e[        S![         /5      u  nnU" U5      [        U* 5      -  nU" U5      [        U* 5      -  nU" U5      U" U* 5      -  nU" U5      U" U* 5      -  nU" U5      U" U* 5      -  nUU-  U-  U-  n[	        U5      n[        USU-  U-  SU-  U-  -
  5      (       d   eUU-  U-  U-  U-  U-  n[	        U5      n[        US"U-  U-  U-  S#U-  U-  U-  -   5      (       d   eUU-  U-  U-  U-  U-  U-  U-  n[	        U5      n[        US$U-  U-  U-  U-  SU-  U-  U-  U-  -   SU-  U-  U-  U-  -   5      (       d   eSU" U5      -  U" U5      -  U" U* 5      -  U" U* 5      -  U" U5      -  U" U* 5      -  n[        [	        U5      U5      (       d   eUU-  U-  U-  U-  U-  U-  U-  n[	        U5      nUR                  SU-  U-  U-  U-  5      (       d   eg )%Nr   zn0:6r$   r   r%   r-   r       r2   r1   r6   r5   i  i   r+   i  i   i iA  i@8  i   i     i  i  i@)  i  X   i0  i  i@  i  zp,qir&   i)	r   metricr   r   r   r   r   contract_metricr   )r"   rU   rV   rW   rX   rY   rZ   r[   n0n1n2n3n4n5r?   r\   t1t2tresuc1c2pqpsqsp2q2pqry   s                                r   test_gamma_matrix_tracer   !  sD
   A!/!EBBBB+FLABBB 	
A 	
"A	QB99Q<<<	"aeAbEA	QB99Q<<<	"aeArcFA	QB99Q<<<	"aeAbE!B%"%A	QB99Q<<< 	
"aeA	QBQqy[))))	"aeAbE!B%A	QB	AbIai	!AbI+ai"7	7!AbI+ai:O	OBR    	"aeAbE!B%"%ae+A	QB	ArcB3KB			A	BQ{1R52;qu+<QrU+BCCDDDD 	
"afA	QB99QqS>>>	"aeArcF1bS6!A	QB99QqS1QT6\""""	"aeAbE!B%"%af,A	QB
Q$"		!B)	#qsAbIoai&?	?A#qy2*
+BR    	2#quQrU1R5 2&qu,QsV3AbE9A	QB
Q$QBFQ;

#ai"	&9bIai' "#B)AbI"5'6 
7BR    	"aeArcF1R5 A	QB99bdQh"	)**** 	
"aeAbE!B%"%ae+ArcF21bS69!RC&@B3G2#NqRTQTvUA	QB99R1Ws1a4x'$q!t)3d1a4i?$q!t)KdSTfTUUUU	"aeAbE!B%"%ae+AbE1!RC&8B3?2#Fq"vMaQSPSfTUVXZWZU[[\]_a^a\bbA	QB!GeAqDj 5A:-QT	9DAIEAqDPSTUVXYUYSYYE99U 	
"aeAbE!B%"%ae+AbE1!B%7"=afDQsVKArcFRSTVXUXSYYZ[]_\_Z``A	QB	AqD3q!t8	d1a4i	'$q!t)	3eAg	=	DB	AqD2ad7	SAX	%QT		1DF	:S	@BR"	\!B)3b2l1R96LLS!B)OAbI%& ' ' ' ' ~.DAq	
2q"vB	
2q"vB	
2q"vB	
2q"vB	
2q"vB
2bAAAAbDGad2g-....
2bBrAAACF2IbL2b58B;67777
2bBr"RAAACF2IbLObeBhrk"n<qtBwrz"}LMMMM	!B%"afQsV#AbE)!RC&0AQ++++
2bBr"RAAA88AbDGBJrM""""r   c                  F   [        S[        /5      u  pn[        S[        5      u  p4pVn[        S5      nU " U5      [	        U* 5      -  n	U" U5      [	        U* 5      -  n
U" U5      [	        U* 5      -  nU[	        U5      -  U
-  [	        U5      -  U	-  [	        U* 5      -  U
-  [	        U* 5      -  nU[	        U5      -  U
-  [	        U5      -  U	-  U-  [	        U* 5      -  U " U* 5      -  n[        U5      n[        U5      n[        X-   5      nUSSU" U5      -  U" U* 5      -  U" U5      -  U " U* 5      -  SU" U5      -  U" U5      -  U" U* 5      -  U " U* 5      -  -   -  :X  d   eUSU-  U" U5      -  U" U* 5      -  U " U5      -  U " U* 5      -  :X  d   eUX-   :X  d   eg)	zgTest issue 13636 regarding handling traces of sums of products
of GammaMatrix mixed with other factors.z
pi, ki, pfzi0:5xr$   r%   r-   r,   N)r   r   r   r   r   r   )pikipfri   rj   rk   rl   rm   r   piskispfsabtatb
t_a_plus_bs                    r   test_bug_13636r     s    l\N;JBB'=BBBsA
R&1bS6/C
R&1bS6/C
R&1bS6/CaecAbE!C'!RC&036B3?AaecAbE!C'!+af4r2#w>A	QB	QBQU#J
RVb"g2&RC0
bf*r"v
B3
'"bS'
1	2    a"R&2rc7*RV3b"g====   r   N)sympy.matrices.denser   r   sympy.tensor.tensorr   r   r   r   r	    sympy.physics.hep.gamma_matricesr
   r   r   r   r   r   r   sympyr   r   ra   rg   rz   r   r   r    r   r   <module>r      sK    , S S f R:F'PN*s#l!r   