Example (24.6)
そして,Kurzweil-Henstock積分ですので,区分求積の為に通常のRiemann積分の理論を自作します.
let rdefint = new_definition `(!a b f k. rdefint (a,b) f k <=> (!e. &0 < e ==> (?g. &0 < g /\ (!D p. ((D 0 = a /\ (?N. (!n. n < N ==> D n < D (SUC n)) /\ (!n. n >= N ==> D n = b))) /\ (!n. D n <= p n /\ p n <= D (SUC n))) /\ (!n. n < (@N. (!n. n < N ==> D n < D (SUC n)) /\ (!n. n >= N ==> D n = D N)) ==> D (SUC n) - D n < g) ==> abs (sum (0, (@N. (!n. n < N ==> D n < D (SUC n)) /\ (!n. n >= N ==> D n = D N))) (\n. f (p n) * (D (SUC n) - D n)) - k) < e))))`;; g `!a b f k. rdefint (a,b) f k ==> defint (a,b) f k`;; e(REPEAT GEN_TAC THEN ASM_SIMP_TAC[rdefint; defint; gauge; GSYM tdiv; fine; GSYM rsum; GSYM division; GSYM dsize;] THEN REPEAT STRIP_TAC);; e(FIRST_X_ASSUM(MP_TAC o (SPEC`e:real`)) THEN ASM_SIMP_TAC[] THEN STRIP_TAC THEN FIRST_X_ASSUM MP_TAC);; e(ONCE_ASM_SIMP_TAC[UNDISCH(MESON[]`&0 < g ==> (D (SUC n) - D n < g <=> D (SUC n) - D n < (\x:real. g:real) (p n))`)] THEN REPEAT STRIP_TAC);; e(ASSUME_TAC(UNDISCH(MESON[]`&0 < g ==> (!x. a <= x /\ x <= b ==> &0 < (\x:real. g:real) x)`)));; e(EXISTS_TAC`(\x:real. g:real)`);; e(ASM_SIMP_TAC[]);; let rDEFINT_IMP_DEFINT = top_thm();; let rintegrable = new_definition `!a b f. rintegrable (a,b) f <=> (?i. rdefint (a,b) f i)`;; let rintegral = new_definition `!a b f. rintegral(a,b) f = @i. rdefint(a,b) f i`;; let rINTEGRABLE_rDEFINT = prove (`!f a b. rintegrable(a,b) f ==> rdefint(a,b) f (rintegral(a,b) f)`, REPEAT GEN_TAC THEN REWRITE_TAC[rintegrable; rintegral] THEN CONV_TAC(RAND_CONV SELECT_CONV) THEN REWRITE_TAC[]);; let rDINT_UNIQ = prove (`!a b f k1 k2. a <= b /\ rdefint(a,b) f k1 /\ rdefint(a,b) f k2 ==> (k1 = k2)`, MESON_TAC[rDEFINT_IMP_DEFINT; DINT_UNIQ]);; let rDEFINT_rINTEGRAL = prove (`!f a b i. a <= b /\ rdefint(a,b) f i ==> rintegral(a,b) f = i`, REPEAT STRIP_TAC THEN REWRITE_TAC[rintegral] THEN MATCH_MP_TAC SELECT_UNIQUE THEN ASM_MESON_TAC[rDINT_UNIQ]);; g `!a b f. rintegrable(a,b) f ==> (!e. &0 < e ==> (?g. &0 < g /\ (!D p. tdiv (a,b) (D,p) /\ (!n. n < (@N. (!n. n < N ==> D n < D (SUC n)) /\ (!n. n >= N ==> D n = D N)) ==> D (SUC n) - D n < g) ==> abs (rsum (D,p) f - rintegral (a,b) f) < e)))`;; e(REPEAT GEN_TAC THEN STRIP_TAC THEN MP_TAC(SPEC_ALL rINTEGRABLE_rDEFINT) THEN ASM_SIMP_TAC[rdefint] THEN SIMP_TAC[GSYM division; GSYM tdiv; GSYM dsize; GSYM rsum]);; let rINTEGRABLE_rdefint = top_thm();; let rINTEGRAL_EQ_INTEGRAL = MESON[rINTEGRABLE_rDEFINT; rDEFINT_IMP_DEFINT; rDEFINT_rINTEGRAL; DEFINT_INTEGRAL]`!f a b. a <= b /\ rintegrable (a,b) f ==> rintegral (a,b) f = integral (a,b) f`;;