K iddlmZddlmZddlmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%ddl&m'Z'ddl(m)Z)m*Z*ddl+m,Z,m-Z-ddl.m/Z/ddl0m1Z1m2Z2m3Z3dd l4m5Z5dd l6m7Z7dd l8m9Z9dd l:m;Z;mZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLe;dZMdZNdZOdZPd ZQd!ZRd"ZSd#ZTd$ZUd%ZVd&ZWd'ZXd(ZYd)ZZd*Z[d+Z\d,Z]d-Z^d.Z_d/Z`d0Zad1Zbd2Zcd3Zdd4Zed5Zfd6Zgd7Zhd8Zid9Zjd:Zkd;Zld<Zmd=Znd>Zod?Zpd@ZqdAZrdBZsdCZtdDZuyE)F) conjugate)exp)!DaggerBdVarBosonicBasisBBraBBKetFixedBosonicBasis matrix_repapply_operators InnerProduct CommutatorKroneckerDeltaAnnihilateBoson CreateBosonBosonicOperatorFFdFKet BosonState CreateFermionAnnihilateFermionevaluate_deltasAntiSymmetricTensor contractionNOwicksPermutationOperatorsimplify_index_permutations_sort_anticommuting_fermions_get_ordered_dummiessubstitute_dummiesFockStateBosonKet ContractionAppliesOnlyToFermions)Sum)Functionexpand)IRational)S)DummySymbolsymbols)sqrt)srepr)simplify)slowraises)latexctd\}}}}ttd\}}}}t}|||j ||||z|| ||zk(sJ|||j |||||| k(sJ|||j ||||k(sJ||||z||z||z||||z||z||zz ||||z||z||zz ||||z||z||zz} ||||||g} t | | ||||||z||z||z||z||zk(sJt |||dk(sJtd\} } t || | dk(sJy)Np,q,r,sfghizP(pq)zp1,p2z P(p_{1}p_{2}))r.mapr'r get_permutedr r4) pqrsfghiPexprpermsp1p2s j/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/physics/tests/test_secondquant.pytest_PermutationOperatorrHs#JAq!QXv&JAq!QA Q7  !QqT *qteAaDj 88 8 Q7  !Q (Qq!WH 44 4 Q7  ! %1 -- - aD1IadN1Q4  A$qt)AaD.1   A$qt)AaD.1   A$qt)AaD.1  Dq!Wa1g E 'e 4 !Q!Q!QqT!!A$&qt+ ,- , 1a>W $$ $ W FB 2b_, -- -c td\}}}}tdt\}}}}ttd\}} t} ||||||||||z } t | | ||g| |||||||zk(sJ| ||t |||||z} ||||||||||z } t | | ||g} | t | k(sJ||||||||||z } t | | ||g} | t | k(sJ|||||| ||||z } t | | ||g} | | k(sJy)Na b c dp q r sclsfg)r.r,r8r'rr r#)abcdr:r;r<r=r>r?rBrCexpectedresults rG$test_index_permutations_with_dummiesrV/s#JAq!Q.JAq!Q x DAqA Q1a=1Q1a= (D & qAwi aGAaAqM1 22 2Aw)!Aq!Q-88H Q1a=1Q1a= (D (!Qy 9F )&1 11 1 Q1a=1Q1a= (D (!Qy 9F )&1 11 1 Q1a=1Q1a= (D (!Qy 9F 6>>rIc$td\}}}}tddk(sJtddk(sJtdtzdtzk(sJttjtzdz tt ddzdz k(sJtt |gt|gk(sJttdtdk(sJttdtdk(sJtt|t|k(sJtt|t|k(sJttdtdztdtdzk(sJt||zt|t|zk(sJtt|t|zt|t|zk(sJtt|d ztt|d zk(sJtd ttd k(sJttd td k(sJttdtztdtzk(sJt|t|k(sJy) Ni,j,n,mg?g@r rP) r.rr)r+Halfr*r rr rr-rr)rAjnms rG test_daggerrbKs#JAq!Q !9>> #;#   !A#;"Q$   !&&(3, 1Xb!_#4S#8 88 8 $s) aS )) ) !A$<2a5  "Q%=AaD  !A$<2a5  "Q%=AaD  !A$1+ "Q%"Q%- // / !A#;&)F1I- -- - !A$qt) 1be ++ + !A$( vad|R/ // / #;&- -- - &+ &+ -- - #a!e* R!V ,, , !9 ! $$ $rIctd\}}t|}|j|k(sJ|jsJtd}|jdk(sJ|jrJy)Ni,jrY)r.rstate is_symbolic)rAr_os rG test_operatorrh`s^ 5>DAqA 77a<< ===A 77a<<}} }rIc td\}}}}}t|}t|dk(sJtt|dk(sJt|tsJ|j ||}|j t|hk(sJtd}|jt|gt|dzt|dzgzk(sJt|}|jt|g|t|gzk(sJy)N i,j,n,m,p1z{b^\dagger_{i}}z{b^\dagger_{p_{1}}}rrY) r.rr4 isinstancersubsatomsr-apply_operatorr r/rAr_r`rarErgs rG test_createrpjs\*NAq!Q 1A 8) )) ) B=2 22 2 a %% % q! A 776?qc !! ! 1A  D!I &$q1u+dAE7m*C CC C 1A  D!I &!D!I+ 55 5rIctd\}}}}}t|}t|dk(sJtt|dk(sJt|tsJ|j ||}|j t|hk(sJtd}|jt|gt|t|dz gzk(sJt|}|jt|g|t|gzk(sJy)Nrjzb_{i}z b_{p_{1}}rrY) r.r r4rkrrlrmr-rnr r/ros rGtest_annihilaterrxs\*NAq!Q !A 8w   2<; && & a )) ) q! A 776?qc !! ! !A  D!I &$q'$Aw-*? ?? ? !A  D!I &!D!I+ 55 5rIctd\}}}}tgd}t|dk(sJ|jdt t dk(sJ|j dtgdk(sJ|jdtgdk(sJt dD]'}|j |j||k(r'J|jddk(sJt dD] }|||k(r Jt||g}|jdt|dz |gk(sJ|j dt|dz|gk(sJy) NrX)rrYrZr)rYrYrZrtruru)rrYrZrtrtrY)r.rlenargstuplerangeupdown)rAr_r`rar=s rGtest_basic_stater}s>#JAq!Q?#A q6Q;; 66!9eAh '' ' 447j1 11 1 66!9 ?3 33 3 1X$ttAw||A!###$ 66!9>> 1XtqyyAq6A 66!9 AE1:. .. . 447j!a%, ,, ,rIc$td}tdt|gz}t|t |t|dz gzk(sJt dt|gz}t|t |dzt|dzgzk(sJy)Nr`rrY)r.r r r r/r)r`es rGtest_basic_applyrs A !T1#YA 1 aq1ug!6 66 6 1dA3iA 1 a!eT1q5']!: :: :rIcJtd\}}tdtdztdztdz}t|t ||gz}t |t |dzzd|zzt d|zd|zgz}t |t |k(sJy)Nn,mrrYr\)r.rr r r r/r()r`rargranswers rGtest_complex_applyrs 5>DAq 1ad 2a51A$1v,'A !WT!a%[ "q& )$QA*? ?F !9v && &rIctd}tdtdz}t|t |gz}||t |gzk(sJy)Nr`r)r.rr r r )r`rgrs rGtest_number_operatorrsH A 1ad A$s) $A $s)  rIc2td\}}}}tdg}tdg}t|t |dk(sJt||dk(sJt||g}t||g}t||}|t ||t ||zk(sJy)Ni,j,k,lrrY)r.rr rrr)rAr_kls1s2r<s rGtest_inner_productrs#JAq!Q qcB qcB F2J '1 ,, , B 1 $$ $ q!fB q!fBRA q!$^Aq%99 99 9rIctd\}}t|g}t|g}td}t ||z|z}|t |t ||dz zk(sJy)NrrrY)r.rr r r r/r)r`rarrrgrs rGtest_symbolic_matrix_elementsrsb 5>DAq qcB qcB !A1R A Qq!a%00 00 0rIc"td}td}t||}tdD]}|||dzft |dzk(rJt d}t||}tdD]}||dz|ft |dzk(rJy)NrvrrurY)rr r rzr/r)rQrgrarAs rGtest_matrix_elementsrsA !A1aA 1X*AE{d1q5k)))* 1A1aA 1X*Q{d1q5k)))*rIc<tdd}|jd}|tdk(sJ|j|dk(sJ|jd|dk(sJt |dk(sJt |dk(sJt |dk(sJt|dk(sJy)NrZrY)rYrYrtz9[FockState((2, 0)), FockState((1, 1)), FockState((0, 2))])r rer$indexrwstrreprr0)rQres rGtest_fixed_bosonic_basisrs!QA GGAJE %f- -- - 775>Q   771:1   q6Q;; q6P PP P 7Q QQ Q 8R RR RrIc@td\}}t|t|z|tjzz}t ||ddf}|j d}tdd}t||}gd}tt|D]}|||||fk(rJy) NrrrvF)deeprZ)rYrZrtrtrurvrurvrrvrr rrrrr] ) r.rr r+r^r&doitr r rzrw)r`rah_nHrgrQdiagrAs rGtest_shors 5>DAq Q%!*a!&&j !C C!QA EA!QA1aA MD 3t9 "Aw!AqD'!!!"rIc tdd\}}ttdtd}|dk(sJttdtd}|dk(sJtt|td}|t |dk(sJttdtd}|dk(sJttdtd}t t |t|gz}|t|gk(sJttdtd}t t |t||gz}|dk(sJtt|t|}|ddtt|t|zzz k(sJtt|t|}|jddtt|t|zzzk(sJt}tdd \}}}|||||dk7sJ|||||dk7sJ|||||dk7sJtd d \}} } } td d\} } }}td\}}}}t}|t| t|dtt|t| zzk(sJ|t| tt| t|zjd|| | t| zk(sJ|t| t|zt| t| zjddk(sJtt| t| }tj||dk(sJtt| t|zt| t| z}t|dk(sJt|dk(sJt!|dk(sJy)NrT above_fermirrYr\rZzX,Y,ZF) commutativer below_fermia,b,c,dr6r[)rz8\left[{a^\dagger_{a}} a_{i},{a^\dagger_{b}} a_{j}\right]zWCommutator(CreateFermion(a)*AnnihilateFermion(i),CreateFermion(b)*AnnihilateFermion(j))zM[CreateFermion(a)*AnnihilateFermion(i),CreateFermion(b)*AnnihilateFermion(j)])r.rr rrr1r r rrrr(revalr4rr)r`rarRrCXYZrAr_rrrPrQrSr:r;r<r=Dc1s rGtest_commutationrsp 5d +DAq1Q4AA 6M62a5!A$A 7N71Q4AA q!$ $$ $1Q41A 6M61Q4AA49-.A aS >>1Q41A4A<01A 6M61Q4AA Qr"Q%!*~%% %% %2a5!A$A 88:a2a51:.. .. .Ag51GAq! Qq!Wa=A   Qq!Wa=A   Q!Q=A  5JAq!Q5JAq!Q#JAq!QA RUAaD>R1Q41:. .. . RUBr!uQqTzN # ( (t ( 41aA FF F RU1Q4ZAqt $ ) ) ) 5 :: : AaD"Q% B ??2r "a '' '2a51:beAaDj)A 8R RR R 7o oo o q6d dd drIc(td\}}}}t|}t|tsJ|j ||}|j t |hk(sJtd}|jt|gtd|gk(sJ|jt|gt|dg k(sJt|}|jtgt|gk(sJtgd}|tgdk(sJtdd\}}}}tdd \}} } } td \} } }}td }t|jt|||gdt||gdk(sJt|jt|| |gdt||| |gdk(sJtt| j| | t| zk(sJtt| d k(sJtt| d k(sJtt| dk(sJtt|dk(sJtt||gddk(sJtt||| |gddk(sJy)NrXrYru) fermi_levelrTrrrr6rEzCreateFermion(p)zCreateFermion(Symbol('p'))z{a^\dagger_{p}}z{a^\dagger_{p_{1}}}z(\left|\left( a, \ i\right)\right\ranglerZz4\left|\left( a, \ b, \ i, \ j\right)\right\rangle)r.rrkrrlrmr-rnrrr rrr0r4)rAr_r`rargvacuumrrrPrQrRrSr:r;r<r=rEs rG test_create_frsq#JAq!Q 1A a '' ' q! A 776?qc !! ! 1A  D!I &$1v, 66 6  D!I &4A<- 77 7 1A  DH %qc 22 2 "! $F T"!, ,, ,5JAq!Q5JAq!Q#JAq!Q B a5  aAY 2 3tQFA FF F a5  aAY 2 3tQ1aL!7L LL L !A$< & &q )Q{1~-= == = 1;, ,, , A<7 77 7 A<- -- - B=2 22 2 qeQ $O OO O q1Qi# $(_ __ _rIctd\}}}}t|}t|tsJ|j ||}|j t |hk(sJtd}|jtd|gt|gk(sJ|jt|dgt|g k(sJt|}|jt|gtgk(sJtdd\}}}}tdd\}}} } td\} } } }td }t|jt|||gd d k(sJt|jt|||gd d k(sJt|jt|||gd d k(sJt|jt|||gd t||||gd k(sJtt| d k(sJtt| dk(sJtt| dk(sJtt| dk(sJtt|dk(sJy)NrXrYrTrrrr6rErurrtzf(p)zAnnihilateFermion(p)zAnnihilateFermion(Symbol('p'))za_{p}z a_{p_{1}}) r.rrkrrlrmr-rnrrrr0r4)rAr_r`rargrrrPrQrRrSr:r;r<r=rEs rGtest_annihilate_fr8sD#JAq!Q !A a* ++ + q! A 776?qc !! ! !A  D!QL )T1#Y 66 6  D!QL )dA3iZ 77 7 !A  D!I &$r( 22 25JAq!Q5JAq!Q#JAq!Q B Q4  tQ1Iq1 2a 77 7 Q4  tQ1Iq1 2a 77 7 Q4  tQ1Iq1 2a 77 7 Q4  tQ1Iq1 2dAq!Q<6K KK K qt9   !:/ // / 1;: :: : 1;' !! ! 2<; && &rIctd\}}}}t|}t|tsJ|j ||}|j t |hk(sJtd}|jt|gt|dzt|dzgzk(sJt|}|jt|g|t|gzk(sJy)NrXrrY) r.rrkrrlrmr-rnr r/rAr_r`rargs rG test_create_brTs#JAq!Q 1A a %% % q! A 776?qc !! ! 1A  D!I &$q1u+dAE7m*C CC C 1A  D!I &!D!I+ 55 5rIctd\}}}}t|}t|tsJ|j ||}|j t |hk(sJtd}y)NrXr)r.r rkrrlrmr-rs rGtest_annihilate_br`s]#JAq!Q !A a )) ) q! A 776?qc !! ! !ArIc  tdd\}}}}t|t|z}t|t t|t|zt ||zk(sJt|t|z}t|t t|t|zk(sJt|t|zt|zt|z}t|}t t ||t ||zt ||t |zt|zzt ||t |zt|zzt ||t |zt|zz t |t |zt|zt|zz }||k(sJ||z|zjt||z|zk(sJ||z|zdzjt||z|zdzk(sJtddt\}}} } tddt\} } } }td t \}}}}tt| t t|t|zzt| zt t| t|zt|zt| zt | | t t|t|zzzk(sJtt| t t|t|zt| zzt| zt t| t|zt|zt| zt| zt | | t t|t|zt| zzz k(sJtt|t t|t| zzt| z}|t ||  t t|t| zzt || t t|t| zzz t || t || zz t || t t|t| zzzt t|t|zt| zt| zzk(sJtt| t t| t| zzt|z}|t | |  t t| t|zzt | |t t| t| zzz t | | t | |zz t | |t t| t| zzzt t| t| zt| zt|zzk(sJy) Nr6TrrZi j k lrrNrKrrNrLrM) r.rrrrrrrr(r,)r:r;r<r=rnstrfasitrAr_rrrPrQrRrSrCs rG test_wicksris.5JAq!Q A$r!u*C :AaDAJ.A*>> >> > Q%!*C :BqE!A$J '' ' A$r!u*QqT/"Q% C :D q!^Aq11 A 03 3M!4D D E A 03 3M!4D D E A 03 3M!4D D E A 03 3M!4D D]STEU U  V WE 5== aCH   %!C. 00 0 F1HQJ   E#a%'!)$4 44 4%@JAq!Q%@JAq!Q.JAq!Q !A$r!A$qt)}$RU* + qtAaDy1~be# $ 1a AaD1I . / /0 / !A$r!A$qt)AaD.))"Q%/ 0 qtAaDy1~ad"2a5( ) 1a AaD1IadN!3 3 4 45 4 Ar"Q%!*~%ad* +D  1a BqE!A$J / 1a BqE!A$J / 0 1a 1!5 5 6 1a BqE!A$J / 0 r!uRU{1Q4!$ %  & &' & 1b1ben$RU* +D  1a AaDAJ / 1a AaDAJ / 0 1a 1!5 5 6 1a AaDAJ / 0 qtAaDyAr!u$ %  & &' &rIc & tdd\}}}}tdd\}}}}tdt\}} ttt zt|t |zzttt ztt|t |zzk(sJtt|tt |t|zztt|t |zt|zk(sJtddk(sJt||k(sJtt|t|zt |t |zztt|t|zt |ztt|t|zt |zzk(sJtt|t |zj t|t |zk(sJtt |t|zj t |t|zk(sJttt zj tt|t|ztt|t ztt|t zzk(sJttt zj t t |t |zttt |zttt |zzk(sJttt zj } t| t| k(sJtt|t |ztt |t|z k(sJtt|t |zt |zt|z} t| j} | d dgk(sJt| j} | d d gk(sJtt|t|z} | jdk(sJ| jd k(sJt| d k(sJt| dk(sJt| dk(sJt!t"fdy)NrTrrKrrLrMrYrrtrZr\z#:CreateFermion(a)*CreateFermion(i):z%NO(CreateFermion(a)*CreateFermion(i))z.\left\{{a^\dagger_{a}} {a^\dagger_{i}}\right\}cDtttzSN)rrr)r:r;srGztest_NO..sBqE!A$JrI)r.r,rrr_remove_bracketsrlrlistiter_q_creatorsiter_q_annihilatorshas_q_creatorshas_q_annihilatorsrrr4r3NotImplementedError)rAr_rrrPrQrRrSr<r=rCnol1l2r:r;s @@rGtest_NOrs5JAq!Q5JAq!Q.JAq!Q r!uQqTzBqE!A$J& ' "Q%!*~2a51:& '( ' r!uR!RU ^# $ "Q%!*RU    a5A:: a5A:: r!uRU{AaD1Q4K( ) r!uRU{1Q4 r!uRU{1Q4  ! !" ! beAaDj> * * ,1ad :: : ad2a5j> * * ,!RU :: : r!uQqTzN  1r!ur!u} 5 r!uQqTzNR1ad ^ + ,- , r!uQqTzN  !adQqTk 2 r!uQqTzNR1ad ^ + ,- , beAaDj> * * ,D ;"T( "" " beAaDj>r!A$r!u*~- -- - BqE!A$JqtOBqE ! "B b  " #B !Q<< b$$& 'B !Q<< BqE"Q%KB   !! ! B && & r7; ;; ; 8> >> > 9I II I  78rIc@ tdd\}}tdd\}}td\}}tt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJtt|t|gt|t|gdfk(sJy) NrdTrza,brzp,qrrY)r.r!rr)rAr_rPrQr:r;s rG test_sortingrs 5d +DAq 5d +DAq 5>DAq (A! 6BqE1Q4=!:L LL L '1r!u 6BqE1Q4=!:L LL L (1r!u 6AaD"Q%=!:L LL L 'A! 6AaD"Q%=!:L LL L 'A1 7RUBqENA;N NN N 'A1 7RUBqENA;N NN N '1qt 51Q41,9J JJ J '1qt 51Q41,9J JJ J 'A! 6AaD"Q%=!:L LL L '1r!u 6AaD"Q%=!:L LL L (1r!u 6BqE1Q4=!:L LL L 'A! 6BqE1Q4=!:L LL L 'A1 7RUBqENA;N NN N 'A1 7RUBqENA;N NN N '1qt 51Q41,9J JJ J '1qt 51Q41,9J JJ J 'A! 6BqE1Q4=!:L LL L '1r!u 6BqE1Q4=!:L LL L (1r!u 6AaD"Q%=!:L LL L 'A! 6AaD"Q%=!:L LL L 'A1 7RUBqENA;N NN N 'A1 7RUBqENA;N NN N '1qt 51Q41,9J JJ J '1qt 51Q41,9J JJ JrIc tdd\}}}}tdd\ }}td\}}}} tt|t|t ||k(sJtt t t k(sJtt t|dk(sJtt t|dk(sJtt|t dk(sJtt|t dk(sJtt|t|t ||k(sJt tt|t|} | j sJt tt|t|} | jsJtt fdy) NrTrrrr6rc@tttSr)rr r)rPrQsrGrz"test_contraction..s[1r!u5MrI) r.rrrrris_only_below_fermiis_only_above_fermir3r%) rAr_rrrRrSr:r;r<r=restrrPrQs @@rGtest_contractionrsy5JAq!Q5JAq!Q#JAq!Q r!uad #~a'; ;; ; qtRU #~a'; ;; ; qtRU #q (( ( r!uad #q (( ( qtRU #q (( ( r!uad #q (( ( r!uad #~a'; ;; ; K1qt4 5E  $ $$ $ K!be4 5E  $ $$ $ +-MNrIctd\}}}t||t||z}t|t||k(sJt|dt||z}t|t|dt||zk(sJtd|t||z}t|td|k(sJt|dt||z}t|td|k(sJt|dt||zt|dz}t|dk(sJtd|td|ztd|ztd|z}t|dk(sJy)Nzi,j,krrYrZ)r.rr)rAr_rr<s rGtest_evaluate_deltasrsfgGAq!q!~a33A 1 1!5 55 5q!~a33A 1 1!5q!8L!L LL Lq!~a33A 1 1!5 55 5q!~a33A 1 1!5 55 5q!~a33nQ6JJA 1  "" " 1 q! 4 4 !Q  "0A"6 7A 1  "" "rIctddt\}}}}tddt\}}}}td\}} } } t} | d||f||f| d||f||f k(sJ| d||f||f| d||f||fk(sJ| d||f||f| d||f||f k(sJ| d||f||fdk(sJ| d||f||fdk(sJ| d|||f||f| d|||f||f k(sJ| d|||f|||f| d|||f|||fk(sJ| d||f||f} | j|sJ| j|sJ| j|sJ| j|sJ| j ||| d||f||fk(sJd | zj ||d | d||f||fzk(sJ| j t dk(sJt| d k(sJt| d k(sJ| d||f||fj ||| d||f||fk(sJ| d||f||fj ||| d||f||fk(sJtd \}}}}td ||f||f}t|dk(sJt|dk(sJy)NrTrrKrrLtrrZz {t^{ab}_{ij}}zt((_a, _b),(_i, _j))zalpha1:5uz1{u^{\alpha_{1}\alpha_{2}}_{\alpha_{3}\alpha_{4}}}z$u((alpha1, alpha2),(alpha3, alpha4))) r.r,rhasrlsymbolr-r4r)rAr_rrrPrQrRrSr:r;r<r=ATtabija1a2a3a4 u_alpha1234s rG test_Tensorsrs@%@JAq!Q%@JAq!Q#JAq!Q B cAq6Aq6 "r#1v1v'>&> >> > cAq6Aq6 "bq!fq!f&= == = cAq6Aq6 "r#1v1v'>&> >> > cAq6Aq6 "a '' ' cAq6Aq6 "a '' ' cAq!9q!f %"S1a)aV*D)D DD D cAq!9q!Qi (BsQ1I1ay,I II I sQFQF #E 99Q<< 99Q<< 99Q<< 99Q<< ::a r#1v1v6 66 6 eG>>!Q 1RaVaV%<#< << < <<6#; && & K  !U UU U { E EE ErIctdd\}}}}tdd\}}}}tdt\}} } } td|f| ftt |t | zz} td || f| | ftt |t | zt | zt | zzd z } t tt |t |z| zdd }|td|f|fk(sJt tt |t |zt |zt |z| zdd }|td ||f||fk(sJy) NrTrrKrrLrMr>vru)keep_only_fully_contractedsimplify_kronecker_deltas)r.r,rrrrr)rAr_rrrPrQrRrSr:r;r<r=FockVFaiVabijs rGtest_fully_contractedr8sT5JAq!Q5JAq!Q.JAq!Q aTA4 0 r!uQqTzN D S1a&1a& 1 BqE"Q%K! QqT ! " #$% &A 2a51:t#'+&* ,C %cA4!6 66 6 "RU2a5[1%ad*+A-'+&* ,E 'aVaV< << DAq c!Qi!m ,Aq A == = c!Qi!m ,Aq A == =rIc tdt\}}tt||t t |t |zzt||t t |t |zzz dk(sJyNi jrMr)r.r,r#rrrrrs rG#test_substitute_dummies_NO_operatorrRsl 5e $DAq c!Qi2a51:6a)Br!uQqTzN*+ ,/0 11 1rIctdt\}}tt||t |zt |zt||t |zt |zz dk(sJyr)r.r,r#rrrrs rG#test_substitute_dummies_SQ_operatorrXsd 5e $DAq c!Qi1oad2a)BqE/!A$&' (+, -- -rIctddt\}}tddt\}}tdt\}}td}t||||||||z d d k(sJy) NrTra brp qrMr>) new_indicesr)r.r,r'r#)rAr_rPrQr:r;r>s rG#test_substitute_dummies_new_indicesr^si 5d 6DAq 5d 6DAq 5e $DAq A a1aj1Q1:54 HA MM MrIc tddt\}}}}td}ddlm}|||||gdD]!}t |||||||z dk(r!Jy)NrTrr>r variationsru)r.r,r'sympy.utilities.iterablesrr#)rAr_rrr>rpermuts rG*test_substitute_dummies_substitution_orderrfsj%@JAq!Q A4aAq\1-C!!V*qAq!}"<=BBBCrIc tdd}tdd}tddt\}}tddt \}}td }td }t}||||||||z|||z|||z||||||||z|||z|||z||||||||z|||z|||z||||||||z|||z|||zg} | d dD]4} || d || k7sJt | d t | k(r4Jy)NrATrrPrk lrc drrrrYrr.r,r'r"r#) iiaarrrRrSrrdumsexprsrs rG*test_dummy_order_inner_outer_lines_VT1T1T1rnsf $ 'B $ 'B 5d 6DAq 5d 6DAq A A D !Q1 a2hqAw&qQx/ !Q1 a2hqAw&qQx/ !Q1 a2hqAw&qQx/ !Q1 a2hqAw&qQx/  E)JE!H~f---!%(+/A&/IIIIJrIc tdd\}}tdd\}}tddt\}}tddt \}}td }td } t} |||||| ||z| ||z| ||z| ||z|||||| ||z| ||z| ||z| ||z|||||| ||z| ||z| ||z| ||z|||||| ||z| ||z| ||z| ||zg} | d dD]4} | | d | | k7sJt | d t | k7r4J|||||| ||z| ||z| ||z| ||z|||||| ||z| ||z| ||z| ||z|||||| ||z| ||z| ||z| ||z|||||| ||z| ||z| ||z| ||zg} | d dD]4} | | d | | k(sJt | d t | k7r4J|||||| ||z| ||z| ||z| ||z|||||| ||z| ||z| ||z| ||z|||||| ||z| ||z| ||z| ||z|||||| ||z| ||z| ||z| ||zg} | d dD]4} | | d | | k7sJt | d t | k(r4JyNrTrrrr rr rrrrYrr  r jjr bbrrrRrSrrrrrs rG,test_dummy_order_inner_outer_lines_VT1T1T1T1rs U -FB U -FB 5d 6DAq 5d 6DAq A A D !Q1 a2hqBx'"a02q9 !Q1 a2hqBx'"a02q9 !Q1 a2hqBx'"a02q9 !Q1 a2hqBx'"a02q9  E)JE!H~f---!%(+/A&/IIIIJ !Q1 a2hqBx'"a02q9 !Q1 a2hqBx'"a02q9 !Q1 a2hqBx'"a02q9 !Q1 a2hqBx'"a02q9 E)JE!H~f---!%(+/A&/IIIIJ !Q1 a2hqBx'"a02q9 !Q1 a2hqBx'"a02q9 !Q1 a2hqBx'"a02q9 !Q1 a2hqBx'"a02q9 E)JE!H~f---!%(+/A&/IIIIJrIcVtd\}}}tt|t|zt|zjdtt|t|zk(sJtt|t|zt|zjdtt|t|zk(sJtt|t|zt|zjdtt|t|zk(sJy)Nzp,q,rrYrrZ)r.rr get_subNO)r:r;r<s rGtest_get_subNOrsgGAq! ad1Q4i!n  ' ' *b1adm ;; ; ad1Q4i!n  ' ' *b1adm ;; ; ad1Q4i!n  ' ' *b1adm ;; ;rIc tddt\}}}}tddt\}}}}td}td} t} |||||| ||z| ||z|||||| ||z| ||z|||||| ||z| ||zg} | ddD]4} | | d | | k7sJt | d t | k7r4J|||||| ||z| ||z|||||| ||z| ||zg} | ddD]4} | | d | | k7sJt | d t | k(r4J|||||| ||z| ||z|||||| ||z| ||zg} | ddD]4} | | d | | k(sJt | d t | k7r4J|||||| ||z| ||z|||||| ||z| ||z|||||| ||z| ||z|||||| ||z| ||zg} | ddD]4} | | d | | k7sJt | d t | k(r4Jy NrTrrKrrrrYrr  rAr_rrrPrQrRrSrrrrrs rG$test_equivalent_internal_lines_VT1T1rs*%@JAq!Q%@JAq!Q A A D !Q1 a1ga1g% !Q1 a1ga1g% !Q1 a1ga1g% E )JE!H~f---!%(+/A&/IIIIJ !Q1 a1ga1g% !Q1 a1ga1g% E)JE!H~f---!%(+/A&/IIIIJ !Q1 a1ga1g% !Q1 a1ga1g% E)JE!H~f---!%(+/A&/IIIIJ !Q1 a1ga1g% !Q1 a1ga1g% !Q1 a1ga1g% !Q1 a1ga1g%  E )JE!H~f---!%(+/A&/IIIIJrIchtddt\}}}}}}tddt\}}}} } } tddt\} } }}tddt\}}}}dd lm}t d }t d }t }|| | |||| | ||z|||||z}||||| gd }|j t| | ||gt|}|D]O}t| | ||g|}|j |}||||k7sJt|t|k(rOJ|| | |||| | ||z|||||z}||||| gd }|j t| | ||gt|}|D]O}t| | ||g|}|j |}||||k7sJt|t|k(rOJ|| | |||| | ||z|||||z}||||| gd }|j t| | ||gt|}|D]O}t| | ||g|}|j |}||||k7sJt|t|k(rOJ|| | |||| | ||z|||||z}||||| gd }|j t| | ||gt|}|D]O}t| | ||g|}|j |}||||k7sJt|t|k(rOJy N i j k l m nTr a b c d e fr p1 p2 p3 p4 h1 h2 h3 h4rrrrru r.r,rrr'r"rlzipnextr#rAr_rrrar`rPrQrRrSrr>rErFp3p4h1h2h3h4rrrrtemplate permutatorbasersubslistrCs rG(test_equivalent_internal_lines_VT2conjT2r2s}$EJAq!Q1}$EJAq!Q1]%HNBB]%HNBB4 A A DRR 2r1a01aR@HQ1aL!,J ==b"b"-tJ/?@ ADDBB'0}}X&DzT$Z'''!$'+=d+CCCC D RR 2r1a01aR@HQ1aL!,J ==b"b"-tJ/?@ ADDBB'0}}X&DzT$Z'''!$'+=d+CCCC DRR 2r1a01aR@HQ1aL!,J ==b"b"-tJ/?@ ADDBB'0}}X&DzT$Z'''!$'+=d+CCCC D RR 2r1a01aR@HQ1aL!,J ==b"b"-tJ/?@ ADDBB'0}}X&DzT$Z'''!$'+=d+CCCC DrIctddt\}}}}}}tddt\}}}} } } tddt\} } }}tddt\}}}}dd lm}t d }t d }t }|| | |||| | ||z|||||z}||||| gd }|j t| | ||gt|}|D]O}t| | ||g|}|j |}||||k7sJt|t|k(rOJ|| | |||| | ||z|||||z}||||| gd }|j t| | ||gt|}|D]O}t| | ||g|}|j |}||||k7sJt|t|k(rOJyrr$r's rG8test_equivalent_internal_lines_VT2conjT2_ambiguous_orderr4!s}$EJAq!Q1}$EJAq!Q1]%HNBB]%HNBB4 A A DRR 2r1a02r1a@HQ1aL!,J ==b"b"-tJ/?@ ADDBB'0}}X&DzT$Z'''!$'+=d+CCCC D RR 2r1a02r1a@HQ1aL!,J ==b"b"-tJ/?@ ADDBB'0}}X&DzT$Z'''!$'+=d+CCCC DrIc tddt\}}}}tddt\}}}}td}td} t} |||||| ||||z|||||| ||||z|||||| ||||z|||||| ||||zg} | ddD]4} | | d | | k(sJt | d t | k7r4J|||||| ||||z|||||| ||||z|||||| ||||z|||||| ||||zg} | ddD]4} | | d | | k7sJt | d t | k7r4J|||||| ||||z|||||| ||||z|||||| ||||z|||||| ||||zg} | ddD]4} | | d | | k7sJt | d t | k(r4Jyrr rs rG"test_equivalent_internal_lines_VT2r6Bs%@JAq!Q%@JAq!Q A A D !Q1 a1am# !Q1 a1am# !Q1 a1am# !Q1 a1am# E )JE!H~f---!%(+/A&/IIIIJ !Q1 a1am# !Q1 a1am# !Q1 a1am# !Q1 a1am#  E)JE!H~f---!%(+/A&/IIIIJ !Q1 a1am# !Q1 a1am# !Q1 a1am# !Q1 a1am#  E )JE!H~f---!%(+/A&/IIIIJrIc ttdd\}}tdd\}}tddt\}}tddt \}}td }td } t} |||||| ||||z| ||||z|||||| ||||z| ||||z|||||| ||||z| ||||z|||||| ||||z| ||||zg} | d dD]4} | | d | | k7sJt | d t | k(r4J|||||| ||||z| ||||z|||||| ||||z| ||||z|||||| ||||z| ||||z|||||| ||||z| ||||zg} | d dD]4} | | d | | k7sJt | d t | k(r4J|||||| ||||z| ||||z|||||| ||||z| ||||z|||||| ||||z| ||||z|||||| ||||z| ||||zg} | d dD]4} | | d | | k7sJt | d t | k(r4Jyrr rs rGtest_internal_external_VT2T2r8ssl U -FB U -FB 5d 6DAq 5d 6DAq A A D !Q1 aAr1o%aAr1o5 !Q1 aAr1o%aAr1o5 !Q1 aAr1o%aAr1o5 !Q1 aAr1o%aAr1o5  E )JE!H~f---!%(+/A&/IIIIJ !Q1 aAr1o%a2r1o5 !Q1 aAr1o%a2r1o5 !Q1 aAr1o%a2r1o5 !Q1 aAr1o%a2r1o5  E )JE!H~f---!%(+/A&/IIIIJ !Q1 a2r1o%aAr1o5 !Q1 a2r1o%aAr1o5 !Q1 a2r1o%aAr1o5 !Q1 a2r1o%aAr1o5  E )JE!H~f---!%(+/A&/IIIIJrIc Ptd\}}td\}}tdt\}}tdt\}}td}td} t} |||||| ||||z| ||||z|||||| ||||z| ||||z|||||| ||||z| ||||z|||||| ||||z| ||||zg} | ddD]4} | | d | | k7sJt | d t | k(r4Jy) Nrrr rMr rrrYrr rs rGtest_internal_external_pqrsr:sX U^FB U^FB 5e $DAq 5e $DAq A A D !Q1 aAr1o%aAr1o5 !Q1 aAr1o%aAr1o5 !Q1 aAr1o%aAr1o5 !Q1 aAr1o%aAr1o5  E )JE!H~f---!%(+/A&/IIIIJrIc tdd\}}tddt\}}}tddt\}}tdt \}}td } td } td } t} | | ||| ||z||gk(sJ| | ||| ||z||gk(sJ| | ||| ||z||gk(sJ| | ||| ||z||gk(sJ| | ||| ||z| ||z|||gk(sJ| | ||| ||z| ||z|||gk(sJ| | ||| ||z| ||z|||gk(sJ| | ||| ||z| ||z|||gk(sJ| | ||| ||z| ||z|||gk(sJ| | ||| ||z| ||z|||gk(sJ| | ||| ||z| ||z|||gk(sJ| | ||| ||z| ||z|||gk(sJ| | |||| |||z| |||z|||gk(sJ| | |||| |||z| |||z|||gk(sJ| | |||| |||z| |||z|||gk(sJ| | |||| |||z| |||z|||gk(sJ| | |||| |||z| |||z|||gk(sJ| | |||| |||z| |||z|||gk(sJ| | |||| |||z| |||z|||gk(sJ| | |||| |||z| |||z|||gk(sJ| | |||| |||z|||gk(sJ| | |||| |||z|||gk(sJ| | |||| |||z|||gk(sJ| | |||| |||z|||gk(sJ| | |||| |||z|||gk(sJ| | |||| |||z|||gk(sJ| | |||| |||z|||gk(sJ| | |||| |||z|||gk(sJ| | |||| |||z|||gk(sJ| | |||| |||z|||gk(sJ| | |||| |||z|||gk(sJ| | |||| |||z|||gk(sJy) NrTrzk l mrr rrrMAr r)r.r,r'r") r rrrrarRrSr:r;r<r rrs rGtest_dummy_order_well_definedr=s U -FBg4U;GAq! 5d 6DAq 5e $DAq A A A D !Q!Q QF ** * !Q!Q QF ** * !Q!Q QF ** * !Q!Q QF ** * !Q!Q!Q' (Q1I 55 5 !Q!Q!Q' (Q1I 55 5 !Q!Q!Q' (Q1I 55 5 !Q!Q!Q' (Q1I 55 5 !Q!Q!Q' (Q1I 55 5 !Q!Q!Q' (Q1I 55 5 !Q!Q!Q' (Q1I 55 5 !Q!Q!Q' (Q1I 55 5 !R AaQK'"a 3 4Aq AA A !R AaQK'"a 3 4Aq AA A !R AaQK'"a 3 4Aq AA A !R AaQK'"a 3 4Aq AA A !R AaQK'"a 3 4Aq AA A !R AaQK'"a 3 4Aq AA A !R AaQK'"a 3 4Aq AA A !R AaQK'"a 3 4Aq AA A !Q 1Q1:% &1a) 33 3 !Q 1Q1:% &1a) 33 3 !Q 1Q1:% &1a) 33 3 !Q 1Q1:% &1a) 33 3 !Q 1Q1:% &1a) 33 3 !Q 1Q1:% &1a) 33 3 !Q 1Q1:% &1a) 33 3 !Q 1Q1:% &1a) 33 3 !Q 1Q1:% &1a) 33 3 !Q 1Q1:% &1a) 33 3 !Q 1Q1:% &1a) 33 3 !Q 1Q1:% &1a) 33 3rIc xtdd\}}tddt\}}}}}tddt\}}} } } tdt \} } td dt\}}}}td dt\}}}}td dt\}}}}td dt\}}}}td}td}ddlm} ||||||z|||z|||z|||z}!| ||| | | gd}"|!j t |||||gt|"}#|"D]=}$t |||||g|$}%|!j |%}&t|&t|#k(r=J||||||z|||z|||z|||z}!| ||| | | gd}"|!j t |||||gt|"}#|"D]=}$t |||||g|$}%|!j |%}&t|&t|#k(r=J||||||||||z|||z}!| ||| | | gd}"|!j t |||||gt|"}#|"D]=}$t |||||g|$}%|!j |%}&t|&t|#k(r=Jy)NrTrz i j k l mrz a b c d errrMr"z p5 p6 p7 p8r#z h5 h6 h7 h8r<r rrrv) r.r,r'rrrlr%r&r#)'r rrAr_rrrarPrQrRrSrr:r;rErFr(r)p5p6p7p8r*r+r,r-h5h6h7h8r<r rr.r/r0rr1rCs' rGtest_dummy_order_ambiguousrGs U -FBKTuEMAq!QKTuEMAq!Q 5e $DAq]%HNBB]%HNBB]%HNBB]%HNBB A A4Ry2r"1R9,Qr2Y6qRy@HQ1aOQ/J ==b"b"b14 3CD EDDBB+V4}}X&!$'+=d+CCCCD Ry2r"1R9,Qr2Y6qRy@HQ1aOQ/J ==b"b"b14 3CD EDDBB+V4}}X&!$'+=d+CCCCD RR 2r2r!221R9rErFr(r)r*r+r,r-rr.r/r0rr1rCs rG+test_equivalent_internal_lines_VT2conjT2_ATr[ps?}$EJAq!Q1}$EJAq!Q1]%HNBB]%HNBB42r2r"3r2q!#44SAr25FFHQ1aL!,J ==b"b"-tJ/?@ ADDBB'0}}X&!$'+=d+CCCCD2r2r"3r2q!#44SAr25FFHQ1aL!,J ==b"b"-tJ/?@ ADDBB'0}}X&!$'+=d+CCCCD 2r2r"3r2q!#44SAr25FFHQ1aL!,J ==b"b"-tJ/?@ ADDBB'0}}X&!$'+=d+CCCCD2r2r"3r2q!#44SAr25FFHQ1aL!,J ==b"b"-tJ/?@ ADDBB'0}}X&!$'+=d+CCCCDrIcXtddt\}}}}}}tddt\}}}} } } tddt\} } }}tddt\}}}}dd lm}t | | ||t | | ||zt ||||z}||||| gd }|j t| | ||gt|}|D]<}t| | ||g|}|j |}t|t|k(rrws:6         *2,"669%,-&.&8%* 6 6-";' :1 * S " "*eZ`@'8 6 0'f'9T#KLO$#. FF=(> 1 - NCJ22Jj<)JX/DdDB.Jb$JNJ*54p(DV9@J(J6!JH'DTD6J@J@ J D 5rI