
    g                     z    d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZ d dlmZ d Zd	 Zd
 Zy)    )Permutation)PermutationGroup)homomorphismgroup_isomorphismis_isomorphic)
free_group)FpGroup)AlternatingGroupDihedralGroupCyclicGroup)raisesc                     t        d      \  } }}t        | |dz  |dz  ||z  dz  g      } t        d      ddd      } t        d      ddd      }t        d      }t	        ||||g||g      } |||dz  z  |dz  z        ||dz  z  |dz  z  k(  sJ |j                         sJ  ||j                   t        d      ddd                   t        d      ddd      k(  sJ t	        |t        d      |j                        }|j                         sJ |j                         j                         |j                         k(  sJ t        d      \  }}	t        ||	d	z  g      }t        t        dddd      t        dd      g      }
t	        ||
|	gt        dddd      g      }|j                         j                         dk(  sJ  ||j                   t        dd      dd                   t        dd      dd      k(  sJ t	        |t        d      |j                  |g      }|j                  |dz        |	dz  k(  sJ t	        | ||g|	g      } ||d
z  |dz  z  |dz  z        j                  sJ t        | ||z  |dz  z  |dz  z  g      }t	        | || j                  |j                        }|j                  |dz  |dz  z  |dz  z        ||dz  z  k(  sJ t        d	      }t        dddddddd      }t        |      }
t	        |
||g|g      }|j                         sJ |j                         rJ |j                  |dz        |dz  k(  sJ t	        | |
| j                  d   g|
j                        }|j!                  |      }|j"                  | k(  sJ |j$                  |k(  sJ  |||z        |k(  sJ t        d      }t	        |||j                  |j                        }|j                         sJ y )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                  a/var/www/openai/venv/lib/python3.12/site-packages/sympy/combinatorics/tests/test_homomorphisms.pytest_homomorphismr6   	   s    GAq!AqD!Q$1q)*AAq!QAAq!QAAQAq6Aq6*AQq!tVArE\?a1fQUl***QXXnk!nQ1-./>;q>!Q3JJJJQ(+Q\\:A<<>>88:***c?DAqAqD6A+aAq1;q!3DEFAQA3Q1a!8 9:A779??!!!QXX'k!Q'1-./3D;q!3DQ3JJJJQ(+Q\\A3?A88AqD>QU""" 	QA3$AQU1a4Z1_)))) 	AaC2IaeO$%AQ1<<6A88ArE!R%K1$%1b5000 	aAAq!Q1a+AAQA3$A>>!!!88AqD>QT!!!	aQ\\!_-q||	<B			"A88q==::??QqS6Q;;	q	BRR]]BMM:A    c            
      &   t        d      \  } }}t        d      \  }}}t        | |dz  |dz  g      }t        | |dz  |dz  g      }t        ||      sJ t        | |dz  |dz  ||z  dz  g      }t        d      \  } }}t        | |dz  |dz  ||z  dz  g      }t        ||      \  }}	|sJ  |	|dz  |dz  z        |dz  |dz  z  k(  sJ t        d      \  } }}t        | |dz  |dz  ||z  dz  g      }t	        d      }t        ||      \  }}	|sJ  |	||z  |dz  z  |dz  z  |dz  z        t        ddd      k(  sJ  |	||z  |z  |dz  z  |dz  z        t        ddd      k(  sJ t        d      }
t        dd	dddd
dd      }t        |      }t        |
|      rJ t        d
      }t        d      }t        ||      rJ t        | ||d
z  g      }t        d
      }|j                         |j                         k(  sJ t        ||      sJ y )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   sh    GAq! GAq!AqD!Q$< AAqD!Q$< AA 	AqD!Q$1q)*A GAq!AqD!Q$1q)*A!!Q'HE1L5QT!Q$Y<1a419$$$  GAq!AqD!Q$1q)*AA A&HE1L5QqSBYq"u_QU"#{1a';;;;QqSU1b5[B;q!Q#7777 	aAAq!Q1a+AAQ"""AAAAQ""" 	Aq!t9AAA779	!!!Ar7   c                  ~    t        dddd      t        dd      } t        | g      t        t        fd       y )Nr   r   r   r   c                  $    t          gg      S )N)r   )r*   r(   s   r5   <lambda>z)test_check_homomorphism.<locals>.<lambda>r   s    |Aq1#s;r7   )r   r   r   
ValueError)r)   r*   r(   s    @@r5   test_check_homomorphismrA   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<   rA    r7   r5   <module>rJ      s1    + < \ \ 6 1 Y Y '5p*Z=r7   