a
    kº”h/˜ ã                   @   sP  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
 d dlmZmZmZmZmZ d dlmZmZmZ d dlmZmZ d dlmZmZmZmZ d dlmZ d dlm Z m!Z! d dl"m#Z# d d	l$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d d
l+m,Z, d dl-m.Z. d dl/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z;m<Z< d dl=m>Z> d dl?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZG d dlHmIZImJZJmKZKmLZLmMZM d dlNmOZOmPZP d dlQmRZRmSZSmTZTmUZUmVZV d dlWZWdd„ ZXdd„ ZYdd„ ZZdd„ Z[dd„ Z\d d!„ Z]d"d#„ Z^d$d%„ Z_d&d'„ Z`d(d)„ Zad*d+„ Zbd,d-„ Zcd.d/„ Zdd0d1„ Zed2d3„ Zfd4d5„ Zgd6d7„ Zhd8d9„ Zid:d;„ Zjd<d=„ Zkd>d?„ ZleRd@dA„ ƒZmeRdBdC„ ƒZndDdE„ ZoeVdFdG„ ƒZpdHdI„ ZqeRdJdK„ ƒZrdLdM„ ZsdNdO„ ZteVdPdQ„ ƒZudRdS„ ZveVdTdU„ ƒZwdVdW„ ZxdXdY„ ZydZd[„ Zzd\d]„ Z{d^d_„ Z|eRd`da„ ƒZ}dbdc„ Z~ddde„ ZeVdfdg„ ƒZ€dhdi„ Zdjdk„ Z‚dldm„ Zƒdndo„ Z„eVdpdq„ ƒZ…drds„ Z†eVdtdu„ ƒZ‡dvdw„ Zˆdxdy„ Z‰dzd{„ ZŠd|d}„ Z‹d~d„ ZŒd€d„ Zd‚dƒ„ ZŽd„d…„ Zd†d‡„ Zdˆd‰„ Z‘dŠd‹„ Z’eSdŒd„ ƒZ“dŽd„ Z”dd‘„ Z•d’d“„ Z–d”d•„ Z—d–d—„ Z˜d˜d™„ Z™dšd›„ ZšeRdœd„ ƒZ›dždŸ„ Zœd d¡„ Zd¢d£„ Zžd¤d¥„ ZŸd¦d§„ Z d¨d©„ Z¡dªd«„ Z¢d¬d­„ Z£d®d¯„ Z¤dS )°é    )
ÚtÚwÚxÚyÚzÚnÚkÚmÚpÚi)ÚaskÚAssumptionsContextÚQÚregister_handlerÚremove_handler)ÚassumingÚglobal_assumptionsÚ	Predicate)ÚCNFÚLiteral)Úsingle_fact_lookupÚget_known_factsÚgenerate_known_facts_dictÚget_known_facts_keys)Ú
AskHandler)Úget_all_known_factsÚget_known_facts_dict)ÚAdd)ÚIÚIntegerÚRationalÚooÚzooÚpi)ÚS)ÚPow)ÚStrÚsymbolsÚSymbol)Ú	factorial)ÚAbsÚimÚreÚsign)ÚexpÚlog)Úsqrt)ÚacosÚacotÚasinÚatanÚcosÚcotÚsinÚtan)Ú
EquivalentÚImpliesÚXorÚAndÚto_cnf)ÚMatrixÚSparseMatrix)ÚXFAILÚslowÚraisesÚwarns_deprecated_sympyÚ_both_exp_powNc                  C   sr  d} t t | ¡ƒdu sJ ‚t t | ¡ƒdu s0J ‚t t | ¡ƒdu sFJ ‚t t | ¡ƒdu s\J ‚t t | ¡ƒdu srJ ‚t t | ¡ƒdu sˆJ ‚t t | ¡ƒdu sžJ ‚t t 	| ¡ƒdu s´J ‚t t 
| ¡ƒdu sÊJ ‚t t | ¡ƒdu sàJ ‚t t | ¡ƒdu söJ ‚t t | ¡ƒdu sJ ‚t t | ¡ƒdu s&J ‚t t | ¡ƒdu s>J ‚t t | ¡ƒdu sVJ ‚t t | ¡ƒdu snJ ‚d S )Né   TF©r   r   ÚcommutativeÚintegerÚrationalÚrealÚcomplexÚ
irrationalÚ	imaginaryÚpositiveÚnegativeÚevenÚoddÚfiniteÚprimeÚ	compositeÚ	hermitianÚantihermitian©r   © rX   úP/var/www/auris/lib/python3.9/site-packages/sympy/assumptions/tests/test_query.pyÚ
test_int_1   s"    rZ   c                  C   sr  d} t t | ¡ƒdu sJ ‚t t | ¡ƒdu s0J ‚t t | ¡ƒdu sFJ ‚t t | ¡ƒdu s\J ‚t t | ¡ƒdu srJ ‚t t | ¡ƒdu sˆJ ‚t t | ¡ƒdu sžJ ‚t t 	| ¡ƒdu s´J ‚t t 
| ¡ƒdu sÊJ ‚t t | ¡ƒdu sàJ ‚t t | ¡ƒdu söJ ‚t t | ¡ƒdu sJ ‚t t | ¡ƒdu s&J ‚t t | ¡ƒdu s>J ‚t t | ¡ƒdu sVJ ‚t t | ¡ƒdu snJ ‚d S )Né   TFrF   rW   rX   rX   rY   Útest_int_111   s"    r\   c                  C   sr  d} t t | ¡ƒdu sJ ‚t t | ¡ƒdu s0J ‚t t | ¡ƒdu sFJ ‚t t | ¡ƒdu s\J ‚t t | ¡ƒdu srJ ‚t t | ¡ƒdu sˆJ ‚t t | ¡ƒdu sžJ ‚t t 	| ¡ƒdu s´J ‚t t 
| ¡ƒdu sÊJ ‚t t | ¡ƒdu sàJ ‚t t | ¡ƒdu söJ ‚t t | ¡ƒdu sJ ‚t t | ¡ƒdu s&J ‚t t | ¡ƒdu s>J ‚t t | ¡ƒdu sVJ ‚t t | ¡ƒdu snJ ‚d S )Né   TFrF   rW   rX   rX   rY   Útest_int_12E   s"    r^   c                  C   s  d} t t | ¡ƒdu sJ ‚t t | ¡ƒd u s0J ‚t t | ¡ƒd u sFJ ‚t t | ¡ƒdu s\J ‚t t | ¡ƒdu srJ ‚t t | ¡ƒd u sˆJ ‚t t | ¡ƒdu sžJ ‚t t 	| ¡ƒdu s´J ‚t t 
| ¡ƒdu sÊJ ‚t t | ¡ƒd u sàJ ‚t t | ¡ƒd u söJ ‚t t | ¡ƒdu sJ ‚t t | ¡ƒd u s&J ‚t t | ¡ƒd u s>J ‚t t | ¡ƒdu sVJ ‚t t | ¡ƒdu snJ ‚d} t t | ¡ƒdu sŠJ ‚t t | ¡ƒdu s¢J ‚t t | ¡ƒd u sºJ ‚t t | ¡ƒdu sÒJ ‚t t | ¡ƒdu sêJ ‚t t | ¡ƒd u sJ ‚t t | ¡ƒdu sJ ‚t t 	| ¡ƒdu s2J ‚t t 
| ¡ƒdu sJJ ‚t t | ¡ƒdu sbJ ‚t t | ¡ƒdu szJ ‚t t | ¡ƒdu s’J ‚t t | ¡ƒdu sªJ ‚t t | ¡ƒdu sÂJ ‚t t | ¡ƒdu sÚJ ‚t t | ¡ƒdu sòJ ‚t t tj¡ƒd u sJ ‚d S )Nç      ð?TFgaÃÓ+eÙ@)r   r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   Úmathr#   rW   rX   rX   rY   Útest_float_1Y   sF    ra   c                  C   sŽ  t dƒ} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s4J ‚tt | ¡ƒdu sJJ ‚tt | ¡ƒdu s`J ‚tt | ¡ƒdu svJ ‚tt | ¡ƒdu sŒJ ‚tt 	| ¡ƒdu s¢J ‚tt 
| ¡ƒdu s¸J ‚tt | ¡ƒdu sÎJ ‚tt | ¡ƒdu säJ ‚tt | ¡ƒdu súJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s*J ‚tt | ¡ƒdu sBJ ‚tt | ¡ƒdu sZJ ‚tt | ¡ƒdu srJ ‚tt | ¡ƒdu sŠJ ‚d S )Nr   FT)r   r   r   ÚnonzeroÚzerorG   rH   rI   rJ   rK   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_zero_0‚   s$    rd   c                  C   s¦  t dƒ} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s4J ‚tt | ¡ƒdu sJJ ‚tt | ¡ƒdu s`J ‚tt | ¡ƒdu svJ ‚tt | ¡ƒdu sŒJ ‚tt 	| ¡ƒdu s¢J ‚tt 
| ¡ƒdu s¸J ‚tt | ¡ƒdu sÎJ ‚tt | ¡ƒdu säJ ‚tt | ¡ƒdu súJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s*J ‚tt | ¡ƒdu sBJ ‚tt | ¡ƒdu sZJ ‚tt | ¡ƒdu srJ ‚tt | ¡ƒdu sŠJ ‚tt | ¡ƒdu s¢J ‚d S )NéÿÿÿÿTF)r   r   r   rb   rc   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_negativeone—   s&    rf   c                   C   sþ  t t t¡ƒdu sJ ‚t t t¡ƒdu s,J ‚t t t¡ƒdu sBJ ‚t t t¡ƒdu sXJ ‚t t t¡ƒdu snJ ‚t t t¡ƒdu s„J ‚t t 	t¡ƒdu sšJ ‚t t 
t¡ƒdu s°J ‚t t t¡ƒdu sÆJ ‚t t t¡ƒdu sÜJ ‚t t t¡ƒdu sòJ ‚t t t¡ƒdu s
J ‚t t t¡ƒdu s"J ‚t t t¡ƒdu s:J ‚t t t¡ƒdu sRJ ‚t t t¡ƒdu sjJ ‚t t t¡ƒdu s‚J ‚t t t¡ƒdu sšJ ‚t t t¡ƒdu s²J ‚t t t¡ƒdu sÊJ ‚t t t¡ƒdu sâJ ‚t t t¡ƒdu súJ ‚d S ©NTF)r   r   rG   r!   rH   rI   Ú	algebraicrJ   Úextended_realrK   rL   rM   rN   Úextended_positiverO   rP   rQ   rR   ÚinfiniterS   rT   rU   rV   Úpositive_infiniteÚnegative_infiniterX   rX   rX   rY   Útest_infinity­   s,    rn   c                  C   s  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s2J ‚tt | ¡ƒdu sHJ ‚tt | ¡ƒdu s^J ‚tt | ¡ƒdu stJ ‚tt 	| ¡ƒdu sŠJ ‚tt 
| ¡ƒdu s J ‚tt | ¡ƒdu s¶J ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu søJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s(J ‚tt | ¡ƒdu s@J ‚tt | ¡ƒdu sXJ ‚tt t¡ƒdu spJ ‚tt | ¡ƒdu sˆJ ‚tt | ¡ƒdu s J ‚tt | ¡ƒdu s¸J ‚tt | ¡ƒdu sÐJ ‚tt t ¡ƒdu sêJ ‚tt t ¡ƒdu sJ ‚d S rg   )r$   ÚNegativeInfinityr   r   rG   rH   rI   rh   rJ   ri   rK   rL   rM   rN   rO   Úextended_negativerP   rQ   rR   rk   r!   rS   rT   rU   rV   rl   rm   )ÚmmrX   rX   rY   Útest_neg_infinityÆ   s.    rr   c                   C   s  t t t¡ƒdu sJ ‚t t t¡ƒdu s,J ‚t t t¡ƒdu sBJ ‚t t t¡ƒdu sXJ ‚t t t¡ƒdu snJ ‚t t t¡ƒdu s„J ‚t t 	t¡ƒdu sšJ ‚t t 
t¡ƒdu s°J ‚t t t¡ƒdu sÆJ ‚t t t¡ƒdu sÜJ ‚t t t¡ƒdu sòJ ‚t t t¡ƒdu s
J ‚t t t¡ƒdu s"J ‚t t t¡ƒdu s:J ‚t t t¡ƒdu sRJ ‚t t t¡ƒdu sjJ ‚t t t¡ƒdu s‚J ‚t t t¡ƒdu sšJ ‚t t t¡ƒdu s²J ‚t t t¡ƒdu sÊJ ‚t t t¡ƒdu sâJ ‚t t t¡ƒdu súJ ‚t t t¡ƒdu sJ ‚d S rg   )r   r   rG   r"   rH   rI   rh   rJ   ri   rK   rL   rM   rN   rO   rc   rb   rP   rQ   rR   rk   rS   rT   rU   rV   rl   rm   rX   rX   rX   rY   Útest_complex_infinityà   s.    rs   c                  C   sÔ  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒd u s2J ‚tt | ¡ƒd u sHJ ‚tt | ¡ƒd u s^J ‚tt | ¡ƒd u stJ ‚tt 	| ¡ƒd u sŠJ ‚tt 
| ¡ƒd u s J ‚tt | ¡ƒd u s¶J ‚tt | ¡ƒd u sÌJ ‚tt | ¡ƒd u sâJ ‚tt | ¡ƒd u søJ ‚tt | ¡ƒd u sJ ‚tt | ¡ƒd u s(J ‚tt | ¡ƒd u s@J ‚tt | ¡ƒd u sXJ ‚tt | ¡ƒd u spJ ‚tt | ¡ƒd u sˆJ ‚tt | ¡ƒd u s J ‚tt | ¡ƒd u s¸J ‚tt | ¡ƒd u sÐJ ‚d S ©NT)r$   ÚNaNr   r   rG   rH   rI   rh   rJ   ri   rK   rL   rM   rN   rb   rc   rP   rQ   rR   rk   rS   rT   rU   rV   ©ÚnanrX   rX   rY   Útest_nanú   s*    rx   c                  C   s  t ddƒ} tt | ¡ƒdu s J ‚tt | ¡ƒdu s6J ‚tt | ¡ƒdu sLJ ‚tt | ¡ƒdu sbJ ‚tt | ¡ƒdu sxJ ‚tt | ¡ƒdu sŽJ ‚tt 	| ¡ƒdu s¤J ‚tt 
| ¡ƒdu sºJ ‚tt | ¡ƒdu sÐJ ‚tt | ¡ƒdu sæJ ‚tt | ¡ƒdu süJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s,J ‚tt | ¡ƒdu sDJ ‚tt | ¡ƒdu s\J ‚tt | ¡ƒdu stJ ‚t ddƒ} tt 
| ¡ƒdu s–J ‚tt | ¡ƒdu s®J ‚t ddƒ} tt | ¡ƒdu sÐJ ‚tt 
| ¡ƒdu sèJ ‚t ddƒ} tt 
| ¡ƒdu s
J ‚tt | ¡ƒdu s"J ‚t ddƒ} tt 
| ¡ƒdu sDJ ‚tt | ¡ƒdu s\J ‚t ddƒ} tt 
| ¡ƒdu s~J ‚tt | ¡ƒdu s–J ‚t d	dƒ} tt | ¡ƒdu s¸J ‚tt 
| ¡ƒdu sÐJ ‚t d	dƒ} tt 
| ¡ƒdu sòJ ‚tt | ¡ƒdu s
J ‚d S )
Né   é   TFrE   é   éýÿÿÿre   éûÿÿÿ)r    r   r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   )ÚrrX   rX   rY   Útest_Rational_number  sL    







r   c                  C   sv  t dƒ} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s4J ‚tt | ¡ƒdu sJJ ‚tt | ¡ƒdu s`J ‚tt | ¡ƒdu svJ ‚tt | ¡ƒdu sŒJ ‚tt 	| ¡ƒdu s¢J ‚tt 
| ¡ƒdu s¸J ‚tt | ¡ƒdu sÎJ ‚tt | ¡ƒdu säJ ‚tt | ¡ƒdu súJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s*J ‚tt | ¡ƒdu sBJ ‚tt | ¡ƒdu sZJ ‚tt | ¡ƒdu srJ ‚d S )Né   TF)r0   r   r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_sqrt_2B  s"    r   c                  C   s  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s2J ‚tt | ¡ƒdu sHJ ‚tt | ¡ƒdu s^J ‚tt | ¡ƒdu stJ ‚tt 	| ¡ƒdu sŠJ ‚tt 
| ¡ƒdu s J ‚tt | ¡ƒdu s¶J ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu søJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s(J ‚tt | ¡ƒdu s@J ‚tt | ¡ƒdu sXJ ‚tt | ¡ƒdu spJ ‚tt | ¡ƒdu sˆJ ‚t jd } tt | ¡ƒdu sªJ ‚tt | ¡ƒdu sÂJ ‚tt | ¡ƒdu sÚJ ‚tt | ¡ƒdu sòJ ‚tt | ¡ƒdu s
J ‚tt 	| ¡ƒdu s"J ‚tt 
| ¡ƒdu s:J ‚tt | ¡ƒdu sRJ ‚tt | ¡ƒdu sjJ ‚tt | ¡ƒdu s‚J ‚tt | ¡ƒdu sšJ ‚tt | ¡ƒdu s²J ‚tt | ¡ƒdu sÊJ ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu súJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s*J ‚dt j } tt | ¡ƒdu sLJ ‚tt | ¡ƒdu sdJ ‚tt | ¡ƒdu s|J ‚tt | ¡ƒdu s”J ‚tt | ¡ƒdu s¬J ‚tt 	| ¡ƒdu sÄJ ‚tt 
| ¡ƒdu sÜJ ‚tt | ¡ƒdu sôJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s$J ‚tt | ¡ƒdu s<J ‚tt | ¡ƒdu sTJ ‚tt | ¡ƒdu slJ ‚tt | ¡ƒdu s„J ‚tt | ¡ƒdu sœJ ‚tt | ¡ƒdu s´J ‚tt | ¡ƒdu sÌJ ‚t jd } tt | ¡ƒdu sîJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s6J ‚tt | ¡ƒdu sNJ ‚tt 	| ¡ƒdu sfJ ‚tt 
| ¡ƒdu s~J ‚tt | ¡ƒdu s–J ‚tt | ¡ƒdu s®J ‚tt | ¡ƒdu sÆJ ‚tt | ¡ƒdu sÞJ ‚tt | ¡ƒdu söJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s&J ‚tt | ¡ƒdu s>J ‚tt | ¡ƒdu sVJ ‚tt | ¡ƒdu snJ ‚dt j d } tt | ¡ƒdu s”J ‚tt | ¡ƒdu s¬J ‚tt | ¡ƒdu sÄJ ‚tt | ¡ƒd u sÜJ ‚tt | ¡ƒdu sôJ ‚tt 	| ¡ƒdu sJ ‚tt 
| ¡ƒdu s$J ‚tt | ¡ƒdu s<J ‚tt | ¡ƒdu sTJ ‚tt | ¡ƒdu slJ ‚tt | ¡ƒdu s„J ‚tt | ¡ƒdu sœJ ‚tt | ¡ƒdu s´J ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu säJ ‚tt | ¡ƒdu süJ ‚tt | ¡ƒdu sJ ‚d S ©NTFrE   r€   )r$   ÚPir   r   rG   rH   rI   rh   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_piV  s´    


