Ë
    7^(h3&  ã                   ó  — d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZmZmZ d dlmZ d„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.y)é    )Úprod)ÚQQÚZZ)ÚxÚtheta)Ú	factorint)Ún_order)ÚPolyÚcyclotomic_poly)ÚDomainMatrix)Ú	round_two)ÚStructureError)Ú
PowerBasisÚto_col)Úprime_decompÚ_two_elt_repÚ*_check_formal_conditions_for_maximal_order)Úraisesc                  óØ  ‡‡‡— t        t        dt        «      «      } t        | «      }|j	                  dt        j                  dt        «      z  «      Š‰j	                  dt        j                  dt        «      z  «      Š|j	                  t        j                  dt        «      d d …d d…f   «      Št        t        ˆfd„«       t        t        ˆfd„«       t        t        ˆfd„«       y )	Né   é   é   é   éÿÿÿÿc                  ó   •— t        ‰ «      S ©N©r   )ÚBs   €úh/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/polys/numberfields/tests/test_primes.pyú<lambda>z@test_check_formal_conditions_for_maximal_order.<locals>.<lambda>   ó   ø€ Ô#MÈaÓ#P€ ó    c                  ó   •— t        ‰ «      S r   r   )ÚCs   €r   r    z@test_check_formal_conditions_for_maximal_order.<locals>.<lambda>   r!   r"   c                  ó   •— t        ‰ «      S r   r   )ÚDs   €r   r    z@test_check_formal_conditions_for_maximal_order.<locals>.<lambda>   r!   r"   )
r
   r   r   r   Úsubmodule_from_matrixr   Úeyer   r   r   )ÚTÚAr   r$   r&   s     @@@r   Ú.test_check_formal_conditions_for_maximal_orderr+      s¬   ú€ ÜŒ_˜Q¤Ó"Ó#€AÜ�1‹€AØ	×Ñ ¤L×$4Ñ$4°Q¼Ó$;Ñ ;Ó<€AØ	×Ñ ¤L×$4Ñ$4°Q¼Ó$;Ñ ;Ó<€AØ	×Ñ¤× 0Ñ 0°´BÓ 7º¸3¸B¸3¸Ñ ?Ó@€Aä
Œ>ÓPÔQä
Œ>ÓPÔQä
Œ>ÓPÕQr"   c                  ó(  — d} t        t        | «      «      }t        |«      \  }}dD ]i  }t        ||«      }|D ]V  }||z  |j                  |z  z   }|j                  «       }t        |||«      }	|	|j                  k7  sŒE||z  |	|z  z   }
|
|k(  rŒVJ ‚ Œk y )Né   ©é   é   é   r   )r
   r   r   r   ÚalphaÚbasis_element_pullbacksr   )Úellr)   ÚZKÚdKÚpÚPÚPiÚHÚgensÚbÚH2s              r   Útest_two_elt_repr>   !   s¨   € Ø
