§
    OŠtj3&  ã                   ó  — 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.dS )é    )Ú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                  ó0  ‡‡‡— t          t          dt          ¦  «        ¦  «        } t          | ¦  «        }|                     dt          j        dt          ¦  «        z  ¦  «        Š‰                     dt          j        dt          ¦  «        z  ¦  «        Š|                     t          j        dt          ¦  «        d d …d d…f         ¦  «        Št          t          ˆfd„¦  «         t          t          ˆfd„¦  «         t          t          ˆfd„¦  «         d S )	Né   é   é   é   éÿÿÿÿc                  ó"   •— t          ‰ ¦  «        S ©N©r   )ÚBs   €úh/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/polys/numberfields/tests/test_primes.pyú<lambda>z@test_check_formal_conditions_for_maximal_order.<locals>.<lambda>   ó   ø€ Õ#MÈaÑ#PÔ#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°Q½Ñ$;Ô$;Ñ ;Ñ<Ô<€AØ	×Ò ¥LÔ$4°Q½Ñ$;Ô$;Ñ ;Ñ<Ô<€AØ	×Ò¥Ô 0°µBÑ 7Ô 7¸¸¸¸3¸B¸3¸Ô ?Ñ@Ô@€Aå
�>ÐPÐPÐPÐPÑQÔQÐQå
�>ÐPÐPÐPÐPÑQÔQÐQå
�>ÐPÐPÐPÐPÑQÔQÐQÐQÐQr"   c                  ó@  — d} t          t          | ¦  «        ¦  «        }t          |¦  «        \  }}dD ]j}t          ||¦  «        }|D ]U}||z  |j        |z  z   }|                     ¦   «         }t          |||¦  «        }	|	|j        k    r||z  |	|z  z   }
|
|k    sJ ‚ŒVŒkd S )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 ‘{Ñ"ˆAØ×,Ò,Ñ.Ô.ˆDå˜T 2 qÑ)Ô)ˆAØ�B”HŠ}ˆ}Ø�r‘T˜A˜b™D‘[�Ø˜Q’w�w�w�wøð	ðð r"   c                  óL  — d} t          t          | ¦  «        ¦  «        }t          |¦  «        \  }}t          | |||¬¦  «        }t	          |¦  «        dk    sJ ‚|d         }|                     | |z  ¦  «        }||j        k    sJ ‚|                     d|z  ¦  «        dk    sJ ‚d S )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Œ6�QŠ;ˆ;ˆ;ˆ;Ø	
ˆ1Œ€BØ
�Š�Q�r‘TÑÔ€AØ�”Š9ˆ9ˆ9ˆ9à�<Š<˜˜"™ÑÔ Ò"Ð"Ð"Ð"Ð"Ð"r"   c                  óT  — 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 ‚d S )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Œ6�QŠ;ˆ;ˆ;ˆ;Ø	
ˆ1Œ€BØŒ4�1Š9ˆ9ˆ9ˆ9ØŒ4�1Š9ˆ9ˆ9ˆ9àˆq‰5�B”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    sJ ‚ŒŒ_d S )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Œv˜ŠˆˆˆØð 	!ð 	!ˆBØ”4˜1’9�9�9�9Ø”4˜5’=�=�=�=�=ð	!ð!ð !r"   c            
      ó6  — t          t          dz  dz
  ¦  «        } i }t          | |¬¦  «        \  }}dD ]e}t          || |||                     |¦  «        ¬¦  «        }t          |¦  «        dk    sJ ‚|d         j        dk    sJ ‚|d         dz  ||z  k    sJ ‚Œfd S )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´ZÐ@Ñ@Ô@ˆÝ�1‰vŒv˜Š{ˆ{ˆ{ˆ{Ø�ŒtŒv˜Š{ˆ{ˆ{ˆ{Ø�Œt�Q‰w˜!˜B™$Šˆˆˆˆð	ð r"   c            
      ó6  — t          t          dz  dz
  ¦  «        } i }t          | |¬¦  «        \  }}dD ]e}t          || |||                     |¦  «        ¬¦  «        }t          |¦  «        dk    sJ ‚|d         j        dk    sJ ‚|d         dz  ||z  k    sJ ‚Œfd S )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´ZÐ@Ñ@Ô@ˆÝ�1‰vŒv˜Š{ˆ{ˆ{ˆ{Ø�ŒtŒv˜Š{ˆ{ˆ{ˆ{Ø�Œt�Q‰w˜!˜B™$Šˆˆˆˆð	ð r"   c            
      óp  ‡— dD �]0} t          t          dz  | z
  ¦  «        }i }t          ||¬¦  «        \  }}d}t          |||||                     |¦  «        ¬¦  «        Š| dz  dk    rbt          ‰¦  «        dk    sJ ‚t          ˆfd„t          d¦  «        D ¦   «         ¦  «        sJ ‚t          d„ ‰D ¦   «         ¦  «        ||z  k    s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
                              ¦   «         ||z  k    sJ ‚�Œ2d S )N)iùÿÿÿéýÿÿÿr   rU   rW   é   rA   c              3   ó\   •K  — | ]&}‰|         j         d k    o‰|         j        d k    V — Œ'dS ©rA   N©rD   rM   )Ú.0Úir8   s     €r   ú	<genexpr>z test_decomp_5.<locals>.<genexpr>Œ   s<   øè è € ÐEÐE°q�q˜”t”v ’{Ð2 q¨¤t¤v°¢{ÐEÐEÐEÐEÐEÐEr"   c              3   ó*   K  — | ]}||j         z  V — Œd S r   ©rD   ©rg   r9   s     r   ri   z test_decomp_5.<locals>.<genexpr>�   s(   è è € Ð-Ð- R˜˜BœD™Ð-Ð-Ð-Ð-Ð-Ð-r"   r   r   )r
   r   r   r   rZ   rB   ÚallÚranger   rD   rM   Úas_submodule)Údr)   r\   r5   r6   r7   r8   s         @r   Útest_decomp_5rq   }   se  ø€ ð ð 1ñ 1ˆÝ•�a‘˜!‘ÑÔˆØˆÝ˜1 sÐ+Ñ+Ô+‰ˆˆBØˆÝ˜˜A "¨°S·W²W¸Q±Z´ZÐ@Ñ@Ô@ˆØˆq‰5�AŠ:ˆ:Ý�q‘6”6˜Q’;�;�;�;ÝÐEÐEÐEÐE½EÀ!¹H¼HÐEÑEÔEÑEÔEÐEÐEÐEÝÐ-Ð-¨1Ð-Ñ-Ô-Ñ-Ô-°°R±Ò7Ð7Ð7Ð7Ð7à�q‘5˜A’:�:�:�:Ý�q‘6”6˜Q’;�;�;�;Ø�Q”4”6˜Q’;�;�;�;Ø�Q”4”6˜Q’;�;�;�;Ø�Q”4×$Ò$Ñ&Ô&¨!¨b©&Ò0Ð0Ð0Ð0Ñ0ð1ð 1r"   c            	      óˆ  — t          t          dz  t          dz  z   dt          z  z
  dz   ¦  «        } i }t          | |¬¦  «        \  }}d}t          || |||                     |¦  «        ¬¦  «        }t          |¦  «        dk    sJ ‚t          d„ |D ¦   «         ¦  «        sJ ‚t          d„ |D ¦   «         ¦  «        ||z  k    sJ ‚d S )Nr   r   rc   rU   rW   c              3   óJ   K  — | ]}|j         |j        cxk    od k    nc V — ŒdS re   rf   rl   s     r   ri   z test_decomp_6.<locals>.<genexpr>Ÿ   óB   è è € Ð-Ð- RˆrŒt�r”tÐ Ð Ò Ð ˜qÒ Ð Ð Ð Ð-Ð-Ð-Ð-Ð-Ð-r"   c              3   ó*   K  — | ]}||j         z  V — Œd S r   rk   rl   s     r   ri   z test_decomp_6.<locals>.<genexpr>    ó(   è è € Ð%Ð%˜R��B”D‘Ð%Ð%Ð%Ð%Ð%Ð%r"   )r
   r   r   r   rZ   rB   rm   r   r[   s         r   Útest_decomp_6rw   –   sÕ   € õ 	�Q�!‰V•a˜1‘f‰_˜q¥1™uÑ$ qÑ(Ñ)Ô)€AØ
