goal NatSum.thy
"Suc(Suc(Suc(Suc(Suc(Suc(0))))))*sum (%i.i*i) (Suc n) = \
\ n*Suc(n)*Suc(Suc(Suc(0))*n)";
by (Simp_tac 1);
by (nat_ind_tac "n" 1);
by (Simp_tac 1);
by (Asm_simp_tac 1);
qed "sum_of_squares";
Four commands generate the proof: an initial rewriting, then induction and
further rewriting of the base case and inductive step. The worst thing about
this version is Isabelle/HOL's unary syntax for natural numbers.
The Isabelle distribution contains similarly simple proofs for sums of cubes,
sums of odd integers, etc.
-- Larry Paulson