§
    OŠtjX  ã                   ó¼  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dl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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 d dl m!Z! d d	l"m#Z# d d
l$m%Z%m&Z&  ed¦  «        \  Z'Z(Z) G d„ de¦  «        Z*e j+        dej,        e*         fd„¦   «         Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ Z6d„ Z7d„ Z8d„ Z9d„ Z:d„ Z;d„ Z<d„ Z=dS ) é    N)ÚEnum)ÚCallable)ÚAddÚImpliesÚsqrt)ÚMulÚPow)ÚSÚpiÚsymbolsÚFunctionÚRationalÚIntegerÚSymbolÚEqÚNeÚLeÚLtÚGtÚGe)Ú	PiecewiseÚexpÚsinÚcos)ÚQ©Úsmtlib_code)ÚraisesÚFailedzx,y,zc                   ó’   — e Zd Z ej        dej        ¦  «        Z ej        dej        ¦  «        Z ej        dej        ¦  «        ZdS )Ú_Wz2Could not infer type of `.+`. Defaulting to float.z.Non-Symbol/Function `.+` will not be declared.zPNon-Boolean expression `.+` will not be asserted. Converting to SMTLib verbatim.N)	Ú__name__Ú
__module__Ú__qualname__ÚreÚcompileÚ
IGNORECASEÚDEFAULTING_TO_FLOATÚWILL_NOT_DECLAREÚWILL_NOT_ASSERT© ó    ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/printing/tests/test_smtlib.pyr!   r!      sb   € € € € € Ø$˜"œ*Ð%YÐ[]Ô[hÑiÔiÐØ!�r”zÐ"RÐTVÔTaÑbÔbÐØ �b”jÐ!sÐuwô  vCñ  Dô  D€O€O€Or,   r!   Úexpectedc           	   #   ón  K  — g }|j         }|V — g }t          t          j        || ¦  «        ¦  «        D ]\\  }\  }}|s|d|› d|› d�gz  }Œ|s|d|› d|j        › d�gz  }Œ-|j                             |¦  «        s|d|› d|› d|j        › d�gz  }Œ]|r"t          d                     |¦  «        ¦  «        ‚d S )	Nú[z] Received unexpected warning `z`.z$] Did not receive expected warning `z] Warning `z` does not match expected ú.ú
)	ÚappendÚ	enumerateÚ	itertoolsÚzip_longestÚnameÚvalueÚmatchr   Újoin)r.   ÚwarnsÚlog_warnÚerrorsÚiÚwÚes          r-   Ú_check_warnsrA      s  è è € à €EØŒ|€HØ
€N€N€Nà€FÝ�yÔ4°U¸HÑEÔEÑFÔFð Qð Q‰	ˆ‰6ˆAˆqØð 	QØÐB˜1ÐBÐB¸QÐBÐBÐBÐCÑCˆFˆFØð 	QØÐL˜1ÐLÐLÀ!Ä&ÐLÐLÐLÐMÑMˆFˆFØ”—’˜qÑ!Ô!ð 	QØÐO˜1ÐOÐO¨ÐOÐOÀaÄfÐOÐOÐOÐPÑPˆFøàÐ.•V˜DŸIšI fÑ-Ô-Ñ.Ô.Ð.Ð.Ð.r,   c                  óÜ  — t          t          j        gdz  ¦  «        5 } t          t	          d¦  «        | ¬¦  «        dk    sJ ‚t          t	          d¦  «        | ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          g ¦  «        5 } t          t	          d¦  «        ¦  «        dk    sJ ‚t          t	          d¦  «        ¦  «        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Né   éC   ©r<   Ú67éÿÿÿÿz-1)rA   r!   r*   r   r   ©r?   s    r-   Útest_IntegerrI   -   sj  € Ý	•rÔ)Ð*¨QÑ.Ñ	/Ô	/ð <°1Ý�7 2™;œ;°Ð3Ñ3Ô3°tÒ;Ð;Ð;Ð;Ý�7 2™;œ;°Ð3Ñ3Ô3°tÒ;Ð;Ð;Ð;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <õ 
�bÑ	Ô	ð 0˜QÝ�7 2™;œ;Ñ'Ô'¨4Ò/Ð/Ð/Ð/Ý�7 2™;œ;Ñ'Ô'¨4Ò/Ð/Ð/Ð/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s%   žA	A4Á4A8Á;A8ÂAC!Ã!C%Ã(C%c                  óÔ  — t          t          j        gdz  ¦  «        5 } t          t	          dd¦  «        | ¬¦  «        dk    sJ ‚t          t	          dd¦  «        | ¬¦  «        dk    sJ ‚t          t	          dd	¦  «        | ¬¦  «        d
k    sJ ‚t          t	          dd	¦  «        | ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        t          j        gdz  ¦  «        5 } t          t          t	          dd¦  «        z   d| ¬¦  «        dk    sJ ‚t          t	          dd¦  «        t          z  | ¬¦  «        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Né   é   é   rE   z(/ 3 7)é   é	   Ú2iùÿÿÿz(/ -3 7)éýÿÿÿrC   F©Úauto_declarer<   z(+ (/ 3 7) x)z$(declare-const x Real)
(* (/ 3 7) x))rA   r!   r*   r   r   r(   ÚxrH   s    r-   Útest_RationalrU   6   s  € Ý	•rÔ)Ð*¨QÑ.Ñ	/Ô	/ð F°1Ý�8 A q™>œ>°AÐ6Ñ6Ô6¸)ÒCÐCÐCÐCÝ�8 B¨™?œ?°QÐ7Ñ7Ô7¸3Ò>Ð>Ð>Ð>Ý�8 A r™?œ?°QÐ7Ñ7Ô7¸:ÒEÐEÐEÐEÝ�8 B¨Ñ+Ô+°aÐ8Ñ8Ô8¸IÒEÐEÐEÐEÐEð	Fð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fõ 
•rÔ-­rÔ/AÐBÀQÑFÑ	GÔ	Gð NÈ1Ý�1�x¨¨1™~œ~Ñ-¸EÈAÐNÑNÔNÐRaÒaÐaÐaÐaÝ�8 A q™>œ>­AÑ-¸Ð:Ñ:Ô:ð ?Nò Nð Nð Nð Nð NðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nð Nð Ns%   žBC Ã CÃCÃ3AEÅE!Å$E!c                  ó´  — t          t          j        gdz  ¦  «        5 } t          t	          t
          t          ¦  «        d| ¬¦  «        dk    sJ ‚t          t          t
          t          ¦  «        d| ¬¦  «        dk    sJ ‚t          t          t
          t          ¦  «        d| ¬¦  «        dk    sJ ‚t          t          t
          t          ¦  «        d| ¬¦  «        dk    sJ ‚t          t          t
          t          ¦  «        d| ¬¦  «        dk    sJ ‚t          t          t
          t          ¦  «        d| ¬¦  «        d	k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )
