Example (24.8)

 以上をまとめると次のようになります.

g `!f (z:num->num->real).
     (!x. &0 <= x /\ x <= &1 ==> f contl x)
     ==> (?z. !N. 1 <= N
                  ==> (!n. if n < N
                           then &n / &N <= z N n /\ z N n <= &(n + 1) / &N
                           else z N n = &1) /\
                      integral (&0,&1) (\x. f x * abs (sin (&N * pi * x))) =
                      &2 / pi * sum (0..N - 1) (\n. f (z N n) * &1 / &N))`;;
e(REPEAT STRIP_TAC THEN MP_TAC(UNDISCH(SPEC`f:real->real`thm25)) THEN REPEAT STRIP_TAC);;
e(EXISTS_TAC`\N n:num. if n < N then (z:num->num->real) N n else &1` THEN BETA_TAC);;
e(REPEAT STRIP_TAC);;
e(ASM_MESON_TAC[]);;
e(ASM_SIMP_TAC[GSYM SUM_LMUL; REAL_MUL_AC]);;
e(MATCH_MP_TAC SUM_EQ_NUMSEG THEN BETA_TAC THEN ASM_MESON_TAC[LE_0; ARITH_RULE`1 <= N ==> i <= N - 1 ==> i < N`]);;
let thm28 = top_thm();;

let lemma10 = prove
 (`!x0:real y y0. y tends_num_real y0
    ==> (\n. x0 * y n) tends_num_real x0 * y0`,
  REPEAT STRIP_TAC THEN MP_TAC(SPEC`(\n:num. x0:real)`SEQ_MUL) THEN ASM_SIMP_TAC[SEQ_CONST] THEN BETA_TAC);;


g `!f. (!x. &0 <= x /\ x <= &1 ==> f contl x) /\ rintegrable (&0,&1) f
       ==> (\N. integral (&0,&1) (\x. f x * abs (sin (&N * pi * x))))
           tends_num_real &2 / pi * integral (&0,&1) f`;;
e(REPEAT STRIP_TAC);;
e(MP_TAC(SPEC_ALL thm28) THEN ASM_SIMP_TAC[] THEN REPEAT STRIP_TAC);;
e(MP_TAC(SPEC_ALL thm27) THEN ASM_SIMP_TAC[] THEN ONCE_SIMP_TAC[SEQ_SUC] THEN BETA_TAC THEN REPEAT STRIP_TAC);;
e(ASM_SIMP_TAC[my; lemma10]);;
let thm29 = MESON[top_thm()]
`!f. (!x. &0 <= x /\ x <= &1 ==> f contl x) /\ rintegrable (&0,&1) f
     ==> (\n. integral (&0,&1) (\x. f x * abs (sin (&n * pi * x))))
         tends_num_real &2 / pi * integral (&0,&1) f`;;

 仮定のrintegrable (&0,&1) fを連続性から導くのは別の機会にしたいと思います.