€CÜŒ_˜SÓ!Ó"€AÜ�q‹\�F€BˆØò ˆÜ˜˜AÓˆØò 	ˆBð �"‘�r—x‘x ‘{Ñ"ˆAØ×,Ñ,Ó.ˆDä˜T 2 qÓ)ˆAØ�B—H‘H‹}Ø�r‘T˜A˜b™D‘[�Ø˜Q“w��wñ	ñr"   c                  ó  — d} t        t        | «      «      }t        |«      \  }}t        | |||¬«      }t	        |«      dk(  sJ ‚|d   }|j                  | |z  «      }||j                  k(  sJ ‚|j                  d|z  «      dk(  sJ ‚y )Nr-   ©r6   r5   é   r   r   )r
   r   r   r   ÚlenÚ	valuationÚe)r7   r)   r5   r6   r8   ÚP0Úvs          r   Útest_valuation_at_prime_idealrG   7   s‰   € Ø	€AÜŒ_˜QÓÓ €AÜ�q‹\�F€BˆÜ�Q˜˜b RÔ(€AÜˆq‹6�QŠ;Ðˆ;Ø	
ˆ1‰€BØ
�‰�Q�r‘TÓ€AØ�—‘Š9Ðˆ9à�<‰<˜˜"™Ó Ò"Ð"Ñ"r"   c                  ó>  — t        t        d«      «      } t        t        d„ «       t	        d| «      }t        |«      dk(  sJ ‚|d   }|j                  dk(  sJ ‚|j                  dk(  sJ ‚|dz  |j                  k(  sJ ‚|dz  |k(  sJ ‚|dz  d|j                  z  k(  sJ ‚y )Nr-   c                  ó   — t        d«      S )Nr-   )r   © r"   r   r    ztest_decomp_1.<locals>.<lambda>I   s
   € œ|¨A›€ r"   rA   r   é   )	r
   r   r   Ú
ValueErrorr   rB   rD   Úfr5   )r)   r8   rE   s      r   Útest_decomp_1rN   D   s¡   € ô 	Œ_˜QÓÓ €AÜ
Œ:Ñ.Ô/Ü�Q˜Ó€AÜˆq‹6�QŠ;Ðˆ;Ø	
ˆ1‰€BØ�4‰4�1Š9Ðˆ9Ø�4‰4�1Š9Ðˆ9àˆq‰5�B—E‘EŠ>Ðˆ>Øˆq‰5�BŠ;Ðˆ;Øˆq‰5�A˜Ÿ™‘IÒÐÑr"   c                  óð   — d} t        t        | «      «      }dD ][  }t        || «      }| dz
  |z  }t        ||«      }t	        |«      |k(  sJ ‚|D ]$  }|j
                  dk(  sJ ‚|j                  |k(  rŒ$J ‚ Œ] y )Nr-   r.   rA   )r
   r   r	   r   rB   rD   rM   )r4   r)   r7   Úf_expÚg_expr8   r9   s          r   Útest_decomp_2rR   U   s‰   € à