Né   FrR   ú(assert (= x y))ú(assert (not (= x y)))ú(assert (<= x y))ú(assert (< x y))ú(assert (> x y))ú(assert (>= x y)))rA   r!   r(   r   r   rT   Úyr   r   r   r   r   rH   s    r-   Útest_Relationalr_   C   sˆ  € Ý	•rÔ-Ð.°Ñ3Ñ	4Ô	4ð \¸Ý�2�a¥™8œ8°%À!ÐDÑDÔDÐHZÒZÐZÐZÐZÝ�2�a¥™8œ8°%À!ÐDÑDÔDÐH`Ò`Ð`Ð`Ð`Ý�2�a¥™8œ8°%À!ÐDÑDÔDÐH[Ò[Ð[Ð[Ð[Ý�2�a¥™8œ8°%À!ÐDÑDÔDÐHZÒZÐZÐZÐZÝ�2�a¥™8œ8°%À!ÐDÑDÔDÐHZÒZÐZÐZÐZÝ�2�a¥™8œ8°%À!ÐDÑDÔDÐH[Ò[Ð[Ð[Ð[Ð[ð\ð \ð \ñ \ô \ð \ð \ð \ð \ð \ð \ð \øøøð \ð \ð \ð \ð \ð \s   žD!EÅEÅEc                  ó   ‡ — t          t          j        gdz  ¦  «        5 Š t          t	          j        t          t          ¦  «        d‰ ¬¦  «        dk    sJ ‚t          t	          j        t          t          ¦  «        d‰ ¬¦  «        dk    sJ ‚t          t	          j	        t          t          ¦  «        d‰ ¬¦  «        dk    sJ ‚t          t	          j
        t          t          ¦  «        d‰ ¬¦  «        dk    sJ ‚t          t	          j        t          t          ¦  «        d‰ ¬¦  «        dk    sJ ‚t          t	          j        t          t          ¦  «        d‰ ¬¦  «        d	k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          ˆ fd
„¦  «         d S )NrW   FrR   rX   rY   r[   rZ   r\   r]   c                  óT   •— t          t          j        t          ¦  «        ‰ ¬¦  «        S ©NrE   )r   r   ÚcomplexrT   rH   s   €r-   ú<lambda>z,test_AppliedBinaryRelation.<locals>.<lambda>V   s   ø€ �{­1¬9µQ©<¬<À!ÐDÑDÔD€ r,   )rA   r!   r(   r   r   ÚeqrT   r^   ÚneÚltÚleÚgtÚger   Ú
ValueErrorrH   s   @r-   Útest_AppliedBinaryRelationrl   M   s¥  ø€ Ý	•rÔ-Ð.°Ñ3Ñ	4Ô	4ð ^¸Ý�1œ4¥¥1™:œ:°EÀAÐFÑFÔFÐJ\Ò\Ð\Ð\Ð\Ý�1œ4¥¥1™:œ:°EÀAÐFÑFÔFÐJbÒbÐbÐbÐbÝ�1œ4¥¥1™:œ:°EÀAÐFÑFÔFÐJ\Ò\Ð\Ð\Ð\Ý�1œ4¥¥1™:œ:°EÀAÐFÑFÔFÐJ]Ò]Ð]Ð]Ð]Ý�1œ4¥¥1™:œ:°EÀAÐFÑFÔFÐJ\Ò\Ð\Ð\Ð\Ý�1œ4¥¥1™:œ:°EÀAÐFÑFÔFÐJ]Ò]Ð]Ð]Ð]Ð]ð^ð ^ð ^ñ ^ô ^ð ^ð ^ð ^ð ^ð ^ð ^øøøð ^ð ^ð ^ð ^õ �:ÐDÐDÐDÐDÑEÔEÐEÐEÐEs   ŸD?E+Å+E/Å2E/c                  ó¨  — t          t          j        gdz  ¦  «        5 } t          t	          j        t          ¦  «        d| ¬¦  «        dk    sJ ‚t          t	          j        t          ¦  «        d| ¬¦  «        dk    sJ ‚t          t	          j        t          ¦  «        d| ¬¦  «        dk    sJ ‚t          t	          j	        t          ¦  «        d| ¬¦  «        dk    sJ ‚t          t	          j
        t          ¦  «        d| ¬¦  «        dk    sJ ‚t          t	          j        t          ¦  «        d| ¬¦  «        d	k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )
Né   FrR   z(assert (> x 0))z(assert (< x 0))z(assert (= x 0))z(assert (<= x 0))z(assert (>= x 0))z(assert (not (= x 0))))rA   r!   r(   r   r   ÚpositiverT   ÚnegativeÚzeroÚnonpositiveÚnonnegativeÚnonzerorH   s    r-   Útest_AppliedPredicateru   Y   sŒ  € Ý	•rÔ-Ð.°Ñ2Ñ	3Ô	3ð e°qÝ�1œ:¥a™=œ=°uÀqÐIÑIÔIÐM_Ò_Ð_Ð_Ð_Ý�1œ:¥a™=œ=°uÀqÐIÑIÔIÐM_Ò_Ð_Ð_Ð_Ý�1œ6¥!™9œ9°5À1ÐEÑEÔEÐI[Ò[Ð[Ð[Ð[Ý�1œ=­Ñ+Ô+¸%È!ÐLÑLÔLÐPcÒcÐcÐcÐcÝ�1œ=­Ñ+Ô+¸%È!ÐLÑLÔLÐPcÒcÐcÐcÐcÝ�1œ9¥Q™<œ<°eÀaÐHÑHÔHÐLdÒdÐdÐdÐdÐdðeð eð eñ eô eð eð eð eð eð eð eð eøøøð eð eð eð eð eð es   žDEÅEÅEc            	      óv  — t          t          j        t          j        g¦  «        5 } t	          t          t          ¦  «        t          t          ¦  «        z  d| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        g¦  «        5 } t	          t          t          ¦  «        t          t          t          t          it          dit          j        di| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          d¦  «        }t          t          j        g¦  «        5 } t	           |t          ¦  «        |t          t          gt           f         i| ¬	¦  «        d
k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          g ¦  «        5 } t	           |t          ¦  «        |t          t          gt          f         i| ¬	¦  «        dk    sJ ‚t	          t#           |t          t$          ¦  «        t          ¦  «        |t          t          t          gt          f         i| ¬	¦  «        dk    sJ ‚t	          t#           |t          t$          ¦  «        t          ¦  «        |t          t          t          gt          f         i|dt"          di| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        gdz  ¦  «        5 } t	          t#           |t          t$          ¦  «        t          ¦  «        |dt"          di| ¬¦  «        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NFrR   z(pow (sin x) (cos x))ÚINTEGER_TYPEÚABSOLUTE_VALUE_OF)Úsymbol_tableÚknown_typesÚknown_functionsr<   z4(declare-const x INTEGER_TYPE)
(ABSOLUTE_VALUE_OF x)Úf1©ry   r<   z:(declare-const x Bool)
(declare-fun f1 (Bool) Real)
(f1 x)zC(declare-const x Bool)
(declare-fun f1 (Bool) Bool)
(assert (f1 x))z|(declare-const x Int)
(declare-const y Bool)
(declare-const z Bool)
(declare-fun f1 (Int Bool) Bool)
(assert (= (f1 x z) y))ÚMY_KNOWN_FUNz==)ry   r{   r<   zf(declare-const x Int)
(declare-const y Bool)
(declare-const z Bool)
(assert (== (MY_KNOWN_FUN x z) y))rL   )r{   r<   zg(declare-const x Real)
(declare-const y Real)
(declare-const z Real)
(assert (== (MY_KNOWN_FUN x z) y)))rA   r!   r(   r*   r   r   rT   r   ÚabsÚintr^   ÚboolÚsympyÚAbsr   r   Úfloatr   Úz)r?   Úmy_fun1s     r-   Útest_Functionr‡   b   s„  € Ý	•rÔ-­rÔ/AÐBÑ	CÔ	Cð hÀqÝ�3�q™6œ6¥S­¡V¤VÑ+¸%È!ÐLÑLÔLÐPgÒgÐgÐgÐgÐgðhð hð hñ hô hð hð hð hð hð hð høøøð hð hð hð hõ 
•rÔ)Ð*Ñ	+Ô	+ð %¨qÝÝ•‰FŒFÝ�S¥!¥TÐ*Ý˜nÐ-Ý"œYÐ(;Ð<Øð
ñ 
ô 
ð%ò%ð %ð %ð %ð %ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %õ �t‰nŒn€GÝ	•rÔ)Ð*Ñ	+Ô	+ð ¨qÝØˆG•A‰JŒJØ!¥8­T¨FµE¨MÔ#:Ð;Øð
ñ 
ô 
ðò	ð ð ð ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
�bÑ	Ô	ð 2˜QÝØˆG•A‰JŒJØ!¥8­T¨FµD¨LÔ#9Ð:Øð
ñ 
ô 
ðò	ð ð ð õ Ýˆwˆw•q�!‰}Œ}�aÑ Ô Ø!¥8­Sµ$¨K½Ð,=Ô#>Ð?Øð
ñ 
ô 
ð'ò	'ð 'ð 'ð 'õ Ýˆwˆw•q�!‰}Œ}�aÑ Ô Ø!¥8­Sµ$¨K½Ð,=Ô#>Ð?Ø$ nµb¸$Ð?Øð	
ñ 
ô 
ð
2ò2ð 2ð 2ð 2ð 2ð'2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2õ: 
•rÔ-Ð.°Ñ2Ñ	3Ô	3ð 2°qÝÝˆwˆw•q�!‰}Œ}�aÑ Ô Ø$ nµb¸$Ð?Øð
ñ 
ô 
ð2ò	2ð 2ð 2ð 2ð 2ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s^   ¦A A3Á3A7Á:A7ÂAC=Ã=DÄDÄ1AE?Å?FÆFÆD	J/Ê/J3Ê6J3ËA	L.Ì.L2Ì5L2c                  óH  — t          t          j        t          j        g¦  «        5 } t	          t
          dz  d| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        t          j        t          j        g¦  «        5 } t	          t
          t          dz  z  d| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        t          j        g¦  «        5 } t	          t
          t          dd¦  «        z  d| ¬¦  «        dk    sJ ‚t          dd	¬
¦  «        }t          dd	¬¦  «        }t          d¦  «        }d„ }d ||¦  «        dz  |||z  z
  z  z  |dz  |z   z  }d d d ¦  «         n# 1 swxY w Y   t          g ¦  «        5 } t	          t          |dk     |¦  «        t          ||k    |¦  «        |d	z  t          |dt          dd¦  «        z   ¦  «        g| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        t          j        g¦  «        5 } t	          t          d|t          t          ||d¬¦  «        dd¬¦  «        d¬¦  «        | ¬¦  «        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NrL   FrR   z	(pow x 3)z(pow x (pow y 3))rC   z(pow x (/ 2 3))ÚaT©ÚintegerÚb©ÚrealÚcc                 ó   — d| z  S )NrC   r+   )rT   s    r-   Úgztest_Pow.<locals>.g®   s
   € ˜˜Q™�,r,   é   g      @rE   zÕ(declare-const a Int)
(declare-const b Real)
(declare-const c Bool)
(assert (= (< a 2) c))
(assert (= (> b a) c))
(assert c)
(assert (= (* (pow (* 7.0 a) (+ (pow b a) (* -1 a))) (pow (+ b (pow a 2)) -1)) (/ 7 3)))éþÿÿÿ©ÚevaluaterG   zG(declare-const b Real)
(declare-const c Real)
(* -2 c (pow (* b b) -1)))rA   r!   r(   r*   r   rT   r^   r   r   r   r   r	   )r?   r‰   rŒ   r�   r‘   Úexprs         r-   Útest_Powr—   ¢   s  € Ý	•rÔ-­rÔ/AÐBÑ	CÔ	Cð RÀqÝ�1 ™6°ÀÐBÑBÔBÀkÒQÐQÐQÐQÐQðRð Rð Rñ Rô Rð Rð Rð Rð Rð Rð Røøøð Rð Rð Rð Rå	•rÔ-­rÔ/EÅrÔGYÐZÑ	[Ô	[ð aÐ_`Ý�1¥ a¡™=°uÀqÐIÑIÔIÐM`Ò`Ð`Ð`Ð`Ð`ðað að añ aô að að að að að að aøøøð að að að aå	•rÔ-­rÔ/AÐBÑ	CÔ	Cð 
?ÀqÝ�1¥¨¨A¡¤Ñ.¸UÈQÐOÑOÔOÐSdÒdÐdÐdÐdå�3 Ð%Ñ%Ô%ˆÝ�3˜TÐ"Ñ"Ô"ˆÝ�3‰KŒKˆàÐÐð �A�A�a‘D”D˜3‘J A¨¨Q©¡JÑ/Ñ/°1¸±6¸A±:Ñ>ˆð
?ð 
?ð 
?ñ 
?ô 
?ð 
?ð 
?ð 
?ð 
?ð 
?ð 
?øøøð 
?ð 
?ð 
?ð 
?õ 
�bÑ	Ô	ð ˜QÝå�1�q’5˜!‘”Ý�1�q’5˜!‘”Ø�D‘Ý�4˜�X a¨™^œ^Ñ+Ñ,Ô,ð	ð ð
ñ 
ô 
ð	òð ð ð ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ( 
•rÔ-­rÔ/AÐBÑ	CÔ	Cð )ÀqÝÝ��A•s�3˜q !¨eÐ4Ñ4Ô4°bÀ5ÐIÑIÔIÐTYÐZÑZÔZØð
ñ 
ô 
ð)ò)ð )ð )ð )ð )ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s\   ¦!AÁAÁAÂ)CÃC	ÃC	Ã5BFÆFÆFÆ!A"HÈHÈHÉ A	JÊJÊJc                  óx  — t          t          j        t          j        t          j        g¦  «        5 } t	          t
          t          z  d| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        t          j        t          j        g¦  «        5 } t	          t
          t          z   d| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        t          j        g¦  «        5 } t	          t
           d| ¬¦  «        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NFrR   z(* x y)z(+ x y)z(* -1 x))rA   r!   r(   r*   r   rT   r^   rH   s    r-   Útest_basic_opsr™   Ð   s  € Ý	•rÔ-­rÔ/EÅrÔGYÐZÑ	[Ô	[ð OÐ_`Ý�1�q™5¨u¸qÐAÑAÔAÀYÒNÐNÐNÐNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oõ 
•rÔ-­rÔ/EÅrÔGYÐZÑ	[Ô	[ð OÐ_`Ý�1�q™5¨u¸qÐAÑAÔAÀYÒNÐNÐNÐNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oõ 
•rÔ-­rÔ/AÐBÑ	CÔ	Cð MÀqÝ�A˜2¨E¸AÐ>Ñ>Ô>À*ÒLÐLÐLÐLÐLðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mð Mð Ms5   ±&A$Á$A(Á+A(Â&CÃCÃCÄD/Ä/D3Ä6D3c                  óÀ  ‡‡‡‡‡	— ddl mŠ ddlmŠmŠmŠ	  G ˆˆˆˆˆ	fd„d‰¦  «        Št          d¦  «        } t          t          j	        g¦  «        5 }t           ‰t          ddft           | t          ¦  «         | t          ¦  «        ¦  «        ¦  «        | t          t          gt          f         i|¬	¦  «        d
k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j	        gdz  ¦  «        5 }t           ‰t          ddft          ddft!          t          t          t          ¦  «        t           | t          ¦  «         | t          ¦  «        ¦  «        ¦  «        ¦  «        | t          t          gt          f         i|¬	¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t#          dd¬¦  «        }t#          dd¬¦  «        }t#          d¦  «        }t          g ¦  «        5 }t           ‰|ddf ‰|ddft!          ||k     t%          |¦  «        |k     ¦  «        |z  ¦  «        ¦  «        |¬¦  «        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )ÚBoolean)ÚIntervalÚTupleÚsympifyc                   óV   •— e Zd Zˆfd„Zed„ ¦   «         Zed„ ¦   «         Zˆ ˆˆˆfd„ZdS )ú*test_quantifier_extensions.<locals>.ForAllc                 ó�   •‡— ˆˆfd„| j         D ¦   «         }‰                     d‰                     d|¦  «        | j        g¦  «        S )Nc           
      ó’   •— g | ]C\  }}}‰                      |j        ‰j        ‰j        |                   ‰||¦  «        g¦  «        ‘ŒDS r+   )Ú_s_exprr7   Ú_known_typesry   )Ú.0ÚsymÚstartÚendrœ   Úprinters       €€r-   ú
