bcnf decomp