s0 generation and hard constraints