Add semantic check to guarantee no collisions when projecting

i.e., it forbids to project different values to the same identifier