€CÝ�q 3Ð'Ñ'Ô'�F€BˆØ	€AÝ�Q˜˜b R°·²¸±´Ð<Ñ<Ô<€AÝˆq‰6Œ6�QŠ;ˆ;ˆ;ˆ;ÝÐ-Ð-¨1Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-ÝÐ%Ð% 1Ð%Ñ%Ô%Ñ%Ô%¨¨2©Ò-Ð-Ð-Ð-Ð-Ð-r"   c                  óˆ  — t          t          dz  t          dz  z   dt          z  z
  dz   ¦  «        } t          j        | ¦  «        }d}|                     |¦  «        }|                     ¦   «         }t          |¦  «        dk    sJ ‚t          d„ |D ¦   «         ¦  «        sJ ‚t          d„ |D ¦   «         ¦  «        ||z  k    sJ ‚d S )Nr   r   rc   c              3   óJ   K  — | ]}|j         |j        cxk    od k    nc V — ŒdS re   rf   rl   s     r   ri   z test_decomp_7.<locals>.<genexpr>«   rt   r"   c              3   ó*   K  — | ]}||j         z  V — Œd S r   rk   rl   s     r   ri   z test_decomp_7.<locals>.<genexpr>¬   rv   r"   )	r
   r   r   Úalg_field_from_polyÚprimes_aboveÚmaximal_orderrB   rm   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Œ6�QŠ;ˆ;ˆ;ˆ;ÝÐ-Ð-¨1Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-ÝÐ%Ð% 1Ð%Ñ%Ô%Ñ%Ô%¨¨2©Ò-Ð-Ð-Ð-Ð-Ð-r"   c                  óì  — 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          ||¬¦  «        \  }}|                     ¦   «         }||z  }	t	          |	¦  «        }
