A little help with digitalRead

You have a scope problem

if (rot1 == HIGH && rot2 == HIGH && rot3 == HIGH && rot4 == LOW) {int prog_number = 1;}

prog_number only exists between the {} the next int prog_number creates a different variable, in this case just drop the "int".

Mark