r„   c                  C   sŒ  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s2J ‚tt | ¡ƒdu sHJ ‚tt | ¡ƒdu s^J ‚tt | ¡ƒdu stJ ‚tt 	| ¡ƒdu sŠJ ‚tt 
| ¡ƒdu s J ‚tt | ¡ƒdu s¶J ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu søJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s(J ‚tt | ¡ƒdu s@J ‚tt | ¡ƒdu sXJ ‚tt | ¡ƒdu spJ ‚tt | ¡ƒdu sˆJ ‚d S rg   )r$   ZExp1r   r   rG   rH   rI   rh   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_E·  s$    r…   c                  C   sŒ  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s2J ‚tt | ¡ƒdu sHJ ‚tt | ¡ƒdu s^J ‚tt | ¡ƒdu stJ ‚tt 	| ¡ƒdu sŠJ ‚tt 
| ¡ƒdu s J ‚tt | ¡ƒdu s¶J ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu søJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s(J ‚tt | ¡ƒdu s@J ‚tt | ¡ƒdu sXJ ‚tt | ¡ƒdu spJ ‚tt | ¡ƒdu sˆJ ‚d S rg   )r$   ZGoldenRatior   r   rG   rH   rI   rh   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_GoldenRatioÌ  s$    r†   c                  C   sŒ  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s2J ‚tt | ¡ƒdu sHJ ‚tt | ¡ƒdu s^J ‚tt | ¡ƒdu stJ ‚tt 	| ¡ƒdu sŠJ ‚tt 
| ¡ƒdu s J ‚tt | ¡ƒdu s¶J ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu søJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s(J ‚tt | ¡ƒdu s@J ‚tt | ¡ƒdu sXJ ‚tt | ¡ƒdu spJ ‚tt | ¡ƒdu sˆJ ‚d S rg   )r$   ZTribonacciConstantr   r   rG   rH   rI   rh   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_TribonacciConstantá  s$    r‡   c                  C   s€  t } tt | ¡ƒdu sJ ‚tt | ¡ƒdu s0J ‚tt | ¡ƒdu sFJ ‚tt | ¡ƒdu s\J ‚tt | ¡ƒdu srJ ‚tt | ¡ƒdu sˆJ ‚tt 	| ¡ƒdu sžJ ‚tt 
| ¡ƒdu s´J ‚tt | ¡ƒdu sÊJ ‚tt | ¡ƒdu sàJ ‚tt | ¡ƒdu söJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s&J ‚tt | ¡ƒdu s>J ‚tt | ¡ƒdu sVJ ‚tt | ¡ƒdu snJ ‚tt | ¡ƒdu s†J ‚dt  } tt | ¡ƒdu s¦J ‚tt | ¡ƒdu s¾J ‚tt | ¡ƒdu sÖJ ‚tt | ¡ƒdu sîJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt 	| ¡ƒdu s6J ‚tt 
| ¡ƒdu sNJ ‚tt | ¡ƒdu sfJ ‚tt | ¡ƒdu s~J ‚tt | ¡ƒdu s–J ‚tt | ¡ƒdu s®J ‚tt | ¡ƒdu sÆJ ‚tt | ¡ƒdu sÞJ ‚tt | ¡ƒdu söJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s&J ‚t dt   } tt | ¡ƒdu sJJ ‚tt | ¡ƒdu sbJ ‚tt | ¡ƒdu szJ ‚tt | ¡ƒdu s’J ‚tt | ¡ƒdu sªJ ‚tt | ¡ƒdu sÂJ ‚tt 	| ¡ƒdu sÚJ ‚tt 
| ¡ƒdu sòJ ‚tt | ¡ƒdu s
J ‚tt | ¡ƒdu s"J ‚tt | ¡ƒdu s:J ‚tt | ¡ƒdu sRJ ‚tt | ¡ƒdu sjJ ‚tt | ¡ƒdu s‚J ‚tt | ¡ƒdu sšJ ‚tt | ¡ƒdu s²J ‚tt | ¡ƒdu sÊJ ‚t t  } tt 
| ¡ƒdu sêJ ‚tt | ¡ƒdu sJ ‚t  t  } tt 
| ¡ƒdu s$J ‚tt | ¡ƒdu s<J ‚dt  t  } tt 
| ¡ƒdu s`J ‚tt | ¡ƒdu sxJ ‚dt  } tt 
| ¡ƒdu s˜J ‚tt | ¡ƒdu s°J ‚dt  } tt 
| ¡ƒdu sÐJ ‚tt | ¡ƒdu sèJ ‚dt  t  } tt 
| ¡ƒdu sJ ‚tt | ¡ƒdu s$J ‚t t d  } tt 
| ¡ƒdu sHJ ‚tt | ¡ƒdu s`J ‚t t d  } tt 
| ¡ƒdu s„J ‚tt | ¡ƒdu sœJ ‚t d } tt 
| ¡ƒdu s¼J ‚tt | ¡ƒdu sÔJ ‚t d } tt 
| ¡ƒdu sôJ ‚tt | ¡ƒdu sJ ‚dt  } tt 
| ¡ƒdu s,J ‚tt | ¡ƒdu sDJ ‚t d } tt 
| ¡ƒdu sdJ ‚tt | ¡ƒdu s|J ‚d S )NTFrE   ry   re   r€   r   )r   r   r   rG   rH   rI   rh   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_Iö  s´    
rˆ   c                  C   s$5  t dƒ\} }}| | }|j\} }tt |¡t |¡ƒd u s>J ‚tt | ¡ƒd u sTJ ‚tt | ¡t | ¡ƒdu srJ ‚tt | ¡t |¡ƒd u sJ ‚tt | ¡t | ¡ƒdu s®J ‚tt | ¡t | ¡ƒd u sÌJ ‚tt | d ¡ƒd u sæJ ‚tt | d ¡t | ¡ƒdu s
J ‚| | }|j\} }tt |¡t | ¡t |¡@ ƒdu sFJ ‚tt |¡t | ¡t |¡@ ƒdu spJ ‚tt |¡t | ¡t |¡@ ƒdu sšJ ‚tt |¡t | ¡t |¡@ ƒdu sÄJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu súJ ‚tt |¡t | ¡t | ¡ @ t |¡@ ƒdu s0J ‚tt |¡t | ¡t |¡@ t | ¡ @ t |¡ @ ƒdu srJ ‚tt |¡t | ¡t |¡ @ ƒdu sžJ ‚tt |¡t | ¡t |¡ @ ƒdu sÊJ ‚tt |¡t | ¡t |¡@ ƒdu sôJ ‚tt |¡t | ¡t |¡@ ƒdu sJ ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒdu sVJ ‚tt |¡t | ¡t | ¡ @ t |¡@ ƒdu sŒJ ‚tt |¡t | ¡t | ¡ @ t |¡ @ t |¡ @ ƒdu sÐJ ‚tt |¡t | ¡ƒd u sðJ ‚tt |¡t | ¡ƒd u sJ ‚tt |¡t | ¡t 	|¡@ ƒd u s:J ‚tt |¡t | ¡t 	|¡@ ƒd u sdJ ‚tt |¡t | ¡t |¡ @ ƒd u sJ ‚tt |¡t | ¡t | ¡ @ t 	|¡@ ƒd u sÆJ ‚tt |¡t | ¡t | ¡ @ t |¡ @ ƒd u sþJ ‚tt |¡t | ¡ t |¡ @ ƒd u s,J ‚tt |¡t | ¡t |¡ @ ƒd u sXJ ‚tt |¡t | ¡ t |¡@ ƒd u s„J ‚tt |¡t | ¡t |¡@ ƒdu s®J ‚tt |¡t | ¡t |¡ @ t 	|¡ @ ƒd u sæJ ‚tt |¡t | ¡ t 	| ¡ @ t |¡@ ƒd u sJ ‚tt |¡t | ¡ t |¡ @ t 	| ¡ @ t 	|¡ @ ƒdu sdJ ‚tt |¡t |¡ ƒd u s†J ‚tt |¡t 	| ¡t |¡ @ ƒd u s²J ‚tt |¡t |¡ƒd u sÒJ ‚tt |¡t 	| ¡t |¡@ ƒdu süJ ‚tt |¡t 	| ¡t |¡ @ t 	|¡ @ ƒd u s4J ‚tt |¡t 	| ¡ t |¡@ ƒd u s`J ‚tt |¡t 	| ¡ t |¡ @ t 	|¡ @ ƒdu sšJ ‚tt |¡ƒd u s²J ‚tt |¡t 	| ¡ƒd u sÒJ ‚tt |¡t 	|¡ƒd u sòJ ‚tt |¡t 	| ¡t 	|¡@ ƒd u sJ ‚tt |¡t 	| ¡t 	|¡ @ ƒd u sHJ ‚tt |¡t 	| ¡ t 	|¡@ ƒd u stJ ‚tt |¡t 	| ¡ t 	|¡ @ ƒd u s¢J ‚t dƒ\} }}| | | }|j\} }}tt |¡t 
| ¡t 
|¡@ t 
|¡@ ƒdu süJ ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒdu 	s0J ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒdu 	sdJ ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒdu 	s˜J ‚tt |¡t 
| ¡t 
|¡@ t |¡ @ ƒdu 	sÎJ ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒdu 
sJ ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒd u 
s6J ‚tt |¡t 
| ¡t 
|¡@ ƒd u 
s`J ‚tt |¡t 
| ¡t 
|¡@ t 	|¡@ ƒd u 
s”J ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu 
sÈJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu 
süJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu s0J ‚tt |¡t 
| ¡t |¡@ t |¡ @ ƒdu sfJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu sšJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u sÎJ ‚tt |¡t 
| ¡t |¡@ ƒd u søJ ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒd u s,J ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu s`J ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu s”J ‚tt |¡t 
| ¡t |¡@ t |¡ @ ƒdu sÊJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu sþJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u s2J ‚tt |¡t 
| ¡t 	|¡@ t |¡@ ƒd u sfJ ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒd u sšJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu sÎJ ‚tt |¡t 
| ¡t |¡@ t |¡ @ ƒd u sJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u s8J ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu slJ ‚tt |¡t 
| ¡t |¡@ ƒd u s–J ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒd u sÊJ ‚tt |¡t 
| ¡t |¡ @ t |¡ @ ƒd u sJ ‚tt |¡t 
| ¡t |¡ @ t |¡@ ƒd u s8J ‚tt |¡t 
| ¡t |¡ @ t |¡@ ƒd u snJ ‚tt |¡t 
| ¡t |¡ @ ƒd u sšJ ‚tt |¡t 
| ¡t |¡ @ t 	|¡@ ƒd u sÐJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu sJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u s8J ‚tt |¡t 
| ¡t |¡@ ƒd u sbJ ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒdu s–J ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u sÊJ ‚tt |¡t 
| ¡t |¡@ ƒd u sôJ ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒd u s(J ‚tt |¡t 
| ¡ƒd u sHJ ‚tt |¡t 
| ¡t 	|¡@ ƒd u srJ ‚tt |¡t 
| ¡t 	|¡@ t 	|¡@ ƒd u s¦J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sÚJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sBJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu sxJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s¬J ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sàJ ‚tt |¡t | ¡t |¡@ ƒd u s
J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u s>J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu srJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s¦J ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu sÜJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sDJ ‚tt |¡t | ¡t |¡@ ƒd u snJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u s¢J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sÖJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒd u sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s@J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu stJ ‚tt |¡t | ¡t |¡@ ƒd u sžJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u sÒJ ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒd u s
J ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u s@J ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u svJ ‚tt |¡t | ¡t |¡ @ ƒd u s¢J ‚tt |¡t | ¡t |¡ @ t 	|¡@ ƒd u sØJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s@J ‚tt |¡t | ¡t |¡@ ƒd u sjJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒdu sžJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sÒJ ‚tt |¡t | ¡t |¡@ ƒd u süJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u s0J ‚tt |¡t | ¡ƒd u sPJ ‚tt |¡t | ¡t 	|¡@ ƒd u szJ ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒd u s®J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sâJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu sLJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s€J ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s´J ‚tt |¡t | ¡t |¡@ ƒd u sÞJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sFJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒd u s|J ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s°J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu säJ ‚tt |¡t | ¡t |¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u sBJ ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒd u szJ ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u s°J ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u sæJ ‚tt |¡t | ¡t |¡ @ ƒd u sJ ‚tt |¡t | ¡t |¡ @ t 	|¡@ ƒd u sHJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s|J ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s°J ‚tt |¡t | ¡t |¡@ ƒd u sÚJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒdu sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sBJ ‚tt |¡t | ¡t |¡@ ƒd u slJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u s J ‚tt |¡t | ¡ƒd u sÀJ ‚tt |¡t | ¡t 	|¡@ ƒd u sêJ ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sRJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒd u sˆJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s¼J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sðJ ‚tt |¡t | ¡t |¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u sNJ ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒd u s†J ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u s¼J ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u sòJ ‚tt |¡t | ¡t |¡ @ ƒd u  sJ ‚tt |¡t | ¡t |¡ @ t 	|¡@ ƒd u  sTJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u  sˆJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u  s¼J ‚tt |¡t | ¡t |¡@ ƒd u  sæJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u !sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu !sNJ ‚tt |¡t | ¡t |¡@ ƒd u !sxJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u !s¬J ‚tt |¡t | ¡ƒd u !sÌJ ‚tt |¡t | ¡t 	|¡@ ƒd u !söJ ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒd u "s*J ‚tt |¡t | ¡ t |¡ @ t |¡ @ ƒd u "sdJ ‚tt |¡t | ¡ t |¡@ t |¡ @ ƒd u "sœJ ‚tt |¡t | ¡ t |¡ @ t |¡@ ƒd u "sÔJ ‚tt |¡t | ¡ t |¡ @ ƒd u #sJ ‚tt |¡t | ¡ t |¡ @ t 	|¡@ ƒd u #s:J ‚tt |¡t | ¡ t |¡@ t |¡@ ƒd u #spJ ‚tt |¡t | ¡ t |¡@ t |¡@ ƒd u #s¦J ‚tt |¡t | ¡ t |¡@ ƒd u #sÒJ ‚tt |¡t | ¡ t |¡@ t 	|¡@ ƒd u $sJ ‚tt |¡t | ¡ t |¡@ t |¡@ ƒd u $s>J ‚tt |¡t | ¡ t |¡@ ƒd u $sjJ ‚tt |¡t | ¡ t |¡@ t 	|¡@ ƒd u $s J ‚tt |¡t | ¡ ƒd u $sÂJ ‚tt |¡t | ¡ t 	|¡@ ƒd u $sîJ ‚tt |¡t | ¡ t 	|¡@ t 	|¡@ ƒd u %s$J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu %sXJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u %sŒJ ‚tt |¡t | ¡t |¡@ ƒd u %s¶J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒdu %sêJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u &sJ ‚tt |¡t | ¡t |¡@ ƒd u &sHJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u &s|J ‚tt |¡t | ¡ƒd u &sœJ ‚tt |¡t | ¡t 	|¡@ ƒd u &sÆJ ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒdu &súJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u 's.J ‚tt |¡t | ¡t |¡@ ƒd u 'sXJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u 'sŒJ ‚tt |¡t | ¡ƒd u 's¬J ‚tt |¡t | ¡t 	|¡@ ƒd u 'sÖJ ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒd u (s
J ‚tt |¡ƒd u (s"J ‚tt |¡t 	|¡ƒd u (sBJ ‚tt |¡t 	|¡t 	|¡@ ƒd u (slJ ‚tt |¡t 	| ¡t 	|¡@ t 	|¡@ ƒd u (s J ‚tt d|  ¡ƒd u (s¼J ‚tt d|  ¡t | ¡ƒdu (sàJ ‚t dƒ\} }}| | }|j\} }tt |¡t | ¡t |¡@ ƒdu )s*J ‚tt |¡t | ¡t | ¡ @ t |¡ @ ƒdu )sbJ ‚tt |¡t | ¡ƒd u )s‚J ‚tt |¡t | ¡ t |¡@ t |¡ @ ƒdu )sºJ ‚tt |¡t | ¡ t |¡ @ ƒdu )sèJ ‚tt |¡t | ¡ ƒd u *s
J ‚tt |¡t |¡ƒd u *s*J ‚tt |¡t |¡ ƒd u *sLJ ‚tt |¡ƒd u *sdJ ‚| | | }|j\} }}tt |¡t | ¡t |¡@ t |¡@ ƒdu *s°J ‚tt |¡t | ¡t | ¡ @ t |¡@ t |¡ @ t |¡ @ ƒdu *sþJ ‚tt |¡t | ¡t |¡@ ƒd u +s(J ‚tt |¡t | ¡t | ¡ @ t |¡ @ t |¡@ t |¡ @ ƒdu +svJ ‚tt |¡t | ¡t | ¡ @ t |¡ @ t |¡ @ ƒdu +sºJ ‚tt |¡t | ¡t |¡ @ ƒd u +sæJ ‚tt |¡t | ¡t |¡@ ƒd u ,sJ ‚tt |¡t | ¡t |¡ @ ƒd u ,s<J ‚tt |¡t | ¡ƒd u ,s\J ‚tt |¡t | ¡ t |¡@ t |¡ @ t |¡@ t |¡ @ ƒdu ,sªJ ‚tt |¡t | ¡ t | ¡ @ t |¡@ t |¡ @ t |¡ @ ƒdu ,súJ ‚tt |¡t | ¡ t |¡@ ƒd u -s&J ‚tt |¡t | ¡ t |¡ @ t |¡@ t |¡ @ ƒdu -sjJ ‚tt |¡t | ¡ t |¡ @ t |¡ @ ƒdu -s¤J ‚tt |¡t | ¡ t |¡ @ ƒd u -sÒJ ‚tt |¡t | ¡ t |¡@ ƒd u -sþJ ‚tt |¡t | ¡ t |¡ @ ƒd u .s,J ‚tt |¡t | ¡ ƒd u .sNJ ‚tt |¡t |¡t |¡@ ƒd u .sxJ ‚tt |¡t |¡t |¡ @ ƒd u .s¤J ‚tt |¡t |¡ƒd u .sÄJ ‚tt |¡t |¡ t |¡@ ƒd u .sðJ ‚tt |¡t |¡ t |¡ @ ƒd u /sJ ‚tt |¡t |¡ ƒd u /s@J ‚tt |¡t |¡ƒd u /s`J ‚tt |¡t |¡ ƒd u /s‚J ‚tt |¡t |¡ t | ¡@ t |¡@ t |¡@ ƒd u /sÂJ ‚tt |¡t | ¡t |¡ @ t |¡@ t |¡ @ t |¡@ ƒdu 0sJ ‚t dƒ\} }}tt | d ¡ƒd u 0s8J ‚tt d|  ¡ƒd u 0sTJ ‚tt d|  ¡t | ¡ƒdu 0sxJ ‚tt | |  ¡ƒd u 0s”J ‚tt tj|  ¡ƒd u 0s²J ‚tt tj|  ¡t 	| ¡ƒdu 0sØJ ‚tt tj|  ¡t | ¡ƒd u 0sþJ ‚tt d|  ¡t | ¡ƒdu 1s"J ‚tt t| ƒ¡ƒd u 1s>J ‚tt d|  ¡t | ¡ ƒdu 1sdJ ‚tt | d ¡t | ¡ ƒdu 1sŠJ ‚tt | | ¡t | ¡t |¡@ ƒd u 1s¸J ‚tt | | ¡t | ¡t 
|¡@ ƒd u 1sæJ ‚tt | | ¡t | ¡t 
|¡@ ƒdu 2sJ ‚tt | | ¡t | ¡t |¡@ ƒdu 2sBJ ‚tt | | ¡t | ¡t |¡@ ƒdu 2spJ ‚tt | | ¡t | ¡t 
|¡@ ƒdu 2sžJ ‚tt | | ¡t | ¡t |¡@ ƒdu 2sÌJ ‚tt t| ƒ¡ƒdu 2sèJ ‚tt t| ƒ¡t | ¡ ƒdu 3sJ ‚tt t| ƒ¡ƒd u 3s*J ‚tt t| ƒ¡t | ¡ƒd u 3sNJ ‚tt t| ƒ¡t | ¡ ƒdu 3stJ ‚tt t| ƒ¡t | ¡ƒdu 3s˜J ‚tt t| ƒ¡t | ¡ƒdu 3s¼J ‚tt t| ƒ¡ƒd u 3sØJ ‚tt t| ƒ¡t | ¡ƒdu 3süJ ‚tt tdƒ¡ƒdu 4sJ ‚tt t| ƒ¡ƒdu 4s4J ‚tt t| ƒ¡t | ¡ ƒdu 4sZJ ‚tt t| ƒ¡ƒdu 4svJ ‚tt t| ƒ¡t | ¡ ƒdu 4sœJ ‚tt dt| ƒ ¡ƒdu 4s¼J ‚tt t| ƒd ¡ƒdu 4sÜJ ‚tt t| ƒd ¡ƒdu 4süJ ‚tt t| ƒt| ƒ ¡ƒdu 5s J ‚d S )Nzx,y,zTrE   Fr€   )r'   Úargsr   r   rR   rl   rK   ri   rN   rj   rO   rm   rp   rc   Zextended_nonzeror$   ZHalfr0   rJ   rb   r-   r/   rk   r.   r7   r5   ©r   r   r   ÚarX   rX   rY   Útest_bounded`  s¬   
$
****
ÿÿ
ÿÿ
(
ÿÿ
,,ÿÿ
ÿÿ

ÿÿ
ÿÿ
*
ÿÿ
  ÿÿ
ÿÿ
,ÿÿ

ÿÿ
.
ÿÿ
ÿÿ
ÿÿ

ÿÿ
 ÿÿ
 
ÿ
ÿÿ
"
ÿÿ
 ÿÿ

ÿ
ÿÿ
ÿÿ
 
ÿÿ
  ÿÿ

ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
*ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
*ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
,ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
 ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
*ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
*ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
,ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
 ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
*ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
,ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
 ÿÿ
ÿÿ
ÿÿÿ
ÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ

ÿ
ÿÿ

ÿÿÿ

ÿÿÿ

ÿÿ

ÿÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
 ÿÿ
ÿÿÿ
 
ÿÿ

ÿÿ
 ÿÿ
. ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
"ÿÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
 ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
 ÿÿ
ÿÿÿ
 ÿÿ
ÿÿÿ
$
*8 8." "ÿÿ
(
ÿ
ÿÿ
**ÿ
ÿÿ
*
ÿÿ
,*, *ÿ
ÿÿ
*
ÿ
ÿÿ
, ÿ
ÿÿ
 
ÿÿ
.,."*, ,." "ÿÿÿ
ÿ
ÿþþ
$&&$&&.......&$&$$$&&   rŒ   c                   C   sv  t t tt ¡ƒdu sJ ‚t t dtt  ¡ƒdu s8J ‚t t dtt  ¡ƒdu sVJ ‚t t t t ¡ƒdu srJ ‚t t dt ¡ƒdu sŒJ ‚t t tt ¡ƒdu s¦J ‚t t tt ¡t t¡t t¡@ t 	t¡ @ ƒdu sÞJ ‚t t tt tt  ¡ƒd u sJ ‚t t tt t ¡ƒd u s"J ‚t t dt ¡t t¡t 	t¡ @ ƒdu sRJ ‚t t dtt  ¡ƒdu srJ ‚d S )NTrE   ry   F)
r   r   rk   r   r!   r"   r   r   rR   rc   rX   rX   rX   rY   Útest_unbounded_  s    8$ 0r   c                   C   s8   t t t¡t t¡t t¡@ t t¡ @ ƒd u s4J ‚d S ©N)r   r   rT   r   rH   rN   rS   rX   rX   rX   rY   Útest_issue_27441m  s    r   c                  C   sÀ  t dƒ\} }}| | }tt |¡t | ¡t |¡ @ ƒd u s@J ‚tt |¡t | ¡ t |¡@ ƒd u sjJ ‚| | | }tt |¡t | ¡t |¡@ t |¡ @ ƒd u sªJ ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u sÞJ ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒd u sJ ‚tt |¡t | ¡ t |¡@ t |¡@ ƒd u sLJ ‚tt |¡t | ¡ t |¡@ t |¡ @ ƒd u s„J ‚tt |¡t | ¡ t |¡ @ t |¡@ ƒd u s¼J ‚d S )Nzx y z)r'   r   r   rR   rŠ   rX   rX   rY   Útest_issue_27447r  sF    **
ÿÿÿÿ
ÿÿ
ÿÿ

ÿÿ
 ÿÿr   c                   C   s2   t t tt ¡t t¡ t t¡@ ƒd u s.J ‚d S rŽ   )r   r   rR   r   r   rc   rX   rX   rX   rY   Útest_issue_27662_xfail‡  s
    ÿÿr‘   c                   C   s@   t t ttƒt ¡ƒdu sJ ‚t t ttƒt ¡ƒdu s<J ‚dS )z4We need to support relations in ask for this to workTN)r   r   rR   r7   r   r5   rX   rX   rX   rY   Útest_bounded_xfail  s    r’   c                   C   s²  t t t¡ƒdu sJ ‚t t t¡t t¡ ƒdu s6J ‚t t t¡t t¡ƒdu sTJ ‚t t t¡t t¡ƒdu srJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s®J ‚t t t¡t t¡ ƒdu sÎJ ‚t t dt ¡ƒdu sèJ ‚t t dt ¡t t¡ ƒdu sJ ‚t t td ¡ƒdu s*J ‚t t td ¡t t¡ ƒdu sPJ ‚t t td ¡ƒdu slJ ‚t t td ¡t t¡ ƒdu s’J ‚t t t	tƒ¡ƒdu s®J ‚dS )zdBy default objects are Q.commutative that is why it returns True
    for both key=True and key=FalseTFr€   rE   N)
