o
    g%                     @   s   d dl mZ dddZdS )    )
EncodedCNFFc                    s   t  tst }|  | ddlm} dh jv r&|r$dd dD S dS | j}r;|dd t| D  |	 sAdS |sN fd	d
|
 D S  fdd}||S )Nr   )	Minisat22c                 s   s    | ]}|V  qd S )N ).0fr   r   _/var/www/visachat/venv/lib/python3.10/site-packages/sympy/logic/algorithms/minisat22_wrapper.py	<genexpr>   s    z(minisat22_satisfiable.<locals>.<genexpr>)FFc                 S   s   g | ]}|d   qS )   r   r   ir   r   r   
<listcomp>   s    z)minisat22_satisfiable.<locals>.<listcomp>c                    $   i | ]} j t|d   |dkqS r	   r   symbolsabsr   litexprr   r   
<dictcomp>      $ z)minisat22_satisfiable.<locals>.<dictcomp>c                 3   sr    d}|   r2|  } fdd|D V  r"| dd |D  n
| dd |D  d}|   s|s7dV  t)NFc                    r   r   r   r   r   r   r   r   #   r   z7minisat22_satisfiable.<locals>._gen.<locals>.<dictcomp>c                 S   s   g | ]	}|d kr| qS )r   r   r
   r   r   r   r   %   s    z7minisat22_satisfiable.<locals>._gen.<locals>.<listcomp>c                 S   s   g | ]}| qS r   r   r
   r   r   r   r   '   s    T)solve	get_model
add_clauseStopIteration)resultssatisfiablesolr   minimalr   r   _gen   s   z#minisat22_satisfiable.<locals>._gen)
isinstancer   add_proppysat.solversr   data
set_phasesrangenof_varsr   r   )r   
all_modelsr    exprsr   rr!   r   r   r   minisat22_satisfiable   s$   


r,   N)FF)sympy.assumptions.cnfr   r,   r   r   r   r   <module>   s    