+
    iT              	          ^ RI Ht ^ RIHt ^ RIHt ^ RIHtHtH	t	 ^ RI
Ht ^ RIHtHt ^ RIHt ^ RIHtHt ^ R	IHtHt ^ R
IHt ^ RIHt ^ RIHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9H:t:H;t;H<t<H=t=H>t>H?t?H@t@HAtAHBtBHCtCHDtDHEtEHFtFHGtGHHtHHItIHJtJ ^ RIKHLtL ^ RIMHNtNHOtOHPtP ^ RIQHRtRHStSHTtT ]! R4      w  tUtVtWtX]! R4      w	  tYtZt[t\t]t^t_t`taR tbR tcR tdR teR tfR tgR thR tiR tjR tkR tlR tmR tnR toR  tpR! tqR" trR# tsR$ ttR% tuR& tv R' twR( txR) tyR* tzR+ t{R, t|R- t}R. t~R/ tR0 tR1 tR2 tR3 tR4 tR5 tR6 tR7 tR8 tR9 tR: tR; tR< tR= tR> tR? t]OR@ 4       tRA tRB tRC tRD tRE tRF tRG tRH tRI tRJ tRK tRL tRM tRN tRO tRP tRQ tRR tRS t]PRT 4       tRU tRV tRW tRX tRY tRZ tR[ tR\ tR] tR^ tR_ tR` tRa tRb tRc tRd tRe tRf tRg# )h    )Q)refine)oo)EqualityEqNe)S)Dummysymbols)	Piecewise)cossin)IntervalUnion)Containssimplify)/AndBoolean
EquivalentITEImpliesNandNorNotOrPOSformSOPformXorXnor	conjuncts	disjunctsdistribute_or_over_anddistribute_and_over_oreliminate_implicationsis_nnfis_cnfis_dnfsimplify_logicto_nnfto_cnfto_dnfto_int_reprbool_maptruefalseBooleanAtom
is_literalterm_to_integertruth_table
as_Booleanto_anfis_anfdistribute_xor_over_and
anf_coeffsANFformbool_mintermbool_maxtermbool_monomial_check_pair_convert_to_varsSOP_convert_to_varsPOS	Exclusivegateinputcount)CNF)raisesXFAILslow)combinationspermutationsproductzA:Dza:e w:zc                 f   \         \        ,          \        \         \        4      8X  g   Q h\         \        ,          \        \         \        4      8X  g   Q h\         \        ,          \        ,          \        \        \         \        4      \        4      8X  g   Q h\         \        ,	          \        \         \        4      8X  g   Q h\         \        ,          \        \        \         4      8X  g   Q h\         ( \        \         4      8X  g   Q h\         \        ,          \        \         \        4      8X  g   Q hR# )z)Test that |, & are overloaded as expectedN)ABr   r   Cr   r   r        \/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/logic/tests/test_boolalg.pytest_overloadingrQ   !   s     q5C1Iq5Bq!HEQ;"SAY****6WQ]"""6WQ]"""2Q<<q5C1IrO   c            
         \        4       \        J g   Q h\        \        4      \        8X  g   Q h\        R 4      \        J g   Q h\        R4      \        J g   Q h\        R R 4      \        J g   Q h\        R R4      \        J g   Q h\        RR4      \        J g   Q h\        R \        4      \        8X  g   Q h\        R\        4      \        J g   Q h\        R R R 4      \        J g   Q h\        R R \        4      \        8X  g   Q h\        R R\        4      \        J g   Q h\        ^\        4      \        8X  g   Q h\	        \
        R 4       \        \        ^8  \        ^8  4      \        J g   Q h\        ^8  p \        W P                  4      V P                  8X  g   Q h\        \        8  \        \        8  \        \        8  \        \        8*  3w  rr4\        WW44      \        W14      8X  g   Q h\        W!WC34       Uu0 uF  p\        V!  kK  	  up\        W14      08X  g   Q h\        \        \        \        ^ 4      \        \        ^ 4      4      \        \        \        ^ 4      \        \        ^ 4      4      4      \        J g   Q hR# u upi )TFc                  "    \        ^\        4      #    )r   rK   rN   rO   rP   <lambda>test_And.<locals>.<lambda>;   s
    c!QirO   N)r   r/   rK   r0   rD   	TypeError	canonicalrL   rH   r   abr   c)eglgeleis         rP   test_Andrc   -   s   5D==q6Q;;t9u:tT?d"""tUu$$$ue%%%tQ<1ua=E!!!tT4 D(((tT1"""tUA%'''q!9>>
9'(q1ua1f&&&	AAq++!++---q5!a%aa/LA"qRB
***)1.9:9CG9:s2zlJJJs2a8R1X&Bq!HbAh(?@EIII ;s   =Jc                     \        4       \        J g   Q h\        \        4      \        8X  g   Q h\        R 4      \        J g   Q h\        R4      \        J g   Q h\        R R 4      \        J g   Q h\        R R4      \        J g   Q h\        RR4      \        J g   Q h\        R \        4      \        J g   Q h\        R\        4      \        8X  g   Q h\        R RR4      \        J g   Q h\        R R\        4      \        J g   Q h\        RR\        4      \        8X  g   Q h\        ^\        4      \        J g   Q h\	        \
        R 4       \        \        ^8  \        ^8  4      \        J g   Q h\        ^8  p \        W P                  4      V 8X  g   Q h\        \        8  \        \        8  \        \        8  \        \        8*  3w  rr4\        WW44      \        W4      8X  g   Q hR# )TFc                  "    \        ^\        4      # rT   )r   rK   rN   rO   rP   rV   test_Or.<locals>.<lambda>S   s
    bAhrO   N)r   r0   rK   r/   rD   rX   rY   rL   )r]   r^   r_   r`   ra   s        rP   test_Orrg   E   s   45==a5A::d8te9dD>T!!!dE?d"""eUu$$$dA;$eQ<1dE5!T)))dE1%%%eUA!###a8t
9&'a!eQ!V$$$	AAa"""q5!a%aa/LA"aBr!y(((rO   c                     \        4       \        J g   Q h\        \        4      \        8X  g   Q h\        \        \        4      \        J g   Q h\        R \        \        4      \        J g   Q h\        \        \        \        \        \        4      \        8X  g   Q h\        R RR\        \        4      \        \        \        4      ( 8X  g   Q h\        R 4      \        J g   Q h\        R4      \        J g   Q h\        R R 4      \        J g   Q h\        R R4      \        J g   Q h\        RR4      \        J g   Q h\        R \        4      \        ( 8X  g   Q h\        R\        4      \        8X  g   Q h\        R RR4      \        J g   Q h\        R R\        4      \        ( 8X  g   Q h\        RR\        4      \        8X  g   Q h\        \        \        \        4      \         4      '       g   Q h\        \        \        \        \        \        4      4      \        \        \        \        \        4      8X  g   Q h\        \        \        \        \        \        4      4      \        \        \        4      8X  g   Q h\        \        ^8  \        ^8  \        4      \        ^ ^\        4      u;8X  d   \        ^^ \        4      8X  g   Q h Q h\        ^8  p \        W P                  4      \        ^ ^ 4      u;8X  d   \        ^^4      8X  g   Q h Q hR# TFN)	r   r0   rK   r/   rL   
isinstancerM   DrY   )r]   s    rP   test_Xorrl   [   s/   5E>>q6Q;;q!9tQ?d"""q!Q1"""tUE1a(SAYJ666t9u:tT?e###tUt###ue%%%tQ<A2ua=AtUE"d***tUA1"$$$ueQ1$$$c!Qi%%%%q!SAY3q!Q?222q!SAY3q!9,,,q1ua1fa C1aL@C1aL@@@@@	AAq++#a)8s1ay88888rO   c                      \         \        ,          p V P                  \        4      \         \        ,          \         ( \        ( ,          ,          8X  g   Q hR # N)xyrewriter   exprs    rP   test_rewrite_as_Andrt   t   s3    q5D<<QA27 3333rO   c                      \         \        ,          p V P                  \        4      \         \        ( ,          \        \         ( ,          ,          8X  g   Q hR # rn   )ro   rp   rq   r   rr   s    rP   test_rewrite_as_Orrv   y   s3    q5D<<QB1r62222rO   c                      \         \        ,          \        \        ( ,          ,          p V P                  \        4      \         \        ,          ( \        \        ( ,          ( ,          ( 8X  g   Q hR # rn   )rp   zwrq   r   rr   s    rP   test_rewrite_as_Nandrz   ~   sC    Ea1"fD<<QU8QBi#7!8888rO   c                      \         \        \        ( ,          ,          p V P                  \        4      \         ( \        \        ( ,          ( ,          ( 8X  g   Q hR # rn   )rx   rp   ry   rq   r   rr   s    rP   test_rewrite_as_Norr|      s9    QB<D<<1"aRy. 1111rO   c                      \        \        R  4       \        R4      \        J g   Q h\        R4      \        J g   Q h\        ^ 4      \        J g   Q h\        ^4      \        J g   Q h\        ^4      \        J g   Q hR# )c                      \        R R4      # )TF)r   rN   rO   rP   rV   test_Not.<locals>.<lambda>   s    c$.rO   TFN)rD   rX   r   r0   r/   rN   rO   rP   test_Notr      sa    
9./t9u:q6T>>q6U??q6U??rO   c                  F   \        4       \        J g   Q h\        \        4      \        ( 8X  g   Q h\        R 4      \        J g   Q h\        R4      \        J g   Q h\        R R 4      \        J g   Q h\        R R4      \        J g   Q h\        RR4      \        J g   Q h\        R \        4      \        ( 8X  g   Q h\        R\        4      \        J g   Q h\        R R R 4      \        J g   Q h\        R R \        4      \        ( 8X  g   Q h\        R R\        4      \        J g   Q hR# ri   )r   r0   rK   r/   rN   rO   rP   	test_Nandr      s    6U??7qb==:;$du$$$e$$$u%%%a=QBq>T!!!dD!U***dA1"$$$eQ4'''rO   c                  B   \        4       \        J g   Q h\        \        4      \        ( 8X  g   Q h\        R 4      \        J g   Q h\        R4      \        J g   Q h\        R R 4      \        J g   Q h\        R R4      \        J g   Q h\        RR4      \        J g   Q h\        R \        4      \        J g   Q h\        R\        4      \        ( 8X  g   Q h\        R R R 4      \        J g   Q h\        R R \        4      \        J g   Q h\        R R\        4      \        J g   Q hR# ri   )r   r/   rK   r0   rN   rO   rP   test_Norr      s    5D==q6aR<<t9u:tT?e###tUu$$$ue$$$tQ<5   ua=QBtT4 E)))tT1&&&tUA%'''rO   c                  "   \        4       \        J g   Q h\        \        4      \        ( 8X  g   Q h\        \        \        4      \        J g   Q h\        R \        \        4      \        J g   Q h\        \        \        \        \        \        4      \        ( 8X  g   Q h\        R 4      \        J g   Q h\        R4      \        J g   Q h\        R R 4      \        J g   Q h\        R R4      \        J g   Q h\        RR4      \        J g   Q h\        R \        4      \        8X  g   Q h\        R\        4      \        ( 8X  g   Q h\        R RR4      \        J g   Q h\        R R\        4      \        8X  g   Q h\        RR\        4      \        ( 8X  g   Q hR# ri   )r    r/   rK   r0   rN   rO   rP   	test_Xnorr      s>   6T>>7qb==1:au$$$1aA1"$$$:;$dt###e%%%u%%%a=Aq>aReU#u,,,eQ1$$$ua QB&&&rO   c                     \        \        R  4       \        RR4      \        J g   Q h\        RR4      \        J g   Q h\        RR4      \        J g   Q h\        RR4      \        J g   Q h\        ^ \
        4      \        J g   Q h\        ^^4      \        J g   Q h\        ^^ 4      \        J g   Q h\
        \        ,	          \        \
        ,          8X  g   Q h\
        ^8  \
        ^8  ,	          \
        ^8  8X  g   Q h\
        ^8  \        P                  \
        8  ,	          \        J g   Q h\
        \
        ,	          \        J g   Q hR# )c                  4    \        \        \        \        4      # rn   )r   rK   rL   rM   rN   rO   rP   rV   test_Implies.<locals>.<lambda>   s    wq!Q/rO   TFN)	rD   
ValueErrorr   r/   r0   rK   rL   r	   OnerN   rO   rP   test_Impliesr      s   
:/04$&&&45(((5$4'''5% D(((1a=D   1a=D   1a=E!!!6Q!VEqAv16***Equuqy!T)))6T>>rO   c                     \        \        \        4      \        \        \        4      u;8X  d    \        \        \        \        4      8X  g   Q h Q h\        4       \        J g   Q h\        \        \        4      \        \        4      u;8X  d   \        J g   Q h Q h\        R R 4      \        RR4      u;8X  d   \        J g   Q h Q h\        R R4      \        RR 4      u;8X  d   \        J g   Q h Q h\        \        R 4      \        8X  g   Q h\        \        R4      \        \        4      8X  g   Q h\        \        \        R 4      \        \        ,          8X  g   Q h\        \        \        R4      \        ( \        ( ,          8X  g   Q h\        ^\        4      \        8X  g   Q h\        ^ \        4      \        \        4      8X  g   Q h\        \        \        \        \        4      4      \        \        \        \        4      \        4      8w  g   Q h\        \        ^8  \        ^8  4      \        J g   Q h\        \        ^8  \        ^8  ^ 4      \        J g   Q h\        \        ^8  \        ^8  ^4      \        J g   Q h\        \        ^8  \        P                  \        8  4      \        ^^4      u;8X  d   \        ^ ^ 4      8X  g   Q h Q h\        \        \        \        4      \        \        \        4      4      \        J g   Q hR# ri   )
r   rK   rL   r/   r0   r   rM   r	   r   r   rN   rO   rP   test_Equivalentr      s*   az!Q/F:aA3FFFFFF<4az!}444444dD!Zu%=EEEEEEdE"j&=FFFFFFa!###a3q6)))aD!QU***aE"qbA2g---aq   as1v%%%aAq)*jAq9I1.MMMMa!eQ!V$---a!eQ!VQ'5000a!eQ!VQ'5000a!eQUUQY':a+;Oz!Q?OOOOOOhq!nhq!n5===rO   c                      \        R R R 4      \        J g   Q h\        RR R 4      \        J g   Q h\        RRR 4      \        J g   Q h\        RRR4      \        J g   Q hR# )FTN)rA   r/   r0   rN   rO   rP   test_Exclusiver      s^    UE5)T111T5%(D000T4'5000T4&%///rO   c                  >   \        \        \        \        4      4      P	                  \        \        \        4      \        \        4      4      4      R J g   Q h\        \        \        4      P	                  \        \        ,	          \        \        ,	          ,          4      R J g   Q h\        \        ( ,          \        ( \        ,          ,          P	                  \        ( \        ( ,          \        \        ,          ,          4      R J g   Q h\        \        ,	          P	                  \        ( \        ( ,	          4      RJ g   Q h\        \        \        ,	          ,	          P	                  \        \        \        ,	          ,	          4      RJ g   Q h\        \        R 4       R# )TFc                  X    \         \        ,          P                  \         \        8  4      # rn   )rK   rL   equalsrN   rO   rP   rV   test_equals.<locals>.<lambda>   s    Qq1u(=rO   N)
r   r   rK   rL   r   r   r   rM   rD   NotImplementedErrorrN   rO   rP   test_equalsr      s    r!Qx=CFCF 34<<<a""AFqAv#674???!VQ''!qbQU(;<DDDF??A2!8$---!q&M!!!Q-0E999
 =>rO   c                 >  a . RO. RO. RO. RO.p . RO. RO. RO. RO.p\        \        \        \        .V 4      \	        \        \        \        4      \        4      \        \        \        4      \        4      4      8X  g   Q h\        \        \        \        \        .V4      4      \        \	        \        \        \        4      \        \        4      4      \        \        \        4      4      4      8X  g   Q h\        \        \        \        .W,           4      \        J g   Q h\        \        \        \        .W,           4      \        J g   Q h\        \        4       \        4       \        4       .W,           4      \        J g   Q h. RO. RO. RO. RO. RO.o. RO. RO. RO.p\        \        \        \        \        .SV4      \	        \        \        \        4      \        \        \        4      \        \        4      4      4      8X  g   Q h\        \        \        \        \        .SV4      \        \	        \        \        4      \        4      \        4      8X  g   Q h. ROo. ROp\        \        \        \        \        .SV4      \	        \        \        \        4      \        \        \        4      \        \        4      4      4      8X  g   Q h\        \        \        \        \        .SV4      \        \	        \        \        4      \        4      \        4      8X  g   Q h^. RO^. RO. RO.o^ . RO^.p\        \        \        \        \        .SV4      \	        \        \        \        4      \        \        \        4      \        \        4      4      4      8X  g   Q h\        \        \        \        \        .SV4      \        \	        \        \        4      \        4      \        4      8X  g   Q h^\        ^\        ^/.o^ . RO^.p\        \        \        \        \        .SV4      \	        \        \        \        4      \        \        \        4      \        \        4      4      4      8X  g   Q h\        \        \        \        \        .SV4      \        \	        \        \        4      \        4      \        4      8X  g   Q h\        ^\        ^/^.o. RO.p. RO.o\        \        V3R l4       \        \        V3R l4       \        \        R 4       \        \        \	        \        \         4      4      p\#        \        \        \         ,          ,          4      V8X  g   Q h\#        \        \        ,          \        \         ,          ,          4      V8X  g   Q h\#        \%        \        \        4      4      \	        \        \        4      \        4      8X  g   Q h\#        \'        \        \        4      4      \	        \        \        \        4      \        \        \        4      \        \        4      4      4      8X  g   Q h\#        \        \)        \        ^4      \         4      4      \        \)        \        ^4      \         4      8X  g   Q h\#        \        \)        \        ^4      \        4      4      \        \)        \        ^4      \        4      8X  g   Q h\#        \        \)        \        \        4      \         4      4      \        \)        \        \        4      \         4      8X  g   Q h\#        \	        \        \)        \        ^4      \        4      \        \)        \        ^4      \         4      4      4      \        \)        \        ^4      \	        \        \         4      4      8X  g   Q h\        ( \        ( ,          \        ( ,          \        ( \        ( ,          \        ,          ,          p\        \        V4      p\#        V4      \        \        ( ,          \        ( ,          8X  g   Q h\        \        R 4       \+        \	        \        \        8*  \        \        \        8  \        4      4      4      \        \        8*  8X  g   Q h\+        \	        \        \        8*  \        \        \        8  \        4      4      4      \        \        8*  8X  g   Q h\+        \	        \        \        8  \        \        \        8  \        4      4      4      \        \        8  8X  g   Q h\-        R4      w	  rdrxrYrpWd,          V,          V,          V,          V	,          V
,          V,          V,          Wd,          V,          V,          V,          V	,          V
,          V,          V( ,          ,          p\#        V4      V8X  g   Q h\#        Wd,          V,          V,          Wd,          R7      Wx,          8X  g   Q h\        \        \        .^^ ..4      p\        \        \        .^^ ..4      V8X  g   Q h\        \        \        .^^ ..4      V8X  g   Q h\        \        R 4       \        \        .^..^ ..4      \        J g   Q h\        \        .^ ..^..4      \        J g   Q h\        \        .. . 4      \.        J g   Q h\        \        R 4       \        \        .^..^ ..4      \        J g   Q h\        \        .^ ..^..4      \        J g   Q h\        \        .. . 4      \.        J g   Q h\+        \        \        ,          \        \         ,          ,          4      \        \        \	        \        \         4      4      8X  g   Q h\+        \        \        \        \        4      4      4      R	8X  g   Q h\+        \	        \        \        \        4      4      4      R
8X  g   Q h\+        \        \1        \        ^ 4      \1        \        \        4      4      4      \        \1        \        ^ 4      \1        \        ^ 4      4      8X  g   Q h\        \1        \        ^,
          ^ 4      \1        \        \        4      4      P+                  4       \        \1        \        ^4      \1        \        ^4      4      8X  g   Q h\        \3        \        ^,
          ^ 4      \3        \        \        4      4      P+                  4       \        \3        \        ^4      \3        \        \        4      4      8X  g   Q h\        \1        \        ^,
          ^ 4      \3        \        \        4      4      P+                  4       \        \1        \        ^4      \3        \        ^4      4      8X  g   Q h\        \1        \        ^,
          ^ 4      \1        \        \        \        ,           4      \1        \        \        ,           ^ 4      4      P+                  4       \        \1        \        ^4      \1        \        R4      \1        \        ^4      4      8X  g   Q h\        \1        \        ^,
          ^ 4      \1        \        ^,           ^4      4      P+                  4       \1        \        ^4      8X  g   Q h\        \3        \        ^,
          ^ 4      \3        \        ^,           ^4      4      P+                  4       \3        \        ^4      8X  g   Q h\        \1        \        ^,
          ^ 4      \1        \        ^,           ^4      4      P+                  4       R	8X  g   Q h\        \3        \        ^,
          ^ 4      \3        \        ^,           ^4      4      P+                  4       \        \3        \        ^4      \3        \        ^ 4      4      8X  g   Q h\+        \5        \        \        ( 4      4      R
8X  g   Q hR# )z)
Test working of simplification methods.
c                  D   < \        \        \        \        \        .S 4      # rn   )r   ry   ro   rp   rx   mintermss   rP   rV   -test_simplification_boolalg.<locals>.<lambda>#      w1a|X>rO   c                  D   < \        \        \        \        \        .S 4      # rn   r   ry   ro   rp   rx   r   s   rP   rV   r   $  r   rO   c                  D    \        \        \        \        \        .R .4      # )abcdefgr   rN   rO   rP   rV   r   &  s    gq!QlYK@rO   c                  P    \        \        \        \        ,          ,          R R7      # )blabla)form)r)   rK   rL   rM   rN   rO   rP   rV   r   7  s    ~a1q5kIrO   za b c d e f g h j)dontcarec                  .    \        \        .^..^..4      #    )r   ro   rN   rO   rP   rV   r   L      wsaSEQC59rO   c                  .    \        \        .^..^..4      # r   )r   ro   rN   rO   rP   rV   r   Q  r   rO   FTN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   rU      )r   ro   rp   rx   r   r   r   r   r/   r
   ry   rD   r   rX   rK   rL   rM   r)   r   r   r   r   r   r0   r   r   r   )set1set2	dontcaresansr[   r]   rZ   r\   dfr^   hjrs   r   s                 @rP   test_simplification_boolalgr      sh
    y)Y7Dy)Y7DAq!9d#r#c!fa.#c!fa.'IIIIw1ay$'(r#c!fc!f%s1ay123 3 3Aq!9dk*d222Aq!9dk*d222EGUWeg.<DDDlL,H|\:IAq!h	2
3q!9c#a&#a&)*	+,	+Aq!Q<95RA]A9NNNN HIAq!h	2
3q!9c#a&#a&)*	+,	+Aq!Q<95RA]A9NNNN<LHL!$IAq!h	2
3q!9c#a&#a&)*	+,	+Aq!Q<95RA]A9NNNNAq!Q< HL!$IAq!h	2
3q!9c#a&#a&)*	+,	+Aq!Q<95RA]A9NNNNAq!a HI{H
:>?
:>?
9@A aAq
C!q1u+&#---1q5QU+,333'!Q-(Bs1vqM999*Q*+c!QiSVSV,-. . .#hq!na01S!Q5KKKK#hq!na01S!Q5KKKK#hq!na01S!Q5KKKK"S!Q3S!Q5KLM(1a."Q(+, , ,
qbA21"r'A+&AAq	A!QB!+++
:IJBqAvs1q5!}-.16:::BqAvs1q5!}-.16:::BqAvs1q5!}-.16::: !((; <A!aA519q=1q 1$q(1,519q=1q 1$q(A2-.D $4''' 15A+/QU<EEE 1a&Aq6(
#CAq6QF8$+++Aq6QF8$+++
:9:A3!u%---A3!u%---A3B5(((
:9:A3!u%---A3!u%---A3B5((( QUq1u%&#aAq*::::C3q6N#u,,,Bq#a&M"d***C1a"Q(+,Bq!HbAh0GGGGr!a%|R1X&//1SAq2a85LLLLr!a%|R1X&//1SAq2a85LLLLr!a%|R1X&//1SAq2a85LLLLr!a%|R1q5\2a!eQ<8AA 	R1Xr!Ry"Q(	+, , ,r!a%|RAq\*335AqAAAr!a%|RAq\*335AqAAAr!a%|RAq\*335>>>r!a%|RAq\*33 	R1Xr!Qx	 ! ! !CA2J4'''rO   c            
        . RO. RO. RO. RO. RO.p \        \        \        \        4      4      \        4      \        \        \        /38X  g   Q h\        \        \        \
        \        \        .V 4      \        \        \
        \        \        .V 4      4      \        \        \        \        4      \        4      \        \        \
        4      \        4      \        4      \
        \
        \        \        \        \        \        \        /38X  g   Q h\        \        \
        \        \        .. RO.4      \        \        \        \        .. RO.4      4      R8w  g   Q h\        \
        \        \        .. RO. R	O.4      p\        \        \        \        .. RO. R
O.4      p\        W4      V\        \        \        \        /38X  g   Q h\        \        \
        \        4      \        \
        \        4      ( 4      R8X  g   Q h\        \        \
        \        4      \        \
        \        4      4      e   Q h\        \        \
        \        4      \        \
        \        \        4      4      e   Q h\        \        \
        \        \        4      \        \
        \        \        4      ( 4      R8X  g   Q h\        \        \        \
        \        \        4      \        \        \
        \        \        4      ( 4      R8X  g   Q hR# )z$
Test working of bool_map function.
FNr   r   r   r   r   r   r   r   )r.   r   rZ   r   ry   ro   rp   rx   r   r   r   r[   r\   r   )r   	function1	function2s      rP   test_bool_mapr   h  s   
 lL,HCAK#Aq6{222GQ1aL(3Q1aL(353q61r#a&!}a01aAq!Q2JKL L L GQ1I	{3Q1I	{358=> > >Aq	Iy#9:IAq	Iy#9:II)1a|$% % %C1IAq	z*e333C1Ir!Qx(000C1Is1a|,444C1aL3q!Q<-0E999C1aOc!Q1o%56%???rO   c                 H   \        \        R4      \        8X  g   Q h\        \        RR4      \        8X  g   Q h\        \        R4      \        J g   Q h\        \        RR4      \        J g   Q h\        \        R4      \        J g   Q h\        \        R4      \        8X  g   Q hR# )z>Test that mixing symbols with boolean values
works as expectedTFN)r   rK   r0   r   r/   rN   rO   rP   test_bool_symbolr     s     q$<1q$"""q%=E!!!q$%'''a;$a<1rO   c                     \        R \        4      RJ g   Q h\        \        \        4      R J g   Q h^R 8X  g   Q h^\        8w  g   Q h^\        8H  RJ g   Q h^ R8X  g   Q h^ \        8w  g   Q h^ \        8H  RJ g   Q h\        P                  R J g   Q h\
        \        ,          P                  '       g   Q h\
        \        ,          P                  '       g   Q h\
        ( P                  '       g   Q h\
        \        ,          P                  '       g   Q h\
        P                  \        \
        \        4      8w  g   Q h\        \
        \        4      '       g   Q hR# ri   )rj   r   r/   r0   
is_BooleanrK   rL   rN   rO   rP   test_is_booleanr     s   dG$---dG$,,,9999I%::::J5   ??d"""EEB????E<<:a1111a!!!!rO   c                     \         \        ,          P                  \         R 4      \        8X  g   Q h\         \        ,          P                  \         R4      \        J g   Q h\         \        ,          P                  \        R 4      \         8X  g   Q h\         \        ,          P                  \        R4      \        J g   Q h\         \        ,          P                  \         R \        R /4      \        J g   Q h\         \        ,          P                  \         R 4      \        J g   Q h\         \        ,          P                  \         R4      \        8X  g   Q h\         \        ,          P                  \        R 4      \        J g   Q h\         \        ,          P                  \        R4      \         8X  g   Q h\         \        ,          P                  \         R \        R /4      \        J g   Q hR# ri   )rK   rL   subsr0   r/   rN   rO   rP   	test_subsr     s2   E<<4 A%%%E<<5!U***E<<4 A%%%E<<5!U***E<<D!T*+t333E<<4 D(((E<<5!Q&&&E<<4 D(((E<<5!Q&&&E<<D!T*+t333rO   c                     \        \        \        R4      4      w  rW,          W,          8X  g   Q hW,          W,          8X  g   Q hR# )z$Test for commutativity of And and OrzA,BN)mapr   r   )rK   rL   s     rP   test_commutativer     s4    w'DA5AE>>5AE>>rO   c                     \         \        ,          \        ,          \         \        \        ,          ,          8X  g   Q hR# )zTest for associativity of AndNrK   rL   rM   rN   rO   rP   test_and_associativityr     s"     EQ;!q1u+%%%rO   c                      \         \        ,          \        ,          \         \        \        ,          ,          8X  g   Q hR # rn   r   rN   rO   rP   test_or_assicativityr     s     UaKQ!a%[)))rO   c                  0    \        4       p V ( ( V 8X  g   Q hR # rn   )r   )rZ   s    rP   test_double_negationr     s    	AR5A::rO   c            	      X   \        \        \        \        R R7      4      \        ( \        ,          8X  g   Q h\        \        \        \        \        4      ,	          ,	          4      \        \        \        \        4      \        \        4      4      \        \        4      4      8X  g   Q h\        \        \        \        \        \        4      4      \        ( \        ,          \        ( \        ,          ,          \        ( \        ,          ,          \        ( \        ,          ,          8X  g   Q hR# )FevaluateN)	r%   r   rK   rL   rM   r   r   r   rk   rN   rO   rP   test_eliminate_implicationsr     s    !'!Q"?@aR1HLLL!	a3q6k!"SVSV"4c!f=> > >!*Q1a"89BFrAv1"q&)aR!V45 5 5rO   c                     \        \        \        ,          \        ,          4      \        \        \        08X  g   Q h\        \        \        ,          \        ,          4      \        \        ,          \        08X  g   Q h\        \        4      \        08X  g   Q h\        R 4      R 08X  g   Q h\        R4      R08X  g   Q hR# ri   )r!   rK   rL   rM   rN   rO   rP   test_conjunctsr     s    QUQYAq!9,,,a!eq[!a!eQZ///Q<A3T?tf$$$Uw&&&rO   c                     \        \        \        ,          \        ,          4      \        \        \        08X  g   Q h\        \        \        ,          \        ,          4      \        \        ,          \        ,          08X  g   Q h\        \        4      \        08X  g   Q h\        R 4      R 08X  g   Q h\        R4      R08X  g   Q hR# ri   )r"   rK   rL   rM   rN   rO   rP   test_disjunctsr     s    QUQYAq!9,,,a!eq[!q1uk]222Q<A3T?tf$$$Uw&&&rO   c            	      F   \        \        \        \        \        4      \
        4      4      \        \        \        \
        4      \        \        \
        4      4      8X  g   Q h\        \        \        \        \        \
        4      4      4      \        \        \        \        4      \        \        \
        4      4      8X  g   Q h\        \        \        \        \        \
        4      4      4      \        \        \        \        4      \        \        \
        4      4      8X  g   Q hR # rn   )	r$   r   r   rK   rL   rM   r#   r8   r   rN   rO   rP   test_distributer     s    !"SAY"23s2a8R1X7NNNN!#aAq"23r#a)SAY7OOOO"3q#a)#45SAYAq	9RRRRrO   c                  4   \        R 4      w  rp\        \        W4      4      \        W4      8X  g   Q h\        \        W4      4      \	        W\        W4      4      8X  g   Q h\        \        \        W4      \        W4      V4      4      \	        V RW,          RR7      8X  g   Q h\        \        \        W4      \        W4      \        W4      \        W4      4      4      R8X  g   Q h\        \        V \        V4      \        W4      \        W4      \        W4      4      4      \	        R\        W4      \        WV4      RR7      8X  g   Q h\        \	        W4      4      \	        W4      8X  g   Q h\        \        V 4      4      \	        V RRR7      8X  g   Q h\        \        W4      4      \	        R\        W4      RR7      8X  g   Q h\        \        W4      4      \	        WR\        W4      RR7      8X  g   Q h\        \        W4      4      \	        V R\        W4      RR7      8X  g   Q h\        \        W4      4      \	        WRRR7      8X  g   Q h\        \        W,          W,	          4      RR7      \	        R\        \        W4      \        W4      4      RR7      8X  g   Q h\        \        W,          W,          4      RR7      \	        R\        \	        W4      \        W4      4      RR7      8X  g   Q h\        W V,          V( ,          ( ,          4      R8X  g   Q hR# )x,y,zTFremove_true)deepN)r   r6   r   r   r   r   r   r   r    r   r   )ro   rp   rx   s      rP   test_to_anfr     su   gGA!#a)A	)))"Q(s1Q3333"WQ]CIq12q$512 2 2"T!ZQDJFG4OOO"QAA	3q9d1jABtSYA!%@A A A#a)A	)))#a&>SDe<<<<$q*T3q9%!HHHH#a)A$A	u MMMM'!- C4Q$NNNN*Q"#s15'IIII$quaf%E2tSA71=1uEF F F#aeQU#%0tRA	3q9-5AB B B !A
m#$---rO   c            	         \        \        4      \        J g   Q h\        \        4      \        J g   Q h\        \        4      \        8X  g   Q h\        \        \        ( ,          \        ,          4      \        J g   Q h\        \        \        ( ,          \        ,          4      \        J g   Q h\        \        \        ,	          4      \        ( \        ,          8X  g   Q h\        \        \        \        \        4      4      \        ( \        ,          \        ( \        ,          ,          \        ( \        ,          ,          8X  g   Q h\        \        \        ,          \        ,          4      \        \        ,          \        ,          \        ( \        ( ,          \        ,          ,          \        \        ( ,          \        ( ,          ,          \        ( \        ,          \        ( ,          ,          8X  g   Q h\        \        \        \        \        4      4      \        ( \        ,          \        \        ,          ,          8X  g   Q h\        \        \        \        ,          \        ,          4      4      \        ( \        ( ,          \        ( ,          8X  g   Q h\        \        \        \        ,          \        ,          4      4      \        ( \        ( ,          \        ( ,          8X  g   Q h\        \        \        \        ,	          4      4      \        \        ( ,          8X  g   Q h\        \        \        \        \        \        4      4      4      \        \        \        \        \        4      \        \        ( \        ( \        ( 4      4      8X  g   Q h\        \        \        \        ,          \        ,          4      4      \        ( \        ,          \        ,          \        \        ( ,          \        ,          ,          \        \        ,          \        ( ,          ,          \        ( \        ( ,          \        ( ,          ,          8X  g   Q h\        \        \        \        \        \        4      4      4      \        ( \        ( ,          \        \        ( ,          ,          8X  g   Q h\        \        \        ,	          \        \        ,	          ,          4      \        \        ( ,          \        ( \        ,          ,          8X  g   Q h\        \        \        ,	          \        \        ,	          ,          R 4      \        ( \        ( ,          \        ,          \        ,          \        \        ( ,          \        ( \        ,          ,          ,          8X  g   Q h\        \        ^^ 4      P                  4       \        8X  g   Q h\        \        ^ ^4      P                  4       \        ( 8X  g   Q h\        \        R 4       R# )Fc                  P    \        \        ^8  ^.\        4      P                  4       # r   )r   rK   rL   r*   rN   rO   rP   rV   test_to_nnf.<locals>.<lambda>  s    c!a%!a0779rO   N)r*   r/   r0   rK   rL   r   rM   r   r   r   r   rD   rX   rN   rO   rP   test_to_nnfr      sk   $<4%=E!!!!9>>!qb&1*%%%!qb&1*&&&!q&>aR!V###*Q1%&A26qb1f*=!a*HHHH!a%!)EAI1"r'A+&!qb&A2+61"q&A2+FG G G#aA,QBFq1u#5555#a!eai.!aR1"Wr\111#a!eai.!aR1"Wr\111#a1f+!qb&(((#jAq)*+s2aA;A2rA2/OOOO#a!eai.!BFQJ1r6A:&!a%1"*5!qbA2FG G G#c!Ql#$!qbQ!V(<<<<16a1f%&1r6qb1f*====16a1f%u-B!GaK!OaRQBF 345 5 5q!Q< A%%%q!Q< QB&&& 99:rO   c                     \        \        \        ,          ( 4      \        \	        \        4      \	        \        4      4      8X  g   Q h\        \
        \        ,          \        ,          4      \        \        \
        \        4      \        \        \        4      4      8X  g   Q h\        \
        \        ,	          4      \
        ( \        ,          8X  g   Q h\        \
        \        \        ,          ,	          4      \
        ( \        ,          \
        ( \        ,          ,          8X  g   Q h\        \
        \        \        ,          ,          \
        ( \        \        ,          ,          ,          R 4      \        \        ,          8X  g   Q h\        \
        \        ,          4      \        \
        \        4      8X  g   Q h\        \        \
        \        4      4      \        \        \
        \	        \        4      4      \        \        \	        \
        4      4      4      8X  g   Q h\        \        \
        \        \        ,          4      4      \
        ( \        ,          \
        ( \        ,          ,          \        ( \        ( ,          \
        ,          ,          8X  g   Q h\        \        \
        \        \        ,          4      R 4      \        \        \	        \        4      \
        4      \        \	        \        4      \
        4      \        \        \        \	        \
        4      4      4      8X  g   Q h\        \
        ^,           4      \
        ^,           8X  g   Q hR# TN)r+   rL   rM   r   r   rK   r   r   rN   rO   rP   test_to_cnfr     s   AE(s3q63q622221q5A+#bAh1a"9999!q&>qbAX%%%!A,QBFrAv#6666!q1u+a!e,d3q1u<<<!a%=C1I%%%*Q"#s2aQ="QA-'HHHH*QA&'BFrAv1"r'A+./ / /*QA&-r#a&!}bQmR1c!f-=>? ? ?!a%=AE!!!rO   c                    a \        R 4      w  rr#rErgrrrpW,          V,          V,          V,          V,          V,          V,          V,          W,          V,          V,          V,          V,          V,          V	,          V,          ,          W
,          V,          V,          V,          V,          V,          V,          V,          ,          o\        \        S4      4      '       g   Q h\        \        V3R l4       \        \        \        3\        \        34       F8  w  ppV! WW#WEWgV4	      o\        \        V3R l4       V! SRRR7      S8X  d   K8  Q h	  R# )zx1:16c                     < \        S R R7      # Tr   r+   eqs   rP   rV   "test_issue_18904.<locals>.<lambda>2  s    vb48rO   c                     < \        S R R7      # r   r   r   s   rP   rV   r   5  s    6"t#<rO   T)r   forceN)	r   r'   r+   rD   r   zipr   r   r,   )x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15r   tr   s                    @rP   test_issue_18904r  ,  s   GNwGWDBBBBBSs7R<"r!B&+b0257R<"r!B&+c1B688b=3#c)C/#5:<B &*
:89S"I/01rrrrr2z<=d$/2555 1rO   c                      \        \        \        R8  \        ^8  \        ^8  ,          ,          4      4      '       g   Q hR# )r   N)r'   r+   r[   rZ   rN   rO   rP   test_issue_9949r  9  s.    &!b&QUq1u$5567777rO   c                  6   \         P                  ! \         P                  ! \        \        ,          ( 4      4      \        \        \        ,          ( 4      8X  g   Q h\         P                  ! \         P                  ! \        \        ,          \        ,          4      4      \        \        \        ,          \        ,          4      8X  g   Q h\         P                  ! \         P                  ! \        \        ,	          4      4      \        \        \        ,	          4      8X  g   Q h\         P                  ! \         P                  ! \        \        \        ,          ,	          4      4      \        \        \        \        ,          ,	          4      8X  g   Q h\         P                  ! \         P                  ! \        \        \        ,          ,          \        ( \        \        ,          ,          ,          4      4      \        \        \        \        ,          ,          \        ( \        \        ,          ,          ,          4      8X  g   Q h\         P                  ! \         P                  ! \        \        ,          4      4      \        \        \        ,          4      8X  g   Q hR # rn   )rC   
CNF_to_cnfto_CNFrL   rM   r+   rK   rN   rO   rP   test_to_CNFr  =  sQ   >>#**q1uX./6AE(3CCCC>>#**a!eq[12fa!eq[6IIII>>#**Q!V,-Q???>>#**Q1q5\23vaAEl7KKKK>>#**Q!a%[A2Q<%?@AVAQRUVQVK[\Z\`ade`eZfLfEgggg>>#**QU+,q1u===rO   c                     \        \        \        ,          ( 4      \        \	        \        4      \	        \        4      4      8X  g   Q h\        \
        \        \        ,          ,          4      \        \        \
        \        4      \        \
        \        4      4      8X  g   Q h\        \
        \        ,	          4      \
        ( \        ,          8X  g   Q h\        \
        \        \        ,          ,	          4      \
        ( \        \        ,          ,          8X  g   Q h\        \
        \        ,          4      \
        \        ,          8X  g   Q h\        \        \
        \        4      R 4      \        \        \
        \        4      \        \	        \
        4      \	        \        4      4      4      8X  g   Q h\        \        \
        \        \        ,          4      R 4      \        \        \
        \        \        4      \        \	        \
        4      \	        \        4      4      \        \	        \
        4      \	        \        4      4      4      8X  g   Q h\        \
        ^,           4      \
        ^,           8X  g   Q hR# r   )r,   rL   rM   r   r   rK   r   r   rN   rO   rP   test_to_dnfr  F  se   AE(s3q63q62222!q1u+"SAYAq	"::::!q&>qbAX%%%!A,QB1q5>111!a%=AE!!!*Q"D)c!QiSVSV,-. . .*QA&-c!QlCAA/SVSV1DEF F F!a%=AE!!!rO   c                  "  a \        \        \        R 4      4      w  rpV3R loS! \        W,          W ,          .WV.4      4      S! ^^.^^..4      8X  g   Q hS! \        W,          W ( ,          .WV.4      4      S! ^^.^R..4      8X  g   Q hR# )r   c                 V   <  \        V3R  lV  4       4      #   \         d    T u # i ; i)c              3   4   <"   T F  pS! V4      x  K  	  R # 5irn   rN   ).0ro   sorted_recursives   & rP   	<genexpr>=test_to_int_repr.<locals>.sorted_recursive.<locals>.<genexpr>Y  s     ;s!*1--ss   )sortedrX   )argr  s   &rP   r  *test_to_int_repr.<locals>.sorted_recursiveW  s-    	;s;;; 	J	s    ((Nr   )r   r   r   r-   )ro   rp   rx   r  s      @rP   test_to_int_reprr   T  s    '77+,GA! Kq	BCaVaV,-. . .KB!CDaVaW-./ / /rO   c            
         \        R 4      w  r\        \        4      RJ g   Q h\        \        4      RJ g   Q h\        V 4      RJ g   Q h\        \	        W4      4      RJ g   Q h\        \        W\	        W4      4      4      RJ g   Q h\        \        W\        W4      4      4      RJ g   Q h\        \        \        V 4      V4      4      RJ g   Q hR# )x,yTFN)r   r7   r/   r0   r   r   r   r   ro   rp   s     rP   test_is_anfr$  c  s    5>DA$<4%=D   !9#a)$$$#aCI&'4///#aBqH%&%///#c!fa.!U***rO   c                  j   \        \        4      R J g   Q h\        \        4      R J g   Q h\        \        ( 4      R J g   Q h\        \        \        ,          4      R J g   Q h\        \        \        ,          \        ( \        ,          ,          \        ( \        ,          ,          \        ( \        ( ,          ,          R4      R J g   Q h\        \        \        ,          \        ( \        ( ,          ,          4      R J g   Q h\        \	        \        \        \        4      4      4      RJ g   Q h\        \        \        ,          4      RJ g   Q h\        \        \        ,          \        ( \        ,          ,          \        ( \        ,          ,          \        ( \        ( ,          ,          R 4      RJ g   Q hR# ri   )r&   r/   rK   rL   r   r   rN   rO   rP   test_is_nnfr&  n  s   $<4!91":!a%=D   1q5aR!V$Q/A27;UCtKKK1q5aR1"W%&$...#bAh- E)))!a%=E!!!1q5aR!V$Q/A27;TBeKKKrO   c                     \        \        4      R J g   Q h\        \        \        ,          \        ,          4      R J g   Q h\        \        \        ,          \        ,          4      R J g   Q h\        \        \        ,          \        ,          4      R J g   Q h\        \        \        ,          \        ,          4      RJ g   Q h\        \        \        ,          ( \        ,          4      RJ g   Q hR# ri   )r'   ro   rp   rx   rN   rO   rP   test_is_cnfr(  z      !9!a%!)$$$!a%!)$$$1q5A+$&&&1q5A+%'''AE(Q,5(((rO   c                     \        \        4      R J g   Q h\        \        \        ,          \        ,          4      R J g   Q h\        \        \        ,          \        ,          4      R J g   Q h\        \        \        ,          \        ,          4      R J g   Q h\        \        \        ,          \        ,          4      RJ g   Q h\        \        \        ,          ( \        ,          4      RJ g   Q hR# ri   )r(   ro   rp   rx   rN   rO   rP   test_is_dnfr+    r)  rO   c            	      8   \        R 4      w  rp\        RRR4      \        J g   Q h\        RRR4      \        J g   Q h\        RRR4      \        J g   Q h\        RRR4      \        J g   Q h\	        \        WV4      \        4      '       g   Q hRp \        WV4      V8X  g   Q hRp \        WV4      V8X  g   Q hRp\        \        W4      W4      V8X  g   Q h\        \        V R4      \        VR4      R4      \        J g   Q h\        \        W4      \        \        4      8X  g   Q h\        \        W4      \        8X  g   Q h\        ^\        \        4      \        8X  g   Q h\        ^ \        \        4      \        8X  g   Q h\        \        R 4       \        \        R 4       \        \        R 4       \        \        R 4       \        ^^^4      \        P                  J g   Q h\	        \        ^^^RR7      \        4      '       g   Q h\        \        \        R4      \        \        4      \        \        \        \        4      8X  g   Q h\        \        \        R4      \        \        4      \        \        ( \        \        4      8X  g   Q h\        \        \        R4      \        \        4      \        \        ( \        \        4      8X  g   Q h\        \        \        R4      \        \        4      \        \        \        \        4      8X  g   Q h\        \        \        P                  \        4      \        \        4      \        \        \        \        4      8X  g   Q h\        \        \        P                  \        4      \        \        4      \        \        ( \        \        4      8X  g   Q h\        \        \        P                  \        4      \        \        4      \        \        ( \        \        4      8X  g   Q h\        \        \        P                  \        4      \        \        4      \        \        \        \        4      8X  g   Q h\        \        \        ^ 4      \        \        4      \        8X  g   Q h\        \        \        ^4      \        \        4      \        8X  g   Q h\        \        \        ^ 4      \        \        4      \        8X  g   Q h\        \        \        ^4      \        \        4      \        8X  g   Q h\        \        \        ^ 4      \        \        4      P!                  \        ^ 4      \        8X  g   Q h\        \        \        ^ 4      \        \        4      P!                  \        ^4      \        8X  g   Q h\        \"        R 4       R	# )
zA:CTFc                  ,    \        ^\        \        4      # rT   )r   ro   rp   rN   rO   rP   rV   test_ITE.<locals>.<lambda>  s    c!QlrO   c                  $    \        ^. \        4      # r   r   rp   rN   rO   rP   rV   r.        c!RmrO   c                  $    \        ^R\        4      # )r   rN   r0  rN   rO   rP   rV   r.    r1  rO   c                  $    \        ^\        . 4      # r   r0  rN   rO   rP   rV   r.    s    c!QmrO   r   c                  D    \        \        ^8  \        \        \        4      # r   )r   ro   rp   rx   rN   rO   rP   rV   r.    s    s1q5!Q2rO   N)r   r   r0   r/   rj   r   r   ro   r   rp   rD   rX   r	   r   r   rx   r   r   r   s      rP   test_ITEr5    s   enGA!tUD!U***tT5!T)))udE"e+++ueT"d***c!lC((((AqQ<1AqQ<1As1y!1$$$r!U|SD\51U:::q!<3q6!!!q!<1q!Q<1q!Q<1
9*+
9+,
9+,
9+,q!Q<166!!!c!QE2C8888r!T{Aq!SAq\111r!U|Q"c1"am333r!T{Aq!S!Q]222r!U|Q"c!Ql222r!&&!}a#s1a|333r!''1~q!$QB1555r!&&!}a#sA2q!}444r!''1~q!$Aq!444 r!QxA!###r!QxA!###r!QxA!###r!QxA!###r!QxA##Aq)Q...r!QxA##Aq)Q...
:23rO   c                     \        R 4      R J g   Q h\        R4      R J g   Q h\        \        4      R J g   Q h\        \        ( 4      R J g   Q h\        \        \        \        4      4      RJ g   Q h\        \        P
                  ! \        4      4      R J g   Q h\        \        \        P
                  ! \        4      4      4      R J g   Q h\        \        \        \        4      4      RJ g   Q h\        \        \        P
                  ! \        4      \        P
                  ! \        4      4      4      RJ g   Q h\        \        ^8  4      '       g   Q h\        \        \        ,           ^8  4      '       d   Q hR# ri   )
r2   rK   r   rL   r   zeror   r   ro   rp   rN   rO   rP   test_is_literalr8    s   dt###e$$$a=D   qb>T!!!bAh5(((affQi D(((c!&&)n%---bAh5(((c!&&)QVVAY/0E999a!e!a%!)$$$$$rO   c                  <   R \         ,          \         R ,          u;8X  d   \         8X  g   Q h Q hR\         ,          \         R,          u;8X  d	   R8X  g   Q h Q h\         \        ,          \        \         \        4      8X  g   Q hR \         ,          \         R ,          u;8X  d	   R 8X  g   Q h Q hR\         ,          \         R,          u;8X  d   \         8X  g   Q h Q h\         \        ,          \        \         \        4      8X  g   Q h\         ( \	        \         4      8X  g   Q hR \         ,	          \         R ,          u;8X  d   \         8X  g   Q h Q hR\         ,	          \         R,          u;8X  d	   R 8X  g   Q h Q h\         R ,	          R \         ,          u;8X  d	   R 8X  g   Q h Q h\         R,	          R\         ,          u;8X  d   \         ( 8X  g   Q h Q h\         \        ,	          \        \         ,          u;8X  d   \        \         \        4      8X  g   Q h Q hR \         ,          \         R ,          u;8X  d   \         ( 8X  g   Q h Q hR\         ,          \         R,          u;8X  d   \         8X  g   Q h Q h\         \        ,          \        \         \        4      8X  g   Q hR# ri   )rK   rL   r   r   r   r   r   rN   rO   rP   test_operatorsr:    s   !8q4x$1$$$$$19E	*U*****q5C1I!8q4x'4'''''19E	&Q&&&&&q5Bq!H2Q<<19T	&Q&&&&&A:e+t+++++9	)T))))):!)r)))))6Q!V,wq!},,,,,!8q4x%A2%%%%%19E	&Q&&&&&q5C1IrO   c                     \         \        P                   J g   Q h\        \        P                  J g   Q h\         R Jg   Q h\        RJg   Q h\         '       g   Q h\        '       d   Q h\         R 8X  g   Q h\        R8X  g   Q h\         R8X  d   Q h\        R 8X  d   Q h\         \        8X  d   Q h\        \         4      \        R 4      8X  g   Q h\        \        4      \        R4      8X  g   Q h\	        \         R 04      \	        \        R04      u;8X  d	   ^8X  g   Q h Q h\        \         \        4      '       g   Q h\        \        \        4      '       g   Q h\        \         \        4      '       d   Q h\        \        \        4      '       d   Q h\        \         4      \        J g   Q h\        R 4      \        J g   Q h\        \        4      \         J g   Q h\        R4      \         J g   Q h\         ( \        J g   Q h\        ( \         J g   Q h\        R \         3R\        34       EF  w  r\        W4      \        J g   Q h\        W4      \        J g   Q h\        W4      \        J g   Q h\        W 4      \         J g   Q h\        V \        4      \        8X  g   Q h\        V\        4      \        J g   Q hV R J d   VRJ g%   W,          \        J g   Q hW,          \        J g   Q hVRJd   W,          \        J g   Q hV R Jd   W ,          \         J g   Q h\        W4      \         J g   Q h\        W4      \         J g   Q h\        W4      \        J g   Q h\        W 4      \         J g   Q h\        V \        4      \         J g   Q h\        V\        4      \        8X  g   Q hV R J d   VRJ g%   W,          \         J g   Q hW,          \         J g   Q hVRJd   W,          \        J g   Q hV R Jd   W ,          \         J g   Q h\        W4      \         J g   Q h\        W4      \         J g   Q h\        W4      \        J g   Q h\        W 4      \        J g   Q h\        V \        4      \        ( 8X  g   Q h\        V\        4      \        8X  g   Q hV R J d   VRJ g%   W,          \         J g   Q hW,          \         J g   Q hVRJd   W,          \        J g   Q hV R Jd   W ,          \        J g   Q h\        W4      \         J g   Q h\        W4      \         J g   Q h\        W4      \         J g   Q h\        W 4      \        J g   Q h\        V \        4      \        ( 8X  g   Q h\        V\        4      \         J g   Q h\        W4      \        J g   Q h\        W4      \        J g   Q h\        W4      \         J g   Q h\        W 4      \        J g   Q h\        V \        4      \        J g   Q h\        V\        4      \        ( 8X  g   Q h\!        W4      \        J g   Q h\!        W4      \         J g   Q h\!        W4      \         J g   Q h\!        W 4      \         J g   Q h\!        V \        4      \        8X  g   Q h\!        V\        4      \         J g   Q h\!        \        V 4      \         J g   Q h\!        \        V4      \        ( 8X  g   Q hV R J d   VRJ gI   W,	          \        J g   Q hW,          \        J g   Q hW,	          \         J g   Q hW,          \         J g   Q hVRJd%   W,	          \         J g   Q hW,          \         J g   Q hV R Jd%   W ,	          \         J g   Q hW ,          \         J g   Q h\#        W4      \        J g   Q h\#        W4      \        J g   Q h\#        W4      \         J g   Q h\#        W 4      \         J g   Q h\#        V \        4      \        8X  g   Q h\#        V\        4      \        ( 8X  g   Q h\#        \        V 4      \        8X  g   Q h\#        \        V4      \        ( 8X  g   Q h\%        W V 4      \         J g   Q h\%        W V4      \         J g   Q h\%        WV 4      \        J g   Q h\%        WV4      \        J g   Q h\%        WV 4      \         J g   Q h\%        WV4      \        J g   Q h\%        WV 4      \         J g   Q h\%        WV4      \        J d   EK  Q h	  \&        ;QJ d:    R \        P                   \        P                  3 4       F  '       d   K   RM/	  R M+! R \        P                   \        P                  3 4       4      '       g   Q hR# )TFc              3   H   "   T F  qP                  ^^4      VJ x  K  	  R# 5i)r   Nr   r  rb   s   & rP   r  "test_true_false.<locals>.<genexpr>^  s      @.?zz!Q1$.?s    "N)r/   r	   r0   hashlenrj   r1   boolr   rI   r   ro   r   r   r   r   r   r   r   all)TFs     rP   test_true_falserE    s   166>>AGGt4K4u94<<E>>:d###;$u+%%%d|UEN 38q88888dK((((e[))))
 $%%%%%&&&&
 t9t9u:u:5E>>6T>>tuen51yE!!!1yE!!!1yE!!!1yD   1ayA~~1ayE!!!T	a5j5E>!>5E>!>E>5E>!>D=5D= =!x4!x4!x5   !x4!Qx4!Qx1}}T	a5j5D= =5D= =E>5E>!>D=5D= =1yD   1yD   1yE!!!1yE!!!1ayQB1ayA~~T	a5j5D= =5D= =E>5E>!>D=5E>!>AzT!!!AzT!!!AzT!!!AzU"""AqzaRAqzT!!!1yE!!!1yE!!!1yD   1yE!!!1ayE!!!1ayQBq}%%%q}$$$q}$$$q}$$$q!}!!!q!}$$$q!}$$$q!}"""T	a5j6U?"?6U?"?6T>!>6T>!>E>6T>!>6T>!>D=6T>!>6T>!>!5(((!5(((!4'''!4'''!Q1$$$!QA2%%%!Q1$$$!QA2%%%1|t###1|t###1|u$$$1|u$$$1|t###1|u$$$1|t###1|u$$${ 6~ 3@qvvqww.?@333@qvvqww.?@@@@@rO   c                     \        \        ^ 8*  R\        ^8  4      P                  4       \        ^\        4      8X  g   Q h\        \        ^8*  \        R8  4      P                  4       \        R^4      8X  g   Q h\        \        ^8  \        R8*  4      P                  4       \        \        ) R4      \        ^\        4      ,           8X  g   Q h\        \        ^8  4      P                  4       \        \        ) ^4      8X  g   Q h\        \        \        ^8  \        ^8  4      4      P                  4       \        \        \        ) ^4      \        ^\        4      4      8X  g   Q h\        P                  ! 4       \        P                  8X  g   Q h\        P                  ! 4       \        P                  J g   Q h\        P                  4       \        P                  8X  g   Q h\        \        \        ^8  \        ^8  4      \        ^8  4      P                  4       \        P                  ! \        ) ^4      8X  g   Q h\        \        ^8  \!        \        4      ^8  4      P                  4       \        ^8  P                  4       8X  g   Q h\#        \$        R 4       \'        R\)        ^\        ,          4      ^,          \!        ^\        ,          4      ^,          ,          4      P                  4       \        P                  J g   Q hR# )r   Fc                  B    \        \        4      ^8  P                  4       # r   )r   ro   as_setrN   rO   rP   rV   "test_bool_as_set.<locals>.<lambda>n  s    Q!(;(;(=rO   Nr   )r   rp   rH  r   r   r   ro   r   r   r   r/   r	   UniversalSetr0   EmptySetopenr   rD   r   r   r   rN   rO   rP   test_bool_as_setrN  a  s   qAvua1f%,,.(1b/AAAqAvqBw&&(HRO;;;a1fa2g%%'8RC+<x2+NNNNq1u:(B3"2222s1q5!a% !((*2#q!8Ar?34 4 4;;=ANN***<<>QZZ'''88:'''r!a%QQ'..0HMM2#q4IIIIq1uc!fqj!((*q1unn.>>>>
 =>b#a!e*/CAJ!O34;;=KKKrO   c            	         \        R 4      w  r\        V ^ 8  V^ 8  4      P                  4       \        ^ \        4      \        ^ \        4      ,          8X  g   Q h\        V ^ 8  V^ 8  4      P                  4       \        P                  \        P                  ,          \        \        ) ^ RR4      \        \        ) ^ RR4      ,          ,
          8X  g   Q hR# )r"  TN)r   r   rH  r   r   r   r	   Realsr#  s     rP   test_multivariate_bool_as_setrQ  s  s    5>DAqAvqAv%%'8Ar?Xa_+LLLLa1fa1f$$&!''AGG*;RCD$'(B34*FF+G G G GrO   c                     \        R RR7      p V \        ) 8  V \        8*  3p\        V!  pVP                  \        J dK   \	        VP
                  4      \	        V4      VP                  \        P                  4      ,
          8X  g   Q hM	VR8X  g   Q h\        V!  pVP                  \        J d   \	        VP
                  4      ^8X  g   Q hR# VR8X  g   Q hR# )ro   T)extended_realN)
r   r   r   funcr@  argscountr	   r/   r   )ro   rU  vs      rP   test_all_or_nothingrX  |  s    4(A8Q"WDT
Avv}166{c$i$**QVV*<<<<<Dyy
D	Avv|166{aDyyrO   c                  r    \         P                  \         8X  g   Q h\        P                  \        8X  g   Q hR # rn   )r/   rY   r0   rN   rO   rP   test_canonical_atomsrZ    s&    >>T!!!??e###rO   c                  r    \         P                  \        8X  g   Q h\        P                  \         8X  g   Q hR # rn   )r/   negatedr0   rN   rO   rP   test_negated_atomsr]    s&    <<5   ==D   rO   c                     \        \        ^8  \        \        8  4      P                  4       \	        ^\        RR7      8X  g   Q h\        \        ^8  \        \        8  4      P                  4       \	        ^\        4      8X  g   Q h\        \        8  P                  4       \	        \        ) \        4      8X  g   Q h\        \        ) 8  P                  4       \	        \        ) \        4      8X  g   Q hR# )rU   T)	left_openN)r   ro   r   rH  r   rN   rO   rP   test_issue_8777r`    s    q1ua"f$$&(1bD*IIIIqAvq2v%%'8Ar?:::F??"b 1111G2#r!2222rO   c                     \        \        \        ) \        8  \        R8*  4      \        ^\        8*  \        \        8  4      4      P	                  4       \        \        ) R4      \        ^\        4      ,           8X  g   Q hR# )rU   NrJ  )r   r   r   ro   rH  r   rN   rO   rP   test_issue_8975rb    s[    c2#'17#SaR%89@@BRCx2./ / /rO   c                  R    \        . RO4      ^R8X  g   Q h\        R4      R8X  g   Q hR# )r   0010101000111001i9*  N)r   r   r   r   r   r   r   )r3   rN   rO   rP   test_term_to_integerre    s*    01R777-.%777rO   c                     \        R 4      w  rr#W,          V,          W,          ,          pVP                  W,          V4      W,          V,          8X  g   Q hVP                  W,          V,          V4      W,          V,          8X  g   Q hW,          V,          W,          ,          pVP                  W,          V4      W,          V,          8X  g   Q hVP                  W,          V,          V4      W,          V,          8X  g   Q hW,          V,          W,          ,          pVP                  W,          V4      W,          V,          8X  g   Q hVP                  W,          V,          V4      W,          V,          8X  g   Q hR# za b c dN)r   r   )rZ   r[   r\   r   r   s        rP   test_issue_21971rh    s   #JA!		AEA66!%quqy(((66!%!)Q1519,,,	
quA66!%{***66!%!)QAEQ;...	
quA66!%{***66!%!)QAEQ;...rO   c                     \        \        \        \        \        4      \        \        .R R7      4      . RO8X  g   Q h\        \        \        \        ,          \        \        .R R7      4      . RO8X  g   Q h\        \        \        \        ,	          \        \        .R R7      4      . RO8X  g   Q h\        \        \        \        \        4      \        \        .4      4      ^ ^ .R 3^ ^.R 3^^ .R 3^^.R3.8X  g   Q hR# )F)inputTN)FFFT)FTTT)TTFT)listr4   r   ro   rp   rN   rO   rP   test_truth_tablerl    s    C1I1vU;<&' ' 'AEAq678$% % %AFQF%89$% % %C1I1v./VUOq!fe_1vuoA~NO O OrO   c                  ~  aa \         P                  \         P                  3 EF  o\        \        V3R  l4       \        \        V3R l4       \        \        V3R l4       \        \        V3R l4       \         P
                  \         P                  \        3 F  o\        ^4       F  p \        \        VV3R l4       \        \        VV3R l4       \        \        VV3R l4       \        \        VV3R l4       \        \        VV3R l4       \        \        VV3R	 l4       SSuooK  	  K  	  EK  	  R
# )c                  
   < S 5# rn   rN   r  s   rP   rV   !test_issue_8571.<locals>.<lambda>      1"rO   c                  
   < S ) # rn   rN   ro  s   rP   rV   rp    rq  rO   c                     < \        S 4      # rn   )absro  s   rP   rV   rp    	    #a&rO   c                     < \        S 4      # rn   )intro  s   rP   rV   rp    ru  rO   c                     < S S,           # rn   rN   or  s   rP   rV   rp    	    !a%rO   c                     < S S,
          # rn   rN   ry  s   rP   rV   rp    r{  rO   c                     < S S,          # rn   rN   ry  s   rP   rV   rp    r{  rO   c                     < S S,          # rn   rN   ry  s   rP   rV   rp    r{  rO   c                     < S S,          # rn   rN   ry  s   rP   rV   rp    r{  rO   c                     < S S,          # rn   rN   ry  s   rP   rV   rp    s	    !q&rO   N)	r	   r/   r0   rD   rX   Zeror   ro   range)_rz  r  s    @@rP   test_issue_8571r    s    ffaggy*%y*%y.)y.)&&!%%#A1Xy-0y-0y-0y-0y-0y.1!1  $ rO   c                  z   \        R RR7      p \        RRR7      w  rWV ) V,          ^,           ,          ,           W ) V,          ^,           ,          ,          ^ 8  pV\        P                  Jg   Q hVP                  4       \        P                  J g   Q hV^ 8  P                  4       \        P                  J g   Q hR# )nT)negativezp q)positiveN)r   r	   r0   expandr/   )r  pqrs       rP   test_expand_relationalr    s    d#A54(DA
A26A:
1Q
#3	4q	8AAGG88:   E>>qvv%%%rO   c                      \         P                  P                  R 8X  g   Q h\         P                  P                  R 8X  g   Q hR# r   )r	   r/   is_Atomr0   rN   rO   rP   test_issue_12717r    s.    66>>T!!!77??d"""rO   c                    a \        R RR7      p \        ;QJ d.    R R\        P                  ^V 3 4       F  '       d   K   RM#	  RM! R R\        P                  ^V 3 4       4      '       g   Q h\        RRR7      p\        ;QJ d.    R R\        P                  ^ V3 4       F  '       d   K   RM#	  RM! R R\        P                  ^ V3 4       4      '       g   Q h\        ;QJ d)    R \
        \
        ^ 8  3 4       F  '       d   K   RM	  RM! R \
        \
        ^ 8  3 4       4      '       g   Q h^\        ^4      \
        ^,           . 3 F  o\        \        V3R	 l4       K  	  R
# )nzT)nonzeroc              3   X   "   T F   p\        V4      \        P                  J x  K"  	  R # 5irn   )r5   r	   r/   r=  s   & rP   r  "test_as_Boolean.<locals>.<genexpr>  s     F0E1z!}&0E   (*Frx   )r7  c              3   X   "   T F   p\        V4      \        P                  J x  K"  	  R # 5irn   )r5   r	   r0   r=  s   & rP   r  r    s     H1GAz!}'1Gr  c              3   >   "   T F  p\        V4      V8H  x  K  	  R # 5irn   r5   r=  s   & rP   r  r    s     6:az!}!:s   c                     < \        S 4      # rn   r  )rb   s   rP   rV   !test_as_Boolean.<locals>.<lambda>  s	    *Q-rO   N)r   rB  r	   r/   r0   ro   rD   rX   )r  rx   rb   s     @rP   test_as_Booleanr    s    	t	$B3Fqvvq"0EF333Fqvvq"0EFFFFF$A3H%!Q1GH333H%!Q1GHHHHH36Aq1u:63336Aq1u:666661q1ub!y/0 "rO   c                     \        \        ^8  \        \        4      P                  \        \        08X  g   Q h\
        \        3 Fo  p V ! \        ^4      P                  \        4       8X  g   Q hV ! \        R4      P                  \        08X  g   Q hV ! \        R4      P                  \        08X  d   Ko  Q h	  \        P                  P                  \        4       8X  g   Q h\        P                  P                  \        4       8X  g   Q h\        P                  \        08X  g   Q h\        \        \        \        R4      \        \        ^4      4      P                  \        \        08X  g   Q h\        P                  ! \        4      P                  \        4       8X  g   Q h\        P                  ! \        ^4      P                  \        4       8X  g   Q h\        P                  ! \        4      P                  \        08X  g   Q h\        P                   ! \        R4      P                  \        08X  g   Q h\        P                  ! \        4      P                  \        4       8X  g   Q hR# )r   TFN)r   ro   rp   rx   binary_symbolsr   r   setr	   r/   r0   r   r   primeltis_truer   )r   s    rP   test_binary_symbolsr    s   q1ua**q!f444"XAw%%...Dz((QC///E{))aS000  66  CE)))77!!SU***s"""q"Q,1a)88QFBBB771:$$---441:$$---99Q<&&1#---444=''A3...771:$$---rO   c                      \        \        \        4      P                  \        4      \	        ^ \        \        R4      3R4      8X  g   Q hR# )r   FN)r   T)r   ro   rp   diffr   r   rN   rO   rP   test_BooleanFunction_diffr    s1    q!9>>!	1bEl*;Y GGGGrO   c                  >   \        R 4      w  rr#rErgW,          V,          V( ,          W,          V( ,          V( ,          ,          W,          V( ,          V( ,          ,          W,          V( ,          V( ,          ,          W,          V( ,          V( ,          ,          W&,          V( ,          V( ,          ,          W&,          V( ,          V( ,          ,          W&,          V( ,          V( ,          ,          W5,          V,          V( ,          ,          W5,          V( ,          V( ,          ,          W,          V,          V( ,          V( ,          ,          W4,          V,          V( ,          V( ,          ,          W5,          V ( ,          V( ,          V( ,          ,          W5,          V ( ,          V( ,          V( ,          ,          W,          V,          V,          V( ,          V( ,          ,          pW,          V,          V( ,          W5,          V,          V( ,          ,          W,          V( ,          V( ,          ,          W,          V( ,          V( ,          ,          W&,          V( ,          V( ,          ,          W&,          V( ,          V( ,          ,          W&,          V( ,          V( ,          ,          W5,          V( ,          V( ,          ,          W4,          V,          V( ,          V( ,          ,          W5,          V ( ,          V( ,          V( ,          ,          W,          V,          V,          V( ,          V( ,          ,          p	W,          V,          W,          V,          ,          W#,          V,          ,          W%,          V,          ,          W6,          V,          ,          WV,          V,          ,          W,          V( ,          V( ,          ,          V( V( ,          V( ,          V( ,          ,          W1( ,          V( ,          V( ,          V( ,          ,          W,          V( ,          V( ,          V( ,          V( ,          ,          Wr( ,          V( ,          V( ,          V( ,          V( ,          ,          W,          V,          V ( ,          V( ,          V( ,          V( ,          ,          p
\        VR4      V	8X  g   Q h\        VR4      V
8X  g   Q h. RO. RO. RO. RO. RO. R	O.p. R
O. RO. RO. RO.p\        \        \        \
        \        .V4      \        \        ( ,          \
        \        ,          \        ( ,          ,          8X  g   Q h\        \        \        \
        \        .W4      \        \        ( ,          \
        \        ,          \        ( ,          ,          8X  g   Q hR# )zA B C D E F G HdnfcnfN)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   ry   ro   rp   rx   )rK   rL   rM   rk   ErD  GHr  soldnfsolcnfr   r   s                rP   test_issue_14700r     sZ   $%67A!a
%!)qb.QUaRZ1"_	-!qb	A
%1"*r/
eqbjA2o
/23%1"*r/
C
%1"*r/
eqbjA2o
/23%!)qb.
B %1"*r/
  eai1"nr1
3 78eai1"nr6I
K %1"*r/QB
	
  $%5A2:?aR#7	
9
 %!)a-1"
r
!
#A uqyA2~!%!)qb.1QUaRZ1"_EurzQB #$5A2:?478urzQBHurzQB #$5A2:?478uqyA2~7JL urzQB!#% )*	A(:aR(?AF uqyQUQY'15195CuqyUQY(+,5A2:?<rQBw!|qb "%&Vqb[A2%5%:< urzQB!#qb(* ./Vqb[A2-=-BaR-GI uqyA2~"aR'1",	.F
 !U#v---!U#v---lL,l,H|\<HIAq!Q<*qA2v!a%1"*.EEEEAq!Q<5Fq1urz"# # #rO   c                  f    \        \        \        P                  4      p \	        V 4      V 8X  g   Q hR # rn   )r   ro   r	   Integersr)   )conds    rP   test_issue_25115r    s%    Aqzz"D$4'''rO   c                  P   \        R RR7      w  rr#\        RRR7      w  rE\        W8  W8  4      P                  4       \        P                  8X  g   Q h\        W8  W!8  4      P                  4       \        P                  8X  g   Q h\        W8  V) V) 8  4      P                  4       \        P                  8X  g   Q h\        W8  V) V) 8  4      P                  4       \        P                  8X  g   Q h\        V) V) 8*  W8  4      P                  4       \        P                  8X  g   Q h\        V) V) 8*  V) V) 8  4      P                  4       \        P                  8X  g   Q h\        V) V) 8*  W!8  4      P                  4       \        P                  8X  g   Q h\        V) V) 8*  V) V) 8  4      P                  4       \        P                  8X  g   Q h\        W!8*  W8  4      P                  4       \        P                  8X  g   Q h\        W!8*  W!8  4      P                  4       \        P                  8X  g   Q h\        W!8*  V) V) 8  4      P                  4       \        P                  8X  g   Q h\        W!8*  V) V) 8  4      P                  4       \        P                  8X  g   Q h\        V) V) 8  W8  4      P                  4       \        P                  8X  g   Q h\        V) V) 8  W!8  4      P                  4       \        P                  8X  g   Q h\        V) V) 8  V) V) 8  4      P                  4       \        P                  8X  g   Q h\        V) V) 8  V) V) 8  4      P                  4       \        P                  8X  g   Q h\        W8  W8  4      P                  4       \        P                  8X  g   Q h\        W!8  W8  4      P                  4       \        P                  8X  g   Q h\        V) V) 8  W8  4      P                  4       \        P                  8X  g   Q h\        V) V) 8  W8  4      P                  4       \        P                  8X  g   Q h\        W8  V) V) 8*  4      P                  4       \        P                  8X  g   Q h\        V) V) 8  V) V) 8*  4      P                  4       \        P                  8X  g   Q h\        W!8  V) V) 8*  4      P                  4       \        P                  8X  g   Q h\        V) V) 8  V) V) 8*  4      P                  4       \        P                  8X  g   Q h\        W8  W!8*  4      P                  4       \        P                  8X  g   Q h\        W!8  W!8*  4      P                  4       \        P                  8X  g   Q h\        V) V) 8  W!8*  4      P                  4       \        P                  8X  g   Q h\        V) V) 8  W!8*  4      P                  4       \        P                  8X  g   Q h\        W8  V) V) 8  4      P                  4       \        P                  8X  g   Q h\        W!8  V) V) 8  4      P                  4       \        P                  8X  g   Q h\        V) V) 8  V) V) 8  4      P                  4       \        P                  8X  g   Q h\        V) V) 8  V) V) 8  4      P                  4       \        P                  8X  g   Q h\        W8  W8  W8*  4      P                  4       \        P                  8X  g   Q h\        W8  W8  4      P                  4       \        P                  8X  g   Q h\        W8  \        W!4      4      P                  4       W8  8X  g   Q h\        W8  \        W!4      4      P                  4       \        W4      8X  g   Q h\        \        W4      V^8  ^V8  V^8  W28  4      P                  4       \        W4      V^8  ,          V^8  ,          W#8  ,          8X  g   Q h\        \        W4      W8  W8  W28  4      P                  4       W8  W#8  ,          W8  ,          8X  g   Q h\        \        W4      W8  W8  W#8  W28  4      P                  4       \        W4      W#8  ,          W8  ,          8X  g   Q h\        \        W4      V^8  ^V8  V^8  W28  4      P                  4       \        W4      V^8  ,          V^8  ,          W#8  ,          8X  g   Q h\        W4      \        WE4      ,          W8  ,          WE8  ,          P                  4       \        W4      \        WE4      ,          WE8  ,          8X  g   Q h\        \        W4      \        W) 4      4      P                  4       \        \        V^ 4      \        V^ 4      4      8X  g   Q h\        W8  W8*  4      P                  4       \        W4      8X  g   Q h\        V^8  VR8  \        W4      4      P                  4       \        P                  8X  g   Q h\        W8  \        V^ 4      4      P                  4       \        V^ 8  \        V^ 4      4      8X  g   Q h\        \        V^4      \        V^4      4      P                  4       \        P                  8X  g   Q h\        \        V^4      \        ^V4      4      P                  4       \        V^4      8X  g   Q h\        \        V^4      \        ^V4      4      P                  4       \        V^4      8X  g   Q hR# )w x y zTreald eFNr   )
r   r   r   r	   r/   r   r0   r   r   r   )ry   ro   rp   rx   r   r]   s         rP   test_relational_simplificationr  #  s%	   .JA!5u%DAafae%%'166111afae%%'166111afqbA2g'')QVV333afqbA2g'')QVV333qbQBh'')QVV333qbQBhaR ))+qvv555qbQBh'')QVV333qbQBhaR ))+qvv555afae%%'166111afae%%'166111afqbA2g'')QVV333afqbA2g'')QVV333qbQBh'')QVV333qbQBh'')QVV333qbQBhaR ))+qvv555qbQBhaR ))+qvv555aeQV%%'166111aeQV%%'166111qbA2gqv'')QVV333qbA2gqv'')QVV333aeaRA2X'')QVV333qbA2graRx ))+qvv555aeaRA2X'')QVV333qbA2graRx ))+qvv555aeQV%%'166111aeQV%%'166111qbA2gqv'')QVV333qbA2gqv'')QVV333aeaRA2X'')QVV333aeaRA2X'')QVV333qbA2graRx ))+qvv555qbA2graRx ))+qvv555 afaeQV$--/166999qvqu&&(AGG333afbh((*qv666qvr!x ))+r!x777r!xaQQ6??AqHQ16*ae46 6 6bhqu-668Fqu'( ( (r!x6??Aa8qu'( ( ( r!xaQQ6??AqHQ16*ae46 6 6qHr!x16*af5??AqHr!x16*, , ,r!xAr#,,.#bAh1a2IIIIqvqv'')RX555q1ua"fbh'002agg===qvr!Qx ))+s162a8/DDDDbAh1a!**,666r!QxAq"++-Aq999bAh1a!**,1a888rO   c                     \        R RR7      p \        V ^8  V R8  4      P                  4       \        P                  8X  g   Q h\        V ^8  V ^8  4      P                  4       \        P                  8X  g   Q h\        V ^8  V ^8  4      P                  4       \        P                  8X  g   Q h\        V ^8*  V ^8  4      P                  4       \        P                  8X  g   Q hR# )ro   Tr  Nr   )r   r   r   r	   r/   r   r0   ro   s    rP   test_issue_8373r  f  s    $Aa!eQV%%'166111a!eQ!V%%'166111q1ua1f&&(AGG333a1fa1f&&(AFF222rO   c                      \        R RR7      p \        \        V ^4      \        V ^4      4      P                  4       \        P
                  8X  g   Q hR# )ro   Tr  N)r   r   r   r   r	   r0   r  s    rP   test_issue_7950r  n  s<    $Ar!QxAq"++-888rO   c                  ~   R  p \        RRR7      w  rr4\        RRR7      w  rV\        \        W#4      W#8  W8  W48  WC8  4      \        \        W#4      V^8  ^V8  V^8  WC8  4      \        \        W#4      V^8  ^V8  V^8  WC8  4      \        W#8  \        W24      4      \        \        \        W#4      W#8  W8  \        W48  WC8  4      4      \        \        W#4      V^8  ^V8  VR8  WC8  4      4      \        W#4      \        WV4      ,          W#8  ,          WV8  ,          3pV F  pV ! VVP	                  4       4       K  	  R# )c                 l   V P                   p\        V4      p\        \        \	        \        \        V^,
          ) V4      4      V,          V4      4      4      pV FV  p\        \        W%4      4      pV P                  V4      pVP                  V4      pWx8X  d   KA  Q RP                  WV4      4       h	  R# )r   zHOriginal: {}
and simplified: {}
do not evaluate to the same value for {}N)
free_symbolsr@  rk  r  rG   r  dictr   r   format)	original
simplifiedsymbr  	valuelistvaluessublistoriginalvaluesimplifiedvalues	   &&       rP   (test_simplification_numerically_function\test_relational_simplification_numerically.<locals>.test_simplification_numerically_functionu  s    $$I\$uq1uXq/A*BQ*FJKL	F3t,-G$MM'2M(oog6O 3 ^ 688>xU\8]^3	  rO   r  Tr  r  FNr   )r   r   r   r   r   )	r  ry   ro   rp   rx   r   r]   expressions
expressions	            rP   *test_relational_simplification_numericallyr  s  s+   
^ .JA!5u%DAr!x>r!xaQQ>bhQAqAvqu=qvr!x(c"Q(AFAE2afae3DE"Q(AFAE17AEBDqHr!x'162af=K "
01;1D1D1F	H "rO   c                     ^ RI Hp  ^ RIHpHpHp V ! R4      pV ! R4      pV ! R4      pWEV.p\        V! 4       .\        V! 4       .\        V! 4       ..p\        \        \        \        \        R^4      4      ^,          ^4      4      4      p	V	 U
u. uFR  p
\        ;QJ d    R V
 4       F  '       g   K   RM	  RM! R V
 4       4      '       g   \        V
4      '       d   KP  V
NKT  	  p	p
V F  w  rV F  pV! V^ ,          P                  !  pV^,          pV	 F`  p\        \!        VV4      4      pVP#                  V4      pVP#                  V4      pVV8X  d   KC  Q R	P%                  V^ ,          VV4      4       h	  K  	  K  	  R
# u up
i )r   Wild)_simplify_patterns_and_simplify_patterns_or_simplify_patterns_xorrZ   r[   r\   c              3   2   "   T F  q^,          x  K  	  R# 5irU   NrN   r  ry   s   & rP   r  Ftest_relational_simplification_patterns_numerically.<locals>.<genexpr>       ,>AqUUA   TFGOriginal: {}
and simplified: {}
do not evaluate to the same value for{}NrJ  )
sympy.corer  sympy.logic.boolalgr  r  r  r   r   r   rk  r  rG   r  anyrU  r  r   xreplacer  )r  r  r  r  rZ   r[   r\   r  patternlistsr  rW  rT  patternlistpatternr  r  r  r  r  r  s                       rP   3test_relational_simplification_patterns_numericallyr    se   6 6S	AS	AS	A!9D023.010235L Sd5Q<&81&<a@ABI%MIq,>A,>,>A,>)>)>c!fIIM)"GWQZ__-H J#s401 ( 1 1' :","5"5g">$7 f :>>DfWQZQ[]d>ef7	 $ # * Ns   FF3FF!Fc                      \        R 4      p V ^8  V ^ 8  ,          V ^ 8  V ^8  ,          ,          P                  4       V ^8  V ^ 8  ,          V ^ 8  V ^8  ,          ,          8X  g   Q hR# )r  N)r   r   )r  s    rP   test_issue_16803r    sg    AUq1u!a%AE!23==?Ea!eQ1q5 123 3 3rO   c                    a  \         \        \        \        /o \        \         \        ,           ^ 8  \         \        ,
          ^ 8  4      P	                  S 4      '       g   Q h\        \         \        ,           ^ 8  \         \        ,
          ^ 8  4      P	                  S 4      '       d   Q h\        \        V 3R l4       \        \        V 3R l4       \        \        V 3R l4       R# )r   c                     < \        \        \        ,           ^ 8  \        \        ,
          ^ 8  4      P                  S 4      # r   )r   ro   rp   r   r  s   rP   rV   "test_issue_17530.<locals>.<lambda>  s'    bQAEAI6;;A>rO   c                     < \        \        \        ,           ^ 8  \        \        ,
          ^ 8  4      P                  S 4      # r  r   ro   rp   r   r  s   rP   rV   r    '    c!a%!)QUQY7<<Q?rO   c                     < \        \        \        ,           ^ 8  \        \        ,
          ^ 8  4      P                  S 4      # r  r  r  s   rP   rV   r    r  rO   N)ro   r   rp   r   r   r   rD   rX   r  s   @rP   test_issue_17530r    s    	
B2Aa!eaiQ#((++++1q519a!eai(--a0000
9>?
9?@
9?@rO   c                  :   \        ^^ .4      ^^.8X  g   Q h\        . RO4      . RO8X  g   Q h\        . RO4      . RO8X  g   Q h\        . RO4      . RO8X  g   Q h\        . RO4      . RO8X  g   Q h\        . RO4      . RO8X  g   Q h\        . RO4      . R	O8X  g   Q hR# )
r   Nr   r   r   r   r   r   r  r  r   r  r   )r9   rN   rO   rP   test_anf_coeffsr    s    q!f!Q'''l#|333l#|333l#|333l#|333l#|333l#|333rO   c                     \        R 4      w  r\        V .^^.4      R8X  g   Q h\        V .^ ^ .4      R8X  g   Q h\        V .^^ .4      \        V RRR7      8X  g   Q h\        W.. RO4      \        R\        W4      RR7      8X  g   Q hR# )r"  TFr   Nr  )r   r:   r   r   r#  s     rP   test_ANFformr    s    5>DAA3A4'''A3A5(((A3A3q$E#BBBBA6<(tSYE23 3 3rO   c                      \        R 4      w  r\        ^W.4      \        W4      8X  g   Q h\        ^^ .W.4      \        \        V4      V 4      8X  g   Q hR# r"  N)r   r;   r   r   r#  s     rP   test_bool_mintermr    sM    5>DAA6"c!i///A'3s1vq>999rO   c                      \        R 4      w  r\        ^W.4      \        \        V 4      V4      8X  g   Q h\        ^ ^.W.4      \        \        V4      V 4      8X  g   Q hR# r  )r   r<   r   r   r#  s     rP   test_bool_maxtermr    sS    5>DAA6"bQm333A'2c!fa=888rO   c                      \        R 4      w  r\        ^W.4      V8X  g   Q h\        ^^.W.4      \        W4      8X  g   Q hR# r  )r   r=   r   r#  s     rP   test_bool_monomialr     sC    5>DAQF#q(((!Q!(CI555rO   c                  b    \        . RO. RO4      ^8X  g   Q h\        . RO. RO4      R8X  g   Q hR# )r   Nr   r   r   r   )r>   rN   rO   rP   test_check_pairr    s,    y),111y),222rO   c                  4   \         \        ,          \        \        ( ,          ,          \        ( \         ( ,          ,          p \        \         ,          \        \        ( ,          ,          \         ( \        ( ,          ,          p\        V R R7      pW V39   g   Q hR# )Tr   N)rL   rM   rK   r,   )rs   res1results      rP   test_issue_19114r    s`    Ea1"f!qb)DEa1"f!qb)DD4(FD\!!!rO   c                     \        \        \        \        \        .. RO4      p \        \        ( ,          \        \        ,          \        ,          ,          \        \        ( ,          \        ( ,          ,          \        \        ( ,          \        ( ,          ,          \        \        ( ,          \        ( ,          ,          pW8X  g   Q hR# )r   N)r   rU   r      r         	   r         r   )r   rZ   r[   r\   r   )r  expecteds     rP   test_issue_20870r    st    aAq\#KLFaRAEAI&!qb&A2+6aR1"!"aR1".HrO   c                     \        . RO\        \        \        .4      \	        \        \        4      \        \        \        4      4      8X  g   Q h\        . RO\        \        \        .4      \	        \        \        \        4      4      8X  g   Q hR# r   Nr   )r   r   r   )r?   ro   rp   rx   r   r   rN   rO   rP   test_convert_to_varsSOPr    sS    y1a)4CFAs1v8NNNNy1a)4As1vFFFrO   c                     \        . RO\        \        \        .4      \	        \        \        \        4      \        4      8X  g   Q h\        . RO\        \        \        .4      \	        \        \        4      \        4      8X  g   Q hR# r  )r@   ro   rp   rx   r   r   rN   rO   rP   test_convert_to_varsPOSr    sO    y1a)41c!fa8HHHHy1a)43q61EEErO   c                  .  aa \        R 4      w  oorp\        \        SS4      4      ^8X  g   Q h\        SSV ,          V,          VS,          ,          ,          4      ^	8X  g   Q h\        \        SR4      4      ^ 8X  g   Q h\        \        VV3R l4       R# )za:eTc                  (   < \        S S,          4      # rn   )rB   )rZ   r[   s   rP   rV   %test_gateinputcount.<locals>.<lambda>  s    nQU3rO   N)r   rB   r   rD   rX   )r\   r   r]   rZ   r[   s      @@rP   test_gateinputcountr     sz    ENMAq!#a)$)))!a!eai1q5112a777#a,'1,,,
934rO   c                  H   \        \        ^ 8  \        ^ 8  ( 4      '       d   Q h\        \        ^ 8  \        ^ 8  4      '       g   Q h\        \        ^ 8  ^ \        8  4      \        P                  J g   Q h\        \        ^ 8  \        ^ 8  4      \        ^ 8  8X  g   Q h\        \        ^ 8*  \        ^ 8*  ( 4      '       d   Q h\        \        ^ 8*  \        ^ 8*  4      '       g   Q h\        \        ^ 8*  ^ \        8  4      \        P                  J g   Q h\        \        ^ 8*  \        ^ 8*  4      \        ^ 8*  8X  g   Q h\        \        ^ 8  \        ^ 8  ( 4      '       d   Q h\        \        ^ 8  \        ^ 8  4      '       g   Q h\        \        ^ 8  ^ \        8  4      \        P                  J g   Q h\        \        ^ 8  \        ^ 8  4      \        ^ 8  8X  g   Q h\        \        ^ 8  \        ^ 8  ( 4      '       d   Q h\        \        ^ 8  \        ^ 8  4      '       g   Q h\        \        ^ 8  ^ \        8*  4      \        P                  J g   Q h\        \        ^ 8  \        ^ 8  4      \        ^ 8  8X  g   Q h\        \        \        ^ 4      \        \        ^ 4      ( 4      '       d   Q h\        \        \        ^ 4      \        \        ^ 4      4      '       g   Q h\        \        \        ^ 4      \        ^ \        4      4      \        P                  J g   Q h\        \        \        ^ 4      \        \        ^ 4      4      \        \        ^ 4      8X  g   Q h\        \        \        ^ 4      \        \        ^ 4      ( 4      '       d   Q h\        \        \        ^ 4      \        ^ \        4      4      \        P                  J g   Q h\        \        \        ^ 4      \        \        ^ 4      4      '       g   Q h\        \        \        ^ 4      \        \        ^ 4      4      \        \        ^ 4      8X  g   Q h\        \        \        ^ 8  \        ^ 8  4      \        ^ 8  4      \        ^ 8  8X  g   Q h\        \        \        ^ 8  \        ^ 8  4      \        ^ 8  \        ^ 8  ,          4      \        P                  J g   Q h\        \        P                  ! \        4      \        P                  ! \        4      4      \        P                  J g   Q h\        \        P                  ! \        4      \        P                  ! \        4      4      \        P                  J g   Q h\        \        P                  ! \        4      \        P                  ! \        4      4      \        P                  ! \        4      8X  g   Q hR# )r   N)r   ro   r	   r/   rp   r   r   r   r   r  r  r0   r  rN   rO   rP   test_refiner    s   a!eq1uX&&&&!a%!a%!!!!!a%!a%!QVV+++!a%!a%!a!e,,,a1fQi((((!q&16####!q&16#qvv---!q&16#Q///a!eq1uX&&&&!a%!a%!!!!!a%!a%!QVV+++!a%!a%!a!e,,,a1fQi((((!q&16####!q&16#qvv---!q&16#Q///bAh"Q(,,,,"Q(R1X''''"Q(R1X'166111"Q(R1X'2a8333bAh"Q(,,,,"Q(R1X'166111"Q(R1X''''"Q(R1X'Bq!H555 #a!eQU#a!e-!a%888#a!eQU#a!eA%67166AAA !**Q-A/166999!**Q-A/177:::!**Q-+qzz!}<<<rO   c                     ^ RI Hp  ^ RIHp V ! R4      pV ! R4      pV ! R4      pW#V.p\        V! 4       ..p\        \        \        \        \        R^4      4      ^,          ^4      4      4      pV Uu. uFR  p\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       g   \        V4      '       d   KP  VNKT  	  ppV F  w  rV
 F  pV	! V^ ,          P                  !  pV^,          pV F^  p\        \        W^4      4      pVP                  V4      pVP                  V4      pVV8X  d   KB  Q R	P                  V^ ,          W4      4       h	  K  	  K  	  R
# u upi )r   r  )_simplify_patterns_and3rZ   r[   r\   c              3   2   "   T F  q^,          x  K  	  R# 5ir  rN   r  s   & rP   r  Ptest_relational_threeterm_simplification_patterns_numerically.<locals>.<genexpr>7  r  r  TFr  NrJ  )r  r  r  r  r   rk  r  rG   r  r  rU  r  r   r  r  )r  r  rZ   r[   r\   r  r  r  rW  rT  r  r  r  r  r  r  r  r  s                     rP   =test_relational_threeterm_simplification_patterns_numericallyr  -  s=   ;S	AS	AS	A!9D1345LSd5Q<&81&<a@ABI%MIq,>A,>,>A,>)>)>c!fIIM)"GWQZ__-H J#s401 ( 1 1' :","5"5g">$7 f :>>DfWQZQ[>ef7	 $ # * Ns   3E'E'E'2E'E'c                     \        \        \        \        4      \	        \        \
        4      4      p \        V \         4      '       g   Q h\        V P                  4      \        \        \        4      \	        \        \
        4      08X  g   Q hR # rn   )	r   r   rZ   r\   r   r[   rj   r  rU  r  s    rP   test_issue_25451r!  E  sT    
3q!9bAhAaqvv;3q!9bAh////rO   c                  n   \        R 4      w  rr#\        V\        W4      \        W4      4      p\        W\        W4      4      p\        \        V\        WE4      4      \        WE4      4      p\        \        \        \        V\        WE4      4      4      \        WE4      4      4      pWs8X  g   Q hWc8X  g   Q hR# rg  )r   r   r   r6   )rZ   r[   r\   r   ro   rp   r  
result_anfs           rP   test_issue_26985r$  K  s    #JA! 	As1y#a)$AA#a)A QA	"CI.FF3q#a)#45s1yABJ??;;rO   N)sympy.assumptions.askr   sympy.assumptions.refiner   sympy.core.numbersr   sympy.core.relationalr   r   r   sympy.core.singletonr	   sympy.core.symbolr
   r   sympy.functionsr   (sympy.functions.elementary.trigonometricr   r   sympy.sets.setsr   r   sympy.sets.containsr   sympy.simplify.simplifyr   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/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   sympy.assumptions.cnfrC   sympy.testing.pytestrD   rE   rF   	itertoolsrG   rH   rI   rK   rL   rM   rk   rZ   r[   r\   r   r]   ry   ro   rp   rx   rQ   rc   rg   rl   rt   rv   rz   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+  r5  r8  r:  rE  rN  rQ  rX  rZ  r]  r`  rb  re  rh  rl  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$  rN   rO   rP   <module>r3     s   # + ! 2 2 " . % = + ( ,
 
 
 
 
 
 
 
 
 
 
 
 
 & 4 4 9 9U^
1a#I. 1aAq!Q	J0),924
3
9
2
(('$>(0?q(h@2	"$
4&*5''S..;8" 
68>"/+	L))+4\%&CALL$ G G$
!
3/
8
/O&&#
1."H#:(@9F39
 H H<f63A43:963
"G
F
5"=Jf00rO   