r   r   rG   r   rK   rM   rJ   rN   r   r/   rX   rX   rX   rY   Útest_commutative”  s      &&&r“   c                   C   sö  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s4J ‚t t t¡t t¡ƒd u sRJ ‚t t t¡t t¡ ƒdu srJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ ƒd u s°J ‚t t t¡t t¡ƒdu sÎJ ‚t t t¡t t¡ƒdu sìJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t 	t¡ƒdu s,J ‚t t t¡t 
t¡ƒdu sLJ ‚t t td ¡t t¡ƒdu spJ ‚t t td ¡t t¡ƒdu s”J ‚t t td ¡t t¡ƒdu s¸J ‚t t td ¡t t¡ƒdu sÜJ ‚t t td ¡t 	t¡ƒdu s J ‚t t td ¡t t¡ƒdu s$J ‚t t td ¡t t¡ƒdu sHJ ‚t t td ¡t t¡ƒdu slJ ‚t t tt ¡t t¡t t¡@ ƒdu sšJ ‚t t tt ¡t t¡t 	t¡@ ƒdu sÈJ ‚t t dt d ¡t t¡ƒdu sðJ ‚t t dt d ¡t t¡ƒdu sJ ‚t t dt d ¡t t¡ƒdu s@J ‚t t dt d ¡t t¡ƒdu shJ ‚t t dt d ¡t t¡ƒdu sJ ‚t t dt d ¡t 	t¡ƒdu s¸J ‚t t dt d ¡t t¡ƒdu sàJ ‚t t dt d ¡t t¡ƒdu sJ ‚t t dt d ¡t t¡ƒdu s0J ‚t t td ¡t t¡ƒdu sTJ ‚t t td ¡t t¡ƒdu sxJ ‚t t td ¡t t¡ƒdu sœJ ‚t t td ¡t t¡ƒdu sÀJ ‚t t td ¡t t¡ƒdu säJ ‚t t td ¡t 	t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s,J ‚t t td ¡t t¡ƒdu sPJ ‚t t td ¡t t¡ƒdu stJ ‚t t dt ¡t t¡ƒdu s˜J ‚t t dt ¡t t¡ƒdu s¼J ‚t t dt ¡t t¡ƒdu sàJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s(J ‚t t dt ¡t 	t¡ƒdu sLJ ‚t t dt ¡t t¡ƒdu spJ ‚t t dt ¡t t¡ƒdu s”J ‚t t dt ¡t t¡ƒdu s¸J ‚t t tt ¡t t¡t t¡@ ƒdu sæJ ‚t t ttƒ¡ƒdu sJ ‚t t tdt d ƒ¡ƒdu s&J ‚t t ttƒ¡ƒdu sBJ ‚t t tdt d ƒ¡ƒdu sfJ ‚t t ttƒ¡ƒdu s‚J ‚t t ttƒ¡ƒdu sžJ ‚t t ttƒ¡ƒdu sºJ ‚t t ttƒ¡ƒdu sÖJ ‚t t ttƒ¡ƒdu sòJ ‚d S r‚   )r   r   rK   r   r   rJ   rI   rL   rN   rM   rh   rH   rP   rQ   r7   r5   r.   r*   r,   r+   rX   rX   rX   rY   Útest_complex«  st         $$$$$$$$..((((((((($$$$$$$$$$$$$$$$$$.$$r”   c                   C   sŽ  t t t¡ƒd u sJ ‚t t t¡t t¡ƒd u s4J ‚t t t¡t t¡ ƒdu sTJ ‚t t t¡t t¡ƒd u srJ ‚t t t¡t t¡ƒd u sJ ‚t t dt ¡ƒd u sªJ ‚t t dt ¡t t¡ƒdu sÌJ ‚t t dt ¡t t¡ƒdu sîJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s6J ‚t t dt ¡t t¡ ƒd u s\J ‚t t dt ¡t t¡ƒd u s€J ‚t t dt ¡t t¡ƒdu s¤J ‚t t dt ¡t t¡ƒdu sÈJ ‚t t td ¡t t¡ƒdu sìJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s4J ‚t t td ¡t t¡ƒdu sXJ ‚t t dt ¡t t¡ƒdu s|J ‚t t dt ¡t t¡ƒdu s J ‚t t tt	 ¡t t¡t t	¡@ ƒdu sÎJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu süJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu s*J ‚t t dt d ¡t t¡ƒdu sRJ ‚t t dt t	 ¡t t¡t t¡@ ƒd u s„J ‚t t dt t	 ¡t t¡t t¡@ ƒd u s¶J ‚t t tt	 t
 ¡t t¡t t	¡@ t t
¡@ ƒdu sòJ ‚t t tt	 t
 t ¡t t¡t t	¡@ t t
¡@ t t¡@ ƒd u s<J ‚t t ttƒ¡t t¡ƒdu s`J ‚t t ttƒ¡t t¡ ƒd u s†J ‚t t ttƒ¡t t¡ƒdu sªJ ‚t t ttƒ¡t t¡ ƒd u sÐJ ‚t t ttƒ¡t t¡ƒdu sôJ ‚t t ttƒ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s<J ‚t t td ¡t t¡ƒdu s`J ‚t t td ¡t t¡ƒdu s„J ‚t t dt ¡t t¡ƒd u s¨J ‚t t td ¡ƒd u sÄJ ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u sþJ ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒdu s8J ‚t t tt ¡t t¡t t¡@ t t¡@ ƒdu spJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒdu s¨J ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u sâJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒd u sJ ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u sTJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒd u sŒJ ‚t t tt ¡t t¡ƒd u s°J ‚t t tt ¡t t¡ƒd u sÔJ ‚t t tt	 ¡t t¡t t	¡@ ƒd u sJ ‚t t tt ¡t t¡ƒd u s&J ‚t t ttt	  ¡t t¡t t	¡@ ƒdu sXJ ‚t t ttt	  ¡t t¡t t	¡@ ƒd u sŠJ ‚d S )NFr€   Try   rE   é   re   )r   r   rP   r   rH   rI   rN   rL   rQ   r   r   r   r*   r,   r+   rJ   r   r   r	   rO   r
   rX   rX   rX   rY   Útest_even_query÷  sr     ""$$&$$$$$$$$$...(22<&ÿÿ
$&$&$$$$$$::88:8:8$$.$2r–   c                   C   s€   t t tt tt  ¡t t¡t t¡@ t t¡@ ƒdu s>J ‚t t tt tt  ¡t t¡t t¡@ t t¡@ ƒdu s|J ‚d S rt   )r   r   rP   r   r   r   rH   rQ   rX   rX   rX   rY   Ú1test_evenness_in_ternary_integer_product_with_odd=  s    >r—   c                   C   sB   t t tt tt  ¡t t¡t t¡@ t t¡@ ƒd u s>J ‚d S rŽ   )r   r   rP   r   r   r   rH   rX   rX   rX   rY   Ú2test_evenness_in_ternary_integer_product_with_evenF  s    r˜   c                   C   s  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s<J ‚t t t¡t t¡ƒdu sZJ ‚t t t¡t t¡ƒdu sxJ ‚t t t¡t t¡ƒdu s–J ‚t t t ¡t t¡ƒdu s¶J ‚t t t ¡t t¡ƒdu sÖJ ‚t t tt	j
 ¡t t¡ƒdu súJ ‚t t t¡t t¡ƒd u sJ ‚d S rt   )r   r   ri   r   rl   rN   rc   rO   rm   r$   ÚInfinityrJ   rk   rX   rX   rX   rY   Útest_extended_realJ  s      $rš   c                  C   sÚ	  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s<J ‚t t t¡t t¡ƒd u sZJ ‚t t t¡t t¡ƒd u sxJ ‚t t t¡t t¡ƒd u s–J ‚t t t¡t 	t¡ƒd u s´J ‚t t t¡t 
t¡ ƒdu sÔJ ‚t t dt ¡t t¡ƒdu söJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s>J ‚t t dt ¡t t¡ƒdu sbJ ‚t t dt ¡t t¡ƒdu s†J ‚t t td ¡t t¡ƒdu sªJ ‚t t td ¡t t¡ƒdu sÎJ ‚t t td ¡t t¡ƒdu sòJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s:J ‚t t dt ¡t t¡t 	t¡@ ƒdu shJ ‚t t dt ¡t t¡t 	t¡@ ƒdu s–J ‚t t dt ¡t t¡t 	t¡@ ƒdu sÄJ ‚t t dt ¡t t¡ƒdu sèJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡t 	t¡@ ƒdu s:J ‚t t dt ¡t t¡t 	t¡@ ƒdu shJ ‚t t dt ¡t t¡t 	t¡@ ƒdu s–J ‚t t dt ¡t t¡ƒdu sºJ ‚t t dt ¡t t¡ƒdu sÞJ ‚t t t¡t 
t¡ ƒdu s J ‚t t tt ¡t t¡t t¡@ ƒd u s.J ‚t t tt ¡t t¡t t¡@ t 	t¡@ ƒdu sfJ ‚t t tt ¡t t¡t t¡@ t 	t¡@ ƒdu sžJ ‚t t tt ¡t t¡t t¡@ t 	t¡@ ƒdu sÖJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t tt ¡t t¡t t¡@ t 	t¡@ ƒdu s<J ‚ttttttfD ]´} t t | dƒ¡ƒdu slJ ‚t t | ddd¡ƒdu sŒJ ‚t t | ddd¡ƒdu s¬J ‚t t | tƒ¡t t¡ƒd u sÐJ ‚t t | tƒ¡t t¡t 	t¡@ ƒdu sLJ ‚qLttfD ]¸}t t |dƒ¡ƒdu s*J ‚t t |ddd¡ƒdu sJJ ‚t t |ddd¡ƒdu sjJ ‚t t |tƒ¡t t¡ƒd u sŽJ ‚t t |tƒ¡t t¡t 	td ¡@ ƒdu s
J ‚q
ttfD ]f}t t |dƒ¡ƒdu sìJ ‚t t |ddd¡ƒdu sJ ‚t t |tƒ¡t t¡ƒdu sÌJ ‚qÌt t tt ¡t t¡t t¡@ ƒd u sbJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒd u sšJ ‚t t tt ¡t t¡t t¡@ ƒd u sÈJ ‚t t tt ¡t t¡t td¡@ t t¡@ ƒd u sJ ‚t t tt ¡t td¡t t¡@ ƒd u s2J ‚t t tt ¡t td¡t t¡@ ƒd u sbJ ‚t t tt ¡t t¡t t¡@ ƒd u sJ ‚t t tt ¡t t¡ t t¡@ ƒd u sÀJ ‚t t tdtddt t¡¡ƒd u sêJ ‚t t tt ¡t t¡t 
t¡ @ ƒd u 	sJ ‚t t tt ¡t t¡t 
t¡ @ t t¡ @ ƒd u 	sVJ ‚t t tt ¡t t¡t 
t¡ @ t t¡@ t t¡ @ ƒd u 	sœJ ‚t t tt ¡t t¡t 
t¡ @ t t¡@ ƒd u 	sÖJ ‚d S )	NTFr€   rE   r•   ©Úevaluater   re   )r   r   rI   r   rH   rL   rJ   rN   rO   rb   rh   rP   rQ   r   r.   r7   r8   r3   r4   r5   r/   r1   r6   r2   rS   Úeqr%   rc   rK   ©ÚfÚgÚhrX   rX   rY   Útest_rationalY  s~     "$$$$$$$$$...$$...$$".888.8  $2  $6 (.8.:00.0*0<Fr¢   c                   C   sX  t t t¡ƒd u sJ ‚t t t¡t t¡ƒd u s4J ‚t t t¡t t¡ƒdu sRJ ‚t t t¡t t¡ƒdu spJ ‚t t t¡t t¡ƒdu sŽJ ‚t t t¡t t¡ƒdu s¬J ‚t t td ¡t t¡ƒd u sÎJ ‚t t td ¡t 	t¡ƒd u sðJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s8J ‚t t td ¡t t¡ƒdu s\J ‚t t tt
 ¡t t¡ƒd u s€J ‚t t tt
 ¡t 	t¡ƒd u s¤J ‚t t tt
 ¡t t¡ƒdu sÈJ ‚t t tt
 ¡t t¡ƒd u sìJ ‚t t tt
 ¡t t¡ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒd u s>J ‚t t tt ¡t t¡t 	t¡@ ƒd u slJ ‚t t tt ¡t t¡t t¡@ ƒd u sšJ ‚t t tt ¡t t¡t t¡@ ƒd u sÈJ ‚t t tt ¡t t¡t t¡@ ƒd u söJ ‚t t tt ¡t t¡t 	t¡@ ƒd u s$J ‚t t tt ¡t t¡t t¡@ ƒdu sRJ ‚t t tt ¡t t¡t t¡@ ƒdu s€J ‚t t tt ¡t t¡t t¡@ ƒdu s®J ‚t t tt ¡t t¡t 	t¡@ ƒd u sÜJ ‚t t tt ¡t t¡t t¡@ ƒd u s
J ‚t t tt ¡t t¡t t¡@ ƒdu s8J ‚t t tt ¡t t¡t 	t¡@ ƒd u sfJ ‚t t tt ¡t t¡t t¡@ ƒdu s”J ‚t t t
t ¡t t¡ƒdu s¸J ‚t t t
t ¡t 	t¡ƒd u sÜJ ‚t t t
t ¡t t¡ƒdu s J ‚t t t
t ¡t t¡ƒdu s$J ‚t t t
t ¡t t¡ƒdu sHJ ‚t t tt ¡t t¡t t¡@ ƒdu svJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu s²J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu sîJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u s*J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u sfJ ‚t t t¡ƒd u s~J ‚t t t¡t t¡ƒdu sžJ ‚t t t¡t t¡ƒdu s¾J ‚t t td ¡t t¡ƒdu sâJ ‚t t td ¡t 	t¡ƒd u sJ ‚t t td ¡t t¡ƒd u s*J ‚t t td ¡t t¡ƒdu sNJ ‚t t td ¡t t¡ƒd u srJ ‚t t tt
 ¡t t¡ƒdu s–J ‚t t tt
 ¡t 	t¡ƒd u sºJ ‚t t tt
 ¡t t¡ƒd u sÞJ ‚t t tt
 ¡t t¡ƒdu sJ ‚t t tt
 ¡t t¡ƒdu s&J ‚t t t¡t t¡ƒdu sFJ ‚t t tt ¡t t¡t t¡@ ƒdu stJ ‚t t tt ¡t t¡t 	t¡@ ƒd u s¢J ‚t t tt ¡t t¡t t¡@ ƒd u sÐJ ‚t t tt ¡t t¡t t¡@ ƒdu sþJ ‚t t tt ¡t t¡t t¡@ ƒdu 	s,J ‚t t tt ¡t t¡t 	t¡@ ƒd u 	sZJ ‚t t tt ¡t t¡t t¡@ ƒd u 	sˆJ ‚t t tt ¡t t¡t t¡@ ƒd u 	s¶J ‚t t tt ¡t t¡t t¡@ ƒd u 	säJ ‚t t tt ¡t t¡t 	t¡@ ƒd u 
sJ ‚t t tt ¡t t¡t t¡@ ƒdu 
s@J ‚t t tt ¡t t¡t t¡@ ƒdu 
snJ ‚t t tt ¡t t¡t 	t¡@ ƒd u 
sœJ ‚t t tt ¡t t¡t t¡@ ƒd u 
sÊJ ‚t t t
t ¡t t¡ƒdu 
sîJ ‚t t t
t ¡t t¡ƒdu sJ ‚t t t
t ¡t 	t¡ƒd u s6J ‚t t tt ¡t t¡t t¡@ ƒdu sdJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u s J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u sÜJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu sJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu sTJ ‚d S )NFTrE   )r   r   rU   r   rV   rM   rS   rJ   rc   rK   r   r   r   rX   rX   rX   rY   Útest_hermitian¨  s   ""$$$$$$$$ÿÿ
.ÿÿ
...........$$$$$.,ÿÿ
ÿÿ
ÿÿ
ÿÿ
  $$$$$$$$$$ ÿþ