|
D ]c}|                     |¦  «        }t          |||||¬¦  «        }t          d„ |D ¦   «         ¦  «        }||z  }|r |||||||¦  «         ||k    sJ ‚ŒdŒ¶d S )Nr   r   r   r   rK   rA   r-   rc   é	   é   r0   c                 óâ   — t          d¦  «         t          | ||¦  «         |D ]}t          d|›d�¦  «         Œt          d|¦  «         t          d|¦  «         t          d||k    › �¦  «         dS )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Ä   s‚   € åˆh‰ŒˆÝˆa��GÑÔÐØð 	!ð 	!ˆBÝ�-˜�-�-�-Ñ Ô Ð Ð Ýˆe�Q‰ŒˆÝˆe�Q‰ŒˆÝÐ ˜˜QšÐ Ð Ñ!Ô!Ð!Ð!Ð!r"   FrU   rW   c              3   ó*   K  — | ]}||j         z  V — Œd S r   rk   rl   s     r   ri   z test_decomp_8.<locals>.<genexpr>Ø   s(   è è € Ð*Ð* "�R˜œ‘XÐ*Ð*Ð*Ð*Ð*Ð*r"   )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ŒGˆØˆÝ˜1 sÐ+Ñ+Ô+‰ˆˆBØ�^Š^ÑÔˆØ˜"‘Hˆ	Ý�iÑ Ô ˆØð 	ð 	ˆAØ—g’g˜a‘j”jˆGÝ˜Q  b¨R¸ÐAÑAÔAˆAÝÐ*Ð*¨Ð*Ñ*Ô*Ñ*Ô*ˆAØ�B‘ˆAØð 0Ø�˜˜1˜g q¨!¨QÑ/Ô/Ð/Ø˜’6�6�6�6�6ð	ðð r"   c                  óØ   — t          t          d¦  «        ¦  «        } t          d| ¦  «        d         }|j        dk    sJ ‚|                     ¦   «         d|j        z  k    sJ ‚|dk    sJ ‚d S )Nr-   r   r   rK   )r
   r   r   rM   ro   r5   ©r)   rE   s     r   Útest_PrimeIdeal_eqr”   ß   sn   € õ 	�_˜QÑÔÑ Ô €AÝ	�a˜Ñ	Ô	˜AÔ	€BØŒ4�1Š9ˆ9ˆ9ˆ9Ø�?Š?ÑÔ  B¤E¡	Ò)Ð)Ð)Ð)Ø�Š7ˆ7ˆ7ˆ7ˆ7ˆ7r"   c                  ó´   — t          t          d¦  «        ¦  «        } t          d| ¦  «        d         }|d|j        z  z   |                     ¦   «         k    sJ ‚d S )Nr-   r   )r
   r   r   r5   ro   r“   s     r   Útest_PrimeIdeal_addr–   é   sX   € Ý�_˜QÑÔÑ Ô €AÝ	�a˜Ñ	Ô	˜AÔ	€Bð ��B”E‘	‰>˜RŸ_š_Ñ.Ô.Ò.Ð.Ð.Ð.Ð.Ð.r"   c                  ó:  — t          j        t          t          dz  dz   ¦  «        ¦  «        } |                      d¦  «        d         }t          |¦  «        dk    sJ ‚|                      d¦  «        d         }t          |¦  «        dk    sJ ‚t          j        t          t          dz  dz   ¦  «        d¬¦  «        } |                      d¦  «        d         }t          |¦  «        d	k    sJ ‚|                      d¦  «        d         }t          |¦  «        dk    sJ ‚d S )
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Œ8Ð*Ò*Ð*Ð*Ð*à
�.Š.˜Ñ
Ô
˜AÔ
€CÝˆs‰8Œ8�uÒÐÐÐõ 	Ô�t¥A¨¡F¨Q¡JÑ/Ô/°wÐ?Ñ?Ô?€AØ
�.Š.˜Ñ
Ô
˜AÔ
€CÝˆs‰8Œ8Ð-Ò-Ð-Ð-Ð-à
�.Š.˜Ñ
Ô
˜AÔ
€CÝˆs‰8Œ8�uÒÐÐÐÐÐr"   c                  óX  — t          t          dz  dz   ¦  «        } t          | ¦  «        \  }}t          d| ||¬¦  «        }t	          |d         ¦  «        dk    sJ ‚|d                              t
          ¬¦  «        dk    sJ ‚|d                              t
          d¬	¦  «        d
