Fundamentals of Binary Decision Diagrams