This is the standard recommendation, but does it really help?
You do that test on the second subset, and then you discard every theory that doesn't pass both the 1600 set and the 400 set.
So you end up with the predictions that pass all the data in your original 2000 samples.
Is it really any better at generalizing to new data? If so, can you just evaluate your theories on the unpartitioned data by doing randomized subset testing after-the-fact?