ÿÿ
ÿÿ
ÿÿ
"ÿ
."ÿ
ÿÿ
......$$$.ÿÿ
ÿÿ
ÿÿ
ÿÿr£   c                  C   s^
  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s4J ‚t t t¡t t¡ƒdu sRJ ‚t t td ¡t t¡ƒdu stJ ‚t t td ¡t t¡ƒdu s–J ‚t t tt ¡t t¡ƒdu s¸J ‚t t tt ¡t t¡ƒdu sÚJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s6J ‚t t tt ¡t t¡t t¡@ ƒdu sdJ ‚t t tt ¡t t¡t t¡@ ƒd u s’J ‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒdu sÎJ ‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒd u s
J ‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒdu sFJ ‚t t tt ¡t t¡ƒdu sjJ ‚t t tt ¡t t¡ƒdu sŽJ ‚t t tt ¡t t¡ƒd u s²J ‚t t tt ¡t t¡t t¡@ ƒdu sàJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t tt ¡t 
t¡ƒd u s2J ‚t t tt ¡t t¡ƒd u sVJ ‚t t tt ¡t t¡ƒdu szJ ‚t t tt ¡t t¡ƒdu sžJ ‚t t tt ¡t t¡ƒdu sÂJ ‚t t dt t ¡t t¡ƒdu sêJ ‚t t td ¡t t¡ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒd u s<J ‚t t tt ¡t t¡t t¡@ ƒd u sjJ ‚t t tt ¡t t¡t t¡@ ƒd u s˜J ‚t t tt ¡t t¡t t¡@ ƒd u sÆJ ‚t t tt ¡t t¡t t¡@ ƒd u sôJ ‚t t tt ¡t t¡t t¡@ ƒd u s"J ‚t t tt ¡t t¡t t¡@ ƒdu sPJ ‚t t tt ¡t t¡t t¡@ ƒd u s~J ‚t t tt ¡t t¡t t¡@ ƒdu s¬J ‚t t tt ¡t t¡t t¡@ ƒdu sÚJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t tt ¡t 
t¡t t¡@ ƒd u s6J ‚t t tt ¡t 
t¡t t¡@ t t¡ @ ƒdu spJ ‚t t tt ¡t t¡t t¡@ ƒd u sžJ ‚t t tt ¡t 
t¡t t¡@ t dt ¡@ ƒdu sÚJ ‚t t tt ¡t 
t¡t t¡@ t dt ¡ @ ƒdu sJ ‚t t tt ¡t 
t¡t t¡@ ƒd u sFJ ‚t t tt ¡t t¡t t¡@ t dt ¡ @ ƒdu s„J ‚t t tt ¡t t¡t t¡@ t dt ¡@ ƒd u sÀJ ‚t t ttƒ¡ƒdu sÜJ ‚t t tdt ƒ¡ƒdu süJ ‚t t ttd ƒ¡ƒdu sJ ‚t t ttƒ¡t t¡ƒd u s@J ‚t t ttƒ¡t t¡ƒd u sdJ ‚t t ttƒ¡t t¡ƒdu sˆJ ‚t t tttƒƒ¡t t¡ƒd u s°J ‚t t tttƒƒ¡t t¡ƒd u sØJ ‚t t tttƒƒ¡ƒdu søJ ‚t t ttƒt ¡t t¡ƒdu 	s J ‚tttt t ddtdd} t t | ¡t t¡ƒdu 	s^J ‚tttt t d ddtdd} t t | ¡t t¡ƒdu 	s J ‚t t tdt t t ƒt ¡t t¡ƒdu 	sÔJ ‚t t tdt t dd¡ƒdu 	süJ ‚t t ttt d dd¡ƒdu 
s$J ‚t t tttddƒƒ¡t t¡t 
t¡@ ƒdu 
sZJ ‚d S )	NFrE   Tr€   r   r›   ry   rz   )r   r   rM   r   rJ   rS   r   r   rK   r   rO   rN   rP   rQ   rH   rI   r/   r.   r%   r#   r    ©r   rX   rX   rY   Útest_imaginary  s–    """"....,ÿÿ
ÿÿ
ÿÿ
$$$..$$$$$($............:.<>.><  $$$(( ( " 4((r¥   c                   C   s  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s4J ‚t t t¡t t¡ ƒdu sTJ ‚t t t¡t t¡ ƒdu stJ ‚t t t¡t t¡ ƒd u s”J ‚t t t¡t t¡t t¡B ƒdu s¼J ‚t t dt ¡t t¡ƒdu sÞJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s&J ‚t t dt ¡t 	t¡ƒd u sJJ ‚t t dt ¡t t¡ƒd u snJ ‚t t t
dƒt ¡t t¡ƒdu s–J ‚t t t
dƒt ¡t t¡ƒd u s¾J ‚t t td ¡t t¡ƒdu sâJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒd u s*J ‚t t td ¡t t¡ƒd u sNJ ‚t t ttƒ¡t t¡ƒdu srJ ‚t t tt ƒ¡t t¡ƒdu s˜J ‚t t ttƒ¡t t¡ ƒd u s¾J ‚t t ttƒ¡t t¡ƒd u sâJ ‚t t tttt  ƒ¡t t¡t t¡@ ƒd u sJ ‚t t tt ¡t t¡t t¡@ ƒd u sFJ ‚t t dt ¡t t¡ƒd u sjJ ‚t t tt ¡t t¡t t¡@ ƒd u s˜J ‚t t t
dƒ¡ƒdu s´J ‚t t tt ¡t t¡t t¡@ ƒdu sâJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒdu sJ ‚t t dt  ¡t t¡ƒdu s@J ‚t t tt ¡t t¡t t¡@ t t¡@ ƒdu sxJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒdu s°J ‚t t tt ¡t t¡ƒdu sÔJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚d S )NTFr€   ry   rE   r{   )r   r   rH   r   rJ   rN   rP   rQ   rS   rI   r0   rL   r*   rK   r   r   rb   rc   r#   rM   rX   rX   rX   rY   Útest_integera  sB       ("$$$$(($$$$$&&$6.$..8&88$r¦   c                   C   sT  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s<J ‚t t t¡t t¡ ƒdu s\J ‚t t t¡t t¡ƒdu szJ ‚t t t¡t t¡ ƒd u sšJ ‚t t t ¡t t¡ƒdu sºJ ‚t t t ¡t t¡ ƒd u sÜJ ‚t t t ¡t t¡ƒdu süJ ‚t t t ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu sBJ ‚t t tt ¡ƒd u s^J ‚t t tt ¡t t¡ƒd u s‚J ‚t t tt ¡t t¡t t¡@ ƒdu s°J ‚t t tt ¡t t¡t t¡@ ƒdu sÞJ ‚t t dt	 ¡ƒdu súJ ‚t t t
t	ƒd tt	ƒd  d ¡ƒd u s*J ‚t t t	 t	t
dƒd tdƒd    ¡ƒd u s`J ‚t t td ¡ƒd u s|J ‚t t td ¡t t¡ƒdu s J ‚t t td ¡t t¡ƒd u sÄJ ‚t t tt	 ¡t t¡ƒd u sèJ ‚t t tt ¡ƒd u sJ ‚t t tt ¡t t¡t t¡@ ƒdu s2J ‚t t tt ¡t t¡t t¡@ ƒdu s`J ‚t t tt ¡t t¡t t¡@ ƒd u sŽJ ‚t t tt ¡ƒd u sªJ ‚t t tt ¡t t¡t t¡@ ƒdu sØJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s4J ‚t t ttƒ¡ƒdu sPJ ‚d S )NTFrE   r€   gffffffö?)r   r   rO   r   rN   rJ   rS   r   Únonpositiver   r5   r7   rK   rP   rQ   rH   r*   rX   rX   rX   rY   Útest_negative‹  s<       " "$$..06$$$......r¨   c                   C   s¬  t t t¡ƒd u sJ ‚t t t¡t t¡ƒd u s4J ‚t t t¡t t¡ƒdu sRJ ‚t t t¡t t¡ƒdu spJ ‚t t t¡t t¡t t¡B ƒdu s˜J ‚t t tt ¡ƒd u s²J ‚t t tt ¡t t¡t t¡@ ƒdu sÞJ ‚t t tt ¡t t¡t t¡@ ƒd u sJ ‚t t tt ¡t t¡t t¡@ ƒdu s:J ‚t t dt ¡ƒd u sVJ ‚t t dt ¡t t¡ƒdu szJ ‚t t dt ¡t t¡ƒdu sžJ ‚t t tt ¡t t¡ƒd u sÂJ ‚t t tt ¡t t¡t t¡@ ƒdu sðJ ‚t t tt ¡t t¡ƒdu sJ ‚t t ttƒ¡ƒd u s0J ‚t t ttƒ¡t t¡ƒdu sTJ ‚t t t	t
dt ƒƒ¡ƒdu sxJ ‚t t tdƒd tdƒd  d ¡ƒd u s¨J ‚d S )NTr€   FrE   )r   r   rb   r   rJ   rN   rO   r   r*   r/   r.   r   r5   r7   rX   rX   rX   rY   Útest_nonzeroµ  s&    (,..$$$.$$$r©   c                   C   sþ  t t t¡ƒd u sJ ‚t t t¡t t¡ƒd u s4J ‚t t t¡t t¡ƒdu sRJ ‚t t t¡t t¡ƒdu spJ ‚t t t¡t t¡t t¡B ƒdu s˜J ‚t t t¡t t¡t t¡@ ƒdu sÀJ ‚t t tt	 ¡ƒd u sÚJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu sJ ‚t t tt	 ¡t t¡t t	¡@ ƒd u s6J ‚t t tt	 ¡t t¡t t	¡@ ƒdu sdJ ‚t t dt ¡ƒd u s€J ‚t t dt ¡t t¡ƒdu s¤J ‚t t dt ¡t t¡ƒdu sÈJ ‚t t tt	 ¡t 
t¡ƒd u sìJ ‚t t ttƒ¡ƒd u sJ ‚t t ttƒ¡t t¡ƒdu s,J ‚t t t¡t t¡ƒdu sLJ ‚t t t¡t t¡ƒdu slJ ‚t t t¡t t¡ƒdu sŒJ ‚t t t¡t t¡ƒd u s¬J ‚t t t¡t t¡ƒdu sÌJ ‚t t t¡t t	¡B t tt	 ¡ƒdu súJ ‚d S )NFTr€   )r   r   rc   r   rJ   rN   rO   Únonnegativer§   r   rb   r*   rH   rP   rQ   rX   rX   rX   rY   Ú	test_zeroÒ  s,    ((...$$$$     r«   c                   C   s	  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s4J ‚t t t¡t t¡ƒd u sRJ ‚t t t¡t t¡ ƒdu srJ ‚t t t¡t t¡ƒd u sJ ‚t t t¡t t¡ƒd u s®J ‚t t t ¡t t¡ƒdu sÎJ ‚t t dt ¡ƒd u sèJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s0J ‚t t dt ¡t t¡ƒdu sTJ ‚t t dt ¡t t¡ ƒd u szJ ‚t t dt ¡t t¡ƒd u sžJ ‚t t td ¡t t¡ƒd u sÂJ ‚t t td ¡t t¡ƒd u sæJ ‚t t td ¡t t¡ƒdu s
J ‚t t td ¡t t¡ƒdu s.J ‚t t td ¡t t¡ƒdu sRJ ‚t t dt ¡t t¡ƒdu svJ ‚t t dt ¡t t¡ƒdu sšJ ‚t t dt ¡t t¡ƒdu s¾J ‚t t dt ¡t t¡ƒdu sâJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu sJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu s>J ‚t t tt	 ¡t t¡t t	¡@ ƒdu slJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu sšJ ‚t t tt	 t
 ¡t t¡t t	¡@ t t
¡@ ƒdu sÖJ ‚t t tt	 t
 t ¡t t¡t t	¡@ t t
¡@ t t¡@ ƒd u s J ‚t t dt d ¡t t¡ƒdu sHJ ‚t t dt t	 ¡t t¡t t	¡@ ƒdu szJ ‚t t dt t	 ¡t t¡t t	¡@ ƒdu s¬J ‚t t dt t	 ¡t t¡t t	¡@ ƒd u sÞJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu sJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu s:J ‚t t dt t	 ¡t t¡t t¡@ ƒd u slJ ‚t t dt t	 ¡t t¡t t¡@ ƒd u sžJ ‚t t ttƒ¡t t¡ƒdu sÂJ ‚t t dt ¡t t¡ƒdu sæJ ‚t t td ¡t t¡ƒdu s
J ‚t t td ¡t t¡ƒdu s.J ‚t t dt ¡t t¡ƒd u sRJ ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u sŒJ ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒdu sÆJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒdu sþJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒdu s6J ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u spJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒd u s¨J ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u sâJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒd u sJ ‚t t tt ¡t t¡ƒd u s>J ‚t t tt ¡t t¡ƒd u sbJ ‚t t tt	 ¡t t¡t t	¡@ ƒd u sJ ‚t t tt ¡t t¡ƒd u s´J ‚t t ttt	  ¡t t¡t t	¡@ ƒdu sæJ ‚t t ttt	  ¡t t¡t t	¡@ ƒd u 	sJ ‚d S )NTFr€   ry   rE   re   )r   r   rQ   r   rH   rI   rN   rL   rP   r   r   r   r*   r   r   r	   rO   r
   rX   rX   rX   rY   Útest_odd_queryð  sv      $$$&$$$$$$$$$$....<&ÿÿ
