Monte Carlo steps in Ising model Metropolis algorithm In K.Binder's book Monte Carlo Simmulation in Statistical Physics 4th ed., one Monte Carlo step is defined as "one sweep through the lattice". However, in many other books and papers, the Monte Carlo step is used to refer sweep on one single spin. Are these two method -- selecting spin on the lattice randomly one by one or traversing over the lattice (e.g. using a for loop) -- equivalent?
Actually, these two methods will give similar results in my simulation, but is there any (mathematical) proof for that?
 A: Generally speaking, in a Markov Chain Monte-Carlo  (MCMC) the therm step may be used to indicate any move from a state (or configuration) in the chain to the next one. Clearly, this step (or update, yet another term) must be in accordance with all the properties required in the context of Monte-Carlo simulations, e.g. irreducibility and ergodicity, to ensure convergence to the equilibrium distribution and so on. In addition, in the definition of the Markov Chain of MCMC simulations it is often required the step to verify the detailed balance, a condition that guarantees the chain to possess the desired properties (actually it is a sufficient but not necessary requirement, but it is used because it is very simple to handle when defining an update algorithm).
Now, in your case a sweep through the lattice should be just a sequence of single MC steps, each one verifying the the requirements needed to follow the Markov Chain. In other words, we just considered a sequence of single updates as a single step. This "new" kind of update is a licit step because it is just the sum of many single steps each one verifying the detailed balance, i.e. we are just applying many times the transition matrix of the Markov Chain. Within the example of the Ising model, a possible step is the single spin flip performed on a random spin picked randomly. Here, however, you may choose to sweep all over the lattice trying to flip all the spins one after the other, defining this as your update or step. 
Let me conclude with just few words about why do so. The reason is that configurations generated in MCMC simulations are autocorrelated, i.e. are not independent as we want. This correlation decreases when the "distance" between two configurations of the chain grows (and also the observables that one may want to compute from the system are correlated). Therefore, instead of collecting all the configurations generated in the chain, we choose to perform many single steps before collecting data so that two configurations separated by this "new" update turn out to be less autocorrelated.
