Crossover can provably be useful in evolutionary computation