(222..22$$$$$::88:8:8$$.$2r¬   c                   C   s€   t t tt tt  ¡t t¡t t¡@ t t¡@ ƒdu s>J ‚t t tt tt  ¡t t¡t t¡@ t t¡@ ƒdu s|J ‚d S ©NF)r   r   rQ   r   r   r   rH   rX   rX   rX   rY   Ú0test_oddness_in_ternary_integer_product_with_odd:  s    >r®   c                   C   sB   t t tt tt  ¡t t¡t t¡@ t t¡@ ƒd u s>J ‚d S rŽ   )r   r   rQ   r   r   r   rH   rP   rX   rX   rX   rY   Ú1test_oddness_in_ternary_integer_product_with_evenC  s    r¯   c                   C   s@  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ ƒdu s>J ‚t t t¡t t¡ƒd u s\J ‚t t t¡t t¡ ƒdu s|J ‚t t dt ¡t t¡ƒd u sžJ ‚t t tt ¡ƒd u s¸J ‚t t tt ¡t t¡ƒd u sÚJ ‚t t tt ¡t t¡t t¡@ ƒd u sJ ‚t t dt ¡t t¡ƒdu s,J ‚t t dt ¡ƒd u sHJ ‚t t td ¡t t¡ƒdu slJ ‚t t td ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s´J ‚t t tt ¡t t¡t t¡@ t td¡@ ƒdu sîJ ‚t t tt ¡t t¡t 	t¡@ ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒd u sJJ ‚t t dt ¡t t¡ƒd u snJ ‚t t tt ¡t t¡t t¡@ ƒd u sœJ ‚t t tt ¡t t¡t 
td¡@ ƒd u sÌJ ‚t t tt ¡t t¡t t¡@ t td¡@ t td¡@ ƒd u sJ ‚t t ttddd¡t t¡ƒdu s<J ‚d S )NTFr€   rz   rE   r   r›   )r   r   rS   r   rH   r   r
   Úner   rT   r   ÚgtÚltr%   rX   rX   rX   rY   Ú