k    sJ ‚d S )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Ð8ØˆQŒ4�9Š9�uˆ9Ñ%Ô%Ð)LÒLÐLÐLÐLØˆQŒ4�9Š9�u°ˆ9Ñ5Ô5Ð9OÒOÐOÐOÐOÐOÐOr"   c                  óf  — t          j        t          t          dz  t          dz  z   dt          z  z
  dz   ¦  «        ¦  «        } |                      ¦   «         }|                      d¦  «        }|d         }|                     t          g d¢¦  «        d¬¦  «        }|                     t          g d¢¦  «        d¬¦  «        }|                     |¦  «        }||k    sJ ‚ | t          dd¦  «        t          d	d¦  «        t          d
d¦  «        g¦  «        } | t          dd¦  «        t          dd¦  «        t          dd¦  «        g¦  «        }| 	                    |¦  «        }||k    sJ ‚|  
                    |¦  «        }|  
                    |¦  «        }|                     |¦  «        }||k    sJ ‚d S )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¯     s‘  € Ý
Ô�t¥A¨¡F­Q°!©V¡O°a½!±eÑ$;¸aÑ$?Ñ@Ô@ÑAÔA€AØ	
�ŠÑ	Ô	€BØ	�Š�qÑÔ€AØ
ˆAŒ$€Cð 	�	Š	•&˜˜˜Ñ&Ô&¨aˆ	Ñ0Ô0€AØ—Y’Y�v j j jÑ1Ô1¸�YÑ;Ô;€NØ×Ò˜qÑ!Ô!€EØ�NÒ"Ð"Ð"Ð"ð 	
ˆ�2ˆb�!‰9Œ9•b˜˜Q‘i”i¥ B¨¡¤Ð
+Ñ,Ô,€AØ�Q�˜1˜a™œ¥" Q¨¡(¤(­B¨r°1©I¬IÐ6Ñ7Ô7€NØ�NŠN˜1ÑÔ€EØ�NÒ"Ð"Ð"Ð"ð 	
�Š�Q‰Œ€AØ—\’\ .Ñ1Ô1€NØ×Ò˜qÑ!Ô!€EØ�NÒ"Ð"Ð"Ð"Ð"Ð"r"   c                  óø   — t          j        t          t          dz  t          dz  z   dt          z  z
  dz   ¦  «        ¦  «        } |                      d¦  «        }|d         j                             d¦  «        sJ ‚d S )Nr   r   rc   r   )r   r{   r
   r   r|   r2   Úequiv)rš   r8   s     r   Útest_issue_23402r²   %  sk   € Ý
Ô�t¥A¨¡F­Q°!©V¡O°a½!±eÑ$;¸aÑ$?Ñ@Ô@Ñ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`   rq   rw   r   r‘   r”   r–   rœ   r¡   r¯   r²   rJ   r"   r   ú<module>r¿      s'  ðØ Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø -Ð -Ð -Ð -Ð -Ð -Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø >Ð >Ð >Ð >Ð >Ð >Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?ðð ð ð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'ðRð Rð Rðð ð ð,
#ð 
#ð 
#ðð ð ð"!ð !ð !ð
ð 
ð 
ð
ð 
ð 
ð1ð 1ð 1ð2
.ð 
.ð 
.ð	.ð 	.ð 	.ð-ð -ð -ð`ð ð ð/ð /ð /ðð ð ð$Pð Pð Pð#ð #ð #ð2ð ð ð ð r"   