| Step | 
						Hyp | 
						Ref | 
						Expression | 
					
						
							| 1 | 
							
								
							 | 
							lsmhash.p | 
							 |-  .(+) = ( LSSum ` G )  | 
						
						
							| 2 | 
							
								
							 | 
							lsmhash.o | 
							 |-  .0. = ( 0g ` G )  | 
						
						
							| 3 | 
							
								
							 | 
							lsmhash.z | 
							 |-  Z = ( Cntz ` G )  | 
						
						
							| 4 | 
							
								
							 | 
							lsmhash.t | 
							 |-  ( ph -> T e. ( SubGrp ` G ) )  | 
						
						
							| 5 | 
							
								
							 | 
							lsmhash.u | 
							 |-  ( ph -> U e. ( SubGrp ` G ) )  | 
						
						
							| 6 | 
							
								
							 | 
							lsmhash.i | 
							 |-  ( ph -> ( T i^i U ) = { .0. } ) | 
						
						
							| 7 | 
							
								
							 | 
							lsmhash.s | 
							 |-  ( ph -> T C_ ( Z ` U ) )  | 
						
						
							| 8 | 
							
								
							 | 
							lsmhash.1 | 
							 |-  ( ph -> T e. Fin )  | 
						
						
							| 9 | 
							
								
							 | 
							lsmhash.2 | 
							 |-  ( ph -> U e. Fin )  | 
						
						
							| 10 | 
							
								
							 | 
							ovexd | 
							 |-  ( ph -> ( T .(+) U ) e. _V )  | 
						
						
							| 11 | 
							
								
							 | 
							eqid | 
							 |-  ( x e. ( T .(+) U ) |-> <. ( ( T ( proj1 ` G ) U ) ` x ) , ( ( U ( proj1 ` G ) T ) ` x ) >. ) = ( x e. ( T .(+) U ) |-> <. ( ( T ( proj1 ` G ) U ) ` x ) , ( ( U ( proj1 ` G ) T ) ` x ) >. )  | 
						
						
							| 12 | 
							
								
							 | 
							eqid | 
							 |-  ( +g ` G ) = ( +g ` G )  | 
						
						
							| 13 | 
							
								
							 | 
							eqid | 
							 |-  ( proj1 ` G ) = ( proj1 ` G )  | 
						
						
							| 14 | 
							
								12 1 2 3 4 5 6 7 13
							 | 
							pj1f | 
							 |-  ( ph -> ( T ( proj1 ` G ) U ) : ( T .(+) U ) --> T )  | 
						
						
							| 15 | 
							
								14
							 | 
							ffvelcdmda | 
							 |-  ( ( ph /\ x e. ( T .(+) U ) ) -> ( ( T ( proj1 ` G ) U ) ` x ) e. T )  | 
						
						
							| 16 | 
							
								12 1 2 3 4 5 6 7 13
							 | 
							pj2f | 
							 |-  ( ph -> ( U ( proj1 ` G ) T ) : ( T .(+) U ) --> U )  | 
						
						
							| 17 | 
							
								16
							 | 
							ffvelcdmda | 
							 |-  ( ( ph /\ x e. ( T .(+) U ) ) -> ( ( U ( proj1 ` G ) T ) ` x ) e. U )  | 
						
						
							| 18 | 
							
								15 17
							 | 
							opelxpd | 
							 |-  ( ( ph /\ x e. ( T .(+) U ) ) -> <. ( ( T ( proj1 ` G ) U ) ` x ) , ( ( U ( proj1 ` G ) T ) ` x ) >. e. ( T X. U ) )  | 
						
						
							| 19 | 
							
								4 5
							 | 
							jca | 
							 |-  ( ph -> ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) ) )  | 
						
						
							| 20 | 
							
								
							 | 
							xp1st | 
							 |-  ( y e. ( T X. U ) -> ( 1st ` y ) e. T )  | 
						
						
							| 21 | 
							
								
							 | 
							xp2nd | 
							 |-  ( y e. ( T X. U ) -> ( 2nd ` y ) e. U )  | 
						
						
							| 22 | 
							
								20 21
							 | 
							jca | 
							 |-  ( y e. ( T X. U ) -> ( ( 1st ` y ) e. T /\ ( 2nd ` y ) e. U ) )  | 
						
						
							| 23 | 
							
								12 1
							 | 
							lsmelvali | 
							 |-  ( ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) ) /\ ( ( 1st ` y ) e. T /\ ( 2nd ` y ) e. U ) ) -> ( ( 1st ` y ) ( +g ` G ) ( 2nd ` y ) ) e. ( T .(+) U ) )  | 
						
						
							| 24 | 
							
								19 22 23
							 | 
							syl2an | 
							 |-  ( ( ph /\ y e. ( T X. U ) ) -> ( ( 1st ` y ) ( +g ` G ) ( 2nd ` y ) ) e. ( T .(+) U ) )  | 
						
						
							| 25 | 
							
								4
							 | 
							adantr | 
							 |-  ( ( ph /\ ( x e. ( T .(+) U ) /\ y e. ( T X. U ) ) ) -> T e. ( SubGrp ` G ) )  | 
						
						
							| 26 | 
							
								5
							 | 
							adantr | 
							 |-  ( ( ph /\ ( x e. ( T .(+) U ) /\ y e. ( T X. U ) ) ) -> U e. ( SubGrp ` G ) )  | 
						
						
							| 27 | 
							
								6
							 | 
							adantr | 
							 |-  ( ( ph /\ ( x e. ( T .(+) U ) /\ y e. ( T X. U ) ) ) -> ( T i^i U ) = { .0. } ) | 
						
						
							| 28 | 
							
								7
							 | 
							adantr | 
							 |-  ( ( ph /\ ( x e. ( T .(+) U ) /\ y e. ( T X. U ) ) ) -> T C_ ( Z ` U ) )  | 
						
						
							| 29 | 
							
								
							 | 
							simprl | 
							 |-  ( ( ph /\ ( x e. ( T .(+) U ) /\ y e. ( T X. U ) ) ) -> x e. ( T .(+) U ) )  | 
						
						
							| 30 | 
							
								20
							 | 
							ad2antll | 
							 |-  ( ( ph /\ ( x e. ( T .(+) U ) /\ y e. ( T X. U ) ) ) -> ( 1st ` y ) e. T )  | 
						
						
							| 31 | 
							
								21
							 | 
							ad2antll | 
							 |-  ( ( ph /\ ( x e. ( T .(+) U ) /\ y e. ( T X. U ) ) ) -> ( 2nd ` y ) e. U )  | 
						
						
							| 32 | 
							
								12 1 2 3 25 26 27 28 13 29 30 31
							 | 
							pj1eq | 
							 |-  ( ( ph /\ ( x e. ( T .(+) U ) /\ y e. ( T X. U ) ) ) -> ( x = ( ( 1st ` y ) ( +g ` G ) ( 2nd ` y ) ) <-> ( ( ( T ( proj1 ` G ) U ) ` x ) = ( 1st ` y ) /\ ( ( U ( proj1 ` G ) T ) ` x ) = ( 2nd ` y ) ) ) )  | 
						
						
							| 33 | 
							
								
							 | 
							eqcom | 
							 |-  ( ( ( T ( proj1 ` G ) U ) ` x ) = ( 1st ` y ) <-> ( 1st ` y ) = ( ( T ( proj1 ` G ) U ) ` x ) )  | 
						
						
							| 34 | 
							
								
							 | 
							eqcom | 
							 |-  ( ( ( U ( proj1 ` G ) T ) ` x ) = ( 2nd ` y ) <-> ( 2nd ` y ) = ( ( U ( proj1 ` G ) T ) ` x ) )  | 
						
						
							| 35 | 
							
								33 34
							 | 
							anbi12i | 
							 |-  ( ( ( ( T ( proj1 ` G ) U ) ` x ) = ( 1st ` y ) /\ ( ( U ( proj1 ` G ) T ) ` x ) = ( 2nd ` y ) ) <-> ( ( 1st ` y ) = ( ( T ( proj1 ` G ) U ) ` x ) /\ ( 2nd ` y ) = ( ( U ( proj1 ` G ) T ) ` x ) ) )  | 
						
						
							| 36 | 
							
								32 35
							 | 
							bitrdi | 
							 |-  ( ( ph /\ ( x e. ( T .(+) U ) /\ y e. ( T X. U ) ) ) -> ( x = ( ( 1st ` y ) ( +g ` G ) ( 2nd ` y ) ) <-> ( ( 1st ` y ) = ( ( T ( proj1 ` G ) U ) ` x ) /\ ( 2nd ` y ) = ( ( U ( proj1 ` G ) T ) ` x ) ) ) )  | 
						
						
							| 37 | 
							
								
							 | 
							eqop | 
							 |-  ( y e. ( T X. U ) -> ( y = <. ( ( T ( proj1 ` G ) U ) ` x ) , ( ( U ( proj1 ` G ) T ) ` x ) >. <-> ( ( 1st ` y ) = ( ( T ( proj1 ` G ) U ) ` x ) /\ ( 2nd ` y ) = ( ( U ( proj1 ` G ) T ) ` x ) ) ) )  | 
						
						
							| 38 | 
							
								37
							 | 
							ad2antll | 
							 |-  ( ( ph /\ ( x e. ( T .(+) U ) /\ y e. ( T X. U ) ) ) -> ( y = <. ( ( T ( proj1 ` G ) U ) ` x ) , ( ( U ( proj1 ` G ) T ) ` x ) >. <-> ( ( 1st ` y ) = ( ( T ( proj1 ` G ) U ) ` x ) /\ ( 2nd ` y ) = ( ( U ( proj1 ` G ) T ) ` x ) ) ) )  | 
						
						
							| 39 | 
							
								36 38
							 | 
							bitr4d | 
							 |-  ( ( ph /\ ( x e. ( T .(+) U ) /\ y e. ( T X. U ) ) ) -> ( x = ( ( 1st ` y ) ( +g ` G ) ( 2nd ` y ) ) <-> y = <. ( ( T ( proj1 ` G ) U ) ` x ) , ( ( U ( proj1 ` G ) T ) ` x ) >. ) )  | 
						
						
							| 40 | 
							
								11 18 24 39
							 | 
							f1o2d | 
							 |-  ( ph -> ( x e. ( T .(+) U ) |-> <. ( ( T ( proj1 ` G ) U ) ` x ) , ( ( U ( proj1 ` G ) T ) ` x ) >. ) : ( T .(+) U ) -1-1-onto-> ( T X. U ) )  | 
						
						
							| 41 | 
							
								10 40
							 | 
							hasheqf1od | 
							 |-  ( ph -> ( # ` ( T .(+) U ) ) = ( # ` ( T X. U ) ) )  | 
						
						
							| 42 | 
							
								
							 | 
							hashxp | 
							 |-  ( ( T e. Fin /\ U e. Fin ) -> ( # ` ( T X. U ) ) = ( ( # ` T ) x. ( # ` U ) ) )  | 
						
						
							| 43 | 
							
								8 9 42
							 | 
							syl2anc | 
							 |-  ( ph -> ( # ` ( T X. U ) ) = ( ( # ` T ) x. ( # ` U ) ) )  | 
						
						
							| 44 | 
							
								41 43
							 | 
							eqtrd | 
							 |-  ( ph -> ( # ` ( T .(+) U ) ) = ( ( # ` T ) x. ( # ` U ) ) )  |