5

I just finished teaching a class on using proof assistants (in this case, Agda) to write provably correct programs. Reflecting on how it went, the biggest difficulty I noticed the students having was that they had a lot of trouble working out how to generalize the induction hypothesis. They were generally able to work out how to prove theorems by induction (even with numerous quantifiers in the statement), as long as they didn't have to generalize the hypothesis.

This is obviously one of the key skills underpinning "mathematical maturity", but it's also not a skill I feel I have good handle on how to teach. My current idea is to come up with a list of exercises where they have to work out a generalization, but I'd really also like to be able to explain some of the strategies they should use, and I'm having trouble putting that into words.

So my question is twofold:

  1. Suggest some of your favorite small examples where the proof requires a generalization. (It doesn't have to be a nontrivial generalization -- it just needs to be a generalization! Also, I want to do this in a proof assistant, so sticking with basic properties of basic algebraic structures is helpful.)

  2. How do you explain how to recognize when to generalize, and how do you explain how you should generalize the induction hypothesis?

  • 2
    Community Wiki ? – Hachino Apr 24 '15 at 09:38
  • 5
    This would be better at http://matheducators.stackexchange.com/ – Neil Strickland Apr 24 '15 at 10:00
  • Since you write "provably correct programs", is someone teaching "provably correct CPU"? Last time I checked the CPU errata of the major CPU vendors there were a lot of "issues". – joro Apr 24 '15 at 11:46
  • 1
  • When you write, "generalization", do you mean, "strengthening"? 2) Since you have noticed students have trouble doing it, you must know some examples, yourself. Why not start us off with the ones you know --- that will both clarify your meaning, and save all of us the effort of telling you things you already know.
  • – Gerry Myerson Apr 24 '15 at 12:50
  • @GerryMyerson: 1) yes, that's what I mean. 2) I'll add some examples soon. – Neel Krishnaswami Apr 24 '15 at 13:34
  • 2
    I asked the following related question http://mathoverflow.net/questions/31699/strengthening-the-induction-hypothesis – Tony Huynh Apr 24 '15 at 21:53