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 hol-info@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/hol-info