<listcomp>zFtest_quantifier_extensions.<locals>.ForAll._smtlib.<locals>.<listcomp>æ   sj   ø€ ð )ð )ð )ñ '�s˜E 3ð —’ ¤ØÔ(¨Ô)=¸cÔ)BÔCØ�H˜U CÑ(Ô(ð+ñ ô ð)ð )ð )r,   ÚforallÚ )Úlimitsr£   Úfunction)Úselfr©   Úbound_symbol_declarationsrœ   s    ` €r-   Ú_smtlibz2test_quantifier_extensions.<locals>.ForAll._smtlibå   sl   øø€ ð)ð )ð )ð )ð )ð +/¬+ð	)ñ )ô )Ð%ð —?’? 8Ø—’ Ð$=Ñ>Ô>Ø”ð.ñ ô ð r,   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó   — h | ]\  }}}|’Œ	S r+   r+   )r¥   ÚsÚ_s      r-   ú	<setcomp>zKtest_quantifier_extensions.<locals>.ForAll.bound_symbols.<locals>.<setcomp>ó   s   € Ð1Ð1Ð1™'˜!˜Q �AÐ1Ð1Ð1r,   )r­   )r¯   s    r-   Úbound_symbolsz8test_quantifier_extensions.<locals>.ForAll.bound_symbolsñ   s   € à1Ð1 T¤[Ð1Ñ1Ô1Ð1r,   c                 óV   ‡— d„ | j         D ¦   «         Šˆfd„| j        j        D ¦   «         S )Nc                 ó   — h | ]	}|j         ’Œ
S r+   ©r7   )r¥   r´   s     r-   r¶   zJtest_quantifier_extensions.<locals>.ForAll.free_symbols.<locals>.<setcomp>÷   s   € Ð!EÐ!EÐ!E¨Q !¤&Ð!EÐ!EÐ!Er,   c                 ó&   •— h | ]}|j         ‰v¯|’ŒS r+   rº   )r¥   r´   Úbound_symbol_namess     €r-   r¶   zJtest_quantifier_extensions.<locals>.ForAll.free_symbols.<locals>.<setcomp>ø   s1   ø€ ð ð ð ØØ”6Ð!3Ð3Ð3ð Ø3Ð3Ð3r,   )r·   r®   Úfree_symbols)r¯   r¼   s    @r-   r½   z7test_quantifier_extensions.<locals>.ForAll.free_symbolsõ   sJ   ø€ à!EÐ!E°$Ô2DÐ!EÑ!EÔ!EÐðð ð ð Øœ=Ô5ðñ ô ð r,   c                 ó²  •— ˆˆfd„|D ¦   «         }ˆˆfd„|D ¦   «         }t          |¦  «        t          |¦  «        z   t          |¦  «        k    sJ ‚t          |¦  «        dk    sJ ‚|d         }t          |‰¦  «        r ‰j        ‰g||j        z   ¢|j        ‘R Ž S ‰                     | ¦  «        }t          ||gz   ¦  «        |_        ||_        ||_        |S )Nc                 óT   •— g | ]$}t          |t          ‰f¦  «        ¯ ‰|¦  «        ‘Œ%S r+   )Ú
isinstanceÚtuple)r¥   r‰   r�   rž   s     €€r-   rª   zFtest_quantifier_extensions.<locals>.ForAll.__new__.<locals>.<listcomp>þ   s4   ø€ ÐPÐPÐP Qµ*¸QÅÈÀÑ2OÔ2OÐP�g�g˜a‘j”jÐPÐPÐPr,   c                 óF   •— g | ]}t          |‰¦  «        ¯ ‰|¦  «        ‘ŒS r+   )rÀ   )r¥   r‰   r›   rž   s     €€r-   rª   zFtest_quantifier_extensions.<locals>.ForAll.__new__.<locals>.<listcomp>ÿ   s0   ø€ ÐKÐKÐK qµJ¸qÀ'Ñ4JÔ4JÐK˜˜ ™
œ
ÐKÐKÐKr,   r’   r   )ÚlenrÀ   Ú__new__r­   r®   rÁ   Ú_args)	ÚclsÚargsr­   r®   Úinstr›   ÚForAllr�   rž   s	        €€€€r-   rÄ   z2test_quantifier_extensions.<locals>.ForAll.__new__ý   s  ø€ ØPÐPÐPÐPÐP¨$ÐPÑPÔPˆFØKÐKÐKÐKÐK¨DÐKÑKÔKˆHÝ�v‘;”;¥ X¡¤Ñ.µ#°d±)´)Ò;Ð;Ð;Ð;Ý�x‘=”= AÒ%Ð%Ð%Ð%Ø ”{ˆHå˜( FÑ+Ô+ð °N°F´NØð5Ø  8¤?Ñ2ð5Ø5=Ô5Fð5ð 5ð 5ð .ð —?’? 3Ñ'Ô'ˆDÝ˜v¨¨
Ñ2Ñ3Ô3ˆDŒJØ ˆDŒKØ$ˆDŒMØˆKr,   N)r"   r#   r$   r±   Úpropertyr·   r½   rÄ   )r›   rÉ   rœ   r�   rž   s   €€€€€r-   rÉ   r    ä   sŒ   ø€ € € € € ð
	ð 
	ð 
	ð 
	ð 
	ð 
