  There has been a large study of algorithms and the complexity of many important problems is well understood. In particular reductions between problems have been defined and used to compare the relative difficulty of two problems. Intuitively, we say that \(A\) is reducible to \(B\)  \((A \le B)\) if there is an easy-to-compute transformation, \(\tau\), that maps instances of \(A\) to instances of \(B\) in a way that preserves membership, i.e., \(\tau\)(w) \(\in B \Leftrightarrow\) w \(\in A\).