
    \hX                        S SK r S SKrS SKrS SKrS SKJr  S SKJr  S SKrS SKJrJ	r	J
r
  S SKJrJr  S SKJrJrJrJrJrJrJrJrJrJrJrJrJr  S SKJrJrJrJr  S SK J!r!  S S	K"J#r#  S S
K$J%r%J&r&  \" S5      u  r'r(r) " S S\5      r*\ RV                  S\RX                  \*   4S j5       r-S r.S r/S r0S r1S r2S r3S r4S r5S r6S r7S r8S r9S r:S r;S r<S r=g)     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                       \ rS rSr\R
                  " S\R                  5      r\R
                  " S\R                  5      r\R
                  " S\R                  5      r	Sr
g)_W   z2Could 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____firstlineno__recompile
IGNORECASEDEFAULTING_TO_FLOATWILL_NOT_DECLAREWILL_NOT_ASSERT__static_attributes__r#       X/var/www/auris/envauris/lib/python3.13/site-packages/sympy/printing/tests/test_smtlib.pyr!   r!      sW    **%Y[][h[hizz"RTVTaTabjj!suw  vC  vC  DOr/   r!   expectedc           	   #     #    / nUR                   nUv   / n[        [        R                  " X5      5       Hz  u  nu  pVU(       d  USU SU S3/-  nM  U(       d  USU SUR                   S3/-  nM>  UR
                  R                  U5      (       a  M`  USU SU SUR                   S3/-  nM|     U(       a  [        SR                  U5      5      eg 7f)	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)r1   warnslog_warnerrorsiwes          r0   _check_warnsrD      s      E||H
NFy44UEF	6A1#<QCrBCCF1#A!&&LMMFq!!1#[+EaffXQOPPF G VDIIf-..vs   BCA Cc                     [        [        R                  /S-  5       n [        [	        S5      U S9S:X  d   e[        [	        S5      U S9S:X  d   e S S S 5        [        / 5       n [        [	        S5      5      S:X  d   e[        [	        S5      5      S:X  d   e S S S 5        g ! , (       d  f       NX= f! , (       d  f       g = f)N   C   r?   67z-1)rD   r!   r-   r   r   rB   s    r0   test_IntegerrL   -   s    	r))*Q.	/172;3t;;;72;3t;;; 
0 
b	Q72;'4///72;'4/// 
	 
0	/ 
	s   3B$%5B5$
B25
Cc                  X   [        [        R                  /S-  5       n [        [	        SS5      U S9S:X  d   e[        [	        SS5      U S9S:X  d   e[        [	        SS	5      U S9S
:X  d   e[        [	        SS	5      U S9S:X  d   e S S S 5        [        [        R
                  [        R                  /S-  5       n [        [        [	        SS5      -   SU S9S:X  d   e[        [	        SS5      [        -  U S9S:X  d   e S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N         rH   z(/ 3 7)   	   2iz(/ -3 7)rF   Fauto_declarer?   z(+ (/ 3 7) x)z$(declare-const x Real)
(* (/ 3 7) x))rD   r!   r-   r   r   r+   xrK   s    r0   test_RationalrX   6   s   	r))*Q.	/18Aq>A6)CCC8B?Q73>>>8Ar?Q7:EEE8B+a8IEEE	 
0 
r--r/A/ABQF	G11x1~-EANRaaaa8Aq>A-: ?N N 	N N 
H	G 
0	/ 
H	Gs   A)D
<AD

D
D)c                     [        [        R                  /S-  5       n [        [	        [
        [        5      SU S9S:X  d   e[        [        [
        [        5      SU S9S:X  d   e[        [        [
        [        5      SU S9S:X  d   e[        [        [
        [        5      SU S9S:X  d   e[        [        [
        [        5      SU S9S:X  d   e[        [        [
        [        5      SU S9S	:X  d   e S S S 5        g ! , (       d  f       g = f)
N   FrU   (assert (= x y))(assert (not (= x y)))(assert (<= x y))(assert (< x y))(assert (> x y))(assert (>= x y)))rD   r!   r+   r   r   rW   yr   r   r   r   r   rK   s    r0   test_Relationalrb   C   s    	r--.3	42a8%!DHZZZZ2a8%!DH````2a8%!DH[[[[2a8%!DHZZZZ2a8%!DHZZZZ2a8%!DH[[[[ 
5	4	4s   CC;;
D	c                    ^  [        [        R                  /S-  5       m [        [        R
                  " [        [        5      ST S9S:X  d   e[        [        R                  " [        [        5      ST S9S:X  d   e[        [        R                  " [        [        5      ST S9S:X  d   e[        [        R                  " [        [        5      ST S9S:X  d   e[        [        R                  " [        [        5      ST S9S:X  d   e[        [        R                  " [        [        5      ST S9S	:X  d   e S S S 5        [        [        U 4S
 j5        g ! , (       d  f       N#= f)NrZ   FrU   r[   r\   r^   r]   r_   r`   c                  H   > [        [        R                  " [        5      T S9$ NrH   )r   r   complexrW   rK   s   r0   <lambda>,test_AppliedBinaryRelation.<locals>.<lambda>V   s    {199Q<!Dr/   )rD   r!   r+   r   r   eqrW   ra   neltlegtger   
ValueErrorrK   s   @r0   test_AppliedBinaryRelationrp   M   s   	r--.3	41441:EAFJ\\\\1441:EAFJbbbb1441:EAFJ\\\\1441:EAFJ]]]]1441:EAFJ\\\\1441:EAFJ]]]] 
5 :DE 
5	4s   DE
E c                  `   [        [        R                  /S-  5       n [        [        R
                  " [        5      SU S9S:X  d   e[        [        R                  " [        5      SU S9S:X  d   e[        [        R                  " [        5      SU S9S:X  d   e[        [        R                  " [        5      SU S9S:X  d   e[        [        R                  " [        5      SU S9S:X  d   e[        [        R                  " [        5      SU S9S	:X  d   e S S S 5        g ! , (       d  f       g = f)
N   FrU   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))))rD   r!   r+   r   r   positiverW   negativezerononpositivenonnegativenonzerorK   s    r0   test_AppliedPredicatery   Y   s    	r--.2	3q1::a=uqIM____1::a=uqIM____166!951EI[[[[1==+%!LPcccc1==+%!LPcccc199Q<eaHLdddd 
4	3	3s   C7D
D-c            	      ~   [        [        R                  [        R                  /5       n [	        [        [        5      [        [        5      -  SU S9S:X  d   e S S S 5        [        [        R                  /5       n [	        [        [        5      [        [        [        [        0[        S0[        R                  S0U S9S:X  d   e S S S 5        [        S5      n[        [        R                  /5       n [	        U" [        5      U[        [        /[         4   0U S	9S
:X  d   e S S S 5        [        / 5       n [	        U" [        5      U[        [        /[        4   0U S	9S:X  d   e[	        [#        U" [        [$        5      [        5      U[        [        [        /[        4   0U S	9S:X  d   e[	        [#        U" [        [$        5      [        5      U[        [        [        /[        4   0US["        S0U S9S:X  d   e S S S 5        [        [        R                  /S-  5       n [	        [#        U" [        [$        5      [        5      US["        S0U S9S:X  d   e S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNl= f! , (       d  f       N= f! , (       d  f       g = f)NFrU   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r}   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==)r}   r   r?   zf(declare-const x Int)
(declare-const y Bool)
(declare-const z Bool)
(assert (== (MY_KNOWN_FUN x z) y))rO   )r   r?   zg(declare-const x Real)
(declare-const y Real)
(declare-const z Real)
(assert (== (MY_KNOWN_FUN x z) y)))rD   r!   r+   r-   r   r   rW   r   absintra   boolsympyAbsr   r   floatr   z)rB   my_fun1s     r0   test_Functionr   b   su   	r--r/A/AB	Cq3q6SV+%!LPgggg 
D 
r))*	+qFS!T*n-"YY(;<
%% 	% % 
, tnG	r))*	+qAJ!8TFEM#:;
	 	  
, 
b	QAJ!8TFDL#9:
	 	  wq!}a !8S$K,=#>?
'	' 	' ' wq!}a !8S$K,=#>?$nb$?	

22 	2 2' 
: 
r--.2	3qwq!}a $nb$?
2	2 	2 2 
4	3i 
D	C 
,	+ 
,	+ 
	: 
4	3s=   /I'<AI950J9CJ&7J.'
I69
J
J
J+.
J<c                     [        [        R                  [        R                  /5       n [	        [
        S-  SU S9S:X  d   e S S S 5        [        [        R                  [        R                  [        R                  /5       n [	        [
        [        S-  -  SU S9S:X  d   e S S S 5        [        [        R                  [        R                  /5       n [	        [
        [        SS5      -  SU S9S:X  d   e[        SS	S
9n[        SS	S9n[        S5      nS nSU" U5      S-  XU-  -
  -  -  US-  U-   -  nS S S 5        [        / 5       n [	        [        WS:  W5      [        WU:  U5      US	-  [        WS[        SS5      -   5      /U S9S:X  d   e S S S 5        [        [        R                  [        R                  /5       n [	        [        SW[        [        WUSS9SSS9SS9U S9S:X  d   e S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNs= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)NrO   FrU   z	(pow x 3)z(pow x (pow y 3))rF   z(pow x (/ 2 3))aTintegerbrealcc                     SU -  $ )NrF   r#   )rW   s    r0   gtest_Pow.<locals>.g   s
    Q,r/      g      @rH   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)))evaluaterJ   zG(declare-const b Real)
(declare-const c Real)
(* -2 c (pow (* b b) -1)))rD   r!   r+   r-   r   rW   ra   r   r   r   r   r	   )rB   r   r   r   r   exprs         r0   test_Powr      s   	r--r/A/AB	Cq16BkQQQ 
D	r--r/E/ErGYGYZ	[_`1a=uqIM```` 
\	r--r/A/AB	Cq1A.UQOSdddd3%3T"3K AaD3JAQJ//16A:> 
D 
b	Q1q5!1q5!D4Xa^+,	 
	 	  