test_primeG  s*      "".$$$$:..$.0Fr³   c                  C   s&  t t ttƒd ttƒd  d ¡ƒd u s.J ‚t t t¡t t¡ƒdu sLJ ‚t t t¡t t¡ƒdu sjJ ‚t t t¡t t¡ƒd u sˆJ ‚t t t ¡t t¡ƒdu s¨J ‚t t t ¡t t¡ƒdu sÈJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu sôJ ‚t t tt	 ¡t t¡t 
t	¡@ ƒdu s"J ‚t t tt	 ¡t t¡t t	¡@ ƒd u sPJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu s~J ‚t t dt ¡t t¡ƒdu s¢J ‚t t¡t t	¡@ t t¡@ t t¡@ } t t tt	 t ¡ƒd u sêJ ‚t t tt	 t ¡| ƒdu sJ ‚t t t t	 t ¡| ƒdu s0J ‚t t tt ¡t t¡ƒd u sTJ ‚t t td ¡t t¡ƒdu sxJ ‚t t td ¡t t¡ƒdu sœJ ‚t t td ¡t t¡ƒdu sÀJ ‚t t ddtd   ¡t t¡ƒdu sìJ ‚t t dt ¡ƒdu sJ ‚t t dt ¡ƒdu s$J ‚t t ttƒd ttƒd  d ¡ƒd u sTJ ‚t t t ttdƒd tdƒd    ¡ƒd u sŠJ ‚t t ttƒ¡t t¡ƒdu s®J ‚t t ttƒ¡ t t¡ƒdu sÔJ ‚t t tttƒ ¡t t¡ƒd u süJ ‚t t ttƒ¡t t¡ƒd u s J ‚t t tdt t dd¡t t¡ƒdu sPJ ‚t t ttt dd¡t t¡ƒdu s|J ‚t t ttt t ƒ¡t t¡ƒdu s¨J ‚t t ttt t ƒ¡t t¡ƒdu sÔJ ‚t t ttt t ƒ¡t t¡ƒd u s J ‚t t ttƒ¡t t¡ƒdu s$J ‚t t ttƒ¡t t¡ƒdu sHJ ‚t t ttƒ¡t t¡ƒd u slJ ‚t t ttd ƒ¡t t¡ƒdu s”J ‚t t ttƒ¡t t¡t t¡@ ƒs¾J ‚t t ttƒ¡t t¡ƒd u sâJ ‚t t ttƒ¡ƒd u sþJ ‚t t ttƒ¡t t¡ƒdu s"J ‚d S )Nr€   rE   TFry   r›   )r   r   rN   r5   r   r7   r   rO   rb   r   rª   rM   r   r   rJ   r.   r#   rP   rQ   r/   r)   rH   r*   ©ÚassumptionsrX   rX   rY   Útest_positiveg  sR    .  ,...$( "$$$$$,06$&($0,,,,$$$(*$r¶   c                   C   s°   t t d¡ƒsJ ‚t t d¡ƒs$J ‚t t d¡ƒdu s:J ‚t t t¡ t t¡ƒsVJ ‚t t t¡t t¡ƒdu stJ ‚t t tdƒ¡ƒdu sŽJ ‚t t t¡t t¡ƒdu s¬J ‚d S )Nre   r   rE   F)r   r   r§   rN   r   r0   rM   rX   rX   rX   rY   Útest_nonpositive£  s    r·   c                   C   s°   t t d¡ƒdu sJ ‚t t d¡ƒs(J ‚t t d¡ƒs:J ‚t t t¡ t t¡ƒsVJ ‚t t t¡t t¡ƒdu stJ ‚t t tdƒ¡ƒdu sŽJ ‚t t t¡t t¡ƒdu s¬J ‚d S )Nre   Fr   rE   )r   r   rª   rO   r   r0   rM   rX   rX   rX   rY   Útest_nonnegative­  s    r¸   c                   C   s8  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s4J ‚t t t¡t t¡ƒdu sRJ ‚t t t¡t t¡ƒdu spJ ‚t t t¡t t¡ƒdu sŽJ ‚t t t¡t t¡ƒdu s¬J ‚t t t¡t t¡ƒdu sÊJ ‚t t t¡t 	t¡ƒdu sèJ ‚t t tt
dƒ ¡t t¡ƒdu sJ ‚t t tt
dƒ ¡t t¡ƒdu s8J ‚t t td ¡t t¡ƒdu s\J ‚t t tt ¡t t¡ƒdu s€J ‚t t tt ¡t t¡ƒd u s¤J ‚t t dt ¡t t¡ƒdu sÈJ ‚t t tt ¡t t¡ƒdu sìJ ‚t t tt ¡t t¡ƒdu sJ ‚t t tt ¡t t¡ƒd u s4J ‚d S )NTr€   éþÿÿÿFrE   )r   r   rJ   r   rb   rN   rO   rH   rP   rS   r0   r   rK   rM   rX   rX   rX   rY   Útest_real_basic¶  s"    (($$$$$$rº   c                   C   s"  t t td ¡t t¡ƒdu s"J ‚t t ttƒ¡t t¡ƒdu sDJ ‚t t tt ¡t t¡t t¡@ ƒd u spJ ‚t t tt ¡t t¡t t¡@ ƒd u sœJ ‚t t tt ¡t t¡t t¡@ ƒdu sÈJ ‚t t tt ¡t 	t¡t 	t¡@ ƒd u sôJ ‚t t tt ¡t 	t¡t t¡@ ƒd u s"J ‚t t tt ¡t t¡t 	t¡@ ƒd u sPJ ‚t t td ¡t 	t¡ƒdu stJ ‚t t tt ¡t t¡t t¡@ ƒdu s¢J ‚t t tt ¡t t¡t 
t¡@ ƒd u sÐJ ‚t t tt ¡t 	t¡t t¡@ ƒd u sþJ ‚t t tt ¡t 	t¡t t¡@ ƒdu s,J ‚t t tt ¡t 	t¡t t¡@ ƒdu sZJ ‚t t ttt  ¡t t¡t tt ¡@ t 
tt ¡@ t t¡@ t t¡@ ƒdu s²J ‚t t ttt  ¡t t¡t 
tt ¡@ t t¡@ t t¡@ ƒd u süJ ‚t t ttt  ¡t t¡t tt ¡@ ƒd u s2J ‚t t ttt  ¡t t¡t tt ¡@ t t¡@ ƒdu srJ ‚t t ttt  ¡t t¡t tt ¡@ t t¡@ ƒd u s²J ‚t t t t ¡t 	t¡ƒdu sØJ ‚t t tt ¡t 	t¡ƒdu süJ ‚t t tt ¡t 	t¡ƒd u s J ‚t t tt ¡t 	t¡ƒd u sDJ ‚t t ttt ttƒ  ¡t t¡ƒdu stJ ‚t t tt ¡t t¡t t¡@ ƒd u s¢J ‚t t dttƒ ¡ƒd u sÂJ ‚t t tt ¡t t¡t t¡@ ƒd u sðJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚d S )Nr€   TFr   rE   )r   r   rJ   r   r0   rO   r   rH   rN   rM   rI   rQ   rP   r   r   r   r#   r/   r   r
   r*   rc   rX   rX   rX   rY   Útest_real_powÍ  s8    "",,,,..$.....XJ6@@&$$$0. .r»   c                  C   s  t t ttƒ¡ƒd u sJ ‚t t ttƒ¡ƒd u s4J ‚t t ttƒ¡t t¡ƒdu sVJ ‚t t ttƒ¡t t¡ƒdu sxJ ‚t t ttƒ¡ƒd u s’J ‚t t ttƒ¡t t¡ƒdu s´J ‚t t tttƒ ¡t t¡ƒdu sÚJ ‚t t tdt t dd¡ƒdu sJ ‚t t ttt dd¡ƒdu s&J ‚t t ttt d dd¡ƒdu sNJ ‚t t t	tƒ¡ƒdu sjJ ‚t t t	dt ƒ¡ƒdu sŠJ ‚t t t	td ƒ¡ƒdu sªJ ‚t t t	tƒ¡t 
