Hi Adnan,
| I am working in HOL Light and I want to verify the following theorem
| regarding integrability of a vector function:
|
| *f integrable_on (:real^1) ==> f integrable_on {t | a <= drop t}*
|
| which says that if a function is integrable on (-inf, inf) then it is
| integrable on its subset which looks true to me.
Indeed it is true, but you have put your finger on an unfortunate gap
in the libraries. For the absolute (=Lebesgue) integral, it is basic
that if a function is integrable on a set, it is integrable on any
Lebesgue measurable subset, so the variant with absolute integrability
is easy:
let ADNAN' = prove
(`!f:real^1->real^N a.
f absolutely_integrable_on (:real^1)
==> f absolutely_integrable_on {t | a <= drop t}`,
REPEAT GEN_TAC THEN
MATCH_MP_TAC(ONCE_REWRITE_RULE[IMP_CONJ_ALT]
ABSOLUTELY_INTEGRABLE_ON_LEBESGUE_MEASURABLE_SUBSET) THEN
REWRITE_TAC[SUBSET_UNIV; drop; GSYM real_ge] THEN
SIMP_TAC[LEBESGUE_MEASURABLE_CONVEX; CONVEX_HALFSPACE_COMPONENT_GE]);;
For the general gauge integral it is not the case that a function is
automatically integrable on measurable subsets; in fact this is equivalent
(ABSOLUTELY_INTEGRABLE_ON_LEBESGUE_MEASURABLE_SUBSET_EQ_ALT) to absolute
integrability, as you can see by taking the integrals over {x | f x >= 0}
and {x | f x < 0} and subtracting. But for special subsets like intervals
it is true. Unfortunately this is only proved in the libraries for the
still more special case of compact intervals (INTEGRABLE_ON_SUBINTERVAL).
For your case I can only think of a rather painful manual proof going back
to the basic definitions:
let ADNAN = prove
(`!f:real^1->real^N a.
f integrable_on (:real^1) ==> f integrable_on {t | a <= drop t}`,
REPEAT GEN_TAC THEN
SUBGOAL_THEN `{t | a <= drop t} = IMAGE (\x. lift a + x) {t | &0 <= drop t}`
SUBST1_TAC THENL
[REWRITE_TAC[EXTENSION; IN_IMAGE; IN_ELIM_THM; UNWIND_THM1; DROP_SUB;
LIFT_DROP; VECTOR_ARITH `x:real^N = a + y <=> x - a = y`] THEN
REAL_ARITH_TAC;
SUBST1_TAC(SYM(ISPEC `lift a` TRANSLATION_UNIV)) THEN
REWRITE_TAC[GSYM INTEGRABLE_TRANSLATION] THEN
SPEC_TAC(`\x. (f:real^1->real^N) (lift a + x)`,`f:real^1->real^N`)] THEN
REPEAT STRIP_TAC THEN ONCE_REWRITE_TAC[INTEGRABLE_ALT] THEN
ONCE_REWRITE_TAC[INTEGRABLE_RESTRICT_INTER; INTEGRAL_RESTRICT_INTER] THEN
REWRITE_TAC[INTER; IN_INTERVAL_1; IN_ELIM_THM] THEN
REWRITE_TAC[CONJ_ASSOC; GSYM REAL_MAX_LE] THEN
ONCE_REWRITE_TAC[MESON[LIFT_DROP] `max a b = drop(lift(max a b))`] THEN
SIMP_TAC[GSYM IN_INTERVAL_1; SET_RULE `{x | x IN s} = s`] THEN CONJ_TAC
THENL
[ASM_MESON_TAC[INTEGRABLE_ON_SUBINTERVAL; SUBSET_UNIV]; ALL_TAC] THEN
X_GEN_TAC `e:real` THEN DISCH_TAC THEN
FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [INTEGRABLE_ALT]) THEN
DISCH_THEN(MP_TAC o SPEC `e:real` o CONJUNCT2) THEN
ASM_REWRITE_TAC[IN_UNIV; ETA_AX; BALL_1; SUBSET_INTERVAL_1] THEN
REWRITE_TAC[VECTOR_ADD_LID; VECTOR_SUB_LZERO; LIFT_DROP; DROP_NEG] THEN
ONCE_REWRITE_TAC[TAUT `p /\ q <=> ~(p ==> ~q)`] THEN
SIMP_TAC[REAL_ARITH `&0 < B ==> ~(B <= --B) /\ --B < B`] THEN
REWRITE_TAC[NOT_IMP] THEN MATCH_MP_TAC MONO_EXISTS THEN
X_GEN_TAC `B:real` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
MAP_EVERY X_GEN_TAC [`u:real^1`; `v:real^1`; `w:real^1`; `x:real^1`] THEN
STRIP_TAC THEN
SUBGOAL_THEN `max (&0) (drop u) = &0 /\ max (&0) (drop w) = &0`
(CONJUNCTS_THEN SUBST1_TAC) THENL [ASM_REAL_ARITH_TAC; ALL_TAC] THEN
FIRST_X_ASSUM(MP_TAC o SPECL
[`--lift B`; `v:real^1`; `--lift B`; `x:real^1`]) THEN
ASM_REWRITE_TAC[DROP_NEG; LIFT_DROP; REAL_LE_REFL] THEN
MATCH_MP_TAC EQ_IMP THEN AP_THM_TAC THEN AP_TERM_TAC THEN AP_TERM_TAC THEN
FIRST_ASSUM(MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
INTEGRABLE_ON_SUBINTERVAL)) THEN
REWRITE_TAC[SUBSET_UNIV] THEN STRIP_TAC THEN
MP_TAC(ISPECL [`f:real^1->real^N`; `--lift B`; `v:real^1`; `vec 0:real^1`]
INTEGRAL_COMBINE) THEN
MP_TAC(ISPECL [`f:real^1->real^N`; `--lift B`; `x:real^1`; `vec 0:real^1`]
INTEGRAL_COMBINE) THEN
ASM_REWRITE_TAC[DROP_VEC; DROP_NEG; LIFT_DROP] THEN
REPEAT
(ANTS_TAC THENL [ASM_REAL_ARITH_TAC; DISCH_THEN(SUBST1_TAC o SYM)]) THEN
REWRITE_TAC[LIFT_NUM] THEN CONV_TAC VECTOR_ARITH);;
I'll think about adding some useful general lemmas to the libraries to
make theorems of this form easier.
John.
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
hol-info mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hol-info