| Step | Hyp | Ref | Expression | 
						
							| 1 |  | psgnuni.g |  |-  G = ( SymGrp ` D ) | 
						
							| 2 |  | psgnuni.t |  |-  T = ran ( pmTrsp ` D ) | 
						
							| 3 |  | psgnuni.d |  |-  ( ph -> D e. V ) | 
						
							| 4 |  | psgnuni.w |  |-  ( ph -> W e. Word T ) | 
						
							| 5 |  | psgnuni.x |  |-  ( ph -> X e. Word T ) | 
						
							| 6 |  | psgnuni.e |  |-  ( ph -> ( G gsum W ) = ( G gsum X ) ) | 
						
							| 7 |  | lencl |  |-  ( W e. Word T -> ( # ` W ) e. NN0 ) | 
						
							| 8 | 4 7 | syl |  |-  ( ph -> ( # ` W ) e. NN0 ) | 
						
							| 9 | 8 | nn0zd |  |-  ( ph -> ( # ` W ) e. ZZ ) | 
						
							| 10 |  | m1expcl |  |-  ( ( # ` W ) e. ZZ -> ( -u 1 ^ ( # ` W ) ) e. ZZ ) | 
						
							| 11 | 9 10 | syl |  |-  ( ph -> ( -u 1 ^ ( # ` W ) ) e. ZZ ) | 
						
							| 12 | 11 | zcnd |  |-  ( ph -> ( -u 1 ^ ( # ` W ) ) e. CC ) | 
						
							| 13 |  | lencl |  |-  ( X e. Word T -> ( # ` X ) e. NN0 ) | 
						
							| 14 | 5 13 | syl |  |-  ( ph -> ( # ` X ) e. NN0 ) | 
						
							| 15 | 14 | nn0zd |  |-  ( ph -> ( # ` X ) e. ZZ ) | 
						
							| 16 |  | m1expcl |  |-  ( ( # ` X ) e. ZZ -> ( -u 1 ^ ( # ` X ) ) e. ZZ ) | 
						
							| 17 | 15 16 | syl |  |-  ( ph -> ( -u 1 ^ ( # ` X ) ) e. ZZ ) | 
						
							| 18 | 17 | zcnd |  |-  ( ph -> ( -u 1 ^ ( # ` X ) ) e. CC ) | 
						
							| 19 |  | neg1cn |  |-  -u 1 e. CC | 
						
							| 20 |  | neg1ne0 |  |-  -u 1 =/= 0 | 
						
							| 21 |  | expne0i |  |-  ( ( -u 1 e. CC /\ -u 1 =/= 0 /\ ( # ` X ) e. ZZ ) -> ( -u 1 ^ ( # ` X ) ) =/= 0 ) | 
						
							| 22 | 19 20 15 21 | mp3an12i |  |-  ( ph -> ( -u 1 ^ ( # ` X ) ) =/= 0 ) | 
						
							| 23 |  | m1expaddsub |  |-  ( ( ( # ` W ) e. ZZ /\ ( # ` X ) e. ZZ ) -> ( -u 1 ^ ( ( # ` W ) - ( # ` X ) ) ) = ( -u 1 ^ ( ( # ` W ) + ( # ` X ) ) ) ) | 
						
							| 24 | 9 15 23 | syl2anc |  |-  ( ph -> ( -u 1 ^ ( ( # ` W ) - ( # ` X ) ) ) = ( -u 1 ^ ( ( # ` W ) + ( # ` X ) ) ) ) | 
						
							| 25 |  | expsub |  |-  ( ( ( -u 1 e. CC /\ -u 1 =/= 0 ) /\ ( ( # ` W ) e. ZZ /\ ( # ` X ) e. ZZ ) ) -> ( -u 1 ^ ( ( # ` W ) - ( # ` X ) ) ) = ( ( -u 1 ^ ( # ` W ) ) / ( -u 1 ^ ( # ` X ) ) ) ) | 
						
							| 26 | 19 20 25 | mpanl12 |  |-  ( ( ( # ` W ) e. ZZ /\ ( # ` X ) e. ZZ ) -> ( -u 1 ^ ( ( # ` W ) - ( # ` X ) ) ) = ( ( -u 1 ^ ( # ` W ) ) / ( -u 1 ^ ( # ` X ) ) ) ) | 
						
							| 27 | 9 15 26 | syl2anc |  |-  ( ph -> ( -u 1 ^ ( ( # ` W ) - ( # ` X ) ) ) = ( ( -u 1 ^ ( # ` W ) ) / ( -u 1 ^ ( # ` X ) ) ) ) | 
						
							| 28 |  | revcl |  |-  ( X e. Word T -> ( reverse ` X ) e. Word T ) | 
						
							| 29 | 5 28 | syl |  |-  ( ph -> ( reverse ` X ) e. Word T ) | 
						
							| 30 |  | ccatlen |  |-  ( ( W e. Word T /\ ( reverse ` X ) e. Word T ) -> ( # ` ( W ++ ( reverse ` X ) ) ) = ( ( # ` W ) + ( # ` ( reverse ` X ) ) ) ) | 
						
							| 31 | 4 29 30 | syl2anc |  |-  ( ph -> ( # ` ( W ++ ( reverse ` X ) ) ) = ( ( # ` W ) + ( # ` ( reverse ` X ) ) ) ) | 
						
							| 32 |  | revlen |  |-  ( X e. Word T -> ( # ` ( reverse ` X ) ) = ( # ` X ) ) | 
						
							| 33 | 5 32 | syl |  |-  ( ph -> ( # ` ( reverse ` X ) ) = ( # ` X ) ) | 
						
							| 34 | 33 | oveq2d |  |-  ( ph -> ( ( # ` W ) + ( # ` ( reverse ` X ) ) ) = ( ( # ` W ) + ( # ` X ) ) ) | 
						
							| 35 | 31 34 | eqtr2d |  |-  ( ph -> ( ( # ` W ) + ( # ` X ) ) = ( # ` ( W ++ ( reverse ` X ) ) ) ) | 
						
							| 36 | 35 | oveq2d |  |-  ( ph -> ( -u 1 ^ ( ( # ` W ) + ( # ` X ) ) ) = ( -u 1 ^ ( # ` ( W ++ ( reverse ` X ) ) ) ) ) | 
						
							| 37 |  | ccatcl |  |-  ( ( W e. Word T /\ ( reverse ` X ) e. Word T ) -> ( W ++ ( reverse ` X ) ) e. Word T ) | 
						
							| 38 | 4 29 37 | syl2anc |  |-  ( ph -> ( W ++ ( reverse ` X ) ) e. Word T ) | 
						
							| 39 | 6 | fveq2d |  |-  ( ph -> ( ( invg ` G ) ` ( G gsum W ) ) = ( ( invg ` G ) ` ( G gsum X ) ) ) | 
						
							| 40 |  | eqid |  |-  ( invg ` G ) = ( invg ` G ) | 
						
							| 41 | 2 1 40 | symgtrinv |  |-  ( ( D e. V /\ X e. Word T ) -> ( ( invg ` G ) ` ( G gsum X ) ) = ( G gsum ( reverse ` X ) ) ) | 
						
							| 42 | 3 5 41 | syl2anc |  |-  ( ph -> ( ( invg ` G ) ` ( G gsum X ) ) = ( G gsum ( reverse ` X ) ) ) | 
						
							| 43 | 39 42 | eqtr2d |  |-  ( ph -> ( G gsum ( reverse ` X ) ) = ( ( invg ` G ) ` ( G gsum W ) ) ) | 
						
							| 44 | 43 | oveq2d |  |-  ( ph -> ( ( G gsum W ) ( +g ` G ) ( G gsum ( reverse ` X ) ) ) = ( ( G gsum W ) ( +g ` G ) ( ( invg ` G ) ` ( G gsum W ) ) ) ) | 
						
							| 45 | 1 | symggrp |  |-  ( D e. V -> G e. Grp ) | 
						
							| 46 | 3 45 | syl |  |-  ( ph -> G e. Grp ) | 
						
							| 47 |  | grpmnd |  |-  ( G e. Grp -> G e. Mnd ) | 
						
							| 48 | 3 45 47 | 3syl |  |-  ( ph -> G e. Mnd ) | 
						
							| 49 |  | eqid |  |-  ( Base ` G ) = ( Base ` G ) | 
						
							| 50 | 2 1 49 | symgtrf |  |-  T C_ ( Base ` G ) | 
						
							| 51 |  | sswrd |  |-  ( T C_ ( Base ` G ) -> Word T C_ Word ( Base ` G ) ) | 
						
							| 52 | 50 51 | ax-mp |  |-  Word T C_ Word ( Base ` G ) | 
						
							| 53 | 52 4 | sselid |  |-  ( ph -> W e. Word ( Base ` G ) ) | 
						
							| 54 | 49 | gsumwcl |  |-  ( ( G e. Mnd /\ W e. Word ( Base ` G ) ) -> ( G gsum W ) e. ( Base ` G ) ) | 
						
							| 55 | 48 53 54 | syl2anc |  |-  ( ph -> ( G gsum W ) e. ( Base ` G ) ) | 
						
							| 56 |  | eqid |  |-  ( +g ` G ) = ( +g ` G ) | 
						
							| 57 |  | eqid |  |-  ( 0g ` G ) = ( 0g ` G ) | 
						
							| 58 | 49 56 57 40 | grprinv |  |-  ( ( G e. Grp /\ ( G gsum W ) e. ( Base ` G ) ) -> ( ( G gsum W ) ( +g ` G ) ( ( invg ` G ) ` ( G gsum W ) ) ) = ( 0g ` G ) ) | 
						
							| 59 | 46 55 58 | syl2anc |  |-  ( ph -> ( ( G gsum W ) ( +g ` G ) ( ( invg ` G ) ` ( G gsum W ) ) ) = ( 0g ` G ) ) | 
						
							| 60 | 44 59 | eqtrd |  |-  ( ph -> ( ( G gsum W ) ( +g ` G ) ( G gsum ( reverse ` X ) ) ) = ( 0g ` G ) ) | 
						
							| 61 | 52 29 | sselid |  |-  ( ph -> ( reverse ` X ) e. Word ( Base ` G ) ) | 
						
							| 62 | 49 56 | gsumccat |  |-  ( ( G e. Mnd /\ W e. Word ( Base ` G ) /\ ( reverse ` X ) e. Word ( Base ` G ) ) -> ( G gsum ( W ++ ( reverse ` X ) ) ) = ( ( G gsum W ) ( +g ` G ) ( G gsum ( reverse ` X ) ) ) ) | 
						
							| 63 | 48 53 61 62 | syl3anc |  |-  ( ph -> ( G gsum ( W ++ ( reverse ` X ) ) ) = ( ( G gsum W ) ( +g ` G ) ( G gsum ( reverse ` X ) ) ) ) | 
						
							| 64 | 1 | symgid |  |-  ( D e. V -> ( _I |` D ) = ( 0g ` G ) ) | 
						
							| 65 | 3 64 | syl |  |-  ( ph -> ( _I |` D ) = ( 0g ` G ) ) | 
						
							| 66 | 60 63 65 | 3eqtr4d |  |-  ( ph -> ( G gsum ( W ++ ( reverse ` X ) ) ) = ( _I |` D ) ) | 
						
							| 67 | 1 2 3 38 66 | psgnunilem4 |  |-  ( ph -> ( -u 1 ^ ( # ` ( W ++ ( reverse ` X ) ) ) ) = 1 ) | 
						
							| 68 | 36 67 | eqtrd |  |-  ( ph -> ( -u 1 ^ ( ( # ` W ) + ( # ` X ) ) ) = 1 ) | 
						
							| 69 | 24 27 68 | 3eqtr3d |  |-  ( ph -> ( ( -u 1 ^ ( # ` W ) ) / ( -u 1 ^ ( # ` X ) ) ) = 1 ) | 
						
							| 70 | 12 18 22 69 | diveq1d |  |-  ( ph -> ( -u 1 ^ ( # ` W ) ) = ( -u 1 ^ ( # ` X ) ) ) |