title: What is SAT and what it is good for?
body: <p>Recently I saw a Reddit article on using SAT for solving a puzzle [1]. This got me very curios about this "SAT" thing. I read the Wikipedia article but I would like to ask someone of you to explain it for me in more layman terms.</p>
  
  <p>What is SAT and what is it good for? Can it be used to traverse a tree structure? For parsing texts? For line breaking [2]? For bin packing [3]? Is it a kind of optimization technique?</p>
  
  <p>On related note, I read that NP vs P is about choosing which numbers of a set sum to zero vs checking whether some numbers sum to zero - is SAT somehow related to this?</p>
  
  <p>[1] <a href="http://www.reddit.com/r/programming/comments/pxpzd/solving_hexiom_really_fast_with_a_sat_solver/" rel="noreferrer">http://www.reddit.com/r/programming/comments/pxpzd/solving_hexiom_really_fast_with_a_sat_solver/</a></p>
  
  <p>[2] <a href="http://en.wikipedia.org/wiki/Line_wrap" rel="noreferrer">http://en.wikipedia.org/wiki/Line_wrap</a></p>
  
  <p>[3] <a href="http://en.wikipedia.org/wiki/Bin_packing_problem" rel="noreferrer">http://en.wikipedia.org/wiki/Bin_packing_problem</a></p>