Algorithms And Data Structures For Logic Synthesis And Verification Using Boolean Satisfiability