Boolean satisfiability and EDA applications