Is selection(p)(projection(R)) == projection(selection(p)(R)) always?
If think if the selection is on subset of columns that are used in projections then YES,
but if not, there can be a situation where you are making a selection on columns that not exists.