ð	2ð 	2ñ 
Œð	2ð 
ð	ð 	ñ 
Œð	ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r,   rÉ   ÚfiÖÿÿÿé   r}   z,(assert (forall ( (x Real [-42, 21])) true))rC   iœÿÿÿrL   zs(declare-fun f (Real) Real)
(assert (forall ( (x Real [-42, 21]) (y Real [-100, 3])) (=> (= x y) (= (f x) (f y)))))r‰   TrŠ   rŒ   r�   r�   éd   rE   zx(declare-const c Bool)
(assert (forall ( (a Int [2, 100]) (b Real [2, 100])) (or c (=> (< a b) (< (pow a (/ 1 2)) b))))))Úsympy.logic.boolalgr›   r‚   rœ   r�   rž   r   rA   r!   r(   r   rT   r   r   r„   r^   r   r   r   )
rË   r?   r‰   rŒ   r�   r›   rÉ   rœ   r�   rž   s
        @@@@@r-   Útest_quantifier_extensionsrÏ   ß   sŒ  øøøøø€ Ø+Ð+Ð+Ð+Ð+Ð+Ø.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ð'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð '�ñ 'ô 'ð 'õV 	�‰Œ€AÝ	•rÔ-Ð.Ñ	/Ô	/ð <°1ÝØˆF•A�s˜C�=¥" Q Q¥q¡T¤T¨1¨1­Q©4¬4¡.¤.Ñ1Ô1Ø�X¥u g­u nÔ5Ð6Øð