( 
r--r/A/AB	CqAs3q!e4b5ITYZ
)) 	) ) 
D	CI 
D	C	[	[	C	C 
	( 
D	Cs=   G? HA$H#A	H4-I?
H
H #
H14
I
Ic                  t   [        [        R                  [        R                  [        R                  /5       n [	        [
        [        -  SU S9S:X  d   e S S S 5        [        [        R                  [        R                  [        R                  /5       n [	        [
        [        -   SU S9S:X  d   e S S S 5        [        [        R                  [        R                  /5       n [	        [
        * SU S9S:X  d   e S S S 5        g ! , (       d  f       N= f! , (       d  f       Ni= f! , (       d  f       g = f)NFrU   z(* x y)z(+ x y)z(* -1 x))rD   r!   r+   r-   r   rW   ra   rK   s    r0   test_basic_opsr      s    	r--r/E/ErGYGYZ	[_`1q5uqAYNNN 
\ 
r--r/E/ErGYGYZ	[_`1q5uqAYNNN 
\ 
r--r/A/AB	CqA2EA>*LLL 
D	C 
\	[ 
\	[ 
D	Cs#   DD&D)
D
D&)
D7c                    ^^^^^	 SSK Jm  SSKJmJmJm	   " UUUUU	4S jST5      m[        S5      n [        [        R                  /5       n[        T" [        SS4[        U " [        5      U " [        5      5      5      U [        [        /[        4   0US	9S
:X  d   e S S S 5        [        [        R                  /S-  5       n[        T" [        SS4[        SS4[!        [        [        [        5      [        U " [        5      U " [        5      5      5      5      U [        [        /[        4   0US	9S:X  d   e S S S 5        [#        SSS9n[#        SSS9n[#        S5      n[        / 5       n[        T" USS4T" USS4[!        X#:  [%        U5      U:  5      U-  5      5      US9S:X  d   e S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)Nr   )Boolean)IntervalTuplesympifyc                   T   > \ rS rSrU4S jr\S 5       r\S 5       rU UUU4S jrSr	g)*test_quantifier_extensions.<locals>.ForAll   c                 ,  > U R                    VVVs/ s HD  u  p#nUR                  UR                  UR                  UR                  U      T" X45      /5      PMF     nnnnUR                  SUR                  SU5      U R
                  /5      $ s  snnnf )Nforall )limits_s_exprr:   _known_typesr}   function)selfprintersymstartendbound_symbol_declarationsr   s         r0   _smtlib2test_quantifier_extensions.<locals>.ForAll._smtlib   s    
 +/++	) +6s3 (()=)=c)BCU(+  +6	 & ) ??8$=>.  )s   ABc                 R    U R                    VVs1 s H  u  n  o!iM
     snn$ s  snnf N)r   )r   s_s      r0   bound_symbols8test_quantifier_extensions.<locals>.ForAll.bound_symbols   s$    %)[[1['!QA[111s   #c                     U R                    Vs1 s H  oR                  iM     nnU R                  R                   Vs1 s H  nUR                  U;  d  M  UiM     sn$ s  snf s  snf r   )r   r:   r   free_symbols)r   r   bound_symbol_namess      r0   r   7test_quantifier_extensions.<locals>.ForAll.free_symbols   sc    262D2D!E2DQ&&2D!E==555a66!33 5  "Fs   AA$A$c                 $  > U Vs/ s H$  n[        U[        T45      (       d  M  T	" U5      PM&     nnU Vs/ s H  n[        UT5      (       d  M  T	" U5      PM      nn[        U5      [        U5      -   [        U5      :X  d   e[        U5      S:X  d   eUS   n[        UT5      (       a+  TR                  " T/X4R                  -   QUR
                  P76 $ TR                  U 5      n[        X4/-   5      Ul        X5l        XEl        U$ s  snf s  snf )Nr   r   )
isinstancetuplelen__new__r   r   _args)
clsargsr   r   r   instr   ForAllr   r   s
         r0   r   2test_quantifier_extensions.<locals>.ForAll.__new__   s    *.P$Q*Q2Ojgaj$FP,0KDqJq'4J

DHKv;X.#d);;;x=A%%%{H(F++FNN5 ??255=5F5F5 . ??3'Dv
23DJ K$MK QKs   DDDDr#   N)
r$   r%   r&   r'   r   propertyr   r   r   r.   )r   r   r   r   r   s   r0   r   r      s:    
	 
	2 
	2 
	 
		 	r/   r   fir"   r   z,(assert (forall ( (x Real [-42, 21])) true))rF   irO   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   rH   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   rD   r!   r+   r   rW   r   r   r   ra   r   r   r   )
r   rB   r   r   r   r   r   r   r   r   s
        @@@@@r0   test_quantifier_extensionsr      s   +..' ' 'V 	A	r--.	/1AsC="QqT1Q4.1Xugun56
 <	< 	< < 
0 
r--.2	3qC4|1a"QqT1Q4.1 Xugun56
 	  
4 	sD!AsAsA	b	QAsV3KAE47Q;/!3
 

 
	 
 
	3 
0	/ 
4	3$ 
	s'   AF8A6G
.A G8
G

G
G)c                     [        [        R                  /5       n [        S[        -  [        S0U S9S:X  d   e S S S 5        [        [        R                  /5       n [        [        [        SSS9S[        -  /[        S0U S9S:X  d   e S S S 5        [        [        R                  /5       n [        [        [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  SS9[        R                  S	[        R                  S
[        R                  S0[        S[        S0SU S9S:X  d   e S S S 5        [        [        R                  /5       n [        [        [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  SS9[        R                  S	0[        S[        S0SU S9S:X  d   e S S S 5        [        [        R                  /5       n [        [        [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  SS9[        S0SU S9S:X  d   e S S S 5        [        [        R                  /5       n [        [        [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  SS9[        R                  S0[        S0SU S9S:X  d   e S S S 5        g ! , (       d  f       GNp= f! , (       d  f       GN1= f! , (       d  f       GN`= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       g = f)Nr   MY_PI)known_constantsr?   z(pow MY_PI -1)gQ	@Fr   z&(assert (= MY_PI 3.14))
(pow MY_PI -1)pr   rC   plusr   rO   )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))rD   r!   r-   r   r   r   r   r
   ZeroOneNegativeOneHalfExp1PiGoldenRatior   rK   s    r0   test_mix_number_mult_symbolsr   7  s   	r))*	+qFM
 	 	  
, 
r))*	+q2te,B  M
 	  
, 
r))*	+qq}}affamme= c1==#
 VU 
 11 	1 1 
,  
r))*	+qq}}affamme= c VU 
 44 	4 4 
, 
r))*	+qq}}affamme= &M
 44 	4 4 
, 
r))*	+qq}}affamme=VVSM &M
 11 	1 1 
,	+u 
,	+ 
,	+ 
,	+  
,	+ 
,	+ 
,	+sK   N$.N6.C OB OB	O, BO>$
N36
O
O
O),
O;>
Pc                  ,   [        / 5       n [        [        [        -  U S9S:X  d   e[        [        [        -  U S9S:X  d   e[        [        ) U S9S:X  d   e[        [        [        -  [        -  U S9S:X  d   e S S S 5        [        [
        R                  /5       n [        [        [        ) -  [        S:  -  U S9S:X  d   e S S S 5        [        S5      n[        S	5      n[        S
5      n[        [
        R                  /5       n [        [        U" [        5      [        5      [        [        U" [        5      5      /U[        [        /[        4   U[        [        /[        4   0U S9S:X  d   e S S S 5        [        / 5       n [        [        U" [        5      [        5      [        [        U" [        5      5      /U[        [        /[        4   U[        [        /[        4   0U S9S:X  d   e S S S 5        [        / 5       n [        [        U" [        5      [        5      [        U" U" [        5      5      [        5      [        U" U" U" [        5      5      5      [        5      /U[        [        /[        4   U[        [        /[        4   U[        [        /[        4   0U S9S:X  d   e S S S 5        g ! , (       d  f       GNI= f! , (       d  f       GN= f! , (       d  f       GNs= f! , (       d  f       GN= f! , (       d  f       g = f)NrH   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))rO   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)))rD   r   rW   ra   r   r!   r+   r   r   r   r   r   r   r   r   )rB   r   r   r   s       r0   test_booleanr   }  s   	b	Q1q51- 2F F 	F F 1q51- 2E E 	E E A2* /A A 	A A1q519q1 6L L 	L L 
 
r--.	/1AFq1u-: ?f f 	f f 
0 	AAA	r--.	/1!a[1Q4[ 8TFCK(!Xtfck-B
$$ 	$ $ 
0 
b	Q!a[1Q4[ 8TFCK(!Xtfck-B
$$ 	$ $ 
 
b	Q!a[!A$^!AaD'
A  8UGSL)8SE4K(8TFEM*
 

,, 	, , 
	k 
	 
0	/ 
0	/ 
	 
	s?   A.J='KA,K!A,K3B+L=
K
K!
K03
L
Lc            
      X  ^ ^ [        [        R                  [        R                  /5       m[	        [        [        [        S:  4[        S-  S45      STS9S:X  d   e S S S 5        [        [        R                  [        R                  /5       m[	        [        [        S-  [        S:  4[        S-  [        S:  4[        S-  [        S:  4[        S	-  S45      STS9S
:X  d   e S S S 5        [        [        [        S:  4[        S-  [        S:  4[        [        5      [        S:  45      m [        [        R                  [        R                  /5       m[        [        U U4S j5        S S S 5        g ! , (       d  f       GN = f! , (       d  f       N= f! , (       d  f       g = f)Nr   rF   TFrU   z(ite (< x 1) x (pow x 2))rO   rN      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 TS9$ re   r   r   rB   s   r0   rg   'test_smtlib_piecewise.<locals>.<lambda>  s    {4!'Dr/   )
rD   r!   r+   r-   r   r   rW   r   r   AssertionErrorr   s   @@r0   test_smtlib_piecewiser     sf   	r--r/A/AB	Cqq!a%jAvtn&	

 )) 	) ) 
D 
r--r/A/AB	CqqAvq1uoAvq1uoAvq1uoAvtn& 

 
	 
 
D aQZ!q&!a%3q61q5/BD	r--r/A/AB	Cq~DE 
D	C/ 
D	C 
D	C 
D	Cs$   2E8AF
F8
F

F
F)c                  <   [        [        [        S:  4[        S-  S45      n [        [        R                  [        R
                  /5       n[        SU -  US9S:X  d   e S S S 5        [        [        R                  [        R
                  /5       n[        U [        -  US9S:X  d   e S S S 5        [        [        R                  [        R                  [        R
                  /5       n[        U [        [        -  -  US9S:X  d   e S S S 5        [        [        R                  [        R
                  /5       n[        U S-  US9S	:X  d   e S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       g = f)
Nr   rF   TrH   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)))rO   z<(declare-const x Real)
(* (/ 1 3) (ite (< x 1) x (pow x 2))))r   rW   rD   r!   r+   r-   r   ra   )pwrB   s     r0   !test_smtlib_piecewise_times_constr     sE   	Aq1u:Q~	.B	r--r/A/AB	Cq1r6A.2kkkk 
D	r--r/A/AB	Cq26A.2tttt 
D	r--r/E/ErGYGYZ	[_`2Q<!4  9^  ^  	^  ^ 
\	r--r/A/AB	Cq26A.2qqqq 
D	C 
D	C	C	C	[	[	C	Cs0   EE++E<<F
E(+
E9<
F

Fc                  L   [        / 5       n [        SSU S9S:X  d   e[        SU S9S:X  d   e[        [        R                  U S9S:X  d   e[        [        R                  U S9S:X  d   e[        SU S9S:X  d   e[        SSU S9S:X  d   e S S S 5        g ! , (       d  f       g = f)	NTF)auto_assertr?   truerH   z(assert true)z(assert false)false)rD   r   r
   r   r   rK   s    r0   test_smtlib_booleanr     s    	b	Q4UQ?6III4!,???166A./AAA177Q/3CCCC51-1AAAA5ea@GKKK 
		s   A?B
B#c                  ^  ^ ^ [        S5      m [        [        R                  [        R                  /5       m[        [        U U4S j5        S S S 5        [        [        R                  /5       m[        [        U4S j5        S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)Nr   c                  |   > [        T " [        5      R                  [        5      T [        [        /[        4   0TS9$ )Nr   )r   rW   diffr   r   r   rB   s   r0   rg   $test_not_supported.<locals>.<lambda>!  s/    QqTYYq\HV[U\^cUcLdHepq!rr/   c                  4   > [        [        R                  T S9$ re   )r   r
   ComplexInfinityrK   s   r0   rg   r   #  s    Q->->!Kr/   )r   rD   r!   r+   r-   r   KeyErrorr   s   @@r0   test_not_supportedr     so    A	r--r/A/AB	Cqxrs 
D	r))*	+qxKL 
,	+ 
D	C	+	+s   B/B
B
B,c                  j    [        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   eg )Ng        z0.0geK<z(* 3.0 (pow 10 -18))g333333@z5.3r   r#   r/   r0   
test_Floatr   &  s=    su$$$+,0FFFFsu$$$r/   )>
contextlibr8   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   rW   ra   r   r!   contextmanagerIterablerD   rL   rX   rb   rp   ry   r   r   r   r   r   r   r   r   r   r   r   r#   r/   r0   <module>r     s      	     $ $ 8 8 8 8 4 4 # - /
'
1aD D /6??2. / /"0
N\	Fe=2@+)\MUpC1LI,pF8	rFLM%r/   