+1 to making it 'deep'. Having a 'simplify' parameter to a simplification function sounds a little redundant. Will make that change in the next commit. You +1 to the other changes? (to to_cnf and to_dnf?)