Symmetry in Software Synthesis