
    sh                     z    S SK Jr  S SKJr  S SKJrJrJr  S SKJ	r	  S SK
Jr  S SKJrJrJr  S SKJr  S rS	 rS
 rg)    )Permutation)PermutationGroup)homomorphismgroup_isomorphismis_isomorphic)
free_group)FpGroup)AlternatingGroupDihedralGroupCyclicGroup)raisesc                  *   [        S5      u  pn[        XS-  US-  X-  S-  /5      n[        S5      " SSS5      n[        S5      " SSS5      n[        S5      n[	        X6X/XE/5      nU" XS-  -  US-  -  5      XES-  -  US-  -  :X  d   eUR                  5       (       d   eU" UR                  [        S5      " SSS5      5      5      [        S5      " SSS5      :X  d   e[	        U[        S5      UR                  5      nUR                  5       (       d   eUR                  5       R                  5       UR                  5       :X  d   e[        S5      u  p[        XS	-  /5      n[        [        SSSS5      [        SS5      /5      n
[	        X:U	/[        SSSS5      /5      nUR                  5       R                  5       S:X  d   eU" UR                  [        SS5      " SS5      5      5      [        SS5      " SS5      :X  d   e[	        U[        S5      UR                  U/5      nUR                  US-  5      U	S-  :X  d   e[	        XU/U	/5      nU" US
-  US-  -  US-  -  5      R                  (       d   e[        XU-  US-  -  US-  -  /5      n[	        XU R                  UR                  5      nUR                  US-  US-  -  US-  -  5      XS-  -  :X  d   e[        S	5      n[        SSSSSSSS5      n[        U5      n
[	        XU/U/5      nUR                  5       (       d   eUR                  5       (       a   eUR                  US-  5      US-  :X  d   e[	        X
U R                  S   /U
R                  5      nUR!                  U5      nUR"                  U :X  d   eUR$                  U:X  d   eU" X-  5      U:X  d   e[        S5      n[	        XUR                  UR                  5      nUR                  5       (       d   eg )Na, b      r         e            )r   r	   r   r
   r   is_isomorphisminvert
generators
is_trivialkernelorderr   imageis_identityr   is_injectivecomposedomaincodomain)FabGcdATEr   PDpT2D3s                  ڀ/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/sympy/combinatorics/tests/test_homomorphisms.pytest_homomorphismr6   	   s    GA!qD!Q$q)*AAq!QAAq!QAAQA6A6*AQ!tVArE\?a1fQUl***QXXk!nQ1-./;q>!Q3JJJJQ(+Q\\:A<<>>>88:***c?DAqD6A+aAq1;q!3DEFAQA3Q1a!8 9:A779??!!!QXXk!Q'1-./;q!3DQ3JJJJQ(+Q\\A3?A88AqD>QU""" 	QA3$AQU1a4Z1_)))) 	aC2IaeO$%AQ1<<6A88ArE!R%K1$%b5000 	aAAq!Q1a+AAQA3$A>>!!!!88AqD>QT!!!	aQ\\!_-q||	<B			"A88q==::??QS6Q;;	q	BRR]]BMM:A    c            
      <   [        S5      u  pn[        S5      u  p4n[        XS-  US-  /5      n[        XS-  US-  /5      n[        Xg5      (       d   e[        XS-  US-  X-  S-  /5      n[        S5      u  pn[        XS-  US-  XE-  S-  /5      n[        Xg5      u  pU(       d   eU	" US-  US-  -  5      US-  US-  -  :X  d   e[        S5      u  pn[        XS-  US-  X-  S-  /5      n[	        S5      n[        Xg5      u  pU(       d   eU	" X!-  US-  -  US-  -  US-  -  5      [        SSS5      :X  d   eU	" X!-  U-  US-  -  US-  -  5      [        SSS5      :X  d   e[        S5      n
[        SS	SSSS
SS5      n[        U5      n[        X5      (       a   e[        S
5      n[        S5      n[        X5      (       a   e[        XUS
-  /5      n[        S
5      nUR                  5       UR                  5       :X  d   e[        Xg5      (       d   eg )Nr   zc, dr   r   r   r   r   r   r   r   r   r   )
r   r	   r   r   r
   r   r   r   r   r    )r'   r(   r)   r/   r+   r,   r*   Hcheckr.   r1   r2   r0   r-   Bs                  r5   test_isomorphismsr<   A   sF    GA! GA!qD!Q$< AqD!Q$< A 	qD!Q$q)*A GA!qD!Q$q)*A!!'HEL5QT!Q$Y<1a419$$$  GA!qD!Q$q)*AA &HEL5QSBYq"u_QU"#{1a';;;;QSU1b5[B;q!Q#7777 	aAAq!Q1a+AAQ""""AAAAQ"""" 	q!t9AAA779	!!!r7   c                     ^^ [        SSSS5      m[        SS5      n [        TU /5      m[        [        UU4S j5        g )Nr   r   r   r   c                  $   > [        T T T/T/5      $ )N)r   )r*   r(   s   r5   <lambda>)test_check_homomorphism.<locals>.<lambda>r   s    |Aq1#s;r7   )r   r   r   
ValueError)r)   r*   r(   s    @@r5   test_check_homomorphismrB   n   s8    Aa!AAaA!Q A
:;<r7   N)sympy.combinatoricsr   sympy.combinatorics.perm_groupsr   !sympy.combinatorics.homomorphismsr   r   r   sympy.combinatorics.free_groupsr   sympy.combinatorics.fp_groupsr	    sympy.combinatorics.named_groupsr
   r   r   sympy.testing.pytestr   r6   r<   rB    r7   r5   <module>rK      s1    + < \ \ 6 1 Y Y '5p*Z=r7   