Logical Reasoning Techniques For Vlsi Applications