U
    L?h%                     @   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krL|rHdd dD S dS | j}rv|dd t| D  |	 sdS |s fd	d
|
 D S  fdd}||S d S )Nr   )	Minisat22c                 s   s   | ]
}|V  qd S )N ).0fr   r   Z/var/www/html/venv/lib/python3.8/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                    s$   i | ]} j t|d   |dkqS r	   r   symbolsabsr   Zlitexprr   r   
<dictcomp>   s      z)minisat22_satisfiable.<locals>.<dictcomp>c                 3   sn   d}|   r\|  } fdd|D V  rB| dd |D  n| dd |D  d}q|sfdV  td S )NFc                    s$   i | ]} j t|d   |dkqS r   r   r   r   r   r   r   #   s      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_modelZ
add_clauseStopIteration)resultsZsatisfiableZsolr   minimalr   r   _gen   s    z#minisat22_satisfiable.<locals>._gen)
isinstancer   Zadd_propZpysat.solversr   dataZ
set_phasesrangeZnof_varsr   r   )r   Z
all_modelsr   Zexprsr   rr   r   r   r   minisat22_satisfiable   s$    


r    N)FF)Zsympy.assumptions.cnfr   r    r   r   r   r   <module>   s   