ñ 
ô 
ð <ò	<ð <ð <ð <ð <ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <õ 
•rÔ-Ð.°Ñ2Ñ	3Ô	3ð °qÝØˆFÝ�C˜�¥ 4¨˜|Ý��1�a™œ¥" Q Q¥q¡T¤T¨1¨1­Q©4¬4¡.¤.Ñ1Ô1ñô ð �X¥u g­u nÔ5Ð6Øð
ñ 
ô 
ðòð ð ð ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 	ˆs˜DÐ!Ñ!Ô!€AÝˆs˜ÐÑÔ€AÝˆs‰Œ€Aå	�bÑ	Ô	ð ˜QÝØˆFØ�A�s�˜V˜VØ˜˜3�KÝ˜A šE¥4¨¡7¤7¨Q¢;Ñ/Ô/°!Ñ3ñô ñô ð
 ð
ñ 
ô 
ðò
ð 
ð 
ð 
ð 
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s9   ÁA/CÃCÃCÃ7BF"Æ"F&Æ)F&Ç-AIÉIÉIc                  ó¨  — t          t          j        g¦  «        5 } t          dt          z  t          di| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        g¦  «        5 } t          t          t          dd¬¦  «        dt          z  gt          di| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        g¦  «        5 } t          t          t          j        t          j	        t          j
        t          j        t          j        t          j        t          j        d¬¦  «        t          j        d	t          j        d
