It is important to know how to prove theorems. However, I don't think the correct way to do it is to say "Here's some vague hints, now try to guess what we're talking about by playing with these blocks". The way I was taught, which I found pretty effective, was that we'd be given an theorem, then in some cases (not all, or we'd never get anywhere) prove that statement. When you hand over the theorem and then make the student prove it, he applies and synthesizes previous theorems to explain the new one.