Symbolic Approaches for Boolean Synthesis