t          j        dit          dt          did| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        g¦  «        5 } t          t          t          j        t          j	        t          j
        t          j        t          j        t          j        t          j        d¬¦  «        t          j        d	it          dt          did| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        g¦  «        5 } t          t          t          j        t          j	        t          j
        t          j        t          j        t          j        t          j        d¬¦  «        t          did| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        g¦  «        5 } t          t          t          j        t          j	        t          j
        t          j        t          j        t          j        t          j        d¬¦  «        t          j        dit          did| ¬¦  «        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr’   ÚMY_PI)Úknown_constantsr<   z(pow MY_PI -1)g…ëQ¸	@Fr”   z&(assert (= MY_PI 3.14))
(pow MY_PI -1)Úpr‘   r@   Úplusr   rL   )rÒ   r{   Ú	precisionr<   z!(plus 0 1 -1 (/ 1 2) (exp 1) p g)z$(plus 0 1 -1 (/ 1 2) (exp 1) p 1.62))r{   rÕ   r<   z$(plus 0 1 -1 (/ 1 2) 2.72 3.14 1.62)z!(plus 0 1 -1 (/ 1 2) e 3.14 1.62))rA   r!   r*   r   r   r   r   r
   ÚZeroÚOneÚNegativeOneÚHalfÚExp1ÚPiÚGoldenRatior   rH   s    r-   Útest_mix_number_mult_symbolsrÝ   7  s  € Ý	•rÔ)Ð*Ñ	+Ô	+ð ¨qÝØ•‰FÝ ˜MØð
ñ 
ô 
ð ò	ð ð ð ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
•rÔ)Ð*Ñ	+Ô	+ð 	¨qÝå•2�t eÐ,Ñ,Ô,Ø•B‘ðõ   ˜MØð
ñ 
ô 
ðòð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 
•rÔ)Ð*Ñ	+Ô	+ð 1¨qÝÝ•”�œ�qœ}­a¬fÝ”�œ�aœm°eð=ñ =ô =õ ”�c�1œ=¨#Ý”˜ðõ
 �VÝ�Uðð Øð
ñ 
ô 
ð 1ò1ð 1ð 1ð 1ð 1ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1õ  
•rÔ)Ð*Ñ	+Ô	+ð 4¨qÝÝ•”�œ�qœ}­a¬fÝ”�œ�aœm°eð=ñ =ô =õ ”�cðõ �VÝ�Uðð Øð
ñ 
ô 
ð 4ò4ð 4ð 4ð 4ð 4ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4õ 
•rÔ)Ð*Ñ	+Ô	+ð 4¨qÝÝ•”�œ�qœ}­a¬fÝ”�œ�aœm°eð=ñ =ô =å  &˜MØØð
ñ 
ô 
ð 4ò4ð 4ð 4ð 4ð 4ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4õ 
•rÔ)Ð*Ñ	+Ô	+ð 1¨qÝÝ•”�œ�qœ}­a¬fÝ”�œ�aœm°eð=ñ =ô =åœV S˜MÝ  &˜MØØð
ñ 
ô 
ð 1ò1ð 1ð 1ð 1ð 1ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1so   ›(AÁAÁAÁ5?CÃCÃCÃ&B(FÆFÆ"FÇ BIÉI!É$I!ÊA<LÌLÌLÌ0B	OÏOÏOc                  ó°  — t          g ¦  «        5 } t          t          t          z  | ¬¦  «        dk    sJ ‚t          t          t          z  | ¬¦  «        dk    sJ ‚t          t           | ¬¦  «        dk    sJ ‚t          t          t          z  t          z  | ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t
          j        g¦  «        5 } t          t          t           z  t          dk    z  | ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          d¦  «        }t          d	¦  «        }t          d
¦  «        }t          t
          j        g¦  «        5 } t          t           |t          ¦  «        t          ¦  «        t          t           |t          ¦  «        ¦  «        g|t          t          gt          f         |t          t          gt          f         i| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          g ¦  «        5 } t          t           |t          ¦  «        t          ¦  «        t          t           |t          ¦  «        ¦  «        g|t          t          gt          f         |t          t          gt          f         i| ¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          g ¦  «        5 } t          t           |t          ¦  «        t          ¦  «        t           | |t          ¦  «        ¦  «        t          ¦  «        t           | | |t          ¦  «        ¦  «        ¦  «        t          ¦  «        g|t          t          gt          f         |t          t          gt          f         |t          t          gt          f         i| ¬¦  «        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NrE   z@(declare-const x Bool)