t¡ƒd u sÎJ ‚t t t	tƒ¡t t¡ƒdu sòJ ‚t t t	ttƒƒ¡t t¡ƒd u sJ ‚t t t	ttƒƒ¡t 
t¡ƒd u sBJ ‚ttdt t t ddtdd} t t | ¡t t¡ƒdu s„J ‚t t ttƒt ¡t t¡ƒdu s¬J ‚t t ttƒt ¡t 
t¡ƒd u sÔJ ‚t t ttƒ¡ƒdu sðJ ‚t t ttƒ¡ƒdu sJ ‚d S )NTr€   Fr›   rE   )r   r   rJ   r7   r   r5   r.   r#   r   r/   rK   rM   r%   rH   r,   r+   r¤   rX   rX   rY   Útest_real_functionsð  s.    """&($(  $$((" ((r¼   c               	   C   sB  t t tddt dgdt dtgdt dggƒ¡ƒdks<J ‚t t tddt dgdt dtgdt dggƒ¡ƒdksxJ ‚tddd} t t tddt | gdt dtgdt dggƒ¡ƒd ksÀJ ‚t t td	ƒ¡ƒdksÚJ ‚t t td
dtdfdfƒ¡ƒdksJ ‚t t td
d| dfdfƒ¡ƒd ks*J ‚tddt dgdt dt gdt dggƒ}tt dt dgdt ddt gddt t ggƒ}t t |¡ƒdu s¢J ‚t t |¡ƒdu sºJ ‚t t |d ¡ƒdu sÖJ ‚|d }| ¡  t t |¡ƒdu sþJ ‚tddt dg| dt gdt dggƒ}t t |¡ƒd u s>J ‚d S )Nr€   rz   ry   rE   TFr   ©rK   )©é   é   r}   )rÀ   é   r   ©r}   r   r[   r¾   rÀ   r   rÂ   r¹   )	r   r   rU   r>   r   r'   r?   rV   Zsimplify)r   ÚAÚBÚCZ_ArX   rX   rY   Útest_matrix  s"    <<<((,4(rÆ   c               	   C   sÖ  t t t¡ƒd u sJ ‚t t t¡ƒdu s,J ‚t t dt ¡ƒdu sFJ ‚t t td ¡ƒdu s`J ‚t t tdƒ¡ƒdu szJ ‚t t dtdƒ ¡ƒdu s˜J ‚t t tdƒd ¡ƒdu s¶J ‚t t ttdƒ ¡ƒdu sÔJ ‚t t tdttdƒ  ƒ¡ƒdu súJ ‚t t dttdƒtddƒ   ¡ƒdu s(J ‚t t dttdƒdt    ¡ƒd u sTJ ‚tt	t
tttfD ]´} t t | dƒ¡ƒdu s„J ‚t t | ddd	¡ƒdu s¤J ‚t t | d
dd	¡ƒdu sÄJ ‚t t | tƒ¡t t¡ƒd u sèJ ‚t t | tƒ¡t t¡t t¡@ ƒdu sdJ ‚qdttfD ]¸}t t |dƒ¡ƒdu sBJ ‚t t |ddd	¡ƒdu sbJ ‚t t |ddd	¡ƒdu s‚J ‚t t |tƒ¡t t¡ƒd u s¦J ‚t t |tƒ¡t t¡t td ¡@ ƒdu s"J ‚q"ttfD ]f}t t |dƒ¡ƒdu sJ ‚t t |ddd	¡ƒdu s$J ‚t t |tƒ¡t t¡ƒdu säJ ‚qät t tt	dƒƒ¡ƒd u slJ ‚t t ttttdƒ  ƒ¡ƒd u s”J ‚t t d¡ƒdu s¬J ‚t t t¡t t¡ƒdu sÌJ ‚t t t¡t t¡ƒdu sìJ ‚t t tdtdd	¡t t¡ƒd u sJ ‚t t tttƒ¡ƒd u s4J ‚t t tdtdd	¡ƒd u sVJ ‚t t ttt  ¡ƒd u svJ ‚t t tt ¡t t¡t t¡@ ƒdu s¤J ‚t t tt ¡t t¡t t¡@ ƒdu sÒJ ‚d S )NTr€   ry   r•   rE   é   é   Fr›   r   gÃõ(\Â@)r   r   rh   r   r   r0   r    r#   r.   r7   r8   r3   r4   r5   rb   r/   r1   r6   r2   r   Útranscendentalr%   r   rH   rN   rI   rž   rX   rX   rY   Útest_algebraic*  sL    &.,  $2  $6 ( (  *" .rÊ   c                   C   s^   t t t¡ƒdu sJ ‚t t t¡¡ t t t¡ƒdu s<J ‚t ¡  t t t¡ƒdu sZJ ‚dS )z Test ask with global assumptionsNT)r   r   rH   r   r   ÚaddÚclearrX   rX   rX   rY   Útest_global`  s
    rÍ   c                  C   s`   t t t¡ƒdu sJ ‚tƒ } |  t t¡¡ t t t¡| ddu sFJ ‚t t t¡ƒdu s\J ‚dS )z(Test ask with custom assumptions contextN)ÚcontextT)r   r   rH   r   r   rË   )Zlocal_contextrX   rX   rY   Útest_custom_contexti  s
    rÏ   c                   C   s€   t t t¡t t¡t t¡? ƒdu s(J ‚t t t¡tt t¡t t¡ƒƒdu sRJ ‚t t t¡tt t¡t t¡ƒƒdu s|J ‚d S r­   )r   r   rO   r   rJ   rN   r9   r;   rX   rX   rX   rY   Útest_functions_in_assumptionsr  s    (*rÐ   c                   C   s8   t t t¡t t¡@ t t¡t t¡? ddu s4J ‚d S )Nr´   F)r   r   rO   r   rH   rJ   rN   rX   rX   rX   rY   Útest_composite_askx  s
    ÿÿrÑ   c                   C   s&  t dƒdu sJ ‚t dƒdu s J ‚t t t¡ t t¡ƒdu s@J ‚t t t¡ t t¡ƒd u s`J ‚t t t¡t t¡@ t t¡ƒdu sˆJ ‚t t t¡t t¡@ ƒd u s¨J ‚t t t¡t t¡B t t¡ƒdu sÐJ ‚t t t¡t t¡B ƒd u sðJ ‚t t t¡t t¡? t t¡ƒdu sJ ‚t tt t¡t t¡ddt t¡ƒdu sJJ ‚t tt t¡t t¡ddƒd u srJ ‚t t	t t¡t 
t¡ƒt 
t¡ƒdu sžJ ‚t t	t t¡t 
t¡ƒƒd u sÂJ ‚t t	t t¡t t¡ƒt t¡ƒd u sîJ ‚t t t¡t t¡B t t¡t t¡B ƒdu s"J ‚d S )NTFr›   )r   r   rO   r   rN   rJ   rG   rH   r:   r9   rP   rX   rX   rX   rY   Útest_composite_proposition}  s*      ( ( *ÿÿÿ
(,$,rÒ   c                   C   sH   t t t¡t t¡ B ƒdu s"J ‚t t t¡t t¡ @ ƒdu sDJ ‚d S rg   )r   r   rJ   r   rX   rX   rX   rY   Útest_tautology  s    "rÓ   c                   C   s¦   t t t¡t t¡t t¡@ ƒdu s(J ‚t t t¡t t¡t t¡B ƒd u sPJ ‚t t t¡t t¡t t¡? ƒd u sxJ ‚t t t¡t t¡t t¡?  ƒdu s¢J ‚d S rt   )r   r   rJ   r   r   rN   rX   rX   rX   rY   Útest_composite_assumptions“  s    (((rÔ   c                  C   sÌ  t tdd„ ƒ G dd„ dtƒ} zätƒ  td| ƒ W d  ƒ n1 sF0    Y  tƒ & tt t¡ƒdu snJ ‚W d  ƒ n1 s‚0    Y  tƒ * tt td ¡ƒdu s®J ‚W d  ƒ n1 sÂ0    Y  W tƒ  t	d| ƒ W d  ƒ n1 sô0    Y  t`n8tƒ  t	d| ƒ W d  ƒ n1 s,0    Y  t`0 t td	d„ ƒ G d
d„ dt
ƒ}zX|ƒ t_tj t¡dd„ ƒ}tt t¡ƒdu sJ ‚tt td ¡ƒdu s¬J ‚W t`nt`0 t tdd„ ƒ dS )z7test that you can add keys to the ask system at runtimec                   S   s   t t t¡ƒS rŽ   ©r   r   Úmy_keyr   rX   rX   rX   rY   Ú<lambda>œ  ó    z(test_key_extensibility.<locals>.<lambda>c                   @   s   e Zd Zedd„ ƒZdS )z,test_key_extensibility.<locals>.MyAskHandlerc                 S   s   dS rt   rX   ©Úexprrµ   rX   rX   rY   r(      s    z3test_key_extensibility.<locals>.MyAskHandler.SymbolN)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr(   rX   rX   rX   rY   ÚMyAskHandlerŸ  s   rß   rÖ   NTrE   c                   S   s   t t t¡ƒS rŽ   rÕ   rX   rX   rX   rY   r×   °  rØ   c                   @   s   e Zd ZdS )z+test_key_extensibility.<locals>.MyPredicateN©rÛ   rÜ   rÝ   rX   rX   rX   rY   ÚMyPredicate³  s   rá   c                 S   s   dS rt   rX   rÙ   rX   rX   rY   Ú_·  s    z!test_key_extensibility.<locals>._c                   S   s   t t t¡ƒS rŽ   rÕ   rX   rX   rX   rY   r×   ¾  rØ   )rB   ÚAttributeErrorr   rC   r   r   r   rÖ   r   r   r   Úregisterr(   )rß   rá   râ   rX   rX   rY   Útest_key_extensibility™  s2    (4:(þ*

rå   c                  C   sL   ddl m}  G dd„ d| ƒ}tj |¡dd„ ƒ}tt |ƒ ¡ƒdu sHJ ‚dS )	zBtest that new types can be added to the ask system at runtime
    r   )ÚBasicc                   @   s   e Zd ZdS )z'test_type_extensibility.<locals>.MyTypeNrà   rX   rX   rX   rY   ÚMyTypeÆ  s   rç   c                 S   s   dS rt   rX   rÙ   rX   rX   rY   râ   É  s    z"test_type_extensibility.<locals>._TN)Z
sympy.coreræ   r   rS   rä   r   )ræ   rç   râ   rX   rX   rY   Útest_type_extensibilityÁ  s
    

rè   c                  C   sr   t ttjtjƒttjtjƒttjtjƒƒ} tjtjtjtjh}t| ƒ}t||ƒ}|tj tjtjtjhksnJ ‚d S rŽ   )	r<   r:   r   rH   rI   rJ   rK   r=   r   )Úknown_factsÚknown_facts_keysZknown_facts_cnfÚmappingrX   rX   rY   Útest_single_fact_lookupÐ  s    þ
rì   c               
   C   sÔ   t tt t¡t t¡ƒtt t¡t t¡ƒtt t¡t t¡ƒƒ} t t¡t t¡t t¡t t¡h}t|| ƒtjtjht	ƒ ftjtjtjtjtjht	ƒ ftjtjtjtjht	ƒ ftjtjtjht	ƒ fiksÐJ ‚d S rŽ   )
