ó
 !+Tc           @  sM   d  d l  m Z d  d l  m Z d  d l m Z d  d l m Z d „  Z d S(   iÿÿÿÿ(   t   division(   t   print_function(   t   stderr(   t   update_watchlistc   	      c  sE  t  |  j ƒ } d g | } x"t r@| | k rF | V| d 8} q n  t } x· d d g D]© } | | | ?d @d k rY | r£ t d j |  j | | ƒ d t ƒn  t } | | c d | >O<| | | <t |  | | d >| B| | ƒ sô d | | <q| d 7} PqY qY W| s | d k rd Sd | | <d | | <| d 8} q q Wd S(   sÂ   
    Iteratively solve SAT by assigning to variables d, d+1, ..., n-1. Assumes
    variables 0, ..., d-1 are assigned so far. A generator for all the
    satisfying assignments is returned.
    i    i   s   Trying {} = {}t   fileN(	   t   lent	   variablest   Truet   Falset   printt   formatR   R   t   None(	   t   instancet	   watchlistt
   assignmentt   dt   verboset   nt   statet   tried_somethingt   a(    (    s<   /home/tch/tmp/simple-sat-master/src/solvers/iterative_sat.pyt   solve	   s:    	


		


N(   t
   __future__R    R   t   sysR   R   R   R   (    (    (    s<   /home/tch/tmp/simple-sat-master/src/solvers/iterative_sat.pyt   <module>   s   