(declare-const y Bool)
(assert (and x y))z?(declare-const x Bool)
(declare-const y Bool)
(assert (or x y))z'(declare-const x Bool)
(assert (not x))zY(declare-const x Bool)
(declare-const y Bool)
(declare-const z Bool)
(assert (and x y z))rL   zj(declare-const x Bool)
(declare-const y Bool)
(declare-const z Real)
(assert (or (> z 3) (and x (not y))))rË   r‘   Úhr}   z¤(declare-const x Bool)
(declare-const y Real)
(declare-const z Bool)
(declare-fun f (Bool) Int)
(declare-fun g (Bool) Int)
(assert (> (f x) y))
(assert (< y (g z)))z£(declare-const x Bool)
(declare-const y Int)
(declare-const z Bool)
(declare-fun f (Bool) Int)
(declare-fun g (Bool) Int)
(assert (= (f x) y))
(assert (< y (g z)))zà(declare-const x Real)
(declare-const y Int)
(declare-const z Bool)
(declare-fun f (Real) Int)
(declare-fun g (Int) Bool)
(declare-fun h (Bool) Real)
(assert (= (f x) y))
(assert (= (g (f x)) z))
(assert (= (h (g (f x))) x)))rA   r   rT   r^   r…   r!   r(   r   r   r   r   r�   r€   r   r„   )r?   rË   r‘   rß   s       r-   Útest_booleanrà   }  s)  € Ý	�bÑ	Ô	ð L˜QÝ�1�q™5¨1Ð-Ñ-Ô-ð 2Fò Fð Fð Fð Fõ �1�q™5¨1Ð-Ñ-Ô-ð 2Eò Eð Eð Eð Eõ �A˜2¨Ð*Ñ*Ô*ð /Aò Að Að Að Aå�1�q™5¥1™9¨qÐ1Ñ1Ô1ð 6Lò Lð Lð Lð Lð LðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lõ 
•rÔ-Ð.Ñ	/Ô	/ð f°1Ý�A¥ ™F¥q¨1¢uÑ-¸Ð:Ñ:Ô:ð ?fò fð fð fð fð fðfð fð fñ fô fð fð fð fð fð fð føøøð fð fð fð fõ 	�‰Œ€AÝ�‰Œ€AÝ�‰Œ€AÝ	•rÔ-Ð.Ñ	/Ô	/ð $°1ÝÝ��•!‘”•a‰[Œ[Ý•�1�1•Q‘4”4‰[Œ[ðð •8�T˜F¥C˜KÔ(¨!­Xµt°f½c°kÔ-Bðàð
ñ 
ô 
ð$ò$ð $ð $ð $ð $ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $õ 
�bÑ	Ô	ð $˜QÝÝ��•!‘”•a‰[Œ[Ý•�1�1•Q‘4”4‰[Œ[ðð •8�T˜F¥C˜KÔ(¨!­Xµt°f½c°kÔ-Bðàð
ñ 
ô 
ð$ò$ð $ð $ð $ð $ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $õ 
�bÑ	Ô	ð ,˜QÝÝ��•!‘”•a‰[Œ[Ý���!�!•A‘$”$‘”�‰^Œ^Ý���!�!�A�A•a‘D”D‘'”'‘
”
�AÑÔð ð •8�U˜G¥S˜LÔ)Ø•8�S˜E¥4˜KÔ(Ø•8�T˜F¥E˜MÔ*ðð
 ð

ñ 

ô 

ð,ò,ð ,ð ,ð ,ð ,ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s]   �BB/Â/B3Â6B3Ã2DÄDÄDÅ%BHÈHÈ
HÈBJ;Ê;J?ËJ?ËC(OÏOÏOc            
      ó¨  ‡ ‡— t          t          j        t          j        g¦  «        5 Št	          t          t          t          dk     ft          dz  df¦  «        d‰¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        t          j        g¦  «        5 Št	          t          t          dz  t          dk     ft          dz  t          dk     ft          dz  t          dk     ft          d	z  df¦  «        d‰¬¦  «        d
k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          t          dk     ft          dz  t          dk    ft          t          ¦  «        t          dk    f¦  «        Š t          t          j        t          j        g¦  «        5 Št          t          ˆ ˆfd„¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr’   rC   TFrR   z(ite (< x 1) x (pow x 2))rL   rK   é   zQ(ite (< x 1) (pow x 2) (ite (< x 2) (pow x 3) (ite (< x 3) (pow x 4) (pow x 5))))r   c                  ó&   •— t          ‰ ‰¬¦  «        S rb   r   ©r–   r?   s   €€r-   rd   z'test_smtlib_piecewise.<locals>.<lambda>î  s   ø€ ¥{°4À!Ð'DÑ'DÔ'D€ r,   )
rA   r!   r(   r*   r   r   rT   r   r   ÚAssertionErrorrä   s   @@r-   Útest_smtlib_piecewiseræ   Õ  s�  øø€ Ý	•rÔ-­rÔ/AÐBÑ	CÔ	Cð )ÀqÝÝ•q�!˜aš%�jÝ˜A‘v˜t�nñ&ô &àØð	
ñ 
ô 
ð
 )ò)ð )ð )ð )ð )ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )õ 
•rÔ-­rÔ/AÐBÑ	CÔ	Cð ÀqÝÝ•q˜A‘v�q 1šu�oÝ˜A‘v�q 1šu�oÝ˜A‘v�q 1šu�oÝ˜A‘v˜t�nñ&ô &ð Øð
ñ 
ô 
ðò
ð 
ð 
ð 
ð 
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ •a�˜Qš�Z¥! q¡&­!¨aª% µ3µq±6´6½1¸qº5°/ÑBÔB€DÝ	•rÔ-­rÔ/AÐBÑ	CÔ	Cð FÀqÝ�~ÐDÐDÐDÐDÐDÑEÔEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð Fs7   ¨AA6Á6A:Á=A:Â&A,DÄD#Ä&D#Æ GÇGÇGc                  óV  — t          t          t          dk     ft          dz  df¦  «        } t          t          j        t          j        g¦  «        5 }t          d| z  |¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        t          j        g¦  «        5 }t          | t          z  |¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        t          j        t          j        g¦  «        5 }t          | t          t          z  z  |¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          j        t          j        g¦  «        5 }t          | dz  |¬¦  «        d	k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )
Nr’   rC   TrE   z6(declare-const x Real)
(* 2 (ite (< x 1) x (pow x 2)))z?(declare-const x Real)
(* (pow x -1) (ite (< x 1) x (pow x 2)))za(declare-const x Real)
(declare-const y Real)
(* (pow x -1) (pow y -1) (ite (< x 1) x (pow x 2)))rL   z<(declare-const x Real)
(* (/ 1 3) (ite (< x 1) x (pow x 2))))r   rT   rA   r!   r(   r*   r   r^   )Úpwr?   s     r-   Ú!test_smtlib_piecewise_times_constré   ñ  sÓ  € Ý	•A•q˜1’u�:¥ Q¡¨˜~Ñ	.Ô	.€BÝ	•rÔ-­rÔ/AÐBÑ	CÔ	Cð lÀqÝ˜1˜r™6¨AÐ.Ñ.Ô.Ð2kÒkÐkÐkÐkÐkðlð lð lñ lô lð lð lð lð lð lð løøøð lð lð lð lå	•rÔ-­rÔ/AÐBÑ	CÔ	Cð uÀqÝ˜2¥™6¨AÐ.Ñ.Ô.Ð2tÒtÐtÐtÐtÐtðuð uð uñ uô uð uð uð uð uð uð uøøøð uð uð uð uå	•rÔ-­rÔ/EÅrÔGYÐZÑ	[Ô	[ð ^Ð_`Ý˜2¥¥Q¡™<°!Ð4Ñ4Ô4ð  9^ò  ^ð  ^ð  ^ð  ^ð  ^ð^ð ^ð ^ñ ^ô ^ð ^ð ^ð ^ð ^ð ^ð ^øøøð ^ð ^ð ^ð ^å	•rÔ-­rÔ/AÐBÑ	CÔ	Cð rÀqÝ˜2 ™6¨AÐ.Ñ.Ô.Ð2qÒqÐqÐqÐqÐqðrð rð rñ rô rð rð rð rð rð rð rð røøøð rð rð rð rð rð rsH   ÁA8Á8A<Á?A<Â( CÃCÃCÄ(EÅE	ÅE	Å5FÆF"Æ%F"c                  ó˜  — t          g ¦  «        5 } t          dd| ¬¦  «        dk    sJ ‚t          d| ¬¦  «        dk    sJ ‚t          t          j        | ¬¦  «        dk    sJ ‚t          t          j        | ¬¦  «        dk    sJ ‚t          d| ¬¦  «        dk    sJ ‚t          dd| ¬¦  «        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )	NTF)Úauto_assertr<   ÚtruerE   z(assert true)z(assert false)Úfalse)rA   r   r
   rì   rí   rH   s    r-   Útest_smtlib_booleanrî     sE  € Ý	�bÑ	Ô	ð L˜QÝ˜4¨U¸QÐ?Ñ?Ô?À6ÒIÐIÐIÐIÝ˜4¨!Ð,Ñ,Ô,°Ò?Ð?Ð?Ð?Ý�1œ6¨AÐ.Ñ.Ô.°/ÒAÐAÐAÐAÝ�1œ7¨QÐ/Ñ/Ô/Ð3CÒCÐCÐCÐCÝ˜5¨1Ð-Ñ-Ô-Ð1AÒAÐAÐAÐAÝ˜5¨e¸aÐ@Ñ@Ô@ÀGÒKÐKÐKÐKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lð Lð Ls   �B!B?Â?CÃCc                  ój  ‡ ‡— t          d¦  «        Š t          t          j        t          j        g¦  «        5 Št          t          ˆ ˆfd„¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          j        g¦  «        5 Št          t          ˆfd„¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrË   c                  ó¨   •— t           ‰ t          ¦  «                             t          ¦  «        ‰ t          t          gt          f         i‰¬¦  «        S )Nr}   )r   rT   Údiffr   r„   ©rË   r?   s   €€r-   rd   z$test_not_supported.<locals>.<lambda>!  s=   ø€ ¥¨Q¨Q­q©T¬T¯YªYµq©\¬\ÈÍHÕV[ÐU\Õ^cÐUcÔLdÐHeÐpqÐ!rÑ!rÔ!r€ r,   c                  ó:   •— t          t          j        ‰ ¬¦  «        S rb   )r   r
   ÚComplexInfinityrH   s   €r-   rd   z$test_not_supported.<locals>.<lambda>#  s   ø€ ¥­QÔ->ÈÐ!KÑ!KÔ!K€ r,   )r   rA   r!   r(   r*   r   ÚKeyErrorrò   s   @@r-   Útest_not_supportedrö     sI  øø€ Ý�‰Œ€AÝ	•rÔ-­rÔ/AÐBÑ	CÔ	Cð tÀqÝ�xÐrÐrÐrÐrÐrÑsÔsÐsðtð tð tñ tô tð tð tð tð tð tð tøøøð tð tð tð tå	•rÔ)Ð*Ñ	+Ô	+ð M¨qÝ�xÐKÐKÐKÐKÑLÔLÐLðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mð Mð Ms#   ·AÁA!Á$A!ÂB(Â(B,Â/B,c                  ó„   — t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚d S )Ng        z0.0g�e»ºŒ«K<z(* 3.0 (pow 10 -18))g333333@z5.3r   r+   r,   r-   Ú
test_Floatrø   &  sU   € Ý�sÑÔ˜uÒ$Ð$Ð$Ð$ÝÐ+Ñ,Ô,Ð0FÒFÐFÐFÐFÝ�sÑÔ˜uÒ$Ð$Ð$Ð$Ð$Ð$r,   )>Ú
contextlibr5   r%   ÚtypingÚenumr   r   r‚   r   r   r   Ú
sympy.corer   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   Úsympy.functionsr   r   r   r   Úsympy.assumptions.askr   Úsympy.printing.smtlibr   Úsympy.testing.pytestr   r   rT   r^   r…   r!   ÚcontextmanagerÚIterablerA   rI   rU   r_   rl   ru   r‡   r—   r™   rÏ   rÝ   rà   ræ   ré   rî   rö   rø   r+   r,   r-   ú<module>r     s%  ðØ Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à €€€Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ð Ð ð8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø #Ð #Ð #Ð #Ð #Ð #Ø -Ð -Ð -Ð -Ð -Ð -Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à
ˆ'�'Ñ
Ô
�€€1€aðDð Dð Dð Dð Dˆñ Dô Dð Dð Ôð/˜6œ?¨2Ô.ð /ð /ð /ñ Ôð/ð"0ð 0ð 0ð
Nð 
Nð 
Nð\ð \ð \ð	Fð 	Fð 	Fðeð eð eð=2ð =2ð =2ð@+)ð +)ð +)ð\Mð Mð MðUð Uð UðpC1ð C1ð C1ðLI,ð I,ð I,ðpFð Fð Fð8	rð 	rð 	rðFLð Lð LðMð Mð Mð%ð %ð %ð %ð %r,   