r<   r:   r   rH   r   rI   rJ   rK   r   Úset)ré   rê   rX   rX   rY   Útest_generate_known_facts_dictÜ  s    þ$ýÿrî   c                     st   t dƒ‰ tˆ ƒ} t | ¡}tƒ }| dd„ |jD ƒ¡ tƒ |ksDJ ‚‡ fdd„tƒ D ƒ}t	|| ƒ}t
ƒ |kspJ ‚dS )z)"Test that ask_generated.py is up-to-dater   c                 s   s(   | ] }t d d„ t|tdD ƒƒV  qdS )c                 s   s   | ]}t |jj|jƒV  qd S rŽ   )r   ÚargÚfunctionZis_Not)Ú.0ZlitrX   rX   rY   Ú	<genexpr>ñ  rØ   z8test_known_facts_consistent.<locals>.<genexpr>.<genexpr>)ÚkeyN)Ú	frozensetÚsortedÚstr)rñ   ZclrX   rX   rY   rò   ñ  rØ   z.test_known_facts_consistent.<locals>.<genexpr>c                    s   g | ]}|ˆ ƒ‘qS rX   rX   )rñ   Úpred©r   rX   rY   Ú
<listcomp>ô  rØ   z/test_known_facts_consistent.<locals>.<listcomp>N)r(   r   r   Zto_CNFrí   ÚupdateÚclausesr   r   r   r   )ZfactZcnfrû   Úkeysrë   rX   rø   rY   Útest_known_facts_consistenté  s    

rý   c                   C   sª   t t dtdƒd tdƒd   ¡ƒdu s.J ‚t t ttdƒtdƒdd¡ƒdu sVJ ‚t t ttdƒtdƒdd¡ƒdu s~J ‚t t ttdƒtdƒdd¡ƒdu s¦J ‚d S )Nl   Ò
>V3&¥Z
 rE   r€   TFr›   )	r   r   rS   r5   r7   rP   r   r$   rH   rX   rX   rX   rY   Útest_Add_queriesù  s    .((rþ   c                   C   sH   t t td ¡ƒ" tt t¡ƒr&J ‚W d   ƒ n1 s:0    Y  d S )NrE   )r   r   rN   r   r   rX   rX   rX   rY   Útest_positive_assuming 	  s    rÿ   c                   C   s   t tdd„ ƒ d S )Nc                   S   s   t tttƒ tjƒS rŽ   )r   r#   r/   r   r   rJ   rX   rX   rX   rY   r×   	  rØ   z!test_issue_5421.<locals>.<lambda>©rB   Ú	TypeErrorrX   rX   rX   rY   Útest_issue_5421	  s    r  c                   C   s   t tdd„ ƒ d S )Nc                   S   s
   t tjƒS rŽ   )r   r   rN   rX   rX   rX   rY   r×   
	  rØ   z!test_issue_3906.<locals>.<lambda>r   rX   rX   rX   rY   Útest_issue_3906		  s    r  c                   C   sR   t t ttƒd ¡t t¡ƒd u s&J ‚t t ttƒd ¡ t t¡ƒdu sNJ ‚d S )Nr€   T)r   r   rN   r/   r   rO   rX   rX   rX   rY   Útest_issue_5833	  s    &r  c                   C   s    t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s    t t t¡t t¡t t¡@ ƒS rŽ   )r   r   rN   r   rO   rX   rX   rX   rY   r×   	  rØ   z!test_issue_6732.<locals>.<lambda>c                   S   s    t t t¡t t¡t t¡@ ƒS rŽ   )r   r   rO   r   rN   rX   rX   rX   rY   r×   	  rØ   )rB   Ú
ValueErrorrX   rX   rX   rY   Útest_issue_6732	  s    r  c                   C   sx  t t ttƒ¡t t¡ƒdu s"J ‚t t ttƒ¡t t¡ƒdu sDJ ‚t t ttƒ¡t t¡ƒdu sfJ ‚t t ttƒ¡ƒd u s€J ‚t t ttƒ¡t t¡ƒd u s¢J ‚t t ttƒ¡t t¡ƒd u sÄJ ‚t t tt	ddƒƒ¡ƒdu säJ ‚t t ttƒ¡t t¡t 
td ¡@ ƒdu sJ ‚t t ttƒ¡t t¡t td ¡@ ƒdu sHJ ‚t t ttƒ¡t t¡ƒd u slJ ‚t t tt	ddƒƒ¡ƒdu sŽJ ‚t t ttƒ¡t td ¡t 
td ¡@ ƒdu sÄJ ‚t t ttƒ¡t td ¡ƒd u sìJ ‚t t ttƒ¡t t¡ƒdu sJ ‚t t ttƒ¡t t¡ƒdu s4J ‚t t ttƒ¡t t¡ƒdu sXJ ‚t t ttƒ¡ƒd u stJ ‚d S )NTFrE   r•   )r   r   rN   r4   r
   rO   rc   r   r3   r    r§   rª   r1   r2   rJ   rM   rX   rX   rX   rY   Útest_issue_7246	  s"    """"" 22$"6($$$r  c                   C   s&   t t ttƒ¡t t¡ƒdu s"J ‚d S rt   )r   r   rN   r1   r   rc   rX   rX   rX   rY   Útest_issue_7246_failing.	  s    r  c                  C   sî  t ddd} tt | ¡ƒdu s"J ‚tt | ¡ƒdu s8J ‚tt | ¡ƒdu sNJ ‚t ddd} tt | ¡ƒdu spJ ‚tt | ¡ƒdu s†J ‚tt | ¡ƒdu sœJ ‚t ddd} tt | ¡ƒd u s¾J ‚tt | ¡ƒdu sÔJ ‚t ddd} tt | ¡ƒdu söJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s&J ‚t ddd} tt | ¡ƒdu sJJ ‚t ddd	} tt | ¡ƒdu snJ ‚tt | ¡ƒdu s†J ‚t ddd
} tt | ¡ƒdu sªJ ‚tt | ¡ƒd u sÂJ ‚tt 	| ¡ƒd u sÚJ ‚t ddd} tt 
| ¡ƒdu sþJ ‚t ddd} tt | ¡ƒdu s"J ‚tt | ¡ƒdu s:J ‚t ddd} tt | ¡ƒdu s^J ‚tt | ¡ƒdu svJ ‚t ddd} tt | ¡ƒdu sšJ ‚tt | ¡ƒdu s²J ‚t ddd} tt | ¡ƒdu sÖJ ‚tt | ¡ƒdu sîJ ‚t ddd} tt | ¡ƒdu sJ ‚tt 	| ¡ƒdu s*J ‚t ddd} tt 	| ¡ƒdu sNJ ‚t ddd} tt | ¡ƒdu srJ ‚t ddd} tt | ¡ƒdu s–J ‚tt | ¡ƒdu s®J ‚t ddd} tt | ¡ƒdu sÒJ ‚tt | ¡ƒdu sêJ ‚d S )Nr   T)rJ   F)rM   r½   )rN   )rG   )rO   )rª   )rR   )rS   )rT   )rP   )rQ   )rb   )rc   ©rH   )rI   )rL   )r'   r   r   rJ   rM   rK   rN   rO   rG   rc   rR   rS   rT   rP   rQ   rb   rH   rI   rL   rø   rX   rX   rY   Útest_check_old_assumption5	  sf    r
  c                   C   sr   t t d¡ƒd u sJ ‚t t d¡ƒd u s,J ‚t t d¡ƒd u sBJ ‚t t d¡ƒd u sXJ ‚t t d¡ƒd u snJ ‚d S )Nr_   g      @g      @g       @)r   r   rH   rS   rT   rP   rQ   rX   rX   rX   rY   Útest_issue_9636{	  s
    r  c                   C   sp   t t dt ¡ƒd u sJ ‚t t dt  ¡ƒd u s6J ‚t t dt ¡ƒd u sPJ ‚t t dt  ¡ƒd u slJ ‚d S ©Nr   )r   r   rM   r   rJ   rX   rX   rX   rY   Útest_autosimp_used_to_failƒ	  s    r  c                     sl  ddl m‰  G ‡ fdd„dtƒ} z¼tƒ  td| ƒ W d   ƒ n1 sH0    Y  tddd}tƒ " tt d	¡ƒsxJ ‚W d   ƒ n1 sŒ0    Y  tƒ * tt |¡t |¡ƒs¸J ‚W d   ƒ n1 sÌ0    Y  W t`nt`0 G d
d„ dt	ƒ}zl|ƒ t_tj 
t¡dd„ ƒ}tj 
t¡‡ fdd„ƒ}tt d	¡ƒs>J ‚tt |¡t |¡ƒsZJ ‚W t`nt`0 d S )Nr   ©Ú	conjunctsc                       s(   e Zd Zedd„ ƒZe‡ fdd„ƒZdS )z/test_custom_AskHandler.<locals>.MersenneHandlerc                 S   s    t t t| d dƒ¡ƒrdS d S ©NrE   r€   T©r   r   rH   r/   rÙ   rX   rX   rY   r   	  s    z7test_custom_AskHandler.<locals>.MersenneHandler.Integerc                    s   | ˆ |ƒv rdS d S rt   rX   rÙ   r  rX   rY   r(   ”	  s    z6test_custom_AskHandler.<locals>.MersenneHandler.SymbolN)rÛ   rÜ   rÝ   rÞ   r   r(   rX   r  rX   rY   ÚMersenneHandler	  s   
r  Úmersenner   Tr	  r•   c                   @   s   e Zd ZdS )z1test_custom_AskHandler.<locals>.MersennePredicateNrà   rX   rX   rX   rY   ÚMersennePredicate¤	  s   r  c                 S   s    t t t| d dƒ¡ƒrdS d S r  r  rÙ   rX   rX   rY   râ   ¨	  s    z!test_custom_AskHandler.<locals>._c                    s   | ˆ |ƒv rdS d S rt   rX   rÙ   r  rX   rY   râ   ¬	  s    )Úsympy.logic.boolalgr  r   rC   r   r(   r   r   r  r   rä   r   )r  r   r  râ   rX   r  rY   Útest_custom_AskHandler‹	  s*    	(0:


r  c                  C   s„   G dd„ dt ƒ} zh| ƒ t_tj tt¡dd„ ƒ}tj ttt¡dd„ ƒ}tt dd¡ƒs\J ‚tt dd	d
¡ƒsrJ ‚W t`nt`0 d S )Nc                   @   s   e Zd ZdS )z.test_polyadic_predicate.<locals>.SexyPredicateNrà   rX   rX   rX   rY   ÚSexyPredicate¸	  s   r  c                    s:   t | |gƒ}t‡ fdd„|D ƒƒs&dS |d |d  dkS )Nc                 3   s   | ]}t t |¡ˆ ƒV  qd S rŽ   ©r   r   rS   ©rñ   r‹   r´   rX   rY   rò   À	  rØ   ú5test_polyadic_predicate.<locals>._.<locals>.<genexpr>FrE   r   é   ©rõ   Úall)Úint1Úint2rµ   r‰   rX   r´   rY   râ   ½	  s    z"test_polyadic_predicate.<locals>._c                    sP   t | ||gƒ}t‡ fdd„|D ƒƒs(dS |d |d  dkoN|d |d  dkS )Nc                 3   s   | ]}t t |¡ˆ ƒV  qd S rŽ   r  r  r´   rX   rY   rò   Ç	  rØ   r  Fr€   rE   r  r   r  )r  r  Zint3rµ   r‰   rX   r´   rY   râ   Ä	  s    r{   r[   r•   é   é   )r   r   Z	sexyprimerä   r   r   )r  râ   rX   rX   rY   Útest_polyadic_predicate¶	  s    

r"  c                  C   sN   t dƒjd u sJ ‚G dd„ dt ƒ} | tdƒƒ}| tdƒƒ}|j|ju sJJ ‚d S )NZmypredicatec                   @   s   e Zd ZdS )z5test_Predicate_handler_is_unique.<locals>.MyPredicateNrà   rX   rX   rX   rY   rá   ×	  s   rá   Úmp1Úmp2)r   Úhandlerr&   )rá   r#  r$  rX   rX   rY   Ú test_Predicate_handler_is_uniqueÑ	  s
    r&  c                   C   st   t t td¡t t¡ƒsJ ‚t t td¡t t¡ƒr8J ‚t t td¡t t¡ƒrTJ ‚t t td¡t t¡ƒspJ ‚d S r  )r   r   r   r   rc   rb   r°   rX   rX   rX   rY   Útest_relationalÞ	  s    r'  c                   C   s~   t t t¡t t¡t tt¡B ƒd u s*J ‚t t t¡t t¡dtkB ƒd u sPJ ‚t t t¡t t¡t dt¡B ƒd u szJ ‚d S r  )r   r   rÉ   r   rh   rN   r   r±   rX   rX   rX   rY   Útest_issue_25221å	  s    *&r(  c                  C   s    t j} tt | ¡ƒd u sJ ‚d S rŽ   )r$   ru   r   r   rO   rv   rX   rX   rY   Útest_issue_27440ë	  s    r)  )¥Z	sympy.abcr   r   r   r   r   r   r   r	   r
   r   Zsympy.assumptionsr   r   r   r   r   Zsympy.assumptions.assumer   r   r   Zsympy.assumptions.cnfr   r   Zsympy.assumptions.factsr   r   r   r   Zsympy.assumptions.handlersr   Zsympy.assumptions.ask_generatedr   r   Zsympy.core.addr   Zsympy.core.numbersr   r   r    r!   r"   r#   Zsympy.core.singletonr$   Zsympy.core.powerr%   Zsympy.core.symbolr&   r'   r(   Z(sympy.functions.combinatorial.factorialsr)   Z$sympy.functions.elementary.complexesr*   r+   r,   r-   Z&sympy.functions.elementary.exponentialr.   r/   Z(sympy.functions.elementary.miscellaneousr0   Z(sympy.functions.elementary.trigonometricr1   r2   r3   r4   r5   r6   r7   r8   r  r9   r:   r;   r<   r=   Zsympy.matricesr>   r?   Zsympy.testing.pytestr@   rA   rB   rC   rD   r`   rZ   r\   r^   ra   rd   rf   rn   rr   rs   rx   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«   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ÿ   r  r  r  r  r  r  r
  r  r  r  r"  r&  r'  r(  r)  rX   rX   rX   rY   Ú<module>   sâ   0 ()0aj    


KF

Ni
O**J
 
;
	#
!
5		(

F+