€CÜŒ_˜SÓ!Ó"€AØò !ˆÜ˜˜3“ˆØ�q‘˜UÑ"ˆÜ˜˜AÓˆÜ�1‹v˜ŠÐˆØò 	!ˆBØ—4‘4˜1’9Ð�9Ø—4‘4˜5“=Ð �=ñ	!ñ!r"   c            
      ó  — t        t        dz  dz
  «      } i }t        | |¬«      \  }}dD ]U  }t        || |||j	                  |«      ¬«      }t        |«      dk(  sJ ‚|d   j                  dk(  sJ ‚|d   dz  ||z  k(  rŒUJ ‚ y )Nr   é#   ©Úradicals)r   r   r-   ©r6   r5   ÚradicalrA   r   ©r
   r   r   r   ÚgetrB   rD   ©r)   Úradr5   r6   r7   r8   s         r   Útest_decomp_3r]   c   s�   € ÜŒQ�!‰V�b‰[Ó€AØ
€CÜ�q 3Ô'�F€Bˆð ò ˆÜ˜˜A "¨°S·W±W¸Q³ZÔ@ˆÜ�1‹v˜Š{Ðˆ{Ø�‰t�v‰v˜Š{Ðˆ{Ø�‰t�Q‰w˜!˜B™$‹Ðˆñ	r"   c            
      ó  — t        t        dz  dz
  «      } i }t        | |¬«      \  }}dD ]U  }t        || |||j	                  |«      ¬«      }t        |«      dk(  sJ ‚|d   j                  dk(  sJ ‚|d   dz  ||z  k(  rŒUJ ‚ y )Nr   é   rU   )r   r-   rW   rA   r   rY   r[   s         r   Útest_decomp_4r`   p   s�   € ÜŒQ�!‰V�b‰[Ó€AØ
€CÜ�q 3Ô'�F€Bˆð ò ˆÜ˜˜A "¨°S·W±W¸Q³ZÔ@ˆÜ�1‹v˜Š{Ðˆ{Ø�‰t�v‰v˜Š{Ðˆ{Ø�‰t�Q‰w˜!˜B™$‹Ðˆñ	r"   c            
      ó  ‡— dD ]ù  } t        t        dz  | z
  «      }i }t        ||¬«      \  }}d}t        |||||j	                  |«      ¬«      Š| dz  dk(  rJt        ‰«      dk(  sJ ‚t        ˆfd„t        d«      D «       «      sJ ‚t        d„ ‰D «       «      ||z  k(  rŒ›J ‚| dz  d	k(  sJ ‚t        ‰«      dk(  sJ ‚‰d
   j                  dk(  sJ ‚‰d
   j                  dk(  sJ ‚‰d
   j                  «       ||z  k(  rŒùJ ‚ y )N)iùÿÿÿéýÿÿÿr   rU   rW   é   rA   c              3   ój   •K  — | ]*  }‰|   j                   d k(  xr ‰|   j                  d k(  –— Œ, y­w©rA   N©rD   rM   )Ú.0Úir8   s     €r   ú	<genexpr>z test_decomp_5.<locals>.<genexpr>Œ   s1   øè ø€ ÒE°q�q˜‘t—v‘v ‘{Ò2 q¨¡t§v¡v°¡{Ó2ÑEùs   ƒ03c              3   ó:   K  — | ]  }||j                   z  –— Œ y ­wr   ©rD   ©rg   r9   s     r   ri   z test_decomp_5.<locals>.<genexpr>�   s   è ø€ Ò- R˜˜BŸD™D�Ñ-ùó   ‚r   r   )r
   r   r   r   rZ   rB   ÚallÚranger   rD   rM   Úas_submodule)Údr)   r\   r5   r6   r7   r8   s         @r   Útest_decomp_5rr   }   s  ø€ ð ò 1ˆÜ”�a‘˜!‘ÓˆØˆÜ˜1 sÔ+‰ˆˆBØˆÜ˜˜A "¨°S·W±W¸Q³ZÔ@ˆØˆq‰5�AŠ:Ü�q“6˜Q’;Ð�;ÜÓE¼EÀ!»HÔEÔEÐEÐEÜÑ-¨1Ô-Ó-°°R±Ó7Ð7Ð7à�q‘5˜A’:Ð�:Ü�q“6˜Q’;Ð�;Ø�Q‘4—6‘6˜Q’;Ð�;Ø�Q‘4—6‘6˜Q’;Ð�;Ø�Q‘4×$Ñ$Ó&¨!¨b©&Ó0Ð0Ð0ñ1r"   c            	      ó8  — t        t        dz  t        dz  z   dt        z  z
  dz   «      } i }t        | |¬«      \  }}d}t        || |||j	                  |«      ¬«      }t        |«      dk(  sJ ‚t        d„ |D «       «      sJ ‚t        d„ |D «       «      ||z  k(  sJ ‚y )Nr   r   rc   rU   rW   c              3   ód   K  — | ](  }|j                   |j                  cxk(  xr d k(  nc –— Œ* y­wre   rf   rl   s     r   ri   z test_decomp_6.<locals>.<genexpr>Ÿ   ó%   è ø€ Ò- Rˆr�t‰t�r—t‘tÖ ˜q× Ð Ñ-ùó   ‚.0c              3   ó:   K  — | ]  }||j                   z  –— Œ y ­wr   rk   rl   s     r   ri   z test_decomp_6.<locals>.<genexpr>    ó   è ø€ Ò%˜R��B—D‘D•Ñ%ùrm   )r
   r   r   r   rZ   rB   rn   r   r[   s         r   Útest_decomp_6ry   –   s�   € ô 	ŒQ�!‰V”a˜1‘f‰_˜q¤1™uÑ$ qÑ(Ó)€AØ
€CÜ�q 3Ô'�F€BˆØ	€AÜ�Q˜˜b R°·±¸³Ô<€AÜˆq‹6�QŠ;Ðˆ;ÜÑ-¨1Ô-Ô-Ð-Ð-ÜÑ% 1Ô%Ó%¨¨2©Ò-Ð-Ñ-r"   c                  óB  — t        t        dz  t        dz  z   dt        z  z
  dz   «      } t        j                  | «      }d}|j	                  |«      }|j                  «       }t        |«      dk(  sJ ‚t        d„ |D «       «      sJ ‚t        d„ |D «       «      ||z  k(  sJ ‚y )Nr   r   rc   c              3   ód   K  — | ](  }|j                   |j                  cxk(  xr d k(  nc –— Œ* y­wre   rf   rl   s     r   ri   z test_decomp_7.<locals>.<genexpr>«   ru   rv   c              3   ó:   K  — | ]  }||j                   z  –— Œ y ­wr   rk   rl   s     r   ri   z test_decomp_7.<locals>.<genexpr>¬   rx   rm   )	r
   r   r   Úalg_field_from_polyÚprimes_aboveÚmaximal_orderrB   rn   r   )r)   ÚKr7   r8   r5   s        r   Útest_decomp_7r�   £   s–   € äŒQ�!‰V”a˜1‘f‰_˜q¤1™uÑ$ qÑ(Ó)€AÜ
×Ñ˜qÓ!€AØ	€AØ	�‰�qÓ€AØ	
�‰Ó	€BÜˆq‹6�QŠ;Ðˆ;ÜÑ-¨1Ô-Ô-Ð-Ð-ÜÑ% 1Ô%Ó%¨¨2©Ò-Ð-Ñ-r"   c                  óP  — t         dz  dt         dz  z  z   dt         z  z
  dz   t         dz  dt         dz  z  z   dt         z  z   dz
  t         dz  dt         dz  z  z   t         z
  dz   t         dz  dt         dz  z  z   dt         z  z
  dz
  t         dz  dt         dz  z  z   dz   t         dz  dt         dz  z  z   dt         z  z   dz
  t         dz  dt         dz  z  z   dz   t         dz  dt         dz  z  z   dt         z  z   dz
  t         dz  dt         dz  z  z   t         z
  dz   t         dz  dt         dz  z  z   dt         z  z
  dz   t         dz  dt         dz  z  z   dt         z  z
  dz   t         dz  dt         dz  z  z   dt         z  z   dz
  t         dz  dt         dz  z  z   dt         z  z
  dz   t         dz  dt         dz  z  z   dt         z  z
  dz   t         dz  d	t         dz  z  z   dt         z  z   dz
  t         dz  d
t         dz  z  z   d	t         z  z
  dz   f} d„ }d}| D ]”  }t        |«      }i }t        ||¬«      \  }}|j                  «       }||z  }	t	        |	«      }
|
D ]P  }|j                  |«      }t        |||||¬«      }t        d„ |D «       «      }||z  }|r |||||||«       ||k(  rŒPJ ‚ Œ– y )Nr   r   r   r   rK   rA   r-   rc   é	   é   r0   c                 ó²   — t        d«       t        | ||«       |D ]  }t        d|›d�«       Œ t        d|«       t        d|«       t        d||k(  › �«       y)z2Useful for inspection, when running test manually.z====================z  (ú)zI: zJ: zEqual: N)Úprint)r)   r7   rX   r8   ÚIÚJr9   s          r   Údisplayztest_decomp_8.<locals>.displayÄ   sY   € äˆhŒÜˆa��GÔØò 	!ˆBÜ�C˜�v˜Q�-Õ ð	!äˆe�QŒÜˆe�QŒÜ�˜˜Q™�xÐ Õ!r"   FrU   rW   c              3   ó:   K  — | ]  }||j                   z  –— Œ y ­wr   rk   rl   s     r   ri   z test_decomp_8.<locals>.<genexpr>Ø   s   è ø€ Ò* "�R˜Ÿ™•XÑ*ùrm   )r   r
   r   Údiscriminantr   rZ   r   r   )ÚcasesrŠ   ÚinspectÚgr)   r\   r5   r6   ÚdTÚ	f_squaredÚFr7   rX   r8   rˆ   r‰   s                   r   Útest_decomp_8r“   ¯   sÐ  € ô 	
ˆQ‰�”Q˜!‘V‘Ñ˜a¤!™eÑ# aÑ'Ü	ˆQ‰�”Q˜!‘V‘Ñ˜a¤!™eÑ# aÑ'Ü	ˆQ‰�”Q˜!‘V‘ÑœaÑ !Ñ#Ü	ˆQ‰�”Q˜!‘V‘Ñ˜a¤!™eÑ# aÑ'Ü	ˆQ‰�”Q˜!‘V‘Ñ˜aÑÜ	ˆQ‰�”Q˜!‘V‘Ñ˜a¤!™eÑ# aÑ'Ü	ˆQ‰�”Q˜!‘V‘Ñ˜aÑÜ	ˆQ‰�”Q˜!‘V‘Ñ˜a¤!™eÑ# aÑ'Ü	ˆQ‰�”Q˜!‘V‘ÑœaÑ !Ñ#Ü	ˆQ‰�”Q˜!‘V‘Ñ˜a¤!™eÑ# aÑ'Ü	ˆQ‰�”Q˜!‘V‘Ñ˜a¤!™eÑ# aÑ'Ü	ˆQ‰�”Q˜!‘V‘Ñ˜a¤!™eÑ# aÑ'Ü	ˆQ‰�”Q˜!‘V‘Ñ˜a¤!™eÑ# aÑ'Ü	ˆQ‰�”Q˜!‘V‘Ñ˜a¤!™eÑ# aÑ'Ü	ˆQ‰�”Q˜!‘V‘Ñ˜a¤!™eÑ# aÑ'Ü	ˆQ‰�”a˜1‘f‘Ñ˜q¤1™uÑ$ rÑ)ð!€Eò$"ð €GØò ˆÜ�‹GˆØˆÜ˜1 sÔ+‰ˆˆBØ�^‰^ÓˆØ˜"‘Hˆ	Ü�iÓ ˆØò 	ˆAØ—g‘g˜a“jˆGÜ˜Q  b¨R¸ÔAˆAÜÑ*¨Ô*Ó*ˆAØ�B‘ˆAÙÙ˜˜1˜g q¨!¨QÔ/Ø˜“6ˆM�6ñ	ñr"   c                  ó¾   — t        t        d«      «      } t        d| «      d   }|j                  dk(  sJ ‚|j	                  «       d|j
                  z  k(  sJ ‚|dk7  sJ ‚y )Nr-   r   r   rK   )r
   r   r   rM   rp   r5   ©r)   rE   s     r   Útest_PrimeIdeal_eqr–   ß   s\   € ô 	Œ_˜QÓÓ €AÜ	�a˜Ó	˜AÑ	€BØ�4‰4�1Š9Ðˆ9Ø�?‰?Ó  B§E¡E¡	Ò)Ð)Ð)Ø�Š7€N‰7r"   c                  ó”   — t        t        d«      «      } t        d| «      d   }|d|j                  z  z   |j	                  «       k(  sJ ‚y )Nr-   r   )r
   r   r   r5   rp   r•   s     r   Útest_PrimeIdeal_addr˜   é   sE   € ÜŒ_˜QÓÓ €AÜ	�a˜Ó	˜AÑ	€Bð ��B—E‘E‘	‰>˜RŸ_™_Ó.Ò.Ð.Ñ.r"   c                  óÈ  — t        j                  t        t        dz  dz   «      «      } | j	                  d«      d   }t        |«      dk(  sJ ‚| j	                  d«      d   }t        |«      dk(  sJ ‚t        j                  t        t        dz  dz   «      d¬«      } | j	                  d«      d   }t        |«      d	k(  sJ ‚| j	                  d«      d   }t        |«      dk(  sJ ‚y )
Nr   r-   r   z(2, 3*_x/2 + 1/2)r   z(3)r2   )Úaliasz(2, 3*alpha/2 + 1/2))r   r}   r
   r   r~   Ústr)ÚkÚfrps     r   Útest_strrž   ñ   sÕ   € ä
×Ñœt¤A q¡D¨1¡H›~Ó.€AØ
�.‰.˜Ó
˜AÑ
€CÜˆs‹8Ð*Ò*Ð*Ð*à
�.‰.˜Ó
˜AÑ
€CÜˆs‹8�uÒÐÐô 	×Ñœt¤A¨¡F¨Q¡JÓ/°wÔ?€AØ
�.‰.˜Ó
˜AÑ
€CÜˆs‹8Ð-Ò-Ð-Ð-à
�.‰.˜Ó
˜AÑ
€CÜˆs‹8�uÒÐÑr"   c                  ó  — t        t        dz  dz   «      } t        | «      \  }}t        d| ||¬«      }t	        |d   «      dk(  sJ ‚|d   j	                  t
        ¬«      dk(  sJ ‚|d   j	                  t
        d¬	«      d
k(  sJ ‚y )Nr   r-   r@   r   z[ (2, (3*x + 1)/2) e=1, f=1 ])Ú	field_genz![ (2, (3*theta + 1)/2) e=1, f=1 ]T)r    Ú	just_gensz(2, (3*theta + 1)/2))r
   r   r   r   Úreprr   )r)   r5   r6   r8   s       r   Ú	test_reprr£     s…   € ÜŒQ�‰T�A‰X‹€AÜ�q‹\�F€BˆÜ�Q˜˜b RÔ(€AÜ��!‘‹:Ð8Ò8Ð8Ð8ØˆQ‰4�9‰9œuˆ9Ó%Ð)LÒLÐLÐLØˆQ‰4�9‰9œu°ˆ9Ó5Ð9OÒOÐOÑOr"   c                  ó¸  — t        j                  t        t        dz  t        dz  z   dt        z  z
  dz   «      «      } | j	                  «       }| j                  d«      }|d   }|j                  t        g d¢«      d¬«      }|j                  t        g d¢«      d¬«      }|j                  |«      }||k(  sJ ‚ | t        dd«      t        d	d«      t        d
d«      g«      } | t        dd«      t        dd«      t        dd«      g«      }|j                  |«      }||k(  sJ ‚| j                  |«      }| j                  |«      }|j                  |«      }||k(  sJ ‚y )Nr   r   rc   )é   é   r1   rK   )Údenom)r1   r   r   r1   r¦   r¥   r   )r   r}   r
   r   r   r~   Úparentr   Úreduce_elementÚ
reduce_ANPÚ
to_alg_numÚreduce_alg_num)rœ   ÚZkr8   r�   ÚaÚa_bar_expectedÚa_bars          r   Útest_PrimeIdeal_reducer±     sA  € Ü
×Ñœt¤A¨¡F¬Q°!©V¡O°a¼!±eÑ$;¸aÑ$?Ó@ÓA€AØ	
�‰Ó	€BØ	�‰�qÓ€AØ
ˆA‰$€Cð 	�	‰	”&šÓ&¨aˆ	Ó0€AØ—Y‘Yœv¢jÓ1¸�YÓ;€NØ×Ñ˜qÓ!€EØ�NÒ"Ð"Ð"ñ 	
Œ2ˆb�!‹9”b˜˜Q“i¤ B¨£Ð
+Ó,€AÙœ˜1˜a›¤" Q¨£(¬B¨r°1«IÐ6Ó7€NØ�N‰N˜1Ó€EØ�NÒ"Ð"Ð"ð 	
�‰�Q‹€AØ—\‘\ .Ó1€NØ×Ñ˜qÓ!€EØ�NÒ"Ð"Ñ"r"   c                  óÞ   — t        j                  t        t        dz  t        dz  z   dt        z  z
  dz   «      «      } | j	                  d«      }|d   j
                  j                  d«      sJ ‚y )Nr   r   rc   r   )r   r}   r
   r   r~   r2   Úequiv)rœ   r8   s     r   Útest_issue_23402r´   %  s[   € Ü
×Ñœt¤A¨¡F¬Q°!©V¡O°a¼!±eÑ$;¸aÑ$?Ó@ÓA€AØ	�‰�qÓ€AØˆQ‰4�:‰:×Ñ˜AÔÐÑr"   N)/Úmathr   Úsympyr   r   Ú	sympy.abcr   r   Úsympy.ntheoryr   Úsympy.ntheory.residue_ntheoryr	   Úsympy.polysr
   r   Úsympy.polys.matricesr   Úsympy.polys.numberfields.basisr   Ú#sympy.polys.numberfields.exceptionsr   Ú sympy.polys.numberfields.modulesr   r   Úsympy.polys.numberfields.primesr   r   r   Úsympy.testing.pytestr   r+   r>   rG   rN   rR   r]   r`   rr   ry   r�   r“   r–   r˜   rž   r£   r±   r´   rJ   r"   r   ú<module>rÁ      sŠ   ðÝ ç ß Ý #Ý 1ß -Ý -Ý 4Ý >ß ?÷ñ õ (òRòò,
#òò"!ò
ò
ò1ò2
.ò	.ò-ò`ò/òò$Pò#ó2r"   