def sat_loop(initial_term)
      incremental = PropLogic.incremental_solver.new initial_term
      loop do
        sat = incremental.sat?
        break unless sat
        yield sat, incremental
      end
    end
def sat_loop(initial_term)
      incremental = PropLogic.incremental_solver.new initial_term
      loop do
        sat = incremental.sat?
        break unless sat
        yield sat, incremental
      end
    end
loop while satisfiable.
 Note: Loop continues infinitely if no addition was given inside the loop.
 @yield [Term, IncrementalSolver] yield for each term.