Boolean satisfiability from theoretical hardness to practical success | Synapse