===========================================================
                                      .___ __  __   
          _________________  __ __  __| _/|__|/  |_ 
         / ___\_` __ \__  \ |  |  \/ __ | | \\_  __\
        / /_/  >  | \// __ \|  |  / /_/ | |  ||  |  
        \___  /|__|  (____  /____/\____ | |__||__|  
       /_____/            \/           \/           
              grep rough audit - static analysis tool
                  v2.8 written by @Wireghoul
=================================[justanotherhacker.com]===
hol-light-20190729/100/ballot.ml-214-   (`{x} INTER s = if x IN s then {x} else {}`,
hol-light-20190729/100/ballot.ml:215:    COND_CASES_TAC THEN ASM SET_TAC[]) in
hol-light-20190729/100/ballot.ml-216-  REWRITE_TAC[valid_countings; CARD_NUMSEG_RESTRICT_EXTREMA; GSYM IN_NUMSEG;
##############################################
hol-light-20190729/100/cayley_hamilton.ml-237-  DISCH_THEN(X_CHOOSE_THEN `c:(num->real)^N^N` ASSUME_TAC) THEN
hol-light-20190729/100/cayley_hamilton.ml:238:  EXISTS_TAC `(\i. lambda j k. ((c:(num->real)^N^N)$j$k) i):num->real^N^N` THEN
hol-light-20190729/100/cayley_hamilton.ml-239-  MAP_EVERY X_GEN_TAC [`x:real`; `i:num`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/100/combinations.ml-59-   [ASM_CASES_TAC `(u:A->bool) HAS_SIZE (SUC m)` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/100/combinations.ml:60:    ASM SET_TAC[];
hol-light-20190729/100/combinations.ml-61-    ALL_TAC] THEN
##############################################
hol-light-20190729/100/combinations.ml-63-   [EXISTS_TAC `u DELETE (a:A)`  THEN
hol-light-20190729/100/combinations.ml:64:    REPEAT (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/100/combinations.ml-65-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [HAS_SIZE_SUC]) THEN
hol-light-20190729/100/combinations.ml:66:    DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MATCH_MP_TAC) THEN ASM SET_TAC[];
hol-light-20190729/100/combinations.ml:67:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/combinations.ml-68-    REWRITE_TAC[HAS_SIZE_CLAUSES] THEN
hol-light-20190729/100/combinations.ml-69-    EXISTS_TAC `a:A` THEN EXISTS_TAC `x':A->bool` THEN
hol-light-20190729/100/combinations.ml:70:    ASM SET_TAC[]]);;
hol-light-20190729/100/combinations.ml-71-
##############################################
hol-light-20190729/100/constructible.ml-388-    REWRITE_TAC[radicals; RATIONAL_NUM] THEN
hol-light-20190729/100/constructible.ml:389:    MP_TAC(SPEC `r:expression` NOT_IN_OWN_RADICALS) THEN ASM SET_TAC[]]);;
hol-light-20190729/100/constructible.ml-390-
##############################################
hol-light-20190729/100/constructible.ml-461-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `e':expression` THEN
hol-light-20190729/100/constructible.ml:462:  ASM_SIMP_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/100/constructible.ml-463-
##############################################
hol-light-20190729/100/constructible.ml-750-  MAP_EVERY EXISTS_TAC
hol-light-20190729/100/constructible.ml:751:   [`(b:real^2)$2 - (a:real^2)$2`; `(a:real^2)$1 - (b:real^2)$1`;
hol-light-20190729/100/constructible.ml:752:    `(a:real^2)$2 * (a$1 - (b:real^2)$1) - (a:real^2)$1 * (a$2 - b$2)`;
hol-light-20190729/100/constructible.ml:753:    `(d:real^2)$2 - (c:real^2)$2`; `(c:real^2)$1 - (d:real^2)$1`;
hol-light-20190729/100/constructible.ml:754:    `(c:real^2)$2 * (c$1 - (d:real^2)$1) - (c:real^2)$1 * (c$2 - d$2)`] THEN
hol-light-20190729/100/constructible.ml-755-  REPLICATE_TAC 6
##############################################
hol-light-20190729/100/constructible.ml-773-  MAP_EVERY EXISTS_TAC
hol-light-20190729/100/constructible.ml:774:   [`(c:real^2)$1`; `(c:real^2)$2`;
hol-light-20190729/100/constructible.ml:775:    `((e:real^2)$1 - (d:real^2)$1) pow 2 + (e$2 - d$2) pow 2`;
hol-light-20190729/100/constructible.ml:776:    `(b:real^2)$2 - (a:real^2)$2`;
hol-light-20190729/100/constructible.ml:777:    `(a:real^2)$1 - (b:real^2)$1`;
hol-light-20190729/100/constructible.ml:778:    `a$2 * ((a:real^2)$1 - (b:real^2)$1) - a$1 * (a$2 - b$2)`] THEN
hol-light-20190729/100/constructible.ml-779-  REPLICATE_TAC 6
##############################################
hol-light-20190729/100/constructible.ml-800-  MAP_EVERY EXISTS_TAC
hol-light-20190729/100/constructible.ml:801:   [`(a:real^2)$1`; `(a:real^2)$2`;
hol-light-20190729/100/constructible.ml:802:    `((c:real^2)$1 - (b:real^2)$1) pow 2 + (c$2 - b$2) pow 2`;
hol-light-20190729/100/constructible.ml:803:    `(d:real^2)$1`; `(d:real^2)$2`;
hol-light-20190729/100/constructible.ml:804:    `((f:real^2)$1 - (e:real^2)$1) pow 2 + (f$2 - e$2) pow 2`] THEN
hol-light-20190729/100/constructible.ml-805-  REPLICATE_TAC 6
##############################################
hol-light-20190729/100/constructible.ml-813-let CONSTRUCTIBLE_RADICAL = prove
hol-light-20190729/100/constructible.ml:814: (`!x. constructible x ==> radical(x$1) /\ radical(x$2)`,
hol-light-20190729/100/constructible.ml-815-  MATCH_MP_TAC constructible_INDUCT THEN REPEAT CONJ_TAC THEN
##############################################
hol-light-20190729/100/descartes.ml-114-  REPEAT STRIP_TAC THEN COND_CASES_TAC THENL
hol-light-20190729/100/descartes.ml:115:   [MATCH_MP_TAC VARIATION_SUBSET THEN ASM SET_TAC[];
hol-light-20190729/100/descartes.ml-116-    MP_TAC(ISPECL [`a:num->real`; `{m:num,n,p}`; `n:num`] VARIATION_SPLIT) THEN
##############################################
hol-light-20190729/100/descartes.ml-778-    DISCH_THEN(MP_TAC o MATCH_MP ODD_VARIATION_POSITIVE_ROOT) THEN
hol-light-20190729/100/descartes.ml:779:    ASM SET_TAC[];
hol-light-20190729/100/descartes.ml-780-    ALL_TAC] THEN
##############################################
hol-light-20190729/100/dirichlet.ml-454-    CONJ_TAC THENL [ASM_MESON_TAC[PHI_LOWERBOUND_1_STRONG; LE_1]; ALL_TAC] THEN
hol-light-20190729/100/dirichlet.ml:455:    MATCH_MP_TAC FERMAT_LITTLE THEN ASM SET_TAC[];
hol-light-20190729/100/dirichlet.ml-456-    ALL_TAC] THEN
##############################################
hol-light-20190729/100/dirichlet.ml-695-     [MAP_EVERY EXISTS_TAC [`f0:num->complex`; `h0:num->bool`] THEN
hol-light-20190729/100/dirichlet.ml:696:      ASM_REWRITE_TAC[LE_0] THEN ASM SET_TAC[];
hol-light-20190729/100/dirichlet.ml-697-      ALL_TAC] THEN
##############################################
hol-light-20190729/100/dirichlet.ml-716-    STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/100/dirichlet.ml:717:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/100/dirichlet.ml-718-    MATCH_MP_TAC LE_TRANS THEN EXISTS_TAC `CARD((a:num) INSERT h)` THEN
##############################################
hol-light-20190729/100/dirichlet.ml-1848-    REPEAT STRIP_TAC THEN CONV_TAC SYM_CONV THEN
hol-light-20190729/100/dirichlet.ml:1849:    MATCH_MP_TAC SUM_UNION_EQ THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]) in
hol-light-20190729/100/dirichlet.ml-1850-  GEN_TAC THEN ASM_CASES_TAC `d = 0` THENL
##############################################
hol-light-20190729/100/fourier.ml-521-  REPEAT STRIP_TAC THEN
hol-light-20190729/100/fourier.ml:522:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/100/fourier.ml-523-   [L2NORM_LE; SQUARE_INTEGRABLE_SUM; ETA_AX; FINITE_NUMSEG;
##############################################
hol-light-20190729/100/fourier.ml-672-    ALL_TAC] THEN
hol-light-20190729/100/fourier.ml:673:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/100/fourier.ml-674-   [L2PRODUCT_RADD; SQUARE_INTEGRABLE_SUB;  SQUARE_INTEGRABLE_SUM;
##############################################
hol-light-20190729/100/fourier.ml-2396-  ASM_REWRITE_TAC[REAL_ARITH `pi - --pi = &2 * pi`] THEN DISCH_TAC THEN
hol-light-20190729/100/fourier.ml:2397:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/100/fourier.ml-2398-   [GSYM REAL_MUL_ASSOC; GSYM REAL_INTEGRAL_RMUL; GSYM REAL_INTEGRAL_ADD;
##############################################
hol-light-20190729/100/friendship.ml-76-      DISCH_TAC THEN MATCH_MP_TAC EQ_IMP THEN AP_THM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/100/friendship.ml:77:      AP_TERM_TAC THEN ASM SET_TAC[]];
hol-light-20190729/100/friendship.ml-78-    ALL_TAC] THEN
##############################################
hol-light-20190729/100/friendship.ml-82-   (fun th -> ASM_SIMP_TAC[th; DIVIDES_ADD; DIVIDES_REFL]) THEN
hol-light-20190729/100/friendship.ml:83:  CONV_TAC SYM_CONV THEN MATCH_MP_TAC CARD_UNION_EQ THEN ASM SET_TAC[]);;
hol-light-20190729/100/friendship.ml-84-
##############################################
hol-light-20190729/100/friendship.ml-123-    SUBGOAL_THEN `s = (a:A) INSERT b INSERT (s DELETE a DELETE b)`
hol-light-20190729/100/friendship.ml:124:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/friendship.ml-125-    ASM_SIMP_TAC[CARD_CLAUSES; FINITE_DELETE; FINITE_INSERT] THEN
##############################################
hol-light-20190729/100/friendship.ml-127-  ASM_SIMP_TAC[FINITE_DELETE; IN_DELETE] THEN CONJ_TAC THENL
hol-light-20190729/100/friendship.ml:128:   [MATCH_MP_TAC CARD_PSUBSET THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/friendship.ml-129-  X_GEN_TAC `x:A` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/100/friendship.ml-565-    CONJ_TAC THENL
hol-light-20190729/100/friendship.ml:566:     [ALL_TAC; MATCH_MP_TAC CARD_SUBSET THEN ASM SET_TAC[]] THEN
hol-light-20190729/100/friendship.ml-567-    MATCH_MP_TAC EQ_IMP_LE THEN CONV_TAC SYM_CONV THEN
##############################################
hol-light-20190729/100/friendship.ml-663-      SUBGOAL_THEN `{q:person | friend q (b:person)} = {q | friend b q}`
hol-light-20190729/100/friendship.ml:664:      SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/friendship.ml-665-      ASM_REWRITE_TAC[ARITH_RULE `m - 1 - 1 = m - 2`] THEN
##############################################
hol-light-20190729/100/inclusion_exclusion.ml-13-  MATCH_MP_TAC(TAUT `(a /\ ~b ==> c) ==> a ==> b \/ c`) THEN
hol-light-20190729/100/inclusion_exclusion.ml:14:  DISCH_TAC THEN EXISTS_TAC `s DELETE (x:A)` THEN ASM SET_TAC[]);;
hol-light-20190729/100/inclusion_exclusion.ml-15-
##############################################
hol-light-20190729/100/inclusion_exclusion.ml-105-    ONCE_REWRITE_TAC[CONJ_SYM] THEN
hol-light-20190729/100/inclusion_exclusion.ml:106:    REWRITE_TAC[EXISTS_IN_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/100/inclusion_exclusion.ml-107-    DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/100/inclusion_exclusion.ml-121-    REWRITE_TAC[REAL_NEG_NEG; REAL_MUL_RID] THEN AP_TERM_TAC THEN
hol-light-20190729/100/inclusion_exclusion.ml:122:    AP_TERM_TAC THEN REWRITE_TAC[INTERS_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/100/inclusion_exclusion.ml-123-    REWRITE_TAC[SET_RULE `{s | P s /\ ~(s = e)} = {s | P s} DELETE e`] THEN
##############################################
hol-light-20190729/100/inclusion_exclusion.ml-127-    W(MP_TAC o PART_MATCH (lhand o rand) SUM_IMAGE o rand o snd) THEN
hol-light-20190729/100/inclusion_exclusion.ml:128:    ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/100/inclusion_exclusion.ml-129-    REWRITE_TAC[o_DEF; INTERS_1; CARD_CLAUSES; real_pow; REAL_MUL_LID] THEN
##############################################
hol-light-20190729/100/inclusion_exclusion.ml-135-    ASM_SIMP_TAC[CARD_CLAUSES; REAL_POW_ADD; real_pow] THEN
hol-light-20190729/100/inclusion_exclusion.ml:136:    COND_CASES_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/inclusion_exclusion.ml-137-    REWRITE_TAC[IMAGE_CLAUSES; real_pow] THEN REAL_ARITH_TAC]);;
##############################################
hol-light-20190729/100/inclusion_exclusion.ml-255-  ASM_SIMP_TAC[FINITE_SUBSETS_RESTRICT] THEN
hol-light-20190729/100/inclusion_exclusion.ml:256:  (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/inclusion_exclusion.ml-257-   CONV_TAC SYM_CONV THEN MATCH_MP_TAC CARD_UNION_EQ THEN
##############################################
hol-light-20190729/100/inclusion_exclusion.ml-260-     REWRITE_TAC[TAUT `~(a /\ b) <=> b ==> ~a`; FORALL_IN_IMAGE] THEN
hol-light-20190729/100/inclusion_exclusion.ml:261:     ASM SET_TAC[];
hol-light-20190729/100/inclusion_exclusion.ml-262-     ALL_TAC] THEN
##############################################
hol-light-20190729/100/inclusion_exclusion.ml-270-   ASM_CASES_TAC `(v:A->bool) SUBSET s` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/100/inclusion_exclusion.ml:271:   BINOP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/inclusion_exclusion.ml-272-   ASM_MESON_TAC[CARD_CLAUSES; EVEN; NOT_ODD; FINITE_SUBSET; SUBSET] THEN
##############################################
hol-light-20190729/100/inclusion_exclusion.ml-289-  SUBGOAL_THEN `FINITE v /\ (s:A->bool) SUBSET v` STRIP_ASSUME_TAC THENL
hol-light-20190729/100/inclusion_exclusion.ml:290:   [ASM SET_TAC[FINITE_INSERT]; ALL_TAC] THEN
hol-light-20190729/100/inclusion_exclusion.ml-291-  ASM_SIMP_TAC[CARD_SUBSETS_STEP] THEN ASM_CASES_TAC `s:A->bool = v` THENL
##############################################
hol-light-20190729/100/inclusion_exclusion.ml-348-  ONCE_REWRITE_TAC[TAUT `(a /\ b) /\ c <=> b /\ a /\ c`] THEN
hol-light-20190729/100/inclusion_exclusion.ml:349:  MATCH_MP_TAC CARD_SUBSUPERSETS_EVEN_ODD THEN ASM SET_TAC[]);;
hol-light-20190729/100/inclusion_exclusion.ml-350-
##############################################
hol-light-20190729/100/inclusion_exclusion.ml-404-   [ASM_SIMP_TAC[FINITE_POWERSET; lemma; FINITE_IMAGE] THEN
hol-light-20190729/100/inclusion_exclusion.ml:405:    REWRITE_TAC[GSYM lemma] THEN ASM SET_TAC[];
hol-light-20190729/100/inclusion_exclusion.ml-406-    ALL_TAC] THEN
##############################################
hol-light-20190729/100/inclusion_exclusion.ml-410-  W(MP_TAC o PART_MATCH (lhand o rand) SUM_IMAGE o rand o snd) THEN
hol-light-20190729/100/inclusion_exclusion.ml:411:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/100/inclusion_exclusion.ml-412-  REWRITE_TAC[GSYM SUM_NEG] THEN MATCH_MP_TAC SUM_EQ THEN
##############################################
hol-light-20190729/100/independence.ml-783-        TARSKI_AXIOM_11_EUCLIDEAN) THEN REWRITE_TAC[IN_IMAGE] THEN
hol-light-20190729/100/independence.ml:784:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/100/independence.ml-785-  ASM_MESON_TAC[MEMBER_NOT_EMPTY; DEST_PLANE_NORM_LT; BETWEEN_NORM_LT]);;
##############################################
hol-light-20190729/100/minkowski.ml-87-    ASM_SIMP_TAC[COMPACT_IMP_BOUNDED] THEN
hol-light-20190729/100/minkowski.ml:88:    ANTS_TAC THENL [ASM_REAL_ARITH_TAC; ASM SET_TAC[]]] THEN
hol-light-20190729/100/minkowski.ml-89-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/100/minkowski.ml-113-   [SUBGOAL_THEN
hol-light-20190729/100/minkowski.ml:114:     `?N. !x:real^N i. x IN s /\ 1 <= i /\ i <= dimindex(:N) ==> abs(x$i) < &N`
hol-light-20190729/100/minkowski.ml-115-    STRIP_ASSUME_TAC THENL
##############################################
hol-light-20190729/100/minkowski.ml-161-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
hol-light-20190729/100/minkowski.ml:162:    EXISTS_TAC `(lambda i. floor((x:real^N)$i)):real^N` THEN
hol-light-20190729/100/minkowski.ml-163-    ASM_SIMP_TAC[LAMBDA_BETA; FLOOR];
##############################################
hol-light-20190729/100/minkowski.ml-211-    FIRST_X_ASSUM(MP_TAC o SPEC `s INTER ball(vec 0:real^N,r)`) THEN
hol-light-20190729/100/minkowski.ml:212:    ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/100/minkowski.ml-213-    SIMP_TAC[BOUNDED_INTER; BOUNDED_BALL] THEN
##############################################
hol-light-20190729/100/minkowski.ml-283-    MATCH_MP_TAC REAL_LE_TRANS THEN
hol-light-20190729/100/minkowski.ml:284:    EXISTS_TAC `abs((y - x:real^N)$k)` THEN
hol-light-20190729/100/minkowski.ml-285-    ASM_SIMP_TAC[COMPONENT_LE_NORM; VECTOR_SUB_COMPONENT] THEN
##############################################
hol-light-20190729/100/morley.ml-283-  fun t ttac (asl,w) ->
hol-light-20190729/100/morley.ml:284:      let asm = list_mk_conj (map (concl o snd) (rev asl)) in
hol-light-20190729/100/morley.ml-285-      let gnw = list_mk_forall(vars,mk_imp(asm,t)) in
##############################################
hol-light-20190729/100/pascal.ml-467-let homogenize = new_definition
hol-light-20190729/100/pascal.ml:468: `(homogenize:real^2->real^3) x = vector[x$1; x$2; &1]`;;
hol-light-20190729/100/pascal.ml-469-
##############################################
hol-light-20190729/100/pascal.ml-576-  FIRST_X_ASSUM(CONJUNCTS_THEN2 MP_TAC ASSUME_TAC) THEN
hol-light-20190729/100/pascal.ml:577:  MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/100/pascal.ml-578-
##############################################
hol-light-20190729/100/pascal.ml-619-     [MAP_EVERY EXISTS_TAC
hol-light-20190729/100/pascal.ml:620:       [`&1`; `&1`; `&0`; `-- &2 * (c:real^2)$1`; `-- &2 * (c:real^2)$2`;
hol-light-20190729/100/pascal.ml:621:        `(c:real^2)$1 pow 2 + (c:real^2)$2 pow 2 - r pow 2`] THEN
hol-light-20190729/100/pascal.ml-622-      REWRITE_TAC[EXTENSION; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/100/pick.ml-101-  FIRST_ASSUM(SUBST1_TAC o MATCH_MP TRIANGLE_DECOMPOSITION) THEN
hol-light-20190729/100/pick.ml:102:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/100/pick.ml-103-   [COMPACT_UNION; COMPACT_INTER; COMPACT_CONVEX_HULL;
##############################################
hol-light-20190729/100/pick.ml-160-   [MATCH_MP_TAC FINITE_CART THEN REWRITE_TAC[FINITE_INTSEG];
hol-light-20190729/100/pick.ml:161:    ASM SET_TAC[]]);;
hol-light-20190729/100/pick.ml-162-
##############################################
hol-light-20190729/100/pick.ml-401-    SUBGOAL_THEN `{x:real^2 | x IN {c} /\ integral_vector x} = {c}`
hol-light-20190729/100/pick.ml:402:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-403-    SIMP_TAC[CARD_CLAUSES; FINITE_EMPTY; ARITH; NOT_IN_EMPTY]]);;
##############################################
hol-light-20190729/100/pick.ml-433-      MP_TAC THENL
hol-light-20190729/100/pick.ml:434:       [SIMP_TAC[HULL_INC; IN_INSERT]; ASM SET_TAC[]];
hol-light-20190729/100/pick.ml-435-      ALL_TAC] THEN
##############################################
hol-light-20190729/100/pick.ml-538-  SUBST1_TAC THENL
hol-light-20190729/100/pick.ml:539:   [REWRITE_TAC[CONVEX_HULL_SING] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-540-  SIMP_TAC[CARD_CLAUSES; FINITE_RULES; NOT_IN_EMPTY] THEN
##############################################
hol-light-20190729/100/pick.ml-647-               FINITE_INSERT; FINITE_EMPTY] THEN
hol-light-20190729/100/pick.ml:648:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-649-  DISCH_THEN(X_CHOOSE_THEN `cp:real^2` MP_TAC) THEN
##############################################
hol-light-20190729/100/pick.ml-677-  SUBGOAL_THEN `x IN segment(a:real^2,b) /\ x IN segment(c,d)` MP_TAC THENL
hol-light-20190729/100/pick.ml:678:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-679-  REWRITE_TAC[IN_OPEN_SEGMENT_ALT] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/100/pick.ml-696-  SUBGOAL_THEN `(x:real^2) IN segment(a,b) /\ x IN segment(c,d)` MP_TAC THENL
hol-light-20190729/100/pick.ml:697:   [ASM SET_TAC[];
hol-light-20190729/100/pick.ml-698-    SIMP_TAC[IN_OPEN_SEGMENT_ALT; GSYM BETWEEN_IN_SEGMENT] THEN STRIP_TAC] THEN
##############################################
hol-light-20190729/100/pick.ml-729-    SUBGOAL_THEN `(x:real^2) IN segment(c,d)` MP_TAC THENL
hol-light-20190729/100/pick.ml:730:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-731-    ASM_REWRITE_TAC[IN_SEGMENT] THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/100/pick.ml-805-    REWRITE_TAC[IN_UNION; PATH_IMAGE_LINEPATH] THEN DISJ2_TAC THEN
hol-light-20190729/100/pick.ml:806:    RULE_ASSUM_TAC(REWRITE_RULE[open_segment]) THEN ASM SET_TAC[];
hol-light-20190729/100/pick.ml-807-    ALL_TAC] THEN
##############################################
hol-light-20190729/100/pick.ml-1102-        HD; NOT_CONS_NIL; IN_UNION; ENDS_IN_SEGMENT; PATH_IMAGE_LINEPATH] THEN
hol-light-20190729/100/pick.ml:1103:    ASM SET_TAC[]]);;
hol-light-20190729/100/pick.ml-1104-
##############################################
hol-light-20190729/100/pick.ml-1219-        ASM_REWRITE_TAC[];
hol-light-20190729/100/pick.ml:1220:        ASM SET_TAC[];
hol-light-20190729/100/pick.ml-1221-        FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/100/pick.ml-1467-let DISTINGUISHING_ROTATION_EXISTS = prove
hol-light-20190729/100/pick.ml:1468: (`!s. FINITE s ==> ?t. pairwise (\x y. ~(x$2 = y$2)) (IMAGE (rotate2d t) s)`,
hol-light-20190729/100/pick.ml-1469-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/100/pick.ml-1560-  SUBGOAL_THEN
hol-light-20190729/100/pick.ml:1561:   `?b:real^2. MEM b q /\ !d. MEM d q ==> b$2 <= d$2`
hol-light-20190729/100/pick.ml-1562-  STRIP_ASSUME_TAC THENL
hol-light-20190729/100/pick.ml:1563:   [MP_TAC(ISPEC `IMAGE (\x:real^2. x$2) (set_of_list q)`
hol-light-20190729/100/pick.ml-1564-        INF_FINITE) THEN
##############################################
hol-light-20190729/100/pick.ml-1720-      REPEAT(DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC)) THEN
hol-light-20190729/100/pick.ml:1721:      DISCH_THEN(MP_TAC o AP_TERM `\x:real^2. x$2`) THEN
hol-light-20190729/100/pick.ml-1722-      REWRITE_TAC[VECTOR_ADD_COMPONENT; VECTOR_MUL_COMPONENT] THEN
##############################################
hol-light-20190729/100/pick.ml-1752-    DISCH_TAC THEN DISCH_TAC THEN REWRITE_TAC[IN_SET_OF_LIST] THEN
hol-light-20190729/100/pick.ml:1753:    DISCH_TAC THEN EXISTS_TAC `(d:real^2)$2 - (b:real^2)$2` THEN
hol-light-20190729/100/pick.ml-1754-    ASM_REWRITE_TAC[REAL_SUB_LT] THEN
##############################################
hol-light-20190729/100/pick.ml-1758-  MAP_EVERY ABBREV_TAC
hol-light-20190729/100/pick.ml:1759:   [`a':real^2 = (&1 - e / (a$2 - b$2)) % b + e / (a$2 - b$2) % a`;
hol-light-20190729/100/pick.ml:1760:    `c':real^2 = (&1 - e / (c$2 - b$2)) % b + e / (c$2 - b$2) % c`] THEN
hol-light-20190729/100/pick.ml-1761-  SUBGOAL_THEN
##############################################
hol-light-20190729/100/pick.ml-1820-      REWRITE_TAC[REAL_ADD_SUB; VECTOR_SUB_COMPONENT] THEN STRIP_TAC THEN
hol-light-20190729/100/pick.ml:1821:      EXISTS_TAC `(s * ((a:real^2)$2 - (b:real^2)$2)) / e` THEN
hol-light-20190729/100/pick.ml:1822:      EXISTS_TAC `(t * ((c:real^2)$2 - (b:real^2)$2)) / e` THEN
hol-light-20190729/100/pick.ml-1823-      ASM_SIMP_TAC[REAL_LE_DIV; REAL_LE_MUL; REAL_SUB_LT; REAL_LT_IMP_LE] THEN
##############################################
hol-light-20190729/100/pick.ml-1859-  SUBGOAL_THEN
hol-light-20190729/100/pick.ml:1860:   `?d:real^2. d IN interior(convex hull {a',b,c'}) /\ ~(d$1 = b$1)`
hol-light-20190729/100/pick.ml-1861-  STRIP_ASSUME_TAC THENL
##############################################
hol-light-20190729/100/pick.ml-1864-    X_GEN_TAC `x:real^2` THEN DISCH_TAC THEN
hol-light-20190729/100/pick.ml:1865:    ASM_CASES_TAC `(x:real^2)$1 = (b:real^2)$1` THENL
hol-light-20190729/100/pick.ml-1866-     [ALL_TAC; EXISTS_TAC `x:real^2` THEN ASM_REWRITE_TAC[]] THEN
##############################################
hol-light-20190729/100/pick.ml-1916-  ABBREV_TAC
hol-light-20190729/100/pick.ml:1917:   `d':real^2 = d - (&1 + (d:real^2)$2 - (b:real^2)$2) % basis 2` THEN
hol-light-20190729/100/pick.ml-1918-  SUBGOAL_THEN `(d':real^2) IN outside(path_image
##############################################
hol-light-20190729/100/pick.ml-1932-    ALL_TAC] THEN
hol-light-20190729/100/pick.ml:1933:  SUBGOAL_THEN `(b:real^2)$2 < (d:real^2)$2 /\ (d:real^2)$2 < (b:real^2)$2 + e`
hol-light-20190729/100/pick.ml-1934-  STRIP_ASSUME_TAC THENL
##############################################
hol-light-20190729/100/pick.ml-1952-    ALL_TAC] THEN
hol-light-20190729/100/pick.ml:1953:  SUBGOAL_THEN `(d':real^2)$2 + &1 = (b:real^2)$2` ASSUME_TAC THENL
hol-light-20190729/100/pick.ml-1954-   [EXPAND_TAC "d'" THEN REWRITE_TAC[VECTOR_SUB_COMPONENT] THEN
##############################################
hol-light-20190729/100/pick.ml-1973-     `!t. s SUBSET t /\ ~(x IN t) ==> ~(x IN s)`) THEN
hol-light-20190729/100/pick.ml:1974:    EXISTS_TAC `{x | (x:real^2)$2 >= (b:real^2)$2}` THEN
hol-light-20190729/100/pick.ml-1975-    SIMP_TAC[SUBSET_HULL; CONVEX_HALFSPACE_COMPONENT_GE] THEN
##############################################
hol-light-20190729/100/pick.ml-1979-  SUBGOAL_THEN `~(d' IN convex hull {a':real^2,b,c'})` ASSUME_TAC THENL
hol-light-20190729/100/pick.ml:1980:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-1981-  SUBGOAL_THEN
##############################################
hol-light-20190729/100/pick.ml-2002-  STRIP_TAC THEN
hol-light-20190729/100/pick.ml:2003:  SUBGOAL_THEN `(d':real^2)$1 = (d:real^2)$1` ASSUME_TAC THENL
hol-light-20190729/100/pick.ml-2004-   [EXPAND_TAC "d'" THEN REWRITE_TAC[VECTOR_SUB_COMPONENT] THEN
##############################################
hol-light-20190729/100/pick.ml-2007-    ALL_TAC] THEN
hol-light-20190729/100/pick.ml:2008:  SUBGOAL_THEN `(x:real^2)$1 = (d:real^2)$1` ASSUME_TAC THENL
hol-light-20190729/100/pick.ml-2009-   [MP_TAC(ISPECL [`d:real^2`; `d':real^2`; `x:real^2`] SEGMENT_VERTICAL) THEN
##############################################
hol-light-20190729/100/pick.ml-2013-   [ASM_MESON_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml:2014:  SUBGOAL_THEN `(x:real^2)$2 < (b:real^2)$2 + e` ASSUME_TAC THENL
hol-light-20190729/100/pick.ml-2015-   [MP_TAC(ISPECL [`d:real^2`; `d':real^2`; `x:real^2`] SEGMENT_VERTICAL) THEN
##############################################
hol-light-20190729/100/pick.ml-2037-     `!u. t SUBSET u /\ s INTER u = {} ==> s INTER t = {}`) THEN
hol-light-20190729/100/pick.ml:2038:    EXISTS_TAC `{x:real^2 | x$2 >= (b:real^2)$2 + e}` THEN CONJ_TAC THENL
hol-light-20190729/100/pick.ml-2039-     [MATCH_MP_TAC SUBSET_TRANS THEN
##############################################
hol-light-20190729/100/pick.ml-2157-        ASM_REWRITE_TAC[] THEN
hol-light-20190729/100/pick.ml:2158:        RULE_ASSUM_TAC(REWRITE_RULE[SEGMENT_CLOSED_OPEN]) THEN ASM SET_TAC[];
hol-light-20190729/100/pick.ml-2159-        SIMP_TAC[PATH_IMAGE_JOIN; PATHFINISH_LINEPATH; PATH_IMAGE_LINEPATH;
##############################################
hol-light-20190729/100/pick.ml-2165-        DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
hol-light-20190729/100/pick.ml:2166:        SUBGOAL_THEN `(y:real^2)$1 = (d:real^2)$1` ASSUME_TAC THENL
hol-light-20190729/100/pick.ml-2167-         [MP_TAC(ISPECL [`d:real^2`; `d':real^2`; `y:real^2`]
##############################################
hol-light-20190729/100/pick.ml-2176-         (CONJUNCT2 SEGMENT_SYM)]) THEN
hol-light-20190729/100/pick.ml:2177:        ASM_CASES_TAC `y:real^2 = c` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/100/pick.ml-2178-        UNDISCH_THEN `y:real^2 = c` SUBST_ALL_TAC THEN
##############################################
hol-light-20190729/100/pick.ml-2222-        ASM_REWRITE_TAC[] THEN
hol-light-20190729/100/pick.ml:2223:        RULE_ASSUM_TAC(REWRITE_RULE[SEGMENT_CLOSED_OPEN]) THEN ASM SET_TAC[];
hol-light-20190729/100/pick.ml-2224-        ASM_SIMP_TAC[PATH_IMAGE_JOIN; PATHSTART_LINEPATH; NOT_CONS_NIL; HD;
##############################################
hol-light-20190729/100/pick.ml-2230-        DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
hol-light-20190729/100/pick.ml:2231:        SUBGOAL_THEN `(y:real^2)$1 = (d:real^2)$1` ASSUME_TAC THENL
hol-light-20190729/100/pick.ml-2232-         [MP_TAC(ISPECL [`d:real^2`; `d':real^2`; `y:real^2`]
##############################################
hol-light-20190729/100/pick.ml-2242-        ONCE_REWRITE_TAC[SEGMENT_SYM] THEN
hol-light-20190729/100/pick.ml:2243:        ASM_CASES_TAC `y:real^2 = a` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/100/pick.ml-2244-        UNDISCH_THEN `y:real^2 = a` SUBST_ALL_TAC THEN
##############################################
hol-light-20190729/100/pick.ml-2401-               FINITE_INSERT; FINITE_EMPTY];
hol-light-20190729/100/pick.ml:2402:      ASM SET_TAC[];
hol-light-20190729/100/pick.ml-2403-      SUBGOAL_THEN
##############################################
hol-light-20190729/100/pick.ml-2420-    SUBGOAL_THEN `n dot (mx - b:real^2) <= n dot (c - b)` MP_TAC THENL
hol-light-20190729/100/pick.ml:2421:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-2422-    GEN_REWRITE_TAC LAND_CONV [REAL_LE_LT] THEN STRIP_TAC THENL
##############################################
hol-light-20190729/100/pick.ml-2431-    EXISTS_TAC `n dot (mx - b:real^2)` THEN CONJ_TAC THENL
hol-light-20190729/100/pick.ml:2432:     [ASM_REWRITE_TAC[] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/100/pick.ml:2433:      FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]];
hol-light-20190729/100/pick.ml-2434-    FIRST_X_ASSUM(CHOOSE_THEN (K ALL_TAC))] THEN
##############################################
hol-light-20190729/100/pick.ml-2437-   [EXPAND_TAC "m" THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/100/pick.ml:2438:    CONJ_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST_ALL_TAC] THEN
hol-light-20190729/100/pick.ml-2439-    UNDISCH_TAC
##############################################
hol-light-20190729/100/pick.ml-2443-    DISCH_THEN(MP_TAC o SPEC `b:real^2`) THEN
hol-light-20190729/100/pick.ml:2444:    ASM_REWRITE_TAC[IN_SING; ENDS_IN_SEGMENT] THEN ASM SET_TAC[];
hol-light-20190729/100/pick.ml-2445-    ALL_TAC] THEN
##############################################
hol-light-20190729/100/pick.ml-2459-    SUBGOAL_THEN `~(z:real^2 = a) /\ ~(z = c)` STRIP_ASSUME_TAC THENL
hol-light-20190729/100/pick.ml:2460:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-2461-    SUBGOAL_THEN
##############################################
hol-light-20190729/100/pick.ml-2469-    SUBGOAL_THEN `~(z IN segment[a:real^2,b]) /\ ~(z IN segment[b,c])`
hol-light-20190729/100/pick.ml:2470:    STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-2471-    SUBGOAL_THEN `~collinear{b:real^2,a,z} /\ ~collinear{b,c,z}`
##############################################
hol-light-20190729/100/pick.ml-2477-      EXISTS_TAC `convex hull {a:real^2,b,c}` THEN
hol-light-20190729/100/pick.ml:2478:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-2479-      ASM_SIMP_TAC[GSYM AFFINE_INDEPENDENT_CONVEX_AFFINE_HULL;
##############################################
hol-light-20190729/100/pick.ml-2508-      REWRITE_TAC[CONVEX_CONVEX_HULL; INSERT_SUBSET; EMPTY_SUBSET] THEN
hol-light-20190729/100/pick.ml:2509:      SIMP_TAC[HULL_INC; IN_INSERT] THEN ASM SET_TAC[];
hol-light-20190729/100/pick.ml-2510-      ALL_TAC] THEN
##############################################
hol-light-20190729/100/pick.ml-2512-    ASSUME_TAC THENL
hol-light-20190729/100/pick.ml:2513:     [REWRITE_TAC[open_segment] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-2514-    SUBGOAL_THEN
##############################################
hol-light-20190729/100/pick.ml-2519-      SUBGOAL_THEN `m <= n dot (v - b:real^2)` MP_TAC THENL
hol-light-20190729/100/pick.ml:2520:       [FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-2521-      REWRITE_TAC[REAL_NOT_LE] THEN
##############################################
hol-light-20190729/100/pick.ml-2580-        MATCH_MP_TAC(REAL_ARITH
hol-light-20190729/100/pick.ml:2581:         `abs(x$2) <= norm x /\ norm x <= e / &2 /\ &0 < e ==> x$2 < e`) THEN
hol-light-20190729/100/pick.ml-2582-        SIMP_TAC[COMPONENT_LE_NORM; DIMINDEX_2; ARITH] THEN
##############################################
hol-light-20190729/100/pick.ml-2625-         `!t. s SUBSET t /\ u INTER t = {} ==> s INTER u = {}`) THEN
hol-light-20190729/100/pick.ml:2626:        EXISTS_TAC `{x | (x:real^2)$2 - (b:real^2)$2 < e}` THEN
hol-light-20190729/100/pick.ml:2627:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-2628-        REWRITE_TAC[SET_RULE `s INTER t = {} <=> s SUBSET (UNIV DIFF t)`] THEN
##############################################
hol-light-20190729/100/pick.ml-2644-         PATHFINISH_LINEPATH; PATHSTART_POLYGONAL_PATH; NOT_CONS_NIL; HD] THEN
hol-light-20190729/100/pick.ml:2645:      REWRITE_TAC[PATH_IMAGE_LINEPATH] THEN ASM SET_TAC[]]] THEN
hol-light-20190729/100/pick.ml-2646-  SUBGOAL_THEN
##############################################
hol-light-20190729/100/pick.ml-2657-     [ASM_REWRITE_TAC[LENGTH; ARITH_RULE `3 <= SUC n <=> 2 <= n`] THEN
hol-light-20190729/100/pick.ml:2658:      ASM SET_TAC[];
hol-light-20190729/100/pick.ml-2659-      ALL_TAC] THEN
##############################################
hol-light-20190729/100/pick.ml-2688-    ASM_REWRITE_TAC[IN_DIFF; IN_INSERT; NOT_IN_EMPTY] THEN
hol-light-20190729/100/pick.ml:2689:    ASM_CASES_TAC `mx:real^2 = u` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-2690-    MATCH_MP_TAC(TAUT `(a ==> b) /\ a ==> a /\ b`) THEN CONJ_TAC THENL
##############################################
hol-light-20190729/100/pick.ml-2731-         `!t. ~(b IN t) /\ s SUBSET t ==> ~(b IN s)`) THEN
hol-light-20190729/100/pick.ml:2732:        EXISTS_TAC `{x:real^2 | (x:real^2)$2 >= (b:real^2)$2 + e}` THEN
hol-light-20190729/100/pick.ml-2733-        ASM_REWRITE_TAC[IN_ELIM_THM; real_ge; REAL_NOT_LE; REAL_LT_ADDR] THEN
##############################################
hol-light-20190729/100/pick.ml-2794-    SUBGOAL_THEN `mx IN convex hull {a:real^2,b,c}` MP_TAC THENL
hol-light-20190729/100/pick.ml:2795:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/pick.ml-2796-    ONCE_REWRITE_TAC[SEGMENT_SYM] THEN REWRITE_TAC[CONVEX_HULL_3] THEN
##############################################
hol-light-20190729/100/pick.ml-2812-      REWRITE_TAC[IN_INTER; SEGMENT_CONVEX_HULL] THEN
hol-light-20190729/100/pick.ml:2813:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/100/pick.ml-2814-      REWRITE_TAC[CONVEX_HULL_2; IN_ELIM_THM] THEN ASM_MESON_TAC[];
##############################################
hol-light-20190729/100/pick.ml-2838-      REWRITE_TAC[IN_INTER; SEGMENT_CONVEX_HULL] THEN
hol-light-20190729/100/pick.ml:2839:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/100/pick.ml-2840-      REWRITE_TAC[CONVEX_HULL_2; IN_ELIM_THM] THEN ASM_MESON_TAC[];
##############################################
hol-light-20190729/100/pick.ml-2980-    ASM_REWRITE_TAC[IN_DIFF; IN_INSERT; NOT_IN_EMPTY] THEN
hol-light-20190729/100/pick.ml:2981:    ASM SET_TAC[];
hol-light-20190729/100/pick.ml-2982-    ALL_TAC] THEN
##############################################
hol-light-20190729/100/pick.ml-2987-    ASM_REWRITE_TAC[IN_DIFF; IN_INSERT; NOT_IN_EMPTY] THEN
hol-light-20190729/100/pick.ml:2988:    ASM SET_TAC[];
hol-light-20190729/100/pick.ml-2989-    ALL_TAC] THEN
##############################################
hol-light-20190729/100/pick.ml-3032-      ANTS_TAC THENL [SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/100/pick.ml:3033:      REWRITE_TAC[IN_INTER] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/100/pick.ml-3034-      ASM_SIMP_TAC[GSYM COLLINEAR_3_AFFINE_HULL] THEN
##############################################
hol-light-20190729/100/platonic.ml-323-    MAP_EVERY EXISTS_TAC  [`x:real^3`; `y:real^3`; `z:real^3`] THEN
hol-light-20190729/100/platonic.ml:324:    REPLICATE_TAC 3 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/100/platonic.ml-325-    REPEAT LET_TAC THEN
##############################################
hol-light-20190729/100/platonic.ml-350-      REWRITE_TAC[SUBSET_INTER] THEN CONJ_TAC THENL
hol-light-20190729/100/platonic.ml:351:       [ASM SET_TAC[];
hol-light-20190729/100/platonic.ml-352-        MATCH_MP_TAC SUBSET_TRANS THEN EXISTS_TAC `t:real^3->bool` THEN
##############################################
hol-light-20190729/100/platonic.ml-354-        EXISTS_TAC `convex hull t:real^3->bool` THEN
hol-light-20190729/100/platonic.ml:355:        REWRITE_TAC[HULL_SUBSET] THEN ASM SET_TAC[]];
hol-light-20190729/100/platonic.ml-356-      ALL_TAC] THEN
##############################################
hol-light-20190729/100/platonic.ml-373-        MATCH_MP_TAC HULL_MINIMAL THEN REWRITE_TAC[AFFINE_HYPERPLANE] THEN
hol-light-20190729/100/platonic.ml:374:        ASM SET_TAC[];
hol-light-20190729/100/platonic.ml-375-        ALL_TAC] THEN
##############################################
hol-light-20190729/100/platonic.ml-392-        SUBGOAL_THEN `(u:real^3) IN convex hull s /\ v IN convex hull s`
hol-light-20190729/100/platonic.ml:393:        MP_TAC THENL [ASM_SIMP_TAC[HULL_INC]; ASM SET_TAC[]];
hol-light-20190729/100/platonic.ml-394-        ALL_TAC] THEN
##############################################
hol-light-20190729/100/platonic.ml-411-        EXISTS_TAC `convex hull t:real^3->bool` THEN
hol-light-20190729/100/platonic.ml:412:        REWRITE_TAC[HULL_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/100/platonic.ml-413-        FIRST_X_ASSUM(fun th -> GEN_REWRITE_TAC RAND_CONV [SYM th]) THEN
##############################################
hol-light-20190729/100/platonic.ml-456-      ANTS_TAC THENL
hol-light-20190729/100/platonic.ml:457:       [SIMP_TAC[CONVEX_CONVEX_HULL; CONVEX_HULL_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/100/platonic.ml-458-        DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/100/platonic.ml-628-                        else s INTER {x | P x}`,
hol-light-20190729/100/platonic.ml:629:    COND_CASES_TAC THEN ASM SET_TAC[]) in
hol-light-20190729/100/platonic.ml-630-  SIMP_TAC[COMPUTE_FACES_2; FINITE_INSERT; FINITE_EMPTY] THEN
##############################################
hol-light-20190729/100/platonic.ml-809-    MAP_EVERY EXISTS_TAC  [`x:real^3`; `y:real^3`] THEN
hol-light-20190729/100/platonic.ml:810:    REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/100/platonic.ml-811-    SUBGOAL_THEN `(x:real^3) IN s /\ y IN s` STRIP_ASSUME_TAC THENL
hol-light-20190729/100/platonic.ml:812:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/platonic.ml-813-    REPEAT LET_TAC THEN
##############################################
hol-light-20190729/100/platonic.ml-826-     [REWRITE_TAC[GSYM MEMBER_NOT_EMPTY] THEN EXISTS_TAC `x:real^3` THEN
hol-light-20190729/100/platonic.ml:827:      MATCH_MP_TAC HULL_INC THEN ASM SET_TAC[];
hol-light-20190729/100/platonic.ml-828-      ASM_REWRITE_TAC[]] THEN
##############################################
hol-light-20190729/100/platonic.ml-842-        MATCH_MP_TAC HULL_MINIMAL THEN REWRITE_TAC[AFFINE_HYPERPLANE] THEN
hol-light-20190729/100/platonic.ml:843:        ASM SET_TAC[];
hol-light-20190729/100/platonic.ml-844-        CONJ_TAC THENL
##############################################
hol-light-20190729/100/platonic.ml-846-          ASM_SIMP_TAC[real_ge; REAL_LE_REFL];
hol-light-20190729/100/platonic.ml:847:          AP_TERM_TAC THEN ASM SET_TAC[]]];
hol-light-20190729/100/platonic.ml-848-      STRIP_TAC] THEN
##############################################
hol-light-20190729/100/platonic.ml-862-      MP_TAC THENL
hol-light-20190729/100/platonic.ml:863:       [CONJ_TAC THEN MATCH_MP_TAC HULL_INC THEN ASM SET_TAC[];
hol-light-20190729/100/platonic.ml:864:        ASM SET_TAC[]];
hol-light-20190729/100/platonic.ml-865-      ALL_TAC] THEN
##############################################
hol-light-20190729/100/platonic.ml-881-       [SUBGOAL_THEN `(x:real^3) IN convex hull t` MP_TAC THENL
hol-light-20190729/100/platonic.ml:882:         [MATCH_MP_TAC HULL_INC THEN ASM SET_TAC[]; ASM SET_TAC[]];
hol-light-20190729/100/platonic.ml-883-        ALL_TAC] THEN
##############################################
hol-light-20190729/100/platonic.ml-908-        SUBGOAL_THEN `(u:real^3) IN convex hull s /\ v IN convex hull s`
hol-light-20190729/100/platonic.ml:909:        MP_TAC THENL [ASM_SIMP_TAC[HULL_INC]; ASM SET_TAC[]];
hol-light-20190729/100/platonic.ml-910-        ALL_TAC] THEN
##############################################
hol-light-20190729/100/platonic.ml-928-        EXISTS_TAC `convex hull t:real^3->bool` THEN
hol-light-20190729/100/platonic.ml:929:        REWRITE_TAC[HULL_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/100/platonic.ml-930-        ASM_REWRITE_TAC[SUBSET_INTER] THEN
##############################################
hol-light-20190729/100/platonic.ml-972-      ANTS_TAC THENL
hol-light-20190729/100/platonic.ml:973:       [SIMP_TAC[CONVEX_CONVEX_HULL; CONVEX_HULL_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/100/platonic.ml-974-        DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/100/platonic.ml-1048-      CONJ_TAC THENL
hol-light-20190729/100/platonic.ml:1049:       [MATCH_MP_TAC AFF_DIM_SUBSET THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/platonic.ml-1050-      ASM_SIMP_TAC[AFF_DIM_AFFINE_INTER_HYPERPLANE; AFFINE_HYPERPLANE;
##############################################
hol-light-20190729/100/platonic.ml-1066-                        else s INTER {x | P x}`,
hol-light-20190729/100/platonic.ml:1067:    COND_CASES_TAC THEN ASM SET_TAC[]) in
hol-light-20190729/100/platonic.ml-1068-  fun tm ->
##############################################
hol-light-20190729/100/platonic.ml-1179-  EXISTS_TAC `aff_dim {w:real^3,x,y,z}` THEN CONJ_TAC THENL
hol-light-20190729/100/platonic.ml:1180:   [ALL_TAC; MATCH_MP_TAC AFF_DIM_SUBSET THEN ASM SET_TAC[]] THEN
hol-light-20190729/100/platonic.ml-1181-  ONCE_REWRITE_TAC[AFF_DIM_INSERT] THEN COND_CASES_TAC THENL
##############################################
hol-light-20190729/100/pnt.ml-631-  REWRITE_TAC[COMPLEX_RING `a * x + (Cx(&1) - a) * x = x`] THEN
hol-light-20190729/100/pnt.ml:632:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN FIRST_X_ASSUM(fun th ->
hol-light-20190729/100/pnt.ml-633-    MP_TAC th THEN MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC) THEN
##############################################
hol-light-20190729/100/polyhedron.ml-187-  EXISTS_TAC `{c:real^N->bool | hyperplane_cell A c}` THEN
hol-light-20190729/100/polyhedron.ml:188:  ASM_SIMP_TAC[FINITE_HYPERPLANE_CELLS] THEN ASM SET_TAC[]);;
hol-light-20190729/100/polyhedron.ml-189-
##############################################
hol-light-20190729/100/polyhedron.ml-338-  GEN_REWRITE_TAC I [EXTENSION] THEN REWRITE_TAC[IN_UNIONS; IN_ELIM_THM] THEN
hol-light-20190729/100/polyhedron.ml:339:  ASM SET_TAC[]);;
hol-light-20190729/100/polyhedron.ml-340-
##############################################
hol-light-20190729/100/polyhedron.ml-377-  MATCH_MP_TAC HYPERPLANE_CELL_INTERS THEN ASM_REWRITE_TAC[IN_ELIM_THM] THEN
hol-light-20190729/100/polyhedron.ml:378:  CONJ_TAC THENL [ASM_MESON_TAC[]; ASM SET_TAC[]]);;
hol-light-20190729/100/polyhedron.ml-379-
##############################################
hol-light-20190729/100/polyhedron.ml-433-  SUBGOAL_THEN `B:(real^N#real)->bool = A UNION (B DIFF A)` SUBST1_TAC THENL
hol-light-20190729/100/polyhedron.ml:434:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-435-  REWRITE_TAC[hyperplane_cellcomplex; HYPERPLANE_CELL_UNION] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-446-    GEN_REWRITE_TAC LAND_CONV [EXTENSION] THEN
hol-light-20190729/100/polyhedron.ml:447:    REWRITE_TAC[IN_UNIONS; IN_ELIM_THM; IN_UNIV] THEN ASM SET_TAC[]]);;
hol-light-20190729/100/polyhedron.ml-448-
##############################################
hol-light-20190729/100/polyhedron.ml-468-  EXISTS_TAC `{c:real^N->bool | hyperplane_cellcomplex A c}` THEN
hol-light-20190729/100/polyhedron.ml:469:  ASM_SIMP_TAC[FINITE_HYPERPLANE_CELLCOMPLEXES] THEN ASM SET_TAC[]);;
hol-light-20190729/100/polyhedron.ml-470-
##############################################
hol-light-20190729/100/polyhedron.ml-479-   [ASM_CASES_TAC `c:real^N->bool = {}` THENL
hol-light-20190729/100/polyhedron.ml:480:     [ASM_MESON_TAC[NONEMPTY_HYPERPLANE_CELL]; ASM SET_TAC[]];
hol-light-20190729/100/polyhedron.ml-481-    REWRITE_TAC[DISJOINT; INTER_UNIONS; GSYM MEMBER_NOT_EMPTY] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-488-    ASM_CASES_TAC `c':real^N->bool = c` THENL
hol-light-20190729/100/polyhedron.ml:489:     [DISCH_THEN(K ALL_TAC); ASM SET_TAC[]] THEN
hol-light-20190729/100/polyhedron.ml-490-    MATCH_MP_TAC(SET_RULE `c IN C ==> c SUBSET UNIONS C`) THEN
##############################################
hol-light-20190729/100/polyhedron.ml-515-  REWRITE_TAC[EXTENSION; IN_ELIM_THM] THEN X_GEN_TAC `c:real^N->bool` THEN
hol-light-20190729/100/polyhedron.ml:516:  EQ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/100/polyhedron.ml-517-  DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
##############################################
hol-light-20190729/100/polyhedron.ml-525-  SUBGOAL_THEN `~(DISJOINT (c:real^N->bool) c')` MP_TAC THENL
hol-light-20190729/100/polyhedron.ml:526:   [ASM SET_TAC[]; ASM_MESON_TAC[DISJOINT_HYPERPLANE_CELLS_EQ]]);;
hol-light-20190729/100/polyhedron.ml-527-
##############################################
hol-light-20190729/100/polyhedron.ml-548-   [ASM_CASES_TAC `c:real^N->bool = {}` THENL
hol-light-20190729/100/polyhedron.ml:549:     [ASM_MESON_TAC[NONEMPTY_HYPERPLANE_CELL]; ASM SET_TAC[]];
hol-light-20190729/100/polyhedron.ml-550-    ASM_CASES_TAC `hyperplane_cell A (c:real^N->bool)` THEN
##############################################
hol-light-20190729/100/polyhedron.ml-572-   [ASM_REWRITE_TAC[] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/100/polyhedron.ml:573:     [ASM SET_TAC[];
hol-light-20190729/100/polyhedron.ml:574:      MATCH_MP_TAC HYPERPLANE_CELLCOMPLEX_UNIONS THEN ASM SET_TAC[];
hol-light-20190729/100/polyhedron.ml-575-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [pairwise]) THEN
##############################################
hol-light-20190729/100/polyhedron.ml-581-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [pairwise]) THEN
hol-light-20190729/100/polyhedron.ml:582:    ASM_REWRITE_TAC[pairwise] THEN ASM SET_TAC[]]);;
hol-light-20190729/100/polyhedron.ml-583-
##############################################
hol-light-20190729/100/polyhedron.ml-677-      SUBGOAL_THEN `~(DISJOINT c2 (c:real^N->bool))` ASSUME_TAC THENL
hol-light-20190729/100/polyhedron.ml:678:       [ASM SET_TAC[]; ASM_MESON_TAC[DISJOINT_HYPERPLANE_CELLS_EQ]];
hol-light-20190729/100/polyhedron.ml-679-      DISCH_THEN(X_CHOOSE_THEN `c1:real^N->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/100/polyhedron.ml-698-     MP_TAC(ISPECL [`a:real^N`; `b:real`] HYPERPLANE_CELLS_DISTINCT_LEMMA) THEN
hol-light-20190729/100/polyhedron.ml:699:     ASM SET_TAC[];
hol-light-20190729/100/polyhedron.ml-700-     ALL_TAC])
##############################################
hol-light-20190729/100/polyhedron.ml-706-     `?u v:real^N. u IN c /\ ~(a dot u < b) /\ v IN c /\ ~(a dot v > b)`
hol-light-20190729/100/polyhedron.ml:707:    MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-708-    REWRITE_TAC[real_gt; REAL_NOT_LT; GSYM MEMBER_NOT_EMPTY] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-731-         u IN c /\ a dot u = b /\ v IN c /\ ~(a dot v = b) /\ ~(u = v)`
hol-light-20190729/100/polyhedron.ml:732:    STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-733-    SUBGOAL_THEN
##############################################
hol-light-20190729/100/polyhedron.ml-816-      ASM_SIMP_TAC[CONVEX_INTER; CONVEX_HYPERPLANE; AFFINE_IMP_CONVEX] THEN
hol-light-20190729/100/polyhedron.ml:817:      ASM SET_TAC[];
hol-light-20190729/100/polyhedron.ml-818-      REWRITE_TAC[AFF_DIM_AFFINE_HULL] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-820-      REPEAT(COND_CASES_TAC THEN ASM_REWRITE_TAC[INT_SUB_ADD]) THEN
hol-light-20190729/100/polyhedron.ml:821:      ASM SET_TAC[]];
hol-light-20190729/100/polyhedron.ml-822-    SUBGOAL_THEN `&0 <= aff_dim (c INTER {x:real^N | a dot x = b})` MP_TAC
hol-light-20190729/100/polyhedron.ml:823:    THENL [REWRITE_TAC[AFF_DIM_POS_LE] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-824-    SPEC_TAC(`aff_dim (c INTER {x:real^N | a dot x = b})`,`i:int`) THEN
##############################################
hol-light-20190729/100/polyhedron.ml-909-     [SUBGOAL_THEN `(vec 0:real^N) IN INTERS H` MP_TAC THENL
hol-light-20190729/100/polyhedron.ml:910:       [ASM SET_TAC[]; REWRITE_TAC[IN_INTERS]] THEN
hol-light-20190729/100/polyhedron.ml-911-      DISCH_THEN(MP_TAC o SPEC `h:real^N->bool`) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-914-      FIRST_X_ASSUM(MP_TAC o SPEC `H DELETE (h:real^N->bool)`) THEN
hol-light-20190729/100/polyhedron.ml:915:      ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[PSUBSET_ALT]] THEN
hol-light-20190729/100/polyhedron.ml-916-      DISCH_THEN(X_CHOOSE_THEN `x:real^N` STRIP_ASSUME_TAC o CONJUNCT2) THEN
##############################################
hol-light-20190729/100/polyhedron.ml-927-          SUBGOAL_THEN `H:(real^N->bool)->bool = h INSERT (H DELETE h)`
hol-light-20190729/100/polyhedron.ml:928:          SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-929-          REWRITE_TAC[INTERS_INSERT; IN_INTER] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-943-        SUBGOAL_THEN `H:(real^N->bool)->bool = h INSERT (H DELETE h)`
hol-light-20190729/100/polyhedron.ml:944:        SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-945-        REWRITE_TAC[INTERS_INSERT; IN_INTER] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-962-        SUBGOAL_THEN `(vec 0:real^N) IN INTERS H` MP_TAC THENL
hol-light-20190729/100/polyhedron.ml:963:         [ASM SET_TAC[]; REWRITE_TAC[IN_INTERS]] THEN
hol-light-20190729/100/polyhedron.ml-964-        DISCH_THEN(MP_TAC o SPEC `k:real^N->bool`) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1043-          FIRST_ASSUM(MP_TAC o MATCH_MP FACE_OF_IMP_SUBSET) THEN
hol-light-20190729/100/polyhedron.ml:1044:          ASM SET_TAC[];
hol-light-20190729/100/polyhedron.ml-1045-          ALL_TAC] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1050-        ASM_CASES_TAC `(y:real^N) IN s` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/100/polyhedron.ml:1051:        ASM SET_TAC[];
hol-light-20190729/100/polyhedron.ml-1052-        ALL_TAC] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1067-          ASM_MESON_TAC[FINITE_SUBSET];
hol-light-20190729/100/polyhedron.ml:1068:          EXPAND_TAC "H'" THEN ASM SET_TAC[];
hol-light-20190729/100/polyhedron.ml-1069-          MATCH_MP_TAC(SET_RULE `s SUBSET f /\ s = t ==> s = f INTER t`) THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1084-          REWRITE_TAC[REAL_ARITH `--x <= &0 <=> &0 <= x`] THEN
hol-light-20190729/100/polyhedron.ml:1085:          ASM SET_TAC[]];
hol-light-20190729/100/polyhedron.ml-1086-        ALL_TAC] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1105-         [ASM_MESON_TAC[PSUBSET; FINITE_SUBSET; HAS_SIZE]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml:1106:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1107-        MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/100/polyhedron.ml-1109-        FIRST_X_ASSUM(fun th -> GEN_REWRITE_TAC LAND_CONV [th]) THEN
hol-light-20190729/100/polyhedron.ml:1110:        ASM SET_TAC[];
hol-light-20190729/100/polyhedron.ml-1111-        ALL_TAC] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1118-        SUBGOAL_THEN `(h:real^N->bool) IN (H UNION H')` MP_TAC THENL
hol-light-20190729/100/polyhedron.ml:1119:         [ASM SET_TAC[]; EXPAND_TAC "H'"] THEN
hol-light-20190729/100/polyhedron.ml-1120-        UNDISCH_THEN `(h:real^N->bool) IN J` (K ALL_TAC) THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1204-          ASM_CASES_TAC `(h:real^N->bool) IN H` THENL
hol-light-20190729/100/polyhedron.ml:1205:           [ALL_TAC; DISCH_THEN(K ALL_TAC) THEN ASM SET_TAC[]] THEN
hol-light-20190729/100/polyhedron.ml-1206-          ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1208-          ASM_SIMP_TAC[IN_ELIM_THM; REAL_LT_IMP_LE] THENL
hol-light-20190729/100/polyhedron.ml:1209:           [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1210-          ASM_CASES_TAC `(h:real^N->bool) IN K` THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1216-        X_GEN_TAC `h:real^N->bool` THEN DISCH_TAC THEN
hol-light-20190729/100/polyhedron.ml:1217:        REPEAT(COND_CASES_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/100/polyhedron.ml-1218-        REWRITE_TAC[IN_ELIM_THM; REAL_LT_LE] THEN
hol-light-20190729/100/polyhedron.ml:1219:        CONJ_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1220-        FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I
##############################################
hol-light-20190729/100/polyhedron.ml-1225-         `~(x:real = &0) ==> ~(x <= &0) \/ x < &0`))
hol-light-20190729/100/polyhedron.ml:1226:        THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1227-        MP_TAC(ASSUME `(x:real^N) IN relative_interior f`) THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1370-        GEN_TAC THEN DISCH_TAC THEN REWRITE_TAC[] THEN
hol-light-20190729/100/polyhedron.ml:1371:        MATCH_MP_TAC CLOSURE_HALFSPACE_LT THEN ASM SET_TAC[];
hol-light-20190729/100/polyhedron.ml-1372-        ALL_TAC] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1404-          DISCH_THEN(fun th -> DISCH_TAC THEN MP_TAC th) THEN
hol-light-20190729/100/polyhedron.ml:1405:          ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1406-          FIRST_X_ASSUM(MP_TAC o SPEC `h:real^N->bool`) THEN
hol-light-20190729/100/polyhedron.ml:1407:          ANTS_TAC THENL [ASM SET_TAC[]; SET_TAC[]];
hol-light-20190729/100/polyhedron.ml-1408-          UNDISCH_TAC `~((y:real^N) IN s)` THEN MATCH_MP_TAC
hol-light-20190729/100/polyhedron.ml-1409-           (TAUT `~q /\ (p ==> r) ==> ~r ==> (p <=> q)`) THEN
hol-light-20190729/100/polyhedron.ml:1410:          CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1411-          EXPAND_TAC "s" THEN REWRITE_TAC[IN_INTERS; AND_FORALL_THM] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1415-          FIRST_X_ASSUM(MP_TAC o SPEC `h:real^N->bool`) THEN
hol-light-20190729/100/polyhedron.ml:1416:          ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1417-          DISCH_THEN(fun th -> GEN_REWRITE_TAC (RAND_CONV o RAND_CONV)
##############################################
hol-light-20190729/100/polyhedron.ml-1423-      MATCH_MP_TAC FACE_OF_INTERS THEN
hol-light-20190729/100/polyhedron.ml:1424:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1425-      REWRITE_TAC[FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1431-      FIRST_X_ASSUM(MP_TAC o SPEC `h:real^N->bool`) THEN
hol-light-20190729/100/polyhedron.ml:1432:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1433-      DISCH_THEN(fun th -> GEN_REWRITE_TAC (LAND_CONV o RAND_CONV)
##############################################
hol-light-20190729/100/polyhedron.ml-1503-    SUBGOAL_THEN `(B:real^N#real->bool) SUBSET A` ASSUME_TAC THENL
hol-light-20190729/100/polyhedron.ml:1504:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1505-    SUBGOAL_THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1524-        ASM_CASES_TAC `(h:real^N->bool) IN H` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/100/polyhedron.ml:1525:        ASM SET_TAC[REAL_LT_IMP_LE];
hol-light-20190729/100/polyhedron.ml-1526-        MATCH_MP_TAC(MESON[]
##############################################
hol-light-20190729/100/polyhedron.ml-1538-       `~(INTERS (IMAGE (\t. (:real^N) DIFF t) J) = {})`
hol-light-20190729/100/polyhedron.ml:1539:      MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1540-      REWRITE_TAC[hyperplane_cell; GSYM MEMBER_NOT_EMPTY; IN_INTERS] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1555-      SUBGOAL_THEN `(h:real^N->bool) IN H` ASSUME_TAC THENL
hol-light-20190729/100/polyhedron.ml:1556:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1557-      FIRST_X_ASSUM(MP_TAC o CONJUNCT2 o C MATCH_MP (ASSUME
##############################################
hol-light-20190729/100/polyhedron.ml-1579-    EXISTS_TAC `affine hull (INTERS (IMAGE (\t. (:real^N) DIFF t) H))` THEN
hol-light-20190729/100/polyhedron.ml:1580:    CONJ_TAC THENL [MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1581-    MATCH_MP_TAC AFFINE_HULL_OPEN THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1659-  UNDISCH_TAC `CARD(H:(real^N->bool)->bool) = 0` THEN
hol-light-20190729/100/polyhedron.ml:1660:  ASM_SIMP_TAC[CARD_EQ_0] THEN DISCH_THEN SUBST_ALL_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/100/polyhedron.ml-1661-
##############################################
hol-light-20190729/100/polyhedron.ml-1736-    MAP_EVERY X_GEN_TAC [`a:real^N`; `b:real`] THEN STRIP_TAC THEN
hol-light-20190729/100/polyhedron.ml:1737:    SUBGOAL_THEN `s SUBSET {x:real^N | x$1 = &1}` MP_TAC THENL
hol-light-20190729/100/polyhedron.ml-1738-     [FIRST_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/100/polyhedron.ml-1759-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/100/polyhedron.ml:1760:  SUBGOAL_THEN `!x:real^N. x IN s /\ ~(x = vec 0) ==> &0 < x$1`
hol-light-20190729/100/polyhedron.ml-1761-  ASSUME_TAC THENL
##############################################
hol-light-20190729/100/polyhedron.ml-1770-    ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml:1771:  SUBGOAL_THEN `!x:real^N. x IN s ==> &0 <= x$1` ASSUME_TAC THENL
hol-light-20190729/100/polyhedron.ml-1772-   [X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1796-      REWRITE_TAC[VECTOR_ADD_COMPONENT; VECTOR_MUL_COMPONENT] THEN
hol-light-20190729/100/polyhedron.ml:1797:      SUBGOAL_THEN `&0 < (a:real^N)$1 \/ &0 < (b:real^N)$1` DISJ_CASES_TAC THENL
hol-light-20190729/100/polyhedron.ml-1798-       [ASM_MESON_TAC[];
##############################################
hol-light-20190729/100/polyhedron.ml-1812-  AP_TERM_TAC THEN MATCH_MP_TAC BIJECTIONS_CARD_EQ THEN
hol-light-20190729/100/polyhedron.ml:1813:  EXISTS_TAC `\f:real^N->bool. f INTER {x | x$1 = &1}` THEN
hol-light-20190729/100/polyhedron.ml-1814-  EXISTS_TAC `\f:real^N->bool. conic hull f` THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1820-  SUBGOAL_THEN
hol-light-20190729/100/polyhedron.ml:1821:   `!f:real^N->bool. f face_of p ==> conic hull f INTER {x | x$1 = &1} = f`
hol-light-20190729/100/polyhedron.ml-1822-  ASSUME_TAC THENL
##############################################
hol-light-20190729/100/polyhedron.ml-1829-  SUBGOAL_THEN
hol-light-20190729/100/polyhedron.ml:1830:   `!f:real^N->bool. f face_of s ==> f INTER {x | x$1 = &1} face_of p`
hol-light-20190729/100/polyhedron.ml-1831-  ASSUME_TAC THENL
hol-light-20190729/100/polyhedron.ml-1832-   [REPEAT STRIP_TAC THEN
hol-light-20190729/100/polyhedron.ml:1833:    SUBGOAL_THEN `p = conic hull p INTER {x:real^N | x$1 = &1}` SUBST1_TAC
hol-light-20190729/100/polyhedron.ml-1834-    THENL [ASM_MESON_TAC[FACE_OF_REFL; POLYTOPE_IMP_CONVEX]; ALL_TAC] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-1852-          ASM_MESON_TAC[AFF_DIM_EQ_0; INT_LT_REFL];
hol-light-20190729/100/polyhedron.ml:1853:          SUBGOAL_THEN `&0 < (y:real^N)$1` ASSUME_TAC THENL
hol-light-20190729/100/polyhedron.ml-1854-           [ASM_MESON_TAC[FACE_OF_IMP_SUBSET; SUBSET]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml-1855-          EXISTS_TAC `&0` THEN ASM_REWRITE_TAC[REAL_POS; VECTOR_MUL_LZERO] THEN
hol-light-20190729/100/polyhedron.ml:1856:          EXISTS_TAC `inv(y$1) % y:real^N` THEN
hol-light-20190729/100/polyhedron.ml-1857-          ASM_SIMP_TAC[VECTOR_MUL_COMPONENT; REAL_MUL_LINV;
##############################################
hol-light-20190729/100/polyhedron.ml-1859-          ASM_MESON_TAC[FACE_OF_CONIC; conic; REAL_LE_INV_EQ; REAL_LT_IMP_LE]];
hol-light-20190729/100/polyhedron.ml:1860:        SUBGOAL_THEN `&0 < (x:real^N)$1` ASSUME_TAC THENL
hol-light-20190729/100/polyhedron.ml-1861-         [ASM_MESON_TAC[FACE_OF_IMP_SUBSET; SUBSET]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml:1862:        EXISTS_TAC `(x:real^N)$1` THEN EXISTS_TAC `inv(x$1) % x:real^N` THEN
hol-light-20190729/100/polyhedron.ml-1863-        ASM_SIMP_TAC[VECTOR_MUL_COMPONENT; REAL_MUL_LINV; REAL_LT_IMP_LE;
##############################################
hol-light-20190729/100/polyhedron.ml-1890-      ONCE_REWRITE_TAC[VECTOR_MUL_COMPONENT] THEN
hol-light-20190729/100/polyhedron.ml:1891:      SUBGOAL_THEN `&0 < (ca % a:real^N)$1 \/ &0 < (cb % b:real^N)$1`
hol-light-20190729/100/polyhedron.ml-1892-      DISJ_CASES_TAC THENL
##############################################
hol-light-20190729/100/polyhedron.ml-2005-    CONJ_TAC THEN X_GEN_TAC `f:real^N->bool` THEN STRIP_TAC THENL
hol-light-20190729/100/polyhedron.ml:2006:     [REMOVE_THEN "*" (MP_TAC o SPEC `f INTER {x:real^N | x$1 = &1}`) THEN
hol-light-20190729/100/polyhedron.ml-2007-      ASM_SIMP_TAC[INT_ARITH `&0:int < &d + &1`; INT_EQ_ADD_RCANCEL] THEN
##############################################
hol-light-20190729/100/polyhedron.ml-2019-        REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; IN_INTER; IN_ELIM_THM] THEN
hol-light-20190729/100/polyhedron.ml:2020:        SUBGOAL_THEN `&0 < (y:real^N)$1` ASSUME_TAC THENL
hol-light-20190729/100/polyhedron.ml-2021-         [ASM_MESON_TAC[FACE_OF_IMP_SUBSET; SUBSET]; ALL_TAC] THEN
hol-light-20190729/100/polyhedron.ml:2022:        EXISTS_TAC `inv(y$1) % y:real^N` THEN
hol-light-20190729/100/polyhedron.ml-2023-        ASM_SIMP_TAC[VECTOR_MUL_COMPONENT; REAL_MUL_LINV;
##############################################
hol-light-20190729/100/polyhedron.ml-2129-      DISCH_TAC THEN
hol-light-20190729/100/polyhedron.ml:2130:      EXISTS_TAC `(lambda i. (y:real^(N,1)finite_sum)$(i+1)):real^N` THEN
hol-light-20190729/100/polyhedron.ml-2131-      EXPAND_TAC "f" THEN
##############################################
hol-light-20190729/100/ramsey.ml-379-             let th1 = EXISTS (mk_exists(x,cncl),x) (UNDISCH th) in
hol-light-20190729/100/ramsey.ml:380:             let asm = mk_exists(x,ante) in
hol-light-20190729/100/ramsey.ml:381:             DISCH asm (CHOOSE (x,ASSUME asm) th1)
hol-light-20190729/100/ramsey.ml-382-         with Failure _ -> failwith "EXISTS_IMP: variable free in assumptions";;
##############################################
hol-light-20190729/100/ramsey.ml-642-  let RES_THEN ttac (asl,g) =
hol-light-20190729/100/ramsey.ml:643:      let asm = map snd asl in
hol-light-20190729/100/ramsey.ml-644-      let ths = itlist (@) (mapfilter RES_CANON asm) [] in
##############################################
hol-light-20190729/100/reciprocity.ml-303-  SUBGOAL_THEN `s = (a:A) INSERT (b INSERT (s DELETE a DELETE b))`
hol-light-20190729/100/reciprocity.ml:304:   (ASSUME_TAC o SYM) THENL [ASM SET_TAC[]; ALL_TAC] THEN ANTS_TAC THENL
hol-light-20190729/100/reciprocity.ml-305-   [CONJ_TAC THENL
##############################################
hol-light-20190729/100/reciprocity.ml-675-    SIMP_TAC[FINITE_CROSS; FINITE_NUMSEG] THEN
hol-light-20190729/100/reciprocity.ml:676:    FIRST_X_ASSUM(SUBST_ALL_TAC o SYM) THEN ASM SET_TAC[];
hol-light-20190729/100/reciprocity.ml-677-    ALL_TAC] THEN
##############################################
hol-light-20190729/100/subsequence.ml-122-  DISCH_TAC THEN EXISTS_TAC `(i:num) INSERT s` THEN REPEAT CONJ_TAC THENL
hol-light-20190729/100/subsequence.ml:123:   [ASM SET_TAC[];
hol-light-20190729/100/subsequence.ml-124-    REWRITE_TAC[HAS_SIZE_CLAUSES; GSYM ADD1] THEN ASM_MESON_TAC[NOT_LT];
##############################################
hol-light-20190729/100/wilson.ml-84-  SUBGOAL_THEN `s = (a:A) INSERT (b INSERT (s DELETE a DELETE b))`
hol-light-20190729/100/wilson.ml:85:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/100/wilson.ml-86-  SIMP_TAC[PRODUCT_CLAUSES; FINITE_INSERT; FINITE_DELETE;
##############################################
hol-light-20190729/Arithmetic/arithprov.ml-268-                  NUMBER_DENUMBER; IMAGE_CLAUSES; IMAGE_UNION] THEN
hol-light-20190729/Arithmetic/arithprov.ml:269:  ASM SET_TAC[NUMBER_DENUMBER]);;
hol-light-20190729/Arithmetic/arithprov.ml-270-
##############################################
hol-light-20190729/Arithmetic/derived.ml-726-      REWRITE_TAC[FORMSUBST_FV; IN_ELIM_THM; NOT_EXISTS_THM; VALMOD] THEN
hol-light-20190729/Arithmetic/derived.ml:727:      ASM SET_TAC[]] THEN
hol-light-20190729/Arithmetic/derived.ml-728-    MATCH_MP_TAC modusponens THEN EXISTS_TAC `??x (V x === v x)` THEN
##############################################
hol-light-20190729/Arithmetic/fol.ml-526-  REWRITE_TAC[safe_for; formsubst; LET_DEF; LET_END_DEF; FV] THEN
hol-light-20190729/Arithmetic/fol.ml:527:  REPEAT STRIP_TAC THEN COND_CASES_TAC THEN REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Arithmetic/fol.ml-528-
##############################################
hol-light-20190729/Arithmetic/sigmacomplete.ml-262-   [GEN_TAC THEN REWRITE_TAC[SAFE_FOR_ASSIGN; TERMSUBST_FVT; ASSIGN] THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:263:    ASM SET_TAC[FVT];
hol-light-20190729/Arithmetic/sigmacomplete.ml-264-    ALL_TAC] THEN
##############################################
hol-light-20190729/Arithmetic/sigmacomplete.ml-309-    GEN_TAC THEN COND_CASES_TAC THEN ASM_REWRITE_TAC[FVT] THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:310:    ASM SET_TAC[];
hol-light-20190729/Arithmetic/sigmacomplete.ml-311-    ALL_TAC] THEN
##############################################
hol-light-20190729/Arithmetic/sigmacomplete.ml-470-      REWRITE_TAC[SIGMAPI_CLAUSES; FV; holds] THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:471:      (ASM_CASES_TAC `FVT t = {}` THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:472:      (ASM_CASES_TAC `FV(q) SUBSET {x}` THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml-473-      DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC (MP_TAC o CONJUNCT2)) THEN
##############################################
hol-light-20190729/Arithmetic/sigmacomplete.ml-487-      REWRITE_TAC[FVT_NUMERAL; NOT_IN_EMPTY; FVT; IN_SING] THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:488:      (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml-489-      FIRST_X_ASSUM(MP_TAC o SPEC `m:num`) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Arithmetic/sigmacomplete.ml-492-      X_GEN_TAC `y:num` THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:493:      (ASM_CASES_TAC `y:num = x` THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml-494-      ASM_REWRITE_TAC[o_DEF; ASSIGN; VALMOD; TERMVAL_NUMERAL];
##############################################
hol-light-20190729/Arithmetic/sigmacomplete.ml-511-        RULE_ASSUM_TAC(REWRITE_RULE[FV]) THEN X_GEN_TAC `y:num` THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:512:        ASM_CASES_TAC `y:num = x` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml-513-        ASM_REWRITE_TAC[o_THM; ASSIGN; VALMOD; TERMVAL_NUMERAL]]];
##############################################
hol-light-20190729/Arithmetic/sigmacomplete.ml-524-        REWRITE_TAC[FVT_NUMERAL; NOT_IN_EMPTY; FVT; FV; IN_SING] THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:525:        (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml-526-        UNDISCH_TAC `holds ((x |-> n) v) p` THEN
##############################################
hol-light-20190729/Arithmetic/sigmacomplete.ml-529-        RULE_ASSUM_TAC(REWRITE_RULE[FV]) THEN X_GEN_TAC `y:num` THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:530:        ASM_CASES_TAC `y:num = x` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml-531-        ASM_REWRITE_TAC[o_THM; ASSIGN; VALMOD; TERMVAL_NUMERAL];
##############################################
hol-light-20190729/Arithmetic/sigmacomplete.ml-538-      REWRITE_TAC[SIGMAPI_CLAUSES; FV; holds] THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:539:      (ASM_CASES_TAC `FVT t = {}` THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:540:      (ASM_CASES_TAC `FV(q) SUBSET {x}` THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml-541-      DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC (MP_TAC o CONJUNCT2)) THEN
##############################################
hol-light-20190729/Arithmetic/sigmacomplete.ml-556-      REWRITE_TAC[FVT_NUMERAL; NOT_IN_EMPTY; FVT; IN_SING] THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:557:      (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml-558-      FIRST_X_ASSUM(MP_TAC o SPEC `m:num`) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Arithmetic/sigmacomplete.ml-561-      X_GEN_TAC `y:num` THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml:562:      (ASM_CASES_TAC `y:num = x` THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Arithmetic/sigmacomplete.ml-563-      ASM_REWRITE_TAC[o_DEF; ASSIGN; VALMOD; TERMVAL_NUMERAL]]]);;
##############################################
hol-light-20190729/CHANGES-7203-had been under the impression that this was the actual behaviour, and was using
hol-light-20190729/CHANGES:7204:ASM SET_TAC explicitly when I wanted the assumptions included. Needless to say,
hol-light-20190729/CHANGES-7205-there were a few places where I'd relied on the old behaviour, so I changed
hol-light-20190729/CHANGES:7206:SET_TAC to ASM SET_TAC in those places.
hol-light-20190729/CHANGES-7207-
##############################################
hol-light-20190729/CHANGES-13314-Added a new type of finite Cartesian products with a supported infix syntax
hol-light-20190729/CHANGES:13315:`:A^B`, an indexing function so elements of `x` can be accessed by `x$1` ...
hol-light-20190729/CHANGES:13316:`x$n`, and even a syntax for lambdas. If the type A is infinite, then it forces
hol-light-20190729/CHANGES-13317-a 1-element type, otherwise uses an isomorphic image of A. The immediate
##############################################
hol-light-20190729/CHANGES-16225-theorem list given to a tactic with the assumptions of the goal. In fact, if we
hol-light-20190729/CHANGES:16226:called it just "ASM" then "ASM REWRITE_TAC[]" and "ASM_REWRITE_TAC[]" would be
hol-light-20190729/CHANGES-16227-the same and we could avoid all those extra functions. Perhaps the HOL world
##############################################
hol-light-20190729/Complex/quelim.ml-418-  let REWRITE_pth = GEN_REWRITE_CONV LAND_CONV [pth] in
hol-light-20190729/Complex/quelim.ml:419:  let rec RESOLVE_EQ asm tm =
hol-light-20190729/Complex/quelim.ml-420-    try EQT_INTRO(find (fun th -> concl th = tm) asm) with Failure _ ->
##############################################
hol-light-20190729/Complex/quelim.ml-423-    try let th1 = REWRITE_pth tm in
hol-light-20190729/Complex/quelim.ml:424:        TRANS th1 (RESOLVE_EQ asm (rand(concl th1)))
hol-light-20190729/Complex/quelim.ml-425-    with Failure _ -> COMPLEX_RAT_EQ_CONV tm in
##############################################
hol-light-20190729/Complex/quelim.ml-427-
hol-light-20190729/Complex/quelim.ml:428:let RESOLVE_EQ asm tm =
hol-light-20190729/Complex/quelim.ml:429:  let th = RESOLVE_EQ_RAW asm tm in
hol-light-20190729/Complex/quelim.ml-430-  try EQF_ELIM th with Failure _ -> EQT_ELIM th;;
##############################################
hol-light-20190729/Complex/quelim.ml-435-         ==> (q <=> (p /\ q1 \/ ~p /\ q2))`) in
hol-light-20190729/Complex/quelim.ml:436:  fun asm tm yfn nfn  ->
hol-light-20190729/Complex/quelim.ml:437:    try let th = RESOLVE_EQ asm tm in
hol-light-20190729/Complex/quelim.ml-438-        if is_neg(concl th) then nfn (th::asm) th else yfn (th::asm) th
##############################################
hol-light-20190729/Complex/quelim.ml-450-  let NEGATE_NEGATE_RULE = GEN_REWRITE_RULE I [TAUT `p <=> (~p <=> F)`] in
hol-light-20190729/Complex/quelim.ml:451:  fun asm tm ->
hol-light-20190729/Complex/quelim.ml:452:    try let th = RESOLVE_EQ asm (rand tm) in
hol-light-20190729/Complex/quelim.ml-453-        if is_neg(concl th) then EQT_INTRO th
##############################################
hol-light-20190729/Complex/quelim.ml-510-
hol-light-20190729/Complex/quelim.ml:511:let EXPAND_EX_BETA_RESOLVE_CONV asm tm =
hol-light-20190729/Complex/quelim.ml-512-  let th1 = EXPAND_EX_BETA_CONV tm in
##############################################
hol-light-20190729/Complex/quelim.ml-575-  let zero_tm = `Cx(&0)` in
hol-light-20190729/Complex/quelim.ml:576:  fun asm avs tm ->
hol-light-20190729/Complex/quelim.ml:577:    let ath = RESOLVE_EQ asm (mk_eq(last(dest_list(lhand tm)),zero_tm)) in
hol-light-20190729/Complex/quelim.ml-578-    let sfn = PART_MATCH (lhand o rand o rand) (MATCH_pth1 ath)
##############################################
hol-light-20190729/Complex/quelim.ml-657-    POLY_EXP_DIVIDES_CONV in
hol-light-20190729/Complex/quelim.ml:658:  fun asm avs tm ->
hol-light-20190729/Complex/quelim.ml-659-    try APPLY_pth1 tm with Failure _ ->
##############################################
hol-light-20190729/Complex/quelim.ml-661-        let th2 = CONV_RULE(LAND_CONV(RAND_CONV(LAND_CONV LAST_CONV))) th1 in
hol-light-20190729/Complex/quelim.ml:662:        let th3 = try MATCH_MP th2 (RESOLVE_EQ asm (rand(lhand(concl th2))))
hol-light-20190729/Complex/quelim.ml-663-                  with Failure _ -> failwith "Sanity failure (2a)" in
##############################################
hol-light-20190729/Complex/quelim.ml-666-        let th1 = APPLY_pth2b tm in
hol-light-20190729/Complex/quelim.ml:667:        TRANS th1 (EXPAND_EX_BETA_RESOLVE_CONV asm (rand(concl th1)))
hol-light-20190729/Complex/quelim.ml-668-    with Failure _ ->
##############################################
hol-light-20190729/Complex/quelim.ml-670-        let th2 = CONV_RULE(LAND_CONV(RAND_CONV(LAND_CONV LAST_CONV))) th1 in
hol-light-20190729/Complex/quelim.ml:671:        let th3 = try MATCH_MP th2 (RESOLVE_EQ asm (rand(lhand(concl th2))))
hol-light-20190729/Complex/quelim.ml-672-                  with Failure _ -> failwith "Sanity failure (2b)" in
##############################################
hol-light-20190729/Complex/quelim.ml-675-           CONV_RULE(RAND_CONV(RAND_CONV(POLY_EXP_DIVIDES_CONV avs))) th4 in
hol-light-20190729/Complex/quelim.ml:676:        CONV_RULE(RAND_CONV(RAND_CONV(POLY_DIVIDES_CONV asm avs))) th5;;
hol-light-20190729/Complex/quelim.ml-677-
##############################################
hol-light-20190729/Complex/quelim.ml-698-  let CONJ_AC_RULE = AC CONJ_ACI in
hol-light-20190729/Complex/quelim.ml:699:  let CORE_QUELIM_CONV asm avs tm =
hol-light-20190729/Complex/quelim.ml-700-    let ev,bod = dest_exists tm in
##############################################
hol-light-20190729/Complex/quelim.ml-704-      let th1 = MK_EXISTS ev (POLY_NE_MULT_CONV avs bod) in
hol-light-20190729/Complex/quelim.ml:705:      TRANS th1 (BASIC_QUELIM_CONV asm avs (rand(concl th1)))
hol-light-20190729/Complex/quelim.ml-706-    else if length eqs > 1 then failwith "CORE_QUELIM_CONV: Sanity failure"
hol-light-20190729/Complex/quelim.ml:707:    else if neqs = [] then BASIC_QUELIM_CONV asm avs tm else
hol-light-20190729/Complex/quelim.ml-708-    let tm1 = mk_conj(hd eqs,list_mk_conj neqs) in
##############################################
hol-light-20190729/Complex/quelim.ml-711-    let th3 = MK_EXISTS ev th2 in
hol-light-20190729/Complex/quelim.ml:712:    TRANS th3 (BASIC_QUELIM_CONV asm avs (rand(concl th3))) in
hol-light-20190729/Complex/quelim.ml-713-  CORE_QUELIM_CONV;;
##############################################
hol-light-20190729/Complex/quelim.ml-721-   [TAUT `((p <=> T) <=> (~p <=> F)) /\ ((p <=> F) <=> (~p <=> T))`] in
hol-light-20190729/Complex/quelim.ml:722:  fun asm tm ->
hol-light-20190729/Complex/quelim.ml:723:    if is_neg tm then DNE_RULE(RESOLVE_EQ_RAW asm (rand tm))
hol-light-20190729/Complex/quelim.ml:724:    else RESOLVE_EQ_RAW asm tm;;
hol-light-20190729/Complex/quelim.ml-725-
##############################################
hol-light-20190729/Complex/quelim.ml-754-           (F /\ p <=> F) /\ (T /\ p <=> p)`]
hol-light-20190729/Complex/quelim.ml:755:  and RESOLVE_OR_CONST_CONV asm tm =
hol-light-20190729/Complex/quelim.ml:756:    try RESOLVE_EQ_NE asm tm with Failure _ -> POLY_CONST_CONV tm
hol-light-20190729/Complex/quelim.ml-757-  and false_tm = `F` in
hol-light-20190729/Complex/quelim.ml:758:  let rec COMPLEX_QUELIM_CONV asm avs tm =
hol-light-20190729/Complex/quelim.ml-759-    let ev,bod = dest_exists tm in
##############################################
hol-light-20190729/Complex/quelim.ml-764-      let th2 = MK_EXISTS ev th1 in
hol-light-20190729/Complex/quelim.ml:765:      TRANS th2 (COMPLEX_QUELIM_CONV asm avs (rand(concl th2)))
hol-light-20190729/Complex/quelim.ml-766-    else
##############################################
hol-light-20190729/Complex/quelim.ml-770-    try let zeq = el (index 0 lens) eqs in
hol-light-20190729/Complex/quelim.ml:771:        if cjs = [zeq] then BASIC_QUELIM_CONV asm avs tm else
hol-light-20190729/Complex/quelim.ml-772-        let cjs' = zeq::(subtract cjs [zeq]) in
##############################################
hol-light-20190729/Complex/quelim.ml-774-        let th2 = MK_EXISTS ev th1 in
hol-light-20190729/Complex/quelim.ml:775:        TRANS th2 (COMPLEX_QUELIM_CONV asm avs (rand(concl th2)))
hol-light-20190729/Complex/quelim.ml-776-    with Failure _ -> try
hol-light-20190729/Complex/quelim.ml-777-        let zne = el (index 0 nens) neqs in
hol-light-20190729/Complex/quelim.ml:778:        if cjs = [zne] then BASIC_QUELIM_CONV asm avs tm else
hol-light-20190729/Complex/quelim.ml-779-        let cjs' = zne::(subtract cjs [zne]) in
##############################################
hol-light-20190729/Complex/quelim.ml-806-            let tm4 = rand(concl th4) in
hol-light-20190729/Complex/quelim.ml:807:            let th5 = COMPLEX_QUELIM_CONV asm avs (rand tm4) in
hol-light-20190729/Complex/quelim.ml-808-            TRANS th4 (AP_TERM (rator tm4) th5)
##############################################
hol-light-20190729/Complex/quelim.ml-812-        (let ceq = mk_eq(last(dest_list(lhand(lhs(hd eqs)))),zero_tm) in
hol-light-20190729/Complex/quelim.ml:813:         try concl(RESOLVE_EQ asm ceq) = mk_neg ceq with Failure _ -> false) &&
hol-light-20190729/Complex/quelim.ml-814-        (let h = hd lens in forall (fun n -> n < h) nens))
hol-light-20190729/Complex/quelim.ml-815-    then
hol-light-20190729/Complex/quelim.ml:816:      CORE_QUELIM_CONV asm avs tm
hol-light-20190729/Complex/quelim.ml-817-    else
##############################################
hol-light-20190729/Complex/quelim.ml-822-      let zeq = mk_eq(atm,zero_tm) in
hol-light-20190729/Complex/quelim.ml:823:      RESOLVE_EQ_THEN asm zeq
hol-light-20190729/Complex/quelim.ml-824-       (fun asm' yth ->
##############################################
hol-light-20190729/Complex/quelim.ml-842-          TRANS th4 (COMPLEX_QUELIM_CONV asm' avs (rand(concl th4)))) in
hol-light-20190729/Complex/quelim.ml:843:  fun asm avs -> time(COMPLEX_QUELIM_CONV asm avs);;
hol-light-20190729/Complex/quelim.ml-844-
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-167-    SUBGOAL_THEN `?a:real^N. a IN s` STRIP_ASSUME_TAC THENL
hol-light-20190729/Examples/brunn_minkowski.ml:168:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/brunn_minkowski.ml-169-    MATCH_MP_TAC REAL_LE_TRANS THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-175-    REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_ELIM_THM] THEN
hol-light-20190729/Examples/brunn_minkowski.ml:176:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Examples/brunn_minkowski.ml-177-    MATCH_MP_TAC MEASURABLE_COMPACT THEN MATCH_MP_TAC COMPACT_SUMS THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-205-          MATCH_MP_TAC CARD_PSUBSET THEN CONJ_TAC THENL
hol-light-20190729/Examples/brunn_minkowski.ml:206:           [ASM SET_TAC[]; ASM_MESON_TAC[DIVISION_OF_FINITE]];
hol-light-20190729/Examples/brunn_minkowski.ml-207-          DISCH_TAC THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-408-        ASM_MESON_TAC[ELEMENTARY_COMPACT];
hol-light-20190729/Examples/brunn_minkowski.ml:409:        SPEC_TAC(`measure(s INTER {x:real^N | x$k <= &0}) / measure s`,
hol-light-20190729/Examples/brunn_minkowski.ml-410-                 `u:real`)] THEN
hol-light-20190729/Examples/brunn_minkowski.ml-411-      X_GEN_TAC `u:real` THEN STRIP_TAC THEN
hol-light-20190729/Examples/brunn_minkowski.ml:412:      SUBGOAL_THEN `?b:real. &0 < b /\ !x:real^N. x IN t ==> abs(x$k) <= b`
hol-light-20190729/Examples/brunn_minkowski.ml-413-      STRIP_ASSUME_TAC THENL
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-430-        MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN
hol-light-20190729/Examples/brunn_minkowski.ml:431:        EXISTS_TAC `{x:real^N | x$k = --b}` THEN
hol-light-20190729/Examples/brunn_minkowski.ml-432-        ASM_SIMP_TAC[NEGLIGIBLE_STANDARD_HYPERPLANE] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-603-      MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN
hol-light-20190729/Examples/brunn_minkowski.ml:604:      EXISTS_TAC `{x:real^N | x$k = &0}` THEN
hol-light-20190729/Examples/brunn_minkowski.ml-605-      ASM_SIMP_TAC[NEGLIGIBLE_STANDARD_HYPERPLANE] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-639-    UNDISCH_TAC `d1 division_of (s:real^N->bool)` THEN
hol-light-20190729/Examples/brunn_minkowski.ml:640:    REWRITE_TAC[division_of] THEN ASM SET_TAC[];
hol-light-20190729/Examples/brunn_minkowski.ml-641-    ALL_TAC] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-646-                  `UNIONS dl :real^N->bool`;
hol-light-20190729/Examples/brunn_minkowski.ml:647:                   `t INTER {x:real^N | x$k <= &0}`] th) THEN
hol-light-20190729/Examples/brunn_minkowski.ml-648-    MP_TAC(SPECL [`dr:(real^N->bool)->bool`;
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-651-                  `UNIONS dr :real^N->bool`;
hol-light-20190729/Examples/brunn_minkowski.ml:652:                   `t INTER {x:real^N | x$k >= &0}`] th)) THEN
hol-light-20190729/Examples/brunn_minkowski.ml-653-  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-661-        EXISTS_TAC `CARD(d1 DELETE (i:real^N->bool))` THEN CONJ_TAC THENL
hol-light-20190729/Examples/brunn_minkowski.ml:662:         [ALL_TAC; MATCH_MP_TAC CARD_PSUBSET THEN ASM SET_TAC[]];
hol-light-20190729/Examples/brunn_minkowski.ml-663-        ALL_TAC] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-672-      ONCE_REWRITE_TAC[SWAP_EXISTS_THM] THEN
hol-light-20190729/Examples/brunn_minkowski.ml:673:      EXISTS_TAC `j INTER {x:real^N | x$k >= &0}` THEN
hol-light-20190729/Examples/brunn_minkowski.ml-674-      REWRITE_TAC[RIGHT_EXISTS_AND_THM; MEMBER_NOT_EMPTY] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-704-         `x IN s ==> x SUBSET UNIONS s`) THEN
hol-light-20190729/Examples/brunn_minkowski.ml:705:        ASM SET_TAC[];
hol-light-20190729/Examples/brunn_minkowski.ml-706-        REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-754-        EXISTS_TAC `CARD(d1 DELETE (j:real^N->bool))` THEN CONJ_TAC THENL
hol-light-20190729/Examples/brunn_minkowski.ml:755:         [ALL_TAC; MATCH_MP_TAC CARD_PSUBSET THEN ASM SET_TAC[]];
hol-light-20190729/Examples/brunn_minkowski.ml-756-        ALL_TAC] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-765-      ONCE_REWRITE_TAC[SWAP_EXISTS_THM] THEN
hol-light-20190729/Examples/brunn_minkowski.ml:766:      EXISTS_TAC `i INTER {x:real^N | x$k <= &0}` THEN
hol-light-20190729/Examples/brunn_minkowski.ml-767-      REWRITE_TAC[RIGHT_EXISTS_AND_THM; MEMBER_NOT_EMPTY] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-797-         `x IN s ==> x SUBSET UNIONS s`) THEN
hol-light-20190729/Examples/brunn_minkowski.ml:798:        ASM SET_TAC[];
hol-light-20190729/Examples/brunn_minkowski.ml-799-        REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-870-    ALL_TAC] THEN
hol-light-20190729/Examples/brunn_minkowski.ml:871: ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Examples/brunn_minkowski.ml-872-  [REAL_LE_ROOT; DIMINDEX_NONZERO; REAL_LE_ADD; ROOT_POS_LE;
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-895-    MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN
hol-light-20190729/Examples/brunn_minkowski.ml:896:    EXISTS_TAC `{x:real^N | x$k = &0}` THEN
hol-light-20190729/Examples/brunn_minkowski.ml-897-    ASM_SIMP_TAC[NEGLIGIBLE_STANDARD_HYPERPLANE] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-960-      MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN
hol-light-20190729/Examples/brunn_minkowski.ml:961:      EXISTS_TAC `{x:real^N | x$k = &0}` THEN
hol-light-20190729/Examples/brunn_minkowski.ml-962-      ASM_SIMP_TAC[NEGLIGIBLE_STANDARD_HYPERPLANE] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1045-      MATCH_MP_TAC MEASURE_SUBSET] THEN
hol-light-20190729/Examples/brunn_minkowski.ml:1046:    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Examples/brunn_minkowski.ml-1047-    MATCH_MP_TAC MEASURABLE_OPEN THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1066-    SUBGOAL_THEN `?a:real^N. a IN s` STRIP_ASSUME_TAC THENL
hol-light-20190729/Examples/brunn_minkowski.ml:1067:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/brunn_minkowski.ml-1068-    MATCH_MP_TAC REAL_LE_TRANS THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1074-                   CONVEX_SUMS; BOUNDED_SUMS] THEN
hol-light-20190729/Examples/brunn_minkowski.ml:1075:      ASM SET_TAC[]];
hol-light-20190729/Examples/brunn_minkowski.ml-1076-    ALL_TAC] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1081-    SUBGOAL_THEN `?a:real^N. a IN t` STRIP_ASSUME_TAC THENL
hol-light-20190729/Examples/brunn_minkowski.ml:1082:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/brunn_minkowski.ml-1083-    MATCH_MP_TAC REAL_LE_TRANS THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1090-      GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV) [VECTOR_ADD_SYM] THEN
hol-light-20190729/Examples/brunn_minkowski.ml:1091:      ASM SET_TAC[]];
hol-light-20190729/Examples/brunn_minkowski.ml-1092-    ALL_TAC] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1247-  REWRITE_TAC[] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Examples/brunn_minkowski.ml:1248:   [ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Examples/brunn_minkowski.ml-1249-     [REAL_ROOT_RPOW; DIMINDEX_NONZERO; MEASURE_POS_LE; MEASURABLE_COMPACT;
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1255-    REWRITE_TAC[lemma1] THEN MATCH_MP_TAC lemma2 THEN
hol-light-20190729/Examples/brunn_minkowski.ml:1256:    ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 6)
hol-light-20190729/Examples/brunn_minkowski.ml-1257-     [REAL_ROOT_RPOW; DIMINDEX_NONZERO; MEASURE_POS_LE; MEASURABLE_COMPACT;
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1275-    ASM_SIMP_TAC[BOUNDED_SUMS; BOUNDED_BALL; COMPACT_IMP_BOUNDED] THEN
hol-light-20190729/Examples/brunn_minkowski.ml:1276:    ASM SET_TAC[]]);;
hol-light-20190729/Examples/brunn_minkowski.ml-1277-
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1296-    SUBGOAL_THEN `?a:real^N. a IN s` STRIP_ASSUME_TAC THENL
hol-light-20190729/Examples/brunn_minkowski.ml:1297:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/brunn_minkowski.ml-1298-    MATCH_MP_TAC REAL_LE_TRANS THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1302-      ASM_REWRITE_TAC[MEASURABLE_TRANSLATION_EQ] THEN
hol-light-20190729/Examples/brunn_minkowski.ml:1303:      ASM SET_TAC[]];
hol-light-20190729/Examples/brunn_minkowski.ml-1304-    ALL_TAC] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1309-    SUBGOAL_THEN `?a:real^N. a IN t` STRIP_ASSUME_TAC THENL
hol-light-20190729/Examples/brunn_minkowski.ml:1310:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/brunn_minkowski.ml-1311-    MATCH_MP_TAC REAL_LE_TRANS THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1316-      GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV) [VECTOR_ADD_SYM] THEN
hol-light-20190729/Examples/brunn_minkowski.ml:1317:      ASM SET_TAC[]];
hol-light-20190729/Examples/brunn_minkowski.ml-1318-    ALL_TAC] THEN
##############################################
hol-light-20190729/Examples/brunn_minkowski.ml-1383-    ASM_SIMP_TAC[MEASURE_POS_LE; COMPACT_SUMS; MEASURABLE_COMPACT] THEN
hol-light-20190729/Examples/brunn_minkowski.ml:1384:    ASM SET_TAC[]]);;
##############################################
hol-light-20190729/Examples/digit_serial_methods.ml-243-  MATCH_MP_TAC REAL_CONVEX_ON_RPOW_INTEGER THEN
hol-light-20190729/Examples/digit_serial_methods.ml:244:  ASM SET_TAC[]);;
hol-light-20190729/Examples/digit_serial_methods.ml-245-
##############################################
hol-light-20190729/Examples/division_algebras.ml-82-       `x + --c % y:real^N = vec 0 <=> x = c % y`];
hol-light-20190729/Examples/division_algebras.ml:83:      ASM_REWRITE_TAC[] THEN DISCH_THEN(MP_TAC o AP_TERM `\x:real^N. x$2`) THEN
hol-light-20190729/Examples/division_algebras.ml-84-      REWRITE_TAC[VECTOR_MUL_COMPONENT; VECTOR_ADD_COMPONENT] THEN
##############################################
hol-light-20190729/Examples/division_algebras.ml-127-      s INTER {x | x IN UNIV /\ (f:real^N->real^N) x IN k}`
hol-light-20190729/Examples/division_algebras.ml:128:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/division_algebras.ml-129-    MATCH_MP_TAC CLOSED_INTER_COMPACT THEN
##############################################
hol-light-20190729/Examples/division_algebras.ml-158-    SUBGOAL_THEN `~((f:real^N->real^N) x = vec 0) /\ ~(x = vec 0)`
hol-light-20190729/Examples/division_algebras.ml:159:    STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/division_algebras.ml-160-    MATCH_MP_TAC REAL_LE_RSQRT THEN ASM_SIMP_TAC[REAL_LE_RDIV_EQ] THEN
##############################################
hol-light-20190729/Examples/division_algebras.ml-186-     [EXPAND_TAC "f" THEN REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN
hol-light-20190729/Examples/division_algebras.ml:187:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/division_algebras.ml-188-      X_GEN_TAC `x:real^N` THEN STRIP_TAC THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Examples/division_algebras.ml-232-      REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THENL
hol-light-20190729/Examples/division_algebras.ml:233:       [ASM SET_TAC[]; REWRITE_TAC[DELETE_SUBSET]] THEN
hol-light-20190729/Examples/division_algebras.ml-234-      SUBGOAL_THEN `v = IMAGE (f:real^N->real^N) u` SUBST1_TAC THENL
##############################################
hol-light-20190729/Examples/division_algebras.ml-237-      ASM_REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Examples/division_algebras.ml:238:       [EXPAND_TAC "f"; ASM SET_TAC[]] THEN
hol-light-20190729/Examples/division_algebras.ml-239-      ASM_MESON_TAC[SUBSET]];
##############################################
hol-light-20190729/Examples/division_algebras.ml-752-  ASM_SIMP_TAC[DIM_INJECTIVE_LINEAR_IMAGE; LE_REFL] THEN
hol-light-20190729/Examples/division_algebras.ml:753:  ASM SET_TAC[]);;
##############################################
hol-light-20190729/Examples/gcdrecurrence.ml-25-  DISCH_THEN(X_CHOOSE_THEN `p:num` SUBST_ALL_TAC) THENL
hol-light-20190729/Examples/gcdrecurrence.ml:26:   [ALL_TAC; ASM (GEN_REWRITE_TAC I) []] THEN
hol-light-20190729/Examples/gcdrecurrence.ml-27-  MATCH_MP_TAC(ASSUME `!m n:num. P m n ==> P n (m + n)`) THEN
##############################################
hol-light-20190729/Examples/hol88.ml-479-             let th1 = EXISTS (mk_exists(x,cncl),x) (UNDISCH th) in
hol-light-20190729/Examples/hol88.ml:480:             let asm = mk_exists(x,ante) in
hol-light-20190729/Examples/hol88.ml:481:             DISCH asm (CHOOSE (x,ASSUME asm) th1)
hol-light-20190729/Examples/hol88.ml-482-         with Failure _ ->
##############################################
hol-light-20190729/Examples/hol88.ml-761-  let RES_THEN ttac (asl,g) =
hol-light-20190729/Examples/hol88.ml:762:      let asm = map snd asl in
hol-light-20190729/Examples/hol88.ml-763-      let ths = itlist (@) (mapfilter RES_CANON asm) [] in
##############################################
hol-light-20190729/Examples/inverse_bug_puzzle_tac.ml-106-  INTRO_TAC "!u v w; H1" THEN
hol-light-20190729/Examples/inverse_bug_puzzle_tac.ml:107:  SUBGOAL_TAC "H1'" `~(v$1 * w$2 - (w:real^2)$1 * (v:real^2)$2 = &0)`
hol-light-20190729/Examples/inverse_bug_puzzle_tac.ml-108-  [HYP MESON_TAC "H1" [COLLINEAR_3_2Dzero; REAL_SUB_0]] THEN
##############################################
hol-light-20190729/Examples/inverse_bug_puzzle_tac.ml-118-  DET_EQ_0_RANK; RANK_BOUND; MATRIX_FULL_LINEAR_EQUATIONS])] "xDef" THEN
hol-light-20190729/Examples/inverse_bug_puzzle_tac.ml:119:  MAP_EVERY EXISTS_TAC [`(x:real^2)$1`; `(x:real^2)$2`] THEN SUBGOAL_TAC ""
hol-light-20190729/Examples/inverse_bug_puzzle_tac.ml-120-  `(x:real^2)$1 * (v:real^2)$1 + (x:real^2)$2 * (w:real^2)$1 = (u:real^2)$1  /\
##############################################
hol-light-20190729/Examples/misiurewicz.ml-383-                 COMPLEX_DIFFERENTIABLE_AT_WITHIN];
hol-light-20190729/Examples/misiurewicz.ml:384:        REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Examples/misiurewicz.ml-385-        MATCH_MP_TAC(REAL_ARITH
##############################################
hol-light-20190729/Examples/misiurewicz.ml-485-  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Examples/misiurewicz.ml:486:   [CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `w:complex`] THEN DISCH_TAC THEN
hol-light-20190729/Examples/misiurewicz.ml-487-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REAL_ARITH
hol-light-20190729/Examples/misiurewicz.ml-488-     `pi < x ==> x <= y ==> pi <= y`)) THEN
hol-light-20190729/Examples/misiurewicz.ml:489:    ASM_SIMP_TAC[REAL_LE_LMUL_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Examples/misiurewicz.ml-490-    ABBREV_TAC `w = ITER (r(n:num)) cexp z` THEN REWRITE_TAC[SUBSET] THEN
##############################################
hol-light-20190729/Examples/misiurewicz.ml-500-    MAP_EVERY EXISTS_TAC [`a:complex`; `b:complex`] THEN
hol-light-20190729/Examples/misiurewicz.ml:501:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Examples/misiurewicz.ml-502-    ASM_REWRITE_TAC[IM_ADD; IM_SUB; COMPLEX_CMUL; IM_MUL_CX] THEN
##############################################
hol-light-20190729/Examples/misiurewicz.ml-642-      rand o lhand o snd) THEN
hol-light-20190729/Examples/misiurewicz.ml:643:    ASM SET_TAC[];
hol-light-20190729/Examples/misiurewicz.ml-644-    ALL_TAC] THEN
##############################################
hol-light-20190729/Examples/misiurewicz.ml-678-               NOT_IMP] THEN
hol-light-20190729/Examples/misiurewicz.ml:679:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Examples/misiurewicz.ml-680-  REWRITE_TAC[SET_RULE `s DIFF t = {} <=> s SUBSET t`] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Examples/misiurewicz.ml-684-   [SUBGOAL_THEN `?z. z IN IMAGE (ITER n cexp) v` STRIP_ASSUME_TAC THENL
hol-light-20190729/Examples/misiurewicz.ml:685:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/misiurewicz.ml-686-    MP_TAC(SPEC `z:complex` LEMMA_2b) THEN
hol-light-20190729/Examples/misiurewicz.ml:687:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/misiurewicz.ml-688-    REWRITE_TAC[REAL_ARITH `x > y <=> ~(x <= y)`] THEN
##############################################
hol-light-20190729/Examples/misiurewicz.ml-691-      [GSYM ETA_AX] THEN
hol-light-20190729/Examples/misiurewicz.ml:692:    REWRITE_TAC[ONCE_REWRITE_RULE[ADD_SYM] (GSYM ITER_ADD)] THEN ASM SET_TAC[];
hol-light-20190729/Examples/misiurewicz.ml-693-    REWRITE_TAC[NOT_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Examples/misiurewicz.ml-695-   `!m. IMAGE (ITER (n + m) cexp) v SUBSET (w INTER h INTER s)`
hol-light-20190729/Examples/misiurewicz.ml:696:  MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Examples/misiurewicz.ml-697-  INDUCT_TAC THENL
##############################################
hol-light-20190729/Examples/misiurewicz.ml-716-    CONJ_TAC THENL
hol-light-20190729/Examples/misiurewicz.ml:717:     [FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_ARITH_TAC; ASM SET_TAC[]]]);;
hol-light-20190729/Examples/misiurewicz.ml-718-
##############################################
hol-light-20190729/Examples/misiurewicz.ml-791-       [MP_TAC(ISPECL [`w:complex`; `b:real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Examples/misiurewicz.ml:792:        ASM SET_TAC[];
hol-light-20190729/Examples/misiurewicz.ml-793-        DISCH_THEN(MP_TAC o ISPEC `\n:num. n` o
##############################################
hol-light-20190729/Examples/misiurewicz.ml-894-         [REWRITE_TAC[SUBSET_BALLS; DIST_REFL] THEN REAL_ARITH_TAC;
hol-light-20190729/Examples/misiurewicz.ml:895:          ASM SET_TAC[]]];
hol-light-20190729/Examples/misiurewicz.ml-896-      MP_TAC(SPEC `ball(w:complex,min b c)` LEMMA_4) THEN
##############################################
hol-light-20190729/Examples/misiurewicz.ml-1008-      DISCH_THEN(MP_TAC o MATCH_MP (MESON[COMPONENT_LE_NORM; REAL_LET_TRANS]
hol-light-20190729/Examples/misiurewicz.ml:1009:       `norm(x) < &1 ==> abs(x$1) < &1`)) THEN
hol-light-20190729/Examples/misiurewicz.ml-1010-      REWRITE_TAC[GSYM RE_DEF; RE_SUB; REAL_NOT_LT] THEN
##############################################
hol-light-20190729/Examples/misiurewicz.ml-1102-      SUBGOAL_THEN `?x. x IN IMAGE (ITER n cexp) v` STRIP_ASSUME_TAC THENL
hol-light-20190729/Examples/misiurewicz.ml:1103:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/misiurewicz.ml-1104-      MP_TAC(ISPEC `x:complex` CEXP_NZ) THEN REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Examples/misiurewicz.ml-1117-      SIMP_TAC[ARITH_RULE `~(n + N + 1 <= N)`; IMAGE_o; GSYM REAL_NOT_LT] THEN
hol-light-20190729/Examples/misiurewicz.ml:1118:      ASM SET_TAC[]];
hol-light-20190729/Examples/misiurewicz.ml-1119-    ALL_TAC] THEN
##############################################
hol-light-20190729/Examples/misiurewicz.ml-1134-      MP_TAC PI_POS THEN REAL_ARITH_TAC;
hol-light-20190729/Examples/misiurewicz.ml:1135:      ASM SET_TAC[];
hol-light-20190729/Examples/misiurewicz.ml-1136-      ALL_TAC] THEN
hol-light-20190729/Examples/misiurewicz.ml-1137-    SUBGOAL_THEN `DISJOINT (frontier s) (w INTER h:complex->bool)`
hol-light-20190729/Examples/misiurewicz.ml:1138:    ASSUME_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Examples/misiurewicz.ml-1139-    EXPAND_TAC "s" THEN
##############################################
hol-light-20190729/Examples/misiurewicz.ml-1275-  REWRITE_TAC[FORALL_AND_THM] THEN
hol-light-20190729/Examples/misiurewicz.ml:1276:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Examples/misiurewicz.ml:1277:  INDUCT_TAC THEN REWRITE_TAC[ITER; CEXP_NZ] THEN ASM SET_TAC[]);;
hol-light-20190729/Examples/misiurewicz.ml-1278-
##############################################
hol-light-20190729/Examples/misiurewicz.ml-1295-        STRONG) THEN
hol-light-20190729/Examples/misiurewicz.ml:1296:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
##############################################
hol-light-20190729/Examples/mizar.ml-429-  fun lfs (asl,w as gl) ->
hol-light-20190729/Examples/mizar.ml:430:    let asm = mizarate_term gl (delabel lfs) in
hol-light-20190729/Examples/mizar.ml-431-    let ghyps = itlist (union o hyp o snd) asl [] in
##############################################
hol-light-20190729/Examples/padics.ml-329-        X_GEN_TAC `x:real` THEN DISCH_TAC THEN CONJ_TAC THENL
hol-light-20190729/Examples/padics.ml:330:         [ASM SET_TAC[]; X_GEN_TAC `r:real` THEN DISCH_TAC] THEN
hol-light-20190729/Examples/padics.ml-331-        RULE_ASSUM_TAC(REWRITE_RULE[IN]) THEN REWRITE_TAC[IN] THEN
##############################################
hol-light-20190729/Examples/padics.ml-348-         `p /\ q /\ r /\ s <=> (q /\ r) /\ (q /\ r ==> p /\ s)`] THEN
hol-light-20190729/Examples/padics.ml:349:        CONJ_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Examples/padics.ml-350-        MP_TAC(ISPEC `m:(real->real)metric` (GSYM MDIST_0)) THEN
##############################################
hol-light-20190729/Examples/padics.ml-376-        ASM_REWRITE_TAC[GSYM MEMBER_NOT_EMPTY] THEN CONJ_TAC THENL
hol-light-20190729/Examples/padics.ml:377:         [ALL_TAC; MP_TAC RATIONAL_NUM THEN ASM SET_TAC[]] THEN
hol-light-20190729/Examples/padics.ml-378-        MATCH_MP_TAC SUBSET_ANTISYM THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Examples/padics.ml-381-          REWRITE_TAC[CLOSURE_OF_SUBTOPOLOGY; MTOPOLOGY_SUBMETRIC] THEN
hol-light-20190729/Examples/padics.ml:382:          ASM SET_TAC[];
hol-light-20190729/Examples/padics.ml-383-          TRANS_TAC SUBSET_TRANS
##############################################
hol-light-20190729/Examples/padics.ml-395-        snd) THEN
hol-light-20190729/Examples/padics.ml:396:      ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Examples/padics.ml-397-      RULE_ASSUM_TAC(REWRITE_RULE[IN]) THEN
##############################################
hol-light-20190729/Examples/padics.ml-413-          TRANS_TAC CARD_EQ_TRANS `rational` THEN CONJ_TAC THENL
hol-light-20190729/Examples/padics.ml:414:           [MATCH_MP_TAC CARD_EQ_IMAGE THEN ASM SET_TAC[];
hol-light-20190729/Examples/padics.ml-415-            TRANS_TAC CARD_EQ_TRANS `(:num)` THEN
##############################################
hol-light-20190729/Examples/padics.ml-426-        MP_TAC rational_of_padic THEN MP_TAC padic_of_rational THEN
hol-light-20190729/Examples/padics.ml:427:        ASM SET_TAC[]];
hol-light-20190729/Examples/padics.ml-428-      REWRITE_TAC[LEFT_IMP_EXISTS_THM; FORALL_IN_IMAGE; IN_UNIV]] THEN
##############################################
hol-light-20190729/Examples/padics.ml-450-       (MP_TAC o SPEC `(h:padic->real->real) o (x:num->padic)`) THEN
hol-light-20190729/Examples/padics.ml:451:      ASM_REWRITE_TAC[o_THM] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/padics.ml-452-      REWRITE_TAC[EXISTS_IN_IMAGE; IN_INTER] THEN MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Examples/padics.ml-457-      MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] EVENTUALLY_MONO) THEN
hol-light-20190729/Examples/padics.ml:458:      ASM SET_TAC[];
hol-light-20190729/Examples/padics.ml-459-      ALL_TAC] THEN
hol-light-20190729/Examples/padics.ml:460:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Examples/padics.ml-461-    SUBGOAL_THEN
##############################################
hol-light-20190729/Examples/padics.ml-465-     [MP_TAC rational_of_padic THEN MP_TAC padic_of_rational THEN
hol-light-20190729/Examples/padics.ml:466:      ASM SET_TAC[];
hol-light-20190729/Examples/padics.ml-467-      ALL_TAC] THEN
##############################################
hol-light-20190729/Examples/padics.ml-475-    REPEAT CONJ_TAC THENL
hol-light-20190729/Examples/padics.ml:476:     [REWRITE_TAC[CLOSURE_OF; TOPSPACE_MTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Examples/padics.ml-477-      REWRITE_TAC[METRIC_DERIVED_SET_OF] THEN
##############################################
hol-light-20190729/Examples/padics.ml-480-      SUBGOAL_THEN `(:padic) = IMAGE (g:(real->real)->padic) s`
hol-light-20190729/Examples/padics.ml:481:      SUBST1_TAC THENL [ASM SET_TAC[]; AP_TERM_TAC] THEN
hol-light-20190729/Examples/padics.ml-482-      FIRST_X_ASSUM
##############################################
hol-light-20190729/Examples/padics.ml-492-      X_GEN_TAC `r:real` THEN ASM_CASES_TAC `&0 < r` THEN
hol-light-20190729/Examples/padics.ml:493:      ASM_REWRITE_TAC[] THEN AP_TERM_TAC THEN ABS_TAC THEN ASM SET_TAC[];
hol-light-20190729/Examples/padics.ml-494-      MAP_EVERY X_GEN_TAC [`x:real`; `y:real`] THEN STRIP_TAC THEN
hol-light-20190729/Examples/padics.ml-495-      FIRST_X_ASSUM(MP_TAC o SPECL [`x:real`; `y:real`]) THEN
hol-light-20190729/Examples/padics.ml:496:      COND_CASES_TAC THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]) in
hol-light-20190729/Examples/padics.ml-497-  new_specification ["padic_metric"]
##############################################
hol-light-20190729/Examples/schnirelmann.ml-36-  MATCH_MP_TAC CARD_SUBSET THEN
hol-light-20190729/Examples/schnirelmann.ml:37:  ASM_SIMP_TAC[FINITE_INTER; FINITE_NUMSEG] THEN ASM SET_TAC[]);;
hol-light-20190729/Examples/schnirelmann.ml-38-
##############################################
hol-light-20190729/Examples/schnirelmann.ml-483-     `(a /\ b /\ c) /\ (a /\ b /\ c ==> d) ==> a /\ b /\ c /\ d`) THEN
hol-light-20190729/Examples/schnirelmann.ml:484:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN STRIP_TAC THEN
hol-light-20190729/Examples/schnirelmann.ml-485-    GEN_REWRITE_TAC RAND_CONV [ARITH_RULE `n = 2 * n - n`] THEN
##############################################
hol-light-20190729/Examples/sylvester_gallai.ml-48-  THENL
hol-light-20190729/Examples/sylvester_gallai.ml:49:   [EXISTS_TAC `(pp:real^2)$2` THEN
hol-light-20190729/Examples/sylvester_gallai.ml-50-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [NOT_EXISTS_THM]) THEN
##############################################
hol-light-20190729/Examples/sylvester_gallai.ml-163-   [UNDISCH_TAC `L:(real^2->bool)->bool = {}` THEN EXPAND_TAC "L" THEN
hol-light-20190729/Examples/sylvester_gallai.ml:164:    ASM SET_TAC[];
hol-light-20190729/Examples/sylvester_gallai.ml-165-    ALL_TAC] THEN
##############################################
hol-light-20190729/Examples/vitali.ml-50-    REWRITE_TAC[REAL_BOUNDED_REAL_INTERVAL; SUBSET; IN_REAL_INTERVAL] THEN
hol-light-20190729/Examples/vitali.ml:51:    ASM SET_TAC[REAL_LT_IMP_LE];
hol-light-20190729/Examples/vitali.ml-52-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Formal_ineqs/docs/FormalVerifier.tex-58-\[\forall {\bf x} \in D \implies f({\bf x}) < g({\bf x}),\]
hol-light-20190729/Formal_ineqs/docs/FormalVerifier.tex:59:where $D = \{(x_1, \ldots, x_n)\ |\ a_i \le x_i \le b_i\}$ and $f$, $g$ are functions which may include all usual arithmetic operations, square roots, arccosines, and arctangents. The maximal number of variables is 8. Future releases of the tool will include all elementary functions and will have no restriction on the number of variables. Moreover, it will be possible to verify inequalities on non-rectangular domains.
hol-light-20190729/Formal_ineqs/docs/FormalVerifier.tex-60-
##############################################
hol-light-20190729/Formal_ineqs/informal/informal_search.hl-256-(*
hol-light-20190729/Formal_ineqs/informal/informal_search.hl:257:let _, _, f3 = mk_verification_functions_poly 5 `\x:real^2. #1.5 - x$1`;;
hol-light-20190729/Formal_ineqs/informal/informal_search.hl-258-let fs0 = [f2.Informal_verifier.taylor; f3.Informal_verifier.taylor];;
##############################################
hol-light-20190729/Formal_ineqs/informal/informal_search.hl-275-
hol-light-20190729/Formal_ineqs/informal/informal_search.hl:276:let f1, _, f2 = mk_verification_functions_poly 5 `\x:real^1. x$1 - &2`;;
hol-light-20190729/Formal_ineqs/informal/informal_search.hl:277:let _, _, f3 = mk_verification_functions_poly 5 `\x:real^1. #1.5 - x$1`;;
hol-light-20190729/Formal_ineqs/informal/informal_search.hl-278-let fs0 = [f2.Informal_verifier.taylor; f3.Informal_verifier.taylor];;
##############################################
hol-light-20190729/Formal_ineqs/taylor/m_taylor_arith.hl-3367-
hol-light-20190729/Formal_ineqs/taylor/m_taylor_arith.hl:3368:let f1, f2 = mk_verification_functions_poly 5 `\x:real^2. x$1 + x$2 * x$1 pow 2`;;
hol-light-20190729/Formal_ineqs/taylor/m_taylor_arith.hl-3369-let t_th = f1.taylor 5 5 dom_th;;
##############################################
hol-light-20190729/Formal_ineqs/taylor/m_taylor_arith2.hl-1303-
hol-light-20190729/Formal_ineqs/taylor/m_taylor_arith2.hl:1304:let f1, f2 = mk_verification_functions_poly 5 `\x:real^2. x$1 - #1.1`;;
hol-light-20190729/Formal_ineqs/taylor/m_taylor_arith2.hl-1305-
hol-light-20190729/Formal_ineqs/taylor/m_taylor_arith2.hl:1306:let f1, f2 = mk_verification_functions_poly 5 `\x:real^2. x$1 pow 2 + x$2 - &10`;;
hol-light-20190729/Formal_ineqs/taylor/m_taylor_arith2.hl-1307-
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-199-let has_derivative_x12 = Sections.section_proof ["y"]
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:200:`(lift o (\x:real^2. x$1 * x$2) has_derivative lift o (\x. y$2 * x$1 + y$1 * x$2)) (at y)`
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-201-[
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-218-   ((((use_arg_then2 ("REAL_LE_MUL", [REAL_LE_MUL]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("REAL_ABS_POS", [REAL_ABS_POS]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("andTb", [andTb]))(thm_tac (new_rewrite [] [])))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:219:   ((fun arg_tac -> arg_tac (Arg_term (`infnorm p = abs (p$1) \/ infnorm p = abs (p$2)`))) (term_tac (have_gen_tac []ALL_TAC)));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-220-   ((((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL INFNORM_2)))(thm_tac (new_rewrite [] [])))) THEN (arith_tac) THEN (done_tac));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-282-   (BETA_TAC THEN (move ["df"]) THEN (move ["dg"]));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:283:   ((fun arg_tac -> arg_tac (Arg_term (`lift o (\x. f x * g x) = (lift o (\p. p$1 * p$2)) o (\x. vector [f x; g x]:real^2)`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-284-   ((((((use_arg_then2 ("eq_ext", [eq_ext]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] []))))) THEN (simp_tac)) THEN (move ["x"])) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL VECTOR_2)))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-533-   ((((use_arg_then2 ("IN_NUMSEG", [IN_NUMSEG]))(thm_tac (new_rewrite [] [])))) THEN (move ["ineq"]));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:534:   ((fun arg_tac -> arg_tac (Arg_term (`lift o (\x:real^N. x$i) = (\x. x$i % vec 1)`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-535-   ((((((use_arg_then2 ("eq_ext", [eq_ext]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac)) THEN (move ["x"])) THEN ((((use_arg_then2 ("DROP_EQ", [DROP_EQ]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("LIFT_DROP", [LIFT_DROP]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("DROP_CMUL", [DROP_CMUL]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("DROP_VEC", [DROP_VEC]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_MUL_RID", [REAL_MUL_RID]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-544-   ((((use_arg_then2 ("differentiable", [differentiable]))(thm_tac (new_rewrite [] [])))) THEN (DISCH_THEN (fun snd_th -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("projection_has_derivative", [projection_has_derivative])) (fun fst_arg -> (use_arg_then2 ("i", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("net", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (thm_tac (match_mp_then snd_th MP_TAC)))) THEN (move ["h"]));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:545:   (((fun arg_tac -> arg_tac (Arg_term (`lift o \x:real^N. x$i`))) (term_tac exists_tac)) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-546-];;
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-564-   (BETA_TAC THEN (move ["ineq"]) THEN (move ["dh"]));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:565:   ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`(\s. h s$i) = (\x. x$i) o h`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))))) (((((use_arg_then2 ("eq_ext", [eq_ext]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] []))))) THEN (done_tac)));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:566:   (((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("real_derivative_compose_frechet", [real_derivative_compose_frechet])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`\x:real^N. x$i`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("h", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("t", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN BETA_TAC);
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-567-   ((((use_arg_then2 ("dh", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("projection_diff", [projection_diff]))(thm_tac (new_rewrite [] [])))) THEN ((simp_tac THEN TRY done_tac)));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-568-   ((fun arg_tac -> arg_tac (Arg_term (`(drop o _ o lift) (&1)`))) (term_tac (set_tac "lhs")));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:569:   ((fun arg_tac -> arg_tac (Arg_term (`(frechet_derivative _1 _2 _3)$i`))) (term_tac (set_tac "rhs")));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-570-   ((THENL_FIRST) (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`lhs = rhs`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))))) ((done_tac) THEN (done_tac)));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-581-   (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("has_derivative_vector_frechet", [has_derivative_vector_frechet])) (fun fst_arg -> (use_arg_then2 ("ineq", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("dh", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN BETA_TAC);
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:582:   ((fun arg_tac -> arg_tac (Arg_term (`(frechet_derivative _1 _2 _3)$i`))) (term_tac (set_tac "lhs")));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:583:   ((fun arg_tac -> arg_tac (Arg_term (`jacobian _1 _2$i$1`))) (term_tac (set_tac "rhs")));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-584-   ((THENL_FIRST) (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`lhs = rhs`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))))) ((done_tac) THEN (done_tac)));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-608-   (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("real_derivative_compose_jacobian", [real_derivative_compose_jacobian])) (fun fst_arg -> (use_arg_then2 ("df", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("dh", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN BETA_TAC);
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:609:   (((fun arg_tac -> arg_tac (Arg_term (`_$1$1`))) (term_tac (set_tac "lhs"))) THEN ((fun arg_tac -> arg_tac (Arg_term (`sum _ _2`))) (term_tac (set_tac "rhs"))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-610-   ((THENL_FIRST) (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`lhs = rhs`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))))) ((done_tac) THEN (done_tac)));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-748-   ((((use_arg_then2 ("partial_pos", [])) (disch_tac [])) THEN (clear_assumption "partial_pos") THEN ((use_arg_then2 ("diff_f", [])) (disch_tac [])) THEN (clear_assumption "diff_f") THEN BETA_TAC) THEN ((repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL IN_INTERVAL)))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (move ["diff_f"]) THEN (move ["partial_pos"])));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:749:   ((fun arg_tac -> arg_tac (Arg_term (`(lambda i. if i = j then x$j else y$i):real^N`))) (term_tac (set_tac "y'")));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-750-   (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`f y' <= f y`))) (term_tac (have_gen_tac []ALL_TAC))));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-762-   (((((use_arg_then2 ("g_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("VECTOR_MUL_LZERO", [VECTOR_MUL_LZERO]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("VECTOR_ADD_RID", [VECTOR_ADD_RID]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:763:   ((fun arg_tac -> arg_tac (Arg_term (`f y = g (y$j - x$j)`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-764-   (((((use_arg_then2 ("g_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac)) THEN (AP_TERM_TAC));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-769-   (((simp_tac) THEN (((use_arg_then2 ("ij", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac)) THEN (arith_tac) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:770:   ((fun arg_tac -> arg_tac (Arg_term (`real_interval [&0, y$j - x$j]`))) (term_tac (set_tac "s")));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-771-   ((fun arg_tac -> arg_tac (Arg_term (`!t. t IN s ==> y' + t % basis j IN interval [x,z]`))) (term_tac (have_gen_tac [](move ["in_s"]))));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-784-   (((((use_arg_then2 ("derivative_translation", [derivative_translation]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("has_derivative_alt", [has_derivative_alt]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("g_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("diff_imp_real_diff", [diff_imp_real_diff]))(thm_tac (new_rewrite [] []))))) THEN ((((use_arg_then2 ("diff_f", []))(thm_tac (new_rewrite [] [])))) THEN ((simp_tac THEN TRY done_tac)) THEN (((use_arg_then2 ("diff_direction", [diff_direction]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:785:   ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`&0 <= y$j - x$j`))) (term_tac (have_gen_tac [](move ["pos"])))) ((((fun arg_tac -> (use_arg_then2 ("y_in", [])) (fun fst_arg -> (use_arg_then2 ("j_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:786:   ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("HAS_REAL_DERIVATIVE_INCREASING_IMP", [HAS_REAL_DERIVATIVE_INCREASING_IMP])) (fun fst_arg -> (use_arg_then2 ("g", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`\t. partial j f (y' + t % basis j)`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("s", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`&0`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y$j - x$j`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-787-   (((((use_arg_then2 ("s_def", []))(gsym_then (thm_tac (new_rewrite [1] []))))) THEN (((use_arg_then2 ("IS_REALINTERVAL_INTERVAL", [IS_REALINTERVAL_INTERVAL]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac)) THEN ((((use_arg_then2 ("ds", []))(fun arg -> ONCE_REWRITE_TAC[get_arg_thm arg]))) THEN (simp_tac)) THEN (DISCH_THEN apply_tac));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1055-   ((use_arg_then2 ("differentiable_local", [differentiable_local])) (thm_tac apply_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1056:   ((fun arg_tac -> arg_tac (Arg_term (`\t. sum (1..dimindex(:N)) (\i. e$i * (partial i f o (\t. x + t % e)) t)`))) (term_tac exists_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1057-   ((fun arg_tac -> arg_tac (Arg_term (`min (p - (a + t)) (b + t - p)`))) (term_tac (set_tac "d")));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1080-   (((use_arg_then2 ("HAS_REAL_DERIVATIVE_LOCAL", [HAS_REAL_DERIVATIVE_LOCAL])) (disch_tac [])) THEN (clear_assumption "HAS_REAL_DERIVATIVE_LOCAL") THEN (DISCH_THEN apply_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1081:   (((fun arg_tac -> arg_tac (Arg_term (`\t. sum (1..dimindex(:N)) (\i. e$i * (partial i f o (\t. x + t % e)) t)`))) (term_tac exists_tac)) THEN (split_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1082-   (((use_arg_then2 ("HAS_REAL_DERIVATIVE_SUM", [HAS_REAL_DERIVATIVE_SUM])) (thm_tac apply_tac)) THEN (((((use_arg_then2 ("FINITE_NUMSEG", [FINITE_NUMSEG]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("andTb", [andTb]))(thm_tac (new_rewrite [] []))))) THEN (move ["i"]) THEN (move ["ineq"]) THEN (simp_tac)));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1286-   (((use_arg_then2 ("F2_def", [])) (disch_tac [])) THEN (clear_assumption "F2_def") THEN ((use_arg_then2 ("G_eq", [])) (disch_tac [])) THEN (clear_assumption "G_eq") THEN ((use_arg_then2 ("F2h", [])) (disch_tac [])) THEN (clear_assumption "F2h") THEN ((use_arg_then2 ("dF2", [])) (disch_tac [])) THEN (clear_assumption "dF2") THEN ((use_arg_then2 ("F2_der", [])) (disch_tac [])) THEN (clear_assumption "F2_der") THEN ((use_arg_then2 ("Gk", [])) (disch_tac [])) THEN (clear_assumption "Gk") THEN BETA_TAC THEN (move ["_"]) THEN (move ["_"]) THEN (move ["_"]) THEN (move ["_"]) THEN (move ["_"]) THEN (move ["_"]));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1287:   ((fun arg_tac -> arg_tac (Arg_term (`(vec 0:real^2) limit_point_of {y | &0 < y$1 /\ &0 < y$2}`))) (term_tac (have_gen_tac [](move ["lim0"]))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1288-   (((((use_arg_then2 ("limit_point_of", [limit_point_of]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("OPEN_CONTAINS_BALL", [OPEN_CONTAINS_BALL]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("SUBSET", [SUBSET]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_BALL", [IN_BALL]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dist", [dist]))(thm_tac (new_rewrite [] []))))) THEN (move ["t"]) THEN (case THEN (move ["v0t"])));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1290-   ((fun arg_tac -> arg_tac (Arg_term (`e / &2 % (vec 1:real^2)`))) (term_tac (set_tac "y")));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1291:   ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`!i. y$i = e / (&2)`))) (term_tac (have_gen_tac [](move ["yc"])))) (((((use_arg_then2 ("y_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("VECTOR_MUL_COMPONENT", [VECTOR_MUL_COMPONENT]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("VEC_COMPONENT", [VEC_COMPONENT]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_MUL_RID", [REAL_MUL_RID]))(thm_tac (new_rewrite [] []))))) THEN (done_tac)));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1292-   ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`&0 < e / (&2)`))) (term_tac (have_gen_tac [](move ["ineq"])))) (((((use_arg_then2 ("REAL_LT_DIV", [REAL_LT_DIV]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("e0", []))(thm_tac (new_rewrite [] []))))) THEN (arith_tac) THEN (done_tac)));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1310-   (((simp_tac) THEN (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL VECTOR_SUB_RZERO)))(thm_tac (new_rewrite [] []))))) THEN (move ["y"]) THEN (move ["ineq"]));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1311:   ((fun arg_tac -> arg_tac (Arg_term (`&0 < abs (y$1) /\ &0 < abs (y$2)`))) (term_tac (have_gen_tac [](move ["y0"]))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1312-   ((((use_arg_then2 ("ineq", [])) (disch_tac [])) THEN (clear_assumption "ineq") THEN BETA_TAC) THEN (((((use_arg_then2 ("IN_ELIM_THM", [IN_ELIM_THM]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac)) THEN ALL_TAC THEN (case THEN ALL_TAC) THEN (case THEN (move ["z"])) THEN (case THEN (move ["z_ineq"])) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN (move ["_"])));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1313-   ((((use_arg_then2 ("z_ineq", [])) (disch_tac [])) THEN (clear_assumption "z_ineq") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1314:   ((fun arg_tac -> arg_tac (Arg_term (`abs (y$1) <= r /\ abs (y$2) <= r /\ abs (y$1) < d / &2 /\ abs (y$2) < d / &2`))) (term_tac (have_gen_tac [](move ["yr"]))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1315-   ((THENL_FIRST) (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`infnorm y < min r (d / &2)`))) (term_tac (have_gen_tac []ALL_TAC)))) ((((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL INFNORM_2)))(thm_tac (new_rewrite [] [])))) THEN (arith_tac) THEN (done_tac)));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1316-   ((((use_arg_then2 ("REAL_LET_TRANS", [REAL_LET_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LET_TRANS") THEN (DISCH_THEN apply_tac)) THEN ((fun arg_tac -> arg_tac (Arg_term (`norm y`))) (term_tac exists_tac)) THEN (((use_arg_then2 ("INFNORM_LE_NORM", [INFNORM_LE_NORM]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1317:   ((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Gkh", [])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y$1`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y$2`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1318-   (((repeat_tactic 1 9 (((use_arg_then2 ("yr", []))(thm_tac (new_rewrite [] []))))) THEN (simp_tac)) THEN ALL_TAC THEN (case THEN (move ["t1"])) THEN (case THEN (move ["t2"])) THEN (case THEN (move ["G_eq"])) THEN (move ["t_ineq"]));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1330-   (((simp_tac) THEN (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL VECTOR_SUB_RZERO)))(thm_tac (new_rewrite [] []))))) THEN (move ["y"]) THEN (move ["ineq"]));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1331:   ((fun arg_tac -> arg_tac (Arg_term (`&0 < abs (y$1) /\ &0 < abs (y$2)`))) (term_tac (have_gen_tac [](move ["y0"]))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1332-   ((((use_arg_then2 ("ineq", [])) (disch_tac [])) THEN (clear_assumption "ineq") THEN BETA_TAC) THEN (((((use_arg_then2 ("IN_ELIM_THM", [IN_ELIM_THM]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac)) THEN ALL_TAC THEN (case THEN ALL_TAC) THEN (case THEN (move ["z"])) THEN (case THEN (move ["z_ineq"])) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN (move ["_"])));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1333-   ((((use_arg_then2 ("z_ineq", [])) (disch_tac [])) THEN (clear_assumption "z_ineq") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1334:   ((fun arg_tac -> arg_tac (Arg_term (`abs (y$1) <= r /\ abs (y$2) <= r /\ abs (y$1) < d / &2 /\ abs (y$2) < d / &2`))) (term_tac (have_gen_tac [](move ["yr"]))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1335-   ((THENL_FIRST) (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`infnorm y < min r (d / &2)`))) (term_tac (have_gen_tac []ALL_TAC)))) ((((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL INFNORM_2)))(thm_tac (new_rewrite [] [])))) THEN (arith_tac) THEN (done_tac)));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1336-   ((((use_arg_then2 ("REAL_LET_TRANS", [REAL_LET_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LET_TRANS") THEN (DISCH_THEN apply_tac)) THEN ((fun arg_tac -> arg_tac (Arg_term (`norm y`))) (term_tac exists_tac)) THEN (((use_arg_then2 ("INFNORM_LE_NORM", [INFNORM_LE_NORM]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1337:   ((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Ghk", [])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y$1`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y$2`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1338-   (((repeat_tactic 1 9 (((use_arg_then2 ("yr", []))(thm_tac (new_rewrite [] []))))) THEN (simp_tac)) THEN ALL_TAC THEN (case THEN (move ["t1"])) THEN (case THEN (move ["t2"])) THEN (case THEN (move ["G_eq"])) THEN (move ["t_ineq"]));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1344-   ((((use_arg_then2 ("yr", [])) (disch_tac [])) THEN (clear_assumption "yr") THEN ((use_arg_then2 ("t_ineq", [])) (disch_tac [])) THEN (clear_assumption "t_ineq") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1345:   ((((use_arg_then2 ("LIFT_EQ", [LIFT_EQ]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN ((fun arg_tac -> (use_arg_then2 ("LIM_UNIQUE", [LIM_UNIQUE])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`at (vec 0:real^2) within {y:real^2 | &0 < y$1 /\ &0 < y$2}`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (thm_tac apply_tac)));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1346:   ((fun arg_tac -> arg_tac (Arg_term (`\y:real^2. lift (G (y$1) (y$2) / (y$1 * y$2))`))) (term_tac exists_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1347-   (((((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL TRIVIAL_LIMIT_WITHIN)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("negbK", [negbK]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("lim0", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("andTb", [andTb]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1421-   (((use_arg_then2 ("eq", [])) (disch_tac [])) THEN (clear_assumption "eq") THEN (DISCH_THEN apply_tac) THEN (move ["x"]) THEN (DISCH_THEN (fun snd_th -> (use_arg_then2 ("d2f", [])) (thm_tac (match_mp_then snd_th MP_TAC)))) THEN (move ["d2fx"]));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:1422:   ((fun arg_tac -> arg_tac (Arg_term (`\i j. w$i * w$j * abs (partial2 j i f x)`))) (term_tac (set_tac "g")));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-1423-   ((fun arg_tac -> arg_tac (Arg_term (`dimindex (:N)`))) (term_tac (set_tac "n")));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3247-   ((((use_arg_then2 ("diff2_domain", [diff2_domain]))(thm_tac (new_rewrite [] [])))) THEN (move ["diff2_f"]) THEN (move ["partial2_pos"]) THEN (move ["bound1"]) THEN (move ["bound2"]) THEN (move ["y"]) THEN (move ["y_in"]));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3248:   ((fun arg_tac -> arg_tac (Arg_term (`(lambda i. if i = j then x$j else y$i):real^N`))) (term_tac (set_tac "y1")));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3249:   ((fun arg_tac -> arg_tac (Arg_term (`(lambda i. if i = j then z$j else y$i):real^N`))) (term_tac (set_tac "y2")));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3250-   ((((use_arg_then2 ("y_in", [])) (disch_tac [])) THEN (clear_assumption "y_in") THEN BETA_TAC) THEN ((((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL IN_INTERVAL)))(thm_tac (new_rewrite [] [])))) THEN (move ["y_in"])));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3265-   (((((use_arg_then2 ("g_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("VECTOR_MUL_LZERO", [VECTOR_MUL_LZERO]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("VECTOR_ADD_RID", [VECTOR_ADD_RID]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3266:   ((fun arg_tac -> arg_tac (Arg_term (`y = y1 + (y$j - x$j) % basis j /\ y2 = y1 + (z$j - x$j) % basis j`))) (term_tac (have_gen_tac [](move ["y_eq"]))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3267-   ((repeat_tactic 1 9 (((use_arg_then2 ("CART_EQ", [CART_EQ]))(thm_tac (new_rewrite [] []))))) THEN ((split_tac) THEN (move ["i"]) THEN (move ["i_in"])) THEN ((((use_arg_then2 ("VECTOR_ADD_COMPONENT", [VECTOR_ADD_COMPONENT]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("VECTOR_MUL_COMPONENT", [VECTOR_MUL_COMPONENT]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("BASIS_COMPONENT", [BASIS_COMPONENT]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac))) THEN (((fun arg_tac -> (use_arg_then2 ("EXCLUDED_MIDDLE", [EXCLUDED_MIDDLE])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`i = j`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN case THEN (simp_tac) THEN (move ["ij"])) THEN ((repeat_tactic 0 10 (((fun arg_tac ->(use_arg_then2 ("y1_def", []))(fun tmp_arg1 -> (use_arg_then2 ("y2_def", []))(fun tmp_arg2 -> arg_tac (Arg_theorem (CONJ (get_arg_thm tmp_arg1) (get_arg_thm tmp_arg2))))))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL LAMBDA_BETA)))(thm_tac (new_rewrite [] []))))) THEN ((simp_tac THEN TRY done_tac)) THEN (repeat_tactic 0 10 (((use_arg_then2 ("REAL_MUL_RID", [REAL_MUL_RID]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("REAL_SUB_ADD2", [REAL_SUB_ADD2]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac))));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3269-   (((((use_arg_then2 ("ij", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac)) THEN (arith_tac) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3270:   ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`f y = g (y$j - x$j)`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))))) (((((use_arg_then2 ("g_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("y_eq", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (done_tac)));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3271:   ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`f y2 = g (z$j - x$j)`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))))) (((((use_arg_then2 ("g_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("y_eq", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (done_tac)));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3272:   (((fun arg_tac -> (use_arg_then2 ("EXCLUDED_MIDDLE", [EXCLUDED_MIDDLE])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`z$j = x$j`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN case THEN (move ["zx_j"]));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3273:   ((THENL_FIRST) (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`y$j = x$j`))) (term_tac (have_gen_tac []ALL_TAC)))) ((BETA_TAC THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN ((((use_arg_then2 ("zx_j", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_SUB_REFL", [REAL_SUB_REFL]))(thm_tac (new_rewrite [] []))))) THEN (arith_tac) THEN (done_tac)));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3274-   ((((fun arg_tac -> (use_arg_then2 ("y_in", [])) (fun fst_arg -> (use_arg_then2 ("j_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN BETA_TAC) THEN (((use_arg_then2 ("zx_j", []))(thm_tac (new_rewrite [] [])))) THEN (arith_tac) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3275:   ((fun arg_tac -> arg_tac (Arg_term (`(y$j - x$j) / (z$j - x$j)`))) (term_tac (set_tac "t")));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3276:   ((fun arg_tac -> arg_tac (Arg_term (`&0 < z$j - x$j`))) (term_tac (have_gen_tac [](move ["zx_pos"]))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3277-   ((((fun arg_tac -> arg_tac (Arg_theorem (REAL_ARITH `!a b. &0 < a - b <=> ~(a = b) /\ b <= a`)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("zx_j", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3278:   ((((use_arg_then2 ("REAL_LE_TRANS", [REAL_LE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LE_TRANS") THEN (DISCH_THEN apply_tac)) THEN ((fun arg_tac -> arg_tac (Arg_term (`y$j`))) (term_tac exists_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("y_in", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3279:   ((fun arg_tac -> arg_tac (Arg_term (`&0 <= t /\ t <= &1 /\ y$j - x$j = (&1 - t) * &0 + t * (z$j - x$j)`))) (term_tac (have_gen_tac [](move ["t_props"]))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3280-   ((((use_arg_then2 ("t_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("REAL_LE_DIV_1", [REAL_LE_DIV_1]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("REAL_MUL_RZERO", [REAL_MUL_RZERO]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_ADD_LID", [REAL_ADD_LID]))(thm_tac (new_rewrite [] [])))));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3286-   ((((use_arg_then2 ("t_props", []))(thm_tac (new_rewrite [] [])))) THEN (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL REAL_CONVEX_LOWER))) (disch_tac [])) THEN (DISCH_THEN apply_tac)));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3287:   ((fun arg_tac -> arg_tac (Arg_term (`real_interval [&0, z$j - x$j]`))) (term_tac exists_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3288-   ((((use_arg_then2 ("REAL_SUB_ADD", [REAL_SUB_ADD]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_SUB_LE", [REAL_SUB_LE]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("t_props", []))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("IN_REAL_INTERVAL", [IN_REAL_INTERVAL]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN (simp_tac));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3330-   ((BETA_TAC THEN (move ["t"])) THEN (((use_arg_then2 ("contraT", [contraT])) (disch_tac [])) THEN (clear_assumption "contraT") THEN (DISCH_THEN apply_tac)) THEN (((((use_arg_then2 ("negbK", [negbK]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("EXTENSION", [EXTENSION]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_SING", [IN_SING]))(thm_tac (new_rewrite [] []))))) THEN (move ["eq"])));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3331:   ((((use_arg_then2 ("zx_pos", [])) (disch_tac [])) THEN (clear_assumption "zx_pos") THEN ((fun arg_tac -> (use_arg_then2 ("eq", [])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`z$j - x$j`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN ((fun arg_tac -> (use_arg_then2 ("eq", [])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`&0`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN BETA_TAC) THEN ((repeat_tactic 1 9 (((use_arg_then2 ("IN_REAL_INTERVAL", [IN_REAL_INTERVAL]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] [])))))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3332-   ((arith_tac) THEN (done_tac));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3399-let partial_x_lemma = Sections.section_proof ["k";"i"]
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3400:`partial i (\x:real^N. x$k) = (\x. (basis i:real^N)$k)`
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3401-[
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3402-   (((((use_arg_then2 ("eq_ext", [eq_ext]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("partial", [partial]))(thm_tac (new_rewrite [] []))))) THEN (move ["x"]) THEN (simp_tac));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3403:   ((fun arg_tac -> arg_tac (Arg_term (`(\x. x$k) o (\t. x + t % basis i) = (\t. x$k + t * (basis i:real^N)$k)`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))));
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3404-   (((((use_arg_then2 ("eq_ext", [eq_ext]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("VECTOR_ADD_COMPONENT", [VECTOR_ADD_COMPONENT]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("VECTOR_MUL_COMPONENT", [VECTOR_MUL_COMPONENT]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3420-let partial2_x = Sections.section_proof ["k";"i";"j"]
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3421:`partial2 i j (\x:real^N. x$k) = (\x. &0)`
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3422-[
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3427-let diff2_x = Sections.section_proof ["k";"x"]
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3428:`k IN 1..dimindex (:N) ==> diff2 (\x:real^N. x$k) x`
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3429-[
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3435-let diff2_domain_x = Sections.section_proof ["k";"domain"]
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3436:`k IN 1..dimindex (:N) ==> diff2_domain domain (\x:real^N. x$k)`
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3437-[
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3442-let diff2c_x = Sections.section_proof ["k";"x"]
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3443:`k IN 1..dimindex (:N) ==> diff2c (\x:real^N. x$k) x`
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3444-[
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3450-let diff2c_domain_x = Sections.section_proof ["k";"domain"]
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl:3451:`k IN 1..dimindex (:N) ==> diff2c_domain domain (\x:real^N. x$k)`
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor-compiled.hl-3452-[
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-156-Lemma has_derivative_x12 y : 
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:157:	`(lift o (\x:real^2. x$1 * x$2) has_derivative lift o (\x. y$2 * x$1 + y$1 * x$2)) (at y)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-158-rewrite has_derivative_at; split.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-174-rewrite REAL_LE_MUL ?REAL_ABS_POS // andTb.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:175:have: `infnorm p = abs (p$1) \/ infnorm p = abs (p$2)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-176-  by rewrite "GEN_ALL INFNORM_2"; arith.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-235-move => df dg.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:236:have ->: `lift o (\x. f x * g x) = (lift o (\p. p$1 * p$2)) o (\x. vector [f x; g x]:real^2)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-237-  by rewrite -eq_ext !o_THM /= => x; rewrite !"GEN_ALL VECTOR_2".
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-426-rewrite IN_NUMSEG => ineq.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:427:have ->: `lift o (\x:real^N. x$i) = (\x. x$i % vec 1)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-428-  by rewrite -eq_ext o_THM /= => x; rewrite -DROP_EQ LIFT_DROP DROP_CMUL DROP_VEC REAL_MUL_RID.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-436-rewrite differentiable => /(projection_has_derivative i net) h.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:437:by exists `lift o \x:real^N. x$i`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-438-Qed.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-454-move => ineq dh.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:455:have ->: `(\s. h s$i) = (\x. x$i) o h`; first by rewrite -eq_ext o_THM.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:456:move: (real_derivative_compose_frechet `\x:real^N. x$i` h t).
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-457-rewrite dh projection_diff //=.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-458-set lhs := `(drop o _ o lift) (&1)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:459:set rhs := `(frechet_derivative _1 _2 _3)$i`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-460-suff ->: `lhs = rhs`; first by done.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-470-move: (has_derivative_vector_frechet ineq dh).
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:471:set lhs := `(frechet_derivative _1 _2 _3)$i`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:472:set rhs := `jacobian _1 _2$i$1`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-473-suff ->: `lhs = rhs`; first by done.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-497-move: (real_derivative_compose_jacobian df dh).
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:498:set lhs := `_$1$1`; set rhs := `sum _ _2`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-499-suff ->: `lhs = rhs`; first by done.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-600-move: diff_f partial_pos; rewrite -!"GEN_ALL IN_INTERVAL" => diff_f partial_pos.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:601:set y' := `(lambda i. if i = j then x$j else y$i):real^N`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-602-suff: `f y' <= f y`.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-614-  by rewrite -g_def o_THM /= VECTOR_MUL_LZERO VECTOR_ADD_RID.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:615:have ->: `f y = g (y$j - x$j)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-616-  rewrite -g_def o_THM /=; "AP_TERM_TAC".
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-621-  by rewrite /= ij /=; arith.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:622:set s := `real_interval [&0, y$j - x$j]`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-623-have in_s : `!t. t IN s ==> y' + t % basis j IN interval [x,z]`.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-637-  	rewrite diff_f //= diff_direction.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:638:have pos: `&0 <= y$j - x$j`; first by move: (y_in j_in); arith.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-639-have := HAS_REAL_DERIVATIVE_INCREASING_IMP 
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:640:	g `\t. partial j f (y' + t % basis j)` s `&0` `y$j - x$j`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-641-rewrite -{1}s_def IS_REALINTERVAL_INTERVAL /=; rewr ds /=; apply.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-890-apply differentiable_local.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:891:exists `\t. sum (1..dimindex(:N)) (\i. e$i * (partial i f o (\t. x + t % e)) t)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-892-set d := `min (p - (a + t)) (b + t - p)`.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-915-apply: HAS_REAL_DERIVATIVE_LOCAL.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:916:exists `\t. sum (1..dimindex(:N)) (\i. e$i * (partial i f o (\t. x + t % e)) t)`; split.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-917-  apply HAS_REAL_DERIVATIVE_SUM; rewrite FINITE_NUMSEG andTb => i ineq /=.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1108-move: Gk F2_der dF2 F2h G_eq F2_def => _ _ _ _ _ _.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:1109:have lim0: `(vec 0:real^2) limit_point_of {y | &0 < y$1 /\ &0 < y$2}`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1110-  rewrite limit_point_of OPEN_CONTAINS_BALL SUBSET IN_BALL dist => t [v0t].
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1112-  set y := `e / &2 % (vec 1:real^2)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:1113:  have yc: `!i. y$i = e / (&2)`; first by rewrite -y_def VECTOR_MUL_COMPONENT VEC_COMPONENT REAL_MUL_RID.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1114-  have ineq: `&0 < e / (&2)`; first by rewrite REAL_LT_DIV e0; arith.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1132-  rewrite /= "GEN_ALL VECTOR_SUB_RZERO" => y ineq.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:1133:  have y0: `&0 < abs (y$1) /\ &0 < abs (y$2)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1134-    move: ineq; rewrite IN_ELIM_THM /= => [] [] [z] [z_ineq] -> _.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1135-    by move: z_ineq; arith.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:1136:  have yr: `abs (y$1) <= r /\ abs (y$2) <= r /\ abs (y$1) < d / &2 /\ abs (y$2) < d / &2`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1137-    suff: `infnorm y < min r (d / &2)`; first by rewrite "GEN_ALL INFNORM_2"; arith.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1138-    by apply: REAL_LET_TRANS; exists `norm y`; rewrite INFNORM_LE_NORM.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:1139:  have := Gkh `y$1` `y$2`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1140-  rewrite !yr /= => [] [t1] [t2] [G_eq] t_ineq.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1152-  rewrite /= "GEN_ALL VECTOR_SUB_RZERO" => y ineq.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:1153:  have y0: `&0 < abs (y$1) /\ &0 < abs (y$2)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1154-    move: ineq; rewrite IN_ELIM_THM /= => [] [] [z] [z_ineq] -> _.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1155-    by move: z_ineq; arith.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:1156:  have yr: `abs (y$1) <= r /\ abs (y$2) <= r /\ abs (y$1) < d / &2 /\ abs (y$2) < d / &2`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1157-    suff: `infnorm y < min r (d / &2)`; first by rewrite "GEN_ALL INFNORM_2"; arith.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1158-    by apply: REAL_LET_TRANS; exists `norm y`; rewrite INFNORM_LE_NORM.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:1159:  have := Ghk `y$1` `y$2`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1160-  rewrite !yr /= => [] [t1] [t2] [G_eq] t_ineq.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1166-  by move: t_ineq yr; arith.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:1167:rewrite -LIFT_EQ; apply (LIM_UNIQUE `at (vec 0:real^2) within {y:real^2 | &0 < y$1 /\ &0 < y$2}`).
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:1168:exists `\y:real^2. lift (G (y$1) (y$2) / (y$1 * y$2))`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1169-by rewrite "GEN_ALL TRIVIAL_LIMIT_WITHIN" negbK lim0 andTb.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1242-apply: eq => x /d2f d2fx.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:1243:set g := `\i j. w$i * w$j * abs (partial2 j i f x)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-1244-set n := `dimindex (:N)`.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2620-rewrite diff2_domain => diff2_f partial2_pos bound1 bound2 y y_in.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2621:set y1 := `(lambda i. if i = j then x$j else y$i):real^N`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2622:set y2 := `(lambda i. if i = j then z$j else y$i):real^N`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2623-move: y_in; rewrite "GEN_ALL IN_INTERVAL" => y_in.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2640-  by rewrite -g_def o_THM /= VECTOR_MUL_LZERO VECTOR_ADD_RID.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2641:have y_eq : `y = y1 + (y$j - x$j) % basis j /\ y2 = y1 + (z$j - x$j) % basis j`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2642-  rewrite !CART_EQ; split => i i_in;
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2647-    by rewrite ij /=; arith.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2648:have ->: `f y = g (y$j - x$j)`; first by rewrite -g_def o_THM /= -y_eq.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2649:have ->: `f y2 = g (z$j - x$j)`; first by rewrite -g_def o_THM /= -y_eq.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2650:case: (EXCLUDED_MIDDLE `z$j = x$j`) => zx_j.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2651:  suff: `y$j = x$j`; first by move => ->; rewrite zx_j REAL_SUB_REFL; arith.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2652-  by move: (y_in j_in); rewrite zx_j; arith.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2653:set t := `(y$j - x$j) / (z$j - x$j)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2654:have zx_pos : `&0 < z$j - x$j`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2655-  rewrite "REAL_ARITH `!a b. &0 < a - b <=> ~(a = b) /\ b <= a`" zx_j /=.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2656:  by apply: REAL_LE_TRANS; exists `y$j`; rewrite !y_in.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2657:have t_props : `&0 <= t /\ t <= &1 /\ y$j - x$j = (&1 - t) * &0 + t * (z$j - x$j)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2658-  rewrite -t_def REAL_LE_DIV_1 // REAL_MUL_RZERO REAL_ADD_LID.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2664-rewrite t_props; apply: "GEN_ALL REAL_CONVEX_LOWER".
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2665:exists `real_interval [&0, z$j - x$j]`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2666-rewrite REAL_SUB_ADD REAL_SUB_LE !t_props !IN_REAL_INTERVAL !REAL_LE_REFL /=.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2708-  move => t; apply: contraT; rewrite negbK EXTENSION IN_SING => eq.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2709:  move: (eq `&0`) (eq `z$j - x$j`) zx_pos; rewrite !IN_REAL_INTERVAL !REAL_LE_REFL.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2710-  by arith.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2752-(* x$k *)
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2753:Lemma partial_x_lemma k i : `partial i (\x:real^N. x$k) = (\x. (basis i:real^N)$k)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2754-rewrite -eq_ext partial => x /=.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2755:have ->: `(\x. x$k) o (\t. x + t % basis i) = (\t. x$k + t * (basis i:real^N)$k)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2756-  by rewrite -eq_ext o_THM /= VECTOR_ADD_COMPONENT VECTOR_MUL_COMPONENT.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2766-
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2767:Lemma partial2_x k i j : `partial2 i j (\x:real^N. x$k) = (\x. &0)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2768-by rewrite partial2 partial_x_lemma partial_const. Qed.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2769-
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2770:Lemma diff2_x k x : `k IN 1..dimindex (:N) ==> diff2 (\x:real^N. x$k) x`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2771-move => k_ineq; rewrite diff2; exists `(:real^N)`; rewrite OPEN_UNIV IN_UNIV !andTb => y _.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2774-
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2775:Lemma diff2_domain_x k domain : `k IN 1..dimindex (:N) ==> diff2_domain domain (\x:real^N. x$k)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2776-by move/diff2_x; rewrite diff2_domain => ->. Qed.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2777-
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2778:Lemma diff2c_x k x : `k IN 1..dimindex (:N) ==> diff2c (\x:real^N. x$k) x`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2779-Proof.
##############################################
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2783-
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl:2784:Lemma diff2c_domain_x k domain : `k IN 1..dimindex (:N) ==> diff2c_domain domain (\x:real^N. x$k)`.
hol-light-20190729/Formal_ineqs/taylor/theory/multivariate_taylor.vhl-2785-Proof. by move/diff2c_x; rewrite diff2c_domain => ->. Qed.
##############################################
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-409-     move ["eq1"; "eq_vu"; "cell1"; "cell2"; "y"; "ineq"] THEN
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl:410:     ASM_CASES_TAC `(y:real^N)$j <= (v:real^N)$j` THENL
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-411-     [
##############################################
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-615-     X_GEN_TAC `y:real^N` THEN
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl:616:     ASM_CASES_TAC `~(!i. i IN 1..dimindex (:N) ==> (x:real^N)$i <= (z:real^N)$i)` THENL
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-617-     [
##############################################
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-681-   REWRITE_TAC[SUBSET] THEN REPEAT STRIP_TAC THEN REWRITE_TAC[m_cell_pass] THEN X_GEN_TAC `y:real^N` THEN
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl:682:     ASM_CASES_TAC `~(!i. i IN 1..dimindex (:N) ==> (x:real^N)$i <= (z:real^N)$i)` THENL
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-683-     [
##############################################
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-748-     X_GEN_TAC `y:real^N` THEN DISCH_TAC THEN
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl:749:     SUBGOAL_THEN `!i. i IN 1..dimindex (:N) ==> (x:real^N)$i <= (z:real^N)$i` ASSUME_TAC THENL
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-750-     [
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-751-       POP_ASSUM MP_TAC THEN REWRITE_TAC[IN_INTERVAL] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl:752:	 MATCH_MP_TAC REAL_LE_TRANS THEN EXISTS_TAC `(y:real^N)$i` THEN
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-753-	 FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_REWRITE_TAC[GSYM IN_NUMSEG];
##############################################
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-866-   REWRITE_TAC[SUBSET; M_CELL_LIST_PASS_ALT] THEN REPEAT STRIP_TAC THEN 
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl:867:     ABBREV_TAC `(xx:real^N) = lambda i. if i = j then (x:real^N)$i else (y:real^N)$i` THEN
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl:868:       ABBREV_TAC `(zz:real^N) = lambda i. if i = j then (z:real^N)$i else (y:real^N)$i` THEN
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-869-	 
##############################################
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-925-   REWRITE_TAC[SUBSET; M_CELL_LIST_PASS_ALT] THEN REPEAT STRIP_TAC THEN 
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl:926:     ABBREV_TAC `(xx:real^N) = lambda i. if i = j then (x:real^N)$i else (y:real^N)$i` THEN
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl:927:       ABBREV_TAC `(zz:real^N) = lambda i. if i = j then (z:real^N)$i else (y:real^N)$i` THEN
hol-light-20190729/Formal_ineqs/verifier/m_verifier.hl-928-	 SUBGOAL_THEN `interval [xx:real^N,zz] SUBSET interval [domain]` ASSUME_TAC THENL [
##############################################
hol-light-20190729/Formal_ineqs/verifier/m_verifier_main.hl-99-  let rec test =
hol-light-20190729/Formal_ineqs/verifier/m_verifier_main.hl:100:    (* Tests if the expression is in the form `a$i` *)
hol-light-20190729/Formal_ineqs/verifier/m_verifier_main.hl-101-    let test_vector tm =
##############################################
hol-light-20190729/Formal_ineqs/verifier/m_verifier_main.hl-434-
hol-light-20190729/Formal_ineqs/verifier/m_verifier_main.hl:435:(* Converts a term in the form `x + y` into the term `\x:real^2. x$1 + x$2` *)
hol-light-20190729/Formal_ineqs/verifier/m_verifier_main.hl-436-let expr_to_vector_fun =
##############################################
hol-light-20190729/Formal_ineqs/verifier/m_verifier_main.hl-447-(* Converts a list of terms in the form [`x + y`; `z`]  
hol-light-20190729/Formal_ineqs/verifier/m_verifier_main.hl:448:   into a list of terms [`\x:real^3. x$1 + x$2`; `\x:real^3. x$3` *)
hol-light-20190729/Formal_ineqs/verifier/m_verifier_main.hl-449-let exprs_to_vector_fun =
##############################################
hol-light-20190729/Functionspaces/cfunspace.ml-79-      if contain_meta_variable concl then NO_TAC g else ALL_TAC g) in
hol-light-20190729/Functionspaces/cfunspace.ml:80:  let TRY_REAL_THM = ASM (MAP_FIRST (fun x ->
hol-light-20190729/Functionspaces/cfunspace.ml-81-    MATCH_ACCEPT_TAC x ORELSE MATCH_MP_TAC x)) !real_thms in
##############################################
hol-light-20190729/Functionspaces/cfunspace.ml-1121-  let MATCH_MP_TAC x y = MATCH_MP_TAC x y in
hol-light-20190729/Functionspaces/cfunspace.ml:1122:  let TRY_LINEARITY_THM = ASM (MAP_FIRST (fun x ->
hol-light-20190729/Functionspaces/cfunspace.ml-1123-    MATCH_ACCEPT_TAC x ORELSE MATCH_MP_TAC x)) !linearity_thms in
##############################################
hol-light-20190729/Functionspaces/cfunspace.ml-1519-  let TRY_SELFADJOINT_THM =
hol-light-20190729/Functionspaces/cfunspace.ml:1520:    ASM (MAP_FIRST (fun x ->
hol-light-20190729/Functionspaces/cfunspace.ml-1521-      MATCH_ACCEPT_TAC x ORELSE MATCH_MP_TAC x)) !selfadjoint_thms in
##############################################
hol-light-20190729/Functionspaces/cfunspace.ml-1544-  THEN SIMP_HORN_TAC THEN REPEAT STRIP_TAC THEN TRY LINEARITY_TAC
hol-light-20190729/Functionspaces/cfunspace.ml:1545:  THEN ASM IMP_REWRITE_TAC[IS_CLOSED_BY_COP_ADD;IS_CLOSED_BY_COP_MUL;COP_MUL;
hol-light-20190729/Functionspaces/cfunspace.ml-1546-    COP_ADD;IS_CLOSED_BY_COP_MUL;INNER_SPACE_IS_SUBSPACE;INPROD_ADD_LDIST;
##############################################
hol-light-20190729/Functionspaces/cfunspace.ml-1769-  let MATCH_MP_TAC x y = MATCH_MP_TAC x y in
hol-light-20190729/Functionspaces/cfunspace.ml:1770:  let TRY_LINEARITY_THM = ASM (MAP_FIRST (fun x ->
hol-light-20190729/Functionspaces/cfunspace.ml-1771-    MATCH_ACCEPT_TAC x ORELSE MATCH_MP_TAC x)) !ulinearity_thms in
##############################################
hol-light-20190729/Functionspaces/cfunspace.ml-1948-  let TRY_SYMMETRIC_THM =
hol-light-20190729/Functionspaces/cfunspace.ml:1949:    ASM (MAP_FIRST (fun x ->
hol-light-20190729/Functionspaces/cfunspace.ml-1950-      MATCH_ACCEPT_TAC x ORELSE MATCH_MP_TAC x)) !symmetric_thms in
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-269-let setindex = new_definition
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:270:  `(x:real^(P,Q,R)geomalg) $$ s = x$(setcode s)`;;
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-271-
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-302-let GEOMALG_ETA = prove(*lambdas s. m$$s =lambdas (\s. m$$s) *)
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:303: (`(lambdas s. m$$s) = m`,
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-304-  SIMP_TAC[GEOMALG_EQ; GEOMALG_BETA]);;
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-322-let GEOMALG_VEC_COMPONENT = prove
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:323: (`!k s. s SUBSET 1..pdimindex(:P) + pdimindex(:Q) + pdimindex(:R) ==> (vec k :real^(P,Q,R)geomalg)$$s = &k`,
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-324-  SIMP_TAC[setindex; SETCODE_BOUNDS; DIMINDEX_GEOMALG;
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-334-let GEOMALG_VSUM = prove
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:335: (`!t f. vsum t f = lambdas s. sum t (\x. (f x)$$s)`,
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-336-  SIMP_TAC[GEOMALG_EQ; GEOMALG_BETA; GEOMALG_VSUM_COMPONENT]);;
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-579-  SUBST1_TAC THENL
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:580:   [REWRITE_TAC[VSUM_DELTA] THEN COND_CASES_TAC THEN REWRITE_TAC[MVBASIS_EQ_0] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-581-  MATCH_MP_TAC VSUM_EQ THEN REWRITE_TAC[IN_NUMSEG]  THEN REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-595-  ONCE_REWRITE_TAC[GSYM CONTRAPOS_THM] THEN REWRITE_TAC[NOT_FORALL_THM] THEN REWRITE_TAC[TAUT `~(a==>b) <=> a /\ ~b`] THEN
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:596:  STRIP_TAC THEN EXISTS_TAC `\v. (x:real^(P, Q, R)trip_fin_sum)$((g:real^(P,Q,R)geomalg->num) v)` THEN
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-597-  CONJ_TAC THENL
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-850-  SIMP_TAC[EXTENSION; FORALL_PAIR_THM; NOT_IN_EMPTY; IN_UNION; IN_INTER] THEN
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:851:  REWRITE_TAC[IN_ELIM_PAIR_THM] THEN ASM SET_TAC []);;
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-852-
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1239-       [ALL_TAC;
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:1240:        AP_TERM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1241-       ];
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:1242:     AP_TERM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]] THEN
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1243-  REWRITE_TAC[GSYM REAL_POW_ADD; REAL_POW_NEG; REAL_POW_ONE] THEN
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1267-                     j IN 1..pdimindex (:P) + pdimindex (:Q) + pdimindex (:R) /\ i > j}` THEN
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:1268:  ASM SET_TAC[FINITE_CART_SUBSET_LEMMA1]);;
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1269-
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1290-       [ALL_TAC;
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:1291:        AP_TERM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1292-       ];
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:1293:     AP_TERM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]] THEN
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1294-  REWRITE_TAC[GSYM REAL_POW_ADD; REAL_POW_NEG; REAL_POW_ONE] THEN
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1318-                     j IN 1..pdimindex (:P) + pdimindex (:Q) + pdimindex (:R) /\ i > j}` THEN
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:1319:  ASM SET_TAC[FINITE_CART_SUBSET_LEMMA1]);;
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1320-
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1369-  SUBGOAL_THEN `{a:num} INTER s = {}` SUBST1_TAC THENL
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:1370:   [ASM SET_TAC [LT_REFL]; ALL_TAC] THEN
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1371-  SIMP_TAC[SET_RULE`{a} SUBSET t /\ s SUBSET t <=> (a INSERT s) SUBSET t`] THEN
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1422-  SUBGOAL_THEN `{a:num} INTER s = {}` ASSUME_TAC THENL
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:1423:   [ASM SET_TAC [LT_REFL]; ALL_TAC] THEN
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-1424-  ASM_SIMP_TAC[MVBASIS_SPLIT; GEOM_OUTER_MVBASIS_EQ]);;
##############################################
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-2470-  REWRITE_TAC[EXTENSION; IN_INTER; IN_UNION; NOT_IN_EMPTY; FORALL_PAIR_THM; IN_ELIM_PAIR_THM] THEN
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml:2471:  ASM SET_TAC[GT; LT_ANTISYM; LT_CASES]);;
hol-light-20190729/Geometric_Algebra/geometricalgebra.ml-2472-
##############################################
hol-light-20190729/Help/ASM.doc-2-
hol-light-20190729/Help/ASM.doc:3:\TYPE {ASM : (thm list -> tactic) -> thm list -> tactic}
hol-light-20190729/Help/ASM.doc-4-
##############################################
hol-light-20190729/Help/ASM.doc-9-If {tac} is a tactic that expects a list of theorems as its arguments, e.g.
hol-light-20190729/Help/ASM.doc:10:{MESON_TAC}, {REWRITE_TAC} or {SET_TAC}, then {ASM tac} converts it to a tactic
hol-light-20190729/Help/ASM.doc-11-where that list is augmented by the goal's assumptions.
##############################################
hol-light-20190729/Help/ASM.doc-17-{
hol-light-20190729/Help/ASM.doc:18:The inbuilt {ASM_REWRITE_TAC} is in fact defined as just {ASM REWRITE_TAC}.
hol-light-20190729/Help/ASM.doc-19-}
##############################################
hol-light-20190729/Help/FIRST_ASSUM.doc-29-{
hol-light-20190729/Help/FIRST_ASSUM.doc:30:   FIRST_ASSUM (fun asm -> CONTR_TAC asm  ORELSE  ACCEPT_TAC asm)
hol-light-20190729/Help/FIRST_ASSUM.doc-31-}
##############################################
hol-light-20190729/Help/LABEL_TAC.doc-72-{
hol-light-20190729/Help/LABEL_TAC.doc:73:  # e(USE_THEN "wo" (MP_TAC o SPEC `{{x:A,y:A,z:A}}`) THEN ASM SET_TAC[]);;
hol-light-20190729/Help/LABEL_TAC.doc-74-  ...
##############################################
hol-light-20190729/Help/PURE_SIMP_TAC.doc-21-To add the assumptions of the goal to the rewrites, use {PURE_ASM_SIMP_TAC} (or
hol-light-20190729/Help/PURE_SIMP_TAC.doc:22:just {ASM PURE_SIMP_TAC}).
hol-light-20190729/Help/PURE_SIMP_TAC.doc-23-
##############################################
hol-light-20190729/Help/SET_TAC.doc-12-does not by default use the assumption list of the goal, but this can be done 
hol-light-20190729/Help/SET_TAC.doc:13:using {ASM SET_TAC} in place of plain {SET_TAC}.
hol-light-20190729/Help/SET_TAC.doc-14-
##############################################
hol-light-20190729/Help/SIMP_TAC.doc-19-To add the assumptions of the goal to the rewrites, use {ASM_SIMP_TAC} (or just
hol-light-20190729/Help/SIMP_TAC.doc:20:{ASM SIMP_TAC}).
hol-light-20190729/Help/SIMP_TAC.doc-21-
##############################################
hol-light-20190729/IsabelleLight/meta_rules.ml-170-    else try 
hol-light-20190729/IsabelleLight/meta_rules.ml:171:      let asm = (snd o hd) asms in
hol-light-20190729/IsabelleLight/meta_rules.ml:172:      let i = REV_PART_MATCH_I avoids I asm key in
hol-light-20190729/IsabelleLight/meta_rules.ml-173-      (tl asms),(asm,i)
##############################################
hol-light-20190729/IsabelleLight/meta_rules.ml-192-	0 ->  
hol-light-20190729/IsabelleLight/meta_rules.ml:193:	  let asm = (snd o hd) asms in
hol-light-20190729/IsabelleLight/meta_rules.ml:194:	  let i = REV_PART_MATCH_I avoids I asm key in
hol-light-20190729/IsabelleLight/meta_rules.ml-195-	    (tl asms),(asm,i)
##############################################
hol-light-20190729/IsabelleLight/new_tactics.ml-40-  fun rule thl ->
hol-light-20190729/IsabelleLight/new_tactics.ml:41:  let apply_rule ((s,th),asm) = LABEL_TAC s (rule (asm @ thl) th) in
hol-light-20190729/IsabelleLight/new_tactics.ml-42-
##############################################
hol-light-20190729/Jordan/float.ml-241-THEN ((POP_ASSUM DISJ_CASES_TAC))
hol-light-20190729/Jordan/float.ml:242:THENL [DISCH_TAC THEN ((ASM MESON_TAC)[]);ALL_TAC]
hol-light-20190729/Jordan/float.ml-243-THEN (DISCH_TAC)
##############################################
hol-light-20190729/Jordan/float.ml-512-         (* branch *)
hol-light-20190729/Jordan/float.ml:513:         THENL [(((ASM MESON_TAC)[LE_LT]));((SIMP_TAC[GSYM (INT_OF_REAL_THM REAL_OF_NUM_SUB)]))]
hol-light-20190729/Jordan/float.ml-514-(* branch *)
##############################################
hol-light-20190729/Jordan/float.ml-587-THEN ((((H_RULER(ONCE_REWRITE_RULE))[HYP_INT 1] (HYP_INT 0))))
hol-light-20190729/Jordan/float.ml:588:THEN ((((ASM ONCE_REWRITE_TAC)[])))
hol-light-20190729/Jordan/float.ml:589:THEN ((((ASM MESON_TAC)[REAL_LE_RADD;REAL_LE_TRANS]))));;
hol-light-20190729/Jordan/float.ml-590-
##############################################
hol-light-20190729/Jordan/float.ml-596-THEN (((H_RULER(ONCE_REWRITE_RULE)) [HYP_INT 1] (HYP_INT 0)))
hol-light-20190729/Jordan/float.ml:597:THEN (((ASM ONCE_REWRITE_TAC)[]))
hol-light-20190729/Jordan/float.ml:598:THEN (((ASM MESON_TAC)[REAL_LE_RADD;REAL_LE_TRANS])));;
hol-light-20190729/Jordan/float.ml-599-(*
##############################################
hol-light-20190729/Jordan/float.ml-697-THEN (((H_RULER (ONCE_REWRITE_RULE))[THM(INTERVAL_NEG)] (HYP_INT 1)))
hol-light-20190729/Jordan/float.ml:698:THEN (((ASM MESON_TAC)[INTERVAL_ADD])));;
hol-light-20190729/Jordan/float.ml-699-
##############################################
hol-light-20190729/Jordan/float.ml-715-THEN ((ASSUME_TAC (REAL_ARITH `abs z <=. w ==> (&.0) <=. w`)))
hol-light-20190729/Jordan/float.ml:716:THEN (((ASM MESON_TAC)[REAL_LE_RMUL_IMP])));;
hol-light-20190729/Jordan/float.ml-717-
##############################################
hol-light-20190729/Jordan/jordan_curve_theorem.ml-2079-  PARTIAL_REWRITE_TAC[TAUT `((a /\ b) ==> C) <=> (a ==> b ==> C)`];
hol-light-20190729/Jordan/jordan_curve_theorem.ml:2080:  REPEAT CONJ_TAC THEN (REPEAT (DISCH_THEN CHOOSE_TAC)) THEN (TRY (UNDISCH_FIND_TAC `(INTER)`))  THEN (ASM PARTIAL_REWRITE_TAC[])  THEN ASM PARTIAL_REWRITE_TAC[square_h_edge;square_v_edge;revr square_h_edge;revr square_v_edge;v_edge_disj;h_edge_disj;hv_edge;revr hv_edge;revr single_inter; single_inter;square_pointI;v_edge_pointI;h_edge_pointI; square_square;INR NOT_IN_EMPTY;INR IN_SING ] THEN (DISCH_THEN (fun t-> REWRITE_TAC[t]));
hol-light-20190729/Jordan/jordan_curve_theorem.ml-2081-  ]);;
##############################################
hol-light-20190729/Jordan/jordan_curve_theorem.ml-20887-  REWRITE_TAC[];
hol-light-20190729/Jordan/jordan_curve_theorem.ml:20888:  ASM ONCE_REWRITE_TAC [];
hol-light-20190729/Jordan/jordan_curve_theorem.ml-20889-  REWRITE_TAC[];
##############################################
hol-light-20190729/Jordan/jordan_curve_theorem.ml-20898-  REWRITE_TAC[];
hol-light-20190729/Jordan/jordan_curve_theorem.ml:20899:  ASM ONCE_REWRITE_TAC[];
hol-light-20190729/Jordan/jordan_curve_theorem.ml-20900-  ASM_REWRITE_TAC[];
##############################################
hol-light-20190729/Jordan/jordan_curve_theorem.ml-21688-  UND 5;
hol-light-20190729/Jordan/jordan_curve_theorem.ml:21689:  (ASM ONCE_REWRITE_TAC []);
hol-light-20190729/Jordan/jordan_curve_theorem.ml-21690-  DISCH_THEN (fun t -> MP_TAC (AP_TERM `acs` t));
##############################################
hol-light-20190729/Jordan/jordan_curve_theorem.ml-32567-
hol-light-20190729/Jordan/jordan_curve_theorem.ml:32568:let ASM_RSIMP_TAC = ASM RSIMP_TAC;;
hol-light-20190729/Jordan/jordan_curve_theorem.ml-32569-
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-155-  DISCH_ALL_TAC;
hol-light-20190729/Jordan/metric_spaces.ml:156:  ASM SET_TAC[SUBSET;UNIONS;INTER;EMPTY;DELETE];
hol-light-20190729/Jordan/metric_spaces.ml-157-  ]);;
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-1681-  USE 1 (MATCH_MP (ARITH_RULE `1<= m ==> (~(0=m))`));
hol-light-20190729/Jordan/metric_spaces.ml:1682:  ASM ONCE_REWRITE_TAC[];
hol-light-20190729/Jordan/metric_spaces.ml-1683-  ASM_REWRITE_TAC[];
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-1788-  ASM_REWRITE_TAC[] THEN DISCH_ALL_TAC;
hol-light-20190729/Jordan/metric_spaces.ml:1789:  ASM ONCE_REWRITE_TAC[];
hol-light-20190729/Jordan/metric_spaces.ml-1790-  REWRITE_TAC[GSYM SUM_TWO];
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-2573- SUBGOAL_TAC `(B:A->bool) IN open_balls (X,d)`;
hol-light-20190729/Jordan/metric_spaces.ml:2574: ASM SET_TAC[];
hol-light-20190729/Jordan/metric_spaces.ml-2575- REWRITE_TAC[open_balls;IN_ELIM_THM];
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-2616- EXISTS_TAC `{(x:A->bool)}`;
hol-light-20190729/Jordan/metric_spaces.ml:2617: ASM SET_TAC[];
hol-light-20190729/Jordan/metric_spaces.ml-2618- ]);;
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-2650- IMP_RES_THEN ASSUME_TAC top_of_metric_open;
hol-light-20190729/Jordan/metric_spaces.ml:2651: ASM ONCE_REWRITE_TAC[];
hol-light-20190729/Jordan/metric_spaces.ml-2652- MATCH_MP_TAC UNIONS_UNIONS;
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-2729- CONJ_TAC;
hol-light-20190729/Jordan/metric_spaces.ml:2730: ASM SET_TAC[];
hol-light-20190729/Jordan/metric_spaces.ml-2731- DISCH_ALL_TAC;
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-2777-  ASM_REWRITE_TAC[];
hol-light-20190729/Jordan/metric_spaces.ml:2778:  ASM SET_TAC[UNIONS];
hol-light-20190729/Jordan/metric_spaces.ml-2779-  ]);;
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-4002-  SUBGOAL_TAC `~(x IN S) ==> (x IN (euclid n DIFF S))`;
hol-light-20190729/Jordan/metric_spaces.ml:4003:  ASM SET_TAC[];
hol-light-20190729/Jordan/metric_spaces.ml-4004-  DISCH_TAC;
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-4604-  ALL_TAC; (* #g1; *)
hol-light-20190729/Jordan/metric_spaces.ml:4605:  (ASM (GEN_REWRITE_TAC LAND_CONV)) [];
hol-light-20190729/Jordan/metric_spaces.ml-4606-  ( (GEN_REWRITE_TAC LAND_CONV)) [UNIONS_DELETE];
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-4704-  DISCH_TAC;
hol-light-20190729/Jordan/metric_spaces.ml:4705:  (* ASM (GEN_REWRITE_TAC LAND_CONV) []; *)
hol-light-20190729/Jordan/metric_spaces.ml-4706-  USE 4(REWRITE_RULE[UNIONS;IN_IMAGE;IN_ELIM_THM']);
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-5220-  TYPE_THEN `x IN X` SUBGOAL_TAC;
hol-light-20190729/Jordan/metric_spaces.ml:5221:  ASM SET_TAC[IN;SUBSET];
hol-light-20190729/Jordan/metric_spaces.ml:5222:  ASM ONCE_REWRITE_TAC[];
hol-light-20190729/Jordan/metric_spaces.ml-5223-  REWRITE_TAC[UNIONS;IN_ELIM_THM';IN_IMAGE];
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-5241-  SUBCONJ_TAC;
hol-light-20190729/Jordan/metric_spaces.ml:5242:  ASM SET_TAC[IN;SUBSET];
hol-light-20190729/Jordan/metric_spaces.ml-5243-  DISCH_TAC;
hol-light-20190729/Jordan/metric_spaces.ml-5244-  SUBCONJ_TAC;
hol-light-20190729/Jordan/metric_spaces.ml:5245:  ASM SET_TAC[IN;SUBSET];
hol-light-20190729/Jordan/metric_spaces.ml-5246-  DISCH_TAC;
##############################################
hol-light-20190729/Jordan/metric_spaces.ml-6954-  ASM_REWRITE_TAC[];
hol-light-20190729/Jordan/metric_spaces.ml:6955:  ASM ONCE_REWRITE_TAC[];
hol-light-20190729/Jordan/metric_spaces.ml-6956-  REWRITE_TAC[INTER;IN;IN_ELIM_THM' ];
##############################################
hol-light-20190729/Jordan/misc_defs_and_lemmas.ml-529- EXISTS_TAC `A INTER (u:A->bool)`;
hol-light-20190729/Jordan/misc_defs_and_lemmas.ml:530: ASM SET_TAC[];
hol-light-20190729/Jordan/misc_defs_and_lemmas.ml-531- ]);;
##############################################
hol-light-20190729/Jordan/misc_defs_and_lemmas.ml-997-  DISCH_TAC;
hol-light-20190729/Jordan/misc_defs_and_lemmas.ml:998:  ASM (ONCE_REWRITE_TAC)[];
hol-light-20190729/Jordan/misc_defs_and_lemmas.ml-999-  REWRITE_TAC[FINITE_UNION];
##############################################
hol-light-20190729/Jordan/num_ext_gcd.ml-104-        (SUBGOAL_TAC (` (y || (r*a + s*b))/\ (y || (r'*a +s'*b))`))
hol-light-20190729/Jordan/num_ext_gcd.ml:105:        THENL [((ASM MESON_TAC)[DIVIDE_SUM;DIVIDE_PROD]);
hol-light-20190729/Jordan/num_ext_gcd.ml:106:        ((ASM MESON_TAC)[DIVIDE_SUMMAND])]
hol-light-20190729/Jordan/num_ext_gcd.ml-107-        ) and
##############################################
hol-light-20190729/Jordan/num_ext_gcd.ml-116-        THEN (CONJ_TAC)
hol-light-20190729/Jordan/num_ext_gcd.ml:117:        THEN ((ASM MESON_TAC)[])
hol-light-20190729/Jordan/num_ext_gcd.ml-118-                ) and
##############################################
hol-light-20190729/Jordan/num_ext_gcd.ml-123-        THEN (CONJ_TAC)
hol-light-20190729/Jordan/num_ext_gcd.ml:124:        THENL [((ASM MESON_TAC)[DIVIDE]);ALL_TAC]
hol-light-20190729/Jordan/num_ext_gcd.ml-125-        THEN (CONJ_TAC)
hol-light-20190729/Jordan/num_ext_gcd.ml:126:        THENL [((ASM MESON_TAC)[DIVIDE]);ALL_TAC]
hol-light-20190729/Jordan/num_ext_gcd.ml-127-        THEN GEN_TAC
##############################################
hol-light-20190729/Jordan/num_ext_gcd.ml-129-        THEN (SUBGOAL_TAC (` (h || (r*a + s*b))/\ (h || (r'*a+s'*b))`))
hol-light-20190729/Jordan/num_ext_gcd.ml:130:        THENL [((ASM MESON_TAC)[DIVIDE_SUM;DIVIDE_PROD]);
hol-light-20190729/Jordan/num_ext_gcd.ml:131:                ((ASM MESON_TAC)[DIVIDE_SUMMAND])]
hol-light-20190729/Jordan/num_ext_gcd.ml-132-                ) in
##############################################
hol-light-20190729/Jordan/tactics_ext.ml-81-   NB:
hol-light-20190729/Jordan/tactics_ext.ml:82:   The numbering is that in the asm list -- not the printed numbers!  *)
hol-light-20190729/Jordan/tactics_ext.ml-83-(* ------------------------------------------------------------------ *)
##############################################
hol-light-20190729/LP_arith/Makefile-15-.c.o:
hol-light-20190729/LP_arith/Makefile:16:	$(COMPILE) -c `test -f '$<' || echo ''`$<
hol-light-20190729/LP_arith/Makefile-17-
##############################################
hol-light-20190729/Library/analysis.ml-201-(* SYM_CANON_CONV - Canonicalizes single application of symmetric operator    *)
hol-light-20190729/Library/analysis.ml:202:(* Rewrites `so as to make fn true`, e.g. fn = $<< or fn = curry$= `1` o fst  *)
hol-light-20190729/Library/analysis.ml-203-(*----------------------------------------------------------------------------*)
##############################################
hol-light-20190729/Library/binary.ml-94-    FIRST_X_ASSUM MATCH_MP_TAC] THEN
hol-light-20190729/Library/binary.ml:95:  ASM SET_TAC[]);;
hol-light-20190729/Library/binary.ml-96-
##############################################
hol-light-20190729/Library/card.ml-241-                          (~(x IN u) /\ y = f x \/ x IN u /\ x = g y)` THEN
hol-light-20190729/Library/card.ml:242:  REWRITE_TAC[] THEN REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Library/card.ml-243-  X_GEN_TAC `y:B` THEN STRIP_TAC THEN
hol-light-20190729/Library/card.ml:244:  ASM_CASES_TAC `y IN IMAGE (f:A->B) (s DIFF u)` THEN ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-245-
##############################################
hol-light-20190729/Library/card.ml-511-  REPEAT STRIP_TAC THEN ONCE_REWRITE_TAC[CARD_EQ_SYM] THEN
hol-light-20190729/Library/card.ml:512:  REWRITE_TAC[eq_c] THEN EXISTS_TAC `f:A->B` THEN ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-513-
##############################################
hol-light-20190729/Library/card.ml-523-    EXISTS_TAC `\x. if (f:B->A) x IN s then f x else a` THEN
hol-light-20190729/Library/card.ml:524:    ASM SET_TAC[];
hol-light-20190729/Library/card.ml-525-    DISCH_THEN(CHOOSE_THEN(SUBST1_TAC o SYM)) THEN
##############################################
hol-light-20190729/Library/card.ml-860-    CONJ_TAC THENL
hol-light-20190729/Library/card.ml:861:     [MATCH_MP_TAC CARD_EQ_REFL_IMP THEN ASM SET_TAC[];
hol-light-20190729/Library/card.ml-862-      W(MP_TAC o PART_MATCH (lhand o rand) CARD_DISJOINT_UNION o
hol-light-20190729/Library/card.ml-863-        lhand o snd) THEN
hol-light-20190729/Library/card.ml:864:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/card.ml-865-      MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] CARD_EQ_TRANS) THEN
hol-light-20190729/Library/card.ml-866-      MATCH_MP_TAC CARD_ADD_CONG THEN REWRITE_TAC[CARD_EQ_REFL] THEN
hol-light-20190729/Library/card.ml:867:      MATCH_MP_TAC CARD_EQ_IMAGE THEN ASM SET_TAC[]];
hol-light-20190729/Library/card.ml-868-    TRANS_TAC CARD_LE_TRANS `(s:A->bool) +_c (u:B->bool)` THEN
##############################################
hol-light-20190729/Library/card.ml-880-    REWRITE_TAC[NOT_EXISTS_THM; LEFT_IMP_FORALL_THM] THEN
hol-light-20190729/Library/card.ml:881:    EXISTS_TAC `f:A->B` THEN ASM SET_TAC[];
hol-light-20190729/Library/card.ml-882-    REWRITE_TAC[IN_DIFF; LEFT_IMP_EXISTS_THM] THEN X_GEN_TAC `b:B` THEN
##############################################
hol-light-20190729/Library/card.ml-888-      MATCH_MP_TAC CARD_EQ_IMP_LE THEN ONCE_REWRITE_TAC[CARD_EQ_SYM] THEN
hol-light-20190729/Library/card.ml:889:      MATCH_MP_TAC CARD_EQ_IMAGE THEN ASM SET_TAC[];
hol-light-20190729/Library/card.ml-890-      W(MP_TAC o PART_MATCH (rand o rand) CARD_DISJOINT_UNION o
hol-light-20190729/Library/card.ml-891-        lhand o snd) THEN
hol-light-20190729/Library/card.ml:892:      ANTS_TAC THENL [ASM SET_TAC[]; ONCE_REWRITE_TAC[CARD_EQ_SYM]] THEN
hol-light-20190729/Library/card.ml-893-      DISCH_THEN(MP_TAC o MATCH_MP CARD_EQ_IMP_LE) THEN
hol-light-20190729/Library/card.ml-894-      MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] CARD_LE_TRANS) THEN
hol-light-20190729/Library/card.ml:895:      MATCH_MP_TAC CARD_LE_SUBSET THEN ASM SET_TAC[]]]);;
hol-light-20190729/Library/card.ml-896-
##############################################
hol-light-20190729/Library/card.ml-1333-              EXISTS_PAIR_THM] THEN
hol-light-20190729/Library/card.ml:1334:  ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-1335-
##############################################
hol-light-20190729/Library/card.ml-1382-  EXISTS_TAC `\y. if y IN t then (g:B->A) y else g' y` THEN
hol-light-20190729/Library/card.ml:1383:  ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-1384-
##############################################
hol-light-20190729/Library/card.ml-1395-  DISCH_THEN SUBST1_TAC THEN REPEAT(AP_TERM_TAC THEN ABS_TAC) THEN
hol-light-20190729/Library/card.ml:1396:  ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-1397-
##############################################
hol-light-20190729/Library/card.ml-1409-    REWRITE_TAC[EQ_C_BIJECTIONS] THEN
hol-light-20190729/Library/card.ml:1410:    REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN ASM SET_TAC[]]);;
hol-light-20190729/Library/card.ml-1411-
##############################################
hol-light-20190729/Library/card.ml-1427-  EXISTS_TAC `\y. if y IN t then (g:B->A) y else g' y` THEN
hol-light-20190729/Library/card.ml:1428:  ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-1429-
##############################################
hol-light-20190729/Library/card.ml-1435-  REPEAT STRIP_TAC THEN REWRITE_TAC[EQ_C_BIJECTIONS] THEN
hol-light-20190729/Library/card.ml:1436:  REPEAT(EXISTS_TAC `f:A->A`) THEN ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-1437-
##############################################
hol-light-20190729/Library/card.ml-1551-  MATCH_MP_TAC COUNTABLE_SUBSET THEN EXISTS_TAC `IMAGE (g:B->A) A` THEN
hol-light-20190729/Library/card.ml:1552:  ASM_SIMP_TAC[COUNTABLE_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-1553-
##############################################
hol-light-20190729/Library/card.ml-1610-  EXISTS_TAC `COUNTABLE((x:A) INSERT (s DELETE x))` THEN CONJ_TAC THENL
hol-light-20190729/Library/card.ml:1611:   [REWRITE_TAC[COUNTABLE_INSERT]; AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Library/card.ml-1612-
##############################################
hol-light-20190729/Library/card.ml-1643-  EXISTS_TAC `\n. if (f:num->A) n IN s then f n else a` THEN
hol-light-20190729/Library/card.ml:1644:  ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-1645-
##############################################
hol-light-20190729/Library/card.ml-1705-              EXISTS_PAIR_THM; IN_CROSS; IN_UNIV] THEN
hol-light-20190729/Library/card.ml:1706:  ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-1707-
##############################################
hol-light-20190729/Library/card.ml-1738-  ASM_SIMP_TAC[COUNTABLE_IMAGE; mul_c; SUBSET; IN_IMAGE; EXISTS_PAIR_THM] THEN
hol-light-20190729/Library/card.ml:1739:  REWRITE_TAC[IN_ELIM_PAIR_THM] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-1740-
##############################################
hol-light-20190729/Library/card.ml-1816-  X_GEN_TAC `v:A^N` THEN REWRITE_TAC[IN_ELIM_THM] THEN
hol-light-20190729/Library/card.ml:1817:  STRIP_TAC THEN EXISTS_TAC `(v:A^N)$(SUC n)` THEN
hol-light-20190729/Library/card.ml:1818:  EXISTS_TAC `(lambda i. if i = SUC n then @x. F else (v:A^N)$i):A^N` THEN
hol-light-20190729/Library/card.ml-1819-  SIMP_TAC[CART_EQ; LAMBDA_BETA; ARITH_RULE `i <= n ==> ~(i = SUC n)`] THEN
##############################################
hol-light-20190729/Library/card.ml-1945-      MP_TAC(ISPEC `u:(A->bool)->bool` COUNTABLE_AS_IMAGE) THEN
hol-light-20190729/Library/card.ml:1946:      ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]];
hol-light-20190729/Library/card.ml-1947-    X_GEN_TAC `t:num->A->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Library/card.ml-1991-  REWRITE_TAC[FORALL_IN_IMAGE; FORALL_IN_GSPEC] THEN
hol-light-20190729/Library/card.ml:1992:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[UNIONS_IMAGE]] THEN
hol-light-20190729/Library/card.ml:1993:  REWRITE_TAC[EXISTS_IN_GSPEC] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-1994-
##############################################
hol-light-20190729/Library/card.ml-2171-  REWRITE_TAC[UNIONS_IMAGE; EXISTS_IN_GSPEC; PAIRWISE_IMAGE] THEN
hol-light-20190729/Library/card.ml:2172:  CONJ_TAC THENL [REWRITE_TAC[pairwise]; ASM SET_TAC[]] THEN
hol-light-20190729/Library/card.ml-2173-  REWRITE_TAC[IMP_CONJ; RIGHT_FORALL_IMP_THM; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Library/card.ml-2177-  RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THENL
hol-light-20190729/Library/card.ml:2178:   [ASM_MESON_TAC[]; ASM SET_TAC[]]);;
hol-light-20190729/Library/card.ml-2179-
##############################################
hol-light-20190729/Library/card.ml-2198-    REWRITE_TAC[UNIONS_0; UNIONS_INSERT; UNION_EMPTY] THENL
hol-light-20190729/Library/card.ml:2199:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/card.ml-2200-    MATCH_MP_TAC(MESON[]
##############################################
hol-light-20190729/Library/card.ml-2204-                    SET_RULE `a UNION b = b <=> a SUBSET b`] THEN
hol-light-20190729/Library/card.ml:2205:    ASM SET_TAC[];
hol-light-20190729/Library/card.ml-2206-    GEN_TAC THEN REWRITE_TAC[NUMSEG_CLAUSES; LE_0] THEN SET_TAC[];
##############################################
hol-light-20190729/Library/card.ml-2227-    REWRITE_TAC[INTERS_0; INTERS_INSERT; INTER_UNIV] THENL
hol-light-20190729/Library/card.ml:2228:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/card.ml-2229-    MATCH_MP_TAC(MESON[]
##############################################
hol-light-20190729/Library/card.ml-2233-                    SET_RULE `a INTER b = b <=> b SUBSET a`] THEN
hol-light-20190729/Library/card.ml:2234:    ASM SET_TAC[];
hol-light-20190729/Library/card.ml-2235-    GEN_TAC THEN REWRITE_TAC[NUMSEG_CLAUSES; LE_0] THEN SET_TAC[];
##############################################
hol-light-20190729/Library/card.ml-2300-    INDUCT_TAC THEN ASM_SIMP_TAC[EL; HD; TL; LT_SUC];
hol-light-20190729/Library/card.ml:2301:    DISCH_THEN(MP_TAC o SPECL [`dimindex(:N)+1`; `\i. (x:A^N)$i`]) THEN
hol-light-20190729/Library/card.ml-2302-    REWRITE_TAC[LEFT_IMP_EXISTS_THM; ARITH_RULE `i < n + 1 <=> i <= n`] THEN
##############################################
hol-light-20190729/Library/card.ml-2802-      EXISTS_TAC `\y. if y IN t then (f:B->A) y else @y. F` THEN
hol-light-20190729/Library/card.ml:2803:      ASM_SIMP_TAC[exp_c; IN_ELIM_THM] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Library/card.ml-2804-    TRANS_TAC CARD_LE_TRANS
##############################################
hol-light-20190729/Library/card.ml-2842-      EXISTS_TAC `IMAGE (p:B#A->A)` THEN REWRITE_TAC[IN_ELIM_THM] THEN
hol-light-20190729/Library/card.ml:2843:      CONJ_TAC THENL [X_GEN_TAC `u:B#A->bool`; ASM SET_TAC[]] THEN
hol-light-20190729/Library/card.ml:2844:      REPEAT STRIP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/card.ml-2845-      TRANS_TAC CARD_EQ_TRANS `u:B#A->bool` THEN
hol-light-20190729/Library/card.ml:2846:      ASM_SIMP_TAC[] THEN MATCH_MP_TAC CARD_EQ_IMAGE THEN ASM SET_TAC[]]]);;
hol-light-20190729/Library/card.ml-2847-
##############################################
hol-light-20190729/Library/card.ml-2902-   (CONJUNCTS_THEN2 (X_CHOOSE_THEN `f:A->B` STRIP_ASSUME_TAC) ASSUME_TAC) THEN
hol-light-20190729/Library/card.ml:2903:  EXISTS_TAC `IMAGE (f:A->B)` THEN ASM_SIMP_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-2904-
##############################################
hol-light-20190729/Library/card.ml-3009-    REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_ELIM_THM; IN_CROSS] THEN
hol-light-20190729/Library/card.ml:3010:    ASM SET_TAC[]] THEN
hol-light-20190729/Library/card.ml-3011-  REWRITE_TAC[FUN_EQ_THM] THEN X_GEN_TAC `x:A` THEN
##############################################
hol-light-20190729/Library/card.ml-3070-  EXISTS_TAC `\i. if i IN k then (x:K->A) i else z i` THEN
hol-light-20190729/Library/card.ml:3071:  REWRITE_TAC[FUN_EQ_THM] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/card.ml-3072-
##############################################
hol-light-20190729/Library/card.ml-3129-       [CARTESIAN_PRODUCT_EQ_EMPTY]) THEN
hol-light-20190729/Library/card.ml:3130:      ASM SET_TAC[];
hol-light-20190729/Library/card.ml-3131-      MATCH_MP_TAC FINITE_SUBSET THEN
##############################################
hol-light-20190729/Library/card.ml-3137-        ASM_REWRITE_TAC[FINITE_UNIONS; FORALL_IN_GSPEC] THEN
hol-light-20190729/Library/card.ml:3138:        ASM_SIMP_TAC[SIMPLE_IMAGE; FINITE_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Library/card.ml-3139-        GEN_REWRITE_TAC I [SUBSET] THEN X_GEN_TAC `f:K->A` THEN
hol-light-20190729/Library/card.ml-3140-        REWRITE_TAC[cartesian_product; IN_ELIM_THM; EXTENSIONAL] THEN
hol-light-20190729/Library/card.ml:3141:        ASM SET_TAC[]]]]);;
hol-light-20190729/Library/card.ml-3142-
##############################################
hol-light-20190729/Library/card.ml-3199-       [CARTESIAN_PRODUCT_EQ_EMPTY]) THEN
hol-light-20190729/Library/card.ml:3200:      ASM SET_TAC[];
hol-light-20190729/Library/card.ml-3201-      MATCH_MP_TAC COUNTABLE_SUBSET THEN
##############################################
hol-light-20190729/Library/card.ml-3211-                     COUNTABLE_IMAGE] THEN
hol-light-20190729/Library/card.ml:3212:        ASM SET_TAC[];
hol-light-20190729/Library/card.ml-3213-        GEN_REWRITE_TAC I [SUBSET] THEN X_GEN_TAC `f:K->A` THEN
##############################################
hol-light-20190729/Library/card.ml-3216-         `FINITE t ==> (s SUBSET t /\ FINITE s <=> s SUBSET t)`] THEN
hol-light-20190729/Library/card.ml:3217:        ASM SET_TAC[]]]]);;
hol-light-20190729/Library/card.ml-3218-
##############################################
hol-light-20190729/Library/floor.ml-805-    EXISTS_TAC `IMAGE (q:num->real) (:num)` THEN
hol-light-20190729/Library/floor.ml:806:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Library/floor.ml-807-    MATCH_MP_TAC INFINITE_IMAGE THEN REWRITE_TAC[num_INFINITE; IN_UNIV] THEN
##############################################
hol-light-20190729/Library/frag.ml-163-   `~(~(x:int = &0) /\ ~(y = &0)) ==> x + y = &0 ==> x = &0 /\ y = &0`) THEN
hol-light-20190729/Library/frag.ml:164:  ASM SET_TAC[]);;
hol-light-20190729/Library/frag.ml-165-
##############################################
hol-light-20190729/Library/frag.ml-215-    W(MP_TAC o PART_MATCH lhand FRAG_SUPPORT_ADD o lhand o snd) THEN
hol-light-20190729/Library/frag.ml:216:    ASM SET_TAC[];
hol-light-20190729/Library/frag.ml-217-    REWRITE_TAC[SIMPLE_IMAGE] THEN MATCH_MP_TAC SUBSET_UNIONS THEN
##############################################
hol-light-20190729/Library/frag.ml-389-  ASM_REWRITE_TAC[] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Library/frag.ml:390:  ASM SET_TAC[]);;
hol-light-20190729/Library/frag.ml-391-
##############################################
hol-light-20190729/Library/frag.ml-414-    ASM_REWRITE_TAC[FRAG_SUPPORT_0; EMPTY_SUBSET; FRAG_SUPPORT_OF] THEN
hol-light-20190729/Library/frag.ml:415:    ASM SET_TAC[];
hol-light-20190729/Library/frag.ml-416-    POP_ASSUM MP_TAC THEN SPEC_TAC(`c:A frag`,`c:A frag`) THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-1008-      if asl = [] then th2 else
hol-light-20190729/Library/grouptheory.ml:1009:      let asm = list_mk_conj asl in
hol-light-20190729/Library/grouptheory.ml:1010:      DISCH asm (itlist PROVE_HYP (CONJUNCTS(ASSUME asm)) th2) in
hol-light-20190729/Library/grouptheory.ml-1011-    let th4 = GENL avs th3 in
##############################################
hol-light-20190729/Library/grouptheory.ml-1188-  ANTS_TAC THENL [ALL_TAC; SET_TAC[]] THEN
hol-light-20190729/Library/grouptheory.ml:1189:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/grouptheory.ml-1190-  ASM_SIMP_TAC[subgroup_of; IN_ELIM_THM; SUBSET; GROUP_MUL; GROUP_INV;
##############################################
hol-light-20190729/Library/grouptheory.ml-1223-  STRIP_TAC THEN MATCH_MP_TAC SUBSET_ANTISYM THEN
hol-light-20190729/Library/grouptheory.ml:1224:  CONJ_TAC THENL [GEN_REWRITE_TAC I [SUBSET]; ASM SET_TAC[]] THEN
hol-light-20190729/Library/grouptheory.ml-1225-  X_GEN_TAC `x:A` THEN REWRITE_TAC[IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-1289-  EXISTS_TAC `{group_id G:A}` THEN
hol-light-20190729/Library/grouptheory.ml:1290:  REWRITE_TAC[IN_ELIM_THM; TRIVIAL_SUBGROUP_OF] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-1291-
##############################################
hol-light-20190729/Library/grouptheory.ml-1338-    GROUP_CARRIER_SUBGROUP_GENERATED_SUBSET) THEN
hol-light-20190729/Library/grouptheory.ml:1339:  ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-1340-
##############################################
hol-light-20190729/Library/grouptheory.ml-1358-        SUBGROUP_GENERATED_SUBSET_CARRIER) THEN
hol-light-20190729/Library/grouptheory.ml:1359:    ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-1360-    MATCH_MP_TAC SUBGROUP_OF_SUBGROUP_GENERATED_REV THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-1667-  GEN_TAC THEN EQ_TAC THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Library/grouptheory.ml:1668:  RULE_ASSUM_TAC(REWRITE_RULE[subgroup_of]) THEN ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-1669-
##############################################
hol-light-20190729/Library/grouptheory.ml-1965-    MATCH_MP_TAC(REWRITE_RULE[SUBSET] SUBGROUP_GENERATED_SUBSET_CARRIER) THEN
hol-light-20190729/Library/grouptheory.ml:1966:    ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-1967-    ASM_MESON_TAC[GROUP_ID; SUBGROUP_GENERATED];
##############################################
hol-light-20190729/Library/grouptheory.ml-2011-  EQ_TAC THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Library/grouptheory.ml:2012:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/grouptheory.ml-2013-  SUBST1_TAC(SYM(ASSUME
##############################################
hol-light-20190729/Library/grouptheory.ml-2096-  RULE_ASSUM_TAC(REWRITE_RULE[group_homomorphism]) THEN
hol-light-20190729/Library/grouptheory.ml:2097:  ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-2098-
##############################################
hol-light-20190729/Library/grouptheory.ml-2382-  DISCH_THEN(STRIP_ASSUME_TAC o GSYM) THEN
hol-light-20190729/Library/grouptheory.ml:2383:  ASM_REWRITE_TAC[FORALL_IN_IMAGE_2] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-2384-
##############################################
hol-light-20190729/Library/grouptheory.ml-2408-    RULE_ASSUM_TAC(REWRITE_RULE[group_homomorphism]) THEN
hol-light-20190729/Library/grouptheory.ml:2409:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/grouptheory.ml-2410-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Library/grouptheory.ml-2411-        FINITE_SUBSET)) THEN
hol-light-20190729/Library/grouptheory.ml:2412:    ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-2413-    DISCH_TAC THEN ASM_SIMP_TAC[GSYM GROUP_ADD_EQ_MUL] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-2425-      REWRITE_TAC[support; NEUTRAL_GROUP_ADD] THEN
hol-light-20190729/Library/grouptheory.ml:2426:      RULE_ASSUM_TAC(REWRITE_RULE[group_homomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-2427-      DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-2590-   [group_homomorphism; SUBSET; FORALL_IN_IMAGE]) THEN
hol-light-20190729/Library/grouptheory.ml:2591:  ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-2592-
##############################################
hol-light-20190729/Library/grouptheory.ml-2709-  REPEAT STRIP_TAC THEN MATCH_MP_TAC GROUP_MUL_ASSOC THEN
hol-light-20190729/Library/grouptheory.ml:2710:  ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-2711-
##############################################
hol-light-20190729/Library/grouptheory.ml-2857-      DISCH_THEN(MP_TAC o SPECL [`group_inv G x:A`; `group_inv G y:A`]) THEN
hol-light-20190729/Library/grouptheory.ml:2858:      ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-2859-      TRANS_TAC SUBSET_TRANS
##############################################
hol-light-20190729/Library/grouptheory.ml-3350-  RULE_ASSUM_TAC(REWRITE_RULE[SUBSET]) THEN
hol-light-20190729/Library/grouptheory.ml:3351:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Library/grouptheory.ml-3352-   [GROUP_MUL_ASSOC; GROUP_MUL; GROUP_INV; GROUP_MUL_LINV] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-3700-    REWRITE_TAC[REWRITE_RULE[IN] RESTRICTION_IN_EXTENSIONAL] THEN
hol-light-20190729/Library/grouptheory.ml:3701:    ASM_SIMP_TAC[RESTRICTION; QUOTIENT_GROUP] THEN ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-3702-    ASM_SIMP_TAC[IN_ELIM_THM; cartesian_product; RESTRICTION; QUOTIENT_GROUP];
##############################################
hol-light-20190729/Library/grouptheory.ml-3888-  RULE_ASSUM_TAC(REWRITE_RULE[group_homomorphism]) THEN
hol-light-20190729/Library/grouptheory.ml:3889:  MP_TAC(ISPEC `G:A group` GROUP_ID) THEN ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-3890-
##############################################
hol-light-20190729/Library/grouptheory.ml-4001-  MATCH_MP_TAC EQ_IMP THEN MATCH_MP_TAC GROUP_DIV_EQ_ID THEN
hol-light-20190729/Library/grouptheory.ml:4002:  RULE_ASSUM_TAC(REWRITE_RULE[group_homomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-4003-
##############################################
hol-light-20190729/Library/grouptheory.ml-4014-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Library/grouptheory.ml:4015:  ASM_SIMP_TAC[QUOTIENT_GROUP] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-4016-
##############################################
hol-light-20190729/Library/grouptheory.ml-4063-    REWRITE_TAC[group_image] THEN
hol-light-20190729/Library/grouptheory.ml:4064:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Library/grouptheory.ml-4065-    SIMP_TAC[IMP_CONJ; RIGHT_FORALL_IMP_THM; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-4428-  REWRITE_TAC[TRIVIAL_GROUP_SUBGROUP_GENERATED_EQ] THEN
hol-light-20190729/Library/grouptheory.ml:4429:  ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-4430-
##############################################
hol-light-20190729/Library/grouptheory.ml-4736-    DISCH_TAC THEN MATCH_MP_TAC NO_PROPER_SUBGROUPS_IMP_CYCLIC THEN
hol-light-20190729/Library/grouptheory.ml:4737:    ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-4738-    STRIP_TAC THEN REWRITE_TAC[ONE_OR_PRIME]] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-4896-     [ASM_SIMP_TAC[GSYM GROUP_SETMUL_ASSOC; GROUP_SETMUL; SING_SUBSET] THEN
hol-light-20190729/Library/grouptheory.ml:4897:      AP_TERM_TAC THEN REWRITE_TAC[group_setmul] THEN ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-4898-      AP_THM_TAC THEN AP_TERM_TAC THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-4908-      AP_THM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Library/grouptheory.ml:4909:      REWRITE_TAC[group_setmul] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Library/grouptheory.ml-4910-
##############################################
hol-light-20190729/Library/grouptheory.ml-4987-    DISCH_THEN(MP_TAC o MATCH_MP GROUP_HOMOMORPHISM_GROUP_MUL_REV) THEN
hol-light-20190729/Library/grouptheory.ml:4988:    ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-4989-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-4994-  RULE_ASSUM_TAC(REWRITE_RULE[subgroup_of; SUBSET]) THEN
hol-light-20190729/Library/grouptheory.ml:4995:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Library/grouptheory.ml-4996-   [GROUP_MUL_LCANCEL; GSYM GROUP_MUL_ASSOC; GROUP_MUL] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-5518-      W(MP_TAC o PART_MATCH lhand FRAG_SUPPORT_ADD o lhand o snd) THEN
hol-light-20190729/Library/grouptheory.ml:5519:      ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-5520-      REPEAT STRIP_TAC THEN CONV_TAC FRAG_MODULE];
##############################################
hol-light-20190729/Library/grouptheory.ml-5594-    MATCH_MP_TAC GROUP_ZPOW THEN
hol-light-20190729/Library/grouptheory.ml:5595:    RULE_ASSUM_TAC(REWRITE_RULE[frag_support]) THEN ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-5596-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-5664-     [W(MP_TAC o PART_MATCH lhand FRAG_SUPPORT_SUM o lhand o snd) THEN
hol-light-20190729/Library/grouptheory.ml:5665:      ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-5666-      W(MP_TAC o PART_MATCH (rand o rand)
##############################################
hol-light-20190729/Library/grouptheory.ml-5700-     [W(MP_TAC o PART_MATCH lhand FRAG_SUPPORT_SUM o lhand o snd) THEN
hol-light-20190729/Library/grouptheory.ml:5701:      ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-5702-      FIRST_X_ASSUM(MP_TAC o SPEC `i:K`) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-5844-    SUBGOAL_THEN `!c. frag_support c SUBSET s ==> (g:A frag->B) c = h c`
hol-light-20190729/Library/grouptheory.ml:5845:    MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Library/grouptheory.ml-5846-    ONCE_REWRITE_TAC[TAUT `p ==> q <=> p ==> p /\ q`] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-6128-    RULE_ASSUM_TAC(REWRITE_RULE[group_image; group_kernel]) THEN
hol-light-20190729/Library/grouptheory.ml:6129:    ASM SET_TAC[]] THEN
hol-light-20190729/Library/grouptheory.ml-6130-  REWRITE_TAC[SUBSET] THEN X_GEN_TAC `x:X` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-6140-  ANTS_TAC THENL
hol-light-20190729/Library/grouptheory.ml:6141:   [ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Library/grouptheory.ml-6142-     [group_div; GROUP_INV; GROUP_MUL; GROUP_MUL_RINV];
##############################################
hol-light-20190729/Library/grouptheory.ml-6150-              (GEN_REWRITE_RULE I [abelian_group] th) o rand o snd)) THEN
hol-light-20190729/Library/grouptheory.ml:6151:    ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Library/grouptheory.ml-6152-     [group_div; GROUP_INV; GROUP_MUL; GSYM GROUP_MUL_ASSOC;
##############################################
hol-light-20190729/Library/grouptheory.ml-6425-     [GSYM FRAG_OF_IN_FREE_ABELIAN_GROUP] THEN
hol-light-20190729/Library/grouptheory.ml:6426:    RULE_ASSUM_TAC( REWRITE_RULE[group_homomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-6427-    DISCH_THEN(X_CHOOSE_THEN `k:D frag->B` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-6434-    (CONJUNCTS_THEN2 SUBST1_TAC MP_TAC) THENL
hol-light-20190729/Library/grouptheory.ml:6435:     [RULE_ASSUM_TAC( REWRITE_RULE[group_homomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-6436-      SPEC_TAC(`(h:C->D frag) c`,`d:D frag`)] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-6472-  SUBGOAL_THEN `(h:C->D) x = group_id D`
hol-light-20190729/Library/grouptheory.ml:6473:  ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/grouptheory.ml-6474-  SUBGOAL_THEN `?y. y IN group_carrier B /\ (g:B->C) y = x`
hol-light-20190729/Library/grouptheory.ml:6475:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/grouptheory.ml-6476-  SUBGOAL_THEN `?w. w IN group_carrier A' /\ (f':A'->B') w = (b:B->B') y`
hol-light-20190729/Library/grouptheory.ml:6477:  STRIP_ASSUME_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-6478-
##############################################
hol-light-20190729/Library/grouptheory.ml-6502-  SUBGOAL_THEN `?y. y IN group_carrier C /\ (c:C->C') y = (g':B'->C') x`
hol-light-20190729/Library/grouptheory.ml:6503:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/grouptheory.ml-6504-  SUBGOAL_THEN `(h:C->D) y = group_id D`
hol-light-20190729/Library/grouptheory.ml:6505:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/grouptheory.ml-6506-  SUBGOAL_THEN `?z. z IN group_carrier B /\ (g:B->C) z = y`
hol-light-20190729/Library/grouptheory.ml:6507:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/grouptheory.ml-6508-  ABBREV_TAC `w =  group_mul B' x (group_inv B' ((b:B->B') z))` THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-6515-  SUBGOAL_THEN `?v. v IN group_carrier A' /\ (f':A'->B') v = w`
hol-light-20190729/Library/grouptheory.ml:6516:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/grouptheory.ml-6517-  SUBGOAL_THEN `?u. u IN group_carrier A /\ (a:A->A') u = v`
hol-light-20190729/Library/grouptheory.ml:6518:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/grouptheory.ml-6519-  REWRITE_TAC[IN_IMAGE] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-6521-  SUBGOAL_THEN `(b:B->B') ((f:A->B) u) = w`
hol-light-20190729/Library/grouptheory.ml:6522:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/grouptheory.ml-6523-  SUBST1_TAC(SYM(ASSUME
##############################################
hol-light-20190729/Library/grouptheory.ml-6593-    trivial_group; group_homomorphism]) THEN
hol-light-20190729/Library/grouptheory.ml:6594:  ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-6595-
##############################################
hol-light-20190729/Library/grouptheory.ml-6630-    trivial_group; group_homomorphism]) THEN
hol-light-20190729/Library/grouptheory.ml:6631:  ASM SET_TAC[]);;
hol-light-20190729/Library/grouptheory.ml-6632-
##############################################
hol-light-20190729/Library/grouptheory.ml-6675-   [RULE_ASSUM_TAC(REWRITE_RULE[group_homomorphism; group_exactness]) THEN
hol-light-20190729/Library/grouptheory.ml:6676:    ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-6677-    ALL_TAC] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-6689-     [group_isomorphisms; group_homomorphism; group_exactness]) THEN
hol-light-20190729/Library/grouptheory.ml:6690:    ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-6691-    ALL_TAC] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-6714-     [group_isomorphisms; group_homomorphism; group_exactness]) THEN
hol-light-20190729/Library/grouptheory.ml:6715:    ASM SET_TAC[];
hol-light-20190729/Library/grouptheory.ml-6716-    ALL_TAC] THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-6743-       [group_isomorphisms; group_homomorphism; group_exactness]) THEN
hol-light-20190729/Library/grouptheory.ml:6744:      ASM SET_TAC[]];
hol-light-20190729/Library/grouptheory.ml-6745-    SUBGOAL_THEN
##############################################
hol-light-20190729/Library/grouptheory.ml-6749-       [group_isomorphisms; group_homomorphism; group_exactness]) THEN
hol-light-20190729/Library/grouptheory.ml:6750:      ASM SET_TAC[]]] THEN
hol-light-20190729/Library/grouptheory.ml-6751-  FIRST_X_ASSUM(fun th ->
##############################################
hol-light-20190729/Library/grouptheory.ml-6758-        group_image; group_kernel]) THEN
hol-light-20190729/Library/grouptheory.ml:6759:  ASM SET_TAC[]);;
##############################################
hol-light-20190729/Library/iter.ml-116-        `c <= k ==> s <= c ==> ~(s = k + 1)`)) THEN
hol-light-20190729/Library/iter.ml:117:       MATCH_MP_TAC CARD_SUBSET THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Library/iter.ml-118-       REWRITE_TAC[NOT_FORALL_THM; NOT_IMP; LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Library/multiplicative.ml-338-    SUBGOAL_THEN `{q | prime q /\ q divides p} = {p}` SUBST1_TAC THENL
hol-light-20190729/Library/multiplicative.ml:339:     [ASM SET_TAC[DIVIDES_PRIME_PRIME]; ALL_TAC] THEN
hol-light-20190729/Library/multiplicative.ml-340-    SIMP_TAC[CARD_CLAUSES; FINITE_RULES; NOT_IN_EMPTY; ARITH; REAL_POW_1]]);;
##############################################
hol-light-20190729/Library/permutations.ml-849-  ASM_SIMP_TAC[CARD_EQ_0; ARITH_RULE `n - 1 - 1 < n <=> ~(n = 0)`] THEN
hol-light-20190729/Library/permutations.ml:850:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/permutations.ml-851-  SUBGOAL_THEN `permutation(p:A->A)` ASSUME_TAC THENL
##############################################
hol-light-20190729/Library/permutations.ml-859-    {x:A | ~(p x = x)} DELETE a DELETE (p a)`
hol-light-20190729/Library/permutations.ml:860:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/permutations.ml-861-  SUBGOAL_THEN `FINITE {x:A | ~(p x = x)}` ASSUME_TAC THENL
hol-light-20190729/Library/permutations.ml-862-   [MATCH_MP_TAC FINITE_SUBSET THEN EXISTS_TAC `s:A->bool` THEN
hol-light-20190729/Library/permutations.ml:863:    ASM SET_TAC[];
hol-light-20190729/Library/permutations.ml-864-    ASM_SIMP_TAC[CARD_DELETE; IN_ELIM_THM; FINITE_DELETE; IN_DELETE]] THEN
##############################################
hol-light-20190729/Library/permutations.ml-870-    CONV_TAC NUM_REDUCE_CONV;
hol-light-20190729/Library/permutations.ml:871:    MATCH_MP_TAC CARD_SUBSET THEN ASM SET_TAC[]]);;
hol-light-20190729/Library/permutations.ml-872-
##############################################
hol-light-20190729/Library/primitive.ml-282-  ASM_CASES_TAC `{x | x IN 1..p-1 /\ order p x = p - 1} = {}` THENL
hol-light-20190729/Library/primitive.ml:283:   [ASM_REWRITE_TAC[CARD_CLAUSES]; ASM SET_TAC[]] THEN
hol-light-20190729/Library/primitive.ml-284-  ONCE_REWRITE_TAC[GSYM CONTRAPOS_THM] THEN DISCH_THEN(K ALL_TAC) THEN
##############################################
hol-light-20190729/Library/products.ml-251-      X_GEN_TAC `v:A^N` THEN REWRITE_TAC[IN_ELIM_THM] THEN
hol-light-20190729/Library/products.ml:252:      STRIP_TAC THEN EXISTS_TAC `(v:A^N)$(SUC n)` THEN
hol-light-20190729/Library/products.ml:253:      EXISTS_TAC `(lambda i. if i = SUC n then @x. F else (v:A^N)$i):A^N` THEN
hol-light-20190729/Library/products.ml-254-      SIMP_TAC[CART_EQ; LAMBDA_BETA; ARITH_RULE `i <= n ==> ~(i = SUC n)`] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-843-  ANTS_TAC THENL
hol-light-20190729/Library/ringtheory.ml:844:   [ASM_SIMP_TAC[FINITE_RESTRICT] THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-845-    DISCH_THEN SUBST1_TAC THEN REWRITE_TAC[]] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-857-  ANTS_TAC THENL
hol-light-20190729/Library/ringtheory.ml:858:   [ASM_SIMP_TAC[FINITE_RESTRICT] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-859-  REWRITE_TAC[GSYM ring_sum; RING_SUM; GSYM DIFF_RESTRICT]);;
##############################################
hol-light-20190729/Library/ringtheory.ml-918-   `s = {} ==> ring_sum r s f = ring_0 r`) THEN
hol-light-20190729/Library/ringtheory.ml:919:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-920-
##############################################
hol-light-20190729/Library/ringtheory.ml-931-  SUBGOAL_THEN `s = (a:K) INSERT t` SUBST1_TAC THENL
hol-light-20190729/Library/ringtheory.ml:932:   [ASM SET_TAC[]; REWRITE_TAC[FINITE_INSERT] THEN STRIP_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-933-  ASM_SIMP_TAC[RING_SUM_CLAUSES] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-967-    {a | a IN s /\ (f:K->A) a IN ring_carrier r}`
hol-light-20190729/Library/ringtheory.ml:968:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-969-  MATCH_MP_TAC(MATCH_MP ITERATE_EQ (ISPEC `r:C ring` MONOIDAL_RING_ADD)) THEN
hol-light-20190729/Library/ringtheory.ml:970:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-971-
##############################################
hol-light-20190729/Library/ringtheory.ml-1095-  REPEAT STRIP_TAC THEN ONCE_REWRITE_TAC[RING_SUM_SUPPORT] THEN
hol-light-20190729/Library/ringtheory.ml:1096:  AP_THM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-1097-
##############################################
hol-light-20190729/Library/ringtheory.ml-1105-    rand o snd) THEN
hol-light-20190729/Library/ringtheory.ml:1106:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Library/ringtheory.ml:1107:  AP_THM_TAC THEN AP_TERM_TAC THEN REWRITE_TAC[o_THM] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-1108-
##############################################
hol-light-20190729/Library/ringtheory.ml-1125-               RING_MUL_LID; RING_OF_NUM_1; RING_1] THEN
hol-light-20190729/Library/ringtheory.ml:1126:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Library/ringtheory.ml-1127-   [RING_SUM_CLAUSES_LEFT; ADD1; ARITH_RULE `0 <= n + 1`;
hol-light-20190729/Library/ringtheory.ml-1128-    RING_SUM_OFFSET; RING_POW; RING_MUL; RING_1; RING_OF_NUM] THEN
hol-light-20190729/Library/ringtheory.ml:1129:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Library/ringtheory.ml-1130-   [ring_pow; binom; GSYM ADD1; GSYM RING_SUM_LMUL; FINITE_NUMSEG;
hol-light-20190729/Library/ringtheory.ml-1131-    RING_POW; RING_MUL; RING_1; RING_OF_NUM; RING_ADD] THEN
hol-light-20190729/Library/ringtheory.ml:1132:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Library/ringtheory.ml-1133-   [RING_OF_NUM_ADD; RING_MUL_LID; SUB_0; RING_ADD_RDISTRIB; RING_SUM_ADD;
##############################################
hol-light-20190729/Library/ringtheory.ml-1147-               RING_MUL; RING_POW; RING_OF_NUM] THEN
hol-light-20190729/Library/ringtheory.ml:1148:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Library/ringtheory.ml-1149-   [RING_SUM_CLAUSES_LEFT; LE_0; BINOM_LT; LT; RING_MUL_LID; SUB_0;
##############################################
hol-light-20190729/Library/ringtheory.ml-1291-  ANTS_TAC THENL
hol-light-20190729/Library/ringtheory.ml:1292:   [ASM_SIMP_TAC[FINITE_RESTRICT] THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-1293-    DISCH_THEN SUBST1_TAC THEN REWRITE_TAC[]] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-1353-   `s = {} ==> ring_product r s f = ring_1 r`) THEN
hol-light-20190729/Library/ringtheory.ml:1354:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-1355-
##############################################
hol-light-20190729/Library/ringtheory.ml-1378-    {a | a IN s /\ (f:K->A) a IN ring_carrier r}`
hol-light-20190729/Library/ringtheory.ml:1379:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-1380-  MATCH_MP_TAC(MATCH_MP ITERATE_EQ (ISPEC `r:C ring` MONOIDAL_RING_MUL)) THEN
hol-light-20190729/Library/ringtheory.ml:1381:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-1382-
##############################################
hol-light-20190729/Library/ringtheory.ml-1454-  REPEAT STRIP_TAC THEN ONCE_REWRITE_TAC[RING_PRODUCT_SUPPORT] THEN
hol-light-20190729/Library/ringtheory.ml:1455:  AP_THM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-1456-
##############################################
hol-light-20190729/Library/ringtheory.ml-1464-    rand o snd) THEN
hol-light-20190729/Library/ringtheory.ml:1465:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Library/ringtheory.ml:1466:  AP_THM_TAC THEN AP_TERM_TAC THEN REWRITE_TAC[o_THM] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-1467-
##############################################
hol-light-20190729/Library/ringtheory.ml-1610-  CONJ_TAC THENL
hol-light-20190729/Library/ringtheory.ml:1611:   [ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Library/ringtheory.ml-1612-        [RING_MUL; RING_INV; RING_MUL_AC; RING_UNIT_IN_CARRIER];
##############################################
hol-light-20190729/Library/ringtheory.ml-1847-  SUBGOAL_THEN `t:K->bool = s UNION u` SUBST1_TAC THENL
hol-light-20190729/Library/ringtheory.ml:1848:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-1849-  W(MP_TAC o PART_MATCH (lhand o rand) RING_PRODUCT_UNION o rand o snd) THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-1851-   [CONJ_TAC THENL [ASM_MESON_TAC[FINITE_SUBSET]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml:1852:    CONJ_TAC THENL [ASM_MESON_TAC[FINITE_DIFF]; ASM SET_TAC[]];
hol-light-20190729/Library/ringtheory.ml-1853-    MESON_TAC[RING_DIVIDES_RMUL; RING_PRODUCT; RING_DIVIDES_REFL]]);;
##############################################
hol-light-20190729/Library/ringtheory.ml-2122-  ASM_SIMP_TAC[ARITH_EQ; RING_POW_1] THEN
hol-light-20190729/Library/ringtheory.ml:2123:  MP_TAC(ISPEC `r:A ring` RING_0) THEN ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-2124-
##############################################
hol-light-20190729/Library/ringtheory.ml-2310-  ANTS_TAC THENL [ALL_TAC; SET_TAC[]] THEN
hol-light-20190729/Library/ringtheory.ml:2311:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-2312-  ASM_SIMP_TAC[subring_of; IN_ELIM_THM; SUBSET; RING_ADD; RING_NEG;
##############################################
hol-light-20190729/Library/ringtheory.ml-2345-  STRIP_TAC THEN MATCH_MP_TAC SUBSET_ANTISYM THEN
hol-light-20190729/Library/ringtheory.ml:2346:  CONJ_TAC THENL [GEN_REWRITE_TAC I [SUBSET]; ASM SET_TAC[]] THEN
hol-light-20190729/Library/ringtheory.ml-2347-  X_GEN_TAC `x:A` THEN REWRITE_TAC[IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-2437-    RING_CARRIER_SUBRING_GENERATED_SUBSET) THEN
hol-light-20190729/Library/ringtheory.ml:2438:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-2439-
##############################################
hol-light-20190729/Library/ringtheory.ml-2457-        SUBRING_GENERATED_SUBSET_CARRIER) THEN
hol-light-20190729/Library/ringtheory.ml:2458:    ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-2459-    MATCH_MP_TAC SUBRING_OF_SUBRING_GENERATED_REV THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-2527-  SUBGOAL_THEN `(x:A) IN ring_carrier r` ASSUME_TAC THENL
hol-light-20190729/Library/ringtheory.ml:2528:   [FIRST_X_ASSUM(MP_TAC o MATCH_MP RING_IDEAL_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-2529-    ALL_TAC] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-2782-  REPEAT STRIP_TAC THEN MATCH_MP_TAC RING_ADD_ASSOC THEN
hol-light-20190729/Library/ringtheory.ml:2783:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-2784-
##############################################
hol-light-20190729/Library/ringtheory.ml-2801-  REPEAT STRIP_TAC THEN MATCH_MP_TAC RING_MUL_ASSOC THEN
hol-light-20190729/Library/ringtheory.ml:2802:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-2803-
##############################################
hol-light-20190729/Library/ringtheory.ml-3004- RULE_ASSUM_TAC(REWRITE_RULE[SUBSET]) THEN
hol-light-20190729/Library/ringtheory.ml:3005: ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Library/ringtheory.ml-3006-  [SUBSET; IN_RING_IDEAL_ADD; IN_RING_IDEAL_LMUL; RING_ADD_LDISTRIB;
##############################################
hol-light-20190729/Library/ringtheory.ml-3008- ASM_SIMP_TAC[RING_ADD; RING_ADD_RDISTRIB] THEN
hol-light-20190729/Library/ringtheory.ml:3009: ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Library/ringtheory.ml-3010-  [GSYM RING_ADD_ASSOC; RING_MUL; RING_ADD]);;
##############################################
hol-light-20190729/Library/ringtheory.ml-3110-    EXISTS_TAC `ring_mul r x y:A` THEN
hol-light-20190729/Library/ringtheory.ml:3111:    ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Library/ringtheory.ml-3112-     [RING_ADD_LDISTRIB; RING_ADD_RDISTRIB; RING_ADD; RING_MUL;
##############################################
hol-light-20190729/Library/ringtheory.ml-3217-  ANTS_TAC THENL [ALL_TAC; SET_TAC[]] THEN
hol-light-20190729/Library/ringtheory.ml:3218:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-3219-  ASM_SIMP_TAC[ring_ideal; IN_ELIM_THM; SUBSET; RING_ADD; RING_NEG;
##############################################
hol-light-20190729/Library/ringtheory.ml-3259-  STRIP_TAC THEN MATCH_MP_TAC SUBSET_ANTISYM THEN
hol-light-20190729/Library/ringtheory.ml:3260:  CONJ_TAC THENL [GEN_REWRITE_TAC I [SUBSET]; ASM SET_TAC[]] THEN
hol-light-20190729/Library/ringtheory.ml-3261-  X_GEN_TAC `x:A` THEN REWRITE_TAC[IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-3459-  ASM_SIMP_TAC[IDEAL_GENERATED_SING_ALT] THEN
hol-light-20190729/Library/ringtheory.ml:3460:  REWRITE_TAC[ring_setadd] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-3461-
##############################################
hol-light-20190729/Library/ringtheory.ml-3810-        RING_CARRIER_SUBRING_GENERATED_SUBSET) THEN
hol-light-20190729/Library/ringtheory.ml:3811:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-3812-
##############################################
hol-light-20190729/Library/ringtheory.ml-4191-    MATCH_MP_TAC(REWRITE_RULE[SUBSET] SUBRING_GENERATED_SUBSET_CARRIER) THEN
hol-light-20190729/Library/ringtheory.ml:4192:    ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-4193-    ALL_TAC] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-4240-  EQ_TAC THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Library/ringtheory.ml:4241:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-4242-  SUBST1_TAC(SYM(ASSUME
##############################################
hol-light-20190729/Library/ringtheory.ml-4261-  ASM_REWRITE_TAC[FORALL_IN_IMAGE; RIGHT_FORALL_IMP_THM; IMP_CONJ] THEN
hol-light-20190729/Library/ringtheory.ml:4262:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-4263-
##############################################
hol-light-20190729/Library/ringtheory.ml-4307-      MATCH_MP_TAC IDEAL_GENERATED_SUBSET_CARRIER_SUBSET THEN
hol-light-20190729/Library/ringtheory.ml:4308:      RULE_ASSUM_TAC(REWRITE_RULE[ring_epimorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-4309-      MATCH_MP_TAC RING_IDEAL_HOMOMORPHIC_PREIMAGE THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-4370-  RULE_ASSUM_TAC(REWRITE_RULE[ring_homomorphism]) THEN
hol-light-20190729/Library/ringtheory.ml:4371:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-4372-
##############################################
hol-light-20190729/Library/ringtheory.ml-4459-   [ASM_SIMP_TAC[ring_homomorphism; TRIVIAL_RING_10] THEN
hol-light-20190729/Library/ringtheory.ml:4460:    MP_TAC(ISPEC `r:A ring` RING_1) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-4461-    SIMP_TAC[trivial_ring; RING_HOMOMORPHISM] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-4466-    MP_TAC(ISPEC `r':B ring` RING_0) THEN
hol-light-20190729/Library/ringtheory.ml:4467:    MP_TAC(ISPEC `r':B ring` RING_1) THEN ASM SET_TAC[]]);;
hol-light-20190729/Library/ringtheory.ml-4468-
##############################################
hol-light-20190729/Library/ringtheory.ml-4508-  STRIP_TAC THEN ASM_REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Library/ringtheory.ml:4509:   [RULE_ASSUM_TAC(REWRITE_RULE[ring_homomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-4510-    ASM_MESON_TAC[RING_HOMOMORPHISM_POW; RING_HOMOMORPHISM_0]]);;
##############################################
hol-light-20190729/Library/ringtheory.ml-4517-   [RULE_ASSUM_TAC(REWRITE_RULE[ring_monomorphism; ring_homomorphism]) THEN
hol-light-20190729/Library/ringtheory.ml:4518:    ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-4519-    FIRST_ASSUM(fun th ->
##############################################
hol-light-20190729/Library/ringtheory.ml-4633-    SUBGOAL_THEN `s = IMAGE (f:A->B) (ring_carrier r)` SUBST1_TAC THENL
hol-light-20190729/Library/ringtheory.ml:4634:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-4635-    REWRITE_TAC[IMP_CONJ; RIGHT_FORALL_IMP_THM] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-4757-  RULE_ASSUM_TAC(REWRITE_RULE[ring_homomorphism]) THEN
hol-light-20190729/Library/ringtheory.ml:4758:  MP_TAC(ISPEC `r:A ring` RING_0) THEN ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-4759-
##############################################
hol-light-20190729/Library/ringtheory.ml-4853-    SUBGOAL_THEN `(x:A) IN ring_carrier r` ASSUME_TAC THENL
hol-light-20190729/Library/ringtheory.ml:4854:     [ASM SET_TAC[]; ASM_REWRITE_TAC[]] THEN
hol-light-20190729/Library/ringtheory.ml-4855-    EXISTS_TAC `ring_sub r z x:A` THEN ASM_SIMP_TAC[RING_SUB] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-4858-     [MATCH_MP_TAC RING_SUB_REFL THEN
hol-light-20190729/Library/ringtheory.ml:4859:      RULE_ASSUM_TAC(REWRITE_RULE[ring_homomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-4860-      TRANS_TAC EQ_TRANS `ring_add r (ring_sub r z x) x:A` THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Library/ringtheory.ml-4867-    SUBGOAL_THEN `(x:A) IN ring_carrier r` ASSUME_TAC THENL
hol-light-20190729/Library/ringtheory.ml:4868:     [ASM SET_TAC[]; ASM_SIMP_TAC[RING_ADD]] THEN
hol-light-20190729/Library/ringtheory.ml-4869-    FIRST_ASSUM(MP_TAC o MATCH_MP RING_HOMOMORPHISM_ADD) THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-4918-    RULE_ASSUM_TAC(REWRITE_RULE
hol-light-20190729/Library/ringtheory.ml:4919:     [RING_EPIMORPHISM; ring_image; ring_ideal]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Library/ringtheory.ml-4920-
##############################################
hol-light-20190729/Library/ringtheory.ml-4937-   RULE_ASSUM_TAC(REWRITE_RULE
hol-light-20190729/Library/ringtheory.ml:4938:    [RING_EPIMORPHISM; ring_image; subring_of]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Library/ringtheory.ml-4939-
##############################################
hol-light-20190729/Library/ringtheory.ml-4967-      ASM_REWRITE_TAC[] THEN DISCH_THEN MATCH_MP_TAC THEN
hol-light-20190729/Library/ringtheory.ml:4968:      RULE_ASSUM_TAC(REWRITE_RULE[ring_homomorphism]) THEN ASM SET_TAC[]];
hol-light-20190729/Library/ringtheory.ml-4969-    DISCH_THEN(X_CHOOSE_THEN `k:B->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-5002-      ASM_REWRITE_TAC[] THEN DISCH_THEN MATCH_MP_TAC THEN
hol-light-20190729/Library/ringtheory.ml:5003:      RULE_ASSUM_TAC(REWRITE_RULE[ring_homomorphism]) THEN ASM SET_TAC[]];
hol-light-20190729/Library/ringtheory.ml-5004-    DISCH_THEN(X_CHOOSE_THEN `k:B->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-5021-   [RULE_ASSUM_TAC(REWRITE_RULE[ring_isomorphism; ring_isomorphisms]) THEN
hol-light-20190729/Library/ringtheory.ml:5022:    ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-5023-    MATCH_MP_TAC RING_IDEAL_HOMOMORPHIC_PREIMAGE THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-5103-   [FIRST_ASSUM(MP_TAC o MATCH_MP RING_ISOMORPHISM_IMP_HOMOMORPHISM) THEN
hol-light-20190729/Library/ringtheory.ml:5104:    REWRITE_TAC[ring_homomorphism] THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-5105-    ASM_MESON_TAC[RING_ZERODIVISOR_ISOMORPHIC_IMAGE_EQ]]);;
##############################################
hol-light-20190729/Library/ringtheory.ml-5685-    DISCH_THEN(MP_TAC o SPEC `f:K->A`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Library/ringtheory.ml:5686:    ASM SET_TAC[]] THEN
hol-light-20190729/Library/ringtheory.ml-5687-  REWRITE_TAC[IN_IMAGE; RIGHT_IMP_EXISTS_THM; SKOLEM_THM] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-5712-    CONJ_TAC THENL
hol-light-20190729/Library/ringtheory.ml:5713:     [FIRST_X_ASSUM(MP_TAC o MATCH_MP RING_IDEAL_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-5714-      REWRITE_TAC[PRODUCT_RING; RESTRICTION_IN_CARTESIAN_PRODUCT] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-5725-    ASM_REWRITE_TAC[] THENL
hol-light-20190729/Library/ringtheory.ml:5726:     [RULE_ASSUM_TAC(REWRITE_RULE[trivial_ring]) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-5727-      ASM_MESON_TAC[RING_MUL_RZERO]];
##############################################
hol-light-20190729/Library/ringtheory.ml-5812-    RULE_ASSUM_TAC(REWRITE_RULE[PRODUCT_RING; IN_CARTESIAN_PRODUCT]) THEN
hol-light-20190729/Library/ringtheory.ml:5813:    ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-5814-    REWRITE_TAC[IMP_CONJ; LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-6190-      FIRST_ASSUM(MP_TAC o MATCH_MP RING_IDEAL_IMP_SUBSET) THEN
hol-light-20190729/Library/ringtheory.ml:6191:      ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Library/ringtheory.ml-6192-       [SUBSET; IN_RING_IDEAL_ADD; IN_RING_IDEAL_LMUL; RING_ADD_LDISTRIB;
##############################################
hol-light-20190729/Library/ringtheory.ml-6194-      ASM_SIMP_TAC[RING_ADD; RING_ADD_RDISTRIB] THEN
hol-light-20190729/Library/ringtheory.ml:6195:      ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Library/ringtheory.ml-6196-       [GSYM RING_ADD_ASSOC; RING_MUL; RING_ADD];
##############################################
hol-light-20190729/Library/ringtheory.ml-6324-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Library/ringtheory.ml:6325:  ASM_SIMP_TAC[QUOTIENT_RING] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-6326-
##############################################
hol-light-20190729/Library/ringtheory.ml-6342-    REWRITE_TAC[ring_image] THEN
hol-light-20190729/Library/ringtheory.ml:6343:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Library/ringtheory.ml-6344-    SIMP_TAC[IMP_CONJ; RIGHT_FORALL_IMP_THM; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-6484-  MATCH_MP_TAC RING_COSET_EQ_IDEAL THEN
hol-light-20190729/Library/ringtheory.ml:6485:  RULE_ASSUM_TAC(REWRITE_RULE[ring_epimorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-6486-
##############################################
hol-light-20190729/Library/ringtheory.ml-6830-    EXISTS_TAC `\k. if k = i then j else (h:K->L) k` THEN
hol-light-20190729/Library/ringtheory.ml:6831:    ASM SET_TAC[]] THEN
hol-light-20190729/Library/ringtheory.ml-6832-  SUBGOAL_THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-6849-    SUBGOAL_THEN `t = (j:L) INSERT u` SUBST1_TAC THENL
hol-light-20190729/Library/ringtheory.ml:6850:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-6851-    EXPAND_TAC "u" THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-6882-   (REWRITE_RULE[ring_associates; ring_prime; ring_irreducible]) THEN
hol-light-20190729/Library/ringtheory.ml:6883:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-6884-
##############################################
hol-light-20190729/Library/ringtheory.ml-6928-    RULE_ASSUM_TAC(REWRITE_RULE[ring_prime; ring_irreducible]) THEN
hol-light-20190729/Library/ringtheory.ml:6929:    ASM SET_TAC[]] THEN
hol-light-20190729/Library/ringtheory.ml-6930-  TRANS_TAC RING_ASSOCIATES_TRANS
##############################################
hol-light-20190729/Library/ringtheory.ml-6978-  W(MP_TAC o PART_MATCH (lhand o rand) RING_PRODUCT_IMAGE o rand o snd) THEN
hol-light-20190729/Library/ringtheory.ml:6979:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-6980-  MATCH_MP_TAC RING_ASSOCIATES_PRODUCT THEN ASM_REWRITE_TAC[o_THM]);;
##############################################
hol-light-20190729/Library/ringtheory.ml-6998-   [RING_ASSOCIATES_SYM] THEN
hol-light-20190729/Library/ringtheory.ml:6999:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-7000-
##############################################
hol-light-20190729/Library/ringtheory.ml-7037-    MATCH_MP_TAC CARD_IMAGE_INJ THEN ASM_MESON_TAC[];
hol-light-20190729/Library/ringtheory.ml:7038:    MATCH_MP_TAC CARD_PSUBSET THEN ASM SET_TAC[]]);;
hol-light-20190729/Library/ringtheory.ml-7039-
##############################################
hol-light-20190729/Library/ringtheory.ml-7323-    REWRITE_TAC[RING_IDEAL_0] THEN
hol-light-20190729/Library/ringtheory.ml:7324:    MP_TAC(ISPEC `r:A ring` RING_0) THEN ASM SET_TAC[]]);;
hol-light-20190729/Library/ringtheory.ml-7325-
##############################################
hol-light-20190729/Library/ringtheory.ml-7351-  REWRITE_TAC[PROPER_IDEAL; IN_ELIM_THM; RING_1] THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Library/ringtheory.ml:7352:   [MATCH_MP_TAC RING_IDEAL_HOMOMORPHIC_PREIMAGE THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-7353-    ASM_MESON_TAC[RING_HOMOMORPHISM_1]]);;
##############################################
hol-light-20190729/Library/ringtheory.ml-7380-  RULE_ASSUM_TAC(REWRITE_RULE[ring_isomorphism; ring_isomorphisms]) THEN
hol-light-20190729/Library/ringtheory.ml:7381:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-7382-
##############################################
hol-light-20190729/Library/ringtheory.ml-7387-  REWRITE_TAC[prime_ideal; IN_ELIM_THM] THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Library/ringtheory.ml:7388:   [MATCH_MP_TAC PROPER_IDEAL_HOMOMORPHIC_PREIMAGE THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-7389-    ASM_REWRITE_TAC[] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Library/ringtheory.ml:7390:    RULE_ASSUM_TAC(REWRITE_RULE[ring_homomorphism]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Library/ringtheory.ml-7391-
##############################################
hol-light-20190729/Library/ringtheory.ml-7424-   [ASM_REWRITE_TAC[MEMBER_NOT_EMPTY; PROPER_IDEAL] THEN
hol-light-20190729/Library/ringtheory.ml:7425:    SIMP_TAC[RING_IDEAL_UNIONS] THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-7426-    REWRITE_TAC[maximal_ideal; PROPER_IDEAL] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-7499-  EXISTS_TAC `{ring_1 r:A}` THEN ASM_REWRITE_TAC[RING_MULYSYS_1] THEN
hol-light-20190729/Library/ringtheory.ml:7500:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-7501-
##############################################
hol-light-20190729/Library/ringtheory.ml-7561-    MATCH_MP_TAC MAXIMAL_EXCLUDING_IMP_PRIME_IDEAL THEN
hol-light-20190729/Library/ringtheory.ml:7562:    EXISTS_TAC `s:A->bool` THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Library/ringtheory.ml-7563-
##############################################
hol-light-20190729/Library/ringtheory.ml-7815-     [MATCH_MP_TAC SUBSET_ANTISYM; ASM_MESON_TAC[principal_ideal]] THEN
hol-light-20190729/Library/ringtheory.ml:7816:    ASM_SIMP_TAC[IDEAL_GENERATED_MINIMAL_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-7817-    REWRITE_TAC[NOT_EXISTS_THM] THEN X_GEN_TAC `k:A->bool` THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-7988-                   RING_ADD; RING_MUL; RING_NEG] THEN
hol-light-20190729/Library/ringtheory.ml:7989:      ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Library/ringtheory.ml-7990-       [RING_ADD_ASSOC; RING_MUL; RING_NEG; RING_ADD; RING_ADD_RNEG]]]);;
##############################################
hol-light-20190729/Library/ringtheory.ml-8020-  RULE_ASSUM_TAC(REWRITE_RULE[ring_isomorphism; ring_isomorphisms]) THEN
hol-light-20190729/Library/ringtheory.ml:8021:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-8022-
##############################################
hol-light-20190729/Library/ringtheory.ml-8062-  RULE_ASSUM_TAC(REWRITE_RULE[ring_isomorphism; ring_isomorphisms]) THEN
hol-light-20190729/Library/ringtheory.ml:8063:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-8064-
##############################################
hol-light-20190729/Library/ringtheory.ml-8085-    EXISTS_TAC `(f:A->B) a` THEN CONJ_TAC THENL
hol-light-20190729/Library/ringtheory.ml:8086:     [RULE_ASSUM_TAC(REWRITE_RULE[RING_ISOMORPHISM]) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-8087-      ONCE_REWRITE_TAC[SET_RULE `{f a} = IMAGE f {a}`]] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-8091-    DISCH_THEN(K ALL_TAC) THEN
hol-light-20190729/Library/ringtheory.ml:8092:    FIRST_ASSUM(MP_TAC o MATCH_MP RING_IDEAL_IMP_SUBSET) THEN ASM SET_TAC[]) in
hol-light-20190729/Library/ringtheory.ml-8093-  REPEAT STRIP_TAC THEN EQ_TAC THEN MATCH_MP_TAC lemma THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-8426-        FIRST_X_ASSUM(MP_TAC o MATCH_MP PRIME_IDEAL_IMP_SUBSET) THEN
hol-light-20190729/Library/ringtheory.ml:8427:        ASM SET_TAC[]];
hol-light-20190729/Library/ringtheory.ml-8428-      REWRITE_TAC[IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-8523-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [prime_ideal]) THEN
hol-light-20190729/Library/ringtheory.ml:8524:      ASM_REWRITE_TAC[PROPER_IDEAL_UNIT; prime_ideal] THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-8525-      REWRITE_TAC[RIGHT_IMP_FORALL_THM; IMP_IMP; GSYM CONJ_ASSOC] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-8551-      FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [prime_ideal]) THEN
hol-light-20190729/Library/ringtheory.ml:8552:      REWRITE_TAC[PROPER_IDEAL_UNIT; ring_ideal] THEN ASM SET_TAC[]];
hol-light-20190729/Library/ringtheory.ml-8553-    ALL_TAC] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-8785-     [MP_TAC(ARITH_RULE `1 <= SUC n_c /\ SUC n_c <= SUC n_c`); ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml:8786:    ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-8787-    FIRST_X_ASSUM(K ALL_TAC o check (is_exists o concl))] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-8833-      FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Library/ringtheory.ml:8834:      RULE_ASSUM_TAC(REWRITE_RULE[numseg]) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-8835-      ALL_TAC] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-8840-    REWRITE_TAC[FINITE_NUMSEG; SING_SUBSET; IN_NUMSEG] THEN
hol-light-20190729/Library/ringtheory.ml:8841:    RULE_ASSUM_TAC(REWRITE_RULE[numseg]) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-8842-    DISJ2_TAC THEN TRANS_TAC RING_DIVIDES_TRANS `(p_ab:num->A) k` THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-8857-        ==> 1 <= k - a /\ k - a <= b`) THEN
hol-light-20190729/Library/ringtheory.ml:8858:      RULE_ASSUM_TAC(REWRITE_RULE[numseg]) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-8859-      ALL_TAC] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-8867-        ==> 1 <= k - a /\ k - a <= b`) THEN
hol-light-20190729/Library/ringtheory.ml:8868:    RULE_ASSUM_TAC(REWRITE_RULE[numseg]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Library/ringtheory.ml-8869-
##############################################
hol-light-20190729/Library/ringtheory.ml-8993-  ASM_SIMP_TAC[IDEAL_GENERATED_MINIMAL_EQ; PRIME_IMP_RING_IDEAL] THEN
hol-light-20190729/Library/ringtheory.ml:8994:  ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-8995-
##############################################
hol-light-20190729/Library/ringtheory.ml-9046-  REWRITE_TAC[EXISTS_IN_IMAGE; EXISTS_IN_GSPEC] THEN
hol-light-20190729/Library/ringtheory.ml:9047:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-9048-  ONCE_REWRITE_TAC[TAUT `p ==> ~q <=> q ==> ~p`] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-9140-  MATCH_MP_TAC(TAUT `p /\ (q ==> r) ==> (p <=> q) ==> r`) THEN CONJ_TAC THENL
hol-light-20190729/Library/ringtheory.ml:9141:   [MP_TAC(ISPECL[`r:A ring`; `j:A->bool`] IN_RING_IDEAL_0) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-9142-    ONCE_REWRITE_TAC[TAUT `p ==> ~q <=> q ==> ~p`]] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-9147-  ASM_SIMP_TAC[GSYM SUBSET_ANTISYM_EQ; IDEAL_GENERATED_MINIMAL_EQ] THEN
hol-light-20190729/Library/ringtheory.ml:9148:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[SUBSET]] THEN
hol-light-20190729/Library/ringtheory.ml-9149-  X_GEN_TAC `a:A` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-9191-  REWRITE_TAC[EXISTS_IN_IMAGE] THEN
hol-light-20190729/Library/ringtheory.ml:9192:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-9193-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `a:A` THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-9226-   MINIMAL)))) THEN
hol-light-20190729/Library/ringtheory.ml:9227:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[]] THEN
hol-light-20190729/Library/ringtheory.ml-9228-  SPEC_TAC
##############################################
hol-light-20190729/Library/ringtheory.ml-9241-   MINIMAL)))) THEN
hol-light-20190729/Library/ringtheory.ml:9242:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[]] THEN
hol-light-20190729/Library/ringtheory.ml-9243-  ABBREV_TAC
##############################################
hol-light-20190729/Library/ringtheory.ml-9306-    CONJ_TAC THENL
hol-light-20190729/Library/ringtheory.ml:9307:     [RULE_ASSUM_TAC(REWRITE_RULE[ring_ideal]) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-9308-      REWRITE_TAC[SET_RULE `~(s SUBSET t) <=> ?x. x IN s /\ ~(x IN t)`]] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-9315-    MATCH_MP_TAC IDEAL_GENERATED_INC_GEN THEN
hol-light-20190729/Library/ringtheory.ml:9316:    RULE_ASSUM_TAC(REWRITE_RULE[ring_ideal]) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-9317-    REWRITE_TAC[noetherian_ring; WF_DCHAIN; FORALL_AND_THM] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-9327-        ==> !m n. s m SUBSET s n \/ s n SUBSET s m`) THEN
hol-light-20190729/Library/ringtheory.ml:9328:      MATCH_MP_TAC TRANSITIVE_STEPWISE_LE THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-9329-      REWRITE_TAC[finitely_generated_ideal; NOT_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-9339-        ==> !m n. s m SUBSET s n \/ s n SUBSET s m`) THEN
hol-light-20190729/Library/ringtheory.ml:9340:      MATCH_MP_TAC TRANSITIVE_STEPWISE_LE THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-9341-      DISCH_THEN(X_CHOOSE_TAC `m:num`) THEN
hol-light-20190729/Library/ringtheory.ml-9342-      SUBGOAL_THEN `(s:num->A->bool) (SUC m) SUBSET s(m)`
hol-light-20190729/Library/ringtheory.ml:9343:      MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Library/ringtheory.ml-9344-      TRANS_TAC SUBSET_TRANS `ideal_generated r k:A->bool` THEN
hol-light-20190729/Library/ringtheory.ml:9345:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-9346-      MATCH_MP_TAC IDEAL_GENERATED_MINIMAL THEN ASM_REWRITE_TAC[]]]);;
##############################################
hol-light-20190729/Library/ringtheory.ml-9360-  GEN_TAC THEN REWRITE_TAC[NOETHERIAN_RING; WF] THEN
hol-light-20190729/Library/ringtheory.ml:9361:  AP_TERM_TAC THEN ABS_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-9362-
##############################################
hol-light-20190729/Library/ringtheory.ml-9376-  CONJ_TAC THENL
hol-light-20190729/Library/ringtheory.ml:9377:   [RULE_ASSUM_TAC(REWRITE_RULE[ring_epimorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-9378-    ASM_MESON_TAC[IDEAL_GENERATED_BY_EPIMORPHIC_IMAGE]]);;
##############################################
hol-light-20190729/Library/ringtheory.ml-9505-        MATCH_MP_TAC FINITE_SUBSET THEN EXISTS_TAC `(a:K) INSERT k'` THEN
hol-light-20190729/Library/ringtheory.ml:9506:        SIMP_TAC[RESTRICTION; FINITE_INSERT] THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-9507-        EXISTS_TAC `a:K` THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-9531-    DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
hol-light-20190729/Library/ringtheory.ml:9532:    ASM_REWRITE_TAC[CONTRAPOS_THM; trivial_ring] THEN ASM SET_TAC[];
hol-light-20190729/Library/ringtheory.ml-9533-    REWRITE_TAC[PRODUCT_RING; SUBSET_CARTESIAN_PRODUCT] THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-10193-  MATCH_MP_TAC(TAUT `p /\ (p ==> q) ==> p /\ q`) THEN CONJ_TAC THENL
hol-light-20190729/Library/ringtheory.ml:10194:   [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-10195-  ASM_SIMP_TAC[GSYM SUBSET_ANTISYM_EQ; IDEAL_GENERATED_MINIMAL_EQ] THEN
hol-light-20190729/Library/ringtheory.ml:10196:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[SUBSET]] THEN
hol-light-20190729/Library/ringtheory.ml-10197-  X_GEN_TAC `b:A` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-10199-  SUBGOAL_THEN `(b:A) IN ring_carrier r` ASSUME_TAC THENL
hol-light-20190729/Library/ringtheory.ml:10200:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/ringtheory.ml-10201-  FIRST_X_ASSUM(MP_TAC o SPEC `ring_gcd r (a,b):A`) THEN
##############################################
hol-light-20190729/Library/ringtheory.ml-10543-        RING_CARRIER_SUBRING_GENERATED_SUBSET) THEN
hol-light-20190729/Library/ringtheory.ml:10544:  REWRITE_TAC[CONJUNCT2 SUBRING_GENERATED] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/ringtheory.ml-10545-
##############################################
hol-light-20190729/Library/wo.ml-453-  MATCH_MP_TAC ORDINAL_FL_UNIQUE THEN
hol-light-20190729/Library/wo.ml:454:  FIRST_ASSUM(MP_TAC o MATCH_MP INSEG_SUBSET_FL) THEN ASM SET_TAC[]);;
hol-light-20190729/Library/wo.ml-455-
##############################################
hol-light-20190729/Library/wo.ml-747-    REWRITE_TAC[less] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Library/wo.ml:748:    AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Library/wo.ml-749-    MATCH_MP_TAC MONO_EXISTS] THEN
##############################################
hol-light-20190729/Library/wo.ml-1052-  REPEAT STRIP_TAC THEN MATCH_MP_TAC ZL_SUBSETS_UNIONS_NONEMPTY THEN
hol-light-20190729/Library/wo.ml:1053:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/wo.ml-1054-  X_GEN_TAC `c:(A->bool)->bool` THEN
##############################################
hol-light-20190729/Library/wo.ml-1058-   `!d. FINITE d ==> d SUBSET UNIONS c ==> ?e:A->bool. e IN c /\ d SUBSET e`
hol-light-20190729/Library/wo.ml:1059:  MP_TAC THENL [ALL_TAC; MATCH_MP_TAC MONO_FORALL THEN ASM SET_TAC[]] THEN
hol-light-20190729/Library/wo.ml-1060-  MATCH_MP_TAC FINITE_INDUCT_STRONG THEN
hol-light-20190729/Library/wo.ml:1061:  REWRITE_TAC[INSERT_SUBSET] THEN ASM SET_TAC[]);;
hol-light-20190729/Library/wo.ml-1062-
##############################################
hol-light-20190729/Library/wo.ml-1192-        MATCH_MP ORDINAL_IMP_WOSET) THEN
hol-light-20190729/Library/wo.ml:1193:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/wo.ml-1194-    ONCE_REWRITE_TAC[MESON[] `(?w. P w) <=> ~(!w. ~P w)`] THEN
##############################################
hol-light-20190729/Library/wo.ml-1225-    CONJ_TAC THENL
hol-light-20190729/Library/wo.ml:1226:     [RULE_ASSUM_TAC(REWRITE_RULE[toset]) THEN ASM SET_TAC[];
hol-light-20190729/Library/wo.ml-1227-      DISCH_THEN(ASSUME_TAC o MATCH_MP (MESON[]
##############################################
hol-light-20190729/Library/wo.ml-1255-    ASM_REWRITE_TAC[] THEN REWRITE_TAC[EXISTS_IN_IMAGE] THEN
hol-light-20190729/Library/wo.ml:1256:    ASM SET_TAC[]] THEN
hol-light-20190729/Library/wo.ml-1257-  FIRST_ASSUM(STRIP_ASSUME_TAC o GEN_REWRITE_RULE I [toset]) THEN
##############################################
hol-light-20190729/Library/wo.ml-1260-  REWRITE_TAC[CONJ_ASSOC] THEN
hol-light-20190729/Library/wo.ml:1261:  CONJ_TAC THENL [ASM SET_TAC[]; SIMP_TAC[]] THEN
hol-light-20190729/Library/wo.ml-1262-  X_GEN_TAC `P:A->bool` THEN REWRITE_TAC[] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Library/wo.ml-1266-    `\x:A->bool. (P:A->bool) (f x)` o last o CONJUNCTS) THEN
hol-light-20190729/Library/wo.ml:1267:  REWRITE_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Library/wo.ml-1268-  DISCH_THEN(X_CHOOSE_THEN `z:A->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Library/wo.ml-1277-   [FIRST_X_ASSUM MATCH_MP_TAC THEN FIRST_ASSUM ACCEPT_TAC;
hol-light-20190729/Library/wo.ml:1278:    ASM SET_TAC[]]);;
##############################################
hol-light-20190729/Logic/fole.ml-327-      REWRITE_TAC[holds; IN] THEN
hol-light-20190729/Logic/fole.ml:328:      ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Logic/fole.ml-329-          [IN; terms_RULES; VALUATION_VALMOD];
##############################################
hol-light-20190729/Logic/given.ml-1780-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Logic/given.ml:1781:  ASM MESON_TAC[ISARESOLVENT_CLAUSE; subsumes_TRANS]);;
hol-light-20190729/Logic/given.ml-1782-
##############################################
hol-light-20190729/Logic/givensem.ml-848-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Logic/givensem.ml:849:  ASM MESON_TAC[ISARESOLVENT_SEM_CLAUSE; subsumes_TRANS]);;
hol-light-20190729/Logic/givensem.ml-850-
##############################################
hol-light-20190729/Logic/linear.ml-40-          ==> !c. presproof hyps c <=>
hol-light-20190729/Logic/linear.ml:41:                        ?asm. asm SUBSET hyps /\ ppresproof asm c`,
hol-light-20190729/Logic/linear.ml-42-  REPEAT STRIP_TAC THEN EQ_TAC THENL
##############################################
hol-light-20190729/Logic/linear.ml-59-let PPRESPROOF_CLAUSE = prove
hol-light-20190729/Logic/linear.ml:60: (`!asm cl. ppresproof asm cl ==> clause cl /\ (!c. c IN asm ==> clause c)`,
hol-light-20190729/Logic/linear.ml-61-  MATCH_MP_TAC ppresproof_INDUCT THEN SIMP_TAC[IN_INSERT; NOT_IN_EMPTY] THEN
##############################################
hol-light-20190729/Logic/linear.ml-68-let PPRESPROOF_CONSEQUENCE = prove
hol-light-20190729/Logic/linear.ml:69: (`!asm cl. ppresproof asm cl
hol-light-20190729/Logic/linear.ml-70-            ==> !d. d psatisfies (IMAGE interp asm) ==> pholds d (interp cl)`,
hol-light-20190729/Logic/linear.ml-71-  SUBGOAL_THEN
hol-light-20190729/Logic/linear.ml:72:   `!asm cl. ppresproof asm cl
hol-light-20190729/Logic/linear.ml:73:            ==> !d. (!c. c IN asm ==> ?p. p IN c /\ pholds d p)
hol-light-20190729/Logic/linear.ml-74-                    ==> ?p. p IN cl /\ pholds d p`
##############################################
hol-light-20190729/Logic/linear.ml-78-    MATCH_MP_TAC MONO_FORALL THEN GEN_TAC THEN
hol-light-20190729/Logic/linear.ml:79:    ASM_CASES_TAC `ppresproof asm cl` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Logic/linear.ml-80-    REWRITE_TAC[psatisfies] THEN MATCH_MP_TAC MONO_FORALL THEN GEN_TAC THEN
##############################################
hol-light-20190729/Logic/linear.ml-102-let PPRESPROOF_SOUND = prove
hol-light-20190729/Logic/linear.ml:103: (`!asm. ppresproof asm {} ==> ~(psatisfiable (IMAGE interp asm))`,
hol-light-20190729/Logic/linear.ml-104-  GEN_TAC THEN DISCH_THEN(MP_TAC o MATCH_MP PPRESPROOF_CONSEQUENCE) THEN
##############################################
hol-light-20190729/Logic/linear.ml-109-let PPRESPROOF_ALLNEGATIVE = prove
hol-light-20190729/Logic/linear.ml:110: (`!asm. ppresproof asm {} ==> ?c. c IN asm /\ !p. p IN c ==> negative p`,
hol-light-20190729/Logic/linear.ml-111-  GEN_TAC THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Logic/linear.ml-246-let SYMMETRY_LEMMA_1 = prove
hol-light-20190729/Logic/linear.ml:247:  (`(!q basm B casm C c.
hol-light-20190729/Logic/linear.ml-248-        literal q
hol-light-20190729/Logic/linear.ml:249:        ==> (P q basm B casm C c = P (~~q) casm C basm B c)) /\
hol-light-20190729/Logic/linear.ml:250:    (!q basm B casm C. literal q
hol-light-20190729/Logic/linear.ml:251:        ==> (Q q basm B casm C = Q (~~q) casm C basm B)) /\
hol-light-20190729/Logic/linear.ml:252:    (!q basm B casm C.
hol-light-20190729/Logic/linear.ml:253:        Q q basm B casm C
hol-light-20190729/Logic/linear.ml:254:        ==> literal q ==> !c. c IN basm ==> P q basm B casm C c)
hol-light-20190729/Logic/linear.ml:255:    ==> !q basm B casm C.
hol-light-20190729/Logic/linear.ml:256:        Q q basm B casm C
hol-light-20190729/Logic/linear.ml:257:        ==> literal q ==> !c. c IN basm UNION casm ==> P q basm B casm C c`,
hol-light-20190729/Logic/linear.ml-258-  REWRITE_TAC[IN_UNION] THEN MESON_TAC[NEGATE_LITERAL; NEGATE_NEGATE]);;
##############################################
hol-light-20190729/Logic/linear.ml-260-let SYMMETRY_LEMMA_2 = prove
hol-light-20190729/Logic/linear.ml:261:  (`(!p q basm B casm C main aasm A.
hol-light-20190729/Logic/linear.ml-262-        literal q
hol-light-20190729/Logic/linear.ml:263:        ==> (P p q basm B casm C main aasm A =
hol-light-20190729/Logic/linear.ml:264:             P p (~~q) casm C basm B main aasm A)) /\
hol-light-20190729/Logic/linear.ml:265:    (!p q basm B casm C main aasm A.
hol-light-20190729/Logic/linear.ml:266:        ~~p IN B ==> literal q ==> P p q basm B casm C main aasm A)
hol-light-20190729/Logic/linear.ml:267:    ==> !p q basm B casm C main aasm A.
hol-light-20190729/Logic/linear.ml-268-            ~~p IN B \/ ~~p IN C ==> literal q
hol-light-20190729/Logic/linear.ml:269:            ==> P p q basm B casm C main aasm A`,
hol-light-20190729/Logic/linear.ml-270-  REWRITE_TAC[IN_UNION] THEN MESON_TAC[NEGATE_LITERAL; NEGATE_NEGATE]);;
##############################################
hol-light-20190729/Logic/linear.ml-272-let LINEARIZATION = prove
hol-light-20190729/Logic/linear.ml:273: (`!asm cl. ppresproof asm cl
hol-light-20190729/Logic/linear.ml-274-            ==> !c. c IN asm
hol-light-20190729/Logic/linear.ml:275:                    ==> ?cl' lis. lpresproof asm (CONS cl' lis) /\
hol-light-20190729/Logic/linear.ml-276-                                  cl' SUBSET cl /\
##############################################
hol-light-20190729/Logic/linear.ml-278-  SUBGOAL_THEN
hol-light-20190729/Logic/linear.ml:279:   `!asm cl. ppresproof asm cl
hol-light-20190729/Logic/linear.ml:280:             ==> (!c. c IN asm ==> clause c) /\ clause cl /\
hol-light-20190729/Logic/linear.ml-281-                 (!c. c IN asm
hol-light-20190729/Logic/linear.ml:282:                      ==> ?cl' lis. lpresproof asm (CONS cl' lis) /\
hol-light-20190729/Logic/linear.ml-283-                                    cl' SUBSET cl /\
##############################################
hol-light-20190729/Logic/linear.ml-288-                        ==> ?c' lis'. suffix (CONS c lis) (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml:289:                                      lpresproof (asm UNION asm')
hol-light-20190729/Logic/linear.ml-290-                                                 (CONS c' lis') /\
##############################################
hol-light-20190729/Logic/linear.ml-329-           ==> (?cl' lis.
hol-light-20190729/Logic/linear.ml:330:                    lpresproof basm (CONS cl' lis) /\
hol-light-20190729/Logic/linear.ml-331-                    cl' SUBSET B /\
##############################################
hol-light-20190729/Logic/linear.ml-341-                    suffix (CONS c lis) (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml:342:                    lpresproof (casm UNION asm') (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml-343-                    c' SUBSET resolve p c C)` THEN
##############################################
hol-light-20190729/Logic/linear.ml-392-                    suffix (CONS c lis) (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml:393:                    lpresproof (casm UNION asm') (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml-394-                    c' SUBSET resolve p c C)` THEN
##############################################
hol-light-20190729/Logic/linear.ml-417-                    suffix (CONS c lis) (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml:418:                    lpresproof (basm UNION asm') (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml-419-                    c' SUBSET resolve p c B)` THEN
##############################################
hol-light-20190729/Logic/linear.ml-445-                    suffix (CONS c lis) (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml:446:                    lpresproof (basm UNION asm') (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml-447-                    c' SUBSET resolve p c B)` THEN
##############################################
hol-light-20190729/Logic/linear.ml-457-       suffix (CONS A main) (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml:458:       lpresproof ((basm UNION casm) UNION aasm) (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml-459-       c' SUBSET resolve q (resolve p A B) C`
##############################################
hol-light-20190729/Logic/linear.ml-466-                        suffix (CONS c lis) (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml:467:                        lpresproof (casm UNION asm') (CONS c' lis') /\
hol-light-20190729/Logic/linear.ml-468-                        c' SUBSET resolve p c C)` THEN
##############################################
hol-light-20190729/Logic/linear.ml-623-  SUBGOAL_THEN
hol-light-20190729/Logic/linear.ml:624:   `!plis. lpresproof asm plis
hol-light-20190729/Logic/linear.ml-625-           ==> ?lis. lresproof hyps lis /\ ALL2 (instance_of) plis lis`
##############################################
hol-light-20190729/Logic/linear.ml-649-  SUBGOAL_THEN
hol-light-20190729/Logic/linear.ml:650:   `!plis. lpresproof asm plis
hol-light-20190729/Logic/linear.ml-651-           ==> (!c. MEM c plis ==> clause c) /\
##############################################
hol-light-20190729/Logic/linear.ml-656-     [SUBGOAL_THEN `clause cl` (fun th -> ASM_MESON_TAC[MEM; th]) THEN
hol-light-20190729/Logic/linear.ml:657:      UNDISCH_TAC `asm SUBSET {IMAGE (formsubst v) cl | cl,v | cl IN hyps}` THEN
hol-light-20190729/Logic/linear.ml-658-      REWRITE_TAC[SUBSET] THEN DISCH_THEN(MP_TAC o SPEC `cl:form->bool`) THEN
##############################################
hol-light-20190729/Logic/linear.ml-660-      ASM_MESON_TAC[IMAGE_FORMSUBST_CLAUSE]; ALL_TAC] THEN
hol-light-20190729/Logic/linear.ml:661:    UNDISCH_TAC `asm SUBSET {IMAGE (formsubst v) cl | cl,v | cl IN hyps}` THEN
hol-light-20190729/Logic/linear.ml-662-    REWRITE_TAC[SUBSET; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Logic/linear.ml-679-     [ALL_TAC; ASM_MESON_TAC[MEM]] THEN
hol-light-20190729/Logic/linear.ml:680:    UNDISCH_TAC `asm SUBSET {IMAGE (formsubst v) cl | cl,v | cl IN hyps}` THEN
hol-light-20190729/Logic/linear.ml-681-    REWRITE_TAC[SUBSET] THEN DISCH_THEN(MP_TAC o SPEC `B':form->bool`) THEN
##############################################
hol-light-20190729/Logic/linear.ml-697-   [FIRST_X_ASSUM DISJ_CASES_TAC THENL
hol-light-20190729/Logic/linear.ml:698:     [UNDISCH_TAC `asm SUBSET {IMAGE (formsubst v) cl | cl,v | cl IN hyps}` THEN
hol-light-20190729/Logic/linear.ml-699-      REWRITE_TAC[SUBSET] THEN DISCH_THEN(MP_TAC o SPEC `B':form->bool`) THEN
##############################################
hol-light-20190729/Logic/lpo.ml-541-  REPEAT(COND_CASES_TAC THEN ASM_REWRITE_TAC[]) THEN
hol-light-20190729/Logic/lpo.ml:542:  TRY(ASM (GEN_MESON_TAC 0 15 1) [LEX_LENGTH]) THEN DISCH_TAC THEN
hol-light-20190729/Logic/lpo.ml-543-  MATCH_MP_TAC(TAUT `(a1 /\ a2 ==> a3) /\ (b1 ==> b2 ==> b3)
##############################################
hol-light-20190729/Logic/prolog.ml-208-let HOLDS_ITLIST_IMP = prove
hol-light-20190729/Logic/prolog.ml:209: (`!M v asm c.
hol-light-20190729/Logic/prolog.ml:210:        holds M v (ITLIST (-->) asm c) <=>
hol-light-20190729/Logic/prolog.ml:211:        (?p. MEM p asm /\ ~(holds M v p)) \/ holds M v c`,
hol-light-20190729/Logic/prolog.ml-212-  GEN_TAC THEN GEN_TAC THEN ONCE_REWRITE_TAC[SWAP_FORALL_THM] THEN GEN_TAC THEN
##############################################
hol-light-20190729/Logic/prolog.ml-325-  FIRST_ASSUM(MP_TAC o INST_TYPE [`:term`,`:A`] o MATCH_MP HOLDS_HORN) THEN
hol-light-20190729/Logic/prolog.ml:326:  MAP_EVERY ABBREV_TAC [`asm = hypotheses cl`; `c = conclusion cl`] THEN
hol-light-20190729/Logic/prolog.ml-327-  ASM_REWRITE_TAC[] THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Logic/prolog.ml-350-  DISCH_THEN(fun th -> STRIP_TAC THEN MP_TAC th) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Logic/prolog.ml:351:  SUBGOAL_THEN `holds H (v:num->term) (ITLIST (-->) asm c)` MP_TAC THENL
hol-light-20190729/Logic/prolog.ml-352-   [FIRST_ASSUM(fun th -> GEN_REWRITE_TAC I [GSYM th]) THEN
##############################################
hol-light-20190729/Logic/prolog.ml-642-  FIRST_ASSUM(MP_TAC o INST_TYPE [`:term`,`:A`] o MATCH_MP HOLDS_HORN) THEN
hol-light-20190729/Logic/prolog.ml:643:  MAP_EVERY ABBREV_TAC [`asm = hypotheses cl`; `c = conclusion cl`] THEN
hol-light-20190729/Logic/prolog.ml-644-  ASM_REWRITE_TAC[] THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Logic/prolog.ml-671-  DISCH_THEN(fun th -> STRIP_TAC THEN MP_TAC th) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Logic/prolog.ml:672:  SUBGOAL_THEN `holds C (v:num->term) (ITLIST (-->) asm c)` MP_TAC THENL
hol-light-20190729/Logic/prolog.ml-673-   [FIRST_ASSUM(fun th -> GEN_REWRITE_TAC I [GSYM th]) THEN
##############################################
hol-light-20190729/Logic/support.ml-584-let PRESPROOF_SOUND = prove
hol-light-20190729/Logic/support.ml:585: (`!asm. (!c. c IN asm ==> clause c) /\ presproof asm {}
hol-light-20190729/Logic/support.ml-586-         ==> ~psatisfiable (IMAGE interp asm)`,
##############################################
hol-light-20190729/Logic/unif.ml-599-  REPEAT(COND_CASES_TAC THEN ASM_REWRITE_TAC[]) THEN
hol-light-20190729/Logic/unif.ml:600:  TRY(ASM (GEN_MESON_TAC 0 10 1) []) THEN FIRST_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Logic/unif.ml-601-  FIRST_X_ASSUM(X_CHOOSE_THEN `z:num` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Minisat/sat_common_tools.ml-52-    then
hol-light-20190729/Minisat/sat_common_tools.ml:53:      let asm = mk_exists(bvar,ant) in
hol-light-20190729/Minisat/sat_common_tools.ml-54-      let th1 = CHOOSE(bvar,ASSUME asm) (UNDISCH(SPEC bvar tm_thm)) in
hol-light-20190729/Minisat/sat_common_tools.ml:55:      let imp1 = DISCH tm (DISCH asm th1) in
hol-light-20190729/Minisat/sat_common_tools.ml-56-      let cncl = rand(concl imp1) in
##############################################
hol-light-20190729/Minisat/sat_common_tools.ml-67-      else
hol-light-20190729/Minisat/sat_common_tools.ml:68:        let asm = mk_exists(bvar,ant) in
hol-light-20190729/Minisat/sat_common_tools.ml-69-        let tmp = UNDISCH (SPEC bvar tm_thm) in
hol-light-20190729/Minisat/sat_common_tools.ml-70-        let th1 = GEN bvar (CHOOSE(bvar,ASSUME asm) tmp) in
hol-light-20190729/Minisat/sat_common_tools.ml:71:        let imp1 = DISCH tm (DISCH asm th1) in
hol-light-20190729/Minisat/sat_common_tools.ml-72-        let cncl = rand(concl imp1) in
##############################################
hol-light-20190729/Multivariate/canal.ml-1672-  SUBGOAL_THEN `IMAGE (f:complex->complex) s SUBSET t` MP_TAC THENL
hol-light-20190729/Multivariate/canal.ml:1673:   [ASM SET_TAC []; ASM_MESON_TAC [HAS_COMPLEX_DERIVATIVE_WITHIN_SUBSET;
hol-light-20190729/Multivariate/canal.ml-1674-                                   COMPLEX_DIFF_CHAIN_WITHIN]]);;
##############################################
hol-light-20190729/Multivariate/canal.ml-1919-    EXISTS_TAC `ball((f:complex->complex) z,e)`] THEN
hol-light-20190729/Multivariate/canal.ml:1920:  ASM_REWRITE_TAC[BALL_MIN_INTER; INTER_SUBSET] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/canal.ml-1921-
##############################################
hol-light-20190729/Multivariate/canal.ml-1925-  REPEAT STRIP_TAC THEN MATCH_MP_TAC ANALYTIC_ON_COMPOSE THEN
hol-light-20190729/Multivariate/canal.ml:1926:  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC ANALYTIC_ON_SUBSET THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/canal.ml-1927-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-80-  REPEAT STRIP_TAC THEN MATCH_MP_TAC DIFFERENTIABLE_CHAIN_AT THEN
hol-light-20190729/Multivariate/cauchy.ml:81:  CONJ_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-82-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-218-    REWRITE_TAC[open_def] THEN DISCH_THEN(MP_TAC o SPEC `x:real^1`)] THEN
hol-light-20190729/Multivariate/cauchy.ml:219:  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-220-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-251-      MP_TAC(ISPECL [`vec 0:real^1`; `vec 1:real^1`]
hol-light-20190729/Multivariate/cauchy.ml:252:        INTERVAL_OPEN_SUBSET_CLOSED) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-253-      ASM_SIMP_TAC[DIFFERENTIABLE_WITHIN_OPEN; OPEN_DIFF; OPEN_INTERVAL;
##############################################
hol-light-20190729/Multivariate/cauchy.ml-1592-  REWRITE_TAC[GSYM PATH_IMAGE_LINEPATH; path_image] THEN
hol-light-20190729/Multivariate/cauchy.ml:1593:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-1594-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-1609-    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:1610:     [ALL_TAC; ASM SET_TAC[COMPLEX_NORM_0]] THEN
hol-light-20190729/Multivariate/cauchy.ml-1611-    UNDISCH_TAC `(f has_path_integral i) (linepath (a,b))` THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-2466-    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC CONVEX_HULL_SUBSET THEN
hol-light-20190729/Multivariate/cauchy.ml:2467:    ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-2468-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-2700-      SIMP_TAC[CONVEX_INTERIOR; CONVEX_CONVEX_HULL] THEN
hol-light-20190729/Multivariate/cauchy.ml:2701:      ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-2702-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-3117-      REWRITE_TAC[SEGMENT_CONVEX_HULL] THEN
hol-light-20190729/Multivariate/cauchy.ml:3118:      MATCH_MP_TAC HULL_MINIMAL THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-3119-      REWRITE_TAC[COMPLEX_VEC_0] THEN MATCH_MP_TAC(COMPLEX_RING
##############################################
hol-light-20190729/Multivariate/cauchy.ml-3134-      ASM_REWRITE_TAC[] THEN REWRITE_TAC[SEGMENT_CONVEX_HULL] THEN
hol-light-20190729/Multivariate/cauchy.ml:3135:      MATCH_MP_TAC HULL_MINIMAL THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-3136-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-3158-      REWRITE_TAC[SEGMENT_CONVEX_HULL] THEN
hol-light-20190729/Multivariate/cauchy.ml:3159:      MATCH_MP_TAC HULL_MINIMAL THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-3160-      ASM_MESON_TAC[REAL_LET_TRANS; SEGMENT_BOUND]]]);;
##############################################
hol-light-20190729/Multivariate/cauchy.ml-3193-    MATCH_MP_TAC SUBSET_INTERIOR] THEN
hol-light-20190729/Multivariate/cauchy.ml:3194:  MATCH_MP_TAC HULL_MINIMAL THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-3195-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-3288-    EXISTS_TAC `s:complex->bool` THEN
hol-light-20190729/Multivariate/cauchy.ml:3289:    CONJ_TAC THENL [FIRST_X_ASSUM MATCH_MP_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-3290-    REWRITE_TAC[GSYM dist] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-3292-    ASM_MESON_TAC[PIECEWISE_DIFFERENTIABLE_ON_SUBSET];
hol-light-20190729/Multivariate/cauchy.ml:3293:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/cauchy.ml-3294-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-3740-  ASM_SIMP_TAC[OPEN_DELETE; OPEN_UNIV] THEN
hol-light-20190729/Multivariate/cauchy.ml:3741:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-3742-  DISCH_THEN(X_CHOOSE_THEN `d:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-3790-  ASM_SIMP_TAC[OPEN_DELETE; OPEN_UNIV] THEN
hol-light-20190729/Multivariate/cauchy.ml:3791:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-3792-  DISCH_THEN(X_CHOOSE_THEN `e:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-3823-  ASM_SIMP_TAC[OPEN_DELETE; OPEN_UNIV] THEN
hol-light-20190729/Multivariate/cauchy.ml:3824:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-3825-  DISCH_THEN(X_CHOOSE_THEN `e:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-4505-    ASM_REWRITE_TAC[DROP_VEC; REAL_POS] THEN
hol-light-20190729/Multivariate/cauchy.ml:4506:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-4507-    DISCH_THEN(MP_TAC o CONJUNCT2) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-4818-    EXISTS_TAC `(:complex) DIFF path_image g` THEN
hol-light-20190729/Multivariate/cauchy.ml:4819:    ASM_SIMP_TAC[CONTINUOUS_ON_WINDING_NUMBER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-4820-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-4828-   [CONJ_TAC THEN MATCH_MP_TAC INTEGER_WINDING_NUMBER THEN
hol-light-20190729/Multivariate/cauchy.ml:4829:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-4830-    REWRITE_TAC[COMPLEX_INTEGER] THEN STRIP_TAC THEN ASM_REWRITE_TAC[]] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-4878-  ASM_REWRITE_TAC[CONVEX_BALL] THEN
hol-light-20190729/Multivariate/cauchy.ml:4879:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-4880-  REWRITE_TAC[SUBSET; IN_UNIV; IN_DIFF] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-4886-                 DIMINDEX_2; LE_REFL; BOUNDED_PATH_IMAGE] THEN
hol-light-20190729/Multivariate/cauchy.ml:4887:    ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-4888-    MATCH_MP_TAC WINDING_NUMBER_UNIQUE THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/cauchy.ml-4889-    MATCH_MP_TAC(TAUT `a /\ (a ==> b) ==> a /\ b`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:4890:     [ASM SET_TAC[]; DISCH_TAC THEN X_GEN_TAC `e:real` THEN DISCH_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-4891-    MP_TAC(ISPECL [`g:real^1->complex`; `min e (&1)`]
##############################################
hol-light-20190729/Multivariate/cauchy.ml-4928-        OUTSIDE_SUBSET_CONVEX) THEN
hol-light-20190729/Multivariate/cauchy.ml:4929:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-4930-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-4975-    X_GEN_TAC `z:complex` THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:4976:     [ASM SET_TAC[]; ASM_MESON_TAC[WINDING_NUMBER_ZERO_IN_OUTSIDE]];
hol-light-20190729/Multivariate/cauchy.ml-4977-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-4987-  MP_TAC(ISPEC `path_image g :complex->bool` INSIDE_NO_OVERLAP) THEN
hol-light-20190729/Multivariate/cauchy.ml:4988:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-4989-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5367-                   COMPLEX_DIFFERENTIABLE_ID];
hol-light-20190729/Multivariate/cauchy.ml:5368:      ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-5369-    REWRITE_TAC[CONTINUOUS_ON_EQ_CONTINUOUS_WITHIN] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5390-    HAS_PATH_INTEGRAL_WINDING_NUMBER) THEN
hol-light-20190729/Multivariate/cauchy.ml:5391:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-5392-  DISCH_THEN(MP_TAC o SPEC `(f:complex->complex) z` o MATCH_MP
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5399-  SUBGOAL_THEN `~(w:complex = z)` MP_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:5400:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-5401-  ASM_REWRITE_TAC[] THEN CONV_TAC COMPLEX_FIELD);;
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5459-      REWRITE_TAC[path_image; path; IMAGE_o] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:5460:       [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-5461-      MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5464-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/cauchy.ml:5465:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-5466-      DISCH_THEN(X_CHOOSE_THEN `e:real` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5579-  REMOVE_THEN "*" (MP_TAC o SPEC `t:real^1`) THEN
hol-light-20190729/Multivariate/cauchy.ml:5580:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-5581-  DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5609-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/cauchy.ml:5610:    ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-5611-    DISCH_THEN(X_CHOOSE_THEN `p:real^1->complex` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5650-      REWRITE_TAC[path_image; path; IMAGE_o] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:5651:       [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-5652-      MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5655-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/cauchy.ml:5656:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-5657-      DISCH_THEN(X_CHOOSE_THEN `e:real` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5769-  REMOVE_THEN "*" (MP_TAC o SPEC `t:real^1`) THEN
hol-light-20190729/Multivariate/cauchy.ml:5770:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-5771-  DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5799-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/cauchy.ml:5800:    ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-5801-    DISCH_THEN(X_CHOOSE_THEN `p:real^1->complex` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5951-  MATCH_MP_TAC WINDING_NUMBER_HOMOTOPIC_PATHS THEN
hol-light-20190729/Multivariate/cauchy.ml:5952:  MATCH_MP_TAC HOMOTOPIC_PATHS_LINEAR THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-5953-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5962-  MATCH_MP_TAC WINDING_NUMBER_HOMOTOPIC_LOOPS THEN
hol-light-20190729/Multivariate/cauchy.ml:5963:  MATCH_MP_TAC HOMOTOPIC_LOOPS_LINEAR THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-5964-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5973-  MATCH_MP_TAC WINDING_NUMBER_HOMOTOPIC_PATHS THEN
hol-light-20190729/Multivariate/cauchy.ml:5974:  MATCH_MP_TAC HOMOTOPIC_PATHS_NEARBY_EXPLICIT THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-5975-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-5984-  MATCH_MP_TAC WINDING_NUMBER_HOMOTOPIC_LOOPS THEN
hol-light-20190729/Multivariate/cauchy.ml:5985:  MATCH_MP_TAC HOMOTOPIC_LOOPS_NEARBY_EXPLICIT THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-5986-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-6003-    MATCH_MP_TAC HOMOTOPIC_JOIN_SUBPATHS THEN
hol-light-20190729/Multivariate/cauchy.ml:6004:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/cauchy.ml-6005-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-6025-                  PATH_IMAGE_NONEMPTY] THEN
hol-light-20190729/Multivariate/cauchy.ml:6026:     CONJ_TAC THENL [ASM SET_TAC[]; REPEAT STRIP_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-6027-     REWRITE_TAC[ONCE_REWRITE_RULE[DIST_SYM] (GSYM dist)] THEN
hol-light-20190729/Multivariate/cauchy.ml-6028-     MATCH_MP_TAC SETDIST_LE_DIST THEN REWRITE_TAC[path_image] THEN
hol-light-20190729/Multivariate/cauchy.ml:6029:     ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-6030-     MP_TAC(ISPECL [`g:real^1->complex`; `min d e`]
##############################################
hol-light-20190729/Multivariate/cauchy.ml-6067-  ASM_REWRITE_TAC[] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/cauchy.ml:6068:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-6069-  UNDISCH_TAC `winding_number(c1 ++ reversepath c,z) = d` THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-6081-                 INSIDE_NO_OVERLAP) THEN
hol-light-20190729/Multivariate/cauchy.ml:6082:    ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-6083-    ASM_SIMP_TAC[PATHSTART_JOIN; PATHFINISH_JOIN; PATH_IMAGE_JOIN;
##############################################
hol-light-20190729/Multivariate/cauchy.ml-6088-     [ASM_REWRITE_TAC[OUTSIDE_INSIDE; IN_DIFF; IN_UNION; IN_UNIV] THEN
hol-light-20190729/Multivariate/cauchy.ml:6089:      ONCE_REWRITE_TAC[UNION_COMM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-6090-      CONV_TAC COMPLEX_RING]]);;
##############################################
hol-light-20190729/Multivariate/cauchy.ml-6843-    EXISTS_TAC `s:complex->bool` THEN
hol-light-20190729/Multivariate/cauchy.ml:6844:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-6845-    FIRST_X_ASSUM(MATCH_MP_TAC o GEN_REWRITE_RULE I [simply_connected]) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-6850-  MP_TAC(ISPEC `g:real^1->complex` PATHSTART_IN_PATH_IMAGE) THEN
hol-light-20190729/Multivariate/cauchy.ml:6851:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-6852-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-6860-  ASM_REWRITE_TAC[outside; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/cauchy.ml:6861:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-6862-  FIRST_X_ASSUM(MP_TAC o SPEC `z:complex`) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-6864-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] BOUNDED_SUBSET) THEN
hol-light-20190729/Multivariate/cauchy.ml:6865:  MATCH_MP_TAC CONNECTED_COMPONENT_MONO THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-6866-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-7118-   [FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/cauchy.ml:7119:    REWRITE_TAC[path_image] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-7120-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-8144-  MP_TAC(ISPECL [`x:complex`; `w:complex`] ENDS_IN_SEGMENT) THEN
hol-light-20190729/Multivariate/cauchy.ml:8145:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-8146-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-8461-    [MATCH_MP_TAC HULL_MINIMAL THEN REWRITE_TAC[CONVEX_BALL] THEN
hol-light-20190729/Multivariate/cauchy.ml:8462:     ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-8463-     REWRITE_TAC[SUBSET; IN_BALL] THEN REAL_ARITH_TAC]));;
##############################################
hol-light-20190729/Multivariate/cauchy.ml-10016-   `{w | w IN s /\ !n. higher_complex_derivative n f w = Cx(&0)}`) THEN
hol-light-20190729/Multivariate/cauchy.ml:10017:  ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[higher_complex_derivative]] THEN
hol-light-20190729/Multivariate/cauchy.ml-10018-  CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/cauchy.ml-10774-      SIMP_TAC[HOLOMORPHIC_ON_SUB; HOLOMORPHIC_ON_ID; HOLOMORPHIC_ON_CONST;
hol-light-20190729/Multivariate/cauchy.ml:10775:               IN_DELETE; COMPLEX_SUB_0] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-10776-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-10815-  SUBGOAL_THEN `u UNION v = (:complex)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:10816:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-10817-  SUBGOAL_THEN `!y:complex. y IN u ==> (d y) holomorphic_on u` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/cauchy.ml-10854-    EXISTS_TAC `u DELETE (y:complex)` THEN ASM_SIMP_TAC[OPEN_DELETE] THEN
hol-light-20190729/Multivariate/cauchy.ml:10855:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-10856-    MATCH_MP_TAC HOLOMORPHIC_ON_DIV THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-10868-     [MATCH_MP_TAC PATH_INTEGRABLE_HOLOMORPHIC_SIMPLE THEN
hol-light-20190729/Multivariate/cauchy.ml:10869:      EXISTS_TAC `u:complex->bool` THEN ASM_SIMP_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-10870-      MATCH_MP_TAC PATH_INTEGRABLE_EQ THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-10891-        ASM_MESON_TAC[];
hol-light-20190729/Multivariate/cauchy.ml:10892:        ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/cauchy.ml-10893-    MATCH_MP_TAC HAS_PATH_INTEGRAL_EQ THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-10922-     MATCH_MP (REWRITE_RULE[IMP_CONJ_ALT] HAS_PATH_INTEGRAL_EQ)) THEN
hol-light-20190729/Multivariate/cauchy.ml:10923:    REWRITE_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-10924-    MP_TAC(SPECL [`g:real^1->complex`; `z:complex`]
hol-light-20190729/Multivariate/cauchy.ml-10925-      HAS_PATH_INTEGRAL_WINDING_NUMBER) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/cauchy.ml:10926:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-10927-    DISCH_THEN(MP_TAC o MATCH_MP HAS_PATH_INTEGRAL_COMPLEX_RMUL) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-10953-        ASM_SIMP_TAC[COMPACT_PATH_IMAGE; GSYM OPEN_CLOSED] THEN
hol-light-20190729/Multivariate/cauchy.ml:10954:        ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-10955-        DISCH_THEN(X_CHOOSE_THEN `dd:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11169-      MATCH_MP_TAC HOLOMORPHIC_ON_SUBSET THEN
hol-light-20190729/Multivariate/cauchy.ml:11170:      EXISTS_TAC `u:complex->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-11171-      DISCH_THEN(MP_TAC o SPEC `z0:complex`) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11175-  SUBGOAL_THEN `(z0:complex) IN u` ASSUME_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:11176:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-11177-  MP_TAC(ISPEC `u:complex->bool` OPEN_CONTAINS_BALL) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11216-      REWRITE_TAC[SUBSET; FORALL_IN_GSPEC; IN_ELIM_PASTECART_THM] THEN
hol-light-20190729/Multivariate/cauchy.ml:11217:      ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-11218-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11314-      REWRITE_TAC[SUBSET; FORALL_IN_GSPEC; IN_ELIM_PASTECART_THM] THEN
hol-light-20190729/Multivariate/cauchy.ml:11315:      ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-11316-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11388-    SUBGOAL_THEN `(w:complex) IN u` ASSUME_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:11389:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-11390-    ASM_SIMP_TAC[GSYM PATH_INTEGRAL_JOIN; VALID_PATH_LINEPATH;
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11395-    MATCH_MP_TAC HOLOMORPHIC_ON_SUBSET THEN EXISTS_TAC `u:complex->bool` THEN
hol-light-20190729/Multivariate/cauchy.ml:11396:    ASM_SIMP_TAC[] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-11397-  MAP_EVERY X_GEN_TAC [`a:complex`; `b:complex`] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11415-    REWRITE_TAC[SUBSET; FORALL_IN_GSPEC; IN_ELIM_PASTECART_THM] THEN
hol-light-20190729/Multivariate/cauchy.ml:11416:    REWRITE_TAC[PATH_IMAGE_LINEPATH] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/cauchy.ml-11417-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11438-                 HOLOMORPHIC_ON_ID; HOLOMORPHIC_ON_CONST] THEN
hol-light-20190729/Multivariate/cauchy.ml:11439:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-11440-    MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] HAS_PATH_INTEGRAL_EQ) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11454-  MP_TAC(ISPEC `path_image(g:real^1->complex)` OUTSIDE_NO_OVERLAP) THEN
hol-light-20190729/Multivariate/cauchy.ml:11455:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-11456-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11472-    DISCH_THEN MATCH_MP_TAC THEN REWRITE_TAC[HOLOMORPHIC_ON_CONST] THEN
hol-light-20190729/Multivariate/cauchy.ml:11473:    ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-11474-    MATCH_MP_TAC CAUCHY_THEOREM_PRIMITIVE THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11477-    ASM_REWRITE_TAC[IN_UNIV; IN_DELETE; LEFT_EXISTS_AND_THM] THEN
hol-light-20190729/Multivariate/cauchy.ml:11478:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN ASM_CASES_TAC `n = 0` THENL
hol-light-20190729/Multivariate/cauchy.ml-11479-     [EXISTS_TAC `\w:complex. w`;
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11510-    REWRITE_TAC[CPOW_N; COMPLEX_SUB_0] THEN
hol-light-20190729/Multivariate/cauchy.ml:11511:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-11512-    MATCH_MP_TAC CAUCHY_THEOREM_PRIMITIVE THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11957-   [SUBGOAL_THEN `~(ball(z:complex,c) = {})` MP_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:11958:    [ASM SET_TAC[]; ASM_REWRITE_TAC [BALL_EQ_EMPTY; REAL_NOT_LE]];
hol-light-20190729/Multivariate/cauchy.ml-11959-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11986-     ASSERT_TAC `ITER m f holomorphic_on ball(z,r)` THENL
hol-light-20190729/Multivariate/cauchy.ml:11987:     [MATCH_MP_TAC HOLOMORPHIC_ON_SUBSET THEN ASM SET_TAC [];
hol-light-20190729/Multivariate/cauchy.ml-11988-      ASM_REWRITE_TAC[]] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-11990-     [ASM_MESON_TAC [CONTINUOUS_ON_SUBSET; HOLOMORPHIC_ON_IMP_CONTINUOUS_ON];
hol-light-20190729/Multivariate/cauchy.ml:11991:      ASM SET_TAC []]]]);;
hol-light-20190729/Multivariate/cauchy.ml-11992-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-13119-  ANTS_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:13120:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-13121-    ASM_MESON_TAC[HOLOMORPHIC_ON_SUBSET; SUBSET_TRANS];
##############################################
hol-light-20190729/Multivariate/cauchy.ml-13137-   [REWRITE_TAC[FRONTIER_EQ_EMPTY; DE_MORGAN_THM] THEN
hol-light-20190729/Multivariate/cauchy.ml:13138:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-13139-    ASM_MESON_TAC[BOUNDED_SUBSET; NOT_BOUNDED_UNIV];
##############################################
hol-light-20190729/Multivariate/cauchy.ml-13181-  REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/cauchy.ml:13182:  ASM_CASES_TAC `s:complex->bool = {}` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-13183-  FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [GSYM MEMBER_NOT_EMPTY]) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-13298-    RULE_ASSUM_TAC(REWRITE_RULE[frontier]) THEN
hol-light-20190729/Multivariate/cauchy.ml:13299:    MP_TAC(ISPEC `s:complex->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-13300-  MATCH_MP_TAC lemma THEN X_GEN_TAC `D:real` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-13318-    DISCH_THEN(MP_TAC o SPEC `c:complex`) THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:13319:     [RULE_ASSUM_TAC(REWRITE_RULE[frontier]) THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-13320-    DISCH_THEN(MP_TAC o SPEC `C - B:real`) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-13345-      SUBGOAL_THEN `(p:complex) IN interior s` MP_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:13346:       [ASM SET_TAC[]; REWRITE_TAC[IN_INTERIOR_CBALL]] THEN
hol-light-20190729/Multivariate/cauchy.ml-13347-      DISCH_THEN(X_CHOOSE_THEN `r:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-13696-    SUBGOAL_THEN `IMAGE (f:complex->complex) s = {c}` SUBST1_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:13697:     [ASM SET_TAC[]; REWRITE_TAC[FRONTIER_SING]] THEN
hol-light-20190729/Multivariate/cauchy.ml-13698-    SUBGOAL_THEN `~(frontier s:complex->bool = {})` MP_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:13699:     [ALL_TAC; REWRITE_TAC[frontier] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-13700-    ASM_MESON_TAC[FRONTIER_EQ_EMPTY; NOT_BOUNDED_UNIV];
##############################################
hol-light-20190729/Multivariate/cauchy.ml-14438-    ASM_SIMP_TAC[BALL_MIN_INTER; IN_INTER; REAL_LT_MIN] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:14439:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-14440-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/cauchy.ml-14441-        HOLOMORPHIC_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/cauchy.ml:14442:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/cauchy.ml-14443-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-14481-  ASM_REWRITE_TAC[COMPLEX_NORM_NZ] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:14482:   [ASM SET_TAC[]; ASM_REAL_ARITH_TAC; ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-14483-  X_GEN_TAC `w:complex` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-14487-  MATCH_MP_TAC REAL_LE_LMUL THEN SIMP_TAC[REAL_POW_LE; NORM_POS_LE] THEN
hol-light-20190729/Multivariate/cauchy.ml:14488:  FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-14489-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-14539-                        GSYM LIM_AT_INFINITY_COMPLEX_0] THEN
hol-light-20190729/Multivariate/cauchy.ml:14540:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-14541-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-14547-     [SUBGOAL_THEN `~(ball(Cx(&0),r) DELETE Cx(&0) = {})` MP_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:14548:       [ALL_TAC; ASM SET_TAC[COMPLEX_INV_EQ_0]] THEN
hol-light-20190729/Multivariate/cauchy.ml-14549-      REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; COMPLEX_IN_BALL_0; IN_DELETE] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-14572-    SUBGOAL_THEN `inv(z) IN ball(Cx(&0),r) DELETE Cx(&0)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:14573:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-14574-    SUBGOAL_THEN `(f:complex->complex) z = inv(g(inv z))` SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/cauchy.ml-14580-    MATCH_MP_TAC REAL_LE_INV2 THEN
hol-light-20190729/Multivariate/cauchy.ml:14581:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-14582-    MATCH_MP_TAC REAL_LT_MUL THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/cauchy.ml-14583-    MATCH_MP_TAC REAL_POW_LT THEN REWRITE_TAC[COMPLEX_NORM_NZ] THEN
hol-light-20190729/Multivariate/cauchy.ml:14584:    ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-14585-    FIRST_X_ASSUM(MP_TAC o
##############################################
hol-light-20190729/Multivariate/cauchy.ml-14635-      ASM_SIMP_TAC[REAL_LT_IMP_LE; COMPLEX_NORM_NZ];
hol-light-20190729/Multivariate/cauchy.ml:14636:      REWRITE_TAC[COMPLEX_IN_BALL_0; IN_DELETE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-14637-      DISCH_THEN(MP_TAC o SPEC `w:complex`) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-14755-      MP_TAC(ISPECL [`z:complex`; `n:num`] COMPLEX_POW_EQ_0) THEN
hol-light-20190729/Multivariate/cauchy.ml:14756:      ASM_SIMP_TAC[LE_1] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-14757-    SIMP_TAC[OPEN_IN_OPEN_EQ; OPEN_DIFF; OPEN_UNIV; CLOSED_SING] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-15066-              GEN_REWRITE_RULE I [covering_space]) THEN
hol-light-20190729/Multivariate/cauchy.ml:15067:  ANTS_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[OPEN_IN_OPEN_EQ]] THEN
hol-light-20190729/Multivariate/cauchy.ml-15068-  DISCH_THEN(X_CHOOSE_THEN `t:complex->bool` MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-15072-  DISCH_THEN(MP_TAC o snd o EQ_IMP_RULE o SPEC `(g:complex->complex) z`) THEN
hol-light-20190729/Multivariate/cauchy.ml:15073:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_UNIONS]] THEN
hol-light-20190729/Multivariate/cauchy.ml-15074-  DISCH_THEN(X_CHOOSE_THEN `v:complex->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-15078-   [CONJ_TAC THENL [ASM_MESON_TAC[HOLOMORPHIC_ON_SUBSET]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml:15079:    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-15080-    DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-15088-  DISCH_THEN(MP_TAC o SPEC `z:complex` o CONJUNCT2) THEN
hol-light-20190729/Multivariate/cauchy.ml:15089:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[o_THM; IN_ELIM_THM]] THEN
hol-light-20190729/Multivariate/cauchy.ml-15090-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `e:real` THEN
hol-light-20190729/Multivariate/cauchy.ml-15091-  STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/cauchy.ml:15092:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-15093-  MATCH_MP_TAC COMPLEX_DIFFERENTIABLE_COMPOSE_WITHIN THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/cauchy.ml-15098-    EXISTS_TAC `IMAGE (p:complex->complex) v` THEN
hol-light-20190729/Multivariate/cauchy.ml:15099:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/cauchy.ml-15100-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-15161-  [MATCH_MP_TAC CHOICE_DEF THEN MATCH_MP_TAC FRONTIER_NOT_EMPTY THEN
hol-light-20190729/Multivariate/cauchy.ml:15162:   CONJ_TAC THENL [ASM SET_TAC[]; ASM_MESON_TAC[NOT_BOUNDED_UNIV]];
hol-light-20190729/Multivariate/cauchy.ml-15163-   ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-15369-      SUBGOAL_THEN `(a + Cx s * z) IN ball(a:complex,s)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:15370:       [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-15371-      REWRITE_TAC[IN_BALL; NORM_ARITH `dist(a:complex,a + x) = norm x`] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-15447-        EXISTS_TAC `s:complex->bool` THEN
hol-light-20190729/Multivariate/cauchy.ml:15448:        ASM_REWRITE_TAC[] THEN MATCH_MP_TAC HULL_MINIMAL THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-15449-        MATCH_MP_TAC HOLOMORPHIC_ON_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-15454-         [MATCH_MP_TAC SUBSET_INTERIOR THEN MATCH_MP_TAC HULL_MINIMAL THEN
hol-light-20190729/Multivariate/cauchy.ml:15455:          ASM_SIMP_TAC[CONVEX_INTER; CONVEX_HALFSPACE_LE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-15456-          ASM_SIMP_TAC[INTERIOR_INTER; INTERIOR_HALFSPACE_LE;
##############################################
hol-light-20190729/Multivariate/cauchy.ml-15592-    EXISTS_TAC `s:complex->bool`] THEN
hol-light-20190729/Multivariate/cauchy.ml:15593:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-15594-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-16250-  ANTS_TAC THENL [ASM_MESON_TAC[HOLOMORPHIC_ON_SUBSET]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml:16251:  MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/cauchy.ml-16252-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-16881-    DISCH_THEN(MP_TAC o SPEC `z:complex`) THEN
hol-light-20190729/Multivariate/cauchy.ml:16882:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[SUBSET; IN_CBALL]] THEN
hol-light-20190729/Multivariate/cauchy.ml-16883-    DISCH_THEN(X_CHOOSE_THEN `r:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-17740-        X_GEN_TAC `v:complex` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/cauchy.ml:17741:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-17742-        MAP_EVERY EXISTS_TAC [`B:real`; `n:complex->bool`] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-17760-       [GEN_TAC THEN EXPAND_TAC "g" THEN MATCH_MP_TAC HOLOMORPHIC_ON_INV THEN
hol-light-20190729/Multivariate/cauchy.ml:17761:        REWRITE_TAC[ETA_AX] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-17762-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-17767-        REWRITE_TAC[COMPLEX_INV_EQ_0; COMPLEX_INV_EQ_1] THEN
hol-light-20190729/Multivariate/cauchy.ml:17768:        ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-17769-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-17797-      REWRITE_TAC[NOT_IMP] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:17798:       [CONJ_TAC THENL [ASM_MESON_TAC[HOLOMORPHIC_ON_SUBSET]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-17799-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-17828-        ALL_TAC;
hol-light-20190729/Multivariate/cauchy.ml:17829:        ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-17830-        DISCH_THEN(MP_TAC o SPEC `v:complex`) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-17857-      MATCH_MP_TAC REAL_LE_INV2 THEN ASM_REWRITE_TAC[COMPLEX_NORM_NZ] THEN
hol-light-20190729/Multivariate/cauchy.ml:17858:      ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-17859-      X_GEN_TAC `k:complex->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-17861-       `!x:complex. x IN k ==> x IN u` MP_TAC
hol-light-20190729/Multivariate/cauchy.ml:17862:      THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-17863-      EXPAND_TAC "u" THEN REWRITE_TAC[IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-17871-      ASM_SIMP_TAC[FORALL_IN_IMAGE; UNIONS_IMAGE] THEN
hol-light-20190729/Multivariate/cauchy.ml:17872:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-17873-      ONCE_REWRITE_TAC[TAUT `p /\ q /\ r <=> q /\ p /\ r`] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-17880-      ASM_SIMP_TAC[REAL_LE_SUP_FINITE; IMAGE_EQ_EMPTY; FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/cauchy.ml:17881:      REWRITE_TAC[EXISTS_IN_IMAGE] THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/cauchy.ml-17882-  let lemma4 = prove
##############################################
hol-light-20190729/Multivariate/cauchy.ml-17923-      ASM_SIMP_TAC[FRONTIER_COMPLEMENT; FRONTIER_BALL; FRONTIER_CBALL] THEN
hol-light-20190729/Multivariate/cauchy.ml:17924:      ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/cauchy.ml-17925-  let lemma5 = prove
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18160-      ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:18161:       [CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml:18162:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-18163-        MATCH_MP_TAC lemma3 THEN
hol-light-20190729/Multivariate/cauchy.ml-18164-        MAP_EVERY EXISTS_TAC [`p:(complex->complex)->bool`; `w:complex`] THEN
hol-light-20190729/Multivariate/cauchy.ml:18165:        ASM_REWRITE_TAC[FORALL_IN_GSPEC; IN_UNIV] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-18166-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18191-          REWRITE_TAC[COMPLEX_NORM_INV] THEN MATCH_MP_TAC REAL_INV_LE_1 THEN
hol-light-20190729/Multivariate/cauchy.ml:18192:          ASM_REWRITE_TAC[] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-18193-        REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18214-          DISCH_THEN MATCH_MP_TAC THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:18215:           [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-18216-          MATCH_MP_TAC COMPACT_IMP_CLOSED THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18259-            HOLOMORPHIC_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/cauchy.ml:18260:        ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-18261-        MATCH_MP_TAC(TAUT `q /\ (p ==> r) ==> (p <=> q) ==> r`)] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18282-       [MATCH_MP_TAC HOLOMORPHIC_ON_INV THEN REWRITE_TAC[COMPLEX_SUB_0] THEN
hol-light-20190729/Multivariate/cauchy.ml:18283:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-18284-        MATCH_MP_TAC HOLOMORPHIC_ON_SUB THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18287-            HOLOMORPHIC_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/cauchy.ml:18288:        ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-18289-        MATCH_MP_TAC(TAUT `q /\ (p ==> r) ==> (p <=> q) ==> r`)] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18314-          ASM_SIMP_TAC[IN_DELETE; COMPLEX_INV_INV; COMPLEX_INV_EQ_0] THEN
hol-light-20190729/Multivariate/cauchy.ml:18315:          REWRITE_TAC[COMPLEX_SUB_0] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-18316-          SUBST1_TAC(COMPLEX_FIELD
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18333-          ASM_SIMP_TAC[IN_DELETE; COMPLEX_INV_INV; COMPLEX_INV_EQ_0] THEN
hol-light-20190729/Multivariate/cauchy.ml:18334:          REWRITE_TAC[COMPLEX_SUB_0] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-18335-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18348-          ASM_SIMP_TAC[IN_DELETE; COMPLEX_INV_INV; COMPLEX_INV_EQ_0] THEN
hol-light-20190729/Multivariate/cauchy.ml:18349:          REWRITE_TAC[COMPLEX_SUB_0] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-18350-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18359-    ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:18360:     [CONJ_TAC THENL [REWRITE_TAC[FORALL_IN_IMAGE]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-18361-      ASM_SIMP_TAC[o_THM; COMPLEX_FIELD
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18405-      REWRITE_TAC[COMPLEX_SUB_0] THEN
hol-light-20190729/Multivariate/cauchy.ml:18406:      ANTS_TAC THENL [ASM SET_TAC[]; CONV_TAC NORM_ARITH];
hol-light-20190729/Multivariate/cauchy.ml-18407-      DISCH_THEN(X_CHOOSE_THEN `g:complex->complex` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18467-     `{x | x IN n DELETE z /\ (f:complex->complex) x IN {a, b}} = {}`
hol-light-20190729/Multivariate/cauchy.ml:18468:    THENL [EXISTS_TAC `r:real` THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-18469-    EXISTS_TAC `min r (inf (IMAGE (\x. dist(z,x))
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18483-    ASM_REWRITE_TAC[OPEN_BALL; CENTRE_IN_BALL] THEN
hol-light-20190729/Multivariate/cauchy.ml:18484:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-18485-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/cauchy.ml-18486-      HOLOMORPHIC_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/cauchy.ml:18487:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/cauchy.ml-18488-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18780-      SUBGOAL_THEN `?a b:complex. a IN s /\ ~(b IN s)` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:18781:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-18782-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18867-            ASM_SIMP_TAC[HOLOMORPHIC_ON_IMP_CONTINUOUS_ON];
hol-light-20190729/Multivariate/cauchy.ml:18868:            ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-18869-            REWRITE_TAC[FORALL_IN_IMAGE]] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18875-             [ASM_MESON_TAC[HOLOMORPHIC_ON_COMPOSE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml:18876:            ASM_REWRITE_TAC[o_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-18877-            ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18882-          ASM_REWRITE_TAC[] THEN FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
hol-light-20190729/Multivariate/cauchy.ml:18883:           (REWRITE_RULE[IMP_CONJ] HOLOMORPHIC_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-18884-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-18890-        ASM_SIMP_TAC[o_THM; HOLOMORPHIC_ON_COMPOSE] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:18891:         [MATCH_MP_TAC HOLOMORPHIC_ON_COMPOSE; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-18892-        ASM_REWRITE_TAC[] THEN FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
hol-light-20190729/Multivariate/cauchy.ml-18893-           (REWRITE_RULE[IMP_CONJ] HOLOMORPHIC_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/cauchy.ml:18894:        ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/cauchy.ml-18895-    X_GEN_TAC `s:complex->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19124-    ASM_CASES_TAC `IMAGE (f:complex->complex) s = ball(Cx(&0),&1)` THENL
hol-light-20190729/Multivariate/cauchy.ml:19125:     [ASM_SIMP_TAC[] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-19126-    STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19189-          REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; COMPLEX_IN_BALL_0; o_THM] THENL
hol-light-20190729/Multivariate/cauchy.ml:19190:           [ASM_MESON_TAC[]; ASM SET_TAC[]; ASM_MESON_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-19191-          X_GEN_TAC `z:complex` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19389-    MATCH_MP_TAC WINDING_NUMBER_ZERO_IN_OUTSIDE THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/cauchy.ml:19390:    FIRST_ASSUM(MP_TAC o MATCH_MP OUTSIDE_MONO) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-19391-    REWRITE_TAC[components; FORALL_IN_GSPEC; inside] THEN SET_TAC[];
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19453-        REWRITE_TAC[components; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/cauchy.ml:19454:        ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[CONTRAPOS_THM]] THEN
hol-light-20190729/Multivariate/cauchy.ml-19455-        MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] BOUNDED_SUBSET) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19560-                EXPAND_TAC "D" THEN REWRITE_TAC[OPEN_BALL];
hol-light-20190729/Multivariate/cauchy.ml:19561:                ASM SET_TAC[]]];
hol-light-20190729/Multivariate/cauchy.ml-19562-            SIMP_TAC[OPEN_INTER_CLOSURE_EQ_EMPTY] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19670-  SUBGOAL_THEN `v INTER (INTERS {X n:complex->bool | n IN (:num)} DIFF k) = {}`
hol-light-20190729/Multivariate/cauchy.ml:19671:  ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-19672-  MP_TAC(ISPECL
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19687-        OPEN_INTER_CLOSURE_EQ_EMPTY) THEN
hol-light-20190729/Multivariate/cauchy.ml:19688:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/cauchy.ml-19689-  ONCE_REWRITE_TAC[SIMPLE_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19701-     [FIRST_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_NONEMPTY) THEN
hol-light-20190729/Multivariate/cauchy.ml:19702:      ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-19703-      ASM_MESON_TAC[CLOSURE_UNIV; COMPACT_IMP_BOUNDED; NOT_BOUNDED_UNIV]];
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19722-   [REWRITE_TAC[EXTENSION; INTERS_IMAGE; IN_ELIM_THM; IN_INTER] THEN
hol-light-20190729/Multivariate/cauchy.ml:19723:    ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-19724-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19733-    SUBST1_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:19734:     [MP_TAC(ISPEC `v:complex->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-19735-      MATCH_MP_TAC OPEN_IN_OPEN_INTER THEN ASM_REWRITE_TAC[]];
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19738-    EXISTS_TAC `k:complex->bool` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:19739:     [MP_TAC(ISPEC `v:complex->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-19740-      FIRST_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_NONEMPTY) THEN
hol-light-20190729/Multivariate/cauchy.ml:19741:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-19742-    DISCH_THEN(MP_TAC o AP_TERM `bounded:(complex->bool)->bool`) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19831-    ASM_REWRITE_TAC[o_THM] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:19832:     [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-19833-      MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19836-      EXISTS_TAC `(g:complex->complex) o (k:complex->complex)` THEN
hol-light-20190729/Multivariate/cauchy.ml:19837:      REWRITE_TAC[o_THM] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-19838-      MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19945-    REWRITE_TAC[GSYM dist] THEN MATCH_MP_TAC SETDIST_LE_DIST THEN
hol-light-20190729/Multivariate/cauchy.ml:19946:    ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-19947-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-19976-    ASM_SIMP_TAC[] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/cauchy.ml:19977:    REWRITE_TAC[path_image] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-19978-    W(MP_TAC o
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20121-        REWRITE_TAC[path_image; IMAGE_o] THEN
hol-light-20190729/Multivariate/cauchy.ml:20122:        REWRITE_TAC[GSYM path_image] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-20123-      ASM_REWRITE_TAC[PATHSTART_COMPOSE; PATHFINISH_COMPOSE] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20125-      AP_TERM_TAC THEN CONV_TAC SYM_CONV THEN MATCH_MP_TAC CEXP_CLOG THEN
hol-light-20190729/Multivariate/cauchy.ml:20126:      ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/cauchy.ml-20127-  MATCH_MP_TAC CONTINUOUS_ON_COMPONENTS_OPEN THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20336-          segment[t,u] SUBSET ball(t:real^1,d)`
hol-light-20190729/Multivariate/cauchy.ml:20337:        MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-20338-        CONJ_TAC THEN REWRITE_TAC[SEGMENT_CONVEX_HULL] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20356-          (!y. y IN IMAGE (subpath t u p) s ==> cexp(l y) = y - z)`] THEN
hol-light-20190729/Multivariate/cauchy.ml:20357:        ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-20358-        ONCE_REWRITE_TAC[GSYM WINDING_NUMBER_OFFSET] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20631-    ASM_SIMP_TAC[ITER; PATH_JOIN; PATHSTART_JOIN; PATH_IMAGE_JOIN] THEN
hol-light-20190729/Multivariate/cauchy.ml:20632:    ASM SET_TAC[]) in
hol-light-20190729/Multivariate/cauchy.ml-20633-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20641-  ANTS_TAC THENL [ALL_TAC; MESON_TAC[]] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:20642:   [CONV_TAC SYM_CONV THEN MATCH_MP_TAC CEXP_CLOG THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-20643-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20655-  ASSUME_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:20656:   [REWRITE_TAC[PATH_IMAGE_COMPOSE] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-20657-  MP_TAC(ISPECL
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20673-   [FIRST_ASSUM(MP_TAC o MATCH_MP HOMOTOPIC_PATHS_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/cauchy.ml:20674:    REWRITE_TAC[PATH_IMAGE_LINEPATH; SEGMENT_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-20675-    DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20765-  SUBGOAL_THEN `s = IMAGE (g:complex->complex) (ball(Cx(&0),&1))`
hol-light-20190729/Multivariate/cauchy.ml:20766:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-20767-  MATCH_MP_TAC INVARIANCE_OF_DOMAIN THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20801-      SUBGOAL_THEN `IMAGE (g:complex->complex) (ball(Cx(&0),&1)) = s`
hol-light-20190729/Multivariate/cauchy.ml:20802:      SUBST1_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-20803-      ASM_SIMP_TAC[COMPACT_CONTINUOUS_IMAGE; COMPACT_CBALL];
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20808-      SUBGOAL_THEN `IMAGE (g:complex->complex) (ball(Cx(&0),&1)) = s`
hol-light-20190729/Multivariate/cauchy.ml:20809:      SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml-20810-       [CONJ_TAC THENL [ASM_MESON_TAC[HOLOMORPHIC_EQ]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20814-          IMAGE f' k`
hol-light-20190729/Multivariate/cauchy.ml:20815:        SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-20816-        MATCH_MP_TAC COMPACT_CONTINUOUS_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20876-      MP_TAC(ISPECL [`a:complex`; `b:complex`] ENDS_IN_SEGMENT) THEN
hol-light-20190729/Multivariate/cauchy.ml:20877:      ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-20878-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20902-        [GSYM FRONTIER_DISJOINT_EQ]) THEN
hol-light-20190729/Multivariate/cauchy.ml:20903:      REPEAT CONJ_TAC THENL [ALL_TAC; ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-20904-      MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20906-        ==> DISJOINT(segment[a,b]) s`) THEN
hol-light-20190729/Multivariate/cauchy.ml:20907:      (CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/cauchy.ml-20908-      MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/cauchy.ml-20921-           ==> ~(segment[a,b] DELETE b DIFF s = {})`) THEN
hol-light-20190729/Multivariate/cauchy.ml:20922:         REWRITE_TAC[ENDS_IN_SEGMENT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-20923-         ALL_TAC]) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-21426-         [ASM_REWRITE_TAC[GSYM CBALL_DIFF_BALL; IN_DIFF] THEN
hol-light-20190729/Multivariate/cauchy.ml:21427:          ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-21428-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-21444-          MESON_TAC[ENDS_IN_UNIT_INTERVAL];
hol-light-20190729/Multivariate/cauchy.ml:21445:          ASM_REWRITE_TAC[GSYM path_image] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-21446-          REWRITE_TAC[GSYM BALL_UNION_SPHERE] THEN MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/cauchy.ml-21493-      MATCH_MP_TAC(TAUT `(q ==> p) /\ q ==> p /\ q`) THEN
hol-light-20190729/Multivariate/cauchy.ml:21494:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-21495-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-21500-        RULE_ASSUM_TAC(REWRITE_RULE[pathstart; pathfinish]) THEN
hol-light-20190729/Multivariate/cauchy.ml:21501:        ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-21502-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-21549-          GEN_REWRITE_RULE I [simple_path]) THEN
hol-light-20190729/Multivariate/cauchy.ml:21550:        ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-21551-        REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; IN_DIFF] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-21582-           GEN_REWRITE_RULE I [simple_path]) THEN
hol-light-20190729/Multivariate/cauchy.ml:21583:        ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-21584-        FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/cauchy.ml-21590-        REWRITE_TAC[GSYM CBALL_DIFF_SPHERE] THEN
hol-light-20190729/Multivariate/cauchy.ml:21591:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-21592-        ASM_REWRITE_TAC[GSYM path_image; CBALL_DIFF_SPHERE] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-21595-        REWRITE_TAC[CONNECTED_BALL; FRONTIER_CBALL; NOT_IMP] THEN
hol-light-20190729/Multivariate/cauchy.ml:21596:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-21597-        REWRITE_TAC[SET_RULE `s DIFF t = {} <=> s SUBSET t`] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-21612-              ==> IMAGE g (i DIFF (ab DIFF {a,b})) INTER d = {}`)) THEN
hol-light-20190729/Multivariate/cauchy.ml:21613:        REWRITE_TAC[GSYM CBALL_DIFF_SPHERE] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-21614-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-21648-      RULE_ASSUM_TAC(REWRITE_RULE[pathstart; pathfinish]) THEN
hol-light-20190729/Multivariate/cauchy.ml:21649:      ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-21650-    MAP_EVERY EXPAND_TAC ["g"; "q"] THEN REWRITE_TAC[SHIFTPATH_CIRCLEPATH] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22045-           [MP_TAC(ISPECL [`z:complex`; `r:real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/cauchy.ml:22046:            ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22047-            MATCH_MP_TAC COMPACT_CONTINUOUS_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22055-            MP_TAC(ISPECL [`z:complex`; `r:real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/cauchy.ml:22056:            ASM SET_TAC[]]];
hol-light-20190729/Multivariate/cauchy.ml-22057-        DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22063-        REWRITE_TAC[BALL_SUBSET_CBALL] THEN
hol-light-20190729/Multivariate/cauchy.ml:22064:        REWRITE_TAC[GSYM CBALL_DIFF_BALL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22065-        REWRITE_TAC[path_image; FORALL_IN_IMAGE_2]] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22082-          HOLOMORPHIC_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/cauchy.ml:22083:        REWRITE_TAC[GSYM CBALL_DIFF_BALL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22084-        X_GEN_TAC `a:real^1` THEN DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22097-          HOLOMORPHIC_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/cauchy.ml:22098:        REWRITE_TAC[GSYM CBALL_DIFF_BALL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22099-        X_GEN_TAC `b:real^1` THEN DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22121-        MP_TAC(ISPECL [`z:complex`; `r:real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/cauchy.ml:22122:        ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22123-        CONJ_TAC THEN MATCH_MP_TAC FUN_IN_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22231-             ==> IMAGE h i SUBSET closure s`)) THEN
hol-light-20190729/Multivariate/cauchy.ml:22232:      REWRITE_TAC[CLOSURE_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22233-      DISCH_TAC]) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22280-      RULE_ASSUM_TAC(REWRITE_RULE[pathstart; pathfinish]) THEN
hol-light-20190729/Multivariate/cauchy.ml:22281:      ASM SET_TAC[]]);
hol-light-20190729/Multivariate/cauchy.ml-22282-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22343-    ASM_SIMP_TAC[CLOSURE_INC; OPEN_INTER_CLOSURE_EQ_EMPTY] THEN
hol-light-20190729/Multivariate/cauchy.ml:22344:    CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[path_image]] THEN
hol-light-20190729/Multivariate/cauchy.ml-22345-    MAP_EVERY EXPAND_TAC ["a"; "b"] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22348-      ==> IMAGE f i DIFF {f a,f b} SUBSET s`) THEN
hol-light-20190729/Multivariate/cauchy.ml:22349:    REWRITE_TAC[GSYM OPEN_CLOSED_INTERVAL_1] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22350-    REWRITE_TAC[connected_component] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22353-             BOUNDED_BALL; CONVEX_BALL] THEN
hol-light-20190729/Multivariate/cauchy.ml:22354:    CONJ_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[IN_DIFF; IN_UNIV]] THEN
hol-light-20190729/Multivariate/cauchy.ml-22355-    REWRITE_TAC[IN_BALL; REAL_NOT_LT] THEN ONCE_REWRITE_TAC[DIST_SYM] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22363-      SUBGOAL_THEN `{Cx(&0),z,z'} SUBSET ball(Cx(&0),&1)` MP_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:22364:       [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-22365-      REWRITE_TAC[INSERT_SUBSET; EMPTY_SUBSET; CENTRE_IN_BALL] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22375-      ==> UNIV DIFF ((p UNION e) UNION (UNIV DIFF s)) = s DIFF p`) THEN
hol-light-20190729/Multivariate/cauchy.ml:22376:    ASM_SIMP_TAC[OPEN_INTER_CLOSURE_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22377-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22419-      HOLOMORPHIC_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/cauchy.ml:22420:    ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22421-    REWRITE_TAC[path_image; GSYM MEMBER_NOT_EMPTY] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22427-    SUBGOAL_THEN `{z,z'} SUBSET cball(z,r) INTER ball(Cx(&0),&1)` MP_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:22428:     [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-22429-    MAP_EVERY UNDISCH_TAC [`(z:complex) IN A`; `(z':complex) IN A`] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22475-      IMAGE f' k`
hol-light-20190729/Multivariate/cauchy.ml:22476:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-22477-    MATCH_MP_TAC COMPACT_CONTINUOUS_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22493-      CONV_TAC HAS_SIZE_CONV THEN EXISTS_TAC `(f':complex->complex) a` THEN
hol-light-20190729/Multivariate/cauchy.ml:22494:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-22495-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22553-      ASM_REWRITE_TAC[PATHSTART_LINEPATH; PATHFINISH_LINEPATH] THEN
hol-light-20190729/Multivariate/cauchy.ml:22554:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-22555-      X_GEN_TAC `x:real^1` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/cauchy.ml:22556:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-22557-      X_GEN_TAC `y:real^1` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22579-      ==> r DELETE a SUBSET UNIV DIFF (IMAGE f i UNION {a,a})`) THEN
hol-light-20190729/Multivariate/cauchy.ml:22580:    ASM_SIMP_TAC[frontier; INTERIOR_OPEN] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22581-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22617-    (CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:22618:      [REWRITE_TAC[GSYM BALL_UNION_SPHERE] THEN ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/cauchy.ml-22619-    ONCE_REWRITE_TAC[INTER_COMM] THEN  MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22662-     CONJ_TAC THENL [SET_TAC[]; ASM_REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml:22663:     CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-22664-     MATCH_MP_TAC CONNECTED_CONTINUOUS_IMAGE THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22666-           CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/cauchy.ml:22667:     ASM SET_TAC[]);
hol-light-20190729/Multivariate/cauchy.ml-22668-     ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22708-    ASM_REWRITE_TAC[IN_ELIM_THM; REAL_ARITH `~(x < q \/ x > q) <=> x = q`] THEN
hol-light-20190729/Multivariate/cauchy.ml:22709:    REWRITE_TAC[GSYM CBALL_DIFF_SPHERE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22710-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22815-        MAP_EVERY EXISTS_TAC [`g:complex->complex`; `f:complex->complex`] THEN
hol-light-20190729/Multivariate/cauchy.ml:22816:        ASM_SIMP_TAC[HOLOMORPHIC_ON_IMP_CONTINUOUS_ON] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22817-        DISCH_THEN(MP_TAC o SPEC `frontier s:complex->bool`) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22838-    SUBGOAL_THEN `IMAGE (f':complex->complex) (ball(Cx(&0),&1)) = s`
hol-light-20190729/Multivariate/cauchy.ml:22839:    MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-22840-    SUBGOAL_THEN `f' holomorphic_on ball(Cx(&0),&1)` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22870-     [MATCH_MP_TAC SUBSET_ANTISYM THEN
hol-light-20190729/Multivariate/cauchy.ml:22871:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-22872-      SIMP_TAC[GSYM CLOSURE_BALL; REAL_LT_01] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22879-      ASM_REWRITE_TAC[COMPACT_CBALL; INJECTIVE_ON_ALT] THEN
hol-light-20190729/Multivariate/cauchy.ml:22880:      ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml:22881:      MP_TAC(ISPECL [`Cx(&0)`; `&1`] BALL_SUBSET_CBALL) THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/cauchy.ml-22882-  let js_cball = prove
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22939-          FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/cauchy.ml:22940:            HOLOMORPHIC_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml:22941:          REWRITE_TAC[o_THM] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-22942-        MP_TAC(ISPECL [`f:complex->complex`; `inside s:complex->bool`;
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22944-              carat_cball) THEN
hol-light-20190729/Multivariate/cauchy.ml:22945:        ASM_REWRITE_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-22946-        REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-22962-      SUBST1_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:22963:       [MP_TAC(ISPECL [`Cx(&0)`; `&1`] SPHERE_SUBSET_CBALL) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-22964-        MATCH_MP_TAC FUN_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23086-          CONJ_TAC THEN CONV_TAC SYM_CONV THEN
hol-light-20190729/Multivariate/cauchy.ml:23087:          FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23088-          DISCH_THEN(MP_TAC o AP_TERM `h':complex->complex`) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23093-            ASM_REWRITE_TAC[GSYM FRONTIER_UNION_INTERIOR; IN_UNION];
hol-light-20190729/Multivariate/cauchy.ml:23094:            REWRITE_TAC[GSYM BALL_UNION_SPHERE; IN_UNION] THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/cauchy.ml-23095-        ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-23096-      MATCH_MP_TAC(TAUT `p /\ (p ==> q) ==> p /\ q`) THEN
hol-light-20190729/Multivariate/cauchy.ml:23097:      CONJ_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-23098-      REWRITE_TAC[GSYM CBALL_DIFF_SPHERE] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23100-       `IMAGE (g':complex->complex) (cball(Cx(&0),&1)) = closure(inside s)`
hol-light-20190729/Multivariate/cauchy.ml:23101:      ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-23102-      MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23106-      ASM_REWRITE_TAC[SPHERE_SUBSET_CBALL] THEN
hol-light-20190729/Multivariate/cauchy.ml:23107:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-23108-      ASM_REWRITE_TAC[GSYM FRONTIER_UNION_INTERIOR] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23129-        SUBGOAL_THEN `h((f:complex->complex) y') IN sphere(Cx(&0),&1)`
hol-light-20190729/Multivariate/cauchy.ml:23130:        MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-23131-        DISCH_THEN(fun th -> ASSUME_TAC th THEN MP_TAC th) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23138-          MP_TAC(ISPECL [`Cx(&0)`; `&1`] SPHERE_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/cauchy.ml:23139:          ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23140-          EXPAND_TAC "y'" THEN REWRITE_TAC[VECTOR_MUL_ASSOC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23151-          REWRITE_TAC[o_THM] THEN MATCH_MP_TAC EQ_IMP THEN BINOP_TAC THEN
hol-light-20190729/Multivariate/cauchy.ml:23152:          ASM SET_TAC[]]]]) in
hol-light-20190729/Multivariate/cauchy.ml-23153-  let inv_lemma = prove
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23161-     [MP_TAC(ISPEC `path_image g:complex->bool` INSIDE_INTER_OUTSIDE) THEN
hol-light-20190729/Multivariate/cauchy.ml:23162:      ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23163-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23165-     [MP_TAC(ISPEC `path_image g:complex->bool` INSIDE_NO_OVERLAP) THEN
hol-light-20190729/Multivariate/cauchy.ml:23166:      ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23167-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23187-      MATCH_MP_TAC CONTINUOUS_ON_COMPLEX_INV THEN
hol-light-20190729/Multivariate/cauchy.ml:23188:      REWRITE_TAC[CONTINUOUS_ON_ID] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23189-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23221-        MATCH_MP_TAC CONTINUOUS_ON_COMPLEX_INV THEN
hol-light-20190729/Multivariate/cauchy.ml:23222:        REWRITE_TAC[CONTINUOUS_ON_ID] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-23223-      MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23242-        MATCH_MP_TAC CONTINUOUS_ON_COMPLEX_INV THEN
hol-light-20190729/Multivariate/cauchy.ml:23243:        REWRITE_TAC[CONTINUOUS_ON_ID] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-23244-      DISCH_THEN(MP_TAC o MATCH_MP
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23286-      REWRITE_TAC[PATH_IMAGE_COMPOSE] THEN
hol-light-20190729/Multivariate/cauchy.ml:23287:      MP_TAC COMPLEX_INV_INV THEN MP_TAC COMPLEX_INV_0 THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/cauchy.ml-23288-  let js_noball_0 = prove
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23309-     [MP_TAC(ISPEC `path_image p:complex->bool` INSIDE_INTER_OUTSIDE) THEN
hol-light-20190729/Multivariate/cauchy.ml:23310:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23311-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23313-     [MP_TAC(ISPEC `path_image p:complex->bool` INSIDE_NO_OVERLAP) THEN
hol-light-20190729/Multivariate/cauchy.ml:23314:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23315-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23325-      MATCH_MP_TAC CONTINUOUS_ON_COMPLEX_INV THEN
hol-light-20190729/Multivariate/cauchy.ml:23326:      REWRITE_TAC[CONTINUOUS_ON_ID] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23327-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23392-        ASM_SIMP_TAC[CLOSED_PATH_IMAGE; SIMPLE_PATH_IMP_PATH] THEN
hol-light-20190729/Multivariate/cauchy.ml:23393:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-23394-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23409-        ASM_REWRITE_TAC[] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/cauchy.ml:23410:        ASM_REWRITE_TAC[CLOSURE_UNION_FRONTIER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23411-        EXPAND_TAC "q" THEN REWRITE_TAC[PATH_IMAGE_COMPOSE] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23493-        ASM_REWRITE_TAC[CENTRE_IN_CBALL; REAL_POS] THEN
hol-light-20190729/Multivariate/cauchy.ml:23494:        RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-23495-      REWRITE_TAC[o_THM; MESON[COMPLEX_INV_INV] `inv x = y <=> x = inv y`] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23510-      REWRITE_TAC[GSYM COMPLEX_IN_SPHERE_0] THEN
hol-light-20190729/Multivariate/cauchy.ml:23511:      RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23512-      REWRITE_TAC[IMAGE_o] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23533-      MP_TAC(ISPECL [`Cx(&0)`; `&1`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/cauchy.ml:23534:      RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/cauchy.ml-23535-  let js_noball = prove
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23587-        REPEAT(FIRST_X_ASSUM(CONJUNCTS_THEN STRIP_ASSUME_TAC)) THEN
hol-light-20190729/Multivariate/cauchy.ml:23588:        FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23589-        MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23618-      MAP_EVERY EXISTS_TAC [`f':complex->complex`; `f:complex->complex`] THEN
hol-light-20190729/Multivariate/cauchy.ml:23619:      ASM_SIMP_TAC[HOLOMORPHIC_ON_IMP_CONTINUOUS_ON] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23620-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23662-          `outside(frontier s):real^2->bool`] THEN
hol-light-20190729/Multivariate/cauchy.ml:23663:        ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml:23664:        ASM_SIMP_TAC[frontier; INTERIOR_OPEN] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-23665-      UNDISCH_THEN `frontier s:real^2->bool = frontier s` (K ALL_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23689-        REWRITE_TAC[CLOSED_CLOSURE];
hol-light-20190729/Multivariate/cauchy.ml:23690:        REWRITE_TAC[GSYM SPHERE_UNION_BALL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23691-        GEN_TAC THEN GEN_REWRITE_TAC (LAND_CONV o RAND_CONV o LAND_CONV)
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23766-    SUBGOAL_THEN `?z:real^2. z IN inside s` CHOOSE_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:23767:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/cauchy.ml-23768-    MP_TAC(ISPECL [`g:real^2->real^2`; `h:real^2->real^2`;
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23786-        REWRITE_TAC[CLOSED_CLOSURE];
hol-light-20190729/Multivariate/cauchy.ml:23787:        REWRITE_TAC[GSYM SPHERE_UNION_BALL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml:23788:        ASM_SIMP_TAC[CLOSURE_UNION_FRONTIER] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-23789-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `f:real^2->real^2` THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23804-        SET_RULE `c DIFF b DIFF b = c DIFF b`] THEN
hol-light-20190729/Multivariate/cauchy.ml:23805:      SIMP_TAC[CBALL_DIFF_BALL] THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/cauchy.ml-23806-  CARATHEODORY_CONFORMAL_EXTENSION_THEOREM,JORDAN_SCHOENFLIES_CIRCLE;;
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23861-      ONCE_REWRITE_TAC[CONJ_ASSOC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/cauchy.ml:23862:       [CONJ_TAC THEN ASM_SIMP_TAC[] THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/cauchy.ml-23863-        X_GEN_TAC `x:real^2` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/cauchy.ml-23864-        TRANS_TAC EQ_TRANS `(f:real^2->real^2)(g1((g2:real^2->real^2) x))` THEN
hol-light-20190729/Multivariate/cauchy.ml:23865:        ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23866-        REPEAT CONJ_TAC THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23904-    MATCH_MP_TAC SIMPLE_PATH_JOIN_LOOP THEN
hol-light-20190729/Multivariate/cauchy.ml:23905:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23906-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23928-    MATCH_MP_TAC SIMPLE_PATH_JOIN_LOOP THEN
hol-light-20190729/Multivariate/cauchy.ml:23929:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml-23930-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23972-        `simple_path(g ++ g':real^1->real^2)`] THEN
hol-light-20190729/Multivariate/cauchy.ml:23973:      ASM_SIMP_TAC[SIMPLE_PATH_JOIN_LOOP_EQ_ALT] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-23974-    MP_TAC(ISPECL
##############################################
hol-light-20190729/Multivariate/cauchy.ml-23984-    RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM; IN_UNIV]) THEN
hol-light-20190729/Multivariate/cauchy.ml:23985:    CONJ_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/cauchy.ml-23986-
##############################################
hol-light-20190729/Multivariate/cauchy.ml-24055-           CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/cauchy.ml:24056:         ASM SET_TAC[];
hol-light-20190729/Multivariate/cauchy.ml:24057:         REWRITE_TAC[INJECTIVE_ON_LEFT_INVERSE] THEN ASM SET_TAC[]]);
hol-light-20190729/Multivariate/cauchy.ml-24058-      REWRITE_TAC[PATH_IMAGE_COMPOSE] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-24068-        HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/cauchy.ml:24069:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/cauchy.ml-24070-    REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-24092-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/cauchy.ml:24093:  (ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC]) THEN
hol-light-20190729/Multivariate/cauchy.ml-24094-  RULE_ASSUM_TAC(REWRITE_RULE[FORALL_IN_IMAGE; o_THM]) THEN
##############################################
hol-light-20190729/Multivariate/cauchy.ml-24102-  REWRITE_TAC[o_THM] THEN
hol-light-20190729/Multivariate/cauchy.ml:24103:  FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]);;
##############################################
hol-light-20190729/Multivariate/clifford.ml-158-let sindex = new_definition
hol-light-20190729/Multivariate/clifford.ml:159:  `(x:real^(N)multivector)$$s = x$(setcode s)`;;
hol-light-20190729/Multivariate/clifford.ml-160-
##############################################
hol-light-20190729/Multivariate/clifford.ml-190-let MULTIVECTOR_ETA = prove
hol-light-20190729/Multivariate/clifford.ml:191: (`(lambdas s. m$$s) = m`,
hol-light-20190729/Multivariate/clifford.ml-192-  SIMP_TAC[MULTIVECTOR_EQ; MULTIVECTOR_BETA]);;
##############################################
hol-light-20190729/Multivariate/clifford.ml-210-let MULTIVECTOR_VEC_COMPONENT = prove
hol-light-20190729/Multivariate/clifford.ml:211: (`!k s. s SUBSET (1..dimindex(:N)) ==> (vec k :real^(N)multivector)$$s = &k`,
hol-light-20190729/Multivariate/clifford.ml-212-  SIMP_TAC[sindex; SETCODE_BOUNDS; DIMINDEX_MULTIVECTOR;
##############################################
hol-light-20190729/Multivariate/clifford.ml-222-let MULTIVECTOR_VSUM = prove
hol-light-20190729/Multivariate/clifford.ml:223: (`!t f. vsum t f = lambdas s. sum t (\x. (f x)$$s)`,
hol-light-20190729/Multivariate/clifford.ml-224-  SIMP_TAC[MULTIVECTOR_EQ; MULTIVECTOR_BETA; MULTIVECTOR_VSUM_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/clifford.ml-550-  SIMP_TAC[EXTENSION; FORALL_PAIR_THM; NOT_IN_EMPTY; IN_UNION; IN_INTER] THEN
hol-light-20190729/Multivariate/clifford.ml:551:  REWRITE_TAC[IN_ELIM_PAIR_THM] THEN ASM SET_TAC []);;
hol-light-20190729/Multivariate/clifford.ml-552-
##############################################
hol-light-20190729/Multivariate/clifford.ml-741-  SUBGOAL_THEN `{a:num} INTER s = {}` SUBST1_TAC THENL
hol-light-20190729/Multivariate/clifford.ml:742:   [ASM SET_TAC [LT_REFL]; ALL_TAC] THEN
hol-light-20190729/Multivariate/clifford.ml-743-  SIMP_TAC[SET_RULE`{a} SUBSET t /\ s SUBSET t <=> (a INSERT s) SUBSET t`] THEN
##############################################
hol-light-20190729/Multivariate/complexes.ml-27-let RE_DEF = new_definition
hol-light-20190729/Multivariate/complexes.ml:28:  `Re(z:complex) = z$1`;;
hol-light-20190729/Multivariate/complexes.ml-29-
hol-light-20190729/Multivariate/complexes.ml-30-let IM_DEF = new_definition
hol-light-20190729/Multivariate/complexes.ml:31:  `Im(z:complex) = z$2`;;
hol-light-20190729/Multivariate/complexes.ml-32-
##############################################
hol-light-20190729/Multivariate/complexes.ml-1476-    STRIP_TAC THEN
hol-light-20190729/Multivariate/complexes.ml:1477:    EXISTS_TAC `complex(matrix(f:complex->complex)$1$1,matrix f$2$1)` THEN
hol-light-20190729/Multivariate/complexes.ml-1478-    FIRST_ASSUM(fun th ->
##############################################
hol-light-20190729/Multivariate/convex.ml-146-let AFFINE_STANDARD_HYPERPLANE = prove
hol-light-20190729/Multivariate/convex.ml:147: (`!a b k. affine {x:real^N | x$k = b}`,
hol-light-20190729/Multivariate/convex.ml-148-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/convex.ml:149:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/convex.ml-150-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-295-   [ASM_REWRITE_TAC[] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:296:    MATCH_MP_TAC SUBSPACE_MUL THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-297-    ASM_SIMP_TAC[VSUM_SUB; IN_ELIM_THM; VECTOR_SUB_LDISTRIB; VSUM_RMUL] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-316-      FIRST_X_ASSUM(SUBST1_TAC o SYM) THEN
hol-light-20190729/Multivariate/convex.ml:317:      CONV_TAC SYM_CONV THEN MATCH_MP_TAC SUM_SUPERSET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml:318:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/convex.ml-319-
##############################################
hol-light-20190729/Multivariate/convex.ml-378-   [REPEAT STRIP_TAC THEN MATCH_MP_TAC AFFINE_VSUM THEN
hol-light-20190729/Multivariate/convex.ml:379:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-380-    REWRITE_TAC[affine] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-388-                 VSUM_SING; SUM_SING;SUBSET;IN_INSERT;NOT_IN_EMPTY] THEN
hol-light-20190729/Multivariate/convex.ml:389:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/convex.ml-390-
##############################################
hol-light-20190729/Multivariate/convex.ml-420-     [ASM_REWRITE_TAC[FINITE_UNION];
hol-light-20190729/Multivariate/convex.ml:421:      ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-422-      ASM_REWRITE_TAC[UNION_SUBSET];
##############################################
hol-light-20190729/Multivariate/convex.ml-449-      [FIRST_X_ASSUM SUBST_ALL_TAC THEN
hol-light-20190729/Multivariate/convex.ml:450:       REWRITE_TAC[SUBSET_EMPTY;EMPTY_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-451-       ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-452-    REWRITE_TAC[AFFINE; SUBSET; IN_ELIM_THM; LEFT_IMP_EXISTS_THM] THEN
hol-light-20190729/Multivariate/convex.ml:453:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/convex.ml-454-
##############################################
hol-light-20190729/Multivariate/convex.ml-706-  SUBGOAL_THEN `!x:real^N. x IN t ==> ~(x = a)` MP_TAC THENL
hol-light-20190729/Multivariate/convex.ml:707:   [ASM SET_TAC[]; SIMP_TAC[] THEN DISCH_THEN(K ALL_TAC)] THEN
hol-light-20190729/Multivariate/convex.ml-708-  CONJ_TAC THENL [REAL_ARITH_TAC; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-720-  ASM_REWRITE_TAC[IN_DELETE] THEN
hol-light-20190729/Multivariate/convex.ml:721:  DISCH_THEN(SUBST1_TAC o SYM) THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-722-
##############################################
hol-light-20190729/Multivariate/convex.ml-856-let CONVEX_HALFSPACE_COMPONENT_LE = prove
hol-light-20190729/Multivariate/convex.ml:857: (`!a k. convex {x:real^N | x$k <= a}`,
hol-light-20190729/Multivariate/convex.ml-858-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/convex.ml:859:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/convex.ml-860-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-872-let CONVEX_HALFSPACE_COMPONENT_GE = prove
hol-light-20190729/Multivariate/convex.ml:873: (`!a k. convex {x:real^N | x$k >= a}`,
hol-light-20190729/Multivariate/convex.ml-874-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/convex.ml:875:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/convex.ml-876-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-890-let CONVEX_STANDARD_HYPERPLANE = prove
hol-light-20190729/Multivariate/convex.ml:891: (`!k a. convex {x:real^N | x$k = a}`,
hol-light-20190729/Multivariate/convex.ml-892-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/convex.ml:893:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/convex.ml-894-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-905-let CONVEX_HALFSPACE_COMPONENT_LT = prove
hol-light-20190729/Multivariate/convex.ml:906: (`!a k. convex {x:real^N | x$k < a}`,
hol-light-20190729/Multivariate/convex.ml-907-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/convex.ml:908:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/convex.ml-909-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-919-let CONVEX_HALFSPACE_COMPONENT_GT = prove
hol-light-20190729/Multivariate/convex.ml:920: (`!a k. convex {x:real^N | x$k > a}`,
hol-light-20190729/Multivariate/convex.ml-921-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/convex.ml:922:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/convex.ml-923-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-928-let CONVEX_STRIP_COMPONENT_LE = prove
hol-light-20190729/Multivariate/convex.ml:929: (`!a k. convex {x:real^N | abs(x$k) <= a}`,
hol-light-20190729/Multivariate/convex.ml-930-  REWRITE_TAC[REAL_ARITH `abs(x) <= a <=> x <= a /\ x >= --a`] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-935-let CONVEX_STRIP_COMPONENT_LT = prove
hol-light-20190729/Multivariate/convex.ml:936: (`!a k. convex {x:real^N | abs(x$k) < a}`,
hol-light-20190729/Multivariate/convex.ml-937-  REWRITE_TAC[REAL_ARITH `abs(x) < a <=> x < a /\ x > --a`] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-955-let CONVEX_HALFSPACE_COMPONENT_SGN = prove
hol-light-20190729/Multivariate/convex.ml:956: (`!a k. convex {x:real^N | real_sgn(x$k) = a}`,
hol-light-20190729/Multivariate/convex.ml-957-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/convex.ml:958:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/convex.ml-959-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-975-  SUBGOAL_THEN `?y:real^N. y IN s /\ ~(y = x)` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/convex.ml:976:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-977-  REWRITE_TAC[LIMPT_APPROACHABLE] THEN X_GEN_TAC `e:real` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-1095-      FIRST_X_ASSUM(SUBST1_TAC o SYM) THEN
hol-light-20190729/Multivariate/convex.ml:1096:      CONV_TAC SYM_CONV THEN MATCH_MP_TAC SUM_SUPERSET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml:1097:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/convex.ml-1098-
##############################################
hol-light-20190729/Multivariate/convex.ml-1124-   [REPEAT STRIP_TAC THEN MATCH_MP_TAC CONVEX_VSUM THEN
hol-light-20190729/Multivariate/convex.ml:1125:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-1126-    DISCH_TAC THEN REWRITE_TAC[convex] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-1192-              FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/Multivariate/convex.ml:1193:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-1194-
##############################################
hol-light-20190729/Multivariate/convex.ml-1219-              FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/Multivariate/convex.ml:1220:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-1221-
##############################################
hol-light-20190729/Multivariate/convex.ml-1342-    ASM_SIMP_TAC[CONIC_CONIC_HULL; REAL_LE_INV_EQ; REAL_LT_IMP_LE] THEN
hol-light-20190729/Multivariate/convex.ml:1343:    MATCH_MP_TAC HULL_INC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/convex.ml-1344-
##############################################
hol-light-20190729/Multivariate/convex.ml-1434-              FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/Multivariate/convex.ml:1435:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-1436-
hol-light-20190729/Multivariate/convex.ml-1437-let CONIC_POSITIVE_ORTHANT = prove
hol-light-20190729/Multivariate/convex.ml:1438: (`conic {x:real^N | !i. 1 <= i /\ i <= dimindex(:N) ==> &0 <= x$i}`,
hol-light-20190729/Multivariate/convex.ml-1439-  SIMP_TAC[conic; IN_ELIM_THM; REAL_LE_MUL; VECTOR_MUL_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/convex.ml-1557-    SUBGOAL_THEN `IMAGE (p:real^N->real^N) pnc = IMAGE p srf` SUBST1_TAC THENL
hol-light-20190729/Multivariate/convex.ml:1558:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-1559-      MATCH_MP_TAC CONTINUOUS_ON_INVERSE THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/convex.ml:1560:      CONJ_TAC THENL [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ASM SET_TAC[]]]) in
hol-light-20190729/Multivariate/convex.ml-1561-  REWRITE_TAC[conic; IN_DELETE; SUBSET] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-1564-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/convex.ml:1565:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml:1566:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-1567-  ONCE_REWRITE_TAC[TAUT `p /\ q /\ r <=> q /\ p /\ r`] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-1613-      REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/convex.ml:1614:      [ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml:1615:       COND_CASES_TAC THENL [ASM SET_TAC[];ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-1616-         ASM_SIMP_TAC[SUM_CASES; SUM_CLAUSES; SET_RULE
##############################################
hol-light-20190729/Multivariate/convex.ml-1630-         ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/convex.ml:1631:         ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-1632-       ASM_REWRITE_TAC[]]];
##############################################
hol-light-20190729/Multivariate/convex.ml-1636-    EXISTS_TAC `v:real^N` THEN
hol-light-20190729/Multivariate/convex.ml:1637:    CONJ_TAC THENL [ASM SET_TAC[];ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-1638-    EXISTS_TAC `s DELETE (v:real^N)` THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-1645-                 VECTOR_MUL_ASSOC;VECTOR_MUL_LID] THEN
hol-light-20190729/Multivariate/convex.ml:1646:    CONJ_TAC THENL [ALL_TAC;ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-1647-    ASM_SIMP_TAC[SET_RULE `v IN s ==> (s DELETE v = {} <=> s = {v})`] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-1668-  ASM_SIMP_TAC[SET_RULE `t SUBSET s ==> {x | x IN s /\ x IN t} = t`] THEN
hol-light-20190729/Multivariate/convex.ml:1669:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-1670-
##############################################
hol-light-20190729/Multivariate/convex.ml-1700-   (fun t -> ASM_SIMP_TAC[FUN_IN_IMAGE; AFFINE_HULL_LINEAR_IMAGE; t]) THEN
hol-light-20190729/Multivariate/convex.ml:1701:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-1702-
##############################################
hol-light-20190729/Multivariate/convex.ml-1709-   (SET_RULE `!x. s SUBSET t ==> (s DELETE x) SUBSET (t DELETE x)`)) THEN
hol-light-20190729/Multivariate/convex.ml:1710:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-1711-
##############################################
hol-light-20190729/Multivariate/convex.ml-1888-   `x IN s ==> s SUBSET t ==> x IN t`)) THEN
hol-light-20190729/Multivariate/convex.ml:1889:  MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-1890-
##############################################
hol-light-20190729/Multivariate/convex.ml-2113-  MATCH_MP_TAC CONVEX_LOCAL_GLOBAL_MINIMUM_SEGMENT THEN
hol-light-20190729/Multivariate/convex.ml:2114:  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-2115-  X_GEN_TAC `z:real^N` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-2337-      MATCH_MP_TAC(TAUT `p /\ (q ==> r) ==> (p <=> q) ==> r`) THEN
hol-light-20190729/Multivariate/convex.ml:2338:      ASM_SIMP_TAC[] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/convex.ml-2339-
##############################################
hol-light-20190729/Multivariate/convex.ml-2470-     `(p /\ q) /\ (~r ==> s) ==> ~(p /\ q /\ r) ==> s`) THEN
hol-light-20190729/Multivariate/convex.ml:2471:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/convex.ml-2472-     [UNDISCH_TAC
##############################################
hol-light-20190729/Multivariate/convex.ml-2476-    REWRITE_TAC[CLOSED_IN_CLOSED] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/convex.ml:2477:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-2478-    STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-2480-    SUBGOAL_THEN `(h2:real^N->bool) SUBSET h` ASSUME_TAC THENL
hol-light-20190729/Multivariate/convex.ml:2481:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-2482-    UNDISCH_TAC `connected(s:real^N->bool)` THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-2484-    DISCH_THEN(MP_TAC o SPEC `h2:real^N->bool`) THEN REWRITE_TAC[NOT_IMP] THEN
hol-light-20190729/Multivariate/convex.ml:2485:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-2486-    SUBGOAL_THEN `s:real^N->bool = (s DIFF c) UNION (c UNION h)`
hol-light-20190729/Multivariate/convex.ml:2487:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/convex.ml-2488-     [MATCH_MP_TAC OPEN_IN_SUBTOPOLOGY_UNION THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-2490-       [REWRITE_TAC[OPEN_IN_CLOSED_IN_EQ; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/convex.ml:2491:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-2492-        SUBGOAL_THEN `(c UNION h) DIFF h2:real^N->bool = h1`
hol-light-20190729/Multivariate/convex.ml:2493:         (fun th -> ASM_REWRITE_TAC[th]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-2494-        DISCH_TAC THEN MATCH_MP_TAC OPEN_IN_TRANS THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-2498-        REWRITE_TAC[OPEN_IN_OPEN] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/convex.ml:2499:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/convex.ml-2500-      MATCH_MP_TAC CLOSED_IN_SUBTOPOLOGY_UNION THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-2505-      REWRITE_TAC[CLOSED_IN_CLOSED] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/convex.ml:2506:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/convex.ml-2507-
##############################################
hol-light-20190729/Multivariate/convex.ml-2529-    REWRITE_TAC[CLOSED_IN_CLOSED] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/convex.ml:2530:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-2531-    UNDISCH_TAC `closed_in (subtopology euclidean (s DIFF c))
##############################################
hol-light-20190729/Multivariate/convex.ml-2533-    REWRITE_TAC[CLOSED_IN_CLOSED] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/convex.ml:2534:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml:2535:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml:2536:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-2537-    DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-2540-    ASM_REWRITE_TAC[NOT_IMP; GSYM CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/convex.ml:2541:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-2542-    MATCH_MP_TAC CONNECTED_UNION_CLOPEN_IN_COMPLEMENT THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-2545-     [ASM_MESON_TAC[IN_COMPONENTS_CONNECTED];
hol-light-20190729/Multivariate/convex.ml:2546:      ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-2547-      REWRITE_TAC[OPEN_IN_CLOSED_IN_EQ; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/convex.ml:2548:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-2549-      SUBGOAL_THEN `s DIFF c DIFF h3:real^N->bool = h4` SUBST1_TAC THEN
hol-light-20190729/Multivariate/convex.ml:2550:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/convex.ml-2551-    DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-2554-    ASM_REWRITE_TAC[NOT_IMP; GSYM CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/convex.ml:2555:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-2556-    MATCH_MP_TAC CONNECTED_UNION_CLOPEN_IN_COMPLEMENT THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-2559-     [ASM_MESON_TAC[IN_COMPONENTS_CONNECTED];
hol-light-20190729/Multivariate/convex.ml:2560:      ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-2561-      REWRITE_TAC[OPEN_IN_CLOSED_IN_EQ; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/convex.ml:2562:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-2563-      SUBGOAL_THEN `s DIFF c DIFF h4:real^N->bool = h3` SUBST1_TAC THEN
hol-light-20190729/Multivariate/convex.ml:2564:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/convex.ml-2565-
##############################################
hol-light-20190729/Multivariate/convex.ml-2586-    EXISTS_TAC `(f:real^M->real^N) a` THEN
hol-light-20190729/Multivariate/convex.ml:2587:    ASM_REWRITE_TAC[CENTRE_IN_BALL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-2588-    REWRITE_TAC[SET_RULE `s INTER t = {} <=> !x. x IN t ==> ~(x IN s)`] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-2592-  REWRITE_TAC[FRONTIER_CLOSED; FRONTIER_EQ_EMPTY] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/convex.ml:2593:   [SIMP_TAC[DE_MORGAN_THM] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-2594-    MATCH_MP_TAC(MESON[NOT_BOUNDED_UNIV] `bounded s ==> ~(s = UNIV)`) THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-2643-  EXISTS_TAC `IMAGE (f:real^M->real^N) (interior s)` THEN
hol-light-20190729/Multivariate/convex.ml:2644:  ASM_SIMP_TAC[IMAGE_SUBSET; INTERIOR_SUBSET] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-2645-
##############################################
hol-light-20190729/Multivariate/convex.ml-3146-      MATCH_MP_TAC (GSYM VSUM_IMAGE) THEN
hol-light-20190729/Multivariate/convex.ml:3147:      ASM SET_TAC[FINITE_NUMSEG]]);;
hol-light-20190729/Multivariate/convex.ml-3148-
##############################################
hol-light-20190729/Multivariate/convex.ml-3217-     [REWRITE_TAC[FORALL_IN_IMAGE] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:3218:      MATCH_MP_TAC SUM_POS_LE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-3219-      FIRST_X_ASSUM(fun th -> GEN_REWRITE_TAC RAND_CONV [SYM th]) THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-3241-  ASM_SIMP_TAC[FINITE_RESTRICT; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/convex.ml:3242:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THEN
hol-light-20190729/Multivariate/convex.ml-3243-  FIRST_X_ASSUM(fun th -> GEN_REWRITE_TAC RAND_CONV [SYM th]) THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-3271-        FIRST_X_ASSUM(MATCH_MP_TAC o GEN_REWRITE_RULE I [CONVEX_EXPLICIT]) THEN
hol-light-20190729/Multivariate/convex.ml:3272:        ASM_SIMP_TAC[FINITE_DIFF; IN_DIFF] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/convex.ml-3273-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-3282-        FIRST_X_ASSUM(MATCH_MP_TAC o GEN_REWRITE_RULE I [CONVEX_EXPLICIT]) THEN
hol-light-20190729/Multivariate/convex.ml:3283:        ASM_SIMP_TAC[FINITE_INTER; IN_INTER] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/convex.ml-3284-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-3297-                   IN_DIFF; real_div; SUM_RMUL; REAL_MUL_RINV] THEN
hol-light-20190729/Multivariate/convex.ml:3298:      ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-3299-      ASM_SIMP_TAC[SUM_POS_LE; IN_DIFF; FINITE_DIFF];
##############################################
hol-light-20190729/Multivariate/convex.ml-3325-                VECTOR_ADD_RID] THEN
hol-light-20190729/Multivariate/convex.ml:3326:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml:3327:    SUBGOAL_THEN `?a:real^N. a IN s` MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-3328-    MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-3339-    REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/convex.ml:3340:    REPEAT STRIP_TAC THEN MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-3341-  ASM_CASES_TAC `s:real^N->bool = {}` THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-3344-    MATCH_MP_TAC SUBSET_TRANS THEN EXISTS_TAC `convex hull u:real^N->bool` THEN
hol-light-20190729/Multivariate/convex.ml:3345:    REWRITE_TAC[HULL_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-3346-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-3352-    EXISTS_TAC `convex hull (s UNION u:real^N->bool)` THEN
hol-light-20190729/Multivariate/convex.ml:3353:    ASM_SIMP_TAC[HULL_MONO; SUBSET_UNION] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-3354-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-3460-      ASM_SIMP_TAC[FINITE_NUMSEG; CONVEX_CONVEX_HULL; IN_NUMSEG] THEN
hol-light-20190729/Multivariate/convex.ml:3461:      REPEAT STRIP_TAC THEN MATCH_MP_TAC HULL_INC THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/convex.ml-3462-
##############################################
hol-light-20190729/Multivariate/convex.ml-3490-      ASM_SIMP_TAC[FINITE_NUMSEG; AFFINE_AFFINE_HULL; IN_NUMSEG] THEN
hol-light-20190729/Multivariate/convex.ml:3491:      REPEAT STRIP_TAC THEN MATCH_MP_TAC HULL_INC THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/convex.ml-3492-
##############################################
hol-light-20190729/Multivariate/convex.ml-3738-  ASM_SIMP_TAC[SUM_CLAUSES; VSUM_CLAUSES] THEN
hol-light-20190729/Multivariate/convex.ml:3739:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml:3740:  COND_CASES_TAC THEN ASM_REWRITE_TAC[] THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-3741-  REPEAT CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-3743-    MATCH_MP_TAC SUM_EQ THEN ASM_MESON_TAC[];
hol-light-20190729/Multivariate/convex.ml:3744:    EXISTS_TAC `x:real^N` THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-3745-    COND_CASES_TAC THEN ASM_REWRITE_TAC[] THEN ASM_MESON_TAC[];
##############################################
hol-light-20190729/Multivariate/convex.ml-3838-  DISCH_THEN(MP_TAC o SPEC `x:real^N`) THEN
hol-light-20190729/Multivariate/convex.ml:3839:  ASM_REWRITE_TAC[REAL_SUB_0] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-3840-
##############################################
hol-light-20190729/Multivariate/convex.ml-3872-  FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [NOT_FORALL_THM]) THEN
hol-light-20190729/Multivariate/convex.ml:3873:  MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-3874-
##############################################
hol-light-20190729/Multivariate/convex.ml-4096-                    a dot u <= b /\ ~(a dot v <= b)`
hol-light-20190729/Multivariate/convex.ml:4097:     STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-4098-     SUBGOAL_THEN `(a:real^N) dot u < b` ASSUME_TAC THENL
hol-light-20190729/Multivariate/convex.ml:4099:      [ASM_REWRITE_TAC[REAL_LT_LE] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-4100-     RULE_ASSUM_TAC(REWRITE_RULE[REAL_NOT_LE]) THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-4155-  ASM_SIMP_TAC[AFFINE_INDEPENDENT_INSERT; INSERT_SUBSET] THEN
hol-light-20190729/Multivariate/convex.ml:4156:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-4157-
##############################################
hol-light-20190729/Multivariate/convex.ml-4188-  DISCH_THEN(MP_TAC o SPEC `c:real^N->bool`) THEN
hol-light-20190729/Multivariate/convex.ml:4189:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-4190-  CONV_TAC SYM_CONV THEN MATCH_MP_TAC CARD_SUBSET_LE THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-4251-  MATCH_MP_TAC(ARITH_RULE `~(s = 0) /\ v = s - 1 ==> s = v + 1`) THEN
hol-light-20190729/Multivariate/convex.ml:4252:  ASM_SIMP_TAC[CARD_EQ_0] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-4253-  MATCH_MP_TAC DIM_UNIQUE THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-4258-     [ASM_REWRITE_TAC[VECTOR_SUB_REFL; SPAN_0];
hol-light-20190729/Multivariate/convex.ml:4259:      MATCH_MP_TAC SPAN_SUPERSET THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/convex.ml-4260-    UNDISCH_TAC `~affine_dependent(s:real^N->bool)` THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-4262-    SUBGOAL_THEN `s = (a:real^N) INSERT (s DELETE a)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/convex.ml:4263:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-4264-    MATCH_MP_TAC DEPENDENT_IMP_AFFINE_DEPENDENT THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-4409-  SUBGOAL_THEN `(vec 0:real^N) IN t` ASSUME_TAC THENL
hol-light-20190729/Multivariate/convex.ml:4410:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-4411-  ASM_SIMP_TAC[AFF_DIM_DIM_0; IN_INSERT; HULL_INC; INT_OF_NUM_LE; DIM_SUBSET]);;
##############################################
hol-light-20190729/Multivariate/convex.ml-4631-    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC AFFINE_HULL_CONVEX_INTER_OPEN THEN
hol-light-20190729/Multivariate/convex.ml:4632:    ASM_SIMP_TAC[AFFINE_IMP_CONVEX] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-4633-    ASM_REWRITE_TAC[AFFINE_HULL_EQ]]);;
##############################################
hol-light-20190729/Multivariate/convex.ml-4644-               HULL_SUBSET] THEN
hol-light-20190729/Multivariate/convex.ml:4645:  MATCH_MP_TAC AFFINE_HULL_CONVEX_INTER_OPEN THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-4646-
##############################################
hol-light-20190729/Multivariate/convex.ml-4663-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC AFFINE_HULL_CONVEX_INTER_OPEN THEN
hol-light-20190729/Multivariate/convex.ml:4664:  REWRITE_TAC[AFFINE_AFFINE_HULL] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-4665-
##############################################
hol-light-20190729/Multivariate/convex.ml-4841-  SUBGOAL_THEN `(vec 0:real^N) IN t` ASSUME_TAC THENL
hol-light-20190729/Multivariate/convex.ml:4842:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-4843-  ASM_SIMP_TAC[AFF_DIM_DIM_0; HULL_INC; AFFINE_EQ_SUBSPACE] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-4850-      GEN_REWRITE_RULE I [OPEN_CONTAINS_CBALL]) THEN
hol-light-20190729/Multivariate/convex.ml:4851:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-4852-    REWRITE_TAC[SUBSET; IN_INTER; IN_CBALL_0] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-4863-    CONJ_TAC THENL [ASM_REAL_ARITH_TAC; MATCH_MP_TAC SUBSPACE_MUL] THEN
hol-light-20190729/Multivariate/convex.ml:4864:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-4865-    MATCH_MP_TAC INDEPENDENT_INJECTIVE_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-5058-     DIM_PCROSS_STRONG o rand o rand o snd) THEN
hol-light-20190729/Multivariate/convex.ml:5059:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Multivariate/convex.ml-5060-  TRANS_TAC EQ_TRANS
##############################################
hol-light-20190729/Multivariate/convex.ml-5099-  STRIP_ASSUME_TAC THENL [SIMP_TAC[HULL_INC; IN_INSERT]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml:5100:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-5101-  MATCH_MP_TAC(INT_ARITH
hol-light-20190729/Multivariate/convex.ml-5102-   `a:int <= &1 /\ b <= &1 /\ &0 <= c ==> (a + b) - c <= &2`) THEN
hol-light-20190729/Multivariate/convex.ml:5103:  ASM_REWRITE_TAC[GSYM COLLINEAR_AFF_DIM; AFF_DIM_POS_LE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-5104-
##############################################
hol-light-20190729/Multivariate/convex.ml-5139-  ONCE_REWRITE_TAC[CONJ_ASSOC] THEN CONJ_TAC THEN
hol-light-20190729/Multivariate/convex.ml:5140:  (CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/convex.ml-5141-  MATCH_MP_TAC CONTINUOUS_ON_ADD THEN REWRITE_TAC[CONTINUOUS_ON_CONST] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-5165-    REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:5166:    ABBREV_TAC `(X:real^M^N) = lambda i j. (x:real^N^M)$j$i - x$1$i` THEN
hol-light-20190729/Multivariate/convex.ml:5167:    ABBREV_TAC `(Y:real^M^N) = lambda i j. (y:real^N^M)$j$i - y$1$i` THEN
hol-light-20190729/Multivariate/convex.ml-5168-    SUBGOAL_THEN `transp(X:real^M^N) ** X = transp(Y:real^M^N) ** Y`
##############################################
hol-light-20190729/Multivariate/convex.ml-5185-      REWRITE_TAC[REAL_ARITH `x - y:real = z <=> x = y + z`] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:5186:      EXISTS_TAC `(y:real^N^M)$1 - (M:real^N^N) ** (x:real^N^M)$1` THEN
hol-light-20190729/Multivariate/convex.ml-5187-      EXISTS_TAC `\x:real^N. (M:real^N^N) ** x` THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-5438-  REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/convex.ml:5439:   [ASM SET_TAC[]; ASM SET_TAC[real_ge]; REAL_ARITH_TAC; VECTOR_ARITH_TAC]);;
hol-light-20190729/Multivariate/convex.ml-5440-
##############################################
hol-light-20190729/Multivariate/convex.ml-5533-   DISCH_THEN(MP_TAC o SPEC `x:real^N`) THEN
hol-light-20190729/Multivariate/convex.ml:5534:   ASM_REWRITE_TAC[REAL_SUB_RZERO] THEN ASM SET_TAC[]));;
hol-light-20190729/Multivariate/convex.ml-5535-
##############################################
hol-light-20190729/Multivariate/convex.ml-5621-    SUBGOAL_THEN `?b:real^N. b IN s /\ ~(b IN t)` MP_TAC THENL
hol-light-20190729/Multivariate/convex.ml:5622:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-5623-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `b:real^N` THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-5626-    SPEC_TAC(`x:real^N`,`x:real^N`) THEN REWRITE_TAC[GSYM SUBSET] THEN
hol-light-20190729/Multivariate/convex.ml:5627:    MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-5628-  MP_TAC(ASSUME `(a:real^N) IN convex hull s`) THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-5711-      DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Multivariate/convex.ml:5712:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-5713-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-5720-  SUBGOAL_THEN `~((a:real^N) IN t) /\ ~(a IN t')` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/convex.ml:5721:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-5722-  SUBGOAL_THEN `FINITE(t:real^N->bool) /\ FINITE(t':real^N->bool)`
##############################################
hol-light-20190729/Multivariate/convex.ml-5774-  ASM_SIMP_TAC[FINITE_INTER; INTER_SUBSET; IN_INTER] THEN
hol-light-20190729/Multivariate/convex.ml:5775:  (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/convex.ml-5776-  X_GEN_TAC `y:real^N` THEN DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-5778-  REMOVE_THEN "*" (MP_TAC o SPEC `y:real^N`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/convex.ml:5779:  REWRITE_TAC[GSYM REAL_LE_ANTISYM] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-5780-
##############################################
hol-light-20190729/Multivariate/convex.ml-5832-    REPEAT GEN_TAC THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/convex.ml:5833:    ASM_CASES_TAC `(vec 0:real^N) IN s` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-5834-    ASM_SIMP_TAC[AFFINE_EQ_SUBSPACE; AFF_DIM_DIM; HULL_INC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-5923-    REWRITE_TAC[affine_dependent] THEN EXISTS_TAC `x:real^N` THEN
hol-light-20190729/Multivariate/convex.ml:5924:    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC HULL_INC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-5925-    ONCE_REWRITE_TAC[GSYM o_DEF] THEN REWRITE_TAC[IMAGE_o] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-5934-      GEN_REWRITE_TAC I [EXTENSION] THEN
hol-light-20190729/Multivariate/convex.ml:5935:      REWRITE_TAC[IN_INTERS; FORALL_IN_IMAGE] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/convex.ml-5936-    REWRITE_TAC[GSYM AFF_DIM_EQ_HYPERPLANE] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-5944-    MATCH_MP_TAC(ARITH_RULE `~(c = 0) ==> 1 <= c`) THEN
hol-light-20190729/Multivariate/convex.ml:5945:    ASM_SIMP_TAC[CARD_EQ_0] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/convex.ml-5946-
##############################################
hol-light-20190729/Multivariate/convex.ml-6010-    STRIP_TAC THEN COND_CASES_TAC THEN ASM_REWRITE_TAC[AFF_DIM_EMPTY] THEN
hol-light-20190729/Multivariate/convex.ml:6011:    COND_CASES_TAC THENL [AP_TERM_TAC THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-6012-    MP_TAC(ISPECL [`s:real^N->bool`; `{x:real^N | a dot x = b}`]
##############################################
hol-light-20190729/Multivariate/convex.ml-6049-let COLLINEAR_STANDARD_HYPERPLANE_2 = prove
hol-light-20190729/Multivariate/convex.ml:6050: (`!k b. dimindex(:N) <= 2 ==> collinear {x:real^N | x$k = b}`,
hol-light-20190729/Multivariate/convex.ml-6051-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/convex.ml:6052:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/convex.ml-6053-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-6139-      SUBGOAL_THEN `~(x:real^N = vec 0)` MP_TAC THENL
hol-light-20190729/Multivariate/convex.ml:6140:       [ASM SET_TAC[]; REWRITE_TAC[CART_EQ]] THEN
hol-light-20190729/Multivariate/convex.ml-6141-      REWRITE_TAC[VEC_COMPONENT; IN_NUMSEG; VEC_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-6158-        ==> !a. a IN s ==> ~(u SUBSET f a)`) THEN
hol-light-20190729/Multivariate/convex.ml:6159:      ASM_REWRITE_TAC[IN_ELIM_THM; ORTHOGONAL_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-6160-      DISCH_THEN(MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/convex.ml-6187-        X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/convex.ml:6188:        SPEC_TAC(`(h:real^N->real^N) x$(SUC n)`,`b:real`) THEN GEN_TAC THEN
hol-light-20190729/Multivariate/convex.ml-6189-        FIRST_X_ASSUM(fun th ->
##############################################
hol-light-20190729/Multivariate/convex.ml-6201-                (span (IMAGE basis (1..SUC n)))` THEN
hol-light-20190729/Multivariate/convex.ml:6202:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-6203-        REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_SPAN_IMAGE_BASIS] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-6290-            SUBGOAL_THEN `(h:real^N->real^N) x IN span(IMAGE basis (1..SUC n))`
hol-light-20190729/Multivariate/convex.ml:6291:            MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-6292-            ASM_SIMP_TAC[IN_SPAN_IMAGE_BASIS] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-6356-      REWRITE_TAC[SUBSET; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/convex.ml:6357:      REPEAT STRIP_TAC THEN MATCH_MP_TAC SPAN_SUB THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-6358-      MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-6527-    CONJ_TAC THENL [ALL_TAC; VECTOR_ARITH_TAC] THEN
hol-light-20190729/Multivariate/convex.ml:6528:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-6529-    EXISTS_TAC `{a:real^N}` THEN SIMP_TAC[FINITE_RULES] THEN
hol-light-20190729/Multivariate/convex.ml-6530-    REWRITE_TAC[CONVEX_HULL_SING; IN_SING] THEN
hol-light-20190729/Multivariate/convex.ml:6531:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-6532-    SIMP_TAC[CARD_CLAUSES; FINITE_RULES; NOT_IN_EMPTY] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-6540-  ASM_REWRITE_TAC[REAL_ARITH `d <= &1 <=> &0 <= &1 - d`] THEN
hol-light-20190729/Multivariate/convex.ml:6541:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-6542-  EXISTS_TAC `u:real^N->bool` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/convex.ml:6543:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-6544-  UNDISCH_TAC `CARD ((a:real^N) INSERT u) <= SUC n` THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-6957-    ASM_SIMP_TAC[CLOSED_AFFINE; AFFINE_DIFFERENCES; DIST_0] THEN
hol-light-20190729/Multivariate/convex.ml:6958:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-6959-    REWRITE_TAC[FORALL_IN_GSPEC; dist] THEN REWRITE_TAC[IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-6964-  MATCH_MP_TAC(TAUT `p /\ (p ==> q) ==> p /\ q`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/convex.ml:6965:   [EXPAND_TAC "d" THEN REWRITE_TAC[VECTOR_SUB_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-6966-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-7321-  STRIP_TAC THEN ASM_REWRITE_TAC[RIGHT_EXISTS_AND_THM] THEN
hol-light-20190729/Multivariate/convex.ml:7322:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-7323-  EXISTS_TAC `(a:real^N) dot z` THEN REWRITE_TAC[REAL_LE_REFL] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-7373-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN
hol-light-20190729/Multivariate/convex.ml:7374:  ASM_CASES_TAC `(a:real^N) IN s` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-7375-  MP_TAC(ISPECL [`s:real^N->bool`; `{a:real^N}`]
##############################################
hol-light-20190729/Multivariate/convex.ml-7377-  ASM_REWRITE_TAC[CONVEX_SING; NOT_IMP] THEN
hol-light-20190729/Multivariate/convex.ml:7378:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/convex.ml-7379-  MAP_EVERY X_GEN_TAC [`v:real^N`; `d:real`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-7386-   [SIMP_TAC[CONNECTED_INSERT; CONVEX_HALFSPACE_GT; CONVEX_CONNECTED] THEN
hol-light-20190729/Multivariate/convex.ml:7387:    DISJ2_TAC THEN ASM_SIMP_TAC[CLOSURE_HALFSPACE_GT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-7388-    ASM_REWRITE_TAC[INSERT_SUBSET; IN_DIFF; IN_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-7390-     `s SUBSET UNIV DIFF t <=> !x. x IN t ==> ~(x IN s)`];
hol-light-20190729/Multivariate/convex.ml:7391:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/convex.ml-7392-
##############################################
hol-light-20190729/Multivariate/convex.ml-7428-               CLOSURE_HALFSPACE_LT; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/convex.ml:7429:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-7430-  ASM_REWRITE_TAC[INSERT_SUBSET; IN_UNIV; IN_DIFF] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-7471-        (el 6 (CONJUNCTS DISJOINT_HALFSPACES_IMP_COLLINEAR))) THEN
hol-light-20190729/Multivariate/convex.ml:7472:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-7473-    MP_TAC(ISPECL [`a1:real^N`; `a2:real^N`; `b1:real`; `b2:real`]
hol-light-20190729/Multivariate/convex.ml-7474-        (el 6 (CONJUNCTS DISJOINT_HALFSPACES_IMP_COLLINEAR))) THEN
hol-light-20190729/Multivariate/convex.ml:7475:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-7476-    ASM_REWRITE_TAC[COLLINEAR_LEMMA_ALT; LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-7495-     `DISJOINT {x:real^N | a1 dot x <= b1} {x | a3 dot x <= b3}`
hol-light-20190729/Multivariate/convex.ml:7496:    MP_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[]];
hol-light-20190729/Multivariate/convex.ml-7497-    SUBGOAL_THEN
hol-light-20190729/Multivariate/convex.ml-7498-     `DISJOINT {x:real^N | a1 dot x <= b1} {x | a2 dot x <= b2}`
hol-light-20190729/Multivariate/convex.ml:7499:    MP_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[]];
hol-light-20190729/Multivariate/convex.ml-7500-    SUBGOAL_THEN
hol-light-20190729/Multivariate/convex.ml-7501-     `DISJOINT {x:real^N | a2 dot x <= b2} {x | a3 dot x <= b3}`
hol-light-20190729/Multivariate/convex.ml:7502:    MP_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[]]] THEN
hol-light-20190729/Multivariate/convex.ml-7503-  REWRITE_TAC[DOT_LMUL] THEN ONCE_REWRITE_TAC[REAL_MUL_SYM] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-7562-    ASM_REWRITE_TAC[CONVEX_SING] THEN
hol-light-20190729/Multivariate/convex.ml:7563:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/convex.ml-7564-    MAP_EVERY X_GEN_TAC [`a:real^N`; `b:real`] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-7822-    REWRITE_TAC[GSYM CONVEX_HULL_EQ] THEN
hol-light-20190729/Multivariate/convex.ml:7823:    REPEAT STRIP_TAC THENL [ASM_MESON_TAC[]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/convex.ml-7824-    SIMP_TAC[SET_RULE `a IN s ==> a INSERT s = s`; HULL_P] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-7849-  EXISTS_TAC `v:real^N` THEN
hol-light-20190729/Multivariate/convex.ml:7850:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-7851-
##############################################
hol-light-20190729/Multivariate/convex.ml-7936-       ASM_CASES_TAC `&0 < u (v:real^N)` THENL
hol-light-20190729/Multivariate/convex.ml:7937:    [ASM SET_TAC[];ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-7938-    POP_ASSUM MP_TAC THEN POP_ASSUM (K ALL_TAC) THEN POP_ASSUM MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-8033-     MAP_EVERY EXISTS_TAC [`s:real^N->bool`;`u:real^N->real`] THEN
hol-light-20190729/Multivariate/convex.ml:8034:     ASM SET_TAC[];ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-8035-  DISCH_THEN STRIP_ASSUME_TAC THEN
hol-light-20190729/Multivariate/convex.ml-8036-  MAP_EVERY EXISTS_TAC [`m:real^N->bool`;`p:real^N->bool`] THEN
hol-light-20190729/Multivariate/convex.ml:8037:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-8038-
##############################################
hol-light-20190729/Multivariate/convex.ml-8063-    GEN_TAC THEN STRIP_TAC THEN REMOVE_THEN "*" MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:8064:    ASM_SIMP_TAC[FINITE_DELETE; CARD_DELETE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-8065-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-8116-  (CONJ_TAC THENL [ALL_TAC; ASM_MESON_TAC[SUBSET; CONVEX_INTERS]]) THEN
hol-light-20190729/Multivariate/convex.ml:8117:  REWRITE_TAC[SUBSET; IN_INTERS; FORALL_IN_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-8118-
##############################################
hol-light-20190729/Multivariate/convex.ml-8149-  MATCH_MP_TAC HELLY_ALT THEN ASM_REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/convex.ml:8150:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-8151-    ASM_MESON_TAC[SUBSET_TRANS; FINITE_SUBSET]]);;
##############################################
hol-light-20190729/Multivariate/convex.ml-8182-  EXISTS_TAC `INTERS h: real^N->bool` THEN
hol-light-20190729/Multivariate/convex.ml:8183:  CONJ_TAC THENL [ASM SET_TAC[]; FIRST_X_ASSUM MATCH_MP_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-8184-  ASM_MESON_TAC[HAS_SIZE]);;
##############################################
hol-light-20190729/Multivariate/convex.ml-8307-    FIRST_X_ASSUM(MP_TAC o SPECL [`s':real^N->bool`; `t':real^N->bool`]) THEN
hol-light-20190729/Multivariate/convex.ml:8308:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/convex.ml-8309-
##############################################
hol-light-20190729/Multivariate/convex.ml-8358-  GEN_TAC THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:8359:  DISJ_CASES_TAC(SPECL [`(x:real^N)$i`; `(y:real^N)$i`] REAL_LE_TOTAL) THENL
hol-light-20190729/Multivariate/convex.ml-8360-   [DISJ1_TAC; DISJ2_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-8449-     [ASM_REWRITE_TAC[] THEN MATCH_MP_TAC SPAN_ADD THEN CONJ_TAC THEN
hol-light-20190729/Multivariate/convex.ml:8450:      MATCH_MP_TAC SPAN_MUL THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-8451-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-8467-       `~(&0 < x - y \/ &0 < y - x) <=> y = x`]] THEN
hol-light-20190729/Multivariate/convex.ml:8468:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/convex.ml-8469-
##############################################
hol-light-20190729/Multivariate/convex.ml-8533-  REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:8534:  MP_TAC(ISPEC `IMAGE (\x:real^N. lift(x$1)) s`
hol-light-20190729/Multivariate/convex.ml-8535-        CONNECTED_COMPACT_INTERVAL_1) THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-8770-      SUBGOAL_THEN `r = norm(x:real^N)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/convex.ml:8771:       [ASM SET_TAC[]; REWRITE_TAC[NORM_LT; dot]] THEN
hol-light-20190729/Multivariate/convex.ml-8772-      SIMP_TAC[SUM_CLAUSES_LEFT; DIMINDEX_GE_1] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-8863-      REWRITE_TAC[NORM_POS_LE] THEN
hol-light-20190729/Multivariate/convex.ml:8864:      MATCH_MP_TAC DIAMETER_BOUNDED_BOUND THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-8865-    MATCH_MP_TAC REAL_LE_TRANS THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-8911-        ASM_REWRITE_TAC[] THEN MATCH_MP_TAC CARD_SUBSET THEN
hol-light-20190729/Multivariate/convex.ml:8912:        ASM SET_TAC[]]]]);;
hol-light-20190729/Multivariate/convex.ml-8913-
##############################################
hol-light-20190729/Multivariate/convex.ml-9013-      SUBST1_TAC THENL
hol-light-20190729/Multivariate/convex.ml:9014:       [ALL_TAC; REWRITE_TAC[INTERS_IMAGE] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-9015-      REWRITE_TAC[INTERS_IMAGE] THEN MATCH_MP_TAC SUBSET_ANTISYM THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9310-        REWRITE_TAC[] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/convex.ml:9311:         [REWRITE_TAC[SUBSET; IN_IMAGE; EXISTS_PAIR_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-9312-          ASM_MESON_TAC[];
hol-light-20190729/Multivariate/convex.ml:9313:          REWRITE_TAC[FORALL_IN_IMAGE_2; FORALL_PAIR_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-9314-          REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; FORALL_PAIR_THM] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9321-            REWRITE_TAC[EXISTS_PAIR_THM; IN_ELIM_PAIR_THM; IN_IMAGE] THEN
hol-light-20190729/Multivariate/convex.ml:9322:            REWRITE_TAC[IN_ELIM_THM; PAIR_EQ] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-9323-          REWRITE_TAC[IN_ELIM_THM; PAIR_EQ; SUBSET] THEN
hol-light-20190729/Multivariate/convex.ml:9324:          REWRITE_TAC[FORALL_PAIR_THM] THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/convex.ml-9325-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `g:real^M->real^N` THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9327-    ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/convex.ml:9328:    ASM_CASES_TAC `t = (:real^M)` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-9329-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/convex.ml-9341-      REWRITE_TAC[NORM_0; VECTOR_SUB_REFL; REAL_LE_REFL] THEN
hol-light-20190729/Multivariate/convex.ml:9342:      REPLICATE_TAC 3 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/convex.ml:9343:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-9344-      REPEAT(GEN_TAC THEN STRIP_TAC THEN COND_CASES_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9367-                  LIFT_DROP; NORM_POS_LT; VECTOR_SUB_EQ] THEN
hol-light-20190729/Multivariate/convex.ml:9368:      ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-9369-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9431-        REPEAT(MATCH_MP_TAC REAL_LE_MUL THEN CONJ_TAC) THEN
hol-light-20190729/Multivariate/convex.ml:9432:        REWRITE_TAC[REAL_LE_POW_2] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-9433-        REWRITE_TAC[REAL_ENTIRE] THEN CONV_TAC REAL_RAT_REDUCE_CONV THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9443-          REPEAT(MATCH_MP_TAC REAL_LE_MUL THEN CONJ_TAC) THEN
hol-light-20190729/Multivariate/convex.ml:9444:          REWRITE_TAC[REAL_LE_POW_2] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-9445-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9456-          REPEAT(MATCH_MP_TAC REAL_LE_MUL THEN CONJ_TAC) THEN
hol-light-20190729/Multivariate/convex.ml:9457:          REWRITE_TAC[REAL_LE_POW_2] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-9458-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9466-        SUBGOAL_THEN `d = {x:real^M}` SUBST1_TAC THENL
hol-light-20190729/Multivariate/convex.ml:9467:         [ASM SET_TAC[]; REWRITE_TAC[VSUM_SING; SUM_SING]] THEN
hol-light-20190729/Multivariate/convex.ml-9468-        REWRITE_TAC[VECTOR_MUL_EQ_0; VECTOR_SUB_EQ; DE_MORGAN_THM] THEN
hol-light-20190729/Multivariate/convex.ml-9469-        DISCH_THEN SUBST1_TAC THEN CONV_TAC REAL_RAT_REDUCE_CONV THEN
hol-light-20190729/Multivariate/convex.ml:9470:        ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/convex.ml-9471-    REWRITE_TAC[NORM_POW_2] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9501-      REWRITE_TAC[GSYM REAL_LE_SQUARE_ABS; REAL_ABS_NORM] THEN
hol-light-20190729/Multivariate/convex.ml:9502:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-9503-      REWRITE_TAC[GSYM REAL_POW_MUL; GSYM REAL_LE_SQUARE_ABS] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9505-      GEN_REWRITE_TAC LAND_CONV [NORM_SUB] THEN
hol-light-20190729/Multivariate/convex.ml:9506:      ONCE_REWRITE_TAC[REAL_MUL_SYM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-9507-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9573-    EXISTS_TAC `(\x. y):real^M->real^N` THEN
hol-light-20190729/Multivariate/convex.ml:9574:    REWRITE_TAC[CONTINUOUS_ON_CONST] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-9575-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9641-    X_GEN_TAC `x:real^M` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/convex.ml:9642:    COND_CASES_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml:9643:    MATCH_MP_TAC CONVEX_VSUM_STRONG THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-9644-  REWRITE_TAC[CONTINUOUS_ON_EQ_CONTINUOUS_WITHIN] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9665-      MATCH_MP_TAC VSUM_SUPERSET THEN
hol-light-20190729/Multivariate/convex.ml:9666:      REWRITE_TAC[VECTOR_MUL_EQ_0] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-9667-      MATCH_MP_TAC CONTINUOUS_VSUM THEN ASM_REWRITE_TAC[IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9705-  X_GEN_TAC `t:real^M->bool` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/convex.ml:9706:  ASM_CASES_TAC `(x:real^M) IN t` THENL [DISJ2_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-9707-  REWRITE_TAC[IN_BALL] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-9711-    ==> dist(a,a') <= &6 * dist(a,v) ==> dist(a',a) < d`)) THEN
hol-light-20190729/Multivariate/convex.ml:9712:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-9713-
##############################################
hol-light-20190729/Multivariate/convex.ml-9926-              FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/Multivariate/convex.ml:9927:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-9928-
##############################################
hol-light-20190729/Multivariate/convex.ml-10125-  REWRITE_TAC[FORALL_IN_GSPEC] THEN DISCH_THEN MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:10126:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-10127-
##############################################
hol-light-20190729/Multivariate/convex.ml-10191-  ASM_REWRITE_TAC[] THEN DISCH_THEN MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:10192:  ASM_REWRITE_TAC[GSYM IN_NUMSEG] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-10193-
##############################################
hol-light-20190729/Multivariate/convex.ml-10340-  ASM_CASES_TAC
hol-light-20190729/Multivariate/convex.ml:10341:   `{i | 1 <= i /\ i <= dimindex(:N) /\ ~((x:real^N)$i = &0)} = {}`
hol-light-20190729/Multivariate/convex.ml-10342-  THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-10365-  FIRST_X_ASSUM SUBST_ALL_TAC THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:10366:  SUBGOAL_THEN `&0 <= (x:real^N)$i /\ x$i <= &1` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/convex.ml-10367-   [UNDISCH_TAC `x:real^N IN interval [vec 0,vec 1]` THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-10373-   [SUBGOAL_THEN
hol-light-20190729/Multivariate/convex.ml:10374:     `x = lambda i. if (x:real^N)$i = &0 then &0 else &1`
hol-light-20190729/Multivariate/convex.ml-10375-    SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-10452-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN EXISTS_TAC
hol-light-20190729/Multivariate/convex.ml:10453:     `{i | 1 <= i /\ i <= dimindex(:N) /\ ((x:real^N)$i = &1)}` THEN
hol-light-20190729/Multivariate/convex.ml-10454-    SIMP_TAC[CART_EQ; IN_ELIM_THM; IN_NUMSEG; LAMBDA_BETA] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-10790-              FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/Multivariate/convex.ml:10791:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-10792-
##############################################
hol-light-20190729/Multivariate/convex.ml-10831-    REWRITE_TAC[IMAGE_CLAUSES; UNIONS_2] THEN
hol-light-20190729/Multivariate/convex.ml:10832:    BINOP_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/convex.ml-10833-
##############################################
hol-light-20190729/Multivariate/convex.ml-10848-   [ONCE_REWRITE_TAC[SEGMENT_SYM]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml:10849:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-10850-
##############################################
hol-light-20190729/Multivariate/convex.ml-10876-      EXISTS_TAC `min d e:real` THEN
hol-light-20190729/Multivariate/convex.ml:10877:      ASM_REWRITE_TAC[BALL_MIN_INTER; REAL_LT_MIN] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-10878-      ALL_TAC];
##############################################
hol-light-20190729/Multivariate/convex.ml-11311-    EXISTS_TAC `t INTER u:real^N->bool` THEN
hol-light-20190729/Multivariate/convex.ml:11312:    ASM_SIMP_TAC[OPEN_INTER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-11313-    MESON_TAC[RELATIVE_INTERIOR_MAXIMAL]]);;
##############################################
hol-light-20190729/Multivariate/convex.ml-11379-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_INJECTIVE_LINEAR_IMAGE) THEN
hol-light-20190729/Multivariate/convex.ml:11380:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-11381-
##############################################
hol-light-20190729/Multivariate/convex.ml-11761-  X_GEN_TAC `x:real^N` THEN COND_CASES_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/convex.ml:11762:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-11763-  REWRITE_TAC[IN_INTER; UNIONS_GSPEC; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-11773-    ONCE_REWRITE_TAC[segment] THEN
hol-light-20190729/Multivariate/convex.ml:11774:    ASM_REWRITE_TAC[IN_DIFF; IN_INSERT; NOT_IN_EMPTY] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/convex.ml-11775-
##############################################
hol-light-20190729/Multivariate/convex.ml-11793-    MP_TAC(SPEC `b:real^N` th) THEN MP_TAC(SPEC `a:real^N` th)) THEN
hol-light-20190729/Multivariate/convex.ml:11794:  ASM_REWRITE_TAC[SEGMENT_SYM; CONJUNCT2 segment] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-11795-
##############################################
hol-light-20190729/Multivariate/convex.ml-11805-  RULE_ASSUM_TAC(REWRITE_RULE[relative_frontier; IN_DIFF]) THEN
hol-light-20190729/Multivariate/convex.ml:11806:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-11807-
##############################################
hol-light-20190729/Multivariate/convex.ml-11923-  X_GEN_TAC `a:real^N` THEN
hol-light-20190729/Multivariate/convex.ml:11924:  REPEAT STRIP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-11925-  MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/convex.ml-11966-     [ASM_SIMP_TAC[MEMBER_NOT_EMPTY; RELATIVE_INTERIOR_EQ_EMPTY] THEN
hol-light-20190729/Multivariate/convex.ml:11967:      ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-11968-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-12255-    SEGMENT_TO_RELATIVE_FRONTIER_SIMPLE) THEN
hol-light-20190729/Multivariate/convex.ml:12256:  ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-12257-  SUBGOAL_THEN `segment[a:real^N,b] SUBSET convex hull (relative_frontier s)`
hol-light-20190729/Multivariate/convex.ml:12258:   (fun th -> MP_TAC th THEN ASM SET_TAC[]) THEN
hol-light-20190729/Multivariate/convex.ml-12259-  REWRITE_TAC[SEGMENT_CONVEX_HULL] THEN MATCH_MP_TAC HULL_MINIMAL THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-12269-    SEGMENT_TO_FRONTIER_SIMPLE) THEN
hol-light-20190729/Multivariate/convex.ml:12270:  ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-12271-  SUBGOAL_THEN `segment[a:real^N,b] SUBSET convex hull (frontier s)`
hol-light-20190729/Multivariate/convex.ml:12272:   (fun th -> MP_TAC th THEN ASM SET_TAC[]) THEN
hol-light-20190729/Multivariate/convex.ml-12273-  REWRITE_TAC[SEGMENT_CONVEX_HULL] THEN MATCH_MP_TAC HULL_MINIMAL THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-12326-  SUBGOAL_THEN `?w:real^N. w IN s /\ ~(w = z)` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/convex.ml:12327:   [ASM SET_TAC[]; REPEAT STRIP_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-12328-  SUBGOAL_THEN
hol-light-20190729/Multivariate/convex.ml-12329-    `~((w:real^N) IN relative_frontier s /\ z IN relative_frontier s)`
hol-light-20190729/Multivariate/convex.ml:12330:  MP_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-12331-  MAP_EVERY UNDISCH_TAC
##############################################
hol-light-20190729/Multivariate/convex.ml-12375-    W(MP_TAC o PART_MATCH (funpow 3 rand) SUBSET_PCROSS o snd) THEN
hol-light-20190729/Multivariate/convex.ml:12376:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-12377-    DISCH_THEN(CONJUNCTS_THEN2
##############################################
hol-light-20190729/Multivariate/convex.ml-12619-    IN_RELATIVE_INTERIOR_CLOSURE_CONVEX_SEGMENT) THEN
hol-light-20190729/Multivariate/convex.ml:12620:  ASM_SIMP_TAC[REWRITE_RULE[SUBSET] CLOSURE_SUBSET] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-12621-
##############################################
hol-light-20190729/Multivariate/convex.ml-12652-      DISCH_THEN(MP_TAC o SPECL [`y:real^N`; `v:real^N`]) THEN
hol-light-20190729/Multivariate/convex.ml:12653:      ASM_REWRITE_TAC[SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-12654-      EXISTS_TAC `v:real^N` THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-12657-      DISCH_THEN(MP_TAC o SPECL [`y:real^N`; `u:real^N`]) THEN
hol-light-20190729/Multivariate/convex.ml:12658:      ASM_REWRITE_TAC[SUBSET] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/convex.ml-12659-
##############################################
hol-light-20190729/Multivariate/convex.ml-12677-    MP_TAC(ISPEC `s:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/convex.ml:12678:    MP_TAC(ISPEC `t:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-12679-    DISCH_THEN(X_CHOOSE_THEN `z:real^N` STRIP_ASSUME_TAC) THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-12683-        IN_RELATIVE_INTERIOR_CLOSURE_CONVEX_SEGMENT)] THEN
hol-light-20190729/Multivariate/convex.ml:12684:    ASM_SIMP_TAC[REWRITE_RULE[SUBSET] CLOSURE_SUBSET] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/convex.ml-12685-
##############################################
hol-light-20190729/Multivariate/convex.ml-12886-   [X_GEN_TAC `i:num` THEN STRIP_TAC THEN MATCH_MP_TAC lemma THEN
hol-light-20190729/Multivariate/convex.ml:12887:    MAP_EVERY EXISTS_TAC [`(a:real^N)$i`; `(b:real^N)$i`] THEN
hol-light-20190729/Multivariate/convex.ml-12888-    ASM_SIMP_TAC[GSYM VECTOR_SUB_COMPONENT] THEN CONJ_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-12932-    EXISTS_TAC `u * (f:real^N->real) b / f x` THEN
hol-light-20190729/Multivariate/convex.ml:12933:    ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Multivariate/convex.ml-12934-        [REAL_LE_MUL; REAL_LE_DIV; REAL_SUB_LE; REAL_LT_IMP_LE] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-13057-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [homeomorphism]) THEN
hol-light-20190729/Multivariate/convex.ml:13058:    ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-13059-  X_GEN_TAC `x:real^N` THEN EXPAND_TAC "f" THEN REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-13233-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] REAL_LET_TRANS) THEN
hol-light-20190729/Multivariate/convex.ml:13234:  MATCH_MP_TAC SETDIST_LE_DIST THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-13235-
##############################################
hol-light-20190729/Multivariate/convex.ml-13498-  MP_TAC(ISPEC `u:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/convex.ml:13499:  MP_TAC(ISPEC `u:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/convex.ml-13500-
##############################################
hol-light-20190729/Multivariate/convex.ml-13604-    REWRITE_TAC[GSYM closed; CLOSED_CLOSURE];
hol-light-20190729/Multivariate/convex.ml:13605:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-13606-    MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/convex.ml-13608-    REWRITE_TAC[RELATIVE_INTERIOR_SUBSET; CLOSURE_SUBSET];
hol-light-20190729/Multivariate/convex.ml:13609:    MP_TAC(ISPEC `t:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-13610-    MP_TAC(ISPEC `t:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/convex.ml:13611:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/convex.ml-13612-
##############################################
hol-light-20190729/Multivariate/convex.ml-13714-    MP_TAC(ISPEC `s:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/convex.ml:13715:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-13716-    MATCH_MP_TAC RELATIVE_INTERIOR_MAXIMAL THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-13737-        MP_TAC(ISPEC `s:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/convex.ml:13738:        ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-13739-        MATCH_MP_TAC HULL_MINIMAL THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-13877-  ASM_SIMP_TAC[SUBSPACE_IMP_AFFINE; IN_RELATIVE_INTERIOR_CBALL] THEN
hol-light-20190729/Multivariate/convex.ml:13878:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_INTER; IN_INTERIOR_CBALL]] THEN
hol-light-20190729/Multivariate/convex.ml-13879-  DISCH_THEN SUBST1_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-13936-      MATCH_MP_TAC SUBSET_CLOSURE THEN
hol-light-20190729/Multivariate/convex.ml:13937:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/convex.ml-13938-    ALL_TAC;
hol-light-20190729/Multivariate/convex.ml-13939-    MP_TAC(ISPEC`relative_interior c INTER u:real^N->bool` CLOSURE_SUBSET) THEN
hol-light-20190729/Multivariate/convex.ml:13940:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-13941-    MP_TAC(ISPEC`relative_interior c INTER v:real^N->bool` CLOSURE_SUBSET) THEN
hol-light-20190729/Multivariate/convex.ml:13942:    ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-13943-  REWRITE_TAC[EXTENSION; IN_INTER; NOT_IN_EMPTY] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-13955-   [MP_TAC(ISPEC `c:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/convex.ml:13956:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml:13957:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/convex.ml-13958-  ONCE_REWRITE_TAC[SET_RULE `u INTER b INTER i = b INTER u INTER i`] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-14047-    SUBGOAL_THEN `(f:real^1->real^1) a = g a /\ f b = g b`
hol-light-20190729/Multivariate/convex.ml:14048:    (CONJUNCTS_THEN SUBST_ALL_TAC) THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-14049-    SUBGOAL_THEN `drop a < drop x /\ drop x < drop b` STRIP_ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-14070-    CONJ_TAC THENL [ALL_TAC; MATCH_MP_TAC SUBSET_CLOSURE] THEN
hol-light-20190729/Multivariate/convex.ml:14071:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/convex.ml-14072-
##############################################
hol-light-20190729/Multivariate/convex.ml-14337-  REWRITE_TAC[GSYM BETWEEN_IN_SEGMENT] THEN
hol-light-20190729/Multivariate/convex.ml:14338:  (ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/convex.ml-14339-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] SUBSET_TRANS) THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-14485-        `a IN s /\ b IN s ==> s DIFF (s DIFF {a,b}) = {a,b}`] THEN
hol-light-20190729/Multivariate/convex.ml:14486:      ASM SET_TAC[SEGMENT_EQ_SING];
hol-light-20190729/Multivariate/convex.ml-14487-      SIMP_TAC[SEGMENT_CONVEX_HULL]];
##############################################
hol-light-20190729/Multivariate/convex.ml-14494-    COND_CASES_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/convex.ml:14495:     [ASM SET_TAC[SEGMENT_EQ_EMPTY];
hol-light-20190729/Multivariate/convex.ml-14496-      REWRITE_TAC[open_segment; ENDS_IN_SEGMENT; SET_RULE
##############################################
hol-light-20190729/Multivariate/convex.ml-14500-    ASM_REWRITE_TAC[SEGMENT_EQ_EMPTY; SEGMENT_REFL] THENL
hol-light-20190729/Multivariate/convex.ml:14501:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-14502-    CONV_TAC(BINOP_CONV SYM_CONV)THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-14504-    ASM_REWRITE_TAC[SEGMENT_EQ_EMPTY; SEGMENT_REFL] THENL
hol-light-20190729/Multivariate/convex.ml:14505:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-14506-    ASM_REWRITE_TAC[GSYM SUBSET_ANTISYM_EQ; SUBSET_SEGMENT_OPEN_CLOSED] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-14531-    ASM_REWRITE_TAC[AFFINE_INDEPENDENT_2] THEN
hol-light-20190729/Multivariate/convex.ml:14532:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[INSERT_AC]] THEN
hol-light-20190729/Multivariate/convex.ml-14533-    DISCH_THEN SUBST1_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-14615-let CLOSED_STRIP_COMPONENT_LE = prove
hol-light-20190729/Multivariate/convex.ml:14616: (`!a k. closed {x:real^N | abs(x$k) <= a}`,
hol-light-20190729/Multivariate/convex.ml-14617-  REWRITE_TAC[REAL_ARITH `abs(x) <= a <=> x <= a /\ x >= --a`] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-14622-let OPEN_STRIP_COMPONENT_LT = prove
hol-light-20190729/Multivariate/convex.ml:14623: (`!a k. open {x:real^N | abs(x$k) < a}`,
hol-light-20190729/Multivariate/convex.ml-14624-  REWRITE_TAC[REAL_ARITH `abs(x) < a <=> x < a /\ x > --a`] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-14629-let INTERIOR_STRIP_COMPONENT_LE = prove
hol-light-20190729/Multivariate/convex.ml:14630: (`!a k. interior {x:real^N | abs(x$k) <= a} = {x | abs(x$k) < a}`,
hol-light-20190729/Multivariate/convex.ml-14631-  REWRITE_TAC[REAL_ARITH `abs(x) <= a <=> x <= a /\ x >= --a`;
##############################################
hol-light-20190729/Multivariate/convex.ml-14654-let FRONTIER_STRIP_COMPONENT_LE = prove
hol-light-20190729/Multivariate/convex.ml:14655: (`!a k. frontier {x:real^N | abs(x$k) <= a} = {x | abs(x$k) = a}`,
hol-light-20190729/Multivariate/convex.ml-14656-  SIMP_TAC[frontier; CLOSED_STRIP_COMPONENT_LE; CLOSURE_CLOSED;
##############################################
hol-light-20190729/Multivariate/convex.ml-14721-    TRANS_TAC EQ_TRANS `closure s:real^N->bool` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/convex.ml:14722:     [AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-14723-      ASM_SIMP_TAC[CLOSURE_CLOSED; CLOSED_AFFINE]];
##############################################
hol-light-20190729/Multivariate/convex.ml-14921-        ==> (proj:real^N->real^N) x IN usph`
hol-light-20190729/Multivariate/convex.ml:14922:  ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-14923-  SUBGOAL_THEN `?surf. homeomorphism (s DIFF relative_interior s,usph)
##############################################
hol-light-20190729/Multivariate/convex.ml-14929-          CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/convex.ml:14930:      ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-14931-      MATCH_MP_TAC SUBSET_ANTISYM THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-14951-      REWRITE_TAC[IN_DIFF] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:14952:      ASM_CASES_TAC `x:real^N = vec 0` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml:14953:      ASM_CASES_TAC `y:real^N = vec 0` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-14954-      UNDISCH_TAC `(proj:real^N->real^N) x = proj y` THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-15025-        REWRITE_TAC[REAL_LT_01; IN_INTER; DIST_0; NORM_POS_LT] THEN
hol-light-20190729/Multivariate/convex.ml:15026:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/convex.ml-15027-      MATCH_MP_TAC CONTINUOUS_WITHIN_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-15055-     [ASM_SIMP_TAC[VECTOR_MUL_LZERO; VECTOR_MUL_EQ_0; NORM_0; NORM_EQ_0] THEN
hol-light-20190729/Multivariate/convex.ml:15056:      ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-15057-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-15060-      ASM_SIMP_TAC[VECTOR_MUL_LZERO; VECTOR_MUL_EQ_0; NORM_0; NORM_EQ_0] THEN
hol-light-20190729/Multivariate/convex.ml:15061:      ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-15062-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-15066-             MP_TAC(AP_TERM `proj:real^N->real^N` th)) THEN
hol-light-20190729/Multivariate/convex.ml:15067:    ASM_SIMP_TAC[NORM_POS_LT; VECTOR_MUL_RCANCEL] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-15068-  MATCH_MP_TAC SUBSET_ANTISYM THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-15074-      FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_REWRITE_TAC[NORM_POS_LE] THEN
hol-light-20190729/Multivariate/convex.ml:15075:      ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml:15076:      ASM_REWRITE_TAC[VECTOR_MUL_LID] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/convex.ml-15077-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-15085-   `!x. x IN usph ==> ~((surf:real^N->real^N) x = vec 0)`
hol-light-20190729/Multivariate/convex.ml:15086:  ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-15087-  EXISTS_TAC `inv(norm(surf(proj x:real^N):real^N)) % x:real^N` THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-15089-  REWRITE_TAC[GSYM CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/convex.ml:15090:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Multivariate/convex.ml-15091-   [NORM_POS_LT; REAL_LT_INV_EQ; HULL_INC; REAL_LT_MUL; NORM_MUL;
##############################################
hol-light-20190729/Multivariate/convex.ml-15096-    ONCE_REWRITE_TAC[REAL_MUL_SYM] THEN
hol-light-20190729/Multivariate/convex.ml:15097:    ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Multivariate/convex.ml-15098-     [GSYM real_div; REAL_LE_LDIV_EQ; NORM_POS_LT; HULL_INC; REAL_MUL_LID] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-15107-     [FIRST_X_ASSUM(fun th -> GEN_REWRITE_TAC I [GSYM th]) THEN
hol-light-20190729/Multivariate/convex.ml:15108:      ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Multivariate/convex.ml-15109-       [NORM_POS_LT; REAL_LT_INV_EQ; HULL_INC; REAL_LT_MUL; NORM_MUL;
##############################################
hol-light-20190729/Multivariate/convex.ml-15183-             IN_BALL_0; IN_CBALL_0; IN_SPHERE_0] THEN
hol-light-20190729/Multivariate/convex.ml:15184:    SIMP_TAC[LINEAR_CONTINUOUS_ON] THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/convex.ml-15185-  SIMP_TAC[lemma; relative_frontier] THEN REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-15255-        MATCH_MP_TAC SUBSET_ANTISYM THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/convex.ml:15256:         [REWRITE_TAC[SUBSET_INTER; HULL_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-15257-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-15286-      TRY(FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/convex.ml:15287:          CONTINUOUS_ON_SUBSET))) THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/convex.ml-15288-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-15892-      MP_TAC(ISPEC `s:real^M->bool` CLOSURE_INC) THEN
hol-light-20190729/Multivariate/convex.ml:15893:      MP_TAC(ISPEC `s:real^M->bool` CLOSURE_SUBSET_SPAN) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-15894-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-15905-      MP_TAC(ISPEC `s:real^M->bool` CLOSURE_SUBSET_SPAN) THEN
hol-light-20190729/Multivariate/convex.ml:15906:      REWRITE_TAC[relative_frontier] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-15907-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-16042-  ONCE_REWRITE_TAC[GSYM DIM_SPAN] THEN MATCH_MP_TAC DIM_UNIQUE THEN EXISTS_TAC
hol-light-20190729/Multivariate/convex.ml:16043:   `{basis i:real^N | 1 <= i /\ i <= dimindex(:N) /\ &0 < (b:real^N)$i}` THEN
hol-light-20190729/Multivariate/convex.ml-16044-  RULE_ASSUM_TAC(REWRITE_RULE[INTERVAL_NE_EMPTY; VEC_COMPONENT]) THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-16047-    X_GEN_TAC `i:num` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:16048:    SUBGOAL_THEN `basis i:real^N = inv(b$i) % (b:real^N)$i % basis i`
hol-light-20190729/Multivariate/convex.ml-16049-    SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-16062-    X_GEN_TAC `i:num` THEN REWRITE_TAC[IN_NUMSEG] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:16063:    ASM_CASES_TAC `&0 < (b:real^N)$i` THENL
hol-light-20190729/Multivariate/convex.ml:16064:     [MATCH_MP_TAC SPAN_MUL THEN MATCH_MP_TAC SPAN_SUPERSET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml:16065:      SUBGOAL_THEN `(x:real^N)$i = &0`
hol-light-20190729/Multivariate/convex.ml-16066-        (fun th -> REWRITE_TAC[th; VECTOR_MUL_LZERO; SPAN_0]) THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-16199-    ASM_CASES_TAC `c:real = a` THENL
hol-light-20190729/Multivariate/convex.ml:16200:     [ASM SET_TAC[]; DISCH_THEN(K ALL_TAC)] THEN
hol-light-20190729/Multivariate/convex.ml-16201-    REMOVE_THEN "COLLINEAR" (MP_TAC o SPECL
##############################################
hol-light-20190729/Multivariate/convex.ml-16375-               RELATIVE_INTERIOR_EQ_EMPTY; real_ge] THEN
hol-light-20190729/Multivariate/convex.ml:16376:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-16377-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `a:real^N` THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-16643-    SUBGOAL_THEN `(x:real^N) IN affine hull s` MP_TAC THENL
hol-light-20190729/Multivariate/convex.ml:16644:     [ASM SET_TAC[]; REWRITE_TAC[AFFINE_HULL_FINITE; IN_ELIM_THM]] THEN
hol-light-20190729/Multivariate/convex.ml-16645-    DISCH_THEN(X_CHOOSE_THEN `v:real^N->real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-16736-    SUBGOAL_THEN `?y:real^N. y IN s /\ ~(y = x)` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/convex.ml:16737:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-16738-    SUBGOAL_THEN `sum {x,y} u <= sum s (u:real^N->real)` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-16740-      ASM_SIMP_TAC[AFFINE_INDEPENDENT_IMP_FINITE; REAL_LT_IMP_LE; IN_DIFF] THEN
hol-light-20190729/Multivariate/convex.ml:16741:      ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-16742-      ASM_SIMP_TAC[SUM_CLAUSES; FINITE_INSERT; FINITE_EMPTY] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-16783-  SUBGOAL_THEN `?b:real^N. b IN s /\ ~(b = a)` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/convex.ml:16784:   [ASM SET_TAC[];ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-16785-  SUBGOAL_THEN `?d. &0 < d /\ norm(d % (a - b):real^N) < e`
##############################################
hol-light-20190729/Multivariate/convex.ml-16890-  SUBGOAL_THEN `?y:real^N. y IN s /\ ~(y = x)` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/convex.ml:16891:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-16892-  SUBGOAL_THEN `sum {x,y} u <= sum s (u:real^N->real)` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-16894-    ASM_SIMP_TAC[AFFINE_INDEPENDENT_IMP_FINITE; REAL_LT_IMP_LE; IN_DIFF] THEN
hol-light-20190729/Multivariate/convex.ml:16895:    ASM SET_TAC[];
hol-light-20190729/Multivariate/convex.ml-16896-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-17087-    SUBGOAL_THEN `s = (a:real^N) INSERT (s DELETE a)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/convex.ml:17088:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-17089-    ASM_SIMP_TAC[HULL_REDUNDANT] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-17101-      MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/convex.ml:17102:      ASM_REWRITE_TAC[] THEN MATCH_MP_TAC HULL_INC THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/convex.ml-17103-
##############################################
hol-light-20190729/Multivariate/convex.ml-17126-    SUBGOAL_THEN `s = (a:real^N) INSERT (s DELETE a)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/convex.ml:17127:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-17128-    ASM_SIMP_TAC[HULL_REDUNDANT] THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-17368-    ASM_SIMP_TAC[NORM_ARITH `~(&0 <= r) ==> ~(dist(x,y) = r)`] THEN
hol-light-20190729/Multivariate/convex.ml:17369:    ASM_CASES_TAC `(?a:real^N. s = {a})` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-17370-    FIRST_X_ASSUM(CHOOSE_THEN SUBST1_TAC) THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-17588-    STRIP_ASSUME_TAC)) THEN
hol-light-20190729/Multivariate/convex.ml:17589:  ASM_CASES_TAC `s:real^N->bool = {}` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-17590-  ASM_CASES_TAC `aff_dim(s:real^N->bool) = &0` THENL
##############################################
hol-light-20190729/Multivariate/convex.ml-17646-    SUBGOAL_THEN `convex hull k SUBSET cball(a:real^N,e)` MP_TAC THENL
hol-light-20190729/Multivariate/convex.ml:17647:     [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/convex.ml-17648-    MATCH_MP_TAC HULL_MINIMAL THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-17663-    ASM_REWRITE_TAC[] THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/convex.ml:17664:    ANTS_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-17665-    SUBGOAL_THEN `&2 % a - x IN cball(a:real^N,d) /\
##############################################
hol-light-20190729/Multivariate/convex.ml-17674-      ASM_MESON_TAC[SUBSET; CONVEX_HULL_SUBSET_AFFINE_HULL];
hol-light-20190729/Multivariate/convex.ml:17675:      ANTS_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-17676-      ASM_REWRITE_TAC[] THEN ASM_REAL_ARITH_TAC]]);;
##############################################
hol-light-20190729/Multivariate/convex.ml-17695-  ANTS_TAC THENL [ASM_REAL_ARITH_TAC; DISCH_TAC] THEN
hol-light-20190729/Multivariate/convex.ml:17696:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-17697-  MATCH_MP_TAC(MESON[]
##############################################
hol-light-20190729/Multivariate/convex.ml-17872-      CONVEX_IMP_LOCALLY_LIPSCHITZ) THEN
hol-light-20190729/Multivariate/convex.ml:17873:  ANTS_TAC THENL [ASM SET_TAC[]; SIMP_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/convex.ml-17874-  MAP_EVERY X_GEN_TAC [`d:real`; `B:real`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/convex.ml-17991-  STRIP_TAC THEN MATCH_MP_TAC(TAUT `p /\ (p ==> q) ==> p /\ q`) THEN
hol-light-20190729/Multivariate/convex.ml:17992:  CONJ_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/convex.ml-17993-  SUBGOAL_THEN `!x. x IN s ==> (f:real^1->real) a <= f x` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/cvectors.ml-46-let COMPONENT_LE_NORM_ALT = prove
hol-light-20190729/Multivariate/cvectors.ml:47:  (`!x:real^N i. 1 <= i /\ i <= dimindex (:N) ==> x$i <= norm x`,
hol-light-20190729/Multivariate/cvectors.ml-48-  MESON_TAC [REAL_ABS_LE;COMPONENT_LE_NORM;REAL_LE_TRANS]);;
##############################################
hol-light-20190729/Multivariate/cvectors.ml-282-let vector_map = new_definition
hol-light-20190729/Multivariate/cvectors.ml:283:  `vector_map (f:A->B) (v:A^N) :B^N = lambda i. f(v$i)`;;
hol-light-20190729/Multivariate/cvectors.ml-284-let vector_map2 = new_definition
##############################################
hol-light-20190729/Multivariate/cvectors.ml-300-let VECTOR_CONST_COMPONENT = prove
hol-light-20190729/Multivariate/cvectors.ml:301:  (`!i k. ((vector_const k):A^N)$i = k`,
hol-light-20190729/Multivariate/cvectors.ml-302-  COMPONENT_TAC vector_const);;
hol-light-20190729/Multivariate/cvectors.ml-303-let VECTOR_MAP_COMPONENT = prove
hol-light-20190729/Multivariate/cvectors.ml:304:  (`!i f:A->B v:A^N. (vector_map f v)$i = f (v$i)`,
hol-light-20190729/Multivariate/cvectors.ml-305-  COMPONENT_TAC vector_map);;
hol-light-20190729/Multivariate/cvectors.ml-306-let VECTOR_MAP2_COMPONENT = prove
hol-light-20190729/Multivariate/cvectors.ml:307:  (`!i f:A->B->C v1:A^N v2. (vector_map2 f v1 v2)$i = f (v1$i) (v2$i)`,
hol-light-20190729/Multivariate/cvectors.ml-308-  COMPONENT_TAC vector_map2);;
##############################################
hol-light-20190729/Multivariate/cvectors.ml-452-let vector_zip = new_definition
hol-light-20190729/Multivariate/cvectors.ml:453:  `vector_zip (v1:A^N) (v2:B^N) : (A#B)^N = lambda i. (v1$i,v2$i)`;;
hol-light-20190729/Multivariate/cvectors.ml-454-
hol-light-20190729/Multivariate/cvectors.ml-455-let VECTOR_ZIP_COMPONENT = prove
hol-light-20190729/Multivariate/cvectors.ml:456:  (`!i v1:A^N v2:B^N. (vector_zip v1 v2)$i = (v1$i,v2$i)`,
hol-light-20190729/Multivariate/cvectors.ml-457-  REPEAT GEN_TAC THEN CHOOSE_TAC (INST_TYPE [`:A#B`,`:C`] (SPEC_ALL
##############################################
hol-light-20190729/Multivariate/cvectors.ml-506-let CVECTOR_ZERO_COMPONENT = prove
hol-light-20190729/Multivariate/cvectors.ml:507:  (`!i. (cvector_zero:complex^N)$i = Cx(&0)`,
hol-light-20190729/Multivariate/cvectors.ml-508-  REWRITE_TAC[cvector_zero;VECTOR_CONST_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/cvectors.ml-516-let CVECTOR_ADD_COMPONENT = prove
hol-light-20190729/Multivariate/cvectors.ml:517:  (`!X Y:complex^N i. ((X + Y)$i = X$i + Y$i)`,
hol-light-20190729/Multivariate/cvectors.ml-518-  REWRITE_TAC[cvector_add;VECTOR_MAP2_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/cvectors.ml-520-let CVECTOR_SUB_COMPONENT = prove
hol-light-20190729/Multivariate/cvectors.ml:521:  (`!X:complex^N Y i. ((X - Y)$i = X$i - Y$i)`,
hol-light-20190729/Multivariate/cvectors.ml-522-  REWRITE_TAC[cvector_sub;VECTOR_MAP2_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/cvectors.ml-524-let CVECTOR_NEG_COMPONENT = prove
hol-light-20190729/Multivariate/cvectors.ml:525:  (`!X:complex^N i. ((--X)$i = --(X$i))`,
hol-light-20190729/Multivariate/cvectors.ml-526-  REWRITE_TAC[cvector_neg;VECTOR_MAP_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/cvectors.ml-528-let CVECTOR_MUL_COMPONENT = prove
hol-light-20190729/Multivariate/cvectors.ml:529:  (`!c:complex X:complex^N i. ((c % X)$i = c * X$i)`,
hol-light-20190729/Multivariate/cvectors.ml-530-  REWRITE_TAC[cvector_mul;VECTOR_MAP_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/cvectors.ml-868-let CVECTOR_RE_COMPONENT = prove
hol-light-20190729/Multivariate/cvectors.ml:869:  (`!x:complex^N i. (cvector_re x)$i = Re (x$i)`,
hol-light-20190729/Multivariate/cvectors.ml-870-  REWRITE_TAC[cvector_re;VECTOR_MAP_COMPONENT]);;
hol-light-20190729/Multivariate/cvectors.ml-871-let CVECTOR_IM_COMPONENT = prove
hol-light-20190729/Multivariate/cvectors.ml:872:  (`!x:complex^N i. (cvector_im x)$i = Im (x$i)`,
hol-light-20190729/Multivariate/cvectors.ml-873-  REWRITE_TAC[cvector_im;VECTOR_MAP_COMPONENT]);;
hol-light-20190729/Multivariate/cvectors.ml-874-let VECTOR_TO_CVECTOR_COMPONENT = prove
hol-light-20190729/Multivariate/cvectors.ml:875:  (`!x:real^N i. (vector_to_cvector x)$i = Cx(x$i)`,
hol-light-20190729/Multivariate/cvectors.ml-876-  REWRITE_TAC[vector_to_cvector;VECTOR_MAP_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/cvectors.ml-1182-let CART_EQ3 = prove
hol-light-20190729/Multivariate/cvectors.ml:1183:  (`!x y:complex^3. x = y <=> x$1 = y$1 /\ x$2 = y$2 /\ x$3 = y$3`,
hol-light-20190729/Multivariate/cvectors.ml-1184-  GEN_REWRITE_TAC (PATH_CONV "rbrblr") [CART_EQ]
##############################################
hol-light-20190729/Multivariate/cvectors.ml-1278-  THEN REWRITE_TAC[FUN_EQ_THM]
hol-light-20190729/Multivariate/cvectors.ml:1279:  THEN REWRITE_TAC[SPECL [`(x:real^2^N)$(x':num)`;`(y:real^2^N)$(x':num)`;
hol-light-20190729/Multivariate/cvectors.ml:1280:    `cnj ((z:real^2^N)$(x':num))`] (GSYM COMPLEX_ADD_RDISTRIB)]
hol-light-20190729/Multivariate/cvectors.ml-1281-  THEN REWRITE_TAC[CVECTOR_ADD_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/cvectors.ml-1289-  THEN REWRITE_TAC[FUN_EQ_THM]
hol-light-20190729/Multivariate/cvectors.ml:1290:  THEN REWRITE_TAC[SPECL [`(x:real^2^N)$(x':num)`; `cnj((y:real^2^N)$(x':num))`;
hol-light-20190729/Multivariate/cvectors.ml:1291:  `cnj ((z:real^2^N)$(x':num))`] (GSYM COMPLEX_ADD_LDISTRIB)]
hol-light-20190729/Multivariate/cvectors.ml-1292-  THEN REWRITE_TAC[CNJ_ADD; CVECTOR_ADD_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/cvectors.ml-1300-  THEN REWRITE_TAC[FUN_EQ_THM]
hol-light-20190729/Multivariate/cvectors.ml:1301:  THEN REWRITE_TAC[SPECL [`(x:real^2^N)$(x':num)`; `(y:real^2^N)$(x':num)`;
hol-light-20190729/Multivariate/cvectors.ml:1302:    `cnj ((z:real^2^N)$(x':num))`] (GSYM COMPLEX_SUB_RDISTRIB)]
hol-light-20190729/Multivariate/cvectors.ml-1303-  THEN REWRITE_TAC[CVECTOR_SUB_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/cvectors.ml-1311-  THEN REWRITE_TAC[FUN_EQ_THM]
hol-light-20190729/Multivariate/cvectors.ml:1312:  THEN REWRITE_TAC[SPECL [`(x:real^2^N)$(x':num)`; `cnj((y:real^2^N)$(x':num))`;
hol-light-20190729/Multivariate/cvectors.ml:1313:    `cnj ((z:real^2^N)$(x':num))`] (GSYM COMPLEX_SUB_LDISTRIB)]
hol-light-20190729/Multivariate/cvectors.ml-1314-  THEN REWRITE_TAC[CNJ_SUB; CVECTOR_SUB_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/cvectors.ml-1677-  THENL [
hol-light-20190729/Multivariate/cvectors.ml:1678:    REPEAT (POP_ASSUM MP_TAC) THEN ASM_CASES_TAC `(x:complex^3)$1 = Cx(&0)`
hol-light-20190729/Multivariate/cvectors.ml-1679-    THENL [
hol-light-20190729/Multivariate/cvectors.ml:1680:      ASM_CASES_TAC `(x:complex^3)$2 = Cx(&0)` THENL [
hol-light-20190729/Multivariate/cvectors.ml:1681:        ASM_CASES_TAC `(x:complex^3)$3 = Cx(&0)` THENL [
hol-light-20190729/Multivariate/cvectors.ml-1682-          REPEAT DISCH_TAC THEN EXISTS_TAC `Cx(&0)`
hol-light-20190729/Multivariate/cvectors.ml-1683-          THEN ASM_REWRITE_TAC[COMPLEX_POLY_CLAUSES];
hol-light-20190729/Multivariate/cvectors.ml:1684:          REPEAT STRIP_TAC THEN EXISTS_TAC `(y:complex^3)$3/(x:complex^3)$3`
hol-light-20190729/Multivariate/cvectors.ml-1685-          THEN ASM_SIMP_TAC[COMPLEX_BALANCE_DIV_MUL]
hol-light-20190729/Multivariate/cvectors.ml-1686-          THEN ASM_MESON_TAC[COMPLEX_MUL_AC];];
hol-light-20190729/Multivariate/cvectors.ml:1687:        REPEAT STRIP_TAC THEN EXISTS_TAC `(y:complex^3)$2/(x:complex^3)$2`
hol-light-20190729/Multivariate/cvectors.ml-1688-        THEN ASM_SIMP_TAC[COMPLEX_BALANCE_DIV_MUL]
hol-light-20190729/Multivariate/cvectors.ml-1689-        THEN ASM_MESON_TAC[COMPLEX_MUL_AC]; ];
hol-light-20190729/Multivariate/cvectors.ml:1690:      REPEAT STRIP_TAC THEN EXISTS_TAC `(y:complex^3)$1/(x:complex^3)$1`
hol-light-20190729/Multivariate/cvectors.ml-1691-      THEN ASM_SIMP_TAC[COMPLEX_BALANCE_DIV_MUL]
##############################################
hol-light-20190729/Multivariate/cvectors.ml-1945-let cvsum = new_definition
hol-light-20190729/Multivariate/cvectors.ml:1946:  `(cvsum:(A->bool)->(A->complex^N)->complex^N) s f = lambda i. vsum s (\x. (f x)$i)`;;
hol-light-20190729/Multivariate/cvectors.ml-1947-
##############################################
hol-light-20190729/Multivariate/degree.ml-38-      \x. lambda i. if 1 <= i /\ i <= n then x i else &0`;
hol-light-20190729/Multivariate/degree.ml:39:    `h':real^N->num->real = \x i. if 1 <= i /\ i <= n then x$i else &0`] THEN
hol-light-20190729/Multivariate/degree.ml-40-  ASM_REWRITE_TAC[homeomorphic_maps] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-45-   [continuous_map; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/degree.ml:46:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-47-
##############################################
hol-light-20190729/Multivariate/degree.ml-55-      \x. lambda i. if 1 <= i /\ i <= n then x i else &0`;
hol-light-20190729/Multivariate/degree.ml:56:    `h':real^N->num->real = \x i. if 1 <= i /\ i <= n then x$i else &0`] THEN
hol-light-20190729/Multivariate/degree.ml-57-  ASM_REWRITE_TAC[homeomorphic_maps] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-76-      \x. lambda i. if 1 <= i /\ i <= n then x i else &0`;
hol-light-20190729/Multivariate/degree.ml:77:    `h':real^N->num->real = \x i. if 1 <= i /\ i <= n then x$i else &0`] THEN
hol-light-20190729/Multivariate/degree.ml-78-  ASM_REWRITE_TAC[homeomorphic_maps] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-87-   [continuous_map; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/degree.ml:88:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-89-
##############################################
hol-light-20190729/Multivariate/degree.ml-102-      \x. lambda i. if 1 <= i /\ i <= n then x i else &0`;
hol-light-20190729/Multivariate/degree.ml:103:    `h':real^N->num->real = \x i. if 1 <= i /\ i <= n then x$i else &0`] THEN
hol-light-20190729/Multivariate/degree.ml-104-  ASM_REWRITE_TAC[homeomorphic_maps] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-162-      \x. lambda i. if 1 <= i /\ i <= n then x i else &0`;
hol-light-20190729/Multivariate/degree.ml:163:    `h':real^N->num->real = \x i. if 1 <= i /\ i <= n then x$i else &0`] THEN
hol-light-20190729/Multivariate/degree.ml-164-  ASM_REWRITE_TAC[homeomorphic_maps] THEN STRIP_TAC THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-174-   [continuous_map; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/degree.ml:175:  ASM_SIMP_TAC[IMAGE_o] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-176-
##############################################
hol-light-20190729/Multivariate/degree.ml-637-  REWRITE_TAC[IMAGE_o; o_THM] THEN
hol-light-20190729/Multivariate/degree.ml:638:  CONJ_TAC THENL [MATCH_MP_TAC CONTINUOUS_ON_COMPOSE; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-639-  ASM_MESON_TAC[]);;
##############################################
hol-light-20190729/Multivariate/degree.ml-726-   `!s. s = IMAGE (h:real^N->real^M) (IMAGE (f:real^M->real^N) s)`
hol-light-20190729/Multivariate/degree.ml:727:   (fun th -> ONCE_REWRITE_TAC[th]) THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-728-  MATCH_MP_TAC RETRACT_OF_INJECTIVE_LINEAR_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-766-  DISCH_TAC THEN EXISTS_TAC `(\y. x):real^N->real^N` THEN
hol-light-20190729/Multivariate/degree.ml:767:  REWRITE_TAC[CONTINUOUS_ON_CONST] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-768-
##############################################
hol-light-20190729/Multivariate/degree.ml-780-  EXISTS_TAC `\x:real^N. if x IN s then x else a` THEN
hol-light-20190729/Multivariate/degree.ml:781:  SIMP_TAC[SUBSET_UNION] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-782-  MATCH_MP_TAC CONTINUOUS_ON_UNION_LOCAL_OPEN THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-785-    EXISTS_TAC `(\x. a):real^N->real^N`] THEN
hol-light-20190729/Multivariate/degree.ml:786:  REWRITE_TAC[CONTINUOUS_ON_CONST; CONTINUOUS_ON_ID] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-787-
##############################################
hol-light-20190729/Multivariate/degree.ml-810-  REPEAT GEN_TAC THEN REWRITE_TAC[retraction] THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/degree.ml:811:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-812-    MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/degree.ml-813-    ASM_MESON_TAC[CONTINUOUS_ON_SUBSET];
hol-light-20190729/Multivariate/degree.ml:814:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:815:    REWRITE_TAC[o_THM] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-816-
##############################################
hol-light-20190729/Multivariate/degree.ml-830-   [REWRITE_TAC[GSYM DROP_EQ; DROP_VEC; LIFT_DROP; NORM_EQ_0] THEN
hol-light-20190729/Multivariate/degree.ml:831:    REWRITE_TAC[VECTOR_SUB_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-832-    MATCH_MP_TAC CONTINUOUS_CLOSED_IN_PREIMAGE_CONSTANT THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-849-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP(REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:850:           CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:851:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-852-
##############################################
hol-light-20190729/Multivariate/degree.ml-1043-   [SUBGOAL_THEN `?b:real^N. b IN t` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:1044:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-1045-    EXISTS_TAC `\x. fstcart((r:real^(M,N)finite_sum->real^(M,N)finite_sum)
##############################################
hol-light-20190729/Multivariate/degree.ml-1061-    SUBGOAL_THEN `?a:real^M. a IN s` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:1062:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-1063-    EXISTS_TAC `\x. sndcart((r:real^(M,N)finite_sum->real^(M,N)finite_sum)
##############################################
hol-light-20190729/Multivariate/degree.ml-1096-  ASM_SIMP_TAC[o_THM; IMAGE_o] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml:1097:   [MATCH_MP_TAC CONTINUOUS_ON_COMPOSE; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-1098-  CONJ_TAC THEN FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml-1099-    CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:1100:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-1101-
##############################################
hol-light-20190729/Multivariate/degree.ml-1360-  MAP_EVERY ABBREV_TAC
hol-light-20190729/Multivariate/degree.ml:1361:   [`l = \i. box INTER {x:real^N | x$i = &0}`;
hol-light-20190729/Multivariate/degree.ml:1362:    `r = \i. box INTER {x:real^N | x$i = &1}`] THEN
hol-light-20190729/Multivariate/degree.ml-1363-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-1398-      AP_THM_TAC THEN AP_TERM_TAC THEN  AP_THM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/degree.ml:1399:      AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-1400-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-1450-    ASM_SIMP_TAC[GSYM DISJOINT; DIFF_EMPTY; SUBSET_REFL] THEN
hol-light-20190729/Multivariate/degree.ml:1451:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-1452-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-1474-                SUBST1_TAC(SYM th))
hol-light-20190729/Multivariate/degree.ml:1475:    THENL [ASM SET_TAC[]; ASM_SIMP_TAC[CLOSED_IN_DIFF; CLOSED_IN_REFL]] THEN
hol-light-20190729/Multivariate/degree.ml-1476-    SIMP_TAC[LIFT_NEG; CONTINUOUS_ON_NEG; CONTINUOUS_ON_LIFT_SETDIST] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-1478-    ASM_CASES_TAC `x IN (b:num->real^N->bool) m` THENL
hol-light-20190729/Multivariate/degree.ml:1479:     [ASM_SIMP_TAC[SETDIST_SING_IN_SET]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-1480-    REWRITE_TAC[LIFT_NUM; VECTOR_NEG_0; VECTOR_MUL_RZERO];
##############################################
hol-light-20190729/Multivariate/degree.ml-1498-      x IN v m /\ ~(x IN u m)`
hol-light-20190729/Multivariate/degree.ml:1499:    MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-1500-    STRIP_TAC THEN ASM_REWRITE_TAC[] THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-1506-    ONCE_REWRITE_TAC[GSYM REAL_NOT_LT] THEN DISCH_TAC THENL
hol-light-20190729/Multivariate/degree.ml:1507:     [ABBREV_TAC `y:real^N = lambda i. if i = m then &1 else (x:real^N)$i` THEN
hol-light-20190729/Multivariate/degree.ml-1508-      SUBGOAL_THEN `y IN (r:num->real^N->bool) m` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-1516-        ALL_TAC];
hol-light-20190729/Multivariate/degree.ml:1517:      ABBREV_TAC `y:real^N = lambda i. if i = m then &0 else (x:real^N)$i` THEN
hol-light-20190729/Multivariate/degree.ml-1518-      SUBGOAL_THEN `y IN (l:num->real^N->bool) m` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-1527-   (SUBGOAL_THEN `segment[x:real^N,y] SUBSET box` ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:1528:     [MATCH_MP_TAC SEGMENT_SUBSET_CONVEX THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-1529-    MP_TAC(ISPECL [`x:real^N`; `y:real^N`]
##############################################
hol-light-20190729/Multivariate/degree.ml-1542-      MP_TAC(ISPECL [`x:real^N`; `y:real^N`] ENDS_IN_SEGMENT) THEN
hol-light-20190729/Multivariate/degree.ml:1543:      ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-1544-    X_GEN_TAC `z:real^N` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/degree.ml:1545:    ASM_CASES_TAC `z:real^N = x` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml:1546:    ASM_CASES_TAC `z:real^N = y` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-1547-    SUBGOAL_THEN `z IN segment(x:real^N,y)` MP_TAC THENL
hol-light-20190729/Multivariate/degree.ml:1548:     [REWRITE_TAC[open_segment] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-1549-    DISCH_THEN(MP_TAC o CONJUNCT1 o MATCH_MP DIST_IN_OPEN_SEGMENT) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-1554-    ONCE_REWRITE_TAC[SETDIST_SYM]) THENL
hol-light-20190729/Multivariate/degree.ml:1555:     [TRANS_TAC REAL_LE_TRANS `&1 - (x:real^N)$m`;
hol-light-20190729/Multivariate/degree.ml:1556:      TRANS_TAC REAL_LE_TRANS `(x:real^N)$m`] THEN
hol-light-20190729/Multivariate/degree.ml-1557-   (CONJ_TAC THENL [EXPAND_TAC "y"; ASM_REAL_ARITH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-1565-    SUBGOAL_THEN `(x:real^N) IN box` MP_TAC THENL
hol-light-20190729/Multivariate/degree.ml:1566:     [ASM SET_TAC[]; EXPAND_TAC "box"] THEN
hol-light-20190729/Multivariate/degree.ml-1567-    REWRITE_TAC[IN_ELIM_THM; REAL_SUB_LE] THEN ASM_MESON_TAC[]);
##############################################
hol-light-20190729/Multivariate/degree.ml-1632-    MATCH_MP_TAC DIMENSION_SUBSET THEN REWRITE_TAC[BALL_MIN_INTER] THEN
hol-light-20190729/Multivariate/degree.ml:1633:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-1634-
##############################################
hol-light-20190729/Multivariate/degree.ml-1749-    DISCH_THEN(X_CHOOSE_THEN `y:real^N` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/degree.ml:1750:    EXISTS_TAC `(lambda i. if i IN 1..n then (y:real^N)$i else &0):real^N` THEN
hol-light-20190729/Multivariate/degree.ml-1751-    SIMP_TAC[LAMBDA_BETA] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-1785-        MATCH_MP_TAC CARD_PSUBSET THEN REWRITE_TAC[FINITE_NUMSEG] THEN
hol-light-20190729/Multivariate/degree.ml:1786:        REWRITE_TAC[numseg] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-1787-      W(MP_TAC o PART_MATCH (lhand o rand)
##############################################
hol-light-20190729/Multivariate/degree.ml-1815-    SIMP_TAC[CLOSURE_MINIMAL_EQ; CLOSED_AFFINE_HULL] THEN
hol-light-20190729/Multivariate/degree.ml:1816:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-1817-    FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE LAND_CONV
##############################################
hol-light-20190729/Multivariate/degree.ml-1823-    MATCH_MP_TAC CLOSURE_MINIMAL THEN REWRITE_TAC[CLOSED_CLOSURE] THEN
hol-light-20190729/Multivariate/degree.ml:1824:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-1825-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-1834-      SUBGOAL_THEN `(s:real^N->bool) SUBSET affine hull s` MP_TAC THENL
hol-light-20190729/Multivariate/degree.ml:1835:       [REWRITE_TAC[HULL_SUBSET]; ASM SET_TAC[]]];
hol-light-20190729/Multivariate/degree.ml-1836-    REWRITE_TAC[INT_NOT_LE] THEN
hol-light-20190729/Multivariate/degree.ml-1837-    SUBGOAL_THEN `closure c:real^N->bool = affine hull c` MP_TAC THENL
hol-light-20190729/Multivariate/degree.ml:1838:     [ASM MESON_TAC[]; UNDISCH_TAC `COUNTABLE(c:real^N->bool)`] THEN
hol-light-20190729/Multivariate/degree.ml-1839-    SUBGOAL_THEN `~(c:real^N->bool = {})` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-1875-  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN
hol-light-20190729/Multivariate/degree.ml:1876:  ASM_REWRITE_TAC[IN_NUMSEG] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-1877-
##############################################
hol-light-20190729/Multivariate/degree.ml-2147-    ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml:2148:  ASM_CASES_TAC `(vec 0:real^N) IN s` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-2149-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2157-      OPEN_IN_SUBSET_TRANS)) THEN
hol-light-20190729/Multivariate/degree.ml:2158:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-2159-    ASM_REWRITE_TAC[]] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2166-     [ALL_TAC;
hol-light-20190729/Multivariate/degree.ml:2167:      RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-2168-    SUBGOAL_THEN `x IN (:real^N) DIFF cball(vec 0,r)` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-2179-    ASM_SIMP_TAC[REAL_NOT_LE; real_abs; REAL_LT_IMP_LE] THEN
hol-light-20190729/Multivariate/degree.ml:2180:    ASM_CASES_TAC `x:real^N = vec 0` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-2181-    ASM_SIMP_TAC[NORM_EQ_0; REAL_FIELD
##############################################
hol-light-20190729/Multivariate/degree.ml-2202-    MP_TAC THENL [REWRITE_TAC[CLOSURE_OF_SUBSET_SUBTOPOLOGY]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml:2203:    RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-2204-    DISCH_THEN(SUBST1_TAC o MATCH_MP HOMEOMORPHIC_DIMENSION o
##############################################
hol-light-20190729/Multivariate/degree.ml-2220-    ASM_REWRITE_TAC[IMAGE_EQ_EMPTY] THEN
hol-light-20190729/Multivariate/degree.ml:2221:    RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-2222-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2281-  REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/degree.ml:2282:  ASM_CASES_TAC `t:real^N->bool = {}` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-2283-  REWRITE_TAC[GSYM FRONTIER_CBALL] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2362-    SUBGOAL_THEN `~(v:real^N->bool = {})` ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:2363:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-2364-    SUBGOAL_THEN `open_in (subtopology euclidean u) (v:real^N->bool)`
##############################################
hol-light-20190729/Multivariate/degree.ml-2379-      ASM_REWRITE_TAC[CLOSURE_OF_SUBTOPOLOGY; EUCLIDEAN_CLOSURE_OF] THEN
hol-light-20190729/Multivariate/degree.ml:2380:      ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-2381-      MATCH_MP_TAC(INT_ARITH
##############################################
hol-light-20190729/Multivariate/degree.ml-2392-      ASM_REWRITE_TAC[SET_RULE `u DIFF u INTER s = u DIFF s`] THEN
hol-light-20190729/Multivariate/degree.ml:2393:      ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/degree.ml-2394-  let lemma2 = prove
##############################################
hol-light-20190729/Multivariate/degree.ml-2430-      ASM_REWRITE_TAC[CENTRE_IN_BALL; IN_INTER] THEN
hol-light-20190729/Multivariate/degree.ml:2431:      CONJ_TAC THENL[ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml-2432-       [ASM_MESON_TAC[INTER_COMM; OPEN_BALL; OPEN_IN_OPEN_INTER;
##############################################
hol-light-20190729/Multivariate/degree.ml-2446-        ASM_REWRITE_TAC[IN_INTER; CENTRE_IN_BALL] THEN
hol-light-20190729/Multivariate/degree.ml:2447:        ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-2448-        ASM_SIMP_TAC[HULL_P; OPEN_IN_OPEN_INTER; OPEN_BALL]] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2469-      REWRITE_TAC[INTER_SUBSET; SUBSET_DIFF; SUBSET_UNIV] THEN
hol-light-20190729/Multivariate/degree.ml:2470:      RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/degree.ml-2471-  REPEAT STRIP_TAC THEN ASM_CASES_TAC `s:real^N->bool = {}` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2604-    TRANS_TAC SUBSET_TRANS `closure(interior s):real^N->bool` THEN
hol-light-20190729/Multivariate/degree.ml:2605:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-2606-    MATCH_MP_TAC CLOSURE_MINIMAL THEN REWRITE_TAC[CLOSED_CLOSURE] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2672-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP RETRACT_OF_IMP_SUBSET) THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/degree.ml:2673:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-2674-    MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2676-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:2677:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-2678-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2687-  ASM_REWRITE_TAC[IMAGE_o; o_THM] THEN
hol-light-20190729/Multivariate/degree.ml:2688:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-2689-  REWRITE_TAC[o_ASSOC] THEN MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2691-  CONJ_TAC THEN FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:2692:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-2693-
##############################################
hol-light-20190729/Multivariate/degree.ml-2710-  ASM_SIMP_TAC[o_THM; IMAGE_o] THEN
hol-light-20190729/Multivariate/degree.ml:2711:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-2712-  MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/degree.ml-2713-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:2714:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-2715-
##############################################
hol-light-20190729/Multivariate/degree.ml-2745-  ASM_SIMP_TAC[o_THM; IMAGE_o] THEN
hol-light-20190729/Multivariate/degree.ml:2746:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-2747-  MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/degree.ml-2748-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:2749:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-2750-
##############################################
hol-light-20190729/Multivariate/degree.ml-2808-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/degree.ml:2809:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-2810-
##############################################
hol-light-20190729/Multivariate/degree.ml-2843-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP RETRACT_OF_IMP_SUBSET) THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/degree.ml:2844:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-2845-    MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2847-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:2848:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-2849-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2860-   [REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:2861:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-2862-    MATCH_MP_TAC CONTINUOUS_OPEN_IN_PREIMAGE_GEN THEN ASM_MESON_TAC[];
##############################################
hol-light-20190729/Multivariate/degree.ml-2865-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:2866:          CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:2867:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:2868:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-2869-
##############################################
hol-light-20190729/Multivariate/degree.ml-2888-  ASM_SIMP_TAC[o_THM; IMAGE_o] THEN
hol-light-20190729/Multivariate/degree.ml:2889:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-2890-  MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/degree.ml-2891-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:2892:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-2893-
##############################################
hol-light-20190729/Multivariate/degree.ml-2926-  ASM_SIMP_TAC[o_THM; IMAGE_o] THEN
hol-light-20190729/Multivariate/degree.ml:2927:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-2928-  MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/degree.ml-2929-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:2930:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-2931-
##############################################
hol-light-20190729/Multivariate/degree.ml-2961-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP RETRACT_OF_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:2962:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/degree.ml-2963-  X_GEN_TAC `v:real^M->bool` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-2967-  REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:2968:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-2969-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
hol-light-20190729/Multivariate/degree.ml-2970-   (ONCE_REWRITE_RULE[IMP_CONJ] RETRACT_OF_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:2971:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-2972-
##############################################
hol-light-20190729/Multivariate/degree.ml-2994-  ASM_SIMP_TAC[CLOSED_IN_INTER; CLOSED_IN_REFL; CLOSED_IN_DIFF] THEN
hol-light-20190729/Multivariate/degree.ml:2995:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/degree.ml-2996-  X_GEN_TAC `w:real^M->bool` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3001-  REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:3002:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml:3003:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-3004-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
hol-light-20190729/Multivariate/degree.ml-3005-      (REWRITE_RULE[IMP_CONJ] CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:3006:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-3007-
##############################################
hol-light-20190729/Multivariate/degree.ml-3065-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/degree.ml:3066:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-3067-
##############################################
hol-light-20190729/Multivariate/degree.ml-3120-        SIMP_TAC[FORALL_PASTECART; SNDCART_PASTECART; PASTECART_IN_PCROSS] THEN
hol-light-20190729/Multivariate/degree.ml:3121:        ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3122-        REWRITE_TAC[FORALL_PASTECART; PASTECART_IN_PCROSS] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3127-        ASM_REWRITE_TAC[VEC_EQ; IN_INSERT; NOT_IN_EMPTY] THEN
hol-light-20190729/Multivariate/degree.ml:3128:        CONV_TAC NUM_REDUCE_CONV THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-3129-      REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; FORALL_IN_UNION] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3132-      REWRITE_TAC[FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/Multivariate/degree.ml:3133:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-3134-    REWRITE_TAC[LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3144-    ASM_REWRITE_TAC[COMPACT_INTERVAL; UNIT_INTERVAL_NONEMPTY] THEN
hol-light-20190729/Multivariate/degree.ml:3145:    ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/degree.ml-3146-    X_GEN_TAC `u:real^M->bool` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/degree.ml:3147:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-3148-    W(MP_TAC o PART_MATCH (lhand o rand) HOMOTOPIC_WITH_EUCLIDEAN_ALT o
##############################################
hol-light-20190729/Multivariate/degree.ml-3150-    REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/degree.ml:3151:     [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-3152-    EXISTS_TAC `h:real^(1,M)finite_sum->real^N` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3163-    SUBGOAL_THEN `!x:real^M. x IN t ==> x IN c` MP_TAC THENL
hol-light-20190729/Multivariate/degree.ml:3164:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-3165-    ASM_SIMP_TAC[IN_INSERT] THEN REPEAT DISCH_TAC THEN EXPAND_TAC "fg" THEN
hol-light-20190729/Multivariate/degree.ml-3166-    REWRITE_TAC[FSTCART_PASTECART; SNDCART_PASTECART; VEC_EQ; ARITH_EQ] THEN
hol-light-20190729/Multivariate/degree.ml:3167:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-3168-
##############################################
hol-light-20190729/Multivariate/degree.ml-3195-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [CLOSED_IN_CLOSED]) THEN
hol-light-20190729/Multivariate/degree.ml:3196:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3197-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3219-   [ASM_MESON_TAC[OPEN_IN_IMP_SUBSET; CLOSED_IN_IMP_SUBSET]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml:3220:  REWRITE_TAC[IMAGE_o; o_THM] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml:3221:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-3222-  REPEAT(MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN CONJ_TAC) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3225-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:3226:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-3227-
##############################################
hol-light-20190729/Multivariate/degree.ml-3272-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/degree.ml:3273:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-3274-
##############################################
hol-light-20190729/Multivariate/degree.ml-3346-  ASM_SIMP_TAC[CLOSED_IN_DIFF; CLOSED_IN_REFL] THEN
hol-light-20190729/Multivariate/degree.ml:3347:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/degree.ml-3348-  MAP_EVERY X_GEN_TAC
##############################################
hol-light-20190729/Multivariate/degree.ml-3355-  ASM_SIMP_TAC[SEGMENT_1; CLOSED_IN_DIFF; CLOSED_IN_REFL] THEN
hol-light-20190729/Multivariate/degree.ml:3356:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/degree.ml-3357-  REWRITE_TAC[DROP_VEC; REAL_POS] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3363-   [SUBGOAL_THEN `w:real^(N,1)finite_sum->bool = (w DIFF v) UNION (w DIFF v')`
hol-light-20190729/Multivariate/degree.ml:3364:    MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-3365-    DISCH_THEN(fun th ->
##############################################
hol-light-20190729/Multivariate/degree.ml-3369-    ASM_SIMP_TAC[CLOSED_IN_DIFF; CLOSED_IN_REFL; CONTINUOUS_ON_CONST] THEN
hol-light-20190729/Multivariate/degree.ml:3370:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-3371-    GEN_REWRITE_TAC LAND_CONV [GSYM o_DEF] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3376-    REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; PASTECART_IN_PCROSS] THEN
hol-light-20190729/Multivariate/degree.ml:3377:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3378-    ASM_SIMP_TAC[SUBSET; FORALL_IN_IMAGE] THEN RULE_ASSUM_TAC
hol-light-20190729/Multivariate/degree.ml-3379-     (REWRITE_RULE[SUBSET; FORALL_IN_IMAGE; FORALL_IN_PCROSS]) THEN
hol-light-20190729/Multivariate/degree.ml:3380:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-3381-    REPEAT STRIP_TAC THEN ASM_REWRITE_TAC[IN_DIFF] THEN
hol-light-20190729/Multivariate/degree.ml:3382:    COND_CASES_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-3383-
##############################################
hol-light-20190729/Multivariate/degree.ml-3392-  X_GEN_TAC `r:real^N->real^N` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/degree.ml:3393:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-3394-  MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3398-  ASM_SIMP_TAC[IMAGE_o; o_THM] THEN
hol-light-20190729/Multivariate/degree.ml:3399:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-3400-  MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3402-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:3403:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-3404-
##############################################
hol-light-20190729/Multivariate/degree.ml-3500-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:3501:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-3502-  ONCE_REWRITE_TAC[SWAP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3507-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/degree.ml:3508:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml-3509-   [MATCH_MP_TAC OPEN_IN_TRANS THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3512-    MATCH_MP_TAC CONTINUOUS_OPEN_IN_PREIMAGE_GEN THEN ASM_MESON_TAC[];
hol-light-20190729/Multivariate/degree.ml:3513:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-3514-     FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:3515:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-3516-
##############################################
hol-light-20190729/Multivariate/degree.ml-3817-       SIMP_TAC[SUBSET; IN_ELIM_THM; SETDIST_SING_IN_SET; SETDIST_POS_LE] THEN
hol-light-20190729/Multivariate/degree.ml:3818:       ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3819-       ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3826-      ASM_SIMP_TAC[CLOSED_IN_INTER] THEN
hol-light-20190729/Multivariate/degree.ml:3827:      CONJ_TAC THENL [EXPAND_TAC "w"; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-3828-      SIMP_TAC[SUBSET; IN_INTER; IN_ELIM_THM; SETDIST_SING_IN_SET] THEN
hol-light-20190729/Multivariate/degree.ml:3829:      ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3830-      GEN_REWRITE_TAC LAND_CONV [retract_of] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3843-      (CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml:3844:       [ASM SET_TAC[]; MATCH_MP_TAC SETDIST_EQ_0_CLOSED_IN]) THEN
hol-light-20190729/Multivariate/degree.ml:3845:      ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3846-      ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-3847-    SUBGOAL_THEN `s' INTER t':real^N->bool = w` ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:3848:     [ASM SET_TAC[REAL_LE_ANTISYM]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-3849-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3857-     [EXPAND_TAC "r" THEN REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/degree.ml:3858:      ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3859-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3864-      ASM_REWRITE_TAC[CONTINUOUS_ON_ID] THEN
hol-light-20190729/Multivariate/degree.ml:3865:      REWRITE_TAC[CONJ_ASSOC] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-3866-      CONJ_TAC THEN MATCH_MP_TAC CLOSED_IN_SUBSET_TRANS THEN
hol-light-20190729/Multivariate/degree.ml-3867-      EXISTS_TAC `u:real^N->bool` THEN
hol-light-20190729/Multivariate/degree.ml:3868:      ASM_SIMP_TAC[CLOSED_IN_UNION] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3869-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3892-    REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml:3893:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3894-      ALL_TAC;
hol-light-20190729/Multivariate/degree.ml:3895:      REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_UNION] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3896-      X_GEN_TAC `x:real^N` THEN REWRITE_TAC[IN_UNION] THEN
hol-light-20190729/Multivariate/degree.ml-3897-      STRIP_TAC THEN ASM_SIMP_TAC[IN_UNION; COND_ID] THENL
hol-light-20190729/Multivariate/degree.ml:3898:       [COND_CASES_TAC THENL [EXPAND_TAC "r"; ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml:3899:        COND_CASES_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-3900-        TRANS_TAC EQ_TRANS `(r:real^N->real^N) x` THEN
hol-light-20190729/Multivariate/degree.ml:3901:        CONJ_TAC THENL [ASM SET_TAC[]; EXPAND_TAC "r"]] THEN
hol-light-20190729/Multivariate/degree.ml-3902-      COND_CASES_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/degree.ml:3903:      FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-3904-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3908-                REWRITE_TAC[GSYM th])
hol-light-20190729/Multivariate/degree.ml:3909:    THENL [ASM SET_TAC[REAL_LE_TOTAL]; ASM_SIMP_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-3910-    REPEAT CONJ_TAC THEN TRY(FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
hol-light-20190729/Multivariate/degree.ml:3911:      (REWRITE_RULE[IMP_CONJ] CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[]) THEN
hol-light-20190729/Multivariate/degree.ml-3912-    REWRITE_TAC[TAUT `p /\ ~p \/ q /\ p <=> p /\ q`] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3933-    {x | x IN c /\ (g:real^(N,1)finite_sum->real^N) x IN t} = c`
hol-light-20190729/Multivariate/degree.ml:3934:   (fun th -> SUBST1_TAC(SYM th)) THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-3935-  MATCH_MP_TAC lemma THEN ASM_REWRITE_TAC[] THEN REPEAT CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-3943-    (REWRITE_RULE[IMP_CONJ] CONTINUOUS_ON_SUBSET))) THEN
hol-light-20190729/Multivariate/degree.ml:3944:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-3945-
##############################################
hol-light-20190729/Multivariate/degree.ml-3977-    ASM_SIMP_TAC[CLOSED_IN_INTER] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/degree.ml:3978:     [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-3979-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:3980:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3981-      REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3986-    ASM_SIMP_TAC[CLOSED_IN_INTER; CLOSED_IN_DIFF; CLOSED_IN_REFL] THEN
hol-light-20190729/Multivariate/degree.ml:3987:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/degree.ml-3988-    MAP_EVERY X_GEN_TAC [`w:real^M->bool`; `w':real^M->bool`] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-3993-    ASM_SIMP_TAC[CLOSED_IN_DIFF; CLOSED_IN_REFL] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml:3994:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:3995:      ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3996-      MATCH_MP_TAC OPEN_IN_SUBTOPOLOGY_INTER_SUBSET THEN
hol-light-20190729/Multivariate/degree.ml-3997-      EXISTS_TAC `s:real^M->bool` THEN
hol-light-20190729/Multivariate/degree.ml:3998:      ASM_SIMP_TAC[OPEN_IN_INTER; OPEN_IN_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-3999-      ONCE_REWRITE_TAC[SET_RULE `s DIFF t = s DIFF (s INTER t)`] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4002-      EXISTS_TAC `s:real^M->bool` THEN
hol-light-20190729/Multivariate/degree.ml:4003:      ASM_SIMP_TAC[OPEN_IN_INTER; OPEN_IN_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4004-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:4005:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:4006:      ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:4007:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-4008-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4019-  SUBGOAL_THEN `k INTER t:real^M->bool = {}` ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:4020:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-4021-  MP_TAC(ISPECL
##############################################
hol-light-20190729/Multivariate/degree.ml-4062-        REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:4063:        ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4064-        MATCH_MP_TAC WLOG_LT THEN REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4072-          m = 0 /\ n = 1`] THEN
hol-light-20190729/Multivariate/degree.ml:4073:        STRIP_TAC THEN ASM_REWRITE_TAC[ARITH_EQ] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-4074-      GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV) [SWAP_FORALL_THM] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4087-  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/degree.ml:4088:   [CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-4089-    MATCH_MP_TAC CLOSED_IN_UNION THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4098-  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/degree.ml:4099:   [CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-4100-    MATCH_MP_TAC CLOSED_IN_UNION THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4113-    t INTER w2 = {} /\ v' INTER w2 = {}`
hol-light-20190729/Multivariate/degree.ml:4114:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-4115-  ABBREV_TAC `n:real^M->bool = s DIFF (k UNION w1 UNION w2)` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4119-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:4120:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4121-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4143-    REWRITE_TAC[ARITH_EQ] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml:4144:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4145-      ONCE_REWRITE_TAC[INTER_COMM] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4147-      EXISTS_TAC `s:real^M->bool` THEN
hol-light-20190729/Multivariate/degree.ml:4148:      ASM_SIMP_TAC[CLOSED_IN_INTER; CLOSED_IN_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4149-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:4150:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4151-      ONCE_REWRITE_TAC[INTER_COMM] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4153-      EXISTS_TAC `s:real^M->bool` THEN
hol-light-20190729/Multivariate/degree.ml:4154:      ASM_SIMP_TAC[CLOSED_IN_INTER; CLOSED_IN_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4155-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:4156:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4157-      MATCH_MP_TAC WLOG_LT THEN REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4168-      SUBGOAL_THEN `(x:real^M) IN v` ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:4169:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-4170-      REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml-4171-      REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:4172:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-4173-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `f':real^M->real^N` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4178-    (SUBGOAL_THEN `(x:real^M) IN s1 \/ x IN s2` MP_TAC THENL
hol-light-20190729/Multivariate/degree.ml:4179:      [ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:4180:       STRIP_TAC THEN ASM_SIMP_TAC[IN_INTER] THEN ASM SET_TAC[]])]);;
hol-light-20190729/Multivariate/degree.ml-4181-
##############################################
hol-light-20190729/Multivariate/degree.ml-4213-    ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/degree.ml:4214:    REPEAT(MATCH_MP_TAC MONO_EXISTS) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4215-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4221-    ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/degree.ml:4222:    REPEAT(MATCH_MP_TAC MONO_EXISTS) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4223-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4257-   [SUBGOAL_THEN `(f:real^(N,1)finite_sum->real^N) x IN y2` ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:4258:     [ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/degree.ml-4259-    SUBGOAL_THEN `(f:real^(N,1)finite_sum->real^N) x IN y1` ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:4260:     [ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/degree.ml-4261-  FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [GSYM REAL_NOT_LT]) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4268-  ASM_REWRITE_TAC[IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/degree.ml:4269:  (ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/degree.ml-4270-  MATCH_MP_TAC CLOSED_IN_TRANS THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4322-  SIMP_TAC[] THEN CONJ_TAC THENL [SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml:4323:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-4324-  MATCH_MP_TAC CONTINUOUS_ON_CASES_LOCAL THEN
hol-light-20190729/Multivariate/degree.ml:4325:  ASM_REWRITE_TAC[CONTINUOUS_ON_ID] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-4326-
##############################################
hol-light-20190729/Multivariate/degree.ml-4381-      ((s UNION t) DIFF t) UNION u`
hol-light-20190729/Multivariate/degree.ml:4382:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-4383-    ASM_SIMP_TAC[OPEN_IN_UNION; OPEN_IN_DIFF; OPEN_IN_REFL]] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4387-  EXISTS_TAC `\x:real^N. if x IN s then x else r x` THEN
hol-light-20190729/Multivariate/degree.ml:4388:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml:4389:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-4390-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml-4391-  SUBGOAL_THEN `s UNION u:real^N->bool = s UNION (u INTER t)`
hol-light-20190729/Multivariate/degree.ml:4392:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-4393-  MATCH_MP_TAC CONTINUOUS_ON_CASES_LOCAL THEN
hol-light-20190729/Multivariate/degree.ml-4394-  ASM_REWRITE_TAC[CONTINUOUS_ON_ID; CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/degree.ml:4395:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml-4396-   [ALL_TAC; ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; INTER_SUBSET]] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4402-  REWRITE_TAC[CLOSED_IN_CLOSED] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/degree.ml:4403:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-4404-
##############################################
hol-light-20190729/Multivariate/degree.ml-4517-   [REWRITE_TAC[CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/degree.ml:4518:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-4519-    CONJ_TAC THEN MATCH_MP_TAC CLOSED_IN_TRANS THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4551-     [ASM_SIMP_TAC[DROP_VEC] THEN CONV_TAC REAL_RAT_REDUCE_CONV;
hol-light-20190729/Multivariate/degree.ml:4552:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-4553-    REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_INTER; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4557-     [ASM_SIMP_TAC[DROP_VEC] THEN CONV_TAC REAL_RAT_REDUCE_CONV;
hol-light-20190729/Multivariate/degree.ml:4558:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/degree.ml-4559-
##############################################
hol-light-20190729/Multivariate/degree.ml-4601-       [UNDISCH_TAC `(a:(real^N->bool)->real^(N,1)finite_sum->bool) u = t` THEN
hol-light-20190729/Multivariate/degree.ml:4602:        EXPAND_TAC "a" THEN REWRITE_TAC[IN_ELIM_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:4603:        REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-4604-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4619-       [ASM_SIMP_TAC[DIFF_UNIONS_PAIRWISE_DISJOINT; DELETE_SUBSET] THEN
hol-light-20190729/Multivariate/degree.ml:4620:        ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4621-        MATCH_MP_TAC CLOSED_IN_DIFF THEN REWRITE_TAC[CLOSED_IN_REFL] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4713-          CONTINUOUS_ON_SUBSET)) THEN SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:4714:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-4715-      GEN_REWRITE_TAC (LAND_CONV o TOP_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4745-         [ASM_SIMP_TAC[OPEN_IN_INTER];
hol-light-20190729/Multivariate/degree.ml:4746:          REWRITE_TAC[UNIONS_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4747-          REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4772-        MP_TAC THENL
hol-light-20190729/Multivariate/degree.ml:4773:         [EXPAND_TAC "a" THEN REWRITE_TAC[IN_ELIM_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:4774:          ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-4775-        MATCH_MP_TAC OPEN_IN_UNIONS THEN REWRITE_TAC[FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4786-          ASM_MESON_TAC[];
hol-light-20190729/Multivariate/degree.ml:4787:          ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-4788-        X_GEN_TAC `x:real^(N,1)finite_sum` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4791-        STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:4792:         [EXPAND_TAC "a" THEN REWRITE_TAC[IN_ELIM_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4793-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4798-          ASM_MESON_TAC[SUBSET];
hol-light-20190729/Multivariate/degree.ml:4799:          ASM SET_TAC[]]]]) in
hol-light-20190729/Multivariate/degree.ml-4800-  let lemma2 = prove
##############################################
hol-light-20190729/Multivariate/degree.ml-4818-    EXISTS_TAC `u UNION UNIONS f:real^N->bool` THEN
hol-light-20190729/Multivariate/degree.ml:4819:    ASM_SIMP_TAC[] THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/degree.ml-4820-  let lemma3 = prove
##############################################
hol-light-20190729/Multivariate/degree.ml-4884-          REWRITE_TAC[REAL_OF_NUM_LT] THEN ARITH_TAC;
hol-light-20190729/Multivariate/degree.ml:4885:          MATCH_MP_TAC SETDIST_SUBSET_RIGHT THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/degree.ml-4886-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4893-      SUBGOAL_THEN `?n:num. (x:real^N) IN v n` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:4894:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-4895-      SUBGOAL_THEN `&0 < setdist ({x:real^N},s DIFF v(n:num))` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-4901-        ASM_SIMP_TAC[CLOSED_IN_DIFF; CLOSED_IN_REFL] THEN
hol-light-20190729/Multivariate/degree.ml:4902:        DISCH_THEN SUBST1_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-4903-        DISCH_THEN(MP_TAC o SPEC `inv(&2)` o
##############################################
hol-light-20190729/Multivariate/degree.ml-4914-          MATCH_MP_TAC SETDIST_SUBSET_RIGHT THEN
hol-light-20190729/Multivariate/degree.ml:4915:          CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-4916-          MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/degree.ml-4920-            ==> v b SUBSET v(a + b)`) THEN
hol-light-20190729/Multivariate/degree.ml:4921:          MATCH_MP_TAC TRANSITIVE_STEPWISE_LE THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/degree.ml-4922-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4961-        DISCH_THEN(MP_TAC o SPEC `SUC n` o CONJUNCT2) THEN
hol-light-20190729/Multivariate/degree.ml:4962:        ANTS_TAC THENL [ARITH_TAC; ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-4963-        MATCH_MP_TAC UNIONS_MONO_IMAGE THEN REWRITE_TAC[IN_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-4994-       REWRITE_TAC[FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/degree.ml:4995:       CONJ_TAC THENL [ASM SET_TAC[]; ASM_MESON_TAC[OPEN_IN_IMP_SUBSET]]]) THEN
hol-light-20190729/Multivariate/degree.ml-4996-    REWRITE_TAC[pairwise; IMP_CONJ; RIGHT_FORALL_IMP_THM; FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-5056-        CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml:5057:         [REWRITE_TAC[UNIONS_IMAGE; IN_NUMSEG; LE_0] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-5058-          REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_IMAGE; IN_NUMSEG; LE_0] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-5075-  MATCH_MP_TAC lemma4 THEN
hol-light-20190729/Multivariate/degree.ml:5076:  CONJ_TAC THENL [GEN_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-5077-  MATCH_MP_TAC OPEN_IN_SUBSET_TRANS THEN
hol-light-20190729/Multivariate/degree.ml-5078-  EXISTS_TAC `u:real^N->bool` THEN REWRITE_TAC[UNIONS_IMAGE] THEN
hol-light-20190729/Multivariate/degree.ml:5079:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/degree.ml-5080-  REWRITE_TAC[SUBSET; IN_UNIV; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-5082-  REPEAT(FIRST_X_ASSUM(MP_TAC o SPEC `(h:num->real^N->bool) n`)) THEN
hol-light-20190729/Multivariate/degree.ml:5083:  REPEAT(ANTS_TAC THENL [ASM SET_TAC[]; DISCH_TAC]) THEN
hol-light-20190729/Multivariate/degree.ml-5084-  ASM_MESON_TAC[OPEN_IN_IMP_SUBSET; SUBSET]);;
##############################################
hol-light-20190729/Multivariate/degree.ml-5107-  DISCH_THEN(X_CHOOSE_THEN `w:real^N->bool` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/degree.ml:5108:  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-5109-  MATCH_MP_TAC ANR_OPEN_IN THEN EXISTS_TAC  `w:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-5126-    FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:5127:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/degree.ml-5128-    X_GEN_TAC `w:real^N->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-5144-   [MATCH_MP_TAC SUBSET_ANTISYM THEN
hol-light-20190729/Multivariate/degree.ml:5145:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-5146-    REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-5164-  DISCH_THEN(X_CHOOSE_THEN `w:real^N->bool` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/degree.ml:5165:  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-5166-  MATCH_MP_TAC ENR_OPEN_IN THEN EXISTS_TAC  `w:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-5183-    FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:5184:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/degree.ml-5185-    X_GEN_TAC `w:real^N->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-5201-   [MATCH_MP_TAC SUBSET_ANTISYM THEN
hol-light-20190729/Multivariate/degree.ml:5202:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-5203-    REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-5251-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP RETRACT_OF_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:5252:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-5253-
##############################################
hol-light-20190729/Multivariate/degree.ml-5300-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:5301:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:5302:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:5303:    REWRITE_TAC[o_THM] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-5304-
##############################################
hol-light-20190729/Multivariate/degree.ml-5359-      ANTS_TAC THENL
hol-light-20190729/Multivariate/degree.ml:5360:       [CONJ_TAC THENL [ASM_MESON_TAC[COMPACT_COMPONENTS]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-5361-        MATCH_MP_TAC MONO_EXISTS] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-5369-        FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:5370:        ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-5371-        FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:5372:        ASM SET_TAC[]]];
hol-light-20190729/Multivariate/degree.ml-5373-    MP_TAC(ISPECL [`g:real^M->real^N`; `s:real^M->bool`;
##############################################
hol-light-20190729/Multivariate/degree.ml-5377-    FIRST_ASSUM(ASSUME_TAC o MATCH_MP IN_COMPONENTS_NONEMPTY) THEN
hol-light-20190729/Multivariate/degree.ml:5378:    ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/degree.ml:5379:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-5380-
##############################################
hol-light-20190729/Multivariate/degree.ml-5606-    EXISTS_TAC `affine hull s DELETE (a:real^N)` THEN
hol-light-20190729/Multivariate/degree.ml:5607:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-5608-    MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-5701-      ASM_REWRITE_TAC[]];
hol-light-20190729/Multivariate/degree.ml:5702:    RULE_ASSUM_TAC(REWRITE_RULE[relative_frontier]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-5703-    ASM_REWRITE_TAC[];
##############################################
hol-light-20190729/Multivariate/degree.ml-5707-    EXISTS_TAC `affine hull s:real^N->bool` THEN
hol-light-20190729/Multivariate/degree.ml:5708:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-5709-    REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_DELETE] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6015-      REPEAT STRIP_TAC THEN ASM_REWRITE_TAC[COND_ID] THENL
hol-light-20190729/Multivariate/degree.ml:6016:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-6017-      FIRST_X_ASSUM(MATCH_MP_TAC o SIMP_RULE[SUBSET; FORALL_IN_IMAGE]) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6062-        ASM_REWRITE_TAC[IMAGE_o; o_THM] THEN
hol-light-20190729/Multivariate/degree.ml:6063:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-6064-        MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6089-      EXPAND_TAC "B" THEN REWRITE_TAC[IN_UNION; PASTECART_IN_PCROSS] THEN
hol-light-20190729/Multivariate/degree.ml:6090:      ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-6091-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6163-       EXPAND_TAC "B" THEN REWRITE_TAC[IN_UNION; PASTECART_IN_PCROSS] THEN
hol-light-20190729/Multivariate/degree.ml:6164:       ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-6165-       UNDISCH_TAC `~((x:real^M) IN s')` THEN EXPAND_TAC "s'" THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6167-       DISCH_THEN(MP_TAC o SPEC `(a:real^M->real^1) x`) THEN
hol-light-20190729/Multivariate/degree.ml:6168:       ASM_SIMP_TAC[PASTECART_IN_PCROSS; IN_DIFF] THEN ASM SET_TAC[]])]);;
hol-light-20190729/Multivariate/degree.ml-6169-
##############################################
hol-light-20190729/Multivariate/degree.ml-6198-    FIRST_X_ASSUM(MP_TAC o MATCH_MP HOMOTOPIC_WITH_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:6199:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-6200-    MP_TAC(ISPECL [`g:real^M->real^N`; `(:real^M)`; `t:real^N->bool`]
##############################################
hol-light-20190729/Multivariate/degree.ml-6241-      EXISTS_TAC `(\x. a):real^M->real^N`] THEN
hol-light-20190729/Multivariate/degree.ml:6242:    REWRITE_TAC[CONTINUOUS_ON_CONST] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-6243-    DISCH_THEN(SUBST1_TAC o SYM) THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6309-   (MATCH_MP_TAC o REWRITE_RULE[PATH_CONNECTED_IFF_PATH_COMPONENT]) THEN
hol-light-20190729/Multivariate/degree.ml:6310:  FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_NONEMPTY) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-6311-
##############################################
hol-light-20190729/Multivariate/degree.ml-6372-      REWRITE_TAC[FSTCART_PASTECART; SNDCART_PASTECART; IN_SING] THEN
hol-light-20190729/Multivariate/degree.ml:6373:      REPEAT(COND_CASES_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[]]) THEN
hol-light-20190729/Multivariate/degree.ml-6374-      STRIP_TAC THEN FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/degree.ml-6390-  ASM_REWRITE_TAC[COMPACT_INTERVAL; UNIT_INTERVAL_NONEMPTY] THEN
hol-light-20190729/Multivariate/degree.ml:6391:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/degree.ml-6392-  X_GEN_TAC `t':real^M->bool` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6395-  CONJ_TAC THENL [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml:6396:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-6397-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6401-  REWRITE_TAC[IN_UNION; PASTECART_IN_PCROSS; IN_INSERT] THEN
hol-light-20190729/Multivariate/degree.ml:6402:  (ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC]) THEN
hol-light-20190729/Multivariate/degree.ml-6403-  EXPAND_TAC "h'" THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6453-      ANTS_TAC THENL
hol-light-20190729/Multivariate/degree.ml:6454:       [CONJ_TAC THENL [ASM_MESON_TAC[COMPACT_COMPONENTS]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-6455-        MATCH_MP_TAC MONO_EXISTS] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6462-        FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:6463:        ASM SET_TAC[]]];
hol-light-20190729/Multivariate/degree.ml-6464-    GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6508-  FIRST_ASSUM(MP_TAC o SPEC `c:real^M->bool`) THEN
hol-light-20190729/Multivariate/degree.ml:6509:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/degree.ml-6510-  X_GEN_TAC `a:real^N` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6512-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP IN_COMPONENTS_NONEMPTY) THEN
hol-light-20190729/Multivariate/degree.ml:6513:  CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `d:real^M->bool`] THEN
hol-light-20190729/Multivariate/degree.ml-6514-  DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `d:real^M->bool`) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6523-  REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_NONEMPTY)) THEN
hol-light-20190729/Multivariate/degree.ml:6524:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-6525-
##############################################
hol-light-20190729/Multivariate/degree.ml-6566-        CONTINUOUS_ON_SUBSET))) THEN
hol-light-20190729/Multivariate/degree.ml:6567:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-6568-
##############################################
hol-light-20190729/Multivariate/degree.ml-6612-      HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/degree.ml:6613:    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-6614-    DISCH_THEN(X_CHOOSE_TAC `r:real^1->bool`)] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6629-     [CONJ_TAC THENL [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml:6630:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-6631-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [homeomorphic]) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6644-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/degree.ml:6645:        RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-6646-      DISCH_THEN(X_CHOOSE_TAC `a:real^N`)] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6654-       FIRST_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_NONEMPTY) THEN
hol-light-20190729/Multivariate/degree.ml:6655:       ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-6656-       DISCH_THEN(X_CHOOSE_THEN `u:real^M->bool` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6705-  RULE_ASSUM_TAC(REWRITE_RULE[retraction]) THEN
hol-light-20190729/Multivariate/degree.ml:6706:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-6707-
##############################################
hol-light-20190729/Multivariate/degree.ml-6824-         FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [retraction]) THEN
hol-light-20190729/Multivariate/degree.ml:6825:         ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/degree.ml-6826-      RULE_ASSUM_TAC(REWRITE_RULE[IN_INTERVAL_1; DROP_VEC]) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6919-          FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [retraction]) THEN
hol-light-20190729/Multivariate/degree.ml:6920:          ASM SET_TAC[]]];
hol-light-20190729/Multivariate/degree.ml-6921-      REWRITE_TAC[FORALL_PASTECART; PASTECART_IN_PCROSS;
##############################################
hol-light-20190729/Multivariate/degree.ml-6930-      FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [retraction]) THEN
hol-light-20190729/Multivariate/degree.ml:6931:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-6932-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6982-  EXISTS_TAC `(\x. a):real^N->real^N` THEN
hol-light-20190729/Multivariate/degree.ml:6983:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-6984-  FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [contractible]) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-6990-  SUBGOAL_THEN `(b:real^N) IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:6991:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-6992-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/degree.ml-7167-   [GEN_TAC THEN EXPAND_TAC "q" THEN COND_CASES_TAC THENL
hol-light-20190729/Multivariate/degree.ml:7168:     [ASM_CASES_TAC `(x:real^N) IN s` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-7169-      SUBGOAL_THEN `(x:real^N) IN t` (fun th -> ASM_MESON_TAC[th]) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7215-  ASM_SIMP_TAC[CLOSURE_CLOSED; SUBSET_REFL] THEN REWRITE_TAC[frontier] THEN
hol-light-20190729/Multivariate/degree.ml:7216:  MP_TAC(ISPEC `s:real^N->bool` INTERIOR_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-7217-
##############################################
hol-light-20190729/Multivariate/degree.ml-7248-    MATCH_MP_TAC SPHERE_RETRACT_OF_PUNCTURED_UNIVERSE_GEN THEN
hol-light-20190729/Multivariate/degree.ml:7249:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-7250-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7262-   [X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN EXPAND_TAC "g" THEN
hol-light-20190729/Multivariate/degree.ml:7263:    COND_CASES_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-7264-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7289-  ASM_SIMP_TAC[SPHERE_RETRACT_OF_PUNCTURED_UNIVERSE] THEN
hol-light-20190729/Multivariate/degree.ml:7290:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-7291-  FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [SUBSET]) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7334-       [FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/degree.ml:7335:          CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-7336-        REPEAT STRIP_TAC THEN CONV_TAC SYM_CONV THEN
hol-light-20190729/Multivariate/degree.ml-7337-        FIRST_X_ASSUM MATCH_MP_TAC THEN REWRITE_TAC[frontier] THEN
hol-light-20190729/Multivariate/degree.ml:7338:        MP_TAC(ISPEC `s:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-7339-      REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN X_GEN_TAC `x:real^N` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7343-      ASM_SIMP_TAC[frontier; CLOSURE_CLOSED; COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/degree.ml:7344:      MP_TAC(ISPEC `s:real^N->bool` INTERIOR_SUBSET) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-7345-    REWRITE_TAC[OR_EXISTS_THM; o_THM] THEN MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7348-    SUBGOAL_THEN `~((f:real^N->real^N) x = a)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:7349:     [MP_TAC(ISPEC `s:real^N->bool` INTERIOR_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-7350-      ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml:7351:    CONJ_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[IN_SEGMENT]] THEN
hol-light-20190729/Multivariate/degree.ml-7352-    FIRST_X_ASSUM(X_CHOOSE_THEN `c:real` MP_TAC o
##############################################
hol-light-20190729/Multivariate/degree.ml-7385-  REWRITE_TAC[VECTOR_ARITH `x + a - y:real^N = x <=> y = a`] THEN
hol-light-20190729/Multivariate/degree.ml:7386:  DISCH_THEN(DISJ_CASES_THEN MP_TAC) THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-7387-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `x:real^N` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7402-        COMPACT_SUBSET_FRONTIER_RETRACTION) THEN
hol-light-20190729/Multivariate/degree.ml:7403:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-7404-
##############################################
hol-light-20190729/Multivariate/degree.ml-7421-  SUBGOAL_THEN `closure(c:real^N->bool) SUBSET t` ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:7422:   [REWRITE_TAC[CLOSURE_UNION_FRONTIER] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-7423-  SUBGOAL_THEN `(c:real^N->bool) SUBSET s` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-7428-    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml:7429:     [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-7430-    FIRST_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml-7431-    FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_NONEMPTY) THEN
hol-light-20190729/Multivariate/degree.ml:7432:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-7433-
##############################################
hol-light-20190729/Multivariate/degree.ml-7468-     GSYM closed; COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/degree.ml:7469:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-7470-  MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/degree.ml-7487-    FIRST_ASSUM(ASSUME_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:7488:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-7489-    TRANS_TAC SUBSET_TRANS `frontier((:real^N) DIFF s)` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7492-    ASM_SIMP_TAC[frontier; CLOSURE_CLOSED; COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/degree.ml:7493:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-7494-    MATCH_MP_TAC(SET_RULE `s SUBSET t
##############################################
hol-light-20190729/Multivariate/degree.ml-7516-    ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/degree.ml:7517:    ASM_CASES_TAC `d:real^N->bool = {}` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-7518-    ASM_MESON_TAC[IN_COMPONENTS_NONEMPTY]] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7534-    DISCH_THEN(MP_TAC o SPEC `p:real^N`) THEN
hol-light-20190729/Multivariate/degree.ml:7535:    ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-7536-    REWRITE_TAC[GSYM MEMBER_NOT_EMPTY] THEN EXISTS_TAC `p:real^N` THEN
hol-light-20190729/Multivariate/degree.ml-7537-    ASM_REWRITE_TAC[IN_INTER] THEN REWRITE_TAC[IN] THEN
hol-light-20190729/Multivariate/degree.ml:7538:    REWRITE_TAC[CONNECTED_COMPONENT_REFL_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:7539:    MATCH_MP_TAC CONNECTED_COMPONENT_MONO THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-7540-
##############################################
hol-light-20190729/Multivariate/degree.ml-7589-  FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP HOMOTOPIC_WITH_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:7590:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-7591-  DISCH_THEN(X_CHOOSE_THEN `g:real^N->real^N` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7594-  ASM_SIMP_TAC[COMPACT_CBALL; CONVEX_CBALL; CBALL_EQ_EMPTY] THEN
hol-light-20190729/Multivariate/degree.ml:7595:  ASM_SIMP_TAC[REAL_ARITH `&0 < r ==> ~(r < &0)`] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-7596-
##############################################
hol-light-20190729/Multivariate/degree.ml-7725-  ASM_REWRITE_TAC[o_THM; IMAGE_o] THEN
hol-light-20190729/Multivariate/degree.ml:7726:  ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml:7727:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-7728-  MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7742-  MATCH_MP_TAC(TAUT `(p /\ q ==> r) /\ p ==> (p ==> q) ==> r`) THEN
hol-light-20190729/Multivariate/degree.ml:7743:  CONJ_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC CLOSURE_MINIMAL] THEN
hol-light-20190729/Multivariate/degree.ml-7744-  ASM_MESON_TAC[RETRACT_OF_CLOSED; CLOSED_UNIV]);;
##############################################
hol-light-20190729/Multivariate/degree.ml-7763-        SCHAUDER_GEN) THEN
hol-light-20190729/Multivariate/degree.ml:7764:  ASM_SIMP_TAC[CONVEX_IMP_AR] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/degree.ml-7765-
##############################################
hol-light-20190729/Multivariate/degree.ml-7792-   [ASM_SIMP_TAC[CLOSURE_SUBSET; IMAGE_SUBSET; IMAGE_o] THEN
hol-light-20190729/Multivariate/degree.ml:7793:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml-7794-     [MATCH_MP_TAC COMPACT_CONTINUOUS_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7798-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `y:real^N` THEN
hol-light-20190729/Multivariate/degree.ml:7799:    REWRITE_TAC[o_THM] THEN STRIP_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-7800-
##############################################
hol-light-20190729/Multivariate/degree.ml-7858-      FIRST_X_ASSUM(SUBST1_TAC o SYM) THEN
hol-light-20190729/Multivariate/degree.ml:7859:      TRANS_TAC REAL_LE_TRANS `sum {i} (\i. (x:real^N)$i)` THEN
hol-light-20190729/Multivariate/degree.ml-7860-      CONJ_TAC THENL [REWRITE_TAC[SUM_SING; REAL_LE_REFL]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7942-    MATCH_MP_TAC REAL_LE_RMUL THEN ASM_SIMP_TAC[REAL_SUB_LE] THEN
hol-light-20190729/Multivariate/degree.ml:7943:    SUBGOAL_THEN `(a:real^N)$i <= (b:real^N)$i` MP_TAC THENL
hol-light-20190729/Multivariate/degree.ml-7944-     [ASM_MESON_TAC[REAL_LE_TRANS]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7964-let INFNORM_2 = prove
hol-light-20190729/Multivariate/degree.ml:7965: (`infnorm (x:real^2) = max (abs(x$1)) (abs(x$2))`,
hol-light-20190729/Multivariate/degree.ml-7966-  REWRITE_TAC[infnorm; INFNORM_SET_IMAGE; NUMSEG_CONV `1..2`; DIMINDEX_2] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-7975-let INFNORM_EQ_1_IMP = prove
hol-light-20190729/Multivariate/degree.ml:7976: (`infnorm (x:real^2) = &1 ==> abs(x$1) <= &1 /\ abs(x$2) <= &1`,
hol-light-20190729/Multivariate/degree.ml-7977-  SIMP_TAC[INFNORM_EQ_1_2]);;
##############################################
hol-light-20190729/Multivariate/degree.ml-7993-  ABBREV_TAC `sqprojection = \z:real^2. inv(infnorm z) % z` THEN
hol-light-20190729/Multivariate/degree.ml:7994:  ABBREV_TAC `(negatex:real^2->real^2) = \x. vector[--(x$1); x$2]` THEN
hol-light-20190729/Multivariate/degree.ml-7995-  SUBGOAL_THEN `!z:real^2. infnorm(negatex z:real^2) = infnorm z` ASSUME_TAC
##############################################
hol-light-20190729/Multivariate/degree.ml-8098-   [MATCH_MP_TAC(REAL_ARITH
hol-light-20190729/Multivariate/degree.ml:8099:     `abs(x$1) <= &1 /\ abs(x$2) <= &1 ==> ~(&0 < -- &1 - x$1)`);
hol-light-20190729/Multivariate/degree.ml-8100-    MATCH_MP_TAC(REAL_ARITH
hol-light-20190729/Multivariate/degree.ml:8101:     `abs(x$1) <= &1 /\ abs(x$2) <= &1 ==> ~(&1 - x$1 < &0)`);
hol-light-20190729/Multivariate/degree.ml-8102-    MATCH_MP_TAC(REAL_ARITH
hol-light-20190729/Multivariate/degree.ml:8103:     `abs(x$1) <= &1 /\ abs(x$2) <= &1 ==> ~(x$2 - -- &1 < &0)`);
hol-light-20190729/Multivariate/degree.ml-8104-    MATCH_MP_TAC(REAL_ARITH
hol-light-20190729/Multivariate/degree.ml:8105:     `abs(x$1) <= &1 /\ abs(x$2) <= &1 ==> ~(&0 < x$2 - &1)`)] THEN
hol-light-20190729/Multivariate/degree.ml-8106-  (SUBGOAL_THEN `!z:real^2. abs(z$1) <= &1 /\ abs(z$2) <= &1 <=>
##############################################
hol-light-20190729/Multivariate/degree.ml-8146-  ASM_REWRITE_TAC[IMAGE_o] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/degree.ml:8147:   [REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/degree.ml-8148-    REPLICATE_TAC 2 (CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-8154-                    VECTOR_ARITH `inv(&2) % (x + x) = x`];
hol-light-20190729/Multivariate/degree.ml:8155:    REWRITE_TAC[o_THM; LEFT_IMP_EXISTS_THM; IN_IMAGE] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-8156-
##############################################
hol-light-20190729/Multivariate/degree.ml-8171-  REWRITE_TAC[INTERVAL_NE_EMPTY; DIMINDEX_2; FORALL_2] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/degree.ml:8172:  MP_TAC(ASSUME `(a:real^2)$1 <= (b:real^2)$1`) THEN
hol-light-20190729/Multivariate/degree.ml-8173-  REWRITE_TAC[REAL_ARITH `a <= b <=> b = a \/ a < b`] THEN STRIP_TAC THENL
hol-light-20190729/Multivariate/degree.ml-8174-   [SUBGOAL_THEN
hol-light-20190729/Multivariate/degree.ml:8175:      `?z:real^2. z IN path_image g /\ z$2 = (pathstart f:real^2)$2`
hol-light-20190729/Multivariate/degree.ml-8176-    MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-8198-    ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml:8199:  MP_TAC(ASSUME `(a:real^2)$2 <= (b:real^2)$2`) THEN
hol-light-20190729/Multivariate/degree.ml-8200-  REWRITE_TAC[REAL_ARITH `a <= b <=> b = a \/ a < b`] THEN STRIP_TAC THENL
hol-light-20190729/Multivariate/degree.ml-8201-   [SUBGOAL_THEN
hol-light-20190729/Multivariate/degree.ml:8202:      `?z:real^2. z IN path_image f /\ z$1 = (pathstart g:real^2)$1`
hol-light-20190729/Multivariate/degree.ml-8203-    MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-8237-      SIMP_TAC[INTERVAL_NE_EMPTY; VECTOR_NEG_COMPONENT; VEC_COMPONENT] THEN
hol-light-20190729/Multivariate/degree.ml:8238:      CONV_TAC REAL_RAT_REDUCE_CONV THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8239-      ALL_TAC]) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8339-     linepath(vector[b$1 + &1;a$2 - &1],vector[(b:real^2)$1 + &1;b$2 + &3])`;
hol-light-20190729/Multivariate/degree.ml:8340:    `vector[(a:real^2)$1 - &2; a$2 - &3]:real^2`;
hol-light-20190729/Multivariate/degree.ml:8341:    `vector[(b:real^2)$1 + &2; b$2 + &3]:real^2`]
hol-light-20190729/Multivariate/degree.ml-8342-   FASHODA) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8422-    ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; SUBSET_UNIV];
hol-light-20190729/Multivariate/degree.ml:8423:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8424-    MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/degree.ml-8560-        ASM_SIMP_TAC[SETDIST_EQ_0_COMPACT_CLOSED; GSYM OPEN_CLOSED] THEN
hol-light-20190729/Multivariate/degree.ml:8561:        ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8562-        REWRITE_TAC[REAL_HALF; SUBSET; FORALL_IN_GSPEC] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8569-        SUBST1_TAC(NORM_ARITH `norm(e:real^N) = dist(x,x + e)`) THEN
hol-light-20190729/Multivariate/degree.ml:8570:        MATCH_MP_TAC SETDIST_LE_DIST THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-8571-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8584-      CONJ_TAC THENL [ASM_REAL_ARITH_TAC; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml:8585:       [REWRITE_TAC[CBALL_MIN_INTER] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-8586-      REWRITE_TAC[FORALL_IN_GSPEC; IN_CBALL_0; REAL_LE_MIN] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8628-      ASM_SIMP_TAC[OPEN_IN_DIFF_CLOSED; COMPACT_IMP_CLOSED];
hol-light-20190729/Multivariate/degree.ml:8629:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-8630-    MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] FINITE_SUBSET) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8634-    ASM_CASES_TAC `(c:real^N->bool) SUBSET interior sd` THENL
hol-light-20190729/Multivariate/degree.ml:8635:     [DISCH_THEN(K ALL_TAC); ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/degree.ml-8636-  SUBGOAL_THEN `closure c SUBSET (sd:real^N->bool)` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-8641-  SUBGOAL_THEN `frontier c SUBSET (sd:real^N->bool)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/degree.ml:8642:   [REWRITE_TAC[frontier] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-8643-  ABBREV_TAC `h = cball(p:real^N,a + &3 / &4 * (b - a))` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8665-    SIMP_TAC[] THEN REWRITE_TAC[COND_RAND; COND_RATOR; VECTOR_SUB_EQ] THEN
hol-light-20190729/Multivariate/degree.ml:8666:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-8667-    GEN_REWRITE_TAC RAND_CONV [UNION_COMM] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8670-    ASM_REWRITE_TAC[VECTOR_SUB_EQ; SUBSET_UNION; CONTINUOUS_ON_CONST] THEN
hol-light-20190729/Multivariate/degree.ml:8671:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-8672-    MATCH_MP_TAC CONTINUOUS_ON_SUB THEN REWRITE_TAC[CONTINUOUS_ON_ID] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8674-     (REWRITE_RULE[IMP_CONJ] CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:8675:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8676-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8684-    CONJ_TAC THENL [ASM_REAL_ARITH_TAC; REWRITE_TAC[IN_CBALL_0]] THEN
hol-light-20190729/Multivariate/degree.ml:8685:    REWRITE_TAC[ONCE_REWRITE_RULE[DIST_SYM] (GSYM dist)] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8686-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8701-    MATCH_MP_TAC CLOSURE_MINIMAL THEN REWRITE_TAC[CLOSED_CBALL] THEN
hol-light-20190729/Multivariate/degree.ml:8702:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8703-    DISCH_THEN(X_CHOOSE_THEN `g':real^N->real^N` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8722-      ==> dist(x,r x - g x) <= e / &2`) THEN
hol-light-20190729/Multivariate/degree.ml:8723:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-8724-    RULE_ASSUM_TAC(REWRITE_RULE[SUBSET; FORALL_IN_IMAGE; IN_CBALL_0]) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8728-    MATCH_MP_TAC CLOSURE_MINIMAL THEN REWRITE_TAC[CLOSED_CBALL] THEN
hol-light-20190729/Multivariate/degree.ml:8729:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8730-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8757-    DISCH_THEN(STRIP_ASSUME_TAC o GSYM) THEN
hol-light-20190729/Multivariate/degree.ml:8758:    ASM_CASES_TAC `(x:real^N) IN h` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-8759-    REMOVE_THEN "3" (MP_TAC o SPEC `x:real^N`) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8762-    ONCE_REWRITE_TAC[DIST_SYM] THEN MATCH_MP_TAC SETDIST_LE_DIST THEN
hol-light-20190729/Multivariate/degree.ml:8763:    ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8764-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8773-     (REWRITE_RULE[IMP_CONJ] CONTINUOUS_ON_SUBSET))
hol-light-20190729/Multivariate/degree.ml:8774:    THENL [ASM SET_TAC[]; MATCH_MP_TAC CLOSURE_MINIMAL] THEN
hol-light-20190729/Multivariate/degree.ml:8775:    REWRITE_TAC[CLOSED_CBALL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml:8776:    MP_TAC(ISPEC `c:real^N->bool` FRONTIER_CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8777-    REWRITE_TAC[SUBSET] THEN DISCH_THEN(MP_TAC o SPEC `q:real^N`) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8807-      ASM_REWRITE_TAC[] THEN MATCH_MP_TAC EQ_IMP THEN
hol-light-20190729/Multivariate/degree.ml:8808:      AP_TERM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8809-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8871-      DISCH_THEN MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/degree.ml:8872:      REWRITE_TAC[CBALL_MIN_INTER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8873-      MAP_EVERY X_GEN_TAC [`n:num`; `d:real^N->bool`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8890-        MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/degree.ml:8891:        REWRITE_TAC[CBALL_MIN_INTER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8892-        MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `e:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8909-          REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:8910:          ASM SET_TAC[]]]];
hol-light-20190729/Multivariate/degree.ml-8911-    REWRITE_TAC[FORALL_AND_THM; LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8926-    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/degree.ml:8927:    REWRITE_TAC[CBALL_MIN_INTER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-8928-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-8958-        EXISTS_TAC `(u:num->real^N->bool) n` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml:8959:         [ASM_MESON_TAC[IN_COMPONENTS_CONNECTED]; ASM SET_TAC[]]];
hol-light-20190729/Multivariate/degree.ml-8960-      ONCE_REWRITE_TAC[PATH_COMPONENT_SYM_EQ] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9040-          ASM_ARITH_TAC;
hol-light-20190729/Multivariate/degree.ml:9041:          REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-9042-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9080-      X_GEN_TAC `n:num` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/degree.ml:9081:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-9082-      MATCH_MP_TAC CLOSED_SUBSET THEN REWRITE_TAC[CLOSED_INTERVAL] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9117-   [EXPAND_TAC "g" THEN REWRITE_TAC[pathstart; IN_DELETE] THEN
hol-light-20190729/Multivariate/degree.ml:9118:    SIMP_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-9119-    SIMP_TAC[path; CONTINUOUS_ON_EQ_CONTINUOUS_WITHIN; CONTINUOUS_WITHIN] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9202-      FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:9203:      ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9204-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `a:real^1->real^N` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9274-       [GSYM FRONTIER_DISJOINT_EQ]) THEN
hol-light-20190729/Multivariate/degree.ml:9275:      ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9276-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `h:real^1->real^N` THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9369-      FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN
hol-light-20190729/Multivariate/degree.ml:9370:      ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9371-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9378-      REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:9379:      ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9380-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9385-      REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:9386:      ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9387-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9396-      UNDISCH_TAC `(p:real^N) IN frontier c` THEN
hol-light-20190729/Multivariate/degree.ml:9397:      ASM_SIMP_TAC[frontier; INTERIOR_OPEN] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9398-      DISCH_THEN(X_CHOOSE_THEN `g:real^1->real^N` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9412-          REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:9413:          ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-9414-        MATCH_MP_TAC PATH_COMPONENT_OF_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9421-          REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:9422:          ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9423-          REWRITE_TAC[pathstart] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9438-  SUBGOAL_THEN `(p:real^N) IN closure c` MP_TAC THENL
hol-light-20190729/Multivariate/degree.ml:9439:   [ASM SET_TAC[]; REWRITE_TAC[CLOSURE_UNION_FRONTIER; IN_UNION]] THEN
hol-light-20190729/Multivariate/degree.ml-9440-  STRIP_TAC THENL
##############################################
hol-light-20190729/Multivariate/degree.ml-9446-    ASM_SIMP_TAC[OPEN_IN_OPEN_EQ; OPEN_INTER] THEN
hol-light-20190729/Multivariate/degree.ml:9447:    STRIP_TAC THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml:9448:    MATCH_MP_TAC OPEN_SUBSET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9449-    REWRITE_TAC[GSYM path_component] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9456-    ASM_SIMP_TAC[OPEN_IN_OPEN_INTER] THEN
hol-light-20190729/Multivariate/degree.ml:9457:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/degree.ml-9458-    X_GEN_TAC `q:real^N` THEN REWRITE_TAC[IN_INTER] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/degree.ml-9459-    SUBGOAL_THEN `(q:real^N) IN closure c` MP_TAC THENL
hol-light-20190729/Multivariate/degree.ml:9460:     [ASM SET_TAC[]; REWRITE_TAC[CLOSURE_UNION_FRONTIER; IN_UNION]] THEN
hol-light-20190729/Multivariate/degree.ml-9461-    STRIP_TAC THENL
hol-light-20190729/Multivariate/degree.ml-9462-     [MATCH_MP_TAC PATH_COMPONENT_OF_SUBSET THEN
hol-light-20190729/Multivariate/degree.ml:9463:      EXISTS_TAC `(p:real^N) INSERT c INTER u` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9464-      MP_TAC(ISPECL
##############################################
hol-light-20190729/Multivariate/degree.ml-9470-        FRONTIER_OPEN_STRADDLE_INTER) THEN
hol-light-20190729/Multivariate/degree.ml:9471:      ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(MP_TAC o CONJUNCT1)] THEN
hol-light-20190729/Multivariate/degree.ml-9472-      REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; LEFT_IMP_EXISTS_THM; IN_INTER] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9475-      CONJ_TAC THEN MATCH_MP_TAC PATH_COMPONENT_OF_SUBSET THENL
hol-light-20190729/Multivariate/degree.ml:9476:       [EXISTS_TAC `(p:real^N) INSERT c INTER u` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9477-        EXISTS_TAC `(q:real^N) INSERT c INTER v` THEN
hol-light-20190729/Multivariate/degree.ml:9478:        ONCE_REWRITE_TAC[PATH_COMPONENT_SYM_EQ] THEN ASM SET_TAC[]]]]);;
hol-light-20190729/Multivariate/degree.ml-9479-
##############################################
hol-light-20190729/Multivariate/degree.ml-9548-      ASM_SIMP_TAC[frontier; CLOSURE_CLOSED; COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/degree.ml:9549:      FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9550-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9557-    EXISTS_TAC `(p:real^N) INSERT c` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/degree.ml:9558:     [FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9559-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9573-        REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/degree.ml:9574:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-9575-      MATCH_MP_TAC PATH_COMPONENT_OF_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9609-    ASM_SIMP_TAC[OPEN_IN_OPEN_EQ; OPEN_DIFF; COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/degree.ml:9610:    STRIP_TAC THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml:9611:    MATCH_MP_TAC OPEN_SUBSET THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/degree.ml-9612-  REWRITE_TAC[GSYM path_component] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9615-  ASM_SIMP_TAC[frontier; CLOSURE_CLOSED; COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/degree.ml:9616:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-9617-  DISCH_THEN(X_CHOOSE_THEN `v:real^N->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9619-  ASM_SIMP_TAC[OPEN_IN_OPEN_INTER] THEN
hol-light-20190729/Multivariate/degree.ml:9620:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/degree.ml-9621-  X_GEN_TAC `q:real^N` THEN REWRITE_TAC[IN_INTER] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9624-    ASM_SIMP_TAC[frontier; CLOSURE_CLOSED; COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/degree.ml:9625:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/degree.ml-9626-    DISCH_THEN(X_CHOOSE_THEN `w:real^N->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9629-    ASM_SIMP_TAC[frontier; CLOSURE_CLOSED; COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/degree.ml:9630:    ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(MP_TAC o CONJUNCT2)] THEN
hol-light-20190729/Multivariate/degree.ml-9631-    REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; LEFT_IMP_EXISTS_THM; IN_DIFF] THEN
##############################################
hol-light-20190729/Multivariate/degree.ml-9634-    CONJ_TAC THEN MATCH_MP_TAC PATH_COMPONENT_OF_SUBSET THENL
hol-light-20190729/Multivariate/degree.ml:9635:     [EXISTS_TAC `(p:real^N) INSERT (u DIFF s)` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/degree.ml-9636-      EXISTS_TAC `(q:real^N) INSERT (v DIFF s)` THEN
hol-light-20190729/Multivariate/degree.ml:9637:      ONCE_REWRITE_TAC[PATH_COMPONENT_SYM_EQ] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/degree.ml-9638-    MATCH_MP_TAC PATH_COMPONENT_OF_SUBSET THEN
hol-light-20190729/Multivariate/degree.ml-9639-    EXISTS_TAC `(p:real^N) INSERT (u DIFF s)` THEN
hol-light-20190729/Multivariate/degree.ml:9640:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/degree.ml-9641-
##############################################
hol-light-20190729/Multivariate/degree.ml-9705-  EXISTS_TAC `g:real^1->real^N` THEN
hol-light-20190729/Multivariate/degree.ml:9706:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
##############################################
hol-light-20190729/Multivariate/derivatives.ml-117-let HAS_DERIVATIVE_LIFT_COMPONENT = prove
hol-light-20190729/Multivariate/derivatives.ml:118: (`!net:(real^N)net. ((\x. lift(x$i)) has_derivative (\x. lift(x$i))) net`,
hol-light-20190729/Multivariate/derivatives.ml-119-  GEN_TAC THEN MATCH_MP_TAC HAS_DERIVATIVE_LINEAR THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-666-let DIFFERENTIABLE_LIFT_COMPONENT = prove
hol-light-20190729/Multivariate/derivatives.ml:667: (`!net:(real^N)net. (\x. lift(x$i)) differentiable net`,
hol-light-20190729/Multivariate/derivatives.ml-668-  REWRITE_TAC[differentiable] THEN MESON_TAC[HAS_DERIVATIVE_LIFT_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/derivatives.ml-733-   [DISCH_THEN(X_CHOOSE_TAC `g':real^M->real^N`) THEN
hol-light-20190729/Multivariate/derivatives.ml:734:    EXISTS_TAC `\i x. lift((g':real^M->real^N) x$i)` THEN ASM_REWRITE_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-735-    DISCH_THEN(X_CHOOSE_TAC `g':num->real^M->real^1`) THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-877-  MATCH_MP_TAC(MESON[] `(?a. P a \/ P(--a)) ==> (?a:real. P a)`) THEN
hol-light-20190729/Multivariate/derivatives.ml:878:  EXISTS_TAC `(min ((b:real^M)$i - (a:real^M)$i) e) / &2` THEN
hol-light-20190729/Multivariate/derivatives.ml-879-  REWRITE_TAC[REAL_ABS_NEG; GSYM LEFT_OR_DISTRIB] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-909-  MATCH_MP_TAC(MESON[] `(?a. P a \/ P(--a)) ==> (?a:real. P a)`) THEN
hol-light-20190729/Multivariate/derivatives.ml:910:  EXISTS_TAC `(min ((b:real^M)$i - (a:real^M)$i) e) / &3` THEN
hol-light-20190729/Multivariate/derivatives.ml-911-  REWRITE_TAC[REAL_ABS_NEG; GSYM LEFT_OR_DISTRIB] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-965-  DISCH_THEN(MP_TAC o SPEC
hol-light-20190729/Multivariate/derivatives.ml:966:    `--((f':real^M->real^N)(y - x)$k) / norm(y - x)`) THEN
hol-light-20190729/Multivariate/derivatives.ml-967-  ASM_SIMP_TAC[REAL_LT_DIV; NORM_POS_LT; VECTOR_SUB_EQ;
##############################################
hol-light-20190729/Multivariate/derivatives.ml-994-  MATCH_MP_TAC(NORM_ARITH
hol-light-20190729/Multivariate/derivatives.ml:995:   `abs(y$k) <= norm(y) /\ ~(abs(y$k) < e) ==> ~(norm y < e)`) THEN
hol-light-20190729/Multivariate/derivatives.ml-996-  ASM_SIMP_TAC[COMPONENT_LE_NORM] THEN REWRITE_TAC[VECTOR_MUL_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-1239-        FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/derivatives.ml:1240:        ASM_SIMP_TAC[SEGMENT_IMAGE_INTERVAL] THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/derivatives.ml-1241-  ASM_SIMP_TAC[SEGMENT_IMAGE_INTERVAL; EXISTS_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-1446-  DISCH_THEN(MP_TAC o SPEC `{x | x IN s /\ (f:real^M->real^N) x = f a}`) THEN
hol-light-20190729/Multivariate/derivatives.ml:1447:  ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml-1448-   [SIMP_TAC[open_in; SUBSET; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-1952-  FIRST_X_ASSUM(MP_TAC o SPEC `x:real^N`) THEN
hol-light-20190729/Multivariate/derivatives.ml:1953:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-1954-  MATCH_MP_TAC MONO_AND THEN REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-2521-    ASM_SIMP_TAC[SETDIST_EQ_0_SING; CLOSURE_CLOSED; GSYM OPEN_CLOSED] THEN
hol-light-20190729/Multivariate/derivatives.ml:2522:    ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-2523-    REWRITE_TAC[num_CONV `1`; baire]] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-2561-                     GSYM OPEN_CLOSED] THEN
hol-light-20190729/Multivariate/derivatives.ml:2562:        ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/derivatives.ml-2563-    EXPAND_TAC "d" THEN REWRITE_TAC[real_div; LIFT_CMUL] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-2883-        CONNECTED_INTER_FRONTIER) THEN
hol-light-20190729/Multivariate/derivatives.ml:2884:    ASM_REWRITE_TAC[NOT_IMP] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-2885-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/derivatives.ml-2989-        MP_TAC(ISPECL [`b:real^N`; `e:real`; `e0:real`] SUBSET_BALL) THEN
hol-light-20190729/Multivariate/derivatives.ml:2990:        ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml:2991:        MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/derivatives.ml-2992-    SUBGOAL_THEN `&0 < e` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/derivatives.ml-2999-      RULE_ASSUM_TAC(REWRITE_RULE[o_THM; I_THM; FUN_EQ_THM]) THEN
hol-light-20190729/Multivariate/derivatives.ml:3000:      ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3001-      UNDISCH_THEN `(g':real^N->real^N->real^N) a (f a - b) = h`
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3175-                 REAL_LT_MUL; REAL_LT_01; CBALL_MIN_INTER; IN_INTER] THEN
hol-light-20190729/Multivariate/derivatives.ml:3176:    CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `y:real^N`] THEN
hol-light-20190729/Multivariate/derivatives.ml-3177-    REWRITE_TAC[IN_CBALL; dist] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3274-      ASM_REWRITE_TAC[REAL_LT_MIN; REAL_HALF; CBALL_MIN_INTER] THEN
hol-light-20190729/Multivariate/derivatives.ml:3275:      CONJ_TAC THENL [ASM_REAL_ARITH_TAC; ASM SET_TAC[]]];
hol-light-20190729/Multivariate/derivatives.ml-3276-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3333-    ASM_REWRITE_TAC[COMPACT_CBALL] THEN
hol-light-20190729/Multivariate/derivatives.ml:3334:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[NOT_FORALL_THM]] THEN
hol-light-20190729/Multivariate/derivatives.ml-3335-    GEN_REWRITE_TAC LAND_CONV [SWAP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3340-      EXISTS_TAC `(k:num->real^N->bool) o (q:num->num)` THEN
hol-light-20190729/Multivariate/derivatives.ml:3341:      ASM_SIMP_TAC[o_THM; COMPACT_IMP_BOUNDED] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3342-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3346-      EXISTS_TAC `(k:num->real^N->bool) o (q:num->num)` THEN
hol-light-20190729/Multivariate/derivatives.ml:3347:      ASM_SIMP_TAC[o_THM; COMPACT_IMP_BOUNDED] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3348-      REWRITE_TAC[REAL_ARITH `~(x < y) <=> y - x <= &0`] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3390-      CONJ_TAC THEN MATCH_MP_TAC REAL_SUP_LE THEN
hol-light-20190729/Multivariate/derivatives.ml:3391:      (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/derivatives.ml-3392-      REWRITE_TAC[FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3420-      REPEAT CONJ_TAC THEN
hol-light-20190729/Multivariate/derivatives.ml:3421:      (MATCH_MP_TAC COMPACT_IMP_BOUNDED ORELSE ASM SET_TAC[]) THEN
hol-light-20190729/Multivariate/derivatives.ml-3422-      MATCH_MP_TAC COMPACT_CONTINUOUS_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3425-  SUBGOAL_THEN `~(k:real^N->bool = {})` ASSUME_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml:3426:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-3427-  MP_TAC(ISPEC `{norm((f:real^N->real^N) z - b) | z IN k}` SUP) THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3429-  REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml:3430:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3431-    ONCE_REWRITE_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3448-        EXISTS_TAC `f':real^N->real^N->real^N` THEN
hol-light-20190729/Multivariate/derivatives.ml:3449:        ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/derivatives.ml-3450-        REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/derivatives.ml:3451:        MATCH_MP_TAC HAS_DERIVATIVE_AT_WITHIN THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3452-        ASM_SIMP_TAC[CONNECTED_INFINITE_IFF_CARD_EQ;
hol-light-20190729/Multivariate/derivatives.ml-3453-                     CONNECTED_CARD_EQ_IFF_NONTRIVIAL] THEN
hol-light-20190729/Multivariate/derivatives.ml:3454:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/derivatives.ml-3455-      REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3476-    MP_TAC(ISPECL [`x:real^N`; `r':real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/derivatives.ml:3477:    ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3478-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3487-    ASM_REWRITE_TAC[CONTRAPOS_THM] THEN
hol-light-20190729/Multivariate/derivatives.ml:3488:    ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/derivatives.ml-3489-    ASM_SIMP_TAC[FRONTIER_BALL; EXTENSION; IN_INTER; NOT_IN_EMPTY] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3518-    REWRITE_TAC[GSYM(ONCE_REWRITE_RULE[DIST_SYM] dist); GSYM IN_CBALL] THEN
hol-light-20190729/Multivariate/derivatives.ml:3519:    MATCH_MP_TAC(REWRITE_RULE[SUBSET] BALL_SUBSET_CBALL) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3520-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3543-      SUBGOAL_THEN `(z:real^N) IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml:3544:       [RULE_ASSUM_TAC(REWRITE_RULE[frontier]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3545-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3554-      MP_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml:3555:       [REWRITE_TAC[GSYM UNIONS_COMPONENTS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3556-        REWRITE_TAC[IN_UNIONS; LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3570-      DISCH_THEN(MP_TAC o snd o EQ_IMP_RULE) THEN
hol-light-20190729/Multivariate/derivatives.ml:3571:      ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/derivatives.ml-3572-      REWRITE_TAC[DISJOINT] THEN ASM_MESON_TAC[COMPONENTS_NONOVERLAP]];
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3597-      ASM_REWRITE_TAC[OPEN_BALL];
hol-light-20190729/Multivariate/derivatives.ml:3598:      ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3599-      REWRITE_TAC[GSYM CBALL_DIFF_SPHERE] THEN MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3604-      REWRITE_TAC[SUBSET] THEN DISCH_THEN(MP_TAC o SPEC `b:real^N`) THEN
hol-light-20190729/Multivariate/derivatives.ml:3605:      ASM_REWRITE_TAC[CENTRE_IN_BALL] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/derivatives.ml-3606-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3613-      REWRITE_TAC[COMPACT_CBALL] THEN
hol-light-20190729/Multivariate/derivatives.ml:3614:      CONJ_TAC THENL [REPEAT STRIP_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/derivatives.ml:3615:      MATCH_MP_TAC HAS_DERIVATIVE_AT_WITHIN THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3616-      MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] CARD_LE_FINITE)] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3620-     [MP_TAC(ISPECL [`x:real^N`; `r:real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/derivatives.ml:3621:      ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3622-      REPEAT GEN_TAC THEN EXPAND_TAC "U" THEN REWRITE_TAC[IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3633-    SUBGOAL_THEN `(a:real^N) IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml:3634:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-3635-    REMOVE_THEN "L7" (MP_TAC o SPECL [`e:real`; `a:real^N`; `b:real^N`]) THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3643-      OPEN_INTER_CLOSURE_EQ_EMPTY) THEN
hol-light-20190729/Multivariate/derivatives.ml:3644:    REWRITE_TAC[OPEN_BALL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3645-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3647-   [ASM_REWRITE_TAC[SET_RULE `{f x | x IN {}} = {}`] THEN
hol-light-20190729/Multivariate/derivatives.ml:3648:    REWRITE_TAC[UNIONS_0] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3649-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3672-      FIRST_ASSUM(ASSUME_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN
hol-light-20190729/Multivariate/derivatives.ml:3673:      ASM_SIMP_TAC[CONNECTED_INSERT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3674-      DISCH_THEN(X_CHOOSE_THEN `g:real^1->real^N` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3681-       [TRANS_TAC SUBSET_TRANS `ball(x:real^N,r)` THEN
hol-light-20190729/Multivariate/derivatives.ml:3682:        REWRITE_TAC[BALL_SUBSET_CBALL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3683-        REWRITE_TAC[REAL_NOT_LE]] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3690-          CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/derivatives.ml:3691:        FIRST_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3692-        REWRITE_TAC[EXISTS_IN_IMAGE; FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3701-        REWRITE_TAC[IN_BALL; ONCE_REWRITE_RULE[DIST_SYM] dist] THEN
hol-light-20190729/Multivariate/derivatives.ml:3702:        ASM SET_TAC[]]];
hol-light-20190729/Multivariate/derivatives.ml-3703-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3729-      ASM_REWRITE_TAC[];
hol-light-20190729/Multivariate/derivatives.ml:3730:      ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3731-      UNDISCH_TAC `k SUBSET UNIONS {closure u:real^N->bool | u IN U}` THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3743-  REMOVE_THEN "L7" (MP_TAC o SPECL [`e:real`; `a:real^N`; `b:real^N`]) THEN
hol-light-20190729/Multivariate/derivatives.ml:3744:  ANTS_TAC THENL [ASM_REWRITE_TAC[] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-3745-  REWRITE_TAC[NOT_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3753-      OPEN_INTER_CLOSURE_EQ_EMPTY) THEN
hol-light-20190729/Multivariate/derivatives.ml:3754:    REWRITE_TAC[OPEN_BALL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3755-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3759-     `(!v. ~(s SUBSET {v})) ==> !u. u IN s ==> ?v. v IN s /\ ~(v = u)`)) THEN
hol-light-20190729/Multivariate/derivatives.ml:3760:    ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3761-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3784-      EXISTS_TAC `{x | x IN s /\ (f:real^N->real^N) x IN ball(b,e)}` THEN
hol-light-20190729/Multivariate/derivatives.ml:3785:      ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/derivatives.ml-3786-  SUBGOAL_THEN `(a:real^N) IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml:3787:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-3788-  SUBGOAL_THEN `~((f:real^N->real^N) a = b)` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3805-      ASSUME_TAC(MATCH_MP IN_COMPONENTS_SUBSET th))) THEN
hol-light-20190729/Multivariate/derivatives.ml:3806:    ASM_SIMP_TAC[CONNECTED_INSERT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3807-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3816-    REMOVE_THEN "L2" (MP_TAC o SPEC `a:real^N`) THEN
hol-light-20190729/Multivariate/derivatives.ml:3817:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/derivatives.ml-3818-    MAP_EVERY X_GEN_TAC [`rr:real`; `dd:real`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3862-    TRANS_TAC SUBSET_TRANS `IMAGE (f:real^N->real^N) (ball(a,q) INTER u1)` THEN
hol-light-20190729/Multivariate/derivatives.ml:3863:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/derivatives.ml-3864-    EXPAND_TAC "vv" THEN REMOVE_THEN "L3" MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3900-        FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_SIMP_TAC[IN_CBALL; REAL_LT_IMP_LE];
hol-light-20190729/Multivariate/derivatives.ml:3901:        REWRITE_TAC[GSYM CBALL_DIFF_SPHERE] THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/derivatives.ml-3902-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3951-  DISCH_THEN(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET o CONJUNCT1) THEN
hol-light-20190729/Multivariate/derivatives.ml:3952:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/derivatives.ml-3953-
##############################################
hol-light-20190729/Multivariate/derivatives.ml-3991-    DISCH_THEN(X_CHOOSE_THEN `r:real` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/derivatives.ml:3992:    EXISTS_TAC `r / &2` THEN ASM_REWRITE_TAC[REAL_HALF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-3993-    EXISTS_TAC `ball(a:real^N,r)` THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4112-   [SUBGOAL_THEN `((f:real^N->real^N) has_derivative f'(a)) (at a)`
hol-light-20190729/Multivariate/derivatives.ml:4113:    MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-4114-    SPEC_TAC(`(f':real^N->real^N->real^N) a`,`f':real^N->real^N`) THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4151-      SUBGOAL_THEN `((f:real^N->real^N) has_derivative f'(b)) (at b)`
hol-light-20190729/Multivariate/derivatives.ml:4152:      MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-4153-      SPEC_TAC(`(f':real^N->real^N->real^N) b`,`f':real^N->real^N`) THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4564-        INVERSE_FUNCTION_THEOREM) THEN
hol-light-20190729/Multivariate/derivatives.ml:4565:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-4566-    MAP_EVERY (fun t -> MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC t)
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4569-    STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/derivatives.ml:4570:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-4571-    X_GEN_TAC `x:real^N` THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4578-      MATCH_MP_TAC(TAUT `r /\ (p ==> q) ==> p ==> q /\ r`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml:4579:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-4580-      MATCH_MP_TAC MONO_FORALL THEN X_GEN_TAC `h:real^N` THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4597-      CONJ_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml:4598:       [RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-4599-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4604-        THENL
hol-light-20190729/Multivariate/derivatives.ml:4605:         [RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-4606-          REWRITE_TAC[GSYM CONTINUOUS_AT] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4608-          REWRITE_TAC[differentiable] THEN
hol-light-20190729/Multivariate/derivatives.ml:4609:          RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/derivatives.ml-4610-        FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (MESON[]
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4624-          [RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism; has_derivative]) THEN
hol-light-20190729/Multivariate/derivatives.ml:4625:           ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-4626-           DISCH_THEN(SUBST1_TAC o SYM)]) THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4631-          [RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism; has_derivative]) THEN
hol-light-20190729/Multivariate/derivatives.ml:4632:           ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-4633-           DISCH_THEN(SUBST1_TAC o SYM) THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4658-  REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
hol-light-20190729/Multivariate/derivatives.ml:4659:  STRIP_TAC THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/derivatives.ml-4660-
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4697-    DISCH_THEN(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/derivatives.ml:4698:    ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-4699-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `g:real^N->real^N`] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4707-    SUBGOAL_THEN `t = IMAGE (f:real^N->real^N) s` SUBST1_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml:4708:     [ASM SET_TAC[]; ASM_SIMP_TAC[FORALL_IN_IMAGE]] THEN
hol-light-20190729/Multivariate/derivatives.ml-4709-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4833-    MATCH_MP_TAC(TAUT `p /\ (p ==> q) ==> p /\ q`) THEN
hol-light-20190729/Multivariate/derivatives.ml:4834:    CONJ_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-4835-    MATCH_MP_TAC(TAUT `p /\ (p ==> q) ==> p /\ q`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml:4836:     [MP_TAC(ISPEC `p:real^N->bool` CLOSEST_POINT_SELF) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-4837-      DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4842-    MATCH_MP_TAC(TAUT `p /\ (p ==> q) ==> p /\ q`) THEN
hol-light-20190729/Multivariate/derivatives.ml:4843:    CONJ_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-4844-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4857-        SIMP_TAC[CLOSEST_POINT_SELF; VECTOR_SUB_REFL; VECTOR_ADD_RID]] THEN
hol-light-20190729/Multivariate/derivatives.ml:4858:      ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-4859-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4872-      EXISTS_TAC `f:real^N->real^N` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/derivatives.ml:4873:      CONJ_TAC THENL [ASM_MESON_TAC[homeomorphism]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/derivatives.ml-4874-      DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4918-        REWRITE_TAC[o_DEF; LIFT_DROP; CONTINUOUS_ON_ID];
hol-light-20190729/Multivariate/derivatives.ml:4919:        RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/derivatives.ml-4920-      MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] EVENTUALLY_MONO) THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4927-      STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml:4928:       [RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/derivatives.ml-4929-        ASM_SIMP_TAC[]] THEN
hol-light-20190729/Multivariate/derivatives.ml:4930:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/derivatives.ml-4931-      MATCH_MP_TAC SUBSPACE_ADD THEN
hol-light-20190729/Multivariate/derivatives.ml:4932:      ASM_SIMP_TAC[SUBSPACE_MUL] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/derivatives.ml-4933-
##############################################
hol-light-20190729/Multivariate/derivatives.ml-4977-      SUBGOAL_THEN `(x:real^N) IN p` ASSUME_TAC THENL
hol-light-20190729/Multivariate/derivatives.ml:4978:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-4979-      ASM_SIMP_TAC[SUBSPACE_ADD; SUBSPACE_MUL; UNIV_GSPEC; WITHIN_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-5001-        DISCH_TAC THEN MATCH_MP_TAC SUBSPACE_MUL THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/derivatives.ml:5002:        MATCH_MP_TAC SUBSPACE_SUB THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/derivatives.ml-5003-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/derivatives.ml-5550-  STRIP_TAC THEN DISCH_THEN(MP_TAC o SPEC `z:real^N`) THEN
hol-light-20190729/Multivariate/derivatives.ml:5551:  SUBGOAL_THEN `(z:real^N) IN s` ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/derivatives.ml-5552-  ANTS_TAC THENL
##############################################
hol-light-20190729/Multivariate/determinants.ml-18-let trace = new_definition
hol-light-20190729/Multivariate/determinants.ml:19:  `(trace:real^N^N->real) A = sum(1..dimindex(:N)) (\i. A$i$i)`;;
hol-light-20190729/Multivariate/determinants.ml-20-
##############################################
hol-light-20190729/Multivariate/determinants.ml-187-  MATCH_MP_TAC EQ_TRANS THEN
hol-light-20190729/Multivariate/determinants.ml:188:  EXISTS_TAC `product(1..dimindex(:N)) (\i. (mat 1:real^N^N)$i$i)` THEN
hol-light-20190729/Multivariate/determinants.ml-189-  CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/determinants.ml-196-  MATCH_MP_TAC EQ_TRANS THEN
hol-light-20190729/Multivariate/determinants.ml:197:  EXISTS_TAC `product(1..dimindex(:N)) (\i. (mat 0:real^N^N)$i$i)` THEN
hol-light-20190729/Multivariate/determinants.ml-198-  CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/determinants.ml-593-  X_GEN_TAC `i:num` THEN STRIP_TAC THEN MATCH_MP_TAC EQ_TRANS THEN
hol-light-20190729/Multivariate/determinants.ml:594:  EXISTS_TAC `(A:real^N^N)$i$p(i) * (B:real^N^N)$p(i)$q(i)` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/determinants.ml-595-   [ASM_MESON_TAC[VECTOR_MUL_COMPONENT; PERMUTES_IN_IMAGE; IN_NUMSEG];
##############################################
hol-light-20190729/Multivariate/determinants.ml-1119-   [FIRST_ASSUM(MP_TAC o MATCH_MP PERMUTES_IMAGE) THEN
hol-light-20190729/Multivariate/determinants.ml:1120:    REWRITE_TAC[EXTENSION; IN_IMAGE; IN_NUMSEG] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/determinants.ml-1121-    ASM_SIMP_TAC[LAMBDA_BETA]] THEN
##############################################
hol-light-20190729/Multivariate/determinants.ml-1134-   [FIRST_ASSUM(MP_TAC o MATCH_MP PERMUTES_IMAGE) THEN
hol-light-20190729/Multivariate/determinants.ml:1135:    REWRITE_TAC[EXTENSION; IN_IMAGE; IN_NUMSEG] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/determinants.ml-1136-    ASM_SIMP_TAC[LAMBDA_BETA] THEN REAL_ARITH_TAC]);;
##############################################
hol-light-20190729/Multivariate/determinants.ml-1170-let DET_1_GEN = prove
hol-light-20190729/Multivariate/determinants.ml:1171: (`!A:real^N^N. dimindex(:N) = 1 ==> det A = A$1$1`,
hol-light-20190729/Multivariate/determinants.ml-1172-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/determinants.ml-1177-let DET_1 = prove
hol-light-20190729/Multivariate/determinants.ml:1178: (`!A:real^1^1. det A = A$1$1`,
hol-light-20190729/Multivariate/determinants.ml-1179-  SIMP_TAC[DET_1_GEN; DIMINDEX_1]);;
##############################################
hol-light-20190729/Multivariate/determinants.ml-1181-let DET_2 = prove
hol-light-20190729/Multivariate/determinants.ml:1182: (`!A:real^2^2. det A = A$1$1 * A$2$2 - A$1$2 * A$2$1`,
hol-light-20190729/Multivariate/determinants.ml-1183-  GEN_TAC THEN REWRITE_TAC[det; DIMINDEX_2] THEN
##############################################
hol-light-20190729/Multivariate/determinants.ml-1774-let DIAGONAL_MATRIX_INV_EXPLICIT = prove
hol-light-20190729/Multivariate/determinants.ml:1775: (`!A:real^N^N. diagonal_matrix A ==> matrix_inv A = lambda i j. inv(A$i$j)`,
hol-light-20190729/Multivariate/determinants.ml-1776-  REPEAT STRIP_TAC THEN MATCH_MP_TAC MATRIX_INV_UNIQUE_STRONG THEN
hol-light-20190729/Multivariate/determinants.ml-1777-  SUBGOAL_THEN
hol-light-20190729/Multivariate/determinants.ml:1778:   `diagonal_matrix((lambda i j. inv((A:real^N^N)$i$j)):real^N^N)`
hol-light-20190729/Multivariate/determinants.ml-1779-  ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/determinants.ml-1848-  TRANS_TAC EQ_TRANS
hol-light-20190729/Multivariate/determinants.ml:1849:    `dim {(A:real^N^N)$i$i % basis i:real^N | i IN 1..dimindex(:N)}` THEN
hol-light-20190729/Multivariate/determinants.ml-1850-  CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/determinants.ml-1873-  TRANS_TAC EQ_TRANS
hol-light-20190729/Multivariate/determinants.ml:1874:  `dim{basis i:real^N | i IN 1..dimindex(:N) /\ ~((A:real^N^N)$i$i = &0)}` THEN
hol-light-20190729/Multivariate/determinants.ml-1875-  CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/determinants.ml-1882-      SUBGOAL_THEN
hol-light-20190729/Multivariate/determinants.ml:1883:       `basis i:real^N = inv((A:real^N^N)$i$i) % A$i$i % basis i`
hol-light-20190729/Multivariate/determinants.ml-1884-       (fun th -> GEN_REWRITE_TAC LAND_CONV [th])
##############################################
hol-light-20190729/Multivariate/determinants.ml-1886-             ALL_TAC]] THEN
hol-light-20190729/Multivariate/determinants.ml:1887:    MATCH_MP_TAC SPAN_MUL THEN MATCH_MP_TAC SPAN_SUPERSET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/determinants.ml-1888-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/determinants.ml-1910-    DISCH_THEN(MP_TAC o MATCH_MP (MESON[COMPONENT_LE_NORM; REAL_LE_TRANS]
hol-light-20190729/Multivariate/determinants.ml:1911:     `norm(x) <= b ==> !i. abs(x$i) <= b`)) THEN
hol-light-20190729/Multivariate/determinants.ml-1912-    DISCH_THEN(MP_TAC o SPEC `i:num`) THEN ASM_SIMP_TAC[column; LAMBDA_BETA];
##############################################
hol-light-20190729/Multivariate/determinants.ml-2084-let POSITIVE_SEMIDEFINITE_1 = prove
hol-light-20190729/Multivariate/determinants.ml:2085: (`!A:real^1^1. positive_semidefinite A <=> &0 <= A$1$1`,
hol-light-20190729/Multivariate/determinants.ml-2086-  GEN_TAC THEN MATCH_MP_TAC POSITIVE_SEMIDEFINITE_1_GEN THEN
##############################################
hol-light-20190729/Multivariate/determinants.ml-2309-let POSITIVE_DEFINITE_1 = prove
hol-light-20190729/Multivariate/determinants.ml:2310: (`!A:real^1^1. positive_definite A <=> &0 < A$1$1`,
hol-light-20190729/Multivariate/determinants.ml-2311-  GEN_TAC THEN MATCH_MP_TAC POSITIVE_DEFINITE_1_GEN THEN
##############################################
hol-light-20190729/Multivariate/determinants.ml-2448-  GEN_TAC THEN
hol-light-20190729/Multivariate/determinants.ml:2449:  ABBREV_TAC `a = \i. (A:real^N^N)$i` THEN
hol-light-20190729/Multivariate/determinants.ml-2450-  (MP_TAC o DISCH_ALL o instantiate_casewise_recursion)
##############################################
hol-light-20190729/Multivariate/determinants.ml-3245-  REWRITE_TAC[ORTHOGONAL_TRANSFORMATION] THEN
hol-light-20190729/Multivariate/determinants.ml:3246:  REPEAT STRIP_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/determinants.ml-3247-
##############################################
hol-light-20190729/Multivariate/determinants.ml-3265-     ASSUME_TAC))) THEN
hol-light-20190729/Multivariate/determinants.ml:3266:  EXISTS_TAC `(lambda i j. ((f j):real^N)$i):real^N^N` THEN
hol-light-20190729/Multivariate/determinants.ml-3267-  SIMP_TAC[CART_EQ; LAMBDA_BETA; matrix_vector_mul; BASIS_COMPONENT;
##############################################
hol-light-20190729/Multivariate/determinants.ml-3373-      ASM_REWRITE_TAC[FINITE_UNION] THEN
hol-light-20190729/Multivariate/determinants.ml:3374:      ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/determinants.ml-3375-      MATCH_MP_TAC(ARITH_RULE `a + b:num = c ==> a <= c - b`) THEN
##############################################
hol-light-20190729/Multivariate/determinants.ml-3379-      W(MP_TAC o PART_MATCH (rhs o rand) CARD_UNION o lhs o snd) THEN
hol-light-20190729/Multivariate/determinants.ml:3380:      ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Multivariate/determinants.ml-3381-      GEN_REWRITE_TAC (LAND_CONV o RAND_CONV) [UNION_COMM] THEN
##############################################
hol-light-20190729/Multivariate/determinants.ml-3388-      EXISTS_TAC `\x. if x IN b then (f:real^N->real^N) x else g x` THEN
hol-light-20190729/Multivariate/determinants.ml:3389:      REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/determinants.ml-3390-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/determinants.ml-3398-    REWRITE_TAC[SYM(ASSUME `span c:real^N->bool = t`)] THEN
hol-light-20190729/Multivariate/determinants.ml:3399:    MATCH_MP_TAC SPAN_MONO THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/determinants.ml-3400-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/determinants.ml-3415-   [REPEAT STRIP_TAC THEN REWRITE_TAC[ORTHOGONAL_MUL] THEN
hol-light-20190729/Multivariate/determinants.ml:3416:    REPEAT DISJ2_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/determinants.ml-3417-    REPEAT(DISCH_THEN SUBST1_TAC) THEN ASM_SIMP_TAC[NORM_MUL] THEN
hol-light-20190729/Multivariate/determinants.ml:3418:    MATCH_MP_TAC SUM_EQ THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/determinants.ml-3419-
##############################################
hol-light-20190729/Multivariate/determinants.ml-3705-      EXISTS_TAC
hol-light-20190729/Multivariate/determinants.ml:3706:       `(\x. vsum(1..dimindex(:N)) (\i. x$i % w i)):real^N->real^N` THEN
hol-light-20190729/Multivariate/determinants.ml-3707-      SIMP_TAC[BASIS_COMPONENT; IN_NUMSEG; COND_RATOR; COND_RAND] THEN
##############################################
hol-light-20190729/Multivariate/determinants.ml-3802-        PAIRWISE_ORTHOGONAL_INDEPENDENT)) THEN
hol-light-20190729/Multivariate/determinants.ml:3803:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/determinants.ml-3804-      DISCH_THEN(MP_TAC o MATCH_MP INDEPENDENT_IMP_FINITE) THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-179-    ALL_TAC] THEN
hol-light-20190729/Multivariate/flyspeck.ml:180:  EXISTS_TAC `vector[(u:real^2)$1; u$2; r]:real^3` THEN
hol-light-20190729/Multivariate/flyspeck.ml:181:  EXISTS_TAC `vector[(v:real^2)$1; v$2; s]:real^3` THEN
hol-light-20190729/Multivariate/flyspeck.ml-182-  EXISTS_TAC `basis 3:real^3` THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-210-let SLICE_312 = prove
hol-light-20190729/Multivariate/flyspeck.ml:211: (`!s:real^3->bool. slice 1 t s = {y:real^2 | vector[t;y$1;y$2] IN s}`,
hol-light-20190729/Multivariate/flyspeck.ml-212-  SIMP_TAC[EXTENSION; IN_SLICE; DIMINDEX_2; DIMINDEX_3; ARITH] THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-218-let SLICE_123 = prove
hol-light-20190729/Multivariate/flyspeck.ml:219: (`!s:real^3->bool. slice 3 t s = {y:real^2 | vector[y$1;y$2;t] IN s}`,
hol-light-20190729/Multivariate/flyspeck.ml-220-  SIMP_TAC[EXTENSION; IN_SLICE; DIMINDEX_2; DIMINDEX_3; ARITH] THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-230-let pad2d3d = new_definition
hol-light-20190729/Multivariate/flyspeck.ml:231: `(pad2d3d:real^2->real^3) x = lambda i. if i < 3 then x$i else &0`;;
hol-light-20190729/Multivariate/flyspeck.ml-232-
hol-light-20190729/Multivariate/flyspeck.ml-233-let FORALL_PAD2D3D_THM = prove
hol-light-20190729/Multivariate/flyspeck.ml:234: (`!P. (!y:real^3. y$3 = &0 ==> P y) <=> (!x. P(pad2d3d x))`,
hol-light-20190729/Multivariate/flyspeck.ml-235-  GEN_TAC THEN EQ_TAC THEN REPEAT STRIP_TAC THENL
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-237-    SIMP_TAC[LAMBDA_BETA; DIMINDEX_3; ARITH; LT_REFL];
hol-light-20190729/Multivariate/flyspeck.ml:238:    FIRST_X_ASSUM(MP_TAC o SPEC `(lambda i. (y:real^3)$i):real^2`) THEN
hol-light-20190729/Multivariate/flyspeck.ml-239-    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-337-    REPEAT(AP_TERM_TAC THEN ABS_TAC) THEN BINOP_TAC THENL
hol-light-20190729/Multivariate/flyspeck.ml:338:     [ASM_MESON_TAC[COLLINEAR_LINEAR_IMAGE_EQ]; ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/flyspeck.ml-339-
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-356-  let lemma = prove
hol-light-20190729/Multivariate/flyspeck.ml:357:   (`span {z:real^3 | z$3 = &0} = {z:real^3 | z$3 = &0}`,
hol-light-20190729/Multivariate/flyspeck.ml-358-    REWRITE_TAC[SPAN_EQ_SELF; subspace; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-391-  MATCH_MP_TAC LE_TRANS THEN EXISTS_TAC `2` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/flyspeck.ml:392:   [MP_TAC(ISPECL [`{z:real^3 | z$3 = &0}`; `(:real^3)`] DIM_EQ_SPAN) THEN
hol-light-20190729/Multivariate/flyspeck.ml-393-    REWRITE_TAC[SUBSET_UNIV; DIM_UNIV; DIMINDEX_3; lemma] THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-757-      IMAGE f {x | x IN s /\ ~(u(f x) = &0)}`
hol-light-20190729/Multivariate/flyspeck.ml:758:    SUBST1_TAC THENL [ASM SET_TAC[]; CONV_TAC SYM_CONV] THEN
hol-light-20190729/Multivariate/flyspeck.ml-759-    SUBGOAL_THEN `FINITE {x | x IN s /\ ~(u((f:real^M->real^N) x) = &0)}`
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-1204-   `s SUBSET s' ==> {x | x IN s' UNION t /\ x IN s UNION t} = s UNION t`] THEN
hol-light-20190729/Multivariate/flyspeck.ml:1205:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/flyspeck.ml-1206-
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-1212-  GEN_TAC THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/flyspeck.ml:1213:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/flyspeck.ml-1214-
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-1243-   `t SUBSET t' ==> {x | x IN s UNION t' /\ x IN s UNION t} = s UNION t`] THEN
hol-light-20190729/Multivariate/flyspeck.ml:1244:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/flyspeck.ml-1245-
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-1260-   [REWRITE_TAC[AFFSIGN_EQ_AFFINE_HULL; SUBSET_REFL];
hol-light-20190729/Multivariate/flyspeck.ml:1261:    MATCH_MP_TAC AFFSIGN_MONO_RIGHT THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/flyspeck.ml-1262-
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-1407-    SIMP_TAC[ETA_AX; REAL_SUB_ADD] THEN DISCH_THEN(K ALL_TAC) THEN
hol-light-20190729/Multivariate/flyspeck.ml:1408:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/flyspeck.ml-1409-
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-1573-                DISJOINT (s DIFF t) t`
hol-light-20190729/Multivariate/flyspeck.ml:1574:  MP_TAC THENL [ASM_SIMP_TAC[FINITE_DIFF] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/flyspeck.ml-1575-  POP_ASSUM_LIST(K ALL_TAC) THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-1584-  SUBGOAL_THEN `(vec 0:real^N) IN ((vec 0 INSERT s) DIFF t)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/flyspeck.ml:1585:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/flyspeck.ml-1586-  ASM_SIMP_TAC[AFF_GE_0_CONVEX_CONE_NEGATIONS; FINITE_INSERT] THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-1651-    VECTOR_ARITH_TAC;
hol-light-20190729/Multivariate/flyspeck.ml:1652:    STRIP_TAC THEN EXISTS_TAC `(w:real^3)$3 - t * (z:real^3)$3` THEN
hol-light-20190729/Multivariate/flyspeck.ml-1653-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [CART_EQ]) THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-1740-   [EXISTS_TAC `a:real^N` THEN
hol-light-20190729/Multivariate/flyspeck.ml:1741:    ASM_REWRITE_TAC[SEGMENT_REFL; HALFLINE_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/flyspeck.ml-1742-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-1906-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/flyspeck.ml:1907:  ASM_CASES_TAC `(e2:real^3)$1 = &0` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/flyspeck.ml:1908:  ASM_CASES_TAC `(e3:real^3)$1 = &0` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/flyspeck.ml-1909-  REWRITE_TAC[REAL_MUL_RZERO; REAL_SUB_RZERO; REAL_ADD_LID] THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-1937-  REPEAT STRIP_TAC THEN MATCH_MP_TAC PAIRWISE_ORTHOGONAL_INDEPENDENT THEN
hol-light-20190729/Multivariate/flyspeck.ml:1938:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[ORTHONORMAL_IMP_NONZERO]] THEN
hol-light-20190729/Multivariate/flyspeck.ml-1939-  RULE_ASSUM_TAC(REWRITE_RULE[orthonormal]) THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-2054-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/flyspeck.ml:2055:  ABBREV_TAC `v1:real^3 = w1 - (w1$3) % basis 3` THEN
hol-light-20190729/Multivariate/flyspeck.ml:2056:  ABBREV_TAC `v2:real^3 = w2 - (w2$3) % basis 3` THEN
hol-light-20190729/Multivariate/flyspeck.ml-2057-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-2075-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/flyspeck.ml:2076:  SUBGOAL_THEN `(v1:real^3)$3 = &0 /\ (v2:real^3)$3 = &0` MP_TAC THENL
hol-light-20190729/Multivariate/flyspeck.ml-2077-   [MAP_EVERY EXPAND_TAC ["v1"; "v2"] THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-2378-   `!a. &0 < a ==> (!y. ?x. a * x = y)` in
hol-light-20190729/Multivariate/flyspeck.ml:2379:  let SCALE_QUANT_TAC side asm avoid =
hol-light-20190729/Multivariate/flyspeck.ml-2380-    MP_TAC(MATCH_MP lemma (ASSUME asm)) THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-2817-   `&0 < w ==> (x - k * w * &1 - y = &0 <=> k = (x - y) / w)`] THEN
hol-light-20190729/Multivariate/flyspeck.ml:2818:  SUBGOAL_THEN `~((w1:real^3)$2 = &0) \/ ~((w2:real^3)$1 = &0)`
hol-light-20190729/Multivariate/flyspeck.ml-2819-  STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/flyspeck.ml-2820-   [REPEAT(POP_ASSUM MP_TAC) THEN CONV_TAC REAL_RING;
hol-light-20190729/Multivariate/flyspeck.ml:2821:    EXISTS_TAC `(w2:real^3)$2 / (w1:real^3)$2` THEN
hol-light-20190729/Multivariate/flyspeck.ml-2822-    REPEAT(POP_ASSUM MP_TAC) THEN CONV_TAC REAL_FIELD;
hol-light-20190729/Multivariate/flyspeck.ml:2823:    EXISTS_TAC `(w2:real^3)$1 / (w1:real^3)$1` THEN
hol-light-20190729/Multivariate/flyspeck.ml-2824-    REPEAT(POP_ASSUM MP_TAC) THEN CONV_TAC REAL_FIELD]);;
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-3346-    SUBGOAL_THEN `u:real^M->bool = (u INTER s) UNION (u INTER t)`
hol-light-20190729/Multivariate/flyspeck.ml:3347:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/flyspeck.ml-3348-    MATCH_MP_TAC CONTINUOUS_ON_UNION_LOCAL THEN
hol-light-20190729/Multivariate/flyspeck.ml-3349-    REWRITE_TAC[CLOSED_IN_CLOSED] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/flyspeck.ml:3350:     [EXISTS_TAC `s:real^M->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/flyspeck.ml:3351:      EXISTS_TAC `t:real^M->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/flyspeck.ml-3352-      ASM_MESON_TAC[CONTINUOUS_ON_EQ];
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-3645-        ALL_TAC] THEN
hol-light-20190729/Multivariate/flyspeck.ml:3646:      UNDISCH_TAC `(v:real^3)$3 = r * cos phi` THEN
hol-light-20190729/Multivariate/flyspeck.ml-3647-      MATCH_MP_TAC(REAL_RING
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-4386-  DISCH_THEN(X_CHOOSE_THEN `v:real` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/flyspeck.ml:4387:  MAP_EVERY EXISTS_TAC [`&1 - v - (x:real^3)$3`; `v:real`; `(x:real^3)$3`] THEN
hol-light-20190729/Multivariate/flyspeck.ml-4388-  CONJ_TAC THENL [REAL_ARITH_TAC; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-4622-  MP_TAC(ISPECL [`\x:real^N. lift(x dot v1 - norm x * norm v1 * a)`;
hol-light-20190729/Multivariate/flyspeck.ml:4623:                 `{x:real^1 | x$1 > &0}`]
hol-light-20190729/Multivariate/flyspeck.ml-4624-        CONTINUOUS_OPEN_PREIMAGE_UNIV) THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-4798-  GEN_TAC THEN GEN_REWRITE_TAC LAND_CONV [HAS_MEASURE_MEASURE] THEN
hol-light-20190729/Multivariate/flyspeck.ml:4799:  DISCH_THEN(MP_TAC o SPEC `\i. (t:real^3)$i` o
hol-light-20190729/Multivariate/flyspeck.ml-4800-    MATCH_MP HAS_MEASURE_STRETCH) THEN
hol-light-20190729/Multivariate/flyspeck.ml-4801-  REWRITE_TAC[DIMINDEX_3; PRODUCT_3] THEN
hol-light-20190729/Multivariate/flyspeck.ml:4802:  SUBGOAL_THEN `(\x:real^3. (lambda k. t$k * x$k):real^3) = scale t`
hol-light-20190729/Multivariate/flyspeck.ml-4803-  SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-4954-      ALL_TAC] THEN
hol-light-20190729/Multivariate/flyspeck.ml:4955:    SUBGOAL_THEN `!y. ~(norm(vector[t; (y:real^2)$1; y$2]:real^3) < r)`
hol-light-20190729/Multivariate/flyspeck.ml-4956-     (fun th -> REWRITE_TAC[th; EMPTY_GSPEC; MEASURE_EMPTY;
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-6439-  SIMP_TAC[NORM_BASIS; DOT_BASIS; DIMINDEX_3; ARITH; REAL_MUL_LID] THEN
hol-light-20190729/Multivariate/flyspeck.ml:6440:  EXISTS_TAC `(\x. vector[x$1; x$2; --(x$3)]):real^3->real^3` THEN
hol-light-20190729/Multivariate/flyspeck.ml-6441-  EXISTS_TAC `(ball(vec 0,r) INTER {x | norm x * a > x$3}) INTER
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-6469-  X_GEN_TAC `x:real^3` THEN
hol-light-20190729/Multivariate/flyspeck.ml:6470:  SUBGOAL_THEN `norm(vector [x$1; x$2; --(x$3)]:real^3) = norm(x:real^3)`
hol-light-20190729/Multivariate/flyspeck.ml-6471-  SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-6665-    DISCH_THEN(MP_TAC o MATCH_MP HAS_MEASURE_STRETCH) THEN
hol-light-20190729/Multivariate/flyspeck.ml:6666:    DISCH_THEN(MP_TAC o SPEC `\i. (t:real^3)$i`) THEN
hol-light-20190729/Multivariate/flyspeck.ml-6667-    REWRITE_TAC[HAS_MEASURE_MEASURABLE_MEASURE] THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-6774-    DISCH_THEN(MP_TAC o MATCH_MP HAS_MEASURE_STRETCH o CONJUNCT1) THEN
hol-light-20190729/Multivariate/flyspeck.ml:6775:    DISCH_THEN(MP_TAC o SPEC `\i. (t:real^3)$i`) THEN
hol-light-20190729/Multivariate/flyspeck.ml-6776-    REWRITE_TAC[HAS_MEASURE_MEASURABLE_MEASURE] THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-6803-    REWRITE_TAC[REAL_LE_LT] THEN
hol-light-20190729/Multivariate/flyspeck.ml:6804:    ASM_CASES_TAC `(a:real^3)$1 = (b:real^3)$1` THEN
hol-light-20190729/Multivariate/flyspeck.ml-6805-    ASM_REWRITE_TAC[REAL_LT_REFL; REAL_MUL_LZERO; REAL_MUL_RZERO;
hol-light-20190729/Multivariate/flyspeck.ml-6806-                    REAL_SUB_REFL; COND_ID] THEN
hol-light-20190729/Multivariate/flyspeck.ml:6807:    ASM_CASES_TAC `(a:real^3)$2 = (b:real^3)$2` THEN
hol-light-20190729/Multivariate/flyspeck.ml-6808-    ASM_REWRITE_TAC[REAL_LT_REFL; REAL_MUL_LZERO; REAL_MUL_RZERO;
hol-light-20190729/Multivariate/flyspeck.ml-6809-                    REAL_SUB_REFL; COND_ID] THEN
hol-light-20190729/Multivariate/flyspeck.ml:6810:    ASM_CASES_TAC `(a:real^3)$3 = (b:real^3)$3` THEN
hol-light-20190729/Multivariate/flyspeck.ml-6811-    ASM_REWRITE_TAC[REAL_LT_REFL; REAL_MUL_LZERO; REAL_MUL_RZERO;
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-6846-  STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/flyspeck.ml:6847:   [MATCH_MP_TAC FACE_OF_POLYHEDRON_SUBSET_FACET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/flyspeck.ml-6848-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-6853-    ASM_REWRITE_TAC[SUBSET_REFL; NOT_IMP] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/flyspeck.ml:6854:     [CONJ_TAC THENL [ASM_MESON_TAC[facet_of]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/flyspeck.ml-6855-      ASM_MESON_TAC[facet_of; FACET_OF_REFL;
##############################################
hol-light-20190729/Multivariate/flyspeck.ml-6868-   [CONV_TAC(RAND_CONV SYM_CONV) THEN
hol-light-20190729/Multivariate/flyspeck.ml:6869:    ASM_SIMP_TAC[VECTOR_MUL_EQ_0; REAL_LT_IMP_NZ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/flyspeck.ml-6870-    EXISTS_TAC `inv t:real` THEN
##############################################
hol-light-20190729/Multivariate/gamma.ml-935-  REPEAT STRIP_TAC THEN MATCH_MP_TAC COMPLEX_DIFFERENTIABLE_WITHIN_CGAMMA THEN
hol-light-20190729/Multivariate/gamma.ml:936:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/gamma.ml-937-
##############################################
hol-light-20190729/Multivariate/gamma.ml-1391-    REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/gamma.ml:1392:    ASM GEN_COMPLEX_DIFF_TAC [] THEN
hol-light-20190729/Multivariate/gamma.ml-1393-    (CONJ_TAC THENL [ASM_REWRITE_TAC[]; CONV_TAC COMPLEX_RING]);
##############################################
hol-light-20190729/Multivariate/gamma.ml-1409-     [REWRITE_TAC[]; ASM_REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/gamma.ml:1410:    ASM GEN_COMPLEX_DIFF_TAC [] THEN
hol-light-20190729/Multivariate/gamma.ml-1411-    (CONJ_TAC THENL [ASM_REWRITE_TAC[ETA_AX]; CONV_TAC COMPLEX_RING]);
##############################################
hol-light-20190729/Multivariate/gamma.ml-1452-  REWRITE_TAC[CONVEX_UNIV; IN_UNIV] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/gamma.ml:1453:   [GEN_TAC THEN ASM GEN_COMPLEX_DIFF_TAC[] THEN
hol-light-20190729/Multivariate/gamma.ml-1454-    ASM_REWRITE_TAC[] THEN CONV_TAC COMPLEX_RING;
##############################################
hol-light-20190729/Multivariate/homology.ml-348-  MATCH_MP_TAC SINGULAR_SIMPLEX_SINGULAR_FACE THEN
hol-light-20190729/Multivariate/homology.ml:349:  RULE_ASSUM_TAC(REWRITE_RULE[singular_chain]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/homology.ml-350-
##############################################
hol-light-20190729/Multivariate/homology.ml-743-        ==> homologous_rel (p,top,s) ((f:K->((num->real)->A)frag) i) (g i)`
hol-light-20190729/Multivariate/homology.ml:744:  MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/homology.ml-745-  UNDISCH_TAC `FINITE(l:K->bool)` THEN POP_ASSUM_LIST(K ALL_TAC) THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-973-  REPEAT STRIP_TAC THEN MATCH_MP_TAC SINGULAR_SIMPLEX_SIMPLEX_MAP THEN
hol-light-20190729/Multivariate/homology.ml:974:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/homology.ml-975-
##############################################
hol-light-20190729/Multivariate/homology.ml-1106-  ASM_SIMP_TAC[CONTINUOUS_MAP_FROM_SUBTOPOLOGY; TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/homology.ml:1107:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/homology.ml-1108-
##############################################
hol-light-20190729/Multivariate/homology.ml-1124-               CONTINUOUS_MAP_FROM_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/homology.ml:1125:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/homology.ml-1126-
##############################################
hol-light-20190729/Multivariate/homology.ml-1898-         `(!x. t x ==> P x) ==> s SUBSET t ==> !x. x IN s ==> P x`) THEN
hol-light-20190729/Multivariate/homology.ml:1899:        REWRITE_TAC[SIMPLICIAL_SIMPLEX] THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/homology.ml-1900-     DISCH_THEN(MP_TAC o SPEC `g:(num->real)->(num->real)`) THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-2016-          ==> (l:num->num->real) r IN IMAGE f (standard_simplex(SUC p))`
hol-light-20190729/Multivariate/homology.ml:2017:    MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/homology.ml-2018-    X_GEN_TAC `r:num` THEN DISCH_TAC THEN EXPAND_TAC "f" THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-3005-                 FINITE_IMAGE; IMAGE_EQ_EMPTY] THEN
hol-light-20190729/Multivariate/homology.ml:3006:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/homology.ml-3007-    X_GEN_TAC `k:(num->real)->bool` THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-3014-    SUBGOAL_THEN `x IN standard_simplex p` ASSUME_TAC THENL
hol-light-20190729/Multivariate/homology.ml:3015:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/homology.ml-3016-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE RAND_CONV [UNIONS_IMAGE]) THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-3028-      FIRST_X_ASSUM(MP_TAC o C MATCH_MP th))
hol-light-20190729/Multivariate/homology.ml:3029:    THENL [ASM SET_TAC[]; STRIP_TAC THEN ASM_REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/homology.ml-3030-    REWRITE_TAC[SUBSET] THEN X_GEN_TAC `y:num->real` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-3033-     (fun th -> ASSUME_TAC th THEN MP_TAC th)
hol-light-20190729/Multivariate/homology.ml:3034:    THENL [ASM SET_TAC[]; SIMP_TAC[standard_simplex; IN_ELIM_THM]] THEN
hol-light-20190729/Multivariate/homology.ml-3035-    DISCH_THEN(K ALL_TAC) THEN X_GEN_TAC `i:num` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-3100-      REWRITE_TAC[INTER_UNIV] THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/homology.ml:3101:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/homology.ml-3102-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `d:real` THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-3105-      DISCH_THEN(fun th -> STRIP_TAC THEN MP_TAC th) THEN
hol-light-20190729/Multivariate/homology.ml:3106:      ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-3107-      GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-3240-    ASM_REWRITE_TAC[GSYM INTERIOR_OF_RESTRICT; GSYM CLOSURE_OF_RESTRICT] THEN
hol-light-20190729/Multivariate/homology.ml:3241:    DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/homology.ml-3242-  MP_TAC(ISPECL
##############################################
hol-light-20190729/Multivariate/homology.ml-3250-    ASM_SIMP_TAC[OPEN_IN_SUBTOPOLOGY_DIFF_CLOSED; CLOSED_IN_CLOSURE_OF] THEN
hol-light-20190729/Multivariate/homology.ml:3251:    REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; UNIONS_2] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-3252-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `n:num`] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-3271-    MP_TAC(ISPECL [`top:A topology`; `u:A->bool`] CLOSURE_OF_SUBSET) THEN
hol-light-20190729/Multivariate/homology.ml:3272:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/homology.ml-3273-
##############################################
hol-light-20190729/Multivariate/homology.ml-3314-      ASM_SIMP_TAC[SINGULAR_CHAIN_SINGULAR_SUBDIVISION];
hol-light-20190729/Multivariate/homology.ml:3315:      REWRITE_TAC[SINGULAR_CHAIN_SUBTOPOLOGY] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/homology.ml-3316-    FIRST_X_ASSUM(SUBST1_TAC o MATCH_MP (FRAG_MODULE
##############################################
hol-light-20190729/Multivariate/homology.ml-4280-      REWRITE_TAC[RELATIVE_HOMOLOGY_GROUP] THEN
hol-light-20190729/Multivariate/homology.ml:4281:      COND_CASES_TAC THEN REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-4282-      MAP_EVERY X_GEN_TAC [`p:int`; `top:A topology`; `s:A->bool`] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-4346-       (MP_TAC o MATCH_MP CONTINUOUS_MAP_IMAGE_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/homology.ml:4347:      ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-4348-      REWRITE_TAC[NORMAL_SUBGROUP_SINGULAR_RELBOUNDARY_RELCYCLE]] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-4444-      ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/homology.ml:4445:       [RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-4446-        REWRITE_TAC[GSYM RELATIVE_HOMOLOGY_GROUP_RESTRICT] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-4455-      ANTS_TAC THENL
hol-light-20190729/Multivariate/homology.ml:4456:       [RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-4457-        REWRITE_TAC[GSYM SINGULAR_RELCYCLE_RESTRICT]] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-4459-      GEN_TAC THEN REWRITE_TAC[RELATIVE_HOMOLOGY_GROUP] THEN
hol-light-20190729/Multivariate/homology.ml:4460:      COND_CASES_TAC THEN REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-4461-      REPEAT GEN_TAC THEN REPEAT ABS_TAC THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-4469-      ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/homology.ml:4470:       [RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-4471-        REWRITE_TAC[group_homomorphism] THEN
hol-light-20190729/Multivariate/homology.ml-4472-        REWRITE_TAC[GSYM RELATIVE_HOMOLOGY_GROUP_RESTRICT] THEN
hol-light-20190729/Multivariate/homology.ml:4473:        ASM SET_TAC[]]]) in
hol-light-20190729/Multivariate/homology.ml-4474-  let dth = new_specification ["hom_induced"] fth in
##############################################
hol-light-20190729/Multivariate/homology.ml-4485-  MATCH_MP_TAC HOM_INDUCED_CHAIN_MAP_GEN THEN
hol-light-20190729/Multivariate/homology.ml:4486:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/homology.ml-4487-
##############################################
hol-light-20190729/Multivariate/homology.ml-4505-  MP_TAC THENL
hol-light-20190729/Multivariate/homology.ml:4506:   [BINOP_TAC THENL [ASM_MESON_TAC[CONTINUOUS_MAP_EQ]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/homology.ml-4507-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-4518-  ASM_REWRITE_TAC[SUBSET_INTER] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/homology.ml:4519:   [RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-4520-    DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-4523-  ASM_REWRITE_TAC[SUBSET_INTER] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/homology.ml:4524:   [RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-4525-    DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-4570-    lhand o snd) THEN
hol-light-20190729/Multivariate/homology.ml:4571:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/homology.ml-4572-  AP_TERM_TAC THEN MATCH_MP_TAC CHAIN_MAP_ID_GEN THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-4609-  ASM_REWRITE_TAC[IMAGE_o] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/homology.ml:4610:   [CONJ_TAC THENL [ASM_MESON_TAC[CONTINUOUS_MAP_COMPOSE]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/homology.ml-4611-    DISCH_THEN SUBST1_TAC THEN REWRITE_TAC[CHAIN_MAP_COMPOSE; o_THM]]);;
##############################################
hol-light-20190729/Multivariate/homology.ml-4654-                 CONTINUOUS_MAP_FROM_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/homology.ml:4655:    ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-4656-    DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-5087-        ASM_MESON_TAC[SINGULAR_CHAIN_BOUNDARY; ADD_SUB]];
hol-light-20190729/Multivariate/homology.ml:5088:      REWRITE_TAC[SINGULAR_CHAIN_SUBTOPOLOGY] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/homology.ml-5089-
##############################################
hol-light-20190729/Multivariate/homology.ml-5499-  ASM_SIMP_TAC[GSYM DIFF_UNIONS_PAIRWISE_DISJOINT; SING_SUBSET] THEN
hol-light-20190729/Multivariate/homology.ml:5500:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/homology.ml-5501-
##############################################
hol-light-20190729/Multivariate/homology.ml-5691-    REPEAT STRIP_TAC THEN MATCH_MP_TAC PATH_COMPONENTS_OF_MAXIMAL THEN
hol-light-20190729/Multivariate/homology.ml:5692:    EXISTS_TAC `top:A topology` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-5693-    TRANS_TAC ISOMORPHIC_GROUP_TRANS
##############################################
hol-light-20190729/Multivariate/homology.ml-5901-  MATCH_MP_TAC HOMOLOGY_DIMENSION_AXIOM THEN EXISTS_TAC `a:A` THEN
hol-light-20190729/Multivariate/homology.ml:5902:  ASM_REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/homology.ml-5903-
##############################################
hol-light-20190729/Multivariate/homology.ml-5915-  ASM_REWRITE_TAC[] THEN ONCE_REWRITE_TAC[CONJ_ASSOC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/homology.ml:5916:   [RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-5917-    CONJ_TAC THEN MATCH_MP_TAC HOMOTOPIC_WITH_EQUAL THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-5933-  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphic_maps; continuous_map]) THEN
hol-light-20190729/Multivariate/homology.ml:5934:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/homology.ml-5935-
##############################################
hol-light-20190729/Multivariate/homology.ml-6097-      ASM_SIMP_TAC[CONTINUOUS_MAP_FROM_SUBTOPOLOGY; TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/homology.ml:6098:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/homology.ml-6099-    REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-6142-      UNDISCH_TAC `open_in top (s:A->bool)`] THEN
hol-light-20190729/Multivariate/homology.ml:6143:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-6144-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-6297-    REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/homology.ml:6298:    ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Multivariate/homology.ml-6299-    REWRITE_TAC[o_DEF];
##############################################
hol-light-20190729/Multivariate/homology.ml-6337-  REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/homology.ml:6338:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Multivariate/homology.ml-6339-  REWRITE_TAC[o_DEF]);;
##############################################
hol-light-20190729/Multivariate/homology.ml-6387-         ==> g(f x) = z`) THEN
hol-light-20190729/Multivariate/homology.ml:6388:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/homology.ml-6389-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-6461-  REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/homology.ml:6462:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Multivariate/homology.ml-6463-  ASM_REWRITE_TAC[o_DEF] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-6826-  MATCH_MP_TAC HOMOLOGY_DIMENSION_REDUCED THEN EXISTS_TAC `a:A` THEN
hol-light-20190729/Multivariate/homology.ml:6827:  ASM_REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/homology.ml-6828-
##############################################
hol-light-20190729/Multivariate/homology.ml-6881-  REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/homology.ml:6882:   [ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Multivariate/homology.ml-6883-     [group_div; GROUP_INV] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-6885-     `x IN group_carrier G /\ y = group_id G ==> x = group_mul G x y`) THEN
hol-light-20190729/Multivariate/homology.ml:6886:    ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Multivariate/homology.ml-6887-     [GROUP_INV_EQ_ID] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-6912-      REWRITE_TAC[trivial_group; TOPSPACE_DISCRETE_TOPOLOGY] THEN
hol-light-20190729/Multivariate/homology.ml:6913:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/homology.ml-6914-    MATCH_MP_TAC GROUP_DIV THEN ASM_SIMP_TAC[];
hol-light-20190729/Multivariate/homology.ml:6915:    ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Multivariate/homology.ml-6916-     [group_div; GROUP_INV] THEN
hol-light-20190729/Multivariate/homology.ml:6917:    ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Multivariate/homology.ml-6918-     [GSYM group_div; GROUP_DIV_EQ_ID] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-7121-  MATCH_MP_TAC ISOMORPHIC_GROUP_REDUCED_HOMOLOGY_BY_CONTRACTIBLE THEN
hol-light-20190729/Multivariate/homology.ml:7122:  REWRITE_TAC[CONTRACTIBLE_SPACE_SUBTOPOLOGY_SING] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/homology.ml-7123-
##############################################
hol-light-20190729/Multivariate/homology.ml-7172-  ASM_REWRITE_TAC[o_THM; I_DEF; IMAGE_ID; SUBSET_REFL; IMAGE_o] THEN
hol-light-20190729/Multivariate/homology.ml:7173:  CONJ_TAC THENL [ASM SET_TAC[]; ASM_MESON_TAC[CONTINUOUS_MAP_COMPOSE]]);;
hol-light-20190729/Multivariate/homology.ml-7174-
##############################################
hol-light-20190729/Multivariate/homology.ml-7447-    ASM_SIMP_TAC[CONTRACTIBLE_IMP_PATH_CONNECTED_SPACE] THEN
hol-light-20190729/Multivariate/homology.ml:7448:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/homology.ml-7449-
##############################################
hol-light-20190729/Multivariate/homology.ml-8128-    REWRITE_TAC[group_isomorphisms; group_homomorphism] THEN
hol-light-20190729/Multivariate/homology.ml:8129:    ASM SET_TAC[])
hol-light-20190729/Multivariate/homology.ml-8130-  and isomorphism_trans = prove
##############################################
hol-light-20190729/Multivariate/homology.ml-8143-    RULE_ASSUM_TAC(REWRITE_RULE[GROUP_ISOMORPHISM]) THEN
hol-light-20190729/Multivariate/homology.ml:8144:    REWRITE_TAC[o_DEF] THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/homology.ml-8145-  REPEAT GEN_TAC THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-8324-  MATCH_MP_TAC HOMOLOGY_DIMENSION_REDUCED THEN EXISTS_TAC `a:num->real` THEN
hol-light-20190729/Multivariate/homology.ml:8325:  REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/homology.ml-8326-
##############################################
hol-light-20190729/Multivariate/homology.ml-8445-    REWRITE_TAC[TRIVIAL_GROUP_SUBGROUP_GENERATED_EQ] THEN
hol-light-20190729/Multivariate/homology.ml:8446:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/homology.ml-8447-
##############################################
hol-light-20190729/Multivariate/homology.ml-8679-     [ONCE_REWRITE_TAC[CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/homology.ml:8680:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/homology.ml-8681-      MP_TAC(fst(EQ_IMP_RULE(ISPECL [`nsphere 0`; `{p:num->real,n}`]
##############################################
hol-light-20190729/Multivariate/homology.ml-8710-      ASM_SIMP_TAC[CONTINUOUS_MAP_FROM_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/homology.ml:8711:      REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-8712-      REWRITE_TAC[group_epimorphism] THEN DISCH_THEN(MP_TAC o MATCH_MP
##############################################
hol-light-20190729/Multivariate/homology.ml-8728-      REWRITE_TAC[CONTINUOUS_MAP_CONST; TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/homology.ml:8729:      REWRITE_TAC[TOPSPACE_DISCRETE_TOPOLOGY; IN_SING] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-8730-      REWRITE_TAC[GROUP_MONOMORPHISM_ALT]] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-8777-    REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/homology.ml:8778:    ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Multivariate/homology.ml-8779-    W(MP_TAC o PART_MATCH rand
##############################################
hol-light-20190729/Multivariate/homology.ml-8889-    ASM_SIMP_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/homology.ml:8890:     [RULE_ASSUM_TAC(REWRITE_RULE[group_homomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-8891-      ONCE_REWRITE_TAC[SET_RULE `{g z} = IMAGE g {z}`] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-8901-        ==> IMAGE g s = t`)) THEN
hol-light-20190729/Multivariate/homology.ml:8902:      RULE_ASSUM_TAC(REWRITE_RULE[group_homomorphism]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/homology.ml-8903-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-8920-    ASM_SIMP_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/homology.ml:8921:     [RULE_ASSUM_TAC(REWRITE_RULE[group_homomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-8922-      ONCE_REWRITE_TAC[SET_RULE `{g z} = IMAGE g {z}`] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-8932-        ==> IMAGE g s = t`)) THEN
hol-light-20190729/Multivariate/homology.ml:8933:      RULE_ASSUM_TAC(REWRITE_RULE[group_homomorphism]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/homology.ml-8934-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-9281-                 GROUP_INV; GROUP_INV_INV] THEN
hol-light-20190729/Multivariate/homology.ml:9282:    ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Multivariate/homology.ml-9283-     [REWRITE_RULE[ABELIAN_GROUP_MUL_AC] ABELIAN_RELATIVE_HOMOLOGY_GROUP;
##############################################
hol-light-20190729/Multivariate/homology.ml-10015-        RULE_ASSUM_TAC(REWRITE_RULE[TOPSPACE_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/homology.ml:10016:        ASM SET_TAC[]]]) in
hol-light-20190729/Multivariate/homology.ml-10017-  let lemma2 = prove
##############################################
hol-light-20190729/Multivariate/homology.ml-10099-       `s SUBSET t ==> t INTER s = s`] THEN
hol-light-20190729/Multivariate/homology.ml:10100:      ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/homology.ml-10101-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-10195-     [RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/homology.ml:10196:      ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-10197-      SUBGOAL_THEN `t = IMAGE (f:(num->real)->num->real) s` SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/homology.ml-10200-        REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/homology.ml:10201:        ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-10202-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-10219-          REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/homology.ml:10220:          ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-10221-          REWRITE_TAC[TOPSPACE_EUCLIDEAN_SPACE; IN_ELIM_THM; IN_NUMSEG] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-10235-            REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/homology.ml:10236:            ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-10237-            ALL_TAC]] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-10256-    SUBGOAL_THEN `t SUBSET topspace(euclidean_space n)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/homology.ml:10257:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/homology.ml-10258-    REWRITE_TAC[PATH_CONNECTED_SPACE_IFF_PATH_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-10288-      REWRITE_TAC[REAL_MUL_LID; REAL_ADD_LID; REAL_ADD_RID; ETA_AX] THEN
hol-light-20190729/Multivariate/homology.ml:10289:      ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/homology.ml-10290-  REPEAT STRIP_TAC THEN EQ_TAC THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-10399-    REWRITE_TAC[REAL_ARITH `x <= &0 /\ x >= &0 <=> x = &0`] THEN
hol-light-20190729/Multivariate/homology.ml:10400:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/homology.ml-10401-    CONJ_TAC THEN MATCH_MP_TAC lemma THENL
##############################################
hol-light-20190729/Multivariate/homology.ml-10408-    SIMP_TAC[REAL_LT_IMP_LE; REAL_MUL_RZERO; REAL_ADD_LID] THEN
hol-light-20190729/Multivariate/homology.ml:10409:    (CONJ_TAC THENL [MP_TAC(REAL_LT_REFL) THEN ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/homology.ml-10410-    CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/homology.ml-10676-      FIRST_X_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/homology.ml:10677:      REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-10678-      DISCH_THEN(MP_TAC o MATCH_MP HOMEOMORPHIC_COMPACT_SPACE)] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-10685-      FIRST_X_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/homology.ml:10686:      REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-10687-      ASM_REWRITE_TAC[] THEN DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-10710-      ASM_REWRITE_TAC[SING_SUBSET; GSYM SUBSET_ANTISYM_EQ] THEN
hol-light-20190729/Multivariate/homology.ml:10711:      REWRITE_TAC[SUBSET; IN_SING] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-10712-      SUBGOAL_THEN `c:A->bool = c'` (fun th -> ASM_REWRITE_TAC[th]) THEN
hol-light-20190729/Multivariate/homology.ml:10713:      ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/homology.ml-10714-  GEN_TAC THEN ASM_CASES_TAC `n = 0` THENL
##############################################
hol-light-20190729/Multivariate/homology.ml-10793-    SUBGOAL_THEN `x IN topspace(euclidean_space n)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/homology.ml:10794:     [FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-10795-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-10809-      DISCH_THEN(MP_TAC o SPEC `x:num->real`) THEN
hol-light-20190729/Multivariate/homology.ml:10810:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/homology.ml-10811-      REWRITE_TAC[TOPSPACE_EUCLIDEANREAL; IN_UNIV; LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-10870-        REWRITE_TAC[CONTINUOUS_MAP_ID; ETA_AX; CONTINUOUS_MAP_CONST] THEN
hol-light-20190729/Multivariate/homology.ml:10871:        FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-10872-        MAP_EVERY X_GEN_TAC [`w:num->real`; `z:num->real`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-10878-       `P s ==> open_in top s ==> ?u. open_in top u /\ P u`) THEN
hol-light-20190729/Multivariate/homology.ml:10879:      CONJ_TAC THENL [MATCH_MP_TAC FUN_IN_IMAGE; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/homology.ml-10880-      REWRITE_TAC[IN_IMAGE] THEN EXISTS_TAC `zero:num->real` THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-10971-    FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/homology.ml:10972:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/homology.ml-10973-    UNDISCH_TAC `x IN (B:real->(num->real)->bool) r` THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-11054-       [continuous_map; closed_in; TOPSPACE_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/homology.ml:11055:      ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-11056-      DISCH_THEN(MP_TAC o AP_TERM `compact_in (euclidean_space n)`)] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-11119-        MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] PATH_COMPONENT_OF_MONO) THEN
hol-light-20190729/Multivariate/homology.ml:11120:        ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-11121-        MESON_TAC[PATH_COMPONENT_OF_SYM];
##############################################
hol-light-20190729/Multivariate/homology.ml-11145-        MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] PATH_COMPONENT_OF_MONO) THEN
hol-light-20190729/Multivariate/homology.ml:11146:        ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-11147-        ONCE_REWRITE_TAC[PATH_COMPONENT_OF_SYM] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-11192-       [EXPAND_TAC "S" THEN REWRITE_TAC[EXTENSION; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/homology.ml:11193:        ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-11194-        REWRITE_TAC[GSYM PATH_CONNECTED_IN_TOPSPACE] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-11200-    REWRITE_TAC[path_connected_in] THEN
hol-light-20190729/Multivariate/homology.ml:11201:    CONJ_TAC THENL [EXPAND_TAC "S" THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/homology.ml-11202-    REWRITE_TAC[PATH_CONNECTED_SPACE_IFF_PATH_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-11312-       [continuous_map; closed_in; TOPSPACE_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/homology.ml:11313:      ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/homology.ml-11314-    MATCH_MP_TAC PATH_CONNECTED_IN_CONTINUOUS_MAP_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-11320-    REWRITE_TAC[PATH_CONNECTED_IN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/homology.ml:11321:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/homology.ml-11322-    W(MP_TAC o PART_MATCH (lhand o rand) BIGLEMMA o snd) THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-11330-     [continuous_map; closed_in; TOPSPACE_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/homology.ml:11331:    ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-11332-    REWRITE_TAC[GSYM PATH_CONNECTED_IN_TOPSPACE] THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-11337-    ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/homology.ml:11338:     [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/homology.ml-11339-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/homology.ml-11342-       (fun th -> ASM_SIMP_TAC[th; CONTINUOUS_MAP_FROM_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/homology.ml:11343:      REWRITE_TAC[SUBTOPOLOGY_SUBTOPOLOGY] THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/homology.ml-11344-      DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-264-  ANTS_TAC THENL
hol-light-20190729/Multivariate/integration.ml:265:   [CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-266-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [bounded]) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-268-    ASM_MESON_TAC[COMPONENT_LE_NORM; REAL_LE_TRANS];
hol-light-20190729/Multivariate/integration.ml:269:    DISCH_THEN SUBST1_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/integration.ml-270-
##############################################
hol-light-20190729/Multivariate/integration.ml-290-   [ASM_MESON_TAC[BOUNDED_SUBSET]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml:291:  ASM_SIMP_TAC[CONTENT_EQ_0_GEN] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-292-
##############################################
hol-light-20190729/Multivariate/integration.ml-501-    EQ_TAC THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:502:    ASM_REWRITE_TAC[SET_RULE `UNIONS {a} = a`] THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/integration.ml-503-  REWRITE_TAC[division_of; INTERVAL_SING] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-542-  REPEAT(MATCH_MP_TAC MONO_AND THEN CONJ_TAC) THENL
hol-light-20190729/Multivariate/integration.ml:543:   [ASM_MESON_TAC[FINITE_SUBSET]; ASM SET_TAC[]; ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/integration.ml-544-
##############################################
hol-light-20190729/Multivariate/integration.ml-635-   `UNIONS {x | P x \/ Q x} = UNIONS {x | P x} UNION UNIONS {x | Q x}`] THEN
hol-light-20190729/Multivariate/integration.ml:636:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml:637:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/integration.ml-638-  REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/integration.ml:639:   [ASM SET_TAC[]; ALL_TAC; ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/integration.ml-640-  MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/integration.ml-648-  REPEAT CONJ_TAC THEN TRY(MATCH_MP_TAC SUBSET_INTERIOR) THEN
hol-light-20190729/Multivariate/integration.ml:649:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-650-
##############################################
hol-light-20190729/Multivariate/integration.ml-656-  REPEAT STRIP_TAC THEN ASM_CASES_TAC `interval[a:real^N,b] = {}` THENL
hol-light-20190729/Multivariate/integration.ml:657:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-658-  REPEAT(FIRST_X_ASSUM(STRIP_ASSUME_TAC o
##############################################
hol-light-20190729/Multivariate/integration.ml-773-    ASM_REWRITE_TAC[] THEN STRIP_TAC THEN FIRST_X_ASSUM SUBST_ALL_TAC THEN
hol-light-20190729/Multivariate/integration.ml:774:    MATCH_MP_TAC PARTIAL_DIVISION_EXTEND_1 THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-775-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-815-   [MATCH_MP_TAC SUBSET_INTERIOR THEN
hol-light-20190729/Multivariate/integration.ml:816:    MATCH_MP_TAC(SET_RULE `x IN s ==> INTERS s SUBSET x`) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-817-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-863-                GEN_REWRITE_RULE I [division_of]) THEN
hol-light-20190729/Multivariate/integration.ml:864:    ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-865-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-913-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [division_of]) THEN
hol-light-20190729/Multivariate/integration.ml:914:    SIMP_TAC[FINITE_INSERT; UNIONS_INSERT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-915-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-944-    ASM_SIMP_TAC[SET_RULE `s DELETE x = {} ==> x INSERT s = {x}`] THEN
hol-light-20190729/Multivariate/integration.ml:945:    REWRITE_TAC[division_of; UNIONS_1] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-946-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-981-    ASM_CASES_TAC `(y:real^N) IN interval[a,b]` THEN
hol-light-20190729/Multivariate/integration.ml:982:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-983-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-1123-      REWRITE_TAC[IN_UNIONS; EXISTS_IN_IMAGE; EXISTS_IN_GSPEC] THEN EXISTS_TAC
hol-light-20190729/Multivariate/integration.ml:1124:       `{i | i IN 1..dimindex(:N) /\ (c:real^N)$i <= (x:real^N)$i}` THEN
hol-light-20190729/Multivariate/integration.ml-1125-      CONJ_TAC THENL [SET_TAC[]; REWRITE_TAC[IN_INTERVAL]] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-1144-  ASM_SIMP_TAC[CARD_DELETE; ARITH_RULE `n - 1 < n <=> ~(n = 0)`] THEN
hol-light-20190729/Multivariate/integration.ml:1145:  ASM_SIMP_TAC[CARD_EQ_0] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-1146-  ANTS_TAC THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-1148-    MATCH_MP_TAC EQ_IMP THEN AP_THM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/integration.ml:1149:    ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/integration.ml-1150-  REWRITE_TAC[DIVISION_OF] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-1240-     [GEN_REWRITE_TAC I [EXTENSION] THEN
hol-light-20190729/Multivariate/integration.ml:1241:      REWRITE_TAC[IN_IMAGE; IN_SING] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-1242-      SIMP_TAC[UNIONS_1; FINITE_SING; IN_SING; IMP_CONJ] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-1300-    REWRITE_TAC[ELEMENTARY_EMPTY; EMPTY_SUBSET; UNIONS_GSPEC] THEN
hol-light-20190729/Multivariate/integration.ml:1301:    ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-1302-    FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_COUNTABLE_UNION_CLOSED_INTERVALS) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-1314-    ONCE_REWRITE_TAC[SIMPLE_IMAGE_GEN] THEN
hol-light-20190729/Multivariate/integration.ml:1315:    SIMP_TAC[FINITE_IMAGE; FINITE_NUMSEG_LE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-1316-    GEN_TAC THEN MATCH_MP_TAC SUBSET_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-1353-      DISCH_TAC THEN
hol-light-20190729/Multivariate/integration.ml:1354:      CONJ_TAC THENL [ASM SET_TAC[]; REPEAT GEN_TAC THEN STRIP_TAC] THEN
hol-light-20190729/Multivariate/integration.ml:1355:      FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/integration.ml-1356-    REWRITE_TAC[IMP_CONJ; RIGHT_FORALL_IMP_THM]] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-1434-  REWRITE_TAC[SUBSET; IN_UNIONS; IN_IMAGE; EXISTS_PAIR_THM] THEN
hol-light-20190729/Multivariate/integration.ml:1435:  CONV_TAC(ONCE_DEPTH_CONV UNWIND_CONV) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-1436-
##############################################
hol-light-20190729/Multivariate/integration.ml-1540-   `UNIONS {x | P x \/ Q x} = UNIONS {x | P x} UNION UNIONS {x | Q x}`] THEN
hol-light-20190729/Multivariate/integration.ml:1541:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-1542-  REPEAT STRIP_TAC THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-1830-      FIRST_X_ASSUM MATCH_MP_TAC THEN STRIP_ASSUME_TAC th) THEN
hol-light-20190729/Multivariate/integration.ml:1831:    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-1832-    MATCH_MP_TAC INTER_INTERIOR_UNIONS_INTERVALS THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-1981-   [X_GEN_TAC `e:real` THEN DISCH_TAC THEN MP_TAC(SPEC
hol-light-20190729/Multivariate/integration.ml:1982:     `sum(1..dimindex(:N)) (\i. (b:real^N)$i - (a:real^N)$i) / e`
hol-light-20190729/Multivariate/integration.ml-1983-     REAL_ARCH_POW2) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-1986-    MATCH_MP_TAC REAL_LET_TRANS THEN
hol-light-20190729/Multivariate/integration.ml:1987:    EXISTS_TAC `sum(1..dimindex(:N))(\i. abs((x - y:real^N)$i))` THEN
hol-light-20190729/Multivariate/integration.ml-1988-    REWRITE_TAC[dist; NORM_LE_L1] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-2628-  ASM_CASES_TAC
hol-light-20190729/Multivariate/integration.ml:2629:   `!i. 1 <= i /\ i <= dimindex(:N) ==> (a:real^N)$i <= (b:real^N)$i` THEN
hol-light-20190729/Multivariate/integration.ml-2630-  ASM_REWRITE_TAC[REAL_ADD_RID] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-2683-    ==> u SUBSET s /\ u SUBSET t ==> u = {}`)) THEN
hol-light-20190729/Multivariate/integration.ml:2684:  CONJ_TAC THEN MATCH_MP_TAC SUBSET_INTERIOR THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-2685-
##############################################
hol-light-20190729/Multivariate/integration.ml-2826-    REWRITE_TAC[REAL_NOT_LE; REAL_NOT_LT] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:2827:    MATCH_MP_TAC REAL_LE_TRANS THEN EXISTS_TAC `abs((x - u:real^M)$k)` THEN
hol-light-20190729/Multivariate/integration.ml-2828-    ASM_SIMP_TAC[COMPONENT_LE_NORM] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-3006-  MAP_EVERY ABBREV_TAC
hol-light-20190729/Multivariate/integration.ml:3007:   [`b' = (lambda i. if i = k then min ((b:real^M)$k) c else b$i):real^M`;
hol-light-20190729/Multivariate/integration.ml:3008:    `a' = (lambda i. if i = k then max ((a:real^M)$k) c else a$i):real^M`] THEN
hol-light-20190729/Multivariate/integration.ml-3009-  ASM_SIMP_TAC[REAL_HALF; INTERVAL_SPLIT] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-3188-   SUBGOAL_THEN
hol-light-20190729/Multivariate/integration.ml:3189:    `!i. 1 <= i /\ i <= dimindex(:N) ==> (u:real^N)$i <= (v:real^N)$i`
hol-light-20190729/Multivariate/integration.ml-3190-   ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-3215-  ASM_SIMP_TAC[PSUBSET_ALT; DIVISION_POINTS_SUBSET] THENL
hol-light-20190729/Multivariate/integration.ml:3216:   [EXISTS_TAC `k,(interval_lowerbound l:real^N)$k`;
hol-light-20190729/Multivariate/integration.ml:3217:    EXISTS_TAC `k,(interval_lowerbound l:real^N)$k`;
hol-light-20190729/Multivariate/integration.ml:3218:    EXISTS_TAC `k,(interval_upperbound l:real^N)$k`;
hol-light-20190729/Multivariate/integration.ml:3219:    EXISTS_TAC `k,(interval_upperbound l:real^N)$k`] THEN
hol-light-20190729/Multivariate/integration.ml-3220-  ASM_REWRITE_TAC[division_points; IN_ELIM_PAIR_THM] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-3288-      DISCH_THEN(fun th ->
hol-light-20190729/Multivariate/integration.ml:3289:        MP_TAC(SPEC `(u:real^N)$j` th) THEN
hol-light-20190729/Multivariate/integration.ml:3290:        MP_TAC(SPEC `(v:real^N)$j` th)) THEN
hol-light-20190729/Multivariate/integration.ml-3291-      FIRST_X_ASSUM(DISJ_CASES_THEN MP_TAC) THEN REAL_ARITH_TAC;
##############################################
hol-light-20190729/Multivariate/integration.ml-3374-     {l INTER {x | x$k >= c} | l | l IN d /\ ~(l INTER {x | x$k >= c} = {})}`;
hol-light-20190729/Multivariate/integration.ml:3375:    `cb:real^N = (lambda i. if i = k then c else (b:real^N)$i)`;
hol-light-20190729/Multivariate/integration.ml:3376:    `ca:real^N = (lambda i. if i = k then c else (a:real^N)$i)`] THEN
hol-light-20190729/Multivariate/integration.ml-3377-  STRIP_TAC THEN STRIP_TAC THEN STRIP_TAC THEN DISCH_THEN(fun th ->
##############################################
hol-light-20190729/Multivariate/integration.ml-3654-    MATCH_MP_TAC(REAL_ARITH `~(&0 < i - j) ==> i <= j`) THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/integration.ml:3655:    REPEAT(FIRST_X_ASSUM(MP_TAC o SPEC `((i:real^N)$k - (j:real^N)$k) / &3` o
hol-light-20190729/Multivariate/integration.ml-3656-       GEN_REWRITE_RULE I [has_integral])) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-3675-     [MATCH_MP_TAC RSUM_COMPONENT_LE THEN ASM_MESON_TAC[];
hol-light-20190729/Multivariate/integration.ml:3676:      UNDISCH_TAC `&0 < (i:real^N)$k - (j:real^N)$k` THEN
hol-light-20190729/Multivariate/integration.ml-3677-      SPEC_TAC(`vsum p (\(x:real^M,l:real^M->bool).
##############################################
hol-light-20190729/Multivariate/integration.ml-3688-  REPEAT(FIRST_X_ASSUM(MP_TAC o SPEC
hol-light-20190729/Multivariate/integration.ml:3689:   `((i:real^N)$k - (j:real^N)$k) / &2`)) THEN
hol-light-20190729/Multivariate/integration.ml-3690-  ASM_REWRITE_TAC[REAL_HALF; REAL_SUB_LT] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-3700-  DISCH_THEN(X_CHOOSE_THEN `z:real^N` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/integration.ml:3701:  SUBGOAL_THEN `(z:real^N)$k <= (w:real^N)$k` MP_TAC THENL
hol-light-20190729/Multivariate/integration.ml-3702-   [FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-4076-let NEGLIGIBLE_STANDARD_HYPERPLANE = prove
hol-light-20190729/Multivariate/integration.ml:4077: (`!c k. negligible {x:real^N | x$k = c}`,
hol-light-20190729/Multivariate/integration.ml-4078-  MAP_EVERY X_GEN_TAC [`c:real`; `i:num`] THEN
hol-light-20190729/Multivariate/integration.ml:4079:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !x:real^N. x$i = x$k`
hol-light-20190729/Multivariate/integration.ml-4080-  (X_CHOOSE_THEN `k:num` STRIP_ASSUME_TAC) THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-4088-  EXISTS_TAC `\x:real^N. ball(x,d)` THEN ASM_SIMP_TAC[GAUGE_BALL] THEN
hol-light-20190729/Multivariate/integration.ml:4089:  ABBREV_TAC `i = indicator {x:real^N | x$k = c}` THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/integration.ml-4090-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-4105-    REWRITE_TAC[SUBSET; IN_BALL; IN_ELIM_THM; dist] THEN
hol-light-20190729/Multivariate/integration.ml:4106:    UNDISCH_THEN `(x:real^N)$k = c` (SUBST1_TAC o SYM) THEN
hol-light-20190729/Multivariate/integration.ml-4107-    ASM_SIMP_TAC[GSYM VECTOR_SUB_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-4150-     [`IMAGE SND (p:real^N#(real^N->bool)->bool)`;
hol-light-20190729/Multivariate/integration.ml:4151:      `\l. l INTER {x:real^N | abs (x$k - c) <= d}`;
hol-light-20190729/Multivariate/integration.ml-4152-      `\l:real^N->bool. content l % vec 1 :real^1`;
##############################################
hol-light-20190729/Multivariate/integration.ml-4173-      `u SUBSET s /\ u SUBSET t ==> s INTER t = {} ==> u = {}`) THEN
hol-light-20190729/Multivariate/integration.ml:4174:    CONJ_TAC THEN MATCH_MP_TAC SUBSET_INTERIOR THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-4175-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-4178-  EXISTS_TAC
hol-light-20190729/Multivariate/integration.ml:4179:   `&1 * content(interval[a,b] INTER {x:real^N | abs (x$k - c) <= d})` THEN
hol-light-20190729/Multivariate/integration.ml-4180-  CONJ_TAC THENL [ALL_TAC; ASM_REWRITE_TAC[REAL_MUL_LID]] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-4226-   [ASM_REWRITE_TAC[] THEN MATCH_MP_TAC TAGGED_PARTIAL_DIVISION_SUBSET THEN
hol-light-20190729/Multivariate/integration.ml:4227:    EXISTS_TAC `(x:real^N,k:real^N->bool) INSERT p` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-4228-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-4431-  REPEAT STRIP_TAC THEN MATCH_MP_TAC HAS_INTEGRAL_NEGLIGIBLE THEN
hol-light-20190729/Multivariate/integration.ml:4432:  EXISTS_TAC `s:real^M->bool` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-4433-
##############################################
hol-light-20190729/Multivariate/integration.ml-4478-  FIRST_X_ASSUM MATCH_MP_TAC THEN EXISTS_TAC `s:real^M->bool` THEN
hol-light-20190729/Multivariate/integration.ml:4479:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-4480-
##############################################
hol-light-20190729/Multivariate/integration.ml-4524-  ASM_REWRITE_TAC[HAS_INTEGRAL_0] THEN
hol-light-20190729/Multivariate/integration.ml:4525:  REWRITE_TAC[indicator] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-4526-
##############################################
hol-light-20190729/Multivariate/integration.ml-4556-  GEN_TAC THEN MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN
hol-light-20190729/Multivariate/integration.ml:4557:  EXISTS_TAC `{x | (x:real^N)$1 = (a:real^N)$1}` THEN
hol-light-20190729/Multivariate/integration.ml-4558-  SIMP_TAC[NEGLIGIBLE_STANDARD_HYPERPLANE; LE_REFL; DIMINDEX_GE_1] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-4663-  EXISTS_TAC `interval[a:real^M,b] DIFF interval(a,b)` THEN
hol-light-20190729/Multivariate/integration.ml:4664:  REWRITE_TAC[NEGLIGIBLE_FRONTIER_INTERVAL] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-4665-
##############################################
hol-light-20190729/Multivariate/integration.ml-4740-   [UNDISCH_TAC
hol-light-20190729/Multivariate/integration.ml:4741:     `(g1:real^M->real^N) integrable_on (interval[u,v] INTER {x | x$k <= c})`;
hol-light-20190729/Multivariate/integration.ml-4742-    UNDISCH_TAC
hol-light-20190729/Multivariate/integration.ml:4743:    `(g2:real^M->real^N) integrable_on (interval[u,v] INTER {x | x$k >= c})`
hol-light-20190729/Multivariate/integration.ml-4744-   ] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-4746-  ASM_SIMP_TAC[GSYM INTERVAL_SPLIT] THEN
hol-light-20190729/Multivariate/integration.ml:4747:  EXISTS_TAC `{x:real^M | x$k = c}` THEN
hol-light-20190729/Multivariate/integration.ml-4748-  ASM_SIMP_TAC[NEGLIGIBLE_STANDARD_HYPERPLANE; IN_DIFF; IN_INTER; IN_ELIM_THM;
##############################################
hol-light-20190729/Multivariate/integration.ml-5285-  ASM_REWRITE_TAC[INTERIOR_CLOSED_INTERVAL] THEN
hol-light-20190729/Multivariate/integration.ml:5286:  EXPAND_TAC "g" THEN REWRITE_TAC[] THEN COND_CASES_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-5287-
##############################################
hol-light-20190729/Multivariate/integration.ml-5672-      STRIP_TAC THEN REPEAT GEN_TAC THEN DISCH_THEN(ANTE_RES_THEN MP_TAC) THEN
hol-light-20190729/Multivariate/integration.ml:5673:      ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/integration.ml-5674-    SUBGOAL_THEN
hol-light-20190729/Multivariate/integration.ml-5675-     `interval[a,b] = IMAGE ((g:real^M->real^N) o h) (interval[a,b])`
hol-light-20190729/Multivariate/integration.ml:5676:    SUBST1_TAC THENL [SIMP_TAC[o_DEF] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-5677-    SUBGOAL_THEN `?u v. IMAGE (h:real^N->real^M) (interval[a,b]) =
##############################################
hol-light-20190729/Multivariate/integration.ml-5699-       [SET_TAC[];
hol-light-20190729/Multivariate/integration.ml:5700:        REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-5701-        STRIP_TAC THEN ASM_REWRITE_TAC[]];
##############################################
hol-light-20190729/Multivariate/integration.ml-5736-    DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
hol-light-20190729/Multivariate/integration.ml:5737:    MATCH_MP_TAC MONO_AND THEN CONJ_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-5738-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-5778-  FIRST_X_ASSUM(MP_TAC o SPECL [`a':real^N`; `b':real^N`]) THEN
hol-light-20190729/Multivariate/integration.ml:5779:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-5780-  DISCH_THEN(X_CHOOSE_THEN `z:real^P` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-5790-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC EQ_IMP THEN
hol-light-20190729/Multivariate/integration.ml:5791:  MK_COMB_TAC THENL [AP_THM_TAC THEN AP_TERM_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/integration.ml:5792:  REWRITE_TAC[FUN_EQ_THM] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-5793-
##############################################
hol-light-20190729/Multivariate/integration.ml-5803-  REPEAT STRIP_TAC THEN MP_TAC(ISPECL
hol-light-20190729/Multivariate/integration.ml:5804:   [`f:real^N->real^P`; `(\x. lambda i. x$(p i)):real^M->real^N`;
hol-light-20190729/Multivariate/integration.ml:5805:    `(\x. lambda i. x$(inverse p i)):real^N->real^M`;
hol-light-20190729/Multivariate/integration.ml-5806-    `&1`; `y:real^P`;
hol-light-20190729/Multivariate/integration.ml:5807:    `((\x. lambda i. x$(p i)):real^M->real^N) a`;
hol-light-20190729/Multivariate/integration.ml:5808:    `((\x. lambda i. x$(p i)):real^M->real^N) b`]
hol-light-20190729/Multivariate/integration.ml-5809-    HAS_INTEGRAL_TWIDDLE) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-5862-  FIRST_X_ASSUM(MP_TAC o SPECL
hol-light-20190729/Multivariate/integration.ml:5863:   [`(lambda i. (a:real^M)$p i):real^N`;
hol-light-20190729/Multivariate/integration.ml:5864:    `(lambda i. (b:real^M)$p i):real^N`]) THEN
hol-light-20190729/Multivariate/integration.ml-5865-  FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [SUBSET]) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-5869-    FIRST_X_ASSUM(MP_TAC o SPEC
hol-light-20190729/Multivariate/integration.ml:5870:      `(lambda i. (x:real^N)$(inverse p i)):real^M`) THEN
hol-light-20190729/Multivariate/integration.ml-5871-    SIMP_TAC[LAMBDA_BETA] THEN ANTS_TAC THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-5900-  MP_TAC(ISPECL
hol-light-20190729/Multivariate/integration.ml:5901:   [`(f:real^N->real^P) o ((\x. lambda i. x$p i):real^M->real^N)`;
hol-light-20190729/Multivariate/integration.ml:5902:    `IMAGE ((\x. lambda i. x$p i):real^M->real^N) s`;
hol-light-20190729/Multivariate/integration.ml-5903-    `y:real^P`; `inverse p:num->num`] HAS_INTEGRAL_TWIZZLE) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-6192-  STRIP_TAC THEN MATCH_MP_TAC(ISPEC
hol-light-20190729/Multivariate/integration.ml:6193:   `\d. (lambda i. (x:real^N)$i = (A:(real^N->bool)->real^N)(d)$i):bool^N`
hol-light-20190729/Multivariate/integration.ml-6194-   lemma) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-6315-  REPEAT(COND_CASES_TAC THEN ASM_REWRITE_TAC[REAL_LE_REFL]) THEN
hol-light-20190729/Multivariate/integration.ml:6316:  ASM_SIMP_TAC[VEC_COMPONENT] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-6317-
##############################################
hol-light-20190729/Multivariate/integration.ml-6353-  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/integration.ml:6354:   [CONJ_TAC THENL [ASM SET_TAC[]; CONJ_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-6355-    MATCH_MP_TAC(REWRITE_RULE[IMP_IMP] INTEGRABLE_SPIKE_SET) THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-6385-  MATCH_MP_TAC INTEGRABLE_SUBINTERVAL THEN
hol-light-20190729/Multivariate/integration.ml:6386:  EXISTS_TAC `(lambda i. min ((a:real^M)$i) (--B)):real^M` THEN
hol-light-20190729/Multivariate/integration.ml:6387:  EXISTS_TAC `(lambda i. max ((b:real^M)$i) B):real^M` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/integration.ml-6388-   [FIRST_X_ASSUM(MP_TAC o SPECL
hol-light-20190729/Multivariate/integration.ml:6389:     [`(lambda i. min ((a:real^M)$i) (--B)):real^M`;
hol-light-20190729/Multivariate/integration.ml:6390:      `(lambda i. max ((b:real^M)$i) B):real^M`]) THEN
hol-light-20190729/Multivariate/integration.ml-6391-    ANTS_TAC THENL [ALL_TAC; MESON_TAC[integrable_on]];
##############################################
hol-light-20190729/Multivariate/integration.ml-6496-  FIRST_X_ASSUM(MP_TAC o SPECL
hol-light-20190729/Multivariate/integration.ml:6497:   [`(lambda i. max ((a:real^M)$i) ((c:real^M)$i)):real^M`;
hol-light-20190729/Multivariate/integration.ml:6498:    `(lambda i. min ((b:real^M)$i) ((d:real^M)$i)):real^M`]) THEN
hol-light-20190729/Multivariate/integration.ml-6499-  ASM_REWRITE_TAC[GSYM INTER_INTERVAL; SUBSET_INTER] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-6513-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] INTEGRABLE_EQ) THEN
hol-light-20190729/Multivariate/integration.ml:6514:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-6515-
##############################################
hol-light-20190729/Multivariate/integration.ml-6549-     `a:real^M`;
hol-light-20190729/Multivariate/integration.ml:6550:     `(lambda i. if i = k then t else (b:real^M)$i):real^M`;
hol-light-20190729/Multivariate/integration.ml:6551:     `(b:real^M)$k`; `k:num`]
hol-light-20190729/Multivariate/integration.ml-6552-        INTEGRAL_SPLIT) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-6645-      ASM_CASES_TAC
hol-light-20190729/Multivariate/integration.ml:6646:       `?k. 1 <= k /\ k <= dimindex(:M) /\ (a:real^M)$k = (c:real^M)$k`
hol-light-20190729/Multivariate/integration.ml-6647-      THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-6669-        ASM_REWRITE_TAC[real_pow] THEN
hol-light-20190729/Multivariate/integration.ml:6670:        SUBGOAL_THEN `~(SUC m IN 1..m)` (fun th -> ASM SET_TAC[th]) THEN
hol-light-20190729/Multivariate/integration.ml-6671-        REWRITE_TAC[IN_NUMSEG] THEN ARITH_TAC;
##############################################
hol-light-20190729/Multivariate/integration.ml-6675-    MP_TAC(ISPECL
hol-light-20190729/Multivariate/integration.ml:6676:     [`f:real^M->real^N`; `a:real^M`; `d:real^M`; `(c:real^M)$SUC m`; `SUC m`]
hol-light-20190729/Multivariate/integration.ml-6677-         INTEGRAL_SPLIT_SIGNED) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-6725-         ASM_CASES_TAC `(i:num) IN s` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/integration.ml:6726:         SUBGOAL_THEN `i IN 1..m` MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-6727-         REWRITE_TAC[IN_NUMSEG] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-6739-         COND_CASES_TAC THEN ASM_REWRITE_TAC[] THEN TRY REAL_ARITH_TAC THEN
hol-light-20190729/Multivariate/integration.ml:6740:         SUBGOAL_THEN `~(SUC m IN 1..m)` (fun th -> ASM SET_TAC[th]) THEN
hol-light-20190729/Multivariate/integration.ml-6741-         REWRITE_TAC[IN_NUMSEG] THEN ARITH_TAC]])) in
##############################################
hol-light-20190729/Multivariate/integration.ml-6799-  X_GEN_TAC `s:num->bool` THEN REWRITE_TAC[IN_ELIM_THM] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:6800:  ASM_CASES_TAC `?k. k IN s /\ (c:real^M)$k = (b:real^M)$k` THENL
hol-light-20190729/Multivariate/integration.ml-6801-   [FIRST_X_ASSUM(X_CHOOSE_THEN `k:num` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-6978-    CONJ_TAC THENL [ALL_TAC; ASM_MESON_TAC[REAL_LE_REFL]] THEN
hol-light-20190729/Multivariate/integration.ml:6979:    ABBREV_TAC `c:real^N = lambda i. min ((a:real^N)$i) (--(max B1 B2))` THEN
hol-light-20190729/Multivariate/integration.ml:6980:    ABBREV_TAC `d:real^N = lambda i. max ((b:real^N)$i) (max B1 B2)` THEN
hol-light-20190729/Multivariate/integration.ml-6981-    REMOVE_THEN "H" (MP_TAC o SPECL [`c:real^N`; `d:real^N`]) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-7160-  ASM_SIMP_TAC[SIMPLE_IMAGE; FINITE_IMAGE; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/integration.ml:7161:  RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-7162-
##############################################
hol-light-20190729/Multivariate/integration.ml-7237-  MAP_EVERY ASM_CASES_TAC [`(x:real^M) IN s`; `(x:real^M) IN t`] THEN
hol-light-20190729/Multivariate/integration.ml:7238:  ASM_REWRITE_TAC[VECTOR_SUB_REFL; VECTOR_SUB_RZERO] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-7239-
##############################################
hol-light-20190729/Multivariate/integration.ml-7249-         else vec 0)`
hol-light-20190729/Multivariate/integration.ml:7250:  SUBST1_TAC THENL [ASM SIMP_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-7251-  ONCE_REWRITE_TAC[INTEGRABLE_RESTRICT_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-7384-  SIMP_TAC[NEGLIGIBLE_FRONTIER_INTERVAL; NEGLIGIBLE_UNION] THEN
hol-light-20190729/Multivariate/integration.ml:7385:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-7386-
##############################################
hol-light-20190729/Multivariate/integration.ml-8272-      ASM_REWRITE_TAC[REAL_LE_REFL] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:8273:      ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-8274-      X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-8317-      ASM_REWRITE_TAC[REAL_LE_REFL] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:8318:      ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-8319-      X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-8429-  MATCH_MP_TAC REAL_LE_TRANS THEN
hol-light-20190729/Multivariate/integration.ml:8430:  EXISTS_TAC `drop(integral s ((\y. lift(y$k)) o (g:real^M->real^P)))` THEN
hol-light-20190729/Multivariate/integration.ml:8431:  SUBGOAL_THEN `linear(\y:real^P. lift(y$k))` ASSUME_TAC THENL
hol-light-20190729/Multivariate/integration.ml-8432-   [ASM_SIMP_TAC[linear; VECTOR_ADD_COMPONENT; VECTOR_MUL_COMPONENT;
##############################################
hol-light-20190729/Multivariate/integration.ml-9056-    MP_TAC THENL
hol-light-20190729/Multivariate/integration.ml:9057:     [RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-9058-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-9081-      ANTS_TAC THENL [ASM_MESON_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml:9082:      REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/integration.ml-9083-    MP_TAC(ISPECL [`u:real^M`; `v:real^M`] ELEMENTARY_INTERVAL) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-9431-              ==> interior s = {}`) THEN
hol-light-20190729/Multivariate/integration.ml:9432:        EXISTS_TAC `{x:real^M | x$k = c}` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/integration.ml-9433-         [ALL_TAC; REWRITE_TAC[INTERIOR_STANDARD_HYPERPLANE]] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-9443-      FIRST_X_ASSUM MATCH_MP_TAC THEN MATCH_MP_TAC CONTENT_0_SUBSET_GEN THEN
hol-light-20190729/Multivariate/integration.ml:9444:      EXISTS_TAC `interval[a,b] INTER {x:real^M | x$k = c}` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/integration.ml-9445-       [MATCH_MP_TAC SUBSET_TRANS THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-10231-      CONJ_TAC THENL
hol-light-20190729/Multivariate/integration.ml:10232:       [MATCH_MP_TAC SUBSET_INTERIOR THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-10233-      MP_TAC(MATCH_MP DIVISION_OF_TAGGED_DIVISION
##############################################
hol-light-20190729/Multivariate/integration.ml-10382-    CONJ_TAC THENL
hol-light-20190729/Multivariate/integration.ml:10383:     [MATCH_MP_TAC SUBSET_INTERIOR THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-10384-    FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [division_of]) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-11224-  REPEAT GEN_TAC THEN EQ_TAC THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/integration.ml:11225:   [FIRST_X_ASSUM(MP_TAC o ISPEC `\u:real^N. lift(u$i)` o
hol-light-20190729/Multivariate/integration.ml-11226-        MATCH_MP (REWRITE_RULE[IMP_CONJ] HAS_INTEGRAL_LINEAR)) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-11255-  REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:11256:  SUBGOAL_THEN `?j. 1 <= j /\ j <= dimindex(:N) /\ !z:real^N. z$k = z$j`
hol-light-20190729/Multivariate/integration.ml-11257-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-11282-   [SUBGOAL_THEN
hol-light-20190729/Multivariate/integration.ml:11283:     `(\x. lift((f:real^M->real^N) x$i)) absolutely_integrable_on s`
hol-light-20190729/Multivariate/integration.ml-11284-    MP_TAC THENL [ALL_TAC; SIMP_TAC[absolutely_integrable_on]] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-11718-  MATCH_MP_TAC lemma THEN
hol-light-20190729/Multivariate/integration.ml:11719:  EXISTS_TAC `\i x. lift(((f:num->real^M->real^N) i x)$k)` THEN
hol-light-20190729/Multivariate/integration.ml-11720-  EXISTS_TAC `h:real^M->real^1` THEN ASM_SIMP_TAC[] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-11806-    REPEAT(COND_CASES_TAC THEN ASM_REWRITE_TAC[DIST_REFL]) THEN
hol-light-20190729/Multivariate/integration.ml:11807:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/integration.ml-11808-
##############################################
hol-light-20190729/Multivariate/integration.ml-11938-    ASM_SIMP_TAC[LIFT_DROP] THEN
hol-light-20190729/Multivariate/integration.ml:11939:    FIRST_X_ASSUM(MP_TAC o ISPEC `\y:real^N. lift(y$k)` o
hol-light-20190729/Multivariate/integration.ml-11940-      MATCH_MP(REWRITE_RULE[IMP_CONJ] HAS_INTEGRAL_LINEAR)) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-12541-      ASM_REWRITE_TAC[REAL_LE_REFL] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:12542:      ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-12543-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/integration.ml-12597-      ASM_REWRITE_TAC[REAL_LE_REFL] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:12598:      ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-12599-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/integration.ml-12822-  DISCH_THEN MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:12823:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Multivariate/integration.ml-12824-   [GSYM INTEGRAL_SUB; ABSOLUTELY_INTEGRABLE_SUB; ETA_AX; INTEGRABLE_CMUL;
##############################################
hol-light-20190729/Multivariate/integration.ml-13033-    MATCH_MP_TAC SUM_SUBSET_SIMPLE THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/integration.ml:13034:    CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[FORALL_PAIR_THM]] THEN
hol-light-20190729/Multivariate/integration.ml-13035-    REWRITE_TAC[IN_DIFF; IN_ELIM_PAIR_THM] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-13131-    FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [SUBSET]) THEN
hol-light-20190729/Multivariate/integration.ml:13132:    REWRITE_TAC[FORALL_IN_IMAGE; FORALL_PAIR_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-13133-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-13212-    MATCH_MP_TAC(MESON[CARD_CLAUSES] `s = {} ==> CARD s = 0`) THEN
hol-light-20190729/Multivariate/integration.ml:13213:    ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-13214-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-13235-  W(MP_TAC o PART_MATCH (rand o rand) SUM_IMAGE o lhand o snd) THEN
hol-light-20190729/Multivariate/integration.ml:13236:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Multivariate/integration.ml-13237-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-13249-    ASM_SIMP_TAC[FINITE_IMAGE; FINITE_INTER; FINITE_NUMSEG] THEN
hol-light-20190729/Multivariate/integration.ml:13250:    SIMP_TAC[REAL_LE_INV_EQ; REAL_POW_LE; REAL_POS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-13251-    REWRITE_TAC[SUM_GP; LT; SUB_0] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-13429-   `{x | x IN s /\ (f:real^M->real^N) x IN {y}}`) THEN
hol-light-20190729/Multivariate/integration.ml:13430:  ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN CONJ_TAC THEN
hol-light-20190729/Multivariate/integration.ml-13431-  ASM_SIMP_TAC[CONTINUOUS_CLOSED_IN_PREIMAGE; CLOSED_SING] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-13617-  CONJ_TAC THENL
hol-light-20190729/Multivariate/integration.ml:13618:   [REWRITE_TAC[integrable_on] THEN ASM MESON_TAC[HAS_INTEGRAL_SPLIT];
hol-light-20190729/Multivariate/integration.ml-13619-    STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-13668-    REWRITE_TAC[REAL_NOT_LE; REAL_NOT_LT] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:13669:    MATCH_MP_TAC REAL_LE_TRANS THEN EXISTS_TAC `abs((x - u:real^M)$k)` THEN
hol-light-20190729/Multivariate/integration.ml-13670-    ASM_SIMP_TAC[COMPONENT_LE_NORM] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-14064-  STRIP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:14065:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Multivariate/integration.ml-14066-   [INTEGRABLE_CMUL; INTEGRABLE_VSUM; ETA_AX; INTEGRAL_VSUM] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-14174-   [ASM_REWRITE_TAC[] THEN MATCH_MP_TAC EQUIINTEGRABLE_SUBSET THEN
hol-light-20190729/Multivariate/integration.ml:14175:    EXISTS_TAC `fs:(real^M->real^N)->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-14176-    DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC (LABEL_TAC "*"))] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-14380-    ASSUME_TAC THENL
hol-light-20190729/Multivariate/integration.ml:14381:     [RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-14382-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-14507-      DISCH_TAC THENL
hol-light-20190729/Multivariate/integration.ml:14508:       [CONJ_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[]] THEN
hol-light-20190729/Multivariate/integration.ml-14509-        EXPAND_TAC "extend" THEN REWRITE_TAC[] THEN MESON_TAC[];
##############################################
hol-light-20190729/Multivariate/integration.ml-14530-    `a:real^M`;
hol-light-20190729/Multivariate/integration.ml:14531:    `(lambda j. if j = i then c else (b:real^M)$j):real^M`;
hol-light-20190729/Multivariate/integration.ml-14532-    `UNIONS {k | k IN {l INTER {x | x$i <= c} | l |
##############################################
hol-light-20190729/Multivariate/integration.ml-14539-          ~(content k = &0)}`;
hol-light-20190729/Multivariate/integration.ml:14540:    `(lambda j. if j = i then c else (a:real^M)$j):real^M`;
hol-light-20190729/Multivariate/integration.ml-14541-    `b:real^M`;
##############################################
hol-light-20190729/Multivariate/integration.ml-14585-    REWRITE_TAC[FORALL_IN_GSPEC; IMP_CONJ] THEN
hol-light-20190729/Multivariate/integration.ml:14586:    ASM_SIMP_TAC[LAMBDA_BETA; real_ge] THEN ASM SET_TAC[REAL_LE_REFL];
hol-light-20190729/Multivariate/integration.ml-14587-    ASM_SIMP_TAC[LAMBDA_BETA]] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-14642-      ALL_TAC])
hol-light-20190729/Multivariate/integration.ml:14643:    [`c = (a:real^M)$i`,CONJUNCT2; `c = (b:real^M)$i`,CONJUNCT1] THEN
hol-light-20190729/Multivariate/integration.ml:14644:  SUBGOAL_THEN `(a:real^M)$i < c /\ c < (b:real^M)$i` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/integration.ml-14645-   [ASM_REAL_ARITH_TAC; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-14895-  EXISTS_TAC `UNIONS(IMAGE SND (p:(real^M#(real^M->bool))->bool))` THEN
hol-light-20190729/Multivariate/integration.ml:14896:  EXISTS_TAC `(c:real^M)$i` THEN
hol-light-20190729/Multivariate/integration.ml-14897-  RULE_ASSUM_TAC(REWRITE_RULE[IN_INTERVAL]) THEN ASM_SIMP_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-14928-   [REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/integration.ml:14929:    ONCE_REWRITE_TAC[SET_RULE `x$i <= c <=> x IN {x:real^N | x$i <= c}`] THEN
hol-light-20190729/Multivariate/integration.ml-14930-    REWRITE_TAC[INTEGRABLE_RESTRICT_INTER] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-14987-    X_GEN_TAC `c:real` THEN
hol-light-20190729/Multivariate/integration.ml:14988:    ASM_CASES_TAC `(a:real^M)$i <= c /\ c <= (b:real^M)$i` THENL
hol-light-20190729/Multivariate/integration.ml-14989-     [REMOVE_THEN "*" MATCH_MP_TAC THEN ASM_REWRITE_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml:14990:    REMOVE_THEN "*" (MP_TAC o SPEC `(b:real^M)$i`) THEN
hol-light-20190729/Multivariate/integration.ml-14991-    ASM_SIMP_TAC[REAL_LT_IMP_LE; REAL_LE_REFL] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-15039-  MP_TAC(ISPECL
hol-light-20190729/Multivariate/integration.ml:15040:   [`\x. if x$i <= c then (h:real^M->real^N) x else vec 0`;
hol-light-20190729/Multivariate/integration.ml-15041-    `a:real^M`; `b:real^M`; `p:(real^M#(real^M->bool))->bool`]
##############################################
hol-light-20190729/Multivariate/integration.ml-15076-    CONJ_TAC THENL [ALL_TAC; REWRITE_TAC[INTEGRAL_0]] THEN
hol-light-20190729/Multivariate/integration.ml:15077:    MATCH_MP_TAC INTEGRAL_EQ THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-15078-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-15119-    REWRITE_TAC[VECTOR_SUB_EQ] THEN MATCH_MP_TAC INTEGRAL_EQ THEN
hol-light-20190729/Multivariate/integration.ml:15120:    ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-15121-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-15209-        ONCE_REWRITE_TAC[SET_RULE
hol-light-20190729/Multivariate/integration.ml:15210:         `x$i <= c <=> x IN {x:real^M | x$i <= c}`] THEN
hol-light-20190729/Multivariate/integration.ml-15211-        REWRITE_TAC[INTEGRAL_RESTRICT_INTER] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-15241-        ONCE_REWRITE_TAC[SET_RULE
hol-light-20190729/Multivariate/integration.ml:15242:         `x$i <= c <=> x IN {x:real^M | x$i <= c}`] THEN
hol-light-20190729/Multivariate/integration.ml-15243-        REWRITE_TAC[INTEGRAL_RESTRICT_INTER] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-15253-  SUBGOAL_THEN
hol-light-20190729/Multivariate/integration.ml:15254:   `!x:real^M k. (x,k) IN r ==> ~(k INTER {x:real^M | x$i = c} = {})`
hol-light-20190729/Multivariate/integration.ml-15255-  ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-15273-    CONJ_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:15274:    EXISTS_TAC `(lambda j. if j = i then c else (a:real^M)$j):real^M` THEN
hol-light-20190729/Multivariate/integration.ml-15275-    EXISTS_TAC `i:num` THEN ASM_SIMP_TAC[LAMBDA_BETA; IN_INTERVAL] THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-15295-    REPEAT CONJ_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/integration.ml:15296:    EXISTS_TAC `(lambda j. if j = i then c else (a:real^M)$j):real^M` THEN
hol-light-20190729/Multivariate/integration.ml-15297-    EXISTS_TAC `i:num` THEN ASM_SIMP_TAC[LAMBDA_BETA; IN_INTERVAL] THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-15323-    [MATCH_MP_TAC MONO_AND THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/integration.ml:15324:      [SIMP_TAC[real_ge; IN_INTER; IN_ELIM_THM] THEN ASM SET_TAC[REAL_LE_TOTAL];
hol-light-20190729/Multivariate/integration.ml-15325-       MATCH_MP_TAC MONO_AND THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-15360-    STRIP_TAC THEN REWRITE_TAC[IN_ELIM_THM] THEN EXISTS_TAC
hol-light-20190729/Multivariate/integration.ml:15361:     `(\x. if (--x)$i >= c then (h:real^M->real^N)(--x) else vec 0)` THEN
hol-light-20190729/Multivariate/integration.ml-15362-    REWRITE_TAC[VECTOR_NEG_NEG] THEN MAP_EVERY EXISTS_TAC
##############################################
hol-light-20190729/Multivariate/integration.ml-15387-  EXISTS_TAC `h:real^M->real^N` THEN
hol-light-20190729/Multivariate/integration.ml:15388:  EXISTS_TAC `\x. if x$i >= c then (h:real^M->real^N) x else vec 0` THEN
hol-light-20190729/Multivariate/integration.ml-15389-  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-15415-  EXISTS_TAC `h:real^M->real^N` THEN
hol-light-20190729/Multivariate/integration.ml:15416:  EXISTS_TAC `\x. if x$i <= c then (h:real^M->real^N) x else vec 0` THEN
hol-light-20190729/Multivariate/integration.ml-15417-  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-15485-    ASM_REWRITE_TAC[IN_NUMSEG; ARITH_RULE `1 <= SUC n`] THEN
hol-light-20190729/Multivariate/integration.ml:15486:    EXISTS_TAC `(c:real^M)$(SUC n)` THEN
hol-light-20190729/Multivariate/integration.ml-15487-    MATCH_MP_TAC(MESON[]
##############################################
hol-light-20190729/Multivariate/integration.ml-15491-    ASM_REWRITE_TAC[IN_NUMSEG; ARITH_RULE `1 <= SUC n`] THEN
hol-light-20190729/Multivariate/integration.ml:15492:    EXISTS_TAC `(d:real^M)$(SUC n)` THEN
hol-light-20190729/Multivariate/integration.ml-15493-    EXISTS_TAC
##############################################
hol-light-20190729/Multivariate/integration.ml-15567-    ASM_REWRITE_TAC[IN_NUMSEG; ARITH_RULE `1 <= SUC n`] THEN
hol-light-20190729/Multivariate/integration.ml:15568:    EXISTS_TAC `(c:real^M)$(SUC n)` THEN
hol-light-20190729/Multivariate/integration.ml-15569-    MATCH_MP_TAC(MESON[]
##############################################
hol-light-20190729/Multivariate/integration.ml-15573-    ASM_REWRITE_TAC[IN_NUMSEG; ARITH_RULE `1 <= SUC n`] THEN
hol-light-20190729/Multivariate/integration.ml:15574:    EXISTS_TAC `(d:real^M)$(SUC n)` THEN
hol-light-20190729/Multivariate/integration.ml-15575-    EXISTS_TAC
##############################################
hol-light-20190729/Multivariate/integration.ml-15709-  ASM_REWRITE_TAC[ENDS_IN_INTERVAL] THEN
hol-light-20190729/Multivariate/integration.ml:15710:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[dist]] THEN
hol-light-20190729/Multivariate/integration.ml-15711-  MATCH_MP_TAC MONO_EXISTS THEN REPEAT STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-15713-  ASM_SIMP_TAC[ENDS_IN_INTERVAL; VECTOR_SUB_REFL; NORM_0; REAL_LT_IMP_LE] THEN
hol-light-20190729/Multivariate/integration.ml:15714:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-15715-
##############################################
hol-light-20190729/Multivariate/integration.ml-15726-  ASM_REWRITE_TAC[ENDS_IN_INTERVAL] THEN
hol-light-20190729/Multivariate/integration.ml:15727:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[dist]] THEN
hol-light-20190729/Multivariate/integration.ml-15728-  MATCH_MP_TAC MONO_EXISTS THEN REPEAT STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-15730-  ASM_SIMP_TAC[ENDS_IN_INTERVAL; VECTOR_SUB_REFL; NORM_0; REAL_LT_IMP_LE] THEN
hol-light-20190729/Multivariate/integration.ml:15731:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/integration.ml-15732-
##############################################
hol-light-20190729/Multivariate/integration.ml-15838-        ASM_SIMP_TAC[CONTINUOUS_AT_WITHIN; IN_DIFF] THEN
hol-light-20190729/Multivariate/integration.ml:15839:        ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-15840-        ASM_MESON_TAC[HAS_VECTOR_DERIVATIVE_WITHIN_SUBSET];
##############################################
hol-light-20190729/Multivariate/integration.ml-16103-        REWRITE_TAC[SUM_CONST_NUMSEG; ADD_SUB; REAL_LE_INV_EQ; REAL_POS] THEN
hol-light-20190729/Multivariate/integration.ml:16104:        ASM_SIMP_TAC[REAL_MUL_RINV; REAL_OF_NUM_EQ] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/integration.ml-16105-      REWRITE_TAC[SKOLEM_THM; LEFT_IMP_EXISTS_THM; FORALL_AND_THM] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-16363-  X_GEN_TAC `i:num` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:16364:  MP_TAC(ISPECL [`\x. lift((f:real^1->real^N) x$i)`;
hol-light-20190729/Multivariate/integration.ml-16365-                 `g:real^1->real`; `a:real^1`; `b:real^1`]
##############################################
hol-light-20190729/Multivariate/integration.ml-16400-     `~(interval[a:real^1,b] = {}) /\ ~(interval[c:real^1,d] = {})`
hol-light-20190729/Multivariate/integration.ml:16401:    MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-16402-    REWRITE_TAC[INTERVAL_EQ_EMPTY_1; REAL_NOT_LT] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-17507-          REWRITE_TAC[frontier] THEN
hol-light-20190729/Multivariate/integration.ml:17508:          MP_TAC(ISPEC `s:real^1->bool` INTERIOR_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-17509-          TRANS_TAC LE_TRANS `CARD(frontier s:real^1->bool) * 2` THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-17561-  ANTS_TAC THENL
hol-light-20190729/Multivariate/integration.ml:17562:   [CONJ_TAC THENL [MATCH_MP_TAC DIVISION_DISJOINT_UNION; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/integration.ml-17563-    ASM_REWRITE_TAC[] THEN FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/integration.ml-17579-      CONJ_TAC THEN MATCH_MP_TAC SUBSET_INTERIOR THEN
hol-light-20190729/Multivariate/integration.ml:17580:      RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-17581-      REWRITE_TAC[INTERIOR_INTERVAL; INTERVAL_EQ_EMPTY_1] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-17650-      ASM_REWRITE_TAC[INSERT_SUBSET; EMPTY_SUBSET; ENDS_IN_INTERVAL] THEN
hol-light-20190729/Multivariate/integration.ml:17651:      RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-17652-      REWRITE_TAC[INSERT_SUBSET; EMPTY_SUBSET; IN_UNION]] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-17706-          REWRITE_TAC[GSYM CONJ_ASSOC] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/integration.ml:17707:           [RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-17708-            REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; IN_INTER] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-17795-     REWRITE_TAC[UNIONS_IMAGE] THEN
hol-light-20190729/Multivariate/integration.ml:17796:     RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/integration.ml-17797-  ASM_SIMP_TAC[FORALL_IN_IMAGE; IMP_CONJ; RIGHT_FORALL_IMP_THM] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-17848-      EXISTS_TAC
hol-light-20190729/Multivariate/integration.ml:17849:       `interior {x:real^1 | x$1 <= a} INTER interior {x | x$1 >= a}` THEN
hol-light-20190729/Multivariate/integration.ml-17850-      CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/integration.ml-18139-      TRANS_TAC SUBSET_TRANS `UNIONS d:real^1->bool` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/integration.ml:18140:       [MATCH_MP_TAC SUBSET_UNIONS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-18141-        ASM_MESON_TAC[division_of; SUBSET_REFL]]];
##############################################
hol-light-20190729/Multivariate/integration.ml-18545-  REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/integration.ml:18546:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-18547-  ASM_REWRITE_TAC[GSYM SUBSET] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-18782-   [MATCH_MP_TAC HAS_BOUNDED_VARIATION_COMPOSE_INCREASING THEN
hol-light-20190729/Multivariate/integration.ml:18783:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-18784-    FIRST_X_ASSUM(MATCH_MP_TAC o
##############################################
hol-light-20190729/Multivariate/integration.ml-18790-     [MATCH_MP_TAC VECTOR_VARIATION_COMPOSE_INCREASING THEN
hol-light-20190729/Multivariate/integration.ml:18791:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-18792-      FIRST_X_ASSUM(MATCH_MP_TAC o
##############################################
hol-light-20190729/Multivariate/integration.ml-18829-    REWRITE_TAC[IMAGE_o] THEN
hol-light-20190729/Multivariate/integration.ml:18830:    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-18831-    REWRITE_TAC[o_DEF; DROP_NEG; REAL_LE_NEG2] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-18893-        RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN
hol-light-20190729/Multivariate/integration.ml:18894:        REWRITE_TAC[REAL_LE_LT] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/integration.ml-18895-      MATCH_MP_TAC HAS_BOUNDED_VARIATION_COMPOSE_INCREASING_GEN THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-18914-               GSYM IMAGE_o; o_DEF; ETA_AX; CONTINUOUS_ON_NEG] THEN
hol-light-20190729/Multivariate/integration.ml:18915:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-18916-  GEN_REWRITE_TAC LAND_CONV [GSYM o_DEF] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-18931-                 `a:real^1`; `b:real^1`] SUBADDITIVE_CONTENT_DIVISION) THEN
hol-light-20190729/Multivariate/integration.ml:18932:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-18933-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] REAL_LE_TRANS) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-19158-  REPEAT(ANTS_TAC THENL
hol-light-20190729/Multivariate/integration.ml:19159:   [CONJ_TAC THENL [MATCH_MP_TAC DIVISION_OF_SUBSET; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/integration.ml-19160-    EXISTS_TAC `d:(real^1->bool)->bool` THEN
hol-light-20190729/Multivariate/integration.ml:19161:    CONJ_TAC THENL [ASM_MESON_TAC[DIVISION_OF_UNION_SELF]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/integration.ml-19162-    ONCE_REWRITE_TAC[TAUT `p ==> q ==> r <=> q ==> p ==> r`]]) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-19188-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/integration.ml:19189:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Multivariate/integration.ml-19190-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-19276-    SUBGOAL_THEN `interval[a:real^1,b] SUBSET s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/integration.ml:19277:     [RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-19278-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-19446-      MATCH_MP_TAC SUBSET_INTERIOR THEN
hol-light-20190729/Multivariate/integration.ml:19447:      RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/integration.ml-19448-  SIMP_TAC[division_of; SET_RULE `!x. x IN s ==> x SUBSET UNIONS s`] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-19719-  FIRST_X_ASSUM(MP_TAC o SPEC `i:num`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/integration.ml:19720:  SPEC_TAC(`\x. lift((f:real^1->real^N)x$i)`,`f:real^1->real^1`) THEN
hol-light-20190729/Multivariate/integration.ml-19721-  UNDISCH_TAC `(c:real^1) IN interval[a,b]` THEN POP_ASSUM_LIST(K ALL_TAC) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-19745-  FIRST_X_ASSUM(MP_TAC o SPEC `i:num`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/integration.ml:19746:  SPEC_TAC(`\x. lift((f:real^1->real^N)x$i)`,`f:real^1->real^1`) THEN
hol-light-20190729/Multivariate/integration.ml-19747-  UNDISCH_TAC `(c:real^1) IN interval[a,b]` THEN POP_ASSUM_LIST(K ALL_TAC) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-20651-   [REWRITE_TAC[OPEN_INTERIOR] THEN
hol-light-20190729/Multivariate/integration.ml:20652:    MP_TAC(ISPEC `s:real^1->bool` INTERIOR_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-20653-    POP_ASSUM_LIST(K ALL_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-20671-  MP_TAC THENL
hol-light-20190729/Multivariate/integration.ml:20672:   [ASM SET_TAC[]; POP_ASSUM_LIST(K ALL_TAC) THEN DISCH_TAC] THEN
hol-light-20190729/Multivariate/integration.ml-20673-  ASM_CASES_TAC `interval[a:real^1,b] = {}` THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-20834-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/integration.ml:20835:  SPEC_TAC(`\x. lift((f:real^1->real^N) x$i)`,`f:real^1->real^1`) THEN
hol-light-20190729/Multivariate/integration.ml-20836-  UNDISCH_TAC `is_interval(s:real^1->bool)` THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-20891-      REPEAT STRIP_TAC THEN MATCH_MP_TAC HAS_VECTOR_DERIVATIVE_AT_WITHIN THEN
hol-light-20190729/Multivariate/integration.ml:20892:      ASM_SIMP_TAC[GSYM VECTOR_DERIVATIVE_WORKS] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/integration.ml-20893-
##############################################
hol-light-20190729/Multivariate/integration.ml-21107-                      INTERVAL_SING] THEN
hol-light-20190729/Multivariate/integration.ml:21108:      ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-21109-      RULE_ASSUM_TAC(REWRITE_RULE[REAL_NOT_LE])] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-21295-      ASM_SIMP_TAC[GSYM REAL_LE_ANTISYM] THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/integration.ml:21296:      MATCH_MP_TAC VECTOR_VARIATION_MONOTONE THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/integration.ml-21297-  let lemma2 = prove
##############################################
hol-light-20190729/Multivariate/integration.ml-21357-          CONTINUOUS_ON_SUBSET))] THEN
hol-light-20190729/Multivariate/integration.ml:21358:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/integration.ml-21359-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-21368-          CONTINUOUS_ON_SUBSET))] THEN
hol-light-20190729/Multivariate/integration.ml:21369:      ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/integration.ml-21370-  MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/integration.ml-21576-        GEN_REWRITE_TAC (RAND_CONV o RAND_CONV) [SYM th]) THEN
hol-light-20190729/Multivariate/integration.ml:21577:      REWRITE_TAC[SIMPLE_IMAGE; GSYM IMAGE_o; o_DEF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-21578-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-21692-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/integration.ml:21693:  ANTS_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/integration.ml-21694-  RULE_ASSUM_TAC(REWRITE_RULE[DIMINDEX_1; FORALL_1; GSYM drop]) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-21719-    MATCH_MP_TAC REAL_SUP_LE_SUBSET THEN REWRITE_TAC[FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/integration.ml:21720:    CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[SUBSET; IN_ELIM_THM]] THEN
hol-light-20190729/Multivariate/integration.ml-21721-    CONJ_TAC THENL [ASM_MESON_TAC[REAL_LE_TRANS]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-21728-      `abs(drop x) <= norm x /\ norm x <= k ==> drop x <= k`) THEN
hol-light-20190729/Multivariate/integration.ml:21729:    REWRITE_TAC[drop; COMPONENT_LE_NORM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-21730-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-21812-     `?l. ((\n. (f:num->real^1->real^1) (r n) x) --> l) sequentially`
hol-light-20190729/Multivariate/integration.ml:21813:    MP_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/integration.ml-21814-    X_GEN_TAC `l:real^1` THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-21950-  MP_TAC(SPECL
hol-light-20190729/Multivariate/integration.ml:21951:   [`\n:num x. lift((f:num->real^1->real^N) (r n) x$(SUC k))`;
hol-light-20190729/Multivariate/integration.ml-21952-    `s:real^1->bool`; `c:real`; `d:real`]
##############################################
hol-light-20190729/Multivariate/integration.ml-22787-     [REMOVE_THEN "R" MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:22788:      EXISTS_TAC `t INTER {x:real^M | x$k <= c}`;
hol-light-20190729/Multivariate/integration.ml-22789-      REMOVE_THEN "L" MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/integration.ml:22790:      EXISTS_TAC `t INTER {x:real^M | x$k >= c}`] THEN
hol-light-20190729/Multivariate/integration.ml-22791-    ASM_SIMP_TAC[DIVISION_SPLIT] THEN
hol-light-20190729/Multivariate/integration.ml:22792:    (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/integration.ml-22793-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
##############################################
hol-light-20190729/Multivariate/integration.ml-22795-    MATCH_MP_TAC REAL_LE_TRANS THENL
hol-light-20190729/Multivariate/integration.ml:22796:     [EXISTS_TAC `sum (IMAGE (\l. l INTER {x:real^M | x$k <= c}) d) content`;
hol-light-20190729/Multivariate/integration.ml-22797-      EXISTS_TAC `sum (IMAGE (\l. l INTER {x:real^M | x$k >= c}) d)
##############################################
hol-light-20190729/Multivariate/integration.ml-22882-      MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/integration.ml:22883:      RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-22884-      DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-22919-         ==> interior t SUBSET interior s ==> interior t = {}`)) THEN
hol-light-20190729/Multivariate/integration.ml:22920:      MATCH_MP_TAC SUBSET_INTERIOR THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-22921-      DISCH_THEN(SUBST1_TAC o SYM) THEN REWRITE_TAC[GSYM SIMPLE_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-22945-       [MATCH_MP_TAC DIVISION_INTER THEN ASM_SIMP_TAC[DIVISION_OF_SELF];
hol-light-20190729/Multivariate/integration.ml:22946:        ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-22947-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-22958-        `interval[u,v] IN IMAGE SND (p:(real^M#(real^M->bool))->bool)`
hol-light-20190729/Multivariate/integration.ml:22959:      MP_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_IMAGE]] THEN
hol-light-20190729/Multivariate/integration.ml-22960-      REWRITE_TAC[LEFT_IMP_EXISTS_THM; FORALL_PAIR_THM] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-23008-           ==> interior t SUBSET interior s ==> interior t = {}`)) THEN
hol-light-20190729/Multivariate/integration.ml:23009:        MATCH_MP_TAC SUBSET_INTERIOR THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-23010-        DISCH_THEN(SUBST1_TAC o SYM) THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-23018-         [ASM_MESON_TAC[OPERATIVE_EMPTY; NEUTRAL_VECTOR_ADD];
hol-light-20190729/Multivariate/integration.ml:23019:          ASM SET_TAC[]]]]]);;
hol-light-20190729/Multivariate/integration.ml-23020-
##############################################
hol-light-20190729/Multivariate/integration.ml-23495-    SUBGOAL_THEN `interval[a:real^1,b] SUBSET s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/integration.ml:23496:     [RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-23497-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-23664-      MATCH_MP_TAC SUBSET_INTERIOR THEN
hol-light-20190729/Multivariate/integration.ml:23665:      RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/integration.ml-23666-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/integration.ml-24387-    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism; path_image]) THEN
hol-light-20190729/Multivariate/integration.ml:24388:    REWRITE_TAC[o_THM] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/integration.ml-24389-
##############################################
hol-light-20190729/Multivariate/integration.ml-24748-    MP_TAC THENL
hol-light-20190729/Multivariate/integration.ml:24749:     [RULE_ASSUM_TAC(REWRITE_RULE[path_image]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-24750-      REWRITE_TAC[SKOLEM_THM; LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-24871-    CONJ_TAC THEN TRANS_TAC SUBSET_TRANS `path_image (g:real^1->real^N)` THEN
hol-light-20190729/Multivariate/integration.ml:24872:    (CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/integration.ml-24873-    MATCH_MP_TAC PATH_IMAGE_SUBPATH_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/integration.ml-25325-        RULE_ASSUM_TAC(REWRITE_RULE[INTERVAL_SING; path_image]) THEN
hol-light-20190729/Multivariate/integration.ml:25326:        ASM SET_TAC[];
hol-light-20190729/Multivariate/integration.ml-25327-        ASM_SIMP_TAC[REAL_ENTIRE] THEN
##############################################
hol-light-20190729/Multivariate/lpspaces.ml-1097-    MP_TAC(ISPEC
hol-light-20190729/Multivariate/lpspaces.ml:1098:      `sup(IMAGE (\i. abs((f:real^M->real^N) x$i)) (1..dimindex(:N)))`
hol-light-20190729/Multivariate/lpspaces.ml-1099-      REAL_ARCH_SIMPLE) THEN
##############################################
hol-light-20190729/Multivariate/lpspaces.ml-1305-      `&0 < e ==> x * abs e / &2 / y = (x * e / &2) / y`] THEN
hol-light-20190729/Multivariate/lpspaces.ml:1306:    ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Multivariate/lpspaces.ml-1307-     [MEASURE_POS_LE; RPOW_POS_LE; REAL_LE_LDIV_EQ;
##############################################
hol-light-20190729/Multivariate/measure.ml-177-  MAP_EVERY ASM_CASES_TAC
hol-light-20190729/Multivariate/measure.ml:178:   [`(a:real^2)$1 = (b:real^2)$1`; `(a:real^2)$2 = (b:real^2)$2`] THEN
hol-light-20190729/Multivariate/measure.ml-179-  ASM_REWRITE_TAC[REAL_LT_REFL; REAL_MUL_LZERO; REAL_MUL_RZERO;
##############################################
hol-light-20190729/Multivariate/measure.ml-205-  MAP_EVERY ASM_CASES_TAC
hol-light-20190729/Multivariate/measure.ml:206:   [`(a:real^3)$1 = (b:real^3)$1`;
hol-light-20190729/Multivariate/measure.ml:207:    `(a:real^3)$2 = (b:real^3)$2`;
hol-light-20190729/Multivariate/measure.ml:208:    `(a:real^3)$3 = (b:real^3)$3`] THEN
hol-light-20190729/Multivariate/measure.ml-209-  ASM_REWRITE_TAC[REAL_LT_REFL; REAL_MUL_LZERO; REAL_MUL_RZERO;
##############################################
hol-light-20190729/Multivariate/measure.ml-235-  MAP_EVERY ASM_CASES_TAC
hol-light-20190729/Multivariate/measure.ml:236:   [`(a:real^4)$1 = (b:real^4)$1`;
hol-light-20190729/Multivariate/measure.ml:237:    `(a:real^4)$2 = (b:real^4)$2`;
hol-light-20190729/Multivariate/measure.ml:238:    `(a:real^4)$3 = (b:real^4)$3`;
hol-light-20190729/Multivariate/measure.ml:239:    `(a:real^4)$4 = (b:real^4)$4`] THEN
hol-light-20190729/Multivariate/measure.ml-240-  ASM_REWRITE_TAC[REAL_LT_REFL; REAL_MUL_LZERO; REAL_MUL_RZERO;
##############################################
hol-light-20190729/Multivariate/measure.ml-291-  REPEAT(COND_CASES_TAC THEN REWRITE_TAC[VECTOR_ADD_LID; VECTOR_ADD_RID]) THEN
hol-light-20190729/Multivariate/measure.ml:292:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-293-
##############################################
hol-light-20190729/Multivariate/measure.ml-439-  REWRITE_TAC[VECTOR_SUB_REFL; VECTOR_SUB_RZERO] THEN
hol-light-20190729/Multivariate/measure.ml:440:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-441-
##############################################
hol-light-20190729/Multivariate/measure.ml-869-         ASM_REWRITE_TAC[DROP_VEC; REAL_POS; REAL_LE_REFL]) THEN
hol-light-20190729/Multivariate/measure.ml:870:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-871-
##############################################
hol-light-20190729/Multivariate/measure.ml-897-    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MEASURE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:898:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-899-    DISCH_TAC THEN MATCH_MP_TAC(REAL_ARITH
##############################################
hol-light-20190729/Multivariate/measure.ml-975-    DISCH_THEN(MP_TAC o
hol-light-20190729/Multivariate/measure.ml:976:      ISPEC `(\y. lambda i. y$k / (c:real^N)$k):real^N->real^1` o
hol-light-20190729/Multivariate/measure.ml-977-      MATCH_MP(REWRITE_RULE[IMP_CONJ] INTEGRABLE_LINEAR)) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-981-    DISCH_THEN(MP_TAC o
hol-light-20190729/Multivariate/measure.ml:982:      ISPEC `(\y. lambda i. (c:real^N)$i * y$i):real^1->real^N` o
hol-light-20190729/Multivariate/measure.ml-983-      MATCH_MP(REWRITE_RULE[IMP_CONJ] INTEGRABLE_LINEAR)) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-1068-    MATCH_MP_TAC NEGLIGIBLE_SUBSET] THEN
hol-light-20190729/Multivariate/measure.ml:1069:  EXISTS_TAC `t:real^M->bool` THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-1070-
##############################################
hol-light-20190729/Multivariate/measure.ml-1138-  ASM_REWRITE_TAC[IMAGE_AFFINITY_INTERVAL; REAL_INV_INV] THEN
hol-light-20190729/Multivariate/measure.ml:1139:  SIMP_TAC[COND_ID] THEN COND_CASES_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-1140-  REWRITE_TAC[VECTOR_ADD_LDISTRIB; VECTOR_MUL_ASSOC;
##############################################
hol-light-20190729/Multivariate/measure.ml-1176-    MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:1177:    EXISTS_TAC `{x:real^N | x$k = &0}` THEN
hol-light-20190729/Multivariate/measure.ml-1178-    ASM_SIMP_TAC[NEGLIGIBLE_STANDARD_HYPERPLANE; SUBSET; FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-1457-   [REPEAT GEN_TAC THEN REPEAT(COND_CASES_TAC THEN ASM_REWRITE_TAC[]) THEN
hol-light-20190729/Multivariate/measure.ml:1458:    REWRITE_TAC[DROP_VEC; REAL_POS; REAL_LE_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-1459-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN COND_CASES_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-1467-                  TRANSITIVE_STEPWISE_LE_EQ o concl) THEN
hol-light-20190729/Multivariate/measure.ml:1468:      ASM_REWRITE_TAC[SUBSET_TRANS; SUBSET_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-1469-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE RAND_CONV [IN_UNIONS]) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-1561-      ASM_SIMP_TAC[FINITE_IMAGE; FINITE_NUMSEG; FORALL_IN_IMAGE];
hol-light-20190729/Multivariate/measure.ml:1562:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/measure.ml-1563-
##############################################
hol-light-20190729/Multivariate/measure.ml-1591-     [GEN_TAC THEN MATCH_MP_TAC MEASURE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:1592:      ASM_REWRITE_TAC[MEASURABLE_INTERVAL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-1593-      GEN_TAC THEN REWRITE_TAC[NUMSEG_CLAUSES; LE_0] THEN SET_TAC[]]]);;
##############################################
hol-light-20190729/Multivariate/measure.ml-1691-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] REAL_LE_TRANS) THEN
hol-light-20190729/Multivariate/measure.ml:1692:  MATCH_MP_TAC MEASURE_UNIONS_LE THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-1693-
##############################################
hol-light-20190729/Multivariate/measure.ml-1704-    REWRITE_TAC[SIMPLE_IMAGE; FORALL_IN_IMAGE; EXISTS_IN_IMAGE] THEN
hol-light-20190729/Multivariate/measure.ml:1705:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-1706-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-1729-  ONCE_REWRITE_TAC[GSYM SIMPLE_IMAGE] THEN
hol-light-20190729/Multivariate/measure.ml:1730:  MATCH_MP_TAC MEASURABLE_COUNTABLE_INTERS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-1731-
##############################################
hol-light-20190729/Multivariate/measure.ml-1835-                      d IN D}` THEN
hol-light-20190729/Multivariate/measure.ml:1836:  CONJ_TAC THENL [ALL_TAC; REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-1837-  MATCH_MP_TAC NEGLIGIBLE_COUNTABLE_UNIONS_GEN THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-1861-    SUBGOAL_THEN `!n. UNIONS(f(SUC n):(real^N->bool)->bool) SUBSET UNIONS(f n)`
hol-light-20190729/Multivariate/measure.ml:1862:    ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-1863-    SUBGOAL_THEN `s = INTERS { UNIONS(f n) | n IN (:num) }:real^N->bool`
##############################################
hol-light-20190729/Multivariate/measure.ml-1867-      REWRITE_TAC[SUBSET; IN_INTERS; FORALL_IN_IMAGE; IN_UNIV] THEN
hol-light-20190729/Multivariate/measure.ml:1868:      REWRITE_TAC[IN_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-1869-      MATCH_MP_TAC MEASURABLE_COUNTABLE_INTERS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-1925-    ONCE_REWRITE_TAC[SWAP_EXISTS_THM] THEN
hol-light-20190729/Multivariate/measure.ml:1926:    EXISTS_TAC `(lambda i. floor(&2 pow n * (x:real^N)$i)):real^N` THEN
hol-light-20190729/Multivariate/measure.ml-1927-    ONCE_REWRITE_TAC[TAUT `(a /\ b /\ c) /\ d <=> b /\ a /\ c /\ d`] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-1975-    REWRITE_TAC[UNWIND_THM2] THEN
hol-light-20190729/Multivariate/measure.ml:1976:    EXISTS_TAC `(lambda i. floor((u:real^N)$i / &2)):real^N` THEN
hol-light-20190729/Multivariate/measure.ml-1977-    ASM_SIMP_TAC[VECTOR_MUL_COMPONENT; LAMBDA_BETA; FLOOR] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-1986-    SIMP_TAC[REAL_LE_LDIV_EQ; REAL_LT_RDIV_EQ; REAL_LT_POW2] THEN
hol-light-20190729/Multivariate/measure.ml:1987:    MP_TAC(SPEC `(u:real^N)$k / &2` FLOOR) THEN
hol-light-20190729/Multivariate/measure.ml-1988-    REWRITE_TAC[REAL_ARITH `u / &2 < floor(u / &2) + &1 <=>
##############################################
hol-light-20190729/Multivariate/measure.ml-2261-     [ASM_SIMP_TAC[REAL_LE_DIV; REAL_POS; MEASURE_POS_LE];
hol-light-20190729/Multivariate/measure.ml:2262:      MATCH_MP_TAC MONO_EXISTS THEN STRIP_TAC THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-2263-    CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-2269-      FIRST_X_ASSUM(MP_TAC o SPEC `p:num`) THEN
hol-light-20190729/Multivariate/measure.ml:2270:      ANTS_TAC THENL [ASM_ARITH_TAC; ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-2271-      W(MP_TAC o PART_MATCH (lhand o rand)
##############################################
hol-light-20190729/Multivariate/measure.ml-2280-        FIRST_X_ASSUM(MP_TAC o SPEC `p:num`) THEN
hol-light-20190729/Multivariate/measure.ml:2281:        (ANTS_TAC THENL [ASM_ARITH_TAC; ASM SET_TAC[]]);
hol-light-20190729/Multivariate/measure.ml-2282-        DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-2298-        ANTS_TAC THENL [ASM_ARITH_TAC; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:2299:        REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-2300-        DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-2329-    ANTS_TAC THENL [ASM_ARITH_TAC; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:2330:    REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-2331-    REWRITE_TAC[UNIONS_INSERT] THEN MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-2333-    REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_IMAGE; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/measure.ml:2334:    X_GEN_TAC `m:num` THEN DISCH_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-2335-    REWRITE_TAC[SUBSET_DIFF];
##############################################
hol-light-20190729/Multivariate/measure.ml-2338-    SIMP_TAC[FINITE_IMAGE; FINITE_NUMSEG_LT; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/measure.ml:2339:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-2340-    W(MP_TAC o PART_MATCH(lhand o rand) MEASURE_DIFF_SUBSET o lhand o snd) THEN
hol-light-20190729/Multivariate/measure.ml-2341-    ASM_REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_IMAGE] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:2342:     [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-2343-      MATCH_MP_TAC MEASURABLE_UNIONS THEN
hol-light-20190729/Multivariate/measure.ml-2344-      SIMP_TAC[FINITE_IMAGE; FINITE_NUMSEG_LT; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/measure.ml:2345:      ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-2346-      DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-2351-     [MATCH_MP_TAC WLOG_LT THEN RULE_ASSUM_TAC(REWRITE_RULE[UNIONS_GSPEC]) THEN
hol-light-20190729/Multivariate/measure.ml:2352:      ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-2353-      DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-2358-    CONV_TAC REAL_FIELD;
hol-light-20190729/Multivariate/measure.ml:2359:    ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/measure.ml-2360-
##############################################
hol-light-20190729/Multivariate/measure.ml-2452-    DISCH_THEN MATCH_MP_TAC THEN SIMP_TAC[REAL_LE_DIV; REAL_POS] THEN
hol-light-20190729/Multivariate/measure.ml:2453:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-2454-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [IN_NUMSEG]) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-2536-    ONCE_REWRITE_TAC[VECTOR_ARITH `x:real^N = --a + y <=> y = a + x`] THEN
hol-light-20190729/Multivariate/measure.ml:2537:    REWRITE_TAC[UNWIND_THM2] THEN ASM MESON_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-2538-
##############################################
hol-light-20190729/Multivariate/measure.ml-2872-    SUBGOAL_THEN
hol-light-20190729/Multivariate/measure.ml:2873:     `(\x. lift((f:real^M->real^N) x$i)) = (\x. g x - (g x - lift(f x$i)))`
hol-light-20190729/Multivariate/measure.ml-2874-    SUBST1_TAC THENL [ABS_TAC THEN CONV_TAC VECTOR_ARITH; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-2880-             then g x - lift((f:real^M->real^N) x $i) else vec 0`;
hol-light-20190729/Multivariate/measure.ml:2881:      `\x. g x - lift((f:real^M->real^N) x$i)`;
hol-light-20190729/Multivariate/measure.ml-2882-      `interval(a:real^M,b)`] MONOTONE_CONVERGENCE_INCREASING) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-2899-    SUBGOAL_THEN
hol-light-20190729/Multivariate/measure.ml:2900:     `(\x. lift((f:real^M->real^N) x$i)) = (\x. (lift(f x$i) - g x) + g x)`
hol-light-20190729/Multivariate/measure.ml-2901-    SUBST1_TAC THENL [ABS_TAC THEN CONV_TAC VECTOR_ARITH; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-2907-             then lift((f:real^M->real^N) x $i) - g x else vec 0`;
hol-light-20190729/Multivariate/measure.ml:2908:      `\x. lift((f:real^M->real^N) x$i) - g x`;
hol-light-20190729/Multivariate/measure.ml-2909-      `interval(a:real^M,b)`] MONOTONE_CONVERGENCE_INCREASING) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-2924-     ASM_SIMP_TAC[DROP_SUB; DROP_VEC; REAL_SUB_LE; LIFT_DROP] THEN
hol-light-20190729/Multivariate/measure.ml:2925:     ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-2926-     X_GEN_TAC `x:real^M` THEN REWRITE_TAC[IN_INTERVAL] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3154-        ASM_REWRITE_TAC[dist] THEN MATCH_MP_TAC REAL_LE_TRANS THEN
hol-light-20190729/Multivariate/measure.ml:3155:        EXISTS_TAC `sum(1..dimindex(:N)) (\i. abs((x - y:real^N)$i))` THEN
hol-light-20190729/Multivariate/measure.ml-3156-        REWRITE_TAC[NORM_LE_L1] THEN MATCH_MP_TAC SUM_BOUND_GEN THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3198-      SUBGOAL_THEN `(x:real^N) IN interval[a,b]` MP_TAC THENL
hol-light-20190729/Multivariate/measure.ml:3199:       [ASM SET_TAC[]; ALL_TAC] THEN REWRITE_TAC[IN_INTERVAL] THEN
hol-light-20190729/Multivariate/measure.ml-3200-      DISCH_THEN(MP_TAC o SPEC `i:num`) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3202-      DISJ_CASES_TAC(MATCH_MP (REAL_ARITH `x <= y ==> x = y \/ x < y`)
hol-light-20190729/Multivariate/measure.ml:3203:       (ASSUME `(x:real^N)$i <= (b:real^N)$i`))
hol-light-20190729/Multivariate/measure.ml-3204-      THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-3314-      EXISTS_TAC `{l:real^N->bool | l IN d /\ k SUBSET l}` THEN
hol-light-20190729/Multivariate/measure.ml:3315:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml:3316:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-3317-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3324-    ASM_REWRITE_TAC[] THEN SET_TAC[];
hol-light-20190729/Multivariate/measure.ml:3325:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-3326-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3342-  DISCH_THEN(MP_TAC o SPEC `\l:real^N->bool. l IN d /\ x IN l`) THEN
hol-light-20190729/Multivariate/measure.ml:3343:  REWRITE_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:3344:  MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-3345-
##############################################
hol-light-20190729/Multivariate/measure.ml-3416-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [division_of] o
hol-light-20190729/Multivariate/measure.ml:3417:      SPEC `n:num`) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-3418-    REWRITE_TAC[lemma] THEN MATCH_MP_TAC SUBSET_ANTISYM THEN CONJ_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3425-         SPEC `n:num`) THEN
hol-light-20190729/Multivariate/measure.ml:3426:      DISCH_THEN(MP_TAC o last o CONJUNCTS) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-3427-      MAP_EVERY X_GEN_TAC [`n:num`; `y:real^N`] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3461-  DISCH_TAC THEN
hol-light-20190729/Multivariate/measure.ml:3462:  MP_TAC(ISPECL [`\i. &2 * (b:real^N)$i`; `dimindex(:N)`] lemma) THEN
hol-light-20190729/Multivariate/measure.ml-3463-  REWRITE_TAC[continuous_at; DIST_LIFT; FORALL_LIFT; DIST_0; DROP_VEC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3544-    MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] HAS_INTEGRAL_EQ) THEN
hol-light-20190729/Multivariate/measure.ml:3545:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-3546-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3592-    (CHOOSE_THEN (LABEL_TAC "+")) THENL
hol-light-20190729/Multivariate/measure.ml:3593:     [REWRITE_TAC[GSYM SKOLEM_THM] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-3594-    REMOVE_THEN "*" (MP_TAC o SPEC
##############################################
hol-light-20190729/Multivariate/measure.ml-3601-      ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:3602:      CONJ_TAC THENL [ASM SET_TAC[]; ASM_MESON_TAC[SUBSET]];
hol-light-20190729/Multivariate/measure.ml-3603-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3607-    SUBGOAL_THEN `D division_of (UNIONS D:real^N->bool)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:3608:     [REWRITE_TAC[division_of] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-3609-    FIRST_ASSUM(ASSUME_TAC o MATCH_MP MEASURABLE_ELEMENTARY) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3647-    STRIP_TAC THEN MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:3648:    EXISTS_TAC `k INTER l:real^N->bool` THEN ASM_SIMP_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-3649-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3790-    ASM_SIMP_TAC[FORALL_IN_GSPEC; IN_UNIV; IN_UNIONS] THEN
hol-light-20190729/Multivariate/measure.ml:3791:    REWRITE_TAC[EXISTS_IN_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-3792-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3908-    ASM_REWRITE_TAC[IN_UNIONS; EXISTS_IN_IMAGE; IN_UNIV] THEN
hol-light-20190729/Multivariate/measure.ml:3909:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-3910-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-3995-    ASM_SIMP_TAC[CLOSED_DIFF; CLOSED_INTERVAL; BOUNDED_DIFF; BOUNDED_INTERVAL];
hol-light-20190729/Multivariate/measure.ml:3996:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-3997-    ASM_SIMP_TAC[MEASURABLE_DIFF; MEASURABLE_INTERVAL];
##############################################
hol-light-20190729/Multivariate/measure.ml-4131-    ASM_SIMP_TAC[MEASURABLE_COUNTABLE_INTERS] THEN SET_TAC[];
hol-light-20190729/Multivariate/measure.ml:4132:    FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-4133-
##############################################
hol-light-20190729/Multivariate/measure.ml-4228-          CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:4229:           [ASM_SIMP_TAC[IMAGE_CLAUSES; NEGLIGIBLE_EMPTY]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-4230-          MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-4270-          EXISTS_TAC `interval[a:real^N,b]` THEN
hol-light-20190729/Multivariate/measure.ml:4271:          REWRITE_TAC[BOUNDED_INTERVAL] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-4272-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-4278-          EXISTS_TAC `interval[a:real^N,b]` THEN
hol-light-20190729/Multivariate/measure.ml:4279:          REWRITE_TAC[BOUNDED_INTERVAL] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-4280-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-4308-      ASM_SIMP_TAC[IMAGE_SUBSET] THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/measure.ml:4309:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml-4310-       [ASM_MESON_TAC[MEASURABLE_DIFF; measurable]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-4388-    (IMAGE f s) INTER interval[a,b]`
hol-light-20190729/Multivariate/measure.ml:4389:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml-4390-   [ASM_SIMP_TAC[BOUNDED_INTER; BOUNDED_LINEAR_IMAGE; BOUNDED_INTERVAL] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-4484-    REMOVE_THEN "swap_cols" (MP_TAC o SPECL
hol-light-20190729/Multivariate/measure.ml:4485:     [`(lambda i j. (A:real^N^N)$i$swap(k,l) j):real^N^N`;
hol-light-20190729/Multivariate/measure.ml-4486-      `k:num`; `l:num`]) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-4562-                else row i (A:real^N^N)):real^N^N`;
hol-light-20190729/Multivariate/measure.ml:4563:    `l:num`; `k:num`; `(A:real^N^N)$l$k / A$k$k`]) THEN
hol-light-20190729/Multivariate/measure.ml-4564-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-4711-   [DISCH_TAC THEN X_GEN_TAC `A:real^N^N` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/measure.ml:4712:    FIRST_X_ASSUM(MP_TAC o SPEC `\i. (A:real^N^N)$i$i`) THEN
hol-light-20190729/Multivariate/measure.ml-4713-    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-4741-    MATCH_MP_TAC EQ_TRANS THEN EXISTS_TAC
hol-light-20190729/Multivariate/measure.ml:4742:     `sum {m,n} (\j. if n = j \/ j = m then (x:real^N)$j else &0)` THEN
hol-light-20190729/Multivariate/measure.ml-4743-    CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-4810-  SUBGOAL_THEN
hol-light-20190729/Multivariate/measure.ml:4811:   `linear((\x. lambda i. if i = m then x$m + x$n else x$i):real^N->real^N)`
hol-light-20190729/Multivariate/measure.ml-4812-  ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-4853-    MATCH_MP_TAC NEGLIGIBLE_SUBSET THENL
hol-light-20190729/Multivariate/measure.ml:4854:     [EXISTS_TAC `{x:real^N | (basis m - basis n) dot x = (a:real^N)$m}`;
hol-light-20190729/Multivariate/measure.ml:4855:      EXISTS_TAC `{x:real^N | (basis m - basis n) dot x = (b:real^N)$m}`;
hol-light-20190729/Multivariate/measure.ml:4856:      EXISTS_TAC `{x:real^N | (basis m - basis n) dot x = (b:real^N)$m}`]
hol-light-20190729/Multivariate/measure.ml-4857-    THEN (CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-4912-      MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:4913:      EXISTS_TAC `{x:real^N | (basis m - basis n) dot x = (a:real^N)$m}`
hol-light-20190729/Multivariate/measure.ml-4914-      THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-5039-    ASM_SIMP_TAC[GSYM VECTOR_SUB_COMPONENT; IN_DIMINDEX_SWAP] THEN
hol-light-20190729/Multivariate/measure.ml:5040:    MP_TAC(ISPECL [`\i. (b - a:real^N)$i`; `swap(m:num,n)`; `1..dimindex(:N)`]
hol-light-20190729/Multivariate/measure.ml-5041-                (GSYM PRODUCT_PERMUTE)) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-5295-    FIRST_X_ASSUM(MP_TAC o SPECL
hol-light-20190729/Multivariate/measure.ml:5296:     [`(lambda i. if i = 1 then &0 else (x:real^N)$i):real^N`;
hol-light-20190729/Multivariate/measure.ml:5297:      `(x:real^N)$1 / l:real`]) THEN
hol-light-20190729/Multivariate/measure.ml-5298-    ASM_SIMP_TAC[REAL_LE_DIV; REAL_LT_IMP_LE; DIMINDEX_GE_1; LE_REFL] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-5317-    SUBGOAL_THEN
hol-light-20190729/Multivariate/measure.ml:5318:     `!i. 1 <= i /\ i <= dimindex(:N) ==> &0 < (v:real^N)$i`
hol-light-20190729/Multivariate/measure.ml-5319-    ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-5327-                         if p then &0 <= x else &0 <= y`] THEN
hol-light-20190729/Multivariate/measure.ml:5328:    ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Multivariate/measure.ml-5329-     [REAL_LE_DIV; REAL_LE_ADD; REAL_POS; MEASURE_POS_LE; REAL_LE_MUL;
##############################################
hol-light-20190729/Multivariate/measure.ml-5542-    MATCH_MP_TAC REAL_LE_TRANS THENL
hol-light-20190729/Multivariate/measure.ml:5543:     [EXISTS_TAC `(x:real^N)$(p 1)`;
hol-light-20190729/Multivariate/measure.ml:5544:      EXISTS_TAC `(x:real^N)$(p(dimindex(:N)))`] THEN
hol-light-20190729/Multivariate/measure.ml-5545-    ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-5552-  SIMP_TAC[VEC_COMPONENT] THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/measure.ml:5553:  MP_TAC(ISPEC `\i j. ~((x:real^N)$j <= x$i)` TOPOLOGICAL_SORT) THEN
hol-light-20190729/Multivariate/measure.ml-5554-  REWRITE_TAC[REAL_NOT_LE; REAL_NOT_LT] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-5739-    CONJ_TAC THENL [ASM_MESON_TAC[NOT_BOUNDED_UNIV]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:5740:    CONJ_TAC THENL [ASM_MESON_TAC[NOT_MEASURABLE_UNIV]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-5741-    X_GEN_TAC `t:real^N->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-5760-    REWRITE_TAC[NORM_ARITH `~(norm(y:real^N) < e) = e <= dist(x,x + y)`] THEN
hol-light-20190729/Multivariate/measure.ml:5761:    MATCH_MP_TAC SETDIST_LE_DIST THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-5762-
##############################################
hol-light-20190729/Multivariate/measure.ml-5823-    CONJ_TAC THENL [ASM_MESON_TAC[NOT_BOUNDED_UNIV]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:5824:    CONJ_TAC THENL [ASM_MESON_TAC[NOT_MEASURABLE_UNIV]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-5825-
##############################################
hol-light-20190729/Multivariate/measure.ml-5848-      REWRITE_TAC[REAL_NOT_LT] THEN ONCE_REWRITE_TAC[DIST_SYM] THEN
hol-light-20190729/Multivariate/measure.ml:5849:      MATCH_MP_TAC SETDIST_LE_DIST THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/measure.ml-5850-
##############################################
hol-light-20190729/Multivariate/measure.ml-5914-  ASM_REWRITE_TAC[GSYM OPEN_CLOSED] THEN
hol-light-20190729/Multivariate/measure.ml:5915:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-5916-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `d:real` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-5935-    ASM_REWRITE_TAC[UNION_SUBSET] THEN
hol-light-20190729/Multivariate/measure.ml:5936:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-5937-    REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-5943-    REWRITE_TAC[VECTOR_ARITH `v:real^N = x - y <=> x = v + y`] THEN
hol-light-20190729/Multivariate/measure.ml:5944:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-5945-
##############################################
hol-light-20190729/Multivariate/measure.ml-6028-    `{c:real^N->bool | c IN (D DELETE d) /\ c INTER d = {}}`) THEN
hol-light-20190729/Multivariate/measure.ml:6029:  ANTS_TAC THENL [MATCH_MP_TAC CARD_PSUBSET THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-6030-  ASM_SIMP_TAC[FINITE_DELETE; FINITE_RESTRICT; IN_ELIM_THM; real_ge] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-6033-  EXISTS_TAC `(d:real^N->bool) INSERT D'` THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:6034:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-6035-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [pairwise]) THEN
hol-light-20190729/Multivariate/measure.ml:6036:    REWRITE_TAC[pairwise; IN_INSERT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-6037-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-6074-      REWRITE_TAC[DE_MORGAN_THM; REAL_NOT_LT] THEN
hol-light-20190729/Multivariate/measure.ml:6075:      REWRITE_TAC[REAL_ARITH `a$k <= b$k <=> &0 <= b$k - a$k`] THEN
hol-light-20190729/Multivariate/measure.ml-6076-      ASM_SIMP_TAC[IN_NUMSEG] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-6096-   [ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:6097:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-6098-    MATCH_MP_TAC MEASURABLE_UNIONS THEN
hol-light-20190729/Multivariate/measure.ml:6099:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-6100-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/measure.ml-6127-                 IN_ELIM_THM; IN_DELETE; FINITE_DELETE; FINITE_RESTRICT] THEN
hol-light-20190729/Multivariate/measure.ml:6128:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-6129-
##############################################
hol-light-20190729/Multivariate/measure.ml-6248-      DISCH_TAC THEN MATCH_MP_TAC REAL_LET_TRANS THEN
hol-light-20190729/Multivariate/measure.ml:6249:      EXISTS_TAC `sum(1..dimindex(:M)) (\i. abs((x - y:real^M)$i))` THEN
hol-light-20190729/Multivariate/measure.ml-6250-      REWRITE_TAC[NORM_LE_L1] THEN MATCH_MP_TAC SUM_BOUND_LT_GEN THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-6292-    REWRITE_TAC[MEASURABLE_INTERVAL] THEN
hol-light-20190729/Multivariate/measure.ml:6293:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-6294-    MATCH_MP_TAC MEASURABLE_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-6316-           ALL_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml:6317:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-6318-        MATCH_MP_TAC MONO_EXISTS THEN SIMP_TAC[] THEN REAL_ARITH_TAC]];
##############################################
hol-light-20190729/Multivariate/measure.ml-6678-      DISCH_TAC THEN MATCH_MP_TAC REAL_LET_TRANS THEN
hol-light-20190729/Multivariate/measure.ml:6679:      EXISTS_TAC `sum(1..dimindex(:M)) (\i. abs((x - y:real^M)$i))` THEN
hol-light-20190729/Multivariate/measure.ml-6680-      REWRITE_TAC[NORM_LE_L1] THEN MATCH_MP_TAC SUM_BOUND_LT_GEN THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-6720-    REWRITE_TAC[MEASURABLE_INTERVAL] THEN
hol-light-20190729/Multivariate/measure.ml:6721:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-6722-    MATCH_MP_TAC MEASURABLE_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-6744-           ALL_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml:6745:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-6746-        MATCH_MP_TAC MONO_EXISTS THEN SIMP_TAC[] THEN REAL_ARITH_TAC]];
##############################################
hol-light-20190729/Multivariate/measure.ml-7400-       [`(:real^M)`;
hol-light-20190729/Multivariate/measure.ml:7401:        `(lambda i. (b:real^N)$i - (b$i - (a:real^N)$i) / (&n + &2)):real^N`]
hol-light-20190729/Multivariate/measure.ml-7402-         CONTINUOUS_ON_CONST) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-7407-       [`(:real^M)`;
hol-light-20190729/Multivariate/measure.ml:7408:        `(lambda i. (a:real^N)$i + ((b:real^N)$i - a$i) / (&n + &2)):real^N`]
hol-light-20190729/Multivariate/measure.ml-7409-         CONTINUOUS_ON_CONST) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-7452-      SUBST1_TAC(VECTOR_ARITH
hol-light-20190729/Multivariate/measure.ml:7453:       `vec 0:real^1 = ((b:real^N)$j + --((a:real^N)$j)) % vec 0`) THEN
hol-light-20190729/Multivariate/measure.ml-7454-      MATCH_MP_TAC LIM_CMUL THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-7637-  let lemma = REWRITE_RULE[]
hol-light-20190729/Multivariate/measure.ml:7638:   (ISPEC `(\x y. lambda i. max (x$i) (y$i)):real^N->real^N->real^N`
hol-light-20190729/Multivariate/measure.ml-7639-          MEASURABLE_ON_COMBINE) in
##############################################
hol-light-20190729/Multivariate/measure.ml-7652-  MATCH_MP_TAC(REAL_ARITH
hol-light-20190729/Multivariate/measure.ml:7653:   `norm(x) < e /\ abs(x$i) <= norm x ==> abs(x$i) < e`) THEN
hol-light-20190729/Multivariate/measure.ml-7654-  ASM_SIMP_TAC[COMPONENT_LE_NORM; GSYM FSTCART_SUB; GSYM SNDCART_SUB] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-7718-     [REPEAT STRIP_TAC THEN FIRST_ASSUM(MP_TAC o
hol-light-20190729/Multivariate/measure.ml:7719:       ISPEC `\x:real^N. lift(x$i)` o MATCH_MP
hol-light-20190729/Multivariate/measure.ml-7720-       (REWRITE_RULE[IMP_CONJ] MEASURABLE_ON_COMPOSE_CONTINUOUS)) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-7754-    DISCH_THEN(MP_TAC o SPEC `i:num`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:7755:    DISCH_THEN(MP_TAC o SPEC `inv((c:real^N)$i)` o
hol-light-20190729/Multivariate/measure.ml-7756-      MATCH_MP MEASURABLE_ON_CMUL) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-7761-    DISCH_TAC THEN X_GEN_TAC `i:num` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/measure.ml:7762:    FIRST_X_ASSUM(MP_TAC o SPEC `(c:real^N)$i` o
hol-light-20190729/Multivariate/measure.ml-7763-      MATCH_MP MEASURABLE_ON_CMUL) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-7819-  MAP_EVERY ASM_CASES_TAC [`(x:real^M) IN s`; `(x:real^M) IN t`] THEN
hol-light-20190729/Multivariate/measure.ml:7820:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-7821-
##############################################
hol-light-20190729/Multivariate/measure.ml-7836-  EXISTS_TAC `{}:real^M->bool` THEN
hol-light-20190729/Multivariate/measure.ml:7837:  REWRITE_TAC[NEGLIGIBLE_EMPTY] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-7838-
##############################################
hol-light-20190729/Multivariate/measure.ml-7859-  MATCH_MP_TAC EQ_IMP THEN AP_THM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/measure.ml:7860:  REWRITE_TAC[FUN_EQ_THM] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-7861-
##############################################
hol-light-20190729/Multivariate/measure.ml-7926-    MATCH_MP_TAC REAL_LE_TRANS THEN
hol-light-20190729/Multivariate/measure.ml:7927:    EXISTS_TAC `sum(1..dimindex(:N)) (\i. abs((y:real^N)$i))` THEN
hol-light-20190729/Multivariate/measure.ml-7928-    REWRITE_TAC[NORM_LE_L1] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-7982-       [ASM_MESON_TAC[CONTINUOUS_ON_EQ_CONTINUOUS_AT; OPEN_UNIV; IN_UNIV];
hol-light-20190729/Multivariate/measure.ml:7983:        FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/measure.ml:7984:    REWRITE_TAC[o_THM] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-7985-
##############################################
hol-light-20190729/Multivariate/measure.ml-8259-    MATCH_MP_TAC(TAUT `p /\ (p ==> q) ==> p /\ q`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:8260:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-8261-    DISCH_THEN(fun th -> REPEAT STRIP_TAC THEN SUBST1_TAC(SYM th)) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-8341-      REWRITE_TAC[EXISTS_IN_IMAGE; IN_NUMSEG; LE_0] THEN ASM_MESON_TAC[];
hol-light-20190729/Multivariate/measure.ml:8342:      MATCH_MP_TAC ALWAYS_EVENTUALLY THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/measure.ml-8343-
##############################################
hol-light-20190729/Multivariate/measure.ml-8395-      DISCH_THEN(MP_TAC o SPEC `x:real^M`) THEN
hol-light-20190729/Multivariate/measure.ml:8396:      ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_INTER; dist]] THEN
hol-light-20190729/Multivariate/measure.ml-8397-      DISCH_THEN(X_CHOOSE_THEN `r:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-8485-      MATCH_MP_TAC REAL_LE_TRANS THEN
hol-light-20190729/Multivariate/measure.ml:8486:      EXISTS_TAC `((v:(real^M->bool)->real^M) d - u d)$j` THEN
hol-light-20190729/Multivariate/measure.ml-8487-      REWRITE_TAC[VECTOR_SUB_COMPONENT] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-8581-          GEN_TAC THEN DISCH_TAC THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:8582:           [ASM SET_TAC[]; ASM_MESON_TAC[SUBSET; INTERIOR_EMPTY]];
hol-light-20190729/Multivariate/measure.ml-8583-          DISCH_THEN SUBST1_TAC THEN MATCH_MP_TAC REAL_EQ_IMP_LE THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-8657-   [MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:8658:    EXISTS_TAC `{x:real^(1,M)finite_sum | x$1 = &0}` THEN
hol-light-20190729/Multivariate/measure.ml-8659-    SIMP_TAC[NEGLIGIBLE_STANDARD_HYPERPLANE; DIMINDEX_GE_1; LE_REFL] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-8725-     [MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:8726:      EXISTS_TAC `{y:real^N | y$(dimindex(:N)) = &0}` THEN
hol-light-20190729/Multivariate/measure.ml-8727-      SIMP_TAC[NEGLIGIBLE_STANDARD_HYPERPLANE; LE_REFL; DIMINDEX_GE_1] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-8995-      EXISTS_TAC `UNIONS (IMAGE (g:(real^M->bool)->(real^N->bool)) D)` THEN
hol-light-20190729/Multivariate/measure.ml:8996:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-8997-      MATCH_MP_TAC MEASURE_COUNTABLE_UNIONS_LE_STRONG_GEN THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-9019-        GEN_TAC THEN DISCH_TAC THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:9020:         [ASM SET_TAC[]; ASM_MESON_TAC[SUBSET; INTERIOR_EMPTY]];
hol-light-20190729/Multivariate/measure.ml-9021-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-9028-       [MATCH_MP_TAC MEASURE_SUBSET THEN REWRITE_TAC[MEASURABLE_INTERVAL] THEN
hol-light-20190729/Multivariate/measure.ml:9029:        CONJ_TAC THENL [MATCH_MP_TAC MEASURABLE_UNIONS; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-9030-        ASM_MESON_TAC[SUBSET; MEASURABLE_INTERVAL];
##############################################
hol-light-20190729/Multivariate/measure.ml-9162-    SUBST1_TAC THENL
hol-light-20190729/Multivariate/measure.ml:9163:     [REWRITE_TAC[SIMPLE_IMAGE; GSYM IMAGE_o; o_DEF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-9164-      MATCH_MP_TAC NEGLIGIBLE_LOCALLY_LIPSCHITZ_IMAGE_LOWDIM THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-9188-    ASM_SIMP_TAC[HAS_BOUNDED_VARIATION_ON_CLOSURE; IS_INTERVAL_CONVEX_1] THEN
hol-light-20190729/Multivariate/measure.ml:9189:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-9190-    MATCH_MP_TAC IMAGE_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-9227-    EXISTS_TAC `closure s:real^1->bool` THEN
hol-light-20190729/Multivariate/measure.ml:9228:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-9229-    MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-9642-      FIRST_X_ASSUM(MP_TAC o SPEC `(h:real^N->real^M) y`) THEN
hol-light-20190729/Multivariate/measure.ml:9643:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-9644-      MATCH_MP_TAC EQ_IMP THEN AP_THM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/measure.ml-9645-      ASM_REWRITE_TAC[o_THM] THEN
hol-light-20190729/Multivariate/measure.ml:9646:      AP_THM_TAC THEN AP_THM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/measure.ml-9647-  REPEAT GEN_TAC THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-9653-   [SUBGOAL_THEN `IMAGE (f:real^M->real^N) UNIV = UNIV` MP_TAC THENL
hol-light-20190729/Multivariate/measure.ml:9654:     [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-9655-    REWRITE_TAC[EXTENSION; IN_UNIV; IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-9700-   [AP_THM_TAC THEN AP_TERM_TAC THEN ABS_TAC THEN
hol-light-20190729/Multivariate/measure.ml:9701:    AP_THM_TAC THEN AP_THM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml:9702:    AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-9703-
##############################################
hol-light-20190729/Multivariate/measure.ml-9863-    MP_TAC(GEN `d:real` (ISPECL
hol-light-20190729/Multivariate/measure.ml:9864:     [`\x. lift ((f:real^M->real^N) x$k)`;
hol-light-20190729/Multivariate/measure.ml-9865-       `(\x. lift a + (lambda i. d)):real^M->real^1`;
##############################################
hol-light-20190729/Multivariate/measure.ml-9885-    X_GEN_TAC `e:real` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/measure.ml:9886:    ASM_CASES_TAC `a < (f:real^M->real^N) x $k` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:9887:    ASM_REWRITE_TAC[REAL_ARITH `(x:real^N)$k <= a <=> ~(a < x$k)`] THEN
hol-light-20190729/Multivariate/measure.ml-9888-    ASM_REWRITE_TAC[REAL_MUL_RZERO; DROP_VEC; REAL_SUB_REFL; REAL_ABS_NUM] THEN
hol-light-20190729/Multivariate/measure.ml:9889:    MP_TAC(SPEC `((f:real^M->real^N) x)$k - a` REAL_ARCH_INV) THEN
hol-light-20190729/Multivariate/measure.ml-9890-    ASM_REWRITE_TAC[REAL_SUB_LT] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/measure.ml-9891-    X_GEN_TAC `N:num` THEN STRIP_TAC THEN X_GEN_TAC `n:num` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/measure.ml:9892:    SUBGOAL_THEN `a + inv(&n + &1) < ((f:real^M->real^N) x)$k` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml-9893-     [FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REAL_ARITH
##############################################
hol-light-20190729/Multivariate/measure.ml-10016-    REPEAT STRIP_TAC THEN ONCE_REWRITE_TAC[SET_RULE
hol-light-20190729/Multivariate/measure.ml:10017:      `{x:real^M | (f x)$k < a} = {x | f x IN {y:real^N | y$k < a}}`] THEN
hol-light-20190729/Multivariate/measure.ml-10018-    FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-10109-      SPEC_TAC(`(f:real^M->real^N) x`,`y:real^N`) THEN GEN_TAC THEN
hol-light-20190729/Multivariate/measure.ml:10110:      ASM_CASES_TAC `(y:real^N)$k <= a` THENL [ALL_TAC; ASM_MESON_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-10111-      ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml-10112-      MP_TAC(SPEC
hol-light-20190729/Multivariate/measure.ml:10113:       `sup {(y:real^N)$j | j IN 1..dimindex(:N)}` REAL_ARCH_SIMPLE) THEN
hol-light-20190729/Multivariate/measure.ml-10114-      MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-10156-      SPEC_TAC(`(f:real^M->real^N) x`,`y:real^N`) THEN GEN_TAC THEN
hol-light-20190729/Multivariate/measure.ml:10157:      ASM_CASES_TAC `(y:real^N)$k < a` THENL [ALL_TAC; ASM_MESON_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-10158-      ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml-10159-      MP_TAC(SPEC
hol-light-20190729/Multivariate/measure.ml:10160:       `&1 + sup {(y:real^N)$j | j IN 1..dimindex(:N)}` REAL_ARCH_SIMPLE) THEN
hol-light-20190729/Multivariate/measure.ml-10161-      MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-10476-  ASM_REWRITE_TAC[VECTOR_MUL_COMPONENT; LIFT_CMUL] THEN
hol-light-20190729/Multivariate/measure.ml:10477:  ABBREV_TAC `h x = lift((f:real^M->real^N) x$i)` THEN
hol-light-20190729/Multivariate/measure.ml-10478-  POP_ASSUM_LIST(K ALL_TAC) THEN REWRITE_TAC[ETA_AX] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-10503-     MP_TAC(SPEC
hol-light-20190729/Multivariate/measure.ml:10504:      `{x:real^M | (if x IN s then f x else vec 0:real^1)$1 > &0}` th) THEN
hol-light-20190729/Multivariate/measure.ml-10505-     MP_TAC(SPEC
hol-light-20190729/Multivariate/measure.ml:10506:       `{x:real^M | (if x IN s then f x else vec 0:real^1)$1 < &0}` th)) THEN
hol-light-20190729/Multivariate/measure.ml-10507-    FIRST_ASSUM(ASSUME_TAC o GEN_REWRITE_RULE I [GSYM MEASURABLE_ON_UNIV]) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-10570-         ASM_REWRITE_TAC[DROP_VEC; NORM_REAL; GSYM drop]) THEN
hol-light-20190729/Multivariate/measure.ml:10571:  REWRITE_TAC[REAL_ABS_NUM; REAL_LE_REFL; REAL_POS] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-10572-
##############################################
hol-light-20190729/Multivariate/measure.ml-10594-let MEASURABLE_INTER_HALFSPACE_LE = prove
hol-light-20190729/Multivariate/measure.ml:10595: (`!s a i. measurable s ==> measurable(s INTER {x:real^N | x$i <= a})`,
hol-light-20190729/Multivariate/measure.ml-10596-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/measure.ml:10597:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !z:real^N. z$i = z$k`
hol-light-20190729/Multivariate/measure.ml-10598-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-10603-let MEASURABLE_INTER_HALFSPACE_GE = prove
hol-light-20190729/Multivariate/measure.ml:10604: (`!s a i. measurable s ==> measurable(s INTER {x:real^N | x$i >= a})`,
hol-light-20190729/Multivariate/measure.ml-10605-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/measure.ml:10606:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !z:real^N. z$i = z$k`
hol-light-20190729/Multivariate/measure.ml-10607-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-10719-  REPEAT STRIP_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/measure.ml:10720:   [ASM SET_TAC[]; ASM_REAL_ARITH_TAC]);;
hol-light-20190729/Multivariate/measure.ml-10721-
##############################################
hol-light-20190729/Multivariate/measure.ml-10749-    MP_TAC(SPEC `norm(x:real^N)` REAL_ARCH_SIMPLE) THEN
hol-light-20190729/Multivariate/measure.ml:10750:    REWRITE_TAC[GSYM IN_CBALL_0] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-10751-    X_GEN_TAC `t:real^N->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-10758-    ASM_SIMP_TAC[MEASURABLE_MEASURABLE_INTER_LEBESGUE_MEASURABLE] THEN
hol-light-20190729/Multivariate/measure.ml:10759:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-10760-
##############################################
hol-light-20190729/Multivariate/measure.ml-10892-    DISCH_THEN MATCH_MP_TAC THEN RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN
hol-light-20190729/Multivariate/measure.ml:10893:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-10894-    REWRITE_TAC[HAS_MEASURE_MEASURABLE_MEASURE] THEN STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-10904-  SUBGOAL_THEN `x IN interval[a:real^N,b]` MP_TAC THENL
hol-light-20190729/Multivariate/measure.ml:10905:   [ASM SET_TAC[]; REWRITE_TAC[IN_INTERVAL]] THEN
hol-light-20190729/Multivariate/measure.ml-10906-  MATCH_MP_TAC MONO_FORALL THEN X_GEN_TAC `i:num` THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-10912-  SUBGOAL_THEN `e IN cball(z:real^N,&1)` MP_TAC THENL
hol-light-20190729/Multivariate/measure.ml:10913:   [ASM SET_TAC[]; REWRITE_TAC[IN_CBALL]] THEN
hol-light-20190729/Multivariate/measure.ml-10914-  REWRITE_TAC[ONCE_REWRITE_RULE[DIST_SYM] dist] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-11061-       `!a i j. i < a - f /\ j <= i /\ a - j <= t /\ t <= a
hol-light-20190729/Multivariate/measure.ml:11062:                ==> &0 < t - f`) THEN EXISTS_TAC `(a:real^N)$k`;
hol-light-20190729/Multivariate/measure.ml-11063-      MATCH_MP_TAC(REAL_ARITH
hol-light-20190729/Multivariate/measure.ml-11064-       `!a i j. i < f - a /\ j <= i /\ a <= t /\ t <= a + j
hol-light-20190729/Multivariate/measure.ml:11065:                ==> &0 < f - t`) THEN EXISTS_TAC `(b:real^N)$k`] THEN
hol-light-20190729/Multivariate/measure.ml-11066-    MAP_EVERY EXISTS_TAC [`inv(&n)`; `inv(&n + &1)`] THEN ASM_SIMP_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-11193-     `!a i j. i < f - a /\ j <= i /\ a <= t /\ t <= a + j
hol-light-20190729/Multivariate/measure.ml:11194:              ==> &0 < f - t`) THEN EXISTS_TAC `(a:real^N)$k` THEN
hol-light-20190729/Multivariate/measure.ml-11195-    MAP_EVERY EXISTS_TAC [`inv(&n)`; `inv(&n + &1)`] THEN ASM_SIMP_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-11262-    SUBGOAL_THEN
hol-light-20190729/Multivariate/measure.ml:11263:     `&0 < inf { (a - y:real^N)$i | i IN 1..dimindex(:N)}`
hol-light-20190729/Multivariate/measure.ml-11264-    MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-11596-                 MEASURABLE_INTER] THEN
hol-light-20190729/Multivariate/measure.ml:11597:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml-11598-    X_GEN_TAC `v:real^N->bool` THEN DISCH_THEN(ANTE_RES_THEN MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-11644-  REWRITE_TAC[suslin_operation; IN_INTER; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/measure.ml:11645:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-11646-  REWRITE_TAC[UNIONS_GSPEC; INTERS_GSPEC; IN_ELIM_THM; IN_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-11659-     [ASM_REWRITE_TAC[]; EXPAND_TAC "h" THEN REWRITE_TAC[UNIONS_GSPEC]] THEN
hol-light-20190729/Multivariate/measure.ml:11660:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-11661-    EXISTS_TAC `(\n. EL n (l(SUC n))):num->num` THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-11664-     `list_of_seq (\n. EL n (l (SUC n))) n :num list = l n`
hol-light-20190729/Multivariate/measure.ml:11665:    SUBST1_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-11666-    ASM_SIMP_TAC[LIST_EQ; LENGTH_LIST_OF_SEQ; EL_LIST_OF_SEQ] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-11903-                           NORM_0; DROP_VEC; NORM_POS_LE]) THEN
hol-light-20190729/Multivariate/measure.ml:11904:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-11905-    X_GEN_TAC `x:real^M` THEN COND_CASES_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-12061-        ANTS_TAC THENL [SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/measure.ml:12062:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-12063-      MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-12132-  MAP_EVERY EXISTS_TAC [`(:real^N) DIFF c`; `t:real^N->bool`] THEN
hol-light-20190729/Multivariate/measure.ml:12133:  ASM_REWRITE_TAC[GDELTA_COMPLEMENT] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-12134-
##############################################
hol-light-20190729/Multivariate/measure.ml-12180-   [ALL_TAC;
hol-light-20190729/Multivariate/measure.ml:12181:    REWRITE_TAC[UNIONS_IMAGE; SUBSET; IN_ELIM_THM] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-12182-  MATCH_MP_TAC NEGLIGIBLE_COUNTABLE_UNIONS_GEN THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-12185-  DISCH_THEN(K ALL_TAC) THEN MATCH_MP_TAC lemma THEN
hol-light-20190729/Multivariate/measure.ml:12186:  CONJ_TAC THENL [FIRST_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-12187-  EXPAND_TAC "v" THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-12256-  SUBGOAL_THEN `(k:real^M->bool) SUBSET s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:12257:   [ASM SET_TAC[]; ASM_SIMP_TAC[NEGLIGIBLE_IMP_LEBESGUE_MEASURABLE]] THEN
hol-light-20190729/Multivariate/measure.ml-12258-  MATCH_MP_TAC LEBESGUE_MEASURABLE_COUNTABLE_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-12263-  FIRST_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/measure.ml:12264:    CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-12265-
##############################################
hol-light-20190729/Multivariate/measure.ml-12330-    REWRITE_TAC[IN_UNIV; DIM_EQ_0] THEN
hol-light-20190729/Multivariate/measure.ml:12331:    FIRST_ASSUM(MP_TAC o MATCH_MP LINEAR_INJECTIVE_0) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-12332-
##############################################
hol-light-20190729/Multivariate/measure.ml-12349-  SUBGOAL_THEN `s = IMAGE (g:real^N->real^M) (IMAGE f s)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/measure.ml:12350:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-12351-    ASM_MESON_TAC[LEBESGUE_MEASURABLE_LINEAR_IMAGE_GEN; LE_REFL]]);;
##############################################
hol-light-20190729/Multivariate/measure.ml-12391-                 BOREL_IMP_LEBESGUE_MEASURABLE] THEN
hol-light-20190729/Multivariate/measure.ml:12392:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-12393-    DISCH_THEN(CONJUNCTS_THEN2 (LABEL_TAC "B") (LABEL_TAC "N")) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-12403-     [REMOVE_THEN "B" MATCH_MP_TAC; REMOVE_THEN "N" MATCH_MP_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:12404:    ASM_SIMP_TAC[FSIGMA_IMP_BOREL] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-12405-
##############################################
hol-light-20190729/Multivariate/measure.ml-12435-      CONJ_TAC THENL [SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:12436:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-12437-      ASM_REWRITE_TAC[SET_RULE `s DIFF (t UNION u) = s DIFF t DIFF u`];
##############################################
hol-light-20190729/Multivariate/measure.ml-12472-    ASM_SIMP_TAC[CONTINUOUS_ON_CONST] THEN
hol-light-20190729/Multivariate/measure.ml:12473:    CONJ_TAC THENL [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-12474-    REWRITE_TAC[SKOLEM_THM] THEN MATCH_MP_TAC MONO_EXISTS] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-12567-  ASM_REWRITE_TAC[SUBSET_RESTRICT] THEN MATCH_MP_TAC EQ_IMP THEN
hol-light-20190729/Multivariate/measure.ml:12568:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-12569-
##############################################
hol-light-20190729/Multivariate/measure.ml-12596-    MATCH_MP_TAC EQ_IMP THEN
hol-light-20190729/Multivariate/measure.ml:12597:    AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-12598-    ASM_SIMP_TAC[MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_OPEN]] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-12604-  ASM_REWRITE_TAC[SUBSET_RESTRICT] THEN MATCH_MP_TAC EQ_IMP THEN
hol-light-20190729/Multivariate/measure.ml:12605:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-12606-
##############################################
hol-light-20190729/Multivariate/measure.ml-12768-    SUBGOAL_THEN `!x. ~(x IN k) ==> (h:real^M->real^N) x = f x` MP_TAC THENL
hol-light-20190729/Multivariate/measure.ml:12769:     [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-12770-    X_GEN_TAC `x:real^M` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-12772-    EXISTS_TAC `\n. (g:num->real^M->real^N) n x` THEN
hol-light-20190729/Multivariate/measure.ml:12773:    ASM_SIMP_TAC[TRIVIAL_LIMIT_SEQUENTIALLY] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-12774-
##############################################
hol-light-20190729/Multivariate/measure.ml-12843-        STRIP_TAC THEN REWRITE_TAC[dist] THEN MATCH_MP_TAC REAL_LE_TRANS THEN
hol-light-20190729/Multivariate/measure.ml:12844:        EXISTS_TAC `sum(1..dimindex(:M)) (\i. abs((x - y:real^M)$i))` THEN
hol-light-20190729/Multivariate/measure.ml-12845-        REWRITE_TAC[NORM_LE_L1] THEN MATCH_MP_TAC SUM_BOUND_GEN THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-12877-                             DROP_VEC; NORM_POS_LE; REAL_LE_REFL]) THEN
hol-light-20190729/Multivariate/measure.ml:12878:      ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-12879-
##############################################
hol-light-20190729/Multivariate/measure.ml-13236-  MAP_EVERY EXISTS_TAC
hol-light-20190729/Multivariate/measure.ml:13237:   [`\x. lift((f:real^M->real^N) x$i)`; `s:real^M->bool`; `a:real^M`] THEN
hol-light-20190729/Multivariate/measure.ml-13238-  ASM_SIMP_TAC[LIFT_DROP] THEN
hol-light-20190729/Multivariate/measure.ml:13239:  ASM_CASES_TAC `(c:real^N)$i <= (f:real^M->real^N) a$i` THENL
hol-light-20190729/Multivariate/measure.ml-13240-   [DISJ2_TAC; DISJ1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13318-      REPEAT(MATCH_MP_TAC MONO_FORALL THEN GEN_TAC) THEN
hol-light-20190729/Multivariate/measure.ml:13319:      MATCH_MP_TAC MONO_IMP THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-13320-      REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13411-    EXISTS_TAC `(n:A) INSERT c` THEN
hol-light-20190729/Multivariate/measure.ml:13412:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-13413-    ASM_REWRITE_TAC[PAIRWISE_INSERT; IMAGE_CLAUSES; UNIONS_INSERT] THEN
hol-light-20190729/Multivariate/measure.ml:13414:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-13415-
##############################################
hol-light-20190729/Multivariate/measure.ml-13463-    EXISTS_TAC `(n:A) INSERT c` THEN
hol-light-20190729/Multivariate/measure.ml:13464:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-13465-    ASM_REWRITE_TAC[PAIRWISE_INSERT; IMAGE_CLAUSES; UNIONS_INSERT] THEN
hol-light-20190729/Multivariate/measure.ml:13466:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-13467-
##############################################
hol-light-20190729/Multivariate/measure.ml-13511-    REWRITE_TAC[FORALL_IN_UNION] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:13512:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-13513-      X_GEN_TAC `i:A` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/measure.ml-13514-      TRANS_TAC REAL_LE_TRANS `B / &2 pow n` THEN
hol-light-20190729/Multivariate/measure.ml:13515:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-13516-      REWRITE_TAC[real_div] THEN MATCH_MP_TAC REAL_LE_LMUL THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13518-       [SUBGOAL_THEN `&0 < r(i:A) /\ r i <= B` MP_TAC THENL
hol-light-20190729/Multivariate/measure.ml:13519:         [ASM SET_TAC[]; REAL_ARITH_TAC];
hol-light-20190729/Multivariate/measure.ml-13520-        REWRITE_TAC[REAL_INV_POW] THEN MATCH_MP_TAC REAL_POW_MONO_INV THEN
hol-light-20190729/Multivariate/measure.ml-13521-        CONV_TAC REAL_RAT_REDUCE_CONV THEN ARITH_TAC];
hol-light-20190729/Multivariate/measure.ml:13522:      REPEAT STRIP_TAC THEN MATCH_MP_TAC REAL_LT_IMP_LE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml:13523:      ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-13524-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13526-    ASM_CASES_TAC `B / &2 pow n < r(i:A)` THENL
hol-light-20190729/Multivariate/measure.ml:13527:     [ASM SET_TAC[]; RULE_ASSUM_TAC(REWRITE_RULE[REAL_NOT_LT])] THEN
hol-light-20190729/Multivariate/measure.ml-13528-    MATCH_MP_TAC(MESON[]
##############################################
hol-light-20190729/Multivariate/measure.ml-13540-       [MATCH_MP_TAC(REAL_ARITH `&0 < j /\ a <= j ==> a < &2 * j`) THEN
hol-light-20190729/Multivariate/measure.ml:13541:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-13542-        REWRITE_TAC[REAL_ARITH `a / b < &2 * c <=> a / &2 / b < c`] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13544-        REWRITE_TAC[GSYM real_div; GSYM(CONJUNCT2 real_pow)] THEN
hol-light-20190729/Multivariate/measure.ml:13545:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-13546-      ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:13547:    ASM_CASES_TAC `(i:A) IN d` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-13548-    FIRST_X_ASSUM(MP_TAC o SPEC `(i:A) INSERT e`) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13554-    SUBGOAL_THEN `~(cball((a:A->real^N) i,r i) = {})` MP_TAC THENL
hol-light-20190729/Multivariate/measure.ml:13555:     [ASM_SIMP_TAC[CBALL_EQ_EMPTY; REAL_NOT_LT]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml:13556:    MATCH_MP_TAC REAL_LT_IMP_LE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-13557-    REWRITE_TAC[FORALL_AND_THM; LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13562-    REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:13563:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-13564-      SPEC_TAC(`UNIONS (IMAGE (c:num->A->bool) (:num))`,`q:A->bool`) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13576-        MATCH_MP_TAC(REAL_ARITH `&0 < x ==> ~(x < &0)`) THEN
hol-light-20190729/Multivariate/measure.ml:13577:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-13578-        DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13581-      RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN
hol-light-20190729/Multivariate/measure.ml:13582:      REWRITE_TAC[GSYM REAL_NOT_LT; pairwise] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-13583-      MATCH_MP_TAC PAIRWISE_CHAIN_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13587-       `(!x y. P x y ==> Q x y) ==> (!x y. P x y ==> Q x y \/ R x y)`) THEN
hol-light-20190729/Multivariate/measure.ml:13588:      MATCH_MP_TAC TRANSITIVE_STEPWISE_LE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-13589-      X_GEN_TAC `i:A` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13597-      CONV_TAC REAL_RAT_REDUCE_CONV THEN
hol-light-20190729/Multivariate/measure.ml:13598:      REWRITE_TAC[UNIONS_IMAGE; IN_UNIV; IN_ELIM_THM] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/measure.ml-13599-
##############################################
hol-light-20190729/Multivariate/measure.ml-13616-   `UNIONS(IMAGE(\i. ball((a:A->real^N) i,&5 * r i)) c)` THEN
hol-light-20190729/Multivariate/measure.ml:13617:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-13618-  MATCH_MP_TAC UNIONS_MONO_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13642-     `UNIONS(IMAGE(\i. cball((a:A->real^N) i,r i)) k)` THEN
hol-light-20190729/Multivariate/measure.ml:13643:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-13644-    MATCH_MP_TAC UNIONS_MONO_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13668-     [`k':A->bool`; `a:A->real^N`; `r:A->real`; `s:real^N->bool`]) THEN
hol-light-20190729/Multivariate/measure.ml:13669:    ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml:13670:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-13671-    FIRST_X_ASSUM(SUBST1_TAC o SYM) THEN REWRITE_TAC[IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13721-      MATCH_MP_TAC REAL_LE_LMUL THEN REWRITE_TAC[REAL_POS] THEN
hol-light-20190729/Multivariate/measure.ml:13722:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-13723-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13736-                 FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/measure.ml:13737:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-13738-    REWRITE_TAC[EXISTS_FINITE_SUBSET_IMAGE]] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13749-    DISCH_THEN(MP_TAC o SPEC `x:real^N`) THEN
hol-light-20190729/Multivariate/measure.ml:13750:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-13751-    REWRITE_TAC[SET_RULE `s SUBSET UNIV DIFF t <=> DISJOINT s t`] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13758-    REWRITE_TAC[UNIONS_IMAGE; IN_ELIM_THM] THEN EXISTS_TAC `j:A` THEN
hol-light-20190729/Multivariate/measure.ml:13759:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml:13760:    REWRITE_TAC[IN_DIFF] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-13761-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-13798-    ASM_REWRITE_TAC[MEASURABLE_CBALL] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:13799:     [RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-13800-      DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13807-    ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:13808:     [RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-13809-      DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-13812-                 MEASURABLE_CBALL; FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/measure.ml:13813:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-13814-
##############################################
hol-light-20190729/Multivariate/measure.ml-13835-    REPEAT STRIP_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/measure.ml:13836:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-13837-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/measure.ml-13866-  EXISTS_TAC `UNIONS (IMAGE (u:real^N->real^N->bool) s)` THEN
hol-light-20190729/Multivariate/measure.ml:13867:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-13868-  MP_TAC(ISPECL[`IMAGE (u:real^N->real^N->bool) s`; `s:real^N->bool`]
##############################################
hol-light-20190729/Multivariate/measure.ml-13874-  MATCH_MP_TAC NEGLIGIBLE_COUNTABLE_UNIONS_GEN THEN
hol-light-20190729/Multivariate/measure.ml:13875:  ASM_SIMP_TAC[COUNTABLE_IMAGE; FORALL_IN_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-13876-
##############################################
hol-light-20190729/Multivariate/measure.ml-13896-  SUBGOAL_THEN `s = UNIONS (IMAGE (u:real^N->real^N->bool) s)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/measure.ml:13897:   [RULE_ASSUM_TAC(REWRITE_RULE[open_in]) THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-13898-  MP_TAC(ISPECL[`IMAGE (u:real^N->real^N->bool) s`; `s:real^N->bool`]
##############################################
hol-light-20190729/Multivariate/measure.ml-13904-  MATCH_MP_TAC LEBESGUE_MEASURABLE_COUNTABLE_UNIONS THEN
hol-light-20190729/Multivariate/measure.ml:13905:  ASM_SIMP_TAC[COUNTABLE_IMAGE; FORALL_IN_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-13906-
##############################################
hol-light-20190729/Multivariate/measure.ml-13995-              UNIONS(IMAGE u c)` THEN
hol-light-20190729/Multivariate/measure.ml:13996:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-13997-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-14014-    MEASURE_UNIONS_LE_IMAGE o lhand o snd) THEN
hol-light-20190729/Multivariate/measure.ml:14015:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-14016-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] REAL_LE_TRANS) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-14021-   [MATCH_MP_TAC SUM_LE THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:14022:    REPEAT STRIP_TAC THEN MATCH_MP_TAC REAL_LT_IMP_LE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-14023-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-14033-     [REWRITE_TAC[FORALL_PAIR_THM; MEASURABLE_BALL]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:14034:    RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-14035-    MATCH_MP_TAC MEASURE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml-14036-    REWRITE_TAC[MEASURABLE_BALL; UNIONS_SUBSET; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/measure.ml:14037:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-14038-    MATCH_MP_TAC MEASURABLE_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-14246-        DISCH_THEN(MP_TAC o MATCH_MP (MESON[COMPONENT_LE_NORM; REAL_LE_TRANS]
hol-light-20190729/Multivariate/measure.ml:14247:         `norm(x:real^N) <= a ==> !i. abs(x$i) <= a`)) THEN
hol-light-20190729/Multivariate/measure.ml-14248-        DISCH_THEN(MP_TAC o SPEC `i:num`) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-14846-                 (e / &2 * min d r) / &(dimindex(:M)) pow dimindex(:M) }` THEN
hol-light-20190729/Multivariate/measure.ml:14847:  SUBGOAL_THEN `!b a:real^M. open {x | abs((x - a)$1) < b}`
hol-light-20190729/Multivariate/measure.ml-14848-  ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-15205-                 (e / &2 * min d r) / &(dimindex(:M)) pow dimindex(:M) }` THEN
hol-light-20190729/Multivariate/measure.ml:15206:    SUBGOAL_THEN `!b a:real^M. open {x | abs((x - a)$1) < b}`
hol-light-20190729/Multivariate/measure.ml-15207-    ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-15365-    TRANS_TAC REAL_LE_TRANS
hol-light-20190729/Multivariate/measure.ml:15366:      `norm(e / &4 % (y - x:real^M)$n % basis m:real^N)` THEN
hol-light-20190729/Multivariate/measure.ml-15367-    CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-15387-  MATCH_MP_TAC(ISPEC `sequentially` LIM_DROP_UBOUND) THEN
hol-light-20190729/Multivariate/measure.ml:15388:  EXISTS_TAC `\i. lift((A:num->real^M^N) i$m$n)` THEN
hol-light-20190729/Multivariate/measure.ml-15389-  ASM_SIMP_TAC[TRIVIAL_LIMIT_SEQUENTIALLY; EVENTUALLY_SEQUENTIALLY;
##############################################
hol-light-20190729/Multivariate/measure.ml-15729-    ASM_SIMP_TAC[FORALL_IN_GSPEC; COMPACT_UNION] THEN SET_TAC[];
hol-light-20190729/Multivariate/measure.ml:15730:    REWRITE_TAC[INTERS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-15731-    REWRITE_TAC[DIFF_INTERS; SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-15758-       (MP_TAC o SPEC `t:real^N->bool`) THEN
hol-light-20190729/Multivariate/measure.ml:15759:      ASM_REWRITE_TAC[LEFT_IMP_EXISTS_THM; UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-15760-      EXISTS_TAC `(:real^M) DIFF k'(n:num)` THEN
hol-light-20190729/Multivariate/measure.ml:15761:      ASM_SIMP_TAC[GSYM closed; COMPACT_IMP_CLOSED] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/measure.ml-15762-
##############################################
hol-light-20190729/Multivariate/measure.ml-15807-      REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:15808:       [REWRITE_TAC[INTERS_GSPEC; FORALL_IN_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-15809-        MATCH_MP_TAC MEASURABLE_DIFF THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-15811-        ASM_SIMP_TAC[FORALL_IN_GSPEC; MEASURABLE_COMPACT] THEN
hol-light-20190729/Multivariate/measure.ml:15812:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[LE_REFL]] THEN
hol-light-20190729/Multivariate/measure.ml-15813-        ONCE_REWRITE_TAC[SIMPLE_IMAGE_GEN] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-15889-      REPEAT STRIP_TAC THEN AP_TERM_TAC THEN ABS_TAC THEN
hol-light-20190729/Multivariate/measure.ml:15890:      AP_TERM_TAC THEN BINOP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-15891-      REPLICATE_TAC 2 (AP_THM_TAC THEN AP_TERM_TAC) THEN
hol-light-20190729/Multivariate/measure.ml:15892:      AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-15893-      DISCH_THEN(X_CHOOSE_TAC `g:num->real^M->bool`)] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-15919-     [REWRITE_TAC[PAIRWISE_IMAGE] THEN REWRITE_TAC[pairwise; IN_UNIV] THEN
hol-light-20190729/Multivariate/measure.ml:15920:      MATCH_MP_TAC WLOG_LT THEN REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml:15921:      ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-15922-      REWRITE_TAC[NEGLIGIBLE_OUTER] THEN MATCH_MP_TAC FORALL_POS_MONO_1 THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-15983-     ASM_CASES_TAC `a:real^M = b` THENL
hol-light-20190729/Multivariate/measure.ml:15984:      [RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-15985-     FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE RAND_CONV [CART_EQ]) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-15987-     DISCH_THEN(X_CHOOSE_THEN `i:num` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/measure.ml:15988:     MP_TAC(SPEC `(a:real^M)$i - (b:real^M)$i` REAL_ABS_INTEGER_LEMMA) THEN
hol-light-20190729/Multivariate/measure.ml-15989-     ASM_SIMP_TAC[INTEGER_CLOSED; REAL_SUB_0] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16003-     REWRITE_TAC[IMP_CONJ; RIGHT_FORALL_IMP_THM; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/measure.ml:16004:     ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16005-     FIRST_ASSUM(MP_TAC o
hol-light-20190729/Multivariate/measure.ml:16006:       ISPEC `{x:real^M | !i. 1 <= i /\ i <= dimindex(:M) ==> integer(x$i)}` o
hol-light-20190729/Multivariate/measure.ml-16007-      MATCH_MP
##############################################
hol-light-20190729/Multivariate/measure.ml-16014-     X_GEN_TAC `x:real^M` THEN REWRITE_TAC[IN_UNIONS; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/measure.ml:16015:     STRIP_TAC THEN EXISTS_TAC `(lambda i. floor((x:real^M)$i)):real^M` THEN
hol-light-20190729/Multivariate/measure.ml-16016-     ASM_SIMP_TAC[LAMBDA_BETA; FLOOR] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16019-     X_GEN_TAC `k:real^M->bool` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:16020:     EXISTS_TAC `(lambda i. floor((x:real^M)$i)):real^M` THEN
hol-light-20190729/Multivariate/measure.ml-16021-     ASM_SIMP_TAC[LAMBDA_BETA; FLOOR]]);;
##############################################
hol-light-20190729/Multivariate/measure.ml-16050-    REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/measure.ml:16051:    REPEAT(COND_CASES_TAC THEN ASM_REWRITE_TAC[]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16052-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/measure.ml-16098-      ==> ?t. open_in (subtopology euclidean s) t /\ P t`) THEN
hol-light-20190729/Multivariate/measure.ml:16099:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16100-    REWRITE_TAC[LE; UNIONS_GSPEC] THEN SET_TAC[];
##############################################
hol-light-20190729/Multivariate/measure.ml-16123-    IMAGE f (UNIONS u) UNION IMAGE f (t DIFF UNIONS u)`
hol-light-20190729/Multivariate/measure.ml:16124:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-16125-  MATCH_MP_TAC LEBESGUE_MEASURABLE_UNION THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-16130-    MATCH_MP_TAC NEGLIGIBLE_IMP_LEBESGUE_MEASURABLE THEN
hol-light-20190729/Multivariate/measure.ml:16131:    FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-16132-
##############################################
hol-light-20190729/Multivariate/measure.ml-16189-      ==> ~(f y = g y)`)) THEN
hol-light-20190729/Multivariate/measure.ml:16190:    REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-16191-
##############################################
hol-light-20190729/Multivariate/measure.ml-16310-              NEGLIGIBLE_SUBSET)) THEN
hol-light-20190729/Multivariate/measure.ml:16311:      ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml:16312:      ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16313-      ABBREV_TAC `v:real^M->bool = UNIONS u` THEN
hol-light-20190729/Multivariate/measure.ml:16314:      ASM_REWRITE_TAC[IMAGE_UNION] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml:16315:      ABBREV_TAC `v:real^M->bool = UNIONS u` THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-16316-    REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16338-      EXISTS_TAC `(a:real^M) INSERT t` THEN
hol-light-20190729/Multivariate/measure.ml:16339:      ASM_REWRITE_TAC[LEBESGUE_MEASURABLE_INSERT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16340-      EXISTS_TAC `t:real^M->bool` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:16341:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/measure.ml-16342-
##############################################
hol-light-20190729/Multivariate/measure.ml-16358-  STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:16359:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-16360-  MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml-16361-  EXISTS_TAC `IMAGE (f:real^M->real^N) (s DIFF UNIONS u)` THEN
hol-light-20190729/Multivariate/measure.ml:16362:  ASM_SIMP_TAC[SUBSET_DIFF] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-16363-
##############################################
hol-light-20190729/Multivariate/measure.ml-16383-  REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:16384:   [CONJ_TAC THENL [X_GEN_TAC `n:num`; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-16385-    MATCH_MP_TAC MEASURABLE_LEBESGUE_MEASURABLE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml-16386-    EXISTS_TAC `u:real^N->bool` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:16387:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-16388-    MATCH_MP_TAC LEBESGUE_MEASURABLE_DIFF THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16400-    ASM_SIMP_TAC[SUBSET_DIFF] THEN
hol-light-20190729/Multivariate/measure.ml:16401:    REWRITE_TAC[INTERS_GSPEC; UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16402-    REWRITE_TAC[LIM_SEQUENTIALLY; DIST_LIFT]] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16458-         `(?a. s SUBSET {a}) ==> FINITE s`) THEN
hol-light-20190729/Multivariate/measure.ml:16459:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-16460-      GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV)
##############################################
hol-light-20190729/Multivariate/measure.ml-16465-    REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:16466:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16467-      MATCH_MP_TAC LEBESGUE_MEASURABLE_COUNTABLE_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16474-        ==> (IMAGE f s DIFF IMAGE f u) SUBSET IMAGE f (s DIFF t)`) THEN
hol-light-20190729/Multivariate/measure.ml:16475:      ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16476-      X_GEN_TAC `y:real^N` THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16479-                          (k:real^M->bool) IN u}` THEN CONJ_TAC
hol-light-20190729/Multivariate/measure.ml:16480:      THENL [ALL_TAC; REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-16481-      MATCH_MP_TAC COUNTABLE_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16509-                  {x | x IN UNIONS u /\ f x = y}`
hol-light-20190729/Multivariate/measure.ml:16510:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-16511-    MATCH_MP_TAC COUNTABLE_SUBSET THEN EXISTS_TAC
##############################################
hol-light-20190729/Multivariate/measure.ml-16514-                COUNTABLE_IMAGE] THEN
hol-light-20190729/Multivariate/measure.ml:16515:    REWRITE_TAC[UNIONS_IMAGE] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-16516-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16563-    EXISTS_TAC `s:real^M->bool` THEN ASM_SIMP_TAC[MEASURABLE_COMPACT] THEN
hol-light-20190729/Multivariate/measure.ml:16564:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16565-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16582-   [FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/measure.ml:16583:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-16584-    ASM_SIMP_TAC[LEBESGUE_MEASURABLE_UNION] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16594-    MEASURE_DISJOINT_UNION o lhand o lhand o snd) THEN
hol-light-20190729/Multivariate/measure.ml:16595:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-16596-  DISCH_THEN(MP_TAC o MATCH_MP (REAL_ARITH
##############################################
hol-light-20190729/Multivariate/measure.ml-16616-    CONJ_TAC THENL [ASM_REWRITE_TAC[NEGLIGIBLE_UNION_EQ]; SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml:16617:    FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16618-    REWRITE_TAC[SUBSET; IN_ELIM_THM] THEN X_GEN_TAC `y:real^N` THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16622-                {x | x IN u /\ (f:real^M->real^N) x = y}` THEN
hol-light-20190729/Multivariate/measure.ml:16623:    ASM_REWRITE_TAC[COUNTABLE_UNION] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-16624-
##############################################
hol-light-20190729/Multivariate/measure.ml-16715-  ASM_REWRITE_TAC[] THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:16716:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-16717-
##############################################
hol-light-20190729/Multivariate/measure.ml-16774-       `r /\ s /\ (q ==> p) /\ q ==> p /\ q /\ r /\ s`) THEN
hol-light-20190729/Multivariate/measure.ml:16775:      CONJ_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[SUBSET_REFL]] THEN
hol-light-20190729/Multivariate/measure.ml-16776-      CONJ_TAC THENL [ASM_MESON_TAC[SUBSET_TRANS; SUBSET_DIFF]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16791-      CONJ_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THENL
hol-light-20190729/Multivariate/measure.ml:16792:       [REWRITE_TAC[SUBSET_DIFF]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-16793-      MATCH_MP_TAC MEASURABLE_DIFF THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16828-       `(?a. s SUBSET {a}) ==> FINITE s`) THEN
hol-light-20190729/Multivariate/measure.ml:16829:      ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16830-      REWRITE_TAC[IMP_IMP; GSYM FINITE_UNION] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16838-    MATCH_MP_TAC(MESON[] `(!n. P n) /\ ~(!n. ~Q n) ==> ?n. P n /\ Q n`) THEN
hol-light-20190729/Multivariate/measure.ml:16839:    CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[REAL_NOT_LT]] THEN
hol-light-20190729/Multivariate/measure.ml-16840-    DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16849-      ASM_REWRITE_TAC[FINITE_NUMSEG_LT; FORALL_IN_GSPEC] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:16850:       [MATCH_MP_TAC WLOG_LT THEN ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-16851-      GEN_REWRITE_TAC (LAND_CONV o LAND_CONV o RAND_CONV)
##############################################
hol-light-20190729/Multivariate/measure.ml-16856-      MATCH_MP_TAC MEASURE_SUBSET THEN ASM_REWRITE_TAC[UNIONS_SUBSET] THEN
hol-light-20190729/Multivariate/measure.ml:16857:      CONJ_TAC THENL [MATCH_MP_TAC MEASURABLE_UNIONS; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-16858-      ASM_REWRITE_TAC[FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16886-    EXISTS_TAC `u:real^N->bool` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:16887:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-16888-    FIRST_ASSUM(MP_TAC o MATCH_MP
##############################################
hol-light-20190729/Multivariate/measure.ml-16905-    EXISTS_TAC `u:real^N->bool` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:16906:    CONJ_TAC THENL [ALL_TAC; REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-16907-    MATCH_MP_TAC LEBESGUE_MEASURABLE_COUNTABLE_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16926-      EXISTS_TAC `u:real^N->bool` THEN ASM_REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:16927:       [ALL_TAC; REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-16928-      MATCH_MP_TAC LEBESGUE_MEASURABLE_COUNTABLE_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16945-      REWRITE_TAC[EMPTY_UNIONS; IMAGE_EQ_EMPTY; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/measure.ml:16946:      REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16947-      REWRITE_TAC[NEGLIGIBLE_OUTER] THEN X_GEN_TAC `d:real` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-16974-        ASM_SIMP_TAC[FINITE_NUMSEG; SUBSET; IN_NUMSEG; MEASURE_POS_LE] THEN
hol-light-20190729/Multivariate/measure.ml:16975:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-16976-        TRANS_TAC REAL_LE_TRANS `sum(SUC N..M) (\n. inv(&2 pow n))` THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17004-  REPEAT(FIRST_X_ASSUM(MP_TAC o SPEC `x:real^M`)) THEN
hol-light-20190729/Multivariate/measure.ml:17005:  REPEAT(ANTS_TAC THENL [ASM SET_TAC[]; DISCH_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml-17006-  ASM_MESON_TAC[LE_TRANS]);;
##############################################
hol-light-20190729/Multivariate/measure.ml-17031-          {x | x IN n /\ f differentiable at x within s}` THEN
hol-light-20190729/Multivariate/measure.ml:17032:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-17033-  ASM_REWRITE_TAC[NEGLIGIBLE_UNION_EQ] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17042-    MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] DIFFERENTIABLE_WITHIN_SUBSET) THEN
hol-light-20190729/Multivariate/measure.ml:17043:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-17044-
##############################################
hol-light-20190729/Multivariate/measure.ml-17098-    MATCH_MP_TAC NEGLIGIBLE_LOCALLY_LIPSCHITZ_IMAGE THEN
hol-light-20190729/Multivariate/measure.ml:17099:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-17100-
##############################################
hol-light-20190729/Multivariate/measure.ml-17151-      SUBGOAL_THEN `negligible(IMAGE (f:real^M->real^N) s)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:17152:       [MATCH_MP_TAC NEGLIGIBLE_LOCALLY_LIPSCHITZ_IMAGE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-17153-        RULE_ASSUM_TAC(REWRITE_RULE[NEGLIGIBLE_EQ_MEASURE_0]) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17158-     [MATCH_MP_TAC NEGLIGIBLE_LOCALLY_LIPSCHITZ_IMAGE_LOWDIM THEN
hol-light-20190729/Multivariate/measure.ml:17159:      ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-17160-      ASM_SIMP_TAC[NEGLIGIBLE_EQ_MEASURE_0; REAL_POS; REAL_POW_LE; REAL_LE_MUL;
##############################################
hol-light-20190729/Multivariate/measure.ml-17187-        SUBGOAL_THEN `(x:real^M) IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:17188:         [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-17189-        REPEAT(FIRST_X_ASSUM(MP_TAC o SPEC `x:real^M`)) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17198-      CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:17199:       [ASM_REWRITE_TAC[]; REWRITE_TAC[INTER_UNIONS] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-17200-      MATCH_MP_TAC IMAGE_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17232-    DISCH_THEN(MP_TAC o SPEC `x:real^M`) THEN
hol-light-20190729/Multivariate/measure.ml:17233:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-17234-    DISCH_THEN(X_CHOOSE_THEN `d':real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17256-    MATCH_MP_TAC NEGLIGIBLE_LOCALLY_LIPSCHITZ_IMAGE THEN
hol-light-20190729/Multivariate/measure.ml:17257:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-17258-  MATCH_MP_TAC(MESON[MEASURABLE_LEBESGUE_MEASURABLE_SUBSET; REAL_LE_TRANS;
##############################################
hol-light-20190729/Multivariate/measure.ml-17273-                 MEASURABLE_BALL] THEN
hol-light-20190729/Multivariate/measure.ml:17274:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-17275-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17318-    SUBGOAL_THEN
hol-light-20190729/Multivariate/measure.ml:17319:     `ball(vec 0:real^N,t) = IMAGE (\x. lambda i. x$i) (ball(vec 0:real^M,t))`
hol-light-20190729/Multivariate/measure.ml-17320-    SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-17327-      X_GEN_TAC `y:real^N` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/measure.ml:17328:      EXISTS_TAC `(lambda i. (y:real^N)$i):real^M` THEN
hol-light-20190729/Multivariate/measure.ml-17329-      SIMP_TAC[CART_EQ; LAMBDA_BETA] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17346-    ASM_REWRITE_TAC[FORALL_PAIR_THM; MEASURABLE_BALL] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:17347:     [RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-17348-      DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17351-                 MEASURABLE_BALL; FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/measure.ml:17352:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-17353-
##############################################
hol-light-20190729/Multivariate/measure.ml-17468-      [OPEN_CONTAINS_BALL]) THEN
hol-light-20190729/Multivariate/measure.ml:17469:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-17470-    DISCH_THEN(X_CHOOSE_THEN `l:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17616-     `s SUBSET t ==> (!x. x IN t ==> P x) ==> (!x. x IN s ==> P x)`)) THEN
hol-light-20190729/Multivariate/measure.ml:17617:    REWRITE_TAC[FORALL_IN_GSPEC; o_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-17618-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17625-     `s SUBSET t ==> (!x. x IN t ==> P x) ==> (!x. x IN s ==> P x)`)) THEN
hol-light-20190729/Multivariate/measure.ml:17626:    REWRITE_TAC[FORALL_IN_GSPEC; o_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-17627-    MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] REAL_LE_TRANS)] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17633-     `s SUBSET t ==> (!x. x IN t ==> P x) ==> (!x. x IN s ==> P x)`))) THEN
hol-light-20190729/Multivariate/measure.ml:17634:    REWRITE_TAC[FORALL_IN_GSPEC; o_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-17635-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17642-  ASM_REWRITE_TAC[FORALL_PAIR_THM; MEASURABLE_BALL] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:17643:   [RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-17644-    DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-17647-               MEASURABLE_BALL; FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/measure.ml:17648:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-17649-
##############################################
hol-light-20190729/Multivariate/measure.ml-17983-     `IMAGE (g:real^N->real^M) (IMAGE (f:real^M->real^N) v INTER t)` THEN
hol-light-20190729/Multivariate/measure.ml:17984:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-17985-    MATCH_MP_TAC NEGLIGIBLE_LOCALLY_LIPSCHITZ_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18075-       [ASM_REWRITE_TAC[MEASURABLE_ON_UNIV] THEN GEN_TAC THEN
hol-light-20190729/Multivariate/measure.ml:18076:        COND_CASES_TAC THEN REWRITE_TAC[DROP_VEC; REAL_POS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-18077-        MATCH_MP_TAC MONO_EXISTS THEN MESON_TAC[]];
##############################################
hol-light-20190729/Multivariate/measure.ml-18117-        SUBGOAL_THEN `(h:num->real^N->real^1) n x IN r` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:18118:         [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-18119-        ASM_SIMP_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-18182-            SUBGOAL_THEN `&0 <= drop y` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:18183:             [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-18184-            COND_CASES_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18192-            MATCH_MP_TAC REAL_LE_LMUL THEN REWRITE_TAC[REAL_ABS_POS] THEN
hol-light-20190729/Multivariate/measure.ml:18193:            ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-18194-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18198-          MATCH_MP_TAC REAL_LE_LMUL THEN
hol-light-20190729/Multivariate/measure.ml:18199:          CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-18200-          MATCH_MP_TAC MEASURE_DIFFERENTIABLE_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18240-            REWRITE_TAC[REAL_ARITH `abs x <= x <=> &0 <= x`] THEN
hol-light-20190729/Multivariate/measure.ml:18241:            ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-18242-          DISCH_THEN SUBST1_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18344-        MATCH_MP_TAC HAS_DERIVATIVE_WITHIN_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:18345:        EXISTS_TAC `s:real^N->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-18346-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18366-              MATCH_MP_TAC HAS_DERIVATIVE_WITHIN_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:18367:              EXISTS_TAC `s:real^N->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-18368-              MATCH_MP_TAC(MESON[NEGLIGIBLE_EMPTY]
##############################################
hol-light-20190729/Multivariate/measure.ml-18396-        MATCH_MP_TAC HAS_DERIVATIVE_WITHIN_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:18397:        EXISTS_TAC `s:real^N->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-18398-        GEN_REWRITE_TAC (BINDER_CONV o LAND_CONV) [CONJ_SYM] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18411-          MATCH_MP_TAC HAS_DERIVATIVE_WITHIN_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:18412:          EXISTS_TAC `s:real^N->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-18413-          X_GEN_TAC `n:real^N->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18421-          MATCH_MP_TAC HAS_DERIVATIVE_WITHIN_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:18422:          EXISTS_TAC `s:real^N->bool` THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-18423-        ONCE_REWRITE_TAC[GSYM INTEGRABLE_RESTRICT_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18454-      MATCH_MP_TAC HAS_DERIVATIVE_WITHIN_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:18455:      EXISTS_TAC `s:real^N->bool` THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/measure.ml-18456-  let version2 = prove
##############################################
hol-light-20190729/Multivariate/measure.ml-18482-        MATCH_MP_TAC HAS_DERIVATIVE_WITHIN_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:18483:        EXISTS_TAC `s:real^N->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-18484-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18520-        MATCH_MP_TAC HAS_DERIVATIVE_WITHIN_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:18521:        EXISTS_TAC `s:real^N->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-18522-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18616-     `IMAGE (g:real^N->real^N) s = t /\ IMAGE h t = s`
hol-light-20190729/Multivariate/measure.ml:18617:    STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-18618-    EQ_TAC THEN STRIP_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-18648-      EXISTS_TAC `g':real^N->real^N->real^N` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:18649:      ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-18650-    ASM_SIMP_TAC[GSYM DET_MUL; VECTOR_MUL_ASSOC; GSYM REAL_ABS_MUL] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18689-     `IMAGE (g:real^N->real^N) s = t /\ IMAGE h t = s`
hol-light-20190729/Multivariate/measure.ml:18690:    STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-18691-    MP_TAC(ISPECL
##############################################
hol-light-20190729/Multivariate/measure.ml-18701-       [EXISTS_TAC `s:real^N->bool`; EXISTS_TAC `t:real^N->bool`] THEN
hol-light-20190729/Multivariate/measure.ml:18702:      ASM_REWRITE_TAC[differentiable_on; differentiable] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-18703-      REWRITE_TAC[HAS_INTEGRAL_INTEGRABLE_INTEGRAL] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18715-       [EXISTS_TAC `s:real^N->bool`; EXISTS_TAC `t:real^N->bool`] THEN
hol-light-20190729/Multivariate/measure.ml:18716:      ASM_REWRITE_TAC[differentiable_on; differentiable] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-18717-      REWRITE_TAC[HAS_INTEGRAL_INTEGRABLE_INTEGRAL] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-18745-        (SUBGOAL_THEN `(g:real^N->real^N) x IN t` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:18746:         [ASM SET_TAC[]; ASM_REWRITE_TAC[]]) THEN
hol-light-20190729/Multivariate/measure.ml-18747-        DISCH_THEN(MP_TAC o
##############################################
hol-light-20190729/Multivariate/measure.ml-18837-        (SUBGOAL_THEN `(g:real^N->real^N) x IN t` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:18838:         [ASM SET_TAC[]; ASM_REWRITE_TAC[]]) THEN
hol-light-20190729/Multivariate/measure.ml-18839-        DISCH_THEN(MP_TAC o
##############################################
hol-light-20190729/Multivariate/measure.ml-18932-    REWRITE_TAC[VECTOR_MUL_COMPONENT; LIFT_CMUL] THEN MP_TAC(ISPEC
hol-light-20190729/Multivariate/measure.ml:18933:     `\x. (lift((f:real^M->real^N) x$i))` version2) THEN
hol-light-20190729/Multivariate/measure.ml-18934-    REWRITE_TAC[] THEN DISCH_THEN MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19072-        EXISTS_TAC `UNIONS(IMAGE s (:num)):real^M->bool` THEN
hol-light-20190729/Multivariate/measure.ml:19073:        REWRITE_TAC[differentiable_on; differentiable] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-19074-        ALL_TAC]] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19092-                    FINITE_NUMSEG] THEN
hol-light-20190729/Multivariate/measure.ml:19093:       CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-19094-       X_GEN_TAC `x:real^M` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19096-       EXISTS_TAC `UNIONS (IMAGE s (:num)):real^M->bool` THEN
hol-light-20190729/Multivariate/measure.ml:19097:       ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-19098-       ALL_TAC])
##############################################
hol-light-20190729/Multivariate/measure.ml-19129-                           REAL_LE_REFL; NORM_POS_LE]) THEN
hol-light-20190729/Multivariate/measure.ml:19130:         ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-19131-         GEN_TAC THEN REWRITE_TAC[IN_UNIV] THEN COND_CASES_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-19141-           FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE RAND_CONV [IN_UNIONS]) THEN
hol-light-20190729/Multivariate/measure.ml:19142:           REWRITE_TAC[EXISTS_IN_GSPEC] THEN ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/measure.ml-19143-      ONCE_REWRITE_TAC[GSYM INTEGRABLE_RESTRICT_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19159-                         REAL_LE_REFL; NORM_POS_LE]) THEN
hol-light-20190729/Multivariate/measure.ml:19160:        RULE_ASSUM_TAC(REWRITE_RULE[IN_NUMSEG; LE]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-19161-        GEN_TAC THEN REWRITE_TAC[IN_UNIV] THEN COND_CASES_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-19171-          FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE RAND_CONV [IN_UNIONS]) THEN
hol-light-20190729/Multivariate/measure.ml:19172:          REWRITE_TAC[EXISTS_IN_GSPEC] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-19173-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19185-                     FINITE_IMAGE; FINITE_NUMSEG] THEN
hol-light-20190729/Multivariate/measure.ml:19186:        GEN_TAC THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-19187-        X_GEN_TAC `x:real^M` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19189-        EXISTS_TAC `UNIONS (IMAGE s (:num)):real^M->bool` THEN
hol-light-20190729/Multivariate/measure.ml:19190:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-19191-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19228-                    REAL_LE_REFL; REAL_LE_MUL; NORM_POS_LE; REAL_ABS_POS]) THEN
hol-light-20190729/Multivariate/measure.ml:19229:         ASM SET_TAC[]]]);
hol-light-20190729/Multivariate/measure.ml-19230-      CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-19258-                           REAL_LE_REFL; NORM_POS_LE]) THEN
hol-light-20190729/Multivariate/measure.ml:19259:         ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-19260-         GEN_TAC THEN REWRITE_TAC[IN_UNIV] THEN COND_CASES_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-19270-           FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE RAND_CONV [IN_UNIONS]) THEN
hol-light-20190729/Multivariate/measure.ml:19271:           REWRITE_TAC[EXISTS_IN_GSPEC] THEN ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/measure.ml-19272-      ONCE_REWRITE_TAC[GSYM INTEGRABLE_RESTRICT_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19290-                         REAL_LE_REFL; NORM_POS_LE]) THEN
hol-light-20190729/Multivariate/measure.ml:19291:        RULE_ASSUM_TAC(REWRITE_RULE[IN_NUMSEG; LE]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-19292-        GEN_TAC THEN REWRITE_TAC[IN_UNIV] THEN COND_CASES_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-19302-          FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE RAND_CONV [IN_UNIONS]) THEN
hol-light-20190729/Multivariate/measure.ml:19303:          REWRITE_TAC[EXISTS_IN_GSPEC] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-19304-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19315-                     FINITE_IMAGE; FINITE_NUMSEG] THEN
hol-light-20190729/Multivariate/measure.ml:19316:        GEN_TAC THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-19317-        X_GEN_TAC `x:real^M` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19319-        EXISTS_TAC `UNIONS (IMAGE s (:num)):real^M->bool` THEN
hol-light-20190729/Multivariate/measure.ml:19320:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-19321-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19339-        EXISTS_TAC `UNIONS (IMAGE s (:num)):real^M->bool` THEN
hol-light-20190729/Multivariate/measure.ml:19340:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-19341-        DISCH_TAC THEN REWRITE_TAC[lemma; FORALL_AND_THM] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19362-                  REAL_LE_REFL;  REAL_LE_MUL; NORM_POS_LE; REAL_ABS_POS]) THEN
hol-light-20190729/Multivariate/measure.ml:19363:        ASM SET_TAC[]])]) in
hol-light-20190729/Multivariate/measure.ml-19364-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19379-    DISCH_THEN(SUBST_ALL_TAC o SYM) THEN MATCH_MP_TAC version7 THEN
hol-light-20190729/Multivariate/measure.ml:19380:    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-19381-    X_GEN_TAC `x:real^M` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/measure.ml-19382-    MATCH_MP_TAC HAS_DERIVATIVE_WITHIN_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:19383:    EXISTS_TAC `s:real^M->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-19384-    MATCH_MP_TAC EQ_IMP THEN BINOP_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-19388-      MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN EXISTS_TAC `n:real^M->bool` THEN
hol-light-20190729/Multivariate/measure.ml:19389:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-19390-      BINOP_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-19394-      EXISTS_TAC `IMAGE (g:real^M->real^M) n` THEN
hol-light-20190729/Multivariate/measure.ml:19395:      (CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/measure.ml-19396-      MATCH_MP_TAC NEGLIGIBLE_DIFFERENTIABLE_IMAGE_NEGLIGIBLE THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19400-      MATCH_MP_TAC HAS_DERIVATIVE_WITHIN_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:19401:      EXISTS_TAC `s:real^M->bool` THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/measure.ml-19402-
##############################################
hol-light-20190729/Multivariate/measure.ml-19455-  MP_TAC(ISPECL
hol-light-20190729/Multivariate/measure.ml:19456:   [`\x. lift((f:real^1->real^N) x$i)`;
hol-light-20190729/Multivariate/measure.ml-19457-    `g:real^1->real^1`;
##############################################
hol-light-20190729/Multivariate/measure.ml-19459-    `s:real^1->bool`;
hol-light-20190729/Multivariate/measure.ml:19460:    `lift((b:real^N)$i)`] HAS_ABSOLUTE_INTEGRAL_CHANGE_OF_VARIABLES) THEN
hol-light-20190729/Multivariate/measure.ml-19461-  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-19894-    REWRITE_TAC[CONTINUOUS_ON_CONST] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:19895:     [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; SUBSET_UNIV]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-19896-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `h:real^M->real^N`] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19903-                    then (h:real^M->real^N) x else vec 0` THEN
hol-light-20190729/Multivariate/measure.ml:19904:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-19905-    REWRITE_TAC[ABSOLUTELY_INTEGRABLE_RESTRICT_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-19949-        y < &2 / &3 * e ==> norm(integral s g) + y < e`)) THEN
hol-light-20190729/Multivariate/measure.ml:19950:  CONJ_TAC THENL [MATCH_MP_TAC INTEGRAL_EQ THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-19951-  TRANS_TAC REAL_LET_TRANS
##############################################
hol-light-20190729/Multivariate/measure.ml-20289-    ASM_REWRITE_TAC[NORM_0; NORM_POS_LE; NORM_LIFT; REAL_ABS_NORM] THEN
hol-light-20190729/Multivariate/measure.ml:20290:    REPEAT(COND_CASES_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/measure.ml-20291-    REWRITE_TAC[REAL_LE_REFL]]);;
##############################################
hol-light-20190729/Multivariate/measure.ml-20484-  (REWRITE_TAC[CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/measure.ml:20485:   CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-20486-   CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-20492-     REWRITE_TAC[LE_REFL] THEN MATCH_MP_TAC DIFFERENTIABLE_ON_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:20493:     EXISTS_TAC `s:real^N->bool` THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-20494-     MATCH_MP_TAC MEASURABLE_COMPACT THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-20661-      ASM_REWRITE_TAC[] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/measure.ml:20662:      ASM_CASES_TAC `(x:real^N)$i = (b:real^N)$i` THENL
hol-light-20190729/Multivariate/measure.ml-20663-       [EXISTS_TAC `n - 1` THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-20673-        ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:20674:      SUBGOAL_THEN `(a:real^N)$i < (b:real^N)$i` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml-20675-       [ASM_REAL_ARITH_TAC; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-20694-          ONCE_REWRITE_RULE[REAL_MUL_SYM] (GSYM REAL_LE_RDIV_EQ)] THEN
hol-light-20190729/Multivariate/measure.ml:20695:        UNDISCH_TAC `(a:real^N)$i < (b:real^N)$i` THEN
hol-light-20190729/Multivariate/measure.ml-20696-        SIMP_TAC[REAL_LE_RDIV_EQ; REAL_LE_LDIV_EQ; REAL_SUB_LT] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-20981-  X_GEN_TAC `y:real^1` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/measure.ml:20982:  ASM_CASES_TAC `y = (f:real^N->real^1) p` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:20983:  ASM_CASES_TAC `y = (f:real^N->real^1) q` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-20984-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-21001-      COMPACT_PATH_IMAGE; GSYM OPEN_CLOSED; PATH_IMAGE_NONEMPTY] THEN
hol-light-20190729/Multivariate/measure.ml:21002:    CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[SUBSET; IN_BALL]] THEN
hol-light-20190729/Multivariate/measure.ml-21003-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN X_GEN_TAC `y:real^N` THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-21088-     `!a:real^N. interval[a,a + c] SUBSET ball(a,d)`
hol-light-20190729/Multivariate/measure.ml:21089:    MP_TAC THENL [GEN_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-21090-    ONCE_REWRITE_TAC[MESON[VECTOR_ADD_RID]
##############################################
hol-light-20190729/Multivariate/measure.ml-21099-    REWRITE_TAC[GSYM INTERVAL_TRANSLATION; VECTOR_ADD_RID] THEN
hol-light-20190729/Multivariate/measure.ml:21100:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/measure.ml-21101-  DISCH_THEN(MP_TAC o MATCH_MP
##############################################
hol-light-20190729/Multivariate/measure.ml-21146-  X_GEN_TAC `x:real^N` THEN GEN_REWRITE_TAC RAND_CONV [CONJ_SYM] THEN
hol-light-20190729/Multivariate/measure.ml:21147:  MATCH_MP_TAC MONO_AND THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-21148-  DISCH_THEN(MP_TAC o GEN `m:num` o SPEC `inv(&m + &1)`) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-21163-   [REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:21164:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-21165-      X_GEN_TAC `m:num` THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-21248-        CONNECTED_INTER_FRONTIER) THEN
hol-light-20190729/Multivariate/measure.ml:21249:    ASM_REWRITE_TAC[NOT_IMP] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-21250-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-21269-    ASM_SIMP_TAC[CONVEX_AFFINITY; BOUNDED_AFFINITY; INTERIOR_AFFINITY] THEN
hol-light-20190729/Multivariate/measure.ml:21270:    ASM_SIMP_TAC[REAL_LT_IMP_NZ; IMAGE_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-21271-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-21390-  STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:21391:   [MP_TAC(ISPEC `A:real^N->bool` INTERIOR_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-21392-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-21489-          ASM_SIMP_TAC[frontier; CLOSURE_CLOSED; COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/measure.ml:21490:          CONJ_TAC THENL [REWRITE_TAC[differentiable_on]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-21491-          ASM_MESON_TAC[differentiable; HAS_DERIVATIVE_AT_WITHIN];
##############################################
hol-light-20190729/Multivariate/measure.ml-21701-          t(n:num) % v + z n:real^N = y`
hol-light-20190729/Multivariate/measure.ml:21702:    STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-21703-    SUBGOAL_THEN `norm(y - a:real^N) <= &2 * M * t(n:num)` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-21728-    ASM_SIMP_TAC[CLOSURE_CLOSED; COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/measure.ml:21729:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-21730-    REWRITE_TAC[OPEN_SCALING_EQ; CONNECTED_SCALING_EQ] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-21842-  ONCE_REWRITE_TAC[DIST_SYM] THEN REWRITE_TAC[GSYM IN_BALL] THEN
hol-light-20190729/Multivariate/measure.ml:21843:  (ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml-21844-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] REAL_LE_TRANS) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22081-    SUBGOAL_THEN `(x:real^N) IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:22082:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-22083-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22325-  ASM_CASES_TAC `det(matrix((f':real^N->real^N->real^N) a)) = y` THENL
hol-light-20190729/Multivariate/measure.ml:22326:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-22327-  ASM_CASES_TAC `det(matrix((f':real^N->real^N->real^N) b)) = y` THENL
hol-light-20190729/Multivariate/measure.ml:22328:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-22329-  MP_TAC(ISPECL [`f:real^N->real^N`; `f':real^N->real^N->real^N`;
##############################################
hol-light-20190729/Multivariate/measure.ml-22411-    ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:22412:    FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-22413-    REWRITE_TAC[COUNTABLE_UNION] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22421-    SUBGOAL_THEN `s:real^N->bool = UNIONS YY UNION UNIONS ZZ`
hol-light-20190729/Multivariate/measure.ml:22422:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-22423-    GEN_REWRITE_TAC I [EXTENSION] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22470-                   CLOSED_IN_REFL] THEN
hol-light-20190729/Multivariate/measure.ml:22471:      FIRST_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-22472-      SUBGOAL_THEN `frontier Y INTER s:real^N->bool = frontier Z INTER s`
hol-light-20190729/Multivariate/measure.ml:22473:      MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-22474-      REWRITE_TAC[FRONTIER_CLOSURES] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22483-       `t' = u /\ u' = t ==> u INTER s INTER u' = t INTER s INTER t'`) THEN
hol-light-20190729/Multivariate/measure.ml:22484:      CONJ_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-22485-    REPEAT STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22497-     `t' = u /\ u' = t ==> u INTER s INTER u' = t INTER s INTER t'`) THEN
hol-light-20190729/Multivariate/measure.ml:22498:    CONJ_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-22499-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22501-   `?a:real^N. a IN frontier Y /\ a IN W /\ a IN A`
hol-light-20190729/Multivariate/measure.ml:22502:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-22503-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22511-     INVERSE_FUNCTION_THEOREM) THEN
hol-light-20190729/Multivariate/measure.ml:22512:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[homeomorphism]] THEN
hol-light-20190729/Multivariate/measure.ml-22513-    DISCH_THEN(X_CHOOSE_THEN `u:real^N->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22515-    ASM_REWRITE_TAC[] THEN DISCH_THEN(MP_TAC o SPEC `a:real^N`) THEN
hol-light-20190729/Multivariate/measure.ml:22516:    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-22517-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22528-    MP_TAC(ISPECL [`a:real^N`; `r / &3`; `r:real`] SUBSET_BALL) THEN
hol-light-20190729/Multivariate/measure.ml:22529:    ANTS_TAC THENL [ASM_REAL_ARITH_TAC; ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-22530-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22532-   [MP_TAC(ISPECL [`a:real^N`; `r / &3`; `r:real`] SUBSET_BALL) THEN
hol-light-20190729/Multivariate/measure.ml:22533:    ANTS_TAC THENL [ASM_REAL_ARITH_TAC; ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-22534-    ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:22535:  SUBGOAL_THEN `(b:real^N) IN s` ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-22536-  SUBGOAL_THEN `~((b:real^N) IN frontier Y)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:22537:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-22538-  ABBREV_TAC `d = setdist({b:real^N},s INTER frontier Y)` THEN
hol-light-20190729/Multivariate/measure.ml-22539-  SUBGOAL_THEN `~(s INTER frontier Y:real^N->bool = {})` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:22540:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-22541-  SUBGOAL_THEN `&0 < d` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-22545-        OPEN_INTER_CLOSURE_EQ) THEN
hol-light-20190729/Multivariate/measure.ml:22546:    ASM_SIMP_TAC[CLOSURE_CLOSED; FRONTIER_CLOSED] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-22547-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22549-   [TRANS_TAC REAL_LET_TRANS `dist(b:real^N,a)` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:22550:     [EXPAND_TAC "d" THEN MATCH_MP_TAC SETDIST_LE_DIST THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-22551-      ASM_MESON_TAC[IN_BALL; DIST_SYM]];
##############################################
hol-light-20190729/Multivariate/measure.ml-22567-      SUBGOAL_THEN `x IN ball(a:real^N,r)` MP_TAC THENL
hol-light-20190729/Multivariate/measure.ml:22568:       [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-22569-      MAP_EVERY UNDISCH_TAC
##############################################
hol-light-20190729/Multivariate/measure.ml-22586-     [SUBGOAL_THEN `x IN ball(a:real^N,r)` MP_TAC THENL
hol-light-20190729/Multivariate/measure.ml:22587:       [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-22588-      MAP_EVERY UNDISCH_TAC
##############################################
hol-light-20190729/Multivariate/measure.ml-22602-  SUBGOAL_THEN `(a':real^N) IN W` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:22603:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-22604-  SUBGOAL_THEN `(a':real^N) IN Y` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:22605:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-22606-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22621-      `lift(det(matrix((f':real^N->real^N->real^N) a')))`]) THEN
hol-light-20190729/Multivariate/measure.ml:22622:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/measure.ml-22623-    MAP_EVERY X_GEN_TAC [`P:real^N->bool`; `K:real^1->bool`] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22678-  SUBGOAL_THEN `(b':real^N) IN Z` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:22679:   [MP_TAC(ISPECL [`b':real^N`; `p:real`] CENTRE_IN_BALL) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-22680-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22698-      ASM_REWRITE_TAC[IN_BALL; REAL_ARITH `p < &2 * p <=> &0 < p`] THEN
hol-light-20190729/Multivariate/measure.ml:22699:      EXISTS_TAC `b':real^N` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-22700-      REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; IN_INTER] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-22710-    ASM_REWRITE_TAC[PASTECART_IN_PCROSS; NOT_IMP] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:22711:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-22712-      MAP_EVERY UNDISCH_TAC
##############################################
hol-light-20190729/Multivariate/measure.ml-22714-      REWRITE_TAC[IN_BALL] THEN CONV_TAC NORM_ARITH;
hol-light-20190729/Multivariate/measure.ml:22715:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/measure.ml-22716-
##############################################
hol-light-20190729/Multivariate/measure.ml-22941-     REWRITE_TAC[REAL_MUL_ASSOC] THEN REWRITE_TAC[LIFT_CMUL] THEN
hol-light-20190729/Multivariate/measure.ml:22942:     ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Multivariate/measure.ml-22943-      [INTEGRAL_CMUL; ABSOLUTELY_INTEGRABLE_IMP_INTEGRABLE;
##############################################
hol-light-20190729/Multivariate/measure.ml-22955-  REWRITE_TAC[REAL_MUL_ASSOC] THEN REWRITE_TAC[LIFT_CMUL] THEN
hol-light-20190729/Multivariate/measure.ml:22956:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 4)
hol-light-20190729/Multivariate/measure.ml-22957-   [VECTOR_MUL_ASSOC; INTEGRABLE_CMUL; ABSOLUTELY_INTEGRABLE_IMP_INTEGRABLE;
##############################################
hol-light-20190729/Multivariate/measure.ml-23107-  GEN_TAC THEN MATCH_MP_TAC EQ_IMP THEN BINOP_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/measure.ml:23108:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-23109-
##############################################
hol-light-20190729/Multivariate/measure.ml-23182-   [ASM_MESON_TAC[MEASURABLE_ON_LEBESGUE_MEASURABLE_SUBSET; SUBSET_TRANS];
hol-light-20190729/Multivariate/measure.ml:23183:    MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-23184-
##############################################
hol-light-20190729/Multivariate/measure.ml-23200-   [ASM_MESON_TAC[MEASURABLE_ON_LEBESGUE_MEASURABLE_SUBSET; SUBSET_TRANS];
hol-light-20190729/Multivariate/measure.ml:23201:    MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-23202-
##############################################
hol-light-20190729/Multivariate/measure.ml-23504-            ==> t SUBSET UNIONS(IMAGE g c)`)) THEN
hol-light-20190729/Multivariate/measure.ml:23505:      REWRITE_TAC[INTERVAL_OPEN_SUBSET_CLOSED] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-23506-      REWRITE_TAC[EXISTS_FINITE_SUBSET_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-23544-        REWRITE_TAC[INTERIOR_SUBSET] THEN
hol-light-20190729/Multivariate/measure.ml:23545:        RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-23546-        FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-23550-        DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `x:real^1`) THEN
hol-light-20190729/Multivariate/measure.ml:23551:        ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_INTERVAL_1]] THEN
hol-light-20190729/Multivariate/measure.ml-23552-        REAL_ARITH_TAC];
##############################################
hol-light-20190729/Multivariate/measure.ml-23560-      FIRST_X_ASSUM(MP_TAC o SPEC `x:real^1`) THEN
hol-light-20190729/Multivariate/measure.ml:23561:      ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_INTERVAL_1]] THEN
hol-light-20190729/Multivariate/measure.ml-23562-      STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-23607-      EXISTS_TAC `c UNION UNIONS {frontier i:real^1->bool | i IN D}` THEN
hol-light-20190729/Multivariate/measure.ml:23608:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-23609-      SUBGOAL_THEN `negligible(UNIONS {frontier i:real^1->bool | i IN D})`
##############################################
hol-light-20190729/Multivariate/measure.ml-23643-       `s = t ==> !x. x IN t ==> x IN s`)) THEN
hol-light-20190729/Multivariate/measure.ml:23644:      ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_UNIONS]] THEN
hol-light-20190729/Multivariate/measure.ml-23645-      REWRITE_TAC[LEFT_IMP_EXISTS_THM; IMP_CONJ] THEN FIRST_ASSUM(fun th ->
##############################################
hol-light-20190729/Multivariate/measure.ml-23703-            ==> t SUBSET UNIONS(IMAGE g c)`)) THEN
hol-light-20190729/Multivariate/measure.ml:23704:      REWRITE_TAC[INTERVAL_OPEN_SUBSET_CLOSED] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-23705-      REWRITE_TAC[EXISTS_FINITE_SUBSET_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-23729-      FIRST_X_ASSUM(MP_TAC o SPEC `x:real^1`) THEN
hol-light-20190729/Multivariate/measure.ml:23730:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/measure.ml-23731-      EXISTS_TAC `interval[(c:real^1->real^1) x,d x]` THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-23816-        MATCH_MP_TAC(REWRITE_RULE[SUBSET] INTERVAL_OPEN_SUBSET_CLOSED) THEN
hol-light-20190729/Multivariate/measure.ml:23817:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml:23818:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-23819-        REPEAT STRIP_TAC THEN MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-23849-         `?x:real^1. x IN p /\ interval[w:real^1,z] = interval[u x,v x]`
hol-light-20190729/Multivariate/measure.ml:23850:        MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-23851-        ASM_REWRITE_TAC[EQ_INTERVAL] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-23856-        FIRST_X_ASSUM(MP_TAC o SPEC `x:real^1`) THEN
hol-light-20190729/Multivariate/measure.ml:23857:        ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-23858-        MATCH_MP_TAC(REAL_ARITH
##############################################
hol-light-20190729/Multivariate/measure.ml-23871-        EXISTS_TAC `interval((u:real^1->real^1) x,v x)` THEN
hol-light-20190729/Multivariate/measure.ml:23872:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-23873-        REWRITE_TAC[SUBSET_INTER] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml-23874-         [REWRITE_TAC[GSYM(CONJUNCT1 INTERIOR_INTERVAL)] THEN
hol-light-20190729/Multivariate/measure.ml:23875:          MATCH_MP_TAC SUBSET_INTERIOR THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-23876-          REWRITE_TAC[INTERIOR_INTERVAL; SUBSET_INTERVAL_1] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-23887-            HAS_BOUNDED_VARIATION_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/measure.ml:23888:          RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-23889-          ASM_SIMP_TAC[GSYM DROP_SUB; GSYM(REWRITE_RULE[o_DEF] DROP_VSUM)] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-23911-         `?x:real^1. x IN p /\ interval[w:real^1,z] = interval[u x,v x]`
hol-light-20190729/Multivariate/measure.ml:23912:        MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-23913-        ASM_REWRITE_TAC[EQ_INTERVAL] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-23918-        FIRST_X_ASSUM(MP_TAC o SPEC `x:real^1`) THEN
hol-light-20190729/Multivariate/measure.ml:23919:        ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-23920-        MATCH_MP_TAC(REAL_ARITH `k * a <= x ==> a * k <= abs x + x`) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-23930-        EXISTS_TAC `interval((u:real^1->real^1) x,v x)` THEN
hol-light-20190729/Multivariate/measure.ml:23931:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-23932-        REWRITE_TAC[SUBSET_INTER] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml-23933-         [REWRITE_TAC[GSYM(CONJUNCT1 INTERIOR_INTERVAL)] THEN
hol-light-20190729/Multivariate/measure.ml:23934:          MATCH_MP_TAC SUBSET_INTERIOR THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-23935-          REWRITE_TAC[INTERIOR_INTERVAL; SUBSET_INTERVAL_1] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-23945-            HAS_BOUNDED_VARIATION_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/measure.ml:23946:          RULE_ASSUM_TAC(REWRITE_RULE[division_of]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-23947-          REWRITE_TAC[REAL_NEG_SUB] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-24025-        EXISTS_TAC `x + lift(min d (inv(&n + &1)) / &2)` THEN
hol-light-20190729/Multivariate/measure.ml:24026:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-24027-        ONCE_REWRITE_TAC[CONJ_ASSOC] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-24067-        ONCE_REWRITE_TAC[TAUT `p /\ q /\ r /\ s <=> r /\ (p /\ q) /\ s`] THEN
hol-light-20190729/Multivariate/measure.ml:24068:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml-24069-         [CONJ_TAC THEN FIRST_X_ASSUM(MATCH_MP_TAC o REWRITE_RULE[SUBSET]) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-24105-        EXISTS_TAC `x + lift(min d (inv(&n + &1)) / &2)` THEN
hol-light-20190729/Multivariate/measure.ml:24106:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-24107-        ONCE_REWRITE_TAC[CONJ_ASSOC] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-24147-        ONCE_REWRITE_TAC[TAUT `p /\ q /\ r /\ s <=> r /\ (p /\ q) /\ s`] THEN
hol-light-20190729/Multivariate/measure.ml:24148:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml-24149-         [CONJ_TAC THEN FIRST_X_ASSUM(MATCH_MP_TAC o REWRITE_RULE[SUBSET]) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-24282-        REWRITE_TAC[GSYM REAL_ABS_BOUNDS; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/measure.ml:24283:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-24284-        ASM_MESON_TAC[ARITH_RULE `N:num <= n + N`];
##############################################
hol-light-20190729/Multivariate/measure.ml-24286-        MATCH_MP_TAC REAL_LE_INF_SUBSET THEN REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:24287:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml-24288-         [MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-24312-        REWRITE_TAC[GSYM REAL_ABS_BOUNDS; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/measure.ml:24313:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-24314-        ASM_MESON_TAC[ARITH_RULE `N:num <= n + N`];
##############################################
hol-light-20190729/Multivariate/measure.ml-24316-        MATCH_MP_TAC REAL_SUP_LE_SUBSET THEN REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:24317:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml-24318-         [MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-24342-       [MATCH_MP_TAC INF_LE_ELEMENT; MATCH_MP_TAC ELEMENT_LE_SUP] THEN
hol-light-20190729/Multivariate/measure.ml:24343:      (CONJ_TAC THENL [REWRITE_TAC[FORALL_IN_GSPEC]; ASM SET_TAC[]]) THENL
hol-light-20190729/Multivariate/measure.ml-24344-       [EXISTS_TAC `--B:real`; EXISTS_TAC `B:real`] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-24380-    MATCH_MP_TAC (TAUT `p /\ (r ==> q) ==>  ~(p /\ q) ==> ~r`) THEN
hol-light-20190729/Multivariate/measure.ml:24381:    (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml-24382-    REWRITE_TAC[FORALL_IN_GSPEC; IMP_IMP] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-24511-      REWRITE_TAC[OPEN_CLOSED_INTERVAL_1; INTERIOR_INTERVAL] THEN
hol-light-20190729/Multivariate/measure.ml:24512:      ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/measure.ml-24513-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-24617-                   ~((f:real^1->real^1) differentiable at x)}` THEN
hol-light-20190729/Multivariate/measure.ml:24618:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-24619-  MATCH_MP_TAC LEBESGUE_DIFFERENTIATION_THEOREM_COMPACT THEN
hol-light-20190729/Multivariate/measure.ml:24620:  MATCH_MP_TAC INCREASING_BOUNDED_VARIATION THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/measure.ml-24621-
##############################################
hol-light-20190729/Multivariate/measure.ml-24675-        ABSOLUTELY_INTEGRABLE_EQ)) THEN
hol-light-20190729/Multivariate/measure.ml:24676:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-24677-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-24679-   [MATCH_MP_TAC INTEGRAL_NORM_BOUND_INTEGRAL THEN
hol-light-20190729/Multivariate/measure.ml:24680:    ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Multivariate/measure.ml-24681-     [ABSOLUTELY_INTEGRABLE_NORM; ABSOLUTELY_INTEGRABLE_ADD;
##############################################
hol-light-20190729/Multivariate/measure.ml-24683-    GEN_TAC THEN DISCH_TAC THEN REWRITE_TAC[LIFT_DROP; DROP_ADD] THEN
hol-light-20190729/Multivariate/measure.ml:24684:    COND_CASES_TAC THENL [CONV_TAC NORM_ARITH; ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-24685-    ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:24686:  ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Multivariate/measure.ml-24687-   [ABSOLUTELY_INTEGRABLE_NORM; INTEGRAL_ADD; DROP_ADD;
##############################################
hol-light-20190729/Multivariate/measure.ml-24802-    ASM_REWRITE_TAC[OPEN_BALL; CENTRE_IN_BALL; REAL_LT_01] THEN
hol-light-20190729/Multivariate/measure.ml:24803:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-24804-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25046-  EXISTS_TAC `f':real^1->real^1` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:25047:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-25048-  ASM_CASES_TAC `interval[a:real^1,b] = {}` THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25064-        ==> ((f:real^1->real^1) has_vector_derivative f' x) (at x)`
hol-light-20190729/Multivariate/measure.ml:25065:  MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-25066-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25068-          ==> drop(f x) <= drop(f y)`
hol-light-20190729/Multivariate/measure.ml:25069:  MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-25070-  POP_ASSUM_LIST(K ALL_TAC) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25096-    REWRITE_TAC[OPEN_INTERVAL; CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/measure.ml:25097:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-25098-    REWRITE_TAC[OPEN_CLOSED_INTERVAL_1; IN_DIFF; IN_INSERT] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25281-    MAP_EVERY EXISTS_TAC [`f:real^1->real^1`; `x:real^1`] THEN
hol-light-20190729/Multivariate/measure.ml:25282:    ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-25283-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25297-     [ASM_MESON_TAC[IN_INTERVAL_1; SUBSET_INTERVAL_1; REAL_LE_REFL];
hol-light-20190729/Multivariate/measure.ml:25298:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/measure.ml-25299-
##############################################
hol-light-20190729/Multivariate/measure.ml-25333-    DISCH_THEN SUBST1_TAC THEN MATCH_MP_TAC HAS_VECTOR_DERIVATIVE_SUB THEN
hol-light-20190729/Multivariate/measure.ml:25334:    ASM SET_TAC[]) in
hol-light-20190729/Multivariate/measure.ml-25335-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25337-    (TAUT `1 <= i /\ i <= dimindex(:N) ==> 1 <= i /\ i <= dimindex(:N)`)
hol-light-20190729/Multivariate/measure.ml:25338:    (SPECL [`\x. lift((f:real^1->real^N)x$i)`; `a:real^1`; `b:real^1`]
hol-light-20190729/Multivariate/measure.ml-25339-       lemma))))) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25440-  ASM_REWRITE_TAC[NEGLIGIBLE_UNION_EQ; NEGLIGIBLE_INSERT] THEN
hol-light-20190729/Multivariate/measure.ml:25441:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-25442-  X_GEN_TAC `c:real^1` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25469-    ASM_REWRITE_TAC[OPEN_CLOSED_INTERVAL_1; IN_DIFF; IN_INSERT] THEN
hol-light-20190729/Multivariate/measure.ml:25470:    ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/measure.ml-25471-    X_GEN_TAC `d:real` THEN REWRITE_TAC[SUBSET; IN_BALL; IN_DIFF] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25479-      `x:real^1`] THEN
hol-light-20190729/Multivariate/measure.ml:25480:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml-25481-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/measure.ml-25488-                    vector_variation (interval[a,v]) f)`
hol-light-20190729/Multivariate/measure.ml:25489:     (fun th -> MP_TAC th THEN ASM SET_TAC[]) THEN
hol-light-20190729/Multivariate/measure.ml-25490-    REWRITE_TAC[FORALL_LIFT] THEN MATCH_MP_TAC REAL_WLOG_LE THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-25511-    ASM_REWRITE_TAC[IN_DIFF; HAS_VECTOR_DERIVATIVE_AT_1D] THEN
hol-light-20190729/Multivariate/measure.ml:25512:    REPEAT(ANTS_TAC THENL [ASM SET_TAC[]; DISCH_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml-25513-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (ONCE_REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/measure.ml-25519-    SUBGOAL_THEN `x IN interval[a:real^1,b]` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:25520:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-25521-    DISJ_CASES_TAC(REAL_ARITH `drop x <= drop y \/ drop y <= drop x`) THENL
##############################################
hol-light-20190729/Multivariate/measure.ml-25556-    MAP_EVERY EXISTS_TAC [`f:real^1->real^N`; `x:real^1`] THEN
hol-light-20190729/Multivariate/measure.ml:25557:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-25558-    SUBGOAL_THEN `((f:real^1->real^N) has_vector_derivative f' x)
hol-light-20190729/Multivariate/measure.ml-25559-                  (at x within interval[a,b])`
hol-light-20190729/Multivariate/measure.ml:25560:    MP_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC EQ_IMP] THEN
hol-light-20190729/Multivariate/measure.ml-25561-    SIMP_TAC[HAS_VECTOR_DERIVATIVE_WITHIN_1D; HAS_VECTOR_DERIVATIVE_AT_1D] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25563-    REWRITE_TAC[INTERIOR_INTERVAL] THEN
hol-light-20190729/Multivariate/measure.ml:25564:    REWRITE_TAC[OPEN_CLOSED_INTERVAL_1] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-25565-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25580-     [ASM_MESON_TAC[IN_INTERVAL_1; SUBSET_INTERVAL_1; REAL_LE_REFL];
hol-light-20190729/Multivariate/measure.ml:25581:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/measure.ml-25582-
##############################################
hol-light-20190729/Multivariate/measure.ml-25698-  ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:25699:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-25700-    DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC (MP_TAC o SPEC `b:real^1`))] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25702-  ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:25703:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-25704-    DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC (MP_TAC o SPEC `c:real^1`))] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25829-        MP_TAC THENL
hol-light-20190729/Multivariate/measure.ml:25830:         [ASM_REWRITE_TAC[ENDS_IN_INTERVAL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-25831-          REWRITE_TAC[IN_IMAGE; LEFT_AND_EXISTS_THM] THEN
hol-light-20190729/Multivariate/measure.ml-25832-          REWRITE_TAC[RIGHT_AND_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/measure.ml:25833:        REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-25834-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25842-                    {k:real^1->bool | k IN ds /\ ~(k INTER s = {})})` THEN
hol-light-20190729/Multivariate/measure.ml:25843:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-25844-    MATCH_MP_TAC(MESON[REAL_ARITH `&0 < e /\ x <= e / &2 ==> x < e`]
##############################################
hol-light-20190729/Multivariate/measure.ml-25871-       `~(s = {}) /\ (~(s = {}) ==> t = s) ==> t = s`) THEN
hol-light-20190729/Multivariate/measure.ml:25872:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-25873-      REWRITE_TAC[EQ_INTERVAL_1; INTERVAL_NE_EMPTY_1] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25901-     [GEN_TAC THEN DISCH_TAC THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:25902:       [ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-25903-        REWRITE_TAC[INTERVAL_NE_EMPTY_1; LIFT_DROP] THEN REAL_ARITH_TAC;
##############################################
hol-light-20190729/Multivariate/measure.ml-25911-      ASM_REWRITE_TAC[GSYM INTERIOR_INTER] THEN
hol-light-20190729/Multivariate/measure.ml:25912:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-25913-      MATCH_MP_TAC(SET_RULE `s SUBSET t ==> t = {} ==> s = {}`) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25924-      REPEAT(COND_CASES_TAC THEN REWRITE_TAC[LIFT_DROP]) THEN
hol-light-20190729/Multivariate/measure.ml:25925:      ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-25926-      REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_IMAGE] THEN REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25929-      REPEAT(COND_CASES_TAC THEN REWRITE_TAC[LIFT_DROP]) THEN
hol-light-20190729/Multivariate/measure.ml:25930:      ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-25931-      FIRST_ASSUM(MATCH_MP_TAC o MATCH_MP (REAL_ARITH
##############################################
hol-light-20190729/Multivariate/measure.ml-25939-        ASM_REWRITE_TAC[CONTENT_EQ_0_INTERIOR; GSYM INTERIOR_INTER] THEN
hol-light-20190729/Multivariate/measure.ml:25940:        ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-25941-        MATCH_MP_TAC(SET_RULE `s SUBSET t ==> t = {} ==> s = {}`) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25951-        REPEAT(COND_CASES_TAC THEN REWRITE_TAC[LIFT_DROP]) THEN
hol-light-20190729/Multivariate/measure.ml:25952:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-25953-        DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25958-        ASM_CASES_TAC `?a b:real^1. k = interval[a,b]` THENL
hol-light-20190729/Multivariate/measure.ml:25959:         [FIRST_X_ASSUM(CHOOSE_THEN STRIP_ASSUME_TAC); ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-25960-        ASM_REWRITE_TAC[] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25964-        REPEAT(COND_CASES_TAC THEN REWRITE_TAC[LIFT_DROP]) THEN
hol-light-20190729/Multivariate/measure.ml:25965:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-25966-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25969-      ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:25970:       [ASM_REWRITE_TAC[division_of] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-25971-      DISCH_THEN(SUBST1_TAC o SYM o MATCH_MP MEASURE_UNIQUE) THEN
hol-light-20190729/Multivariate/measure.ml-25972-      MATCH_MP_TAC MEASURE_SUBSET THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:25973:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-25974-      MATCH_MP_TAC MEASURABLE_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-25995-    MATCH_MP_TAC MONO_FORALL THEN X_GEN_TAC `t:real^1->bool` THEN
hol-light-20190729/Multivariate/measure.ml:25996:    MP_TAC(ISPEC `s:real^1->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/measure.ml-25997-  let lemma3 = prove
##############################################
hol-light-20190729/Multivariate/measure.ml-26030-    EXISTS_TAC `IMAGE (k:real^1->real^N) u` THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/measure.ml:26031:     [RULE_ASSUM_TAC(REWRITE_RULE[IMAGE_o]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-26032-      MATCH_MP_TAC MEASURABLE_LINEAR_IMAGE_GEN THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26111-  ASM_REWRITE_TAC[REAL_ARITH `x / &2 < p * d <=> x < (&2 * p) * d`] THEN
hol-light-20190729/Multivariate/measure.ml:26112:  REPEAT(ANTS_TAC THENL [ASM SET_TAC[]; DISCH_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml-26113-  EXPAND_TAC "t" THEN REWRITE_TAC[IMAGE_UNION] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26273-         [ASM_MESON_TAC[NEGLIGIBLE_SUBSET; SUBSET_DIFF]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:26274:        MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-26275-      TRANS_TAC SUBSET_TRANS `interior(closure s):real^1->bool` THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26303-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:26304:  ABBREV_TAC `g = \x. lift((f:real^1->real^N) x$i)` THEN
hol-light-20190729/Multivariate/measure.ml-26305-  FIRST_X_ASSUM(K ALL_TAC o SYM) THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26357-  THENL [REWRITE_TAC[o_DEF]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:26358:  SPEC_TAC(`\x. lift((f:real^1->real^N)x$i)`,`f:real^1->real^1`) THEN
hol-light-20190729/Multivariate/measure.ml-26359-  POP_ASSUM(K ALL_TAC) THEN REWRITE_TAC[GSYM I_DEF; I_O_ID] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26364-    REWRITE_TAC[IMAGE_o] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/measure.ml:26365:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/measure.ml-26366-
##############################################
hol-light-20190729/Multivariate/measure.ml-26391-    ASM_SIMP_TAC[NEGLIGIBLE_DIFF; OPEN_CLOSED_INTERVAL_1] THEN
hol-light-20190729/Multivariate/measure.ml:26392:    ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC EQ_IMP] THEN
hol-light-20190729/Multivariate/measure.ml-26393-    MATCH_MP_TAC NEGLIGIBLE_SYMDIFF_EQ THEN MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26416-      MATCH_MP_TAC INTEGRAL_SPIKE] THEN
hol-light-20190729/Multivariate/measure.ml:26417:    EXISTS_TAC `s:real^1->bool` THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-26418-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26440-    ASM_SIMP_TAC[IN_ELIM_THM] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:26441:     [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-26442-      MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN EXISTS_TAC `s:real^1->bool` THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26560-    ASM_REWRITE_TAC[IN_INTER; IN_ELIM_THM; CENTRE_IN_BALL; REAL_HALF] THEN
hol-light-20190729/Multivariate/measure.ml:26561:    ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/measure.ml-26562-    X_GEN_TAC `r':real` THEN REWRITE_TAC[SUBSET_INTER] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26565-     [MP_TAC(ISPECL [`a:real^1`; `b:real^1`] INTERVAL_OPEN_SUBSET_CLOSED) THEN
hol-light-20190729/Multivariate/measure.ml:26566:      ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-26567-      DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26624-    REPEAT STRIP_TAC THEN MATCH_MP_TAC MEASURE_CBALL_BOUND THEN
hol-light-20190729/Multivariate/measure.ml:26625:    MATCH_MP_TAC REAL_LT_IMP_LE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-26626-    REWRITE_TAC[REAL_POW_1; DIMINDEX_1]] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26634-    SUBGOAL_THEN `(x:real^1,r:real) IN k` (ANTE_RES_THEN MP_TAC) THENL
hol-light-20190729/Multivariate/measure.ml:26635:     [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-26636-    FIRST_X_ASSUM(K ALL_TAC o SPECL [`x:real^1`; `r:real`; `x:real^1`]) THEN
hol-light-20190729/Multivariate/measure.ml-26637-    REPEAT(FIRST_X_ASSUM(MP_TAC o SPECL [`x:real^1`; `r:real`]) THEN
hol-light-20190729/Multivariate/measure.ml:26638:           ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml-26639-    FIRST_ASSUM(MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-26680-    (SUBGOAL_THEN `x IN interval(a:real^1,b)` MP_TAC THENL
hol-light-20190729/Multivariate/measure.ml:26681:      [ASM SET_TAC[]; REWRITE_TAC[IN_INTERVAL_1] THEN STRIP_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml-26682-    ASM_SIMP_TAC[REAL_LT_IMP_LE] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26702-  ONCE_REWRITE_TAC[IMP_CONJ] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:26703:   [REWRITE_TAC[IN_IMAGE; EXISTS_PAIR_THM; PAIR_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-26704-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26712-     [`x:real^1`; `r:real`; `x':real^1`; `r':real`]) THEN
hol-light-20190729/Multivariate/measure.ml:26713:    ASM_REWRITE_TAC[PAIR_EQ] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-26714-    MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/measure.ml-26721-     [EXISTS_TAC `cball(x:real^1,r)`; EXISTS_TAC `cball(x':real^1,r')`] THEN
hol-light-20190729/Multivariate/measure.ml:26722:    ASM_SIMP_TAC[] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-26723-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26734-   [REWRITE_TAC[fine; IN_IMAGE; EXISTS_PAIR_THM; PAIR_EQ] THEN
hol-light-20190729/Multivariate/measure.ml:26735:    SIMP_TAC[LEFT_IMP_EXISTS_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-26736-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26738-  ANTS_TAC THENL
hol-light-20190729/Multivariate/measure.ml:26739:   [REWRITE_TAC[FORALL_PAIR_THM; PAIR_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-26740-    MATCH_MP_TAC(REAL_ARITH
##############################################
hol-light-20190729/Multivariate/measure.ml-26745-    SUBGOAL_THEN `(f:real^1->real^1) x = vec 0` SUBST1_TAC THENL
hol-light-20190729/Multivariate/measure.ml:26746:     [ASM SET_TAC[]; REWRITE_TAC[VECTOR_MUL_RZERO]] THEN
hol-light-20190729/Multivariate/measure.ml-26747-    MATCH_MP_TAC REAL_LE_LMUL THEN REWRITE_TAC[REAL_POS] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-26801-      DISCH_THEN(X_CHOOSE_THEN `c:real^1` MP_TAC) THEN
hol-light-20190729/Multivariate/measure.ml:26802:      ASM_CASES_TAC `(c:real^1) IN s` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-26803-      ASM_CASES_TAC `c IN interval[a:real^1,b]` THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-27294-    SUBGOAL_THEN `!n:num. g n SUBSET (s:real^(M,N)finite_sum->bool)`
hol-light-20190729/Multivariate/measure.ml:27295:    ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-27296-    MP_TAC(ISPECL
##############################################
hol-light-20190729/Multivariate/measure.ml-27307-         [ASM_MESON_TAC[MEASURE_PASTECART_ELEMENTARY]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml:27308:        ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-27309-        REWRITE_TAC[bounded; FORALL_IN_GSPEC; NORM_LIFT] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-27332-      ASM_SIMP_TAC[lemur; REAL_ARITH `abs x <= B ==> x <= B`] THEN
hol-light-20190729/Multivariate/measure.ml:27333:      ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-27334-      ASM_REWRITE_TAC[HAS_MEASURE_MEASURABLE_MEASURE; GSYM LIFT_EQ] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-27338-          NEGLIGIBLE_SUBSET)) THEN
hol-light-20190729/Multivariate/measure.ml:27339:        REWRITE_TAC[measurable] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-27340-        MATCH_MP_TAC HAS_INTEGRAL_SPIKE THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-27400-      {y | pastecart x y IN t} DIFF {y | pastecart x y IN s}`] THEN
hol-light-20190729/Multivariate/measure.ml:27401:    MATCH_MP_TAC MEASURE_DIFF_SUBSET THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/measure.ml-27402-  GEN_TAC THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-27468-      CONJ_TAC THEN MATCH_MP_TAC MEASURE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:27469:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-27470-      REWRITE_TAC[bounded; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-27514-      ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:27515:      RULE_ASSUM_TAC(REWRITE_RULE[UNIONS_GSPEC]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-27516-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-27558-        ASM_REWRITE_TAC[];
hol-light-20190729/Multivariate/measure.ml:27559:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-27560-        REWRITE_TAC[UNIONS_GSPEC] THEN SET_TAC[]]];
##############################################
hol-light-20190729/Multivariate/measure.ml-27576-    ASM_SIMP_TAC[] THEN ONCE_REWRITE_TAC[REAL_ABS_SUB] THEN
hol-light-20190729/Multivariate/measure.ml:27577:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-27578-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-27580-   [MATCH_MP_TAC NEGLIGIBLE_SUBSET THEN EXISTS_TAC `t:real^M->bool` THEN
hol-light-20190729/Multivariate/measure.ml:27581:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-27582-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-27589-     [REPEAT STRIP_TAC THEN MATCH_MP_TAC MEASURE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:27590:      ASM_SIMP_TAC[IN_DIFF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-27591-      X_GEN_TAC `x:real^M` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-27602-      CONJ_TAC THEN MATCH_MP_TAC MEASURE_SUBSET THEN
hol-light-20190729/Multivariate/measure.ml:27603:      ASM_SIMP_TAC[IN_DIFF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/measure.ml-27604-      REWRITE_TAC[bounded; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-27823-      CONV_TAC SYM_CONV THEN MATCH_MP_TAC MEASURE_ELEMENTARY THEN
hol-light-20190729/Multivariate/measure.ml:27824:      REWRITE_TAC[division_of] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-27825-    ONCE_REWRITE_TAC[NEGLIGIBLE_ON_INTERVALS] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-27881-      CONV_TAC SYM_CONV THEN MATCH_MP_TAC MEASURE_ELEMENTARY THEN
hol-light-20190729/Multivariate/measure.ml:27882:      REWRITE_TAC[division_of] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/measure.ml-27883-
##############################################
hol-light-20190729/Multivariate/measure.ml-28184-    ONCE_REWRITE_TAC[SET_RULE
hol-light-20190729/Multivariate/measure.ml:28185:     `{x | q <= (f x)$k} = {x | f x IN {y | q <= y$k}}`] THEN
hol-light-20190729/Multivariate/measure.ml-28186-    MATCH_MP_TAC LEBESGUE_MEASURABLE_PREIMAGE_CLOSED THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-28982-      MATCH_MP_TAC(REAL_ARITH
hol-light-20190729/Multivariate/measure.ml:28983:       `abs(x$i) <= norm(x:real^N) /\ norm x <= a ==> abs(x$i) <= a`) THEN
hol-light-20190729/Multivariate/measure.ml-28984-      REWRITE_TAC[COMPONENT_LE_NORM] THEN ASM_REAL_ARITH_TAC];
##############################################
hol-light-20190729/Multivariate/measure.ml-29308-    SUBGOAL_THEN
hol-light-20190729/Multivariate/measure.ml:29309:     `!a x. (lambda i. if i = k then a else x$i):real^N = x`
hol-light-20190729/Multivariate/measure.ml-29310-     (fun th -> REWRITE_TAC[th])
##############################################
hol-light-20190729/Multivariate/measure.ml-29442-    SUBGOAL_THEN
hol-light-20190729/Multivariate/measure.ml:29443:     `!a x. (lambda i. if i = k then a else x$i):real^N = x`
hol-light-20190729/Multivariate/measure.ml-29444-     (fun th -> REWRITE_TAC[th])
##############################################
hol-light-20190729/Multivariate/measure.ml-29509-   `!P. {x | P(g x)} = IMAGE (f:real^N->real^N) {x | P x}`
hol-light-20190729/Multivariate/measure.ml:29510:  MP_TAC THENL [ASM SET_TAC[]; SIMP_TAC[] THEN DISCH_THEN(K ALL_TAC)] THEN
hol-light-20190729/Multivariate/measure.ml-29511-  W(MP_TAC o PART_MATCH (lhand o rand) NEGLIGIBLE_LINEAR_IMAGE_EQ o
##############################################
hol-light-20190729/Multivariate/measure.ml-30128-      ASM_SIMP_TAC[ARITH_RULE `p:num < n ==> (n - p) + p = n`] THEN
hol-light-20190729/Multivariate/measure.ml:30129:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-30130-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-30168-      FIRST_X_ASSUM(MP_TAC o SPECL [`x:real^N`; `y:real^N`]) THEN
hol-light-20190729/Multivariate/measure.ml:30169:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-30170-      MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] REAL_LE_TRANS) THEN
hol-light-20190729/Multivariate/measure.ml-30171-      MATCH_MP_TAC(REAL_ARITH `x <= b /\ y <= b ==> (x + y) / &2 <= b`) THEN
hol-light-20190729/Multivariate/measure.ml:30172:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/measure.ml-30173-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-30294-  ASM_REWRITE_TAC[SUBSET_RESTRICT; CONVEX_BALL] THEN
hol-light-20190729/Multivariate/measure.ml:30295:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml:30296:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/measure.ml-30297-  MP_TAC(ISPECL
##############################################
hol-light-20190729/Multivariate/measure.ml-30531-  ASM_CASES_TAC `1 <= i /\ i <= dimindex(:N)` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/measure.ml:30532:  ABBREV_TAC `g = \x. lift((f:real^M->real^N) x$i)` THEN
hol-light-20190729/Multivariate/measure.ml-30533-  RULE_ASSUM_TAC(REWRITE_RULE[FUN_EQ_THM]) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-30882-      MAP_EVERY EXISTS_TAC [`--u':real^M`; `--v':real^M`]] THEN
hol-light-20190729/Multivariate/measure.ml:30883:    (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/measure.ml-30884-    REWRITE_TAC[VECTOR_ARITH `--a + --b:real^N = --(a + b)`] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-31115-    X_GEN_TAC `i:num` THEN REWRITE_TAC[IN_NUMSEG] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/measure.ml:31116:    FIRST_X_ASSUM(MP_TAC o SPEC `\x. lift((f:real^M->real^N) x$i)`) THEN
hol-light-20190729/Multivariate/measure.ml-31117-    ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-31146-                            (at (x:real^M) within s)`
hol-light-20190729/Multivariate/measure.ml:31147:  MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-31148-  GEN_REWRITE_TAC (LAND_CONV o BINDER_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-31290-       `bounded(IMAGE (f:real^M->real^1) (b(i:num) INTER s))`
hol-light-20190729/Multivariate/measure.ml:31291:      MP_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[BOUNDED_POS]] THEN
hol-light-20190729/Multivariate/measure.ml-31292-      REWRITE_TAC[LEFT_IMP_EXISTS_THM; FORALL_IN_IMAGE; NORM_1] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-31329-       `bounded(IMAGE (f:real^M->real^1) (b(i:num) INTER s))`
hol-light-20190729/Multivariate/measure.ml:31330:      MP_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[BOUNDED_POS]] THEN
hol-light-20190729/Multivariate/measure.ml-31331-      REWRITE_TAC[LEFT_IMP_EXISTS_THM; FORALL_IN_IMAGE; NORM_1] THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-31344-    SUBGOAL_THEN `(x:real^M) IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:31345:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-31346-    X_CHOOSE_TAC `M:num` (SPEC `(B:real^M->real) x` REAL_ARCH_SIMPLE) THEN
##############################################
hol-light-20190729/Multivariate/measure.ml-31457-  SUBGOAL_THEN `(a:real^M) IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/measure.ml:31458:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/measure.ml-31459-  GEN_REWRITE_TAC I [GSYM CONTRAPOS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-120-  REPEAT STRIP_TAC THEN REWRITE_TAC[GSYM UNIONS_2] THEN
hol-light-20190729/Multivariate/metric.ml:121:  MATCH_MP_TAC OPEN_IN_UNIONS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-122-
##############################################
hol-light-20190729/Multivariate/metric.ml-148-  FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_UNIONS) THEN
hol-light-20190729/Multivariate/metric.ml:149:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-150-
##############################################
hol-light-20190729/Multivariate/metric.ml-180-  REPEAT GEN_TAC THEN REWRITE_TAC[closed_in] THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:181:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-182-  SUBGOAL_THEN `topspace top DIFF INTERS k :A->bool =
hol-light-20190729/Multivariate/metric.ml-183-                UNIONS {topspace top DIFF s | s IN k}` SUBST1_TAC
hol-light-20190729/Multivariate/metric.ml:184:  THENL [ALL_TAC; MATCH_MP_TAC OPEN_IN_UNIONS THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-185-  GEN_REWRITE_TAC I [EXTENSION] THEN ONCE_REWRITE_TAC[SIMPLE_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-191-  REPEAT STRIP_TAC THEN REWRITE_TAC[GSYM INTERS_2] THEN
hol-light-20190729/Multivariate/metric.ml:192:  MATCH_MP_TAC CLOSED_IN_INTERS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-193-
##############################################
hol-light-20190729/Multivariate/metric.ml-341-      MATCH_MP_TAC OPEN_IN_UNIONS THEN REWRITE_TAC[FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:342:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-343-
##############################################
hol-light-20190729/Multivariate/metric.ml-509-  REWRITE_TAC[OPEN_IN_SUBTOPOLOGY] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/metric.ml:510:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-511-
##############################################
hol-light-20190729/Multivariate/metric.ml-550-               OPEN_IN_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:551:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-552-
##############################################
hol-light-20190729/Multivariate/metric.ml-648-    DISCH_TAC THEN EXISTS_TAC `topspace top:A->bool` THEN
hol-light-20190729/Multivariate/metric.ml:649:    REWRITE_TAC[OPEN_IN_TOPSPACE] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-650-
##############################################
hol-light-20190729/Multivariate/metric.ml-657-    DISCH_TAC THEN EXISTS_TAC `topspace top:A->bool` THEN
hol-light-20190729/Multivariate/metric.ml:658:    REWRITE_TAC[CLOSED_IN_TOPSPACE] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-659-
##############################################
hol-light-20190729/Multivariate/metric.ml-666-      ASSUME_TAC(MATCH_MP OPEN_IN_SUBSET th)) THEN
hol-light-20190729/Multivariate/metric.ml:667:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-668-    DISCH_TAC THEN EXISTS_TAC `u:A->bool` THEN
hol-light-20190729/Multivariate/metric.ml:669:    FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-670-
##############################################
hol-light-20190729/Multivariate/metric.ml-706-  REWRITE_TAC[closed_in; OPEN_IN_SUBTOPOLOGY] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:707:  EXISTS_TAC `topspace top DIFF t:A->bool` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-708-
##############################################
hol-light-20190729/Multivariate/metric.ml-714-  REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:715:  EXISTS_TAC `topspace top DIFF t:A->bool` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-716-
##############################################
hol-light-20190729/Multivariate/metric.ml-725-  EXISTS_TAC `s' INTER t':A->bool` THEN ASM_SIMP_TAC[OPEN_IN_INTER] THEN
hol-light-20190729/Multivariate/metric.ml:726:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-727-
##############################################
hol-light-20190729/Multivariate/metric.ml-736-  EXISTS_TAC `s' INTER t':A->bool` THEN ASM_SIMP_TAC[CLOSED_IN_INTER] THEN
hol-light-20190729/Multivariate/metric.ml:737:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-738-
##############################################
hol-light-20190729/Multivariate/metric.ml-765-  REPEAT STRIP_TAC THEN MATCH_MP_TAC ARBITRARY_UNION_OF_UNIONS THEN
hol-light-20190729/Multivariate/metric.ml:766:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-767-
##############################################
hol-light-20190729/Multivariate/metric.ml-806-      EXISTS_TAC `{v:A->bool | v IN B /\ v SUBSET u}` THEN
hol-light-20190729/Multivariate/metric.ml:807:      REWRITE_TAC[UNIONS_GSPEC; IN_ELIM_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:808:      REPEAT STRIP_TAC THEN MATCH_MP_TAC OPEN_IN_UNIONS THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-809-
##############################################
hol-light-20190729/Multivariate/metric.ml-816-   `open_in top = P ==> topology P = top`) THEN
hol-light-20190729/Multivariate/metric.ml:817:  REWRITE_TAC[OPEN_IN_TOPOLOGY_BASE_UNIQUE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-818-
##############################################
hol-light-20190729/Multivariate/metric.ml-829-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] UNION_OF_MONO) THEN
hol-light-20190729/Multivariate/metric.ml:830:  REWRITE_TAC[ARBITRARY_UNION_OF_ALT] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-831-
##############################################
hol-light-20190729/Multivariate/metric.ml-961-  REWRITE_TAC[FORALL_UNWIND_THM2; IN_INTER; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/metric.ml:962:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-963-
##############################################
hol-light-20190729/Multivariate/metric.ml-1010-  ASM_REWRITE_TAC[] THEN EQ_TAC THEN DISCH_TAC THENL
hol-light-20190729/Multivariate/metric.ml:1011:   [DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `{a:A}`) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-1012-    X_GEN_TAC `u:A->bool` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml-1013-    ASM_CASES_TAC `u = {a:A}` THENL [ASM_MESON_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:1014:    FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-1015-
##############################################
hol-light-20190729/Multivariate/metric.ml-1045-  MATCH_MP_TAC SUBTOPOLOGY_EQ_DISCRETE_TOPOLOGY THEN
hol-light-20190729/Multivariate/metric.ml:1046:  REWRITE_TAC[GSYM DERIVED_SET_OF_RESTRICT] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-1047-
##############################################
hol-light-20190729/Multivariate/metric.ml-1161-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC CLOSURE_OF_MONO THEN
hol-light-20190729/Multivariate/metric.ml:1162:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-1163-
##############################################
hol-light-20190729/Multivariate/metric.ml-1190-  GEN_REWRITE_TAC RAND_CONV [OPEN_IN_SUBOPEN] THEN
hol-light-20190729/Multivariate/metric.ml:1191:  MP_TAC(ISPEC `top:A topology` OPEN_IN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-1192-
##############################################
hol-light-20190729/Multivariate/metric.ml-1231-  ASM_CASES_TAC `t INTER s:A->bool = s` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:1232:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-1233-
##############################################
hol-light-20190729/Multivariate/metric.ml-1302-        CLOSURE_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:1303:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-1304-
##############################################
hol-light-20190729/Multivariate/metric.ml-1390-    MATCH_MP CLOSURE_OF_OPEN_IN_INTER_CLOSURE_OF) THEN
hol-light-20190729/Multivariate/metric.ml:1391:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-1392-
##############################################
hol-light-20190729/Multivariate/metric.ml-1622-  REWRITE_TAC[TAUT `(p /\ q) /\ r <=> q /\ p /\ r`] THEN
hol-light-20190729/Multivariate/metric.ml:1623:  REWRITE_TAC[UNWIND_THM2] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-1624-
##############################################
hol-light-20190729/Multivariate/metric.ml-1802-     rand o lhand o snd) THEN
hol-light-20190729/Multivariate/metric.ml:1803:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-1804-
##############################################
hol-light-20190729/Multivariate/metric.ml-1856-  REPEAT GEN_TAC THEN ASM_CASES_TAC `(s:A->bool) SUBSET topspace top` THENL
hol-light-20190729/Multivariate/metric.ml:1857:   [ASM_SIMP_TAC[GSYM FRONTIER_OF_DISJOINT_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:1858:    EQ_TAC THENL [ASM SET_TAC[]; ASM_MESON_TAC[OPEN_IN_SUBSET]]]);;
hol-light-20190729/Multivariate/metric.ml-1859-
##############################################
hol-light-20190729/Multivariate/metric.ml-1903-  W(MP_TAC o PART_MATCH lhand FRONTIER_OF_UNION_SUBSET o lhand o snd) THEN
hol-light-20190729/Multivariate/metric.ml:1904:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-1905-
##############################################
hol-light-20190729/Multivariate/metric.ml-2085-  REPEAT GEN_TAC THEN REWRITE_TAC[locally_finite_in] THEN
hol-light-20190729/Multivariate/metric.ml:2086:  STRIP_TAC THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-2087-  X_GEN_TAC `x:A` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2091-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] FINITE_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:2092:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2093-
##############################################
hol-light-20190729/Multivariate/metric.ml-2099-  REWRITE_TAC[FORALL_IN_GSPEC] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:2100:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-2101-  X_GEN_TAC `x:A` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2109-        FINITE_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:2110:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2111-
##############################################
hol-light-20190729/Multivariate/metric.ml-2137-    REPEAT(MATCH_MP_TAC MONO_AND THEN REWRITE_TAC[]) THEN
hol-light-20190729/Multivariate/metric.ml:2138:    MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] FINITE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-2139-    EXISTS_TAC `topspace top DIFF s:A->bool` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2141-    MATCH_MP_TAC(MESON[FINITE_EMPTY] `s = {} ==> FINITE s`) THEN
hol-light-20190729/Multivariate/metric.ml:2142:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-2143-
##############################################
hol-light-20190729/Multivariate/metric.ml-2160-    MATCH_MP_TAC CLOSED_IN_UNIONS THEN ASM_SIMP_TAC[IN_ELIM_THM];
hol-light-20190729/Multivariate/metric.ml:2161:    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-2162-
##############################################
hol-light-20190729/Multivariate/metric.ml-2191-  X_GEN_TAC `s:A->bool` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:2192:  MATCH_MP_TAC CLOSURE_OF_MONO THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2193-
##############################################
hol-light-20190729/Multivariate/metric.ml-2201-  RULE_ASSUM_TAC(REWRITE_RULE[locally_finite_in]) THEN
hol-light-20190729/Multivariate/metric.ml:2202:  MP_TAC(ISPEC `top:A topology` CLOSURE_OF_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2203-
##############################################
hol-light-20190729/Multivariate/metric.ml-2237-  DISCH_THEN(MP_TAC o MATCH_MP CONTINUOUS_MAP_IMAGE_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:2238:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2239-
##############################################
hol-light-20190729/Multivariate/metric.ml-2254-  REWRITE_TAC[SUBSET_RESTRICT] THEN MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/metric.ml:2255:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2256-
##############################################
hol-light-20190729/Multivariate/metric.ml-2304-  CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:2305:   [ALL_TAC; MATCH_MP_TAC CLOSURE_OF_MONO THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-2306-  MP_TAC(SET_RULE `(topspace top INTER s:A->bool) SUBSET topspace top`) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2313-      ==> s SUBSET {x | x IN s' /\ f x IN t'}`) THEN
hol-light-20190729/Multivariate/metric.ml:2314:    CONJ_TAC THEN MATCH_MP_TAC CLOSURE_OF_SUBSET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-2315-    MATCH_MP_TAC CLOSED_IN_CONTINUOUS_MAP_PREIMAGE_GEN THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2353-    MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] SUBSET_TRANS) THEN
hol-light-20190729/Multivariate/metric.ml:2354:    MATCH_MP_TAC CLOSURE_OF_MINIMAL THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-2355-
##############################################
hol-light-20190729/Multivariate/metric.ml-2364-    CLOSURE_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:2365:  REWRITE_TAC[GSYM CLOSURE_OF_RESTRICT] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2366-
##############################################
hol-light-20190729/Multivariate/metric.ml-2383-  STRIP_TAC THEN REWRITE_TAC[CONTINUOUS_MAP_CLOSED_IN] THEN
hol-light-20190729/Multivariate/metric.ml:2384:  (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-2385-  X_GEN_TAC `t:B->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2444-   (fun th -> ASM_SIMP_TAC[th; CONTINUOUS_MAP_CLOSURE_PREIMAGE_SUBSET]) THEN
hol-light-20190729/Multivariate/metric.ml:2445:  RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2446-
##############################################
hol-light-20190729/Multivariate/metric.ml-2469-  ASM_CASES_TAC `(c:B) IN topspace top2` THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/metric.ml:2470:   [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-2471-  X_GEN_TAC `u:B->bool` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2480-  REPEAT GEN_TAC THEN REWRITE_TAC[continuous_map; o_THM] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:2481:  CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `u:C->bool`] THEN
hol-light-20190729/Multivariate/metric.ml-2482-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2484-    {x:A | x IN  topspace top /\ f x IN {y | y IN topspace top' /\ g y IN u}}`
hol-light-20190729/Multivariate/metric.ml:2485:  SUBST1_TAC THENL [ASM SET_TAC[]; ASM SIMP_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-2486-
##############################################
hol-light-20190729/Multivariate/metric.ml-2492-  REWRITE_TAC[continuous_map] THEN
hol-light-20190729/Multivariate/metric.ml:2493:  MATCH_MP_TAC MONO_AND THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-2494-  MATCH_MP_TAC MONO_FORALL THEN GEN_TAC THEN
hol-light-20190729/Multivariate/metric.ml-2495-  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/metric.ml:2496:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2497-
##############################################
hol-light-20190729/Multivariate/metric.ml-2504-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] CONTINUOUS_MAP_EQ) THEN
hol-light-20190729/Multivariate/metric.ml:2505:  REWRITE_TAC[RESTRICTION] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2506-
##############################################
hol-light-20190729/Multivariate/metric.ml-2514-  EQ_TAC THEN SIMP_TAC[] THENL
hol-light-20190729/Multivariate/metric.ml:2515:  [INTRO_TAC "img cont" THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-2516-   INTRO_TAC "!u; u" THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2521-   REMOVE_THEN "cont" MATCH_MP_TAC THEN EXISTS_TAC `u:B->bool` THEN
hol-light-20190729/Multivariate/metric.ml:2522:   ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-2523-   INTRO_TAC "(img cont) img'" THEN
hol-light-20190729/Multivariate/metric.ml:2524:   CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-2525-   INTRO_TAC "!u; @t. t ueq" THEN REMOVE_THEN "ueq" SUBST_VAR_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2529-     (fun th -> ASM_REWRITE_TAC[th]) THEN
hol-light-20190729/Multivariate/metric.ml:2530:   ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-2531-
##############################################
hol-light-20190729/Multivariate/metric.ml-2581-  ASM_SIMP_TAC[SET_RULE `s SUBSET t ==> t INTER s = s`] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:2582:  CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `u:B->bool` THEN DISCH_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-2583-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2587-  SUBST1_TAC THENL
hol-light-20190729/Multivariate/metric.ml:2588:   [REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-2589-    MATCH_MP_TAC OPEN_IN_UNIONS THEN REWRITE_TAC[FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2605-    MAP_EVERY EXISTS_TAC [`f:K->A->B`; `t:K->A->bool`; `k:K->bool`] THEN
hol-light-20190729/Multivariate/metric.ml:2606:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:2607:    RULE_ASSUM_TAC(REWRITE_RULE[OPEN_IN_CLOSED_IN_EQ]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-2608-
##############################################
hol-light-20190729/Multivariate/metric.ml-2625-  ASM_SIMP_TAC[SET_RULE `s SUBSET t ==> t INTER s = s`] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:2626:  CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `u:B->bool` THEN DISCH_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-2627-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2631-  SUBST1_TAC THENL
hol-light-20190729/Multivariate/metric.ml:2632:   [REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-2633-    MATCH_MP_TAC CLOSED_IN_LOCALLY_FINITE_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2638-    CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:2639:     [REWRITE_TAC[FORALL_IN_GSPEC] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-2640-    X_GEN_TAC `x:A` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2665-    MAP_EVERY EXISTS_TAC [`f:K->A->B`; `t:K->A->bool`; `k:K->bool`] THEN
hol-light-20190729/Multivariate/metric.ml:2666:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:2667:    RULE_ASSUM_TAC(REWRITE_RULE[closed_in]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-2668-
##############################################
hol-light-20190729/Multivariate/metric.ml-2718-  ASM_REWRITE_TAC[FINITE_INSERT; CLOSED_IN_CLOSURE_OF; FINITE_EMPTY] THEN
hol-light-20190729/Multivariate/metric.ml:2719:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN MATCH_MP_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-2720-  MP_TAC(ISPECL [`top:A topology`; `topspace top INTER {x:A | P x}`]
##############################################
hol-light-20190729/Multivariate/metric.ml-2724-  REWRITE_TAC[INTER_SUBSET; GSYM CLOSURE_OF_RESTRICT] THEN
hol-light-20190729/Multivariate/metric.ml:2725:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2726-
##############################################
hol-light-20190729/Multivariate/metric.ml-2764-    MATCH_MP_TAC CLOSURE_OF_MONO THEN
hol-light-20190729/Multivariate/metric.ml:2765:    RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-2766-    GEN_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-2768-      CONTINUOUS_MAP_FRONTIER_FRONTIER_PREIMAGE_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:2769:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-2770-
##############################################
hol-light-20190729/Multivariate/metric.ml-2789-  ASM_REWRITE_TAC[SET_RULE `(s UNION t) INTER t = t`] THENL
hol-light-20190729/Multivariate/metric.ml:2790:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-2791-  TRANS_TAC SUBSET_TRANS `(s UNION t) INTER top closure_of t:A->bool` THEN
hol-light-20190729/Multivariate/metric.ml:2792:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-2793-  MATCH_MP_TAC(SET_RULE `t SUBSET u ==> (s INTER t) SUBSET (s INTER u)`) THEN
hol-light-20190729/Multivariate/metric.ml:2794:  MATCH_MP_TAC CLOSURE_OF_MONO THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2795-
##############################################
hol-light-20190729/Multivariate/metric.ml-2837-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/metric.ml:2838:  FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2839-
##############################################
hol-light-20190729/Multivariate/metric.ml-2851-   [REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:2852:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-2853-    ASM_SIMP_TAC[OPEN_IN_INTER]]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-2898-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/metric.ml:2899:  FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2900-
##############################################
hol-light-20190729/Multivariate/metric.ml-2918-   [REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:2919:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-2920-    ASM_SIMP_TAC[CLOSED_IN_INTER]]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-2936-  EXISTS_TAC `IMAGE (f:A->B) u` THEN ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:2937:  FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2938-
##############################################
hol-light-20190729/Multivariate/metric.ml-2945-  EXISTS_TAC `IMAGE (f:A->B) u` THEN ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:2946:  FIRST_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2947-
##############################################
hol-light-20190729/Multivariate/metric.ml-2974-  ASM_REWRITE_TAC[closed_in] THEN
hol-light-20190729/Multivariate/metric.ml:2975:  DISCH_THEN(fun th -> CONJ_TAC THENL [ASM SET_TAC[]; MP_TAC th]) THEN
hol-light-20190729/Multivariate/metric.ml-2976-  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/metric.ml:2977:  FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2978-
##############################################
hol-light-20190729/Multivariate/metric.ml-2989-  ASM_REWRITE_TAC[OPEN_IN_CLOSED_IN_EQ] THEN
hol-light-20190729/Multivariate/metric.ml:2990:  DISCH_THEN(fun th -> CONJ_TAC THENL [ASM SET_TAC[]; MP_TAC th]) THEN
hol-light-20190729/Multivariate/metric.ml-2991-  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/metric.ml:2992:  FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-2993-
##############################################
hol-light-20190729/Multivariate/metric.ml-3027-  EXISTS_TAC `IMAGE (f:A->B) t` THEN ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:3028:  FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3029-
##############################################
hol-light-20190729/Multivariate/metric.ml-3037-  EXISTS_TAC `IMAGE (f:A->B) t` THEN ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:3038:  FIRST_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3039-
##############################################
hol-light-20190729/Multivariate/metric.ml-3056-    ASM_SIMP_TAC[CLOSURE_OF_CLOSED_IN; GSYM CLOSURE_OF_SUBSET_EQ] THEN
hol-light-20190729/Multivariate/metric.ml:3057:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-3058-
##############################################
hol-light-20190729/Multivariate/metric.ml-3108-                 OPEN_IN_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:3109:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-3110-    STRIP_TAC THEN REWRITE_TAC[open_map] THEN X_GEN_TAC `c:A->bool` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-3114-    ASM_SIMP_TAC[CLOSED_IN_DIFF; CLOSED_IN_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:3115:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-3116-    DISCH_THEN(X_CHOOSE_THEN `v:B->bool` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/metric.ml-3117-    SUBGOAL_THEN `IMAGE (f:A->B) c = topspace top' DIFF v` SUBST1_TAC THENL
hol-light-20190729/Multivariate/metric.ml:3118:     [FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-3119-      ASM_SIMP_TAC[OPEN_IN_DIFF; OPEN_IN_TOPSPACE]]]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-3137-                 CLOSED_IN_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:3138:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-3139-    STRIP_TAC THEN REWRITE_TAC[closed_map] THEN X_GEN_TAC `c:A->bool` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-3143-    ASM_SIMP_TAC[OPEN_IN_DIFF; OPEN_IN_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:3144:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-3145-    DISCH_THEN(X_CHOOSE_THEN `v:B->bool` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/metric.ml-3146-    SUBGOAL_THEN `IMAGE (f:A->B) c = topspace top' DIFF v` SUBST1_TAC THENL
hol-light-20190729/Multivariate/metric.ml:3147:     [FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-3148-      ASM_SIMP_TAC[CLOSED_IN_DIFF; CLOSED_IN_TOPSPACE]]]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-3168-  EXISTS_TAC `UNIONS { (vv:B->B->bool) y | y IN t}` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:3169:   [MATCH_MP_TAC OPEN_IN_UNIONS THEN ASM SET_TAC[]; ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-3170-
##############################################
hol-light-20190729/Multivariate/metric.ml-3222-    FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:3223:    RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-3224-
##############################################
hol-light-20190729/Multivariate/metric.ml-3240-    FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:3241:    RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-3242-    MATCH_MP_TAC CLOSED_IN_CONTINUOUS_MAP_PREIMAGE THEN ASM_MESON_TAC[]]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-3257-    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:3258:    RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-3259-
##############################################
hol-light-20190729/Multivariate/metric.ml-3275-    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:3276:    RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-3277-    MATCH_MP_TAC OPEN_IN_CONTINUOUS_MAP_PREIMAGE THEN ASM_MESON_TAC[]]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-3329-  DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
hol-light-20190729/Multivariate/metric.ml:3330:  MATCH_MP_TAC MONO_AND THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-3331-  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ABS_TAC THEN
hol-light-20190729/Multivariate/metric.ml-3332-  AP_TERM_TAC THEN AP_THM_TAC THEN AP_TERM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/metric.ml:3333:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3334-
##############################################
hol-light-20190729/Multivariate/metric.ml-3343-  ASM_SIMP_TAC[SUBSET_RESTRICT] THEN DISCH_THEN(SUBST1_TAC o SYM) THEN
hol-light-20190729/Multivariate/metric.ml:3344:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3345-
##############################################
hol-light-20190729/Multivariate/metric.ml-3352-  REWRITE_TAC[quotient_map; continuous_map; IMAGE_o; o_THM] THEN
hol-light-20190729/Multivariate/metric.ml:3353:  STRIP_TAC THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-3354-  X_GEN_TAC `w:C->bool` THEN DISCH_TAC THEN EQ_TAC THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-3361-         f x IN {y | y IN topspace top' /\ g y IN w}}`
hol-light-20190729/Multivariate/metric.ml:3362:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-3363-  MATCH_MP_TAC OPEN_IN_CONTINUOUS_MAP_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-3390-  DISCH_THEN(SUBST1_TAC o SYM) THEN
hol-light-20190729/Multivariate/metric.ml:3391:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3392-
##############################################
hol-light-20190729/Multivariate/metric.ml-3402-  DISCH_THEN(ANTE_RES_THEN MP_TAC) THEN
hol-light-20190729/Multivariate/metric.ml:3403:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3404-
##############################################
hol-light-20190729/Multivariate/metric.ml-3414-  DISCH_THEN(ANTE_RES_THEN MP_TAC) THEN
hol-light-20190729/Multivariate/metric.ml:3415:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3416-
##############################################
hol-light-20190729/Multivariate/metric.ml-3452-   (MP_TAC o SPEC `IMAGE (f:A->B) u`)) THEN
hol-light-20190729/Multivariate/metric.ml:3453:  (ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)]) THEN
hol-light-20190729/Multivariate/metric.ml-3454-  SUBGOAL_THEN `{x | x IN topspace top /\ (f:A->B) x IN IMAGE f u} = u`
hol-light-20190729/Multivariate/metric.ml-3455-   (fun th -> ASM_REWRITE_TAC[th]) THEN
hol-light-20190729/Multivariate/metric.ml:3456:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3457-
##############################################
hol-light-20190729/Multivariate/metric.ml-3464-  REWRITE_TAC[quotient_map; continuous_map; o_THM] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:3465:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-3466-  X_GEN_TAC `v:C->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-3470-  ASM_REWRITE_TAC[IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/metric.ml:3471:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3472-
##############################################
hol-light-20190729/Multivariate/metric.ml-3507-  ASM_SIMP_TAC[TOPSPACE_SUBTOPOLOGY; SUBSET_INTER] THEN
hol-light-20190729/Multivariate/metric.ml:3508:  (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-3509-  ASM_SIMP_TAC[OPEN_IN_OPEN_SUBTOPOLOGY; CLOSED_IN_CLOSED_SUBTOPOLOGY] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-3514-  REPEAT STRIP_TAC THEN EQ_TAC THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:3515:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3516-
##############################################
hol-light-20190729/Multivariate/metric.ml-3533-    FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:3534:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-3535-    UNDISCH_TAC `open_in top (u:A->bool)` THEN
hol-light-20190729/Multivariate/metric.ml:3536:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-3537-    X_GEN_TAC `v:B->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-3539-     `{x | x IN topspace top /\ (f:A->B) x IN v}`) THEN
hol-light-20190729/Multivariate/metric.ml:3540:    ASM_REWRITE_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:3541:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-3542-
##############################################
hol-light-20190729/Multivariate/metric.ml-3559-    FIRST_ASSUM(ASSUME_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:3560:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-3561-    UNDISCH_TAC `closed_in top (u:A->bool)` THEN
hol-light-20190729/Multivariate/metric.ml:3562:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-3563-    X_GEN_TAC `v:B->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-3565-     `{x | x IN topspace top /\ (f:A->B) x IN v}`) THEN
hol-light-20190729/Multivariate/metric.ml:3566:    ASM_REWRITE_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:3567:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-3568-
##############################################
hol-light-20190729/Multivariate/metric.ml-3584-  ASM_SIMP_TAC[OPEN_IN_SUBSET_TOPSPACE; OPEN_IN_SUBSET] THEN
hol-light-20190729/Multivariate/metric.ml:3585:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3586-
##############################################
hol-light-20190729/Multivariate/metric.ml-3604-    RULE_ASSUM_TAC(REWRITE_RULE[quotient_map; continuous_map]) THEN
hol-light-20190729/Multivariate/metric.ml:3605:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-3606-
##############################################
hol-light-20190729/Multivariate/metric.ml-3721-  GEN_REWRITE_TAC (RAND_CONV o BINOP_CONV) [OPEN_IN_SUBOPEN] THEN
hol-light-20190729/Multivariate/metric.ml:3722:  REWRITE_TAC[SUBSET_CROSS] THEN EQ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-3723-  DISCH_TAC THEN MAP_EVERY X_GEN_TAC [`x:A`; `y:B`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-3725-   (MP_TAC o SPEC `x:A`) (MP_TAC o SPEC `y:B`)) THEN
hol-light-20190729/Multivariate/metric.ml:3726:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3727-
##############################################
hol-light-20190729/Multivariate/metric.ml-3779-  SUBGOAL_THEN `((u CROSS v):A#B->bool) SUBSET s CROSS t` MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:3780:   [ASM SET_TAC[]; REWRITE_TAC[SUBSET_CROSS]] THEN
hol-light-20190729/Multivariate/metric.ml:3781:  ASM_CASES_TAC `u:A->bool = {}` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:3782:  ASM_CASES_TAC `v:B->bool = {}` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-3783-  ASM_REWRITE_TAC[interior_of; IN_ELIM_THM] THEN ASM_MESON_TAC[]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-3813-    ASM_REWRITE_TAC[IN_CROSS; OPEN_IN_CROSS; OPEN_IN_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:3814:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-3815-    X_GEN_TAC `w:B#C->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-3828-    RULE_ASSUM_TAC(REWRITE_RULE[SUBSET; FORALL_PAIR_THM; IN_CROSS]) THEN
hol-light-20190729/Multivariate/metric.ml:3829:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-3830-
##############################################
hol-light-20190729/Multivariate/metric.ml-3880-  REWRITE_TAC[IMAGE_FST_CROSS; IMAGE_SND_CROSS] THEN
hol-light-20190729/Multivariate/metric.ml:3881:  COND_CASES_TAC THEN ASM_REWRITE_TAC[SUBSET_REFL] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-3882-
##############################################
hol-light-20190729/Multivariate/metric.ml-3986-  CONJ_TAC THENL [ASM_MESON_TAC[open_map]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:3987:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-3988-  FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [SUBSET]) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-4129-  REWRITE_TAC[IN_INTER; IN_ELIM_THM; cartesian_product] THEN
hol-light-20190729/Multivariate/metric.ml:4130:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-4131-
##############################################
hol-light-20190729/Multivariate/metric.ml-4165-  RULE_ASSUM_TAC(REWRITE_RULE[TOPSPACE_PRODUCT_TOPOLOGY_ALT]) THEN
hol-light-20190729/Multivariate/metric.ml:4166:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-4167-
##############################################
hol-light-20190729/Multivariate/metric.ml-4276-    `!x. x IN topspace top ==> EXTENSIONAL t ((f:A->K->B) x)`
hol-light-20190729/Multivariate/metric.ml:4277:  THENL [ASM_SIMP_TAC[]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-4278-  ASM_CASES_TAC
##############################################
hol-light-20190729/Multivariate/metric.ml-4280-           ==> (f:A->K->B) x k IN topspace(tops k)`
hol-light-20190729/Multivariate/metric.ml:4281:  THENL [ASM_SIMP_TAC[]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-4282-  MATCH_MP_TAC(TAUT `q /\ (p <=> r) ==> (p <=> q /\ r)`) THEN
hol-light-20190729/Multivariate/metric.ml:4283:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-4284-  REWRITE_TAC[RIGHT_IMP_FORALL_THM; IMP_IMP] THEN EQ_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-4300-      MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/metric.ml:4301:      REWRITE_TAC[TOPSPACE_PRODUCT_TOPOLOGY_ALT] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-4302-    DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-4319-    SUBST1_TAC THENL
hol-light-20190729/Multivariate/metric.ml:4320:     [REWRITE_TAC[TOPSPACE_PRODUCT_TOPOLOGY_ALT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-4321-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-4383-    REWRITE_TAC[TOPSPACE_PRODUCT_TOPOLOGY_ALT; EXTENSIONAL; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/metric.ml:4384:    ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-4385-  MATCH_MP_TAC(MESON[continuous_map]
##############################################
hol-light-20190729/Multivariate/metric.ml-4390-   [REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; EXTENSIONAL; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/metric.ml:4391:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-4392-    X_GEN_TAC `j:K` THEN ASM_CASES_TAC `j:K = k` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-4442-  DISCH_THEN(X_CHOOSE_THEN `u:K->A->bool` STRIP_ASSUME_TAC) THENL
hol-light-20190729/Multivariate/metric.ml:4443:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-4444-  FIRST_ASSUM(MATCH_MP_TAC o MATCH_MP
##############################################
hol-light-20190729/Multivariate/metric.ml-4520-        MATCH_MP_TAC RELATIVE_TO_INC THEN
hol-light-20190729/Multivariate/metric.ml:4521:        MATCH_MP_TAC FINITE_INTERSECTION_OF_INC THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-4522-      REWRITE_TAC[EXTENSION; IN_INTER; NOT_IN_EMPTY; NOT_FORALL_THM] THEN
hol-light-20190729/Multivariate/metric.ml:4523:      REWRITE_TAC[cartesian_product; IN_ELIM_THM; o_DEF] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-4524-    DISCH_TAC THEN X_GEN_TAC `u:(K->A)->bool` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-4614-      ASM_SIMP_TAC[open_map];
hol-light-20190729/Multivariate/metric.ml:4615:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-4616-      FIRST_ASSUM(MP_TAC o ISPEC `\x:K->A. x i` o MATCH_MP IMAGE_SUBSET) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-4812-    AP_TERM_TAC THEN AP_TERM_TAC THEN AP_THM_TAC THEN
hol-light-20190729/Multivariate/metric.ml:4813:    AP_TERM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-4814-
##############################################
hol-light-20190729/Multivariate/metric.ml-5013-    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:5014:    REWRITE_TAC[o_THM; PAIR_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-5015-    X_GEN_TAC `j:K` THEN DISCH_TAC THEN REWRITE_TAC[IN_IMAGE; PAIR_EQ] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-5027-    FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:5028:    REWRITE_TAC[o_THM; PAIR_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-5029-    X_GEN_TAC `j:K` THEN DISCH_TAC THEN REWRITE_TAC[IN_IMAGE; PAIR_EQ] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-5094-   (MP_TAC o MATCH_MP CONTINUOUS_MAP_IMAGE_SUBSET_TOPSPACE)) THEN
hol-light-20190729/Multivariate/metric.ml:5095:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5096-
##############################################
hol-light-20190729/Multivariate/metric.ml-5109-  ASM_CASES_TAC `topspace top':A->bool = topspace top` THENL
hol-light-20190729/Multivariate/metric.ml:5110:   [ASM_REWRITE_TAC[]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-5111-  ASM_SIMP_TAC[OPEN_IN_SUBSET; SET_RULE
##############################################
hol-light-20190729/Multivariate/metric.ml-5156-   (MP_TAC o MATCH_MP CONTINUOUS_MAP_IMAGE_SUBSET_TOPSPACE)) THEN
hol-light-20190729/Multivariate/metric.ml:5157:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5158-
##############################################
hol-light-20190729/Multivariate/metric.ml-5244-  FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:5245:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5246-
##############################################
hol-light-20190729/Multivariate/metric.ml-5257-  FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:5258:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5259-
##############################################
hol-light-20190729/Multivariate/metric.ml-5277-   (FIRST_X_ASSUM(MP_TAC o MATCH_MP CONTINUOUS_MAP_IMAGE_SUBSET_TOPSPACE)) THEN
hol-light-20190729/Multivariate/metric.ml:5278:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5279-
##############################################
hol-light-20190729/Multivariate/metric.ml-5295-        OPEN_EQ_CONTINUOUS_INVERSE_MAP) THEN
hol-light-20190729/Multivariate/metric.ml:5296:  ASM_REWRITE_TAC[homeomorphic_maps] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5297-
##############################################
hol-light-20190729/Multivariate/metric.ml-5320-  SUBGOAL_THEN `u = IMAGE (g:B->A) (IMAGE f u)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/metric.ml:5321:   [ASM SET_TAC[]; ASM_MESON_TAC[HOMEOMORPHIC_IMP_OPEN_MAP; open_map]]);;
hol-light-20190729/Multivariate/metric.ml-5322-
##############################################
hol-light-20190729/Multivariate/metric.ml-5332-  SUBGOAL_THEN `u = IMAGE (g:B->A) (IMAGE f u)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/metric.ml:5333:   [ASM SET_TAC[]; ASM_MESON_TAC[HOMEOMORPHIC_IMP_CLOSED_MAP; closed_map]]);;
hol-light-20190729/Multivariate/metric.ml-5334-
##############################################
hol-light-20190729/Multivariate/metric.ml-5363-      FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:5364:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-5365-
##############################################
hol-light-20190729/Multivariate/metric.ml-5379-  AP_TERM_TAC THEN
hol-light-20190729/Multivariate/metric.ml:5380:  FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5381-
##############################################
hol-light-20190729/Multivariate/metric.ml-5397-  RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:5398:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5399-
##############################################
hol-light-20190729/Multivariate/metric.ml-5424-   [RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:5425:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-5426-    REWRITE_TAC[CLOSURE_OF_SUBSET_TOPSPACE]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-5431-   [RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:5432:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-5433-    CONV_TAC SYM_CONV THEN MATCH_MP_TAC HOMEOMORPHIC_MAP_CLOSURE_OF THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-5461-   (MP_TAC o MATCH_MP CONTINUOUS_MAP_IMAGE_SUBSET_TOPSPACE)) THEN
hol-light-20190729/Multivariate/metric.ml:5462:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5463-
##############################################
hol-light-20190729/Multivariate/metric.ml-5472-  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphic_maps; continuous_map]) THEN
hol-light-20190729/Multivariate/metric.ml:5473:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5474-
##############################################
hol-light-20190729/Multivariate/metric.ml-5494-  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphic_maps; continuous_map]) THEN
hol-light-20190729/Multivariate/metric.ml:5495:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5496-
##############################################
hol-light-20190729/Multivariate/metric.ml-5791-  DISCH_TAC THEN DISCH_TAC THEN REWRITE_TAC[IMAGE_o] THEN
hol-light-20190729/Multivariate/metric.ml:5792:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC EQ_IMP] THEN
hol-light-20190729/Multivariate/metric.ml-5793-  AP_THM_TAC THEN AP_TERM_TAC THEN AP_TERM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/metric.ml:5794:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5795-
##############################################
hol-light-20190729/Multivariate/metric.ml-5826-  REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:5827:  RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5828-
##############################################
hol-light-20190729/Multivariate/metric.ml-5841-  REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:5842:  RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5843-
##############################################
hol-light-20190729/Multivariate/metric.ml-5973-   (MP_TAC o MATCH_MP CONTINUOUS_MAP_IMAGE_SUBSET_TOPSPACE)) THEN
hol-light-20190729/Multivariate/metric.ml:5974:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-5975-
##############################################
hol-light-20190729/Multivariate/metric.ml-6008-  EXISTS_TAC `g:B->A` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:6009:  RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-6010-
##############################################
hol-light-20190729/Multivariate/metric.ml-6039-  REWRITE_TAC[retraction_maps; quotient_map; continuous_map] THEN
hol-light-20190729/Multivariate/metric.ml:6040:  STRIP_TAC THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-6041-  X_GEN_TAC `v:B->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6044-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC EQ_IMP THEN
hol-light-20190729/Multivariate/metric.ml:6045:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-6046-
##############################################
hol-light-20190729/Multivariate/metric.ml-6054-   [ASM_MESON_TAC[CONTINUOUS_MAP_COMPOSE];
hol-light-20190729/Multivariate/metric.ml:6055:    RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-6056-
##############################################
hol-light-20190729/Multivariate/metric.ml-6323-  SIMP_TAC[CONTINUOUS_MAP_IN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:6324:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-6325-  MATCH_MP_TAC CONTINUOUS_MAP_CASES THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6327-               CONTINUOUS_MAP_ID; IN_GSPEC] THEN
hol-light-20190729/Multivariate/metric.ml:6328:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-6329-  MATCH_MP_TAC(MESON[NOT_IN_EMPTY] `s = {} ==> !x. x IN s ==> P x`) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6341-  ASM_CASES_TAC `topspace top DIFF s:A->bool = t` THEN
hol-light-20190729/Multivariate/metric.ml:6342:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-6343-
##############################################
hol-light-20190729/Multivariate/metric.ml-6350-   [RULE_ASSUM_TAC(REWRITE_RULE[retraction_maps; continuous_map]) THEN
hol-light-20190729/Multivariate/metric.ml:6351:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-6352-    REWRITE_TAC[section_map] THEN EXISTS_TAC `(s:B->A) o (r:A->B)` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6452-  REWRITE_TAC[compact_in] THEN MATCH_MP_TAC MONO_AND THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:6453:   [ASM SET_TAC[]; MATCH_MP_TAC MONO_FORALL THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-6454-
##############################################
hol-light-20190729/Multivariate/metric.ml-6465-  EXISTS_TAC `IMAGE (\x:A. @u. u IN U /\ x IN u) s` THEN
hol-light-20190729/Multivariate/metric.ml:6466:  HYP SIMP_TAC "fin" [FINITE_IMAGE] THEN ASM SET_TAC []);;
hol-light-20190729/Multivariate/metric.ml-6467-
##############################################
hol-light-20190729/Multivariate/metric.ml-6504-     EXISTS_TAC `topspace top DIFF c:A->bool` THEN
hol-light-20190729/Multivariate/metric.ml:6505:     ASM_REWRITE_TAC[] THEN ASM SET_TAC []]];
hol-light-20190729/Multivariate/metric.ml-6506-   INTRO_TAC "@V. fin v k" THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6508-   ASM_REWRITE_TAC[FINITE_DELETE] THEN
hol-light-20190729/Multivariate/metric.ml:6509:   CONJ_TAC THENL [ASM SET_TAC []; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:6510:   REWRITE_TAC[SUBSET; IN_UNIONS; IN_DELETE] THEN ASM SET_TAC []]);;
hol-light-20190729/Multivariate/metric.ml-6511-
##############################################
hol-light-20190729/Multivariate/metric.ml-6549-  ASM_REWRITE_TAC[FINITE_UNION; UNIONS_UNION] THEN
hol-light-20190729/Multivariate/metric.ml:6550:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-6551-
##############################################
hol-light-20190729/Multivariate/metric.ml-6664-   [REWRITE_TAC[GSYM SIMPLE_IMAGE; GSYM DIFF_INTERS] THEN
hol-light-20190729/Multivariate/metric.ml:6665:    ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-6666-    DISCH_THEN(X_CHOOSE_THEN `V:(A->bool)->bool` MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6669-    ASM_REWRITE_TAC[INTERS_0; UNIV_NOT_EMPTY] THENL
hol-light-20190729/Multivariate/metric.ml:6670:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-6671-    FIRST_X_ASSUM(MP_TAC o SPEC `V:(A->bool)->bool`) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6757-      ASM_SIMP_TAC[SUBSET_INTERS; FORALL_IN_IMAGE; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/metric.ml:6758:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-6759-    REWRITE_TAC[GSYM MEMBER_NOT_EMPTY] THEN MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6790-    ASM_REWRITE_TAC[CLOSED_IN_CONTAINS_DERIVED_SET; NOT_IN_EMPTY] THEN
hol-light-20190729/Multivariate/metric.ml:6791:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-6792-    ASM_SIMP_TAC[COMPACT_IN_SUBSPACE; SUBTOPOLOGY_EQ_DISCRETE_TOPOLOGY;
##############################################
hol-light-20190729/Multivariate/metric.ml-6852-   [REMOVE_THEN "eq" SUBST1_TAC THEN
hol-light-20190729/Multivariate/metric.ml:6853:    HYP_TAC "cont : wd cont" (REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-6854-    REMOVE_THEN "img" (MP_TAC o SPEC `f (x:A):B` o REWRITE_RULE[SUBSET]) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6856-    INTRO_TAC "@t. t fx" THEN
hol-light-20190729/Multivariate/metric.ml:6857:    EXISTS_TAC `{x:A | x IN topspace top /\ f x:B IN t}` THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-6858-   ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6869-  EXISTS_TAC `IMAGE (u:(A->bool)->(B->bool)) V` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:6870:  [HYP SIMP_TAC "fin" [FINITE_IMAGE]; ASM SET_TAC []]);;
hol-light-20190729/Multivariate/metric.ml-6871-
##############################################
hol-light-20190729/Multivariate/metric.ml-6883-    SUBST1_TAC THENL [ALL_TAC; ASM_MESON_TAC[IMAGE_COMPACT_IN]]] THEN
hol-light-20190729/Multivariate/metric.ml:6884:  RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-6885-
##############################################
hol-light-20190729/Multivariate/metric.ml-6898-  RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:6899:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-6900-
##############################################
hol-light-20190729/Multivariate/metric.ml-6945-    REWRITE_TAC[MEMBER_NOT_EMPTY] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:6946:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-6947-    X_GEN_TAC `c':(A->bool)->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6949-     FINITE_SUBSET_UNIONS_CHAIN) THEN
hol-light-20190729/Multivariate/metric.ml:6950:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-6951-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6971-   [SUBGOAL_THEN `?u:A->bool. open_in top u /\ u IN C /\ x IN u`
hol-light-20190729/Multivariate/metric.ml:6972:    MP_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/metric.ml-6973-    X_GEN_TAC `c:A->bool` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-6999-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `B':(A->bool)->bool` THEN
hol-light-20190729/Multivariate/metric.ml:7000:    ASM_CASES_TAC `B':(A->bool)->bool = {}` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-7001-    ASM_REWRITE_TAC[INTERS_0; INTER_UNIV; FINITE_EMPTY; NOT_IN_EMPTY] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-7013-     `q /\ ~s /\ p /\ (~r ==> t) ==> (p /\ q /\ r ==> s) ==> t`) THEN
hol-light-20190729/Multivariate/metric.ml:7014:    REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-7015-    CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-7019-      EXISTS_TAC `b:A->bool` THEN
hol-light-20190729/Multivariate/metric.ml:7020:      CONJ_TAC THENL [EXISTS_TAC `{b:A->bool}`; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-7021-      REWRITE_TAC[FINITE_SING; FORALL_IN_INSERT; INTERS_1; NOT_IN_EMPTY] THEN
hol-light-20190729/Multivariate/metric.ml:7022:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-7023-      REWRITE_TAC[NOT_FORALL_THM; NOT_IMP] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-7025-      EXISTS_TAC `C' DELETE (b:A->bool)` THEN
hol-light-20190729/Multivariate/metric.ml:7026:      ASM_REWRITE_TAC[FINITE_DELETE] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-7027-    REWRITE_TAC[RIGHT_IMP_EXISTS_THM; SKOLEM_THM]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-7031-    UNIONS(c INSERT UNIONS(IMAGE (cc:(A->bool)->(A->bool)->bool) B'))`
hol-light-20190729/Multivariate/metric.ml:7032:  MP_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-7033-  FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/metric.ml-7034-  ASM_REWRITE_TAC[FINITE_INSERT; FINITE_UNIONS] THEN
hol-light-20190729/Multivariate/metric.ml:7035:  ASM_SIMP_TAC[FINITE_IMAGE; FORALL_IN_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-7036-
##############################################
hol-light-20190729/Multivariate/metric.ml-7056-    ONCE_REWRITE_TAC[SET_RULE `{f x | s x} = {f x | x IN s}`] THEN
hol-light-20190729/Multivariate/metric.ml:7057:    REWRITE_TAC[GSYM INTER_UNIONS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-7058-    REWRITE_TAC[RELATIVE_TO; IMP_CONJ] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-7148-        STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:7149:         [REWRITE_TAC[SUBSET; IN_UNIONS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-7150-          UNDISCH_TAC `compact_space(top1:A topology)`;
##############################################
hol-light-20190729/Multivariate/metric.ml-7160-        ASM_SIMP_TAC[FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:7161:        (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-7162-        MAP_EVERY X_GEN_TAC [`x:A`; `y:B`] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml-7163-        ASM_REWRITE_TAC[UNIONS_IMAGE; IN_ELIM_THM; IN_CROSS] THEN
hol-light-20190729/Multivariate/metric.ml:7164:        ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-7165-
##############################################
hol-light-20190729/Multivariate/metric.ml-7220-    ASM_REWRITE_TAC[OPEN_IN_TOPSPACE] THEN GEN_REWRITE_TAC I [SUBSET] THEN
hol-light-20190729/Multivariate/metric.ml:7221:    REWRITE_TAC[TOPSPACE_PRODUCT_TOPOLOGY_ALT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-7222-    GEN_REWRITE_TAC RAND_CONV [product_topology] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-7240-    ASM_SIMP_TAC[FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:7241:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-7242-    REWRITE_TAC[SUBSET; TOPSPACE_PRODUCT_TOPOLOGY_ALT; UNIONS_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:7243:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-7244-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [NOT_EXISTS_THM]) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-7300-    DISCH_THEN(MP_TAC o SPEC `IMAGE (u:A->A->bool) k`) THEN
hol-light-20190729/Multivariate/metric.ml:7301:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-7302-    REWRITE_TAC[EXISTS_FINITE_SUBSET_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-7312-    RULE_ASSUM_TAC(REWRITE_RULE[SUBSET; FORALL_PAIR_THM; IN_CROSS]) THEN
hol-light-20190729/Multivariate/metric.ml:7313:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-7314-
##############################################
hol-light-20190729/Multivariate/metric.ml-7343-    DISCH_THEN(MP_TAC o SPEC `IMAGE (v:B->B->bool) k`) THEN
hol-light-20190729/Multivariate/metric.ml:7344:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-7345-    REWRITE_TAC[EXISTS_FINITE_SUBSET_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-7355-    RULE_ASSUM_TAC(REWRITE_RULE[SUBSET; FORALL_PAIR_THM; IN_CROSS]) THEN
hol-light-20190729/Multivariate/metric.ml:7356:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-7357-
##############################################
hol-light-20190729/Multivariate/metric.ml-7412-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [SUBSET]) THEN
hol-light-20190729/Multivariate/metric.ml:7413:    REWRITE_TAC[SUBSET; FORALL_PAIR_THM; IN_CROSS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-7414-    GEN_REWRITE_TAC (LAND_CONV o TOP_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-7419-     (MP_TAC o SPEC `IMAGE (v:B->B->bool) l`)) THEN
hol-light-20190729/Multivariate/metric.ml:7420:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-7421-    REWRITE_TAC[EXISTS_FINITE_SUBSET_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-7434-      RULE_ASSUM_TAC(REWRITE_RULE[SUBSET; FORALL_PAIR_THM; IN_CROSS]) THEN
hol-light-20190729/Multivariate/metric.ml:7435:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-7436-
##############################################
hol-light-20190729/Multivariate/metric.ml-7450-  ASM_SIMP_TAC[UNIONS_IMAGE; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:7451:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/metric.ml-7452-  REWRITE_TAC[TAUT `p /\ q /\ r ==> s <=> p /\ q ==> r ==> s`] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-7460-  ASM_SIMP_TAC[FINITE_IMAGE; SIMPLE_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:7461:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-7462-  REWRITE_TAC[SUBSET; IN_INSERT; NOT_IN_EMPTY; EXTENSION; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/metric.ml:7463:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-7464-
##############################################
hol-light-20190729/Multivariate/metric.ml-7496-  MP_TAC(ISPECL [`top:A topology`; `t:A->bool`] CLOSURE_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:7497:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-7498-
##############################################
hol-light-20190729/Multivariate/metric.ml-7584-    ASM_REWRITE_TAC[separated_in]] THEN
hol-light-20190729/Multivariate/metric.ml:7585:  REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-7586-  FIRST_X_ASSUM(DISJ_CASES_THEN STRIP_ASSUME_TAC) THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-7593-                OPEN_IN_INTER_CLOSURE_OF_EQ_EMPTY] THEN
hol-light-20190729/Multivariate/metric.ml:7594:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-7595-
##############################################
hol-light-20190729/Multivariate/metric.ml-7620-  GEN_REWRITE_TAC RAND_CONV[CONJ_SYM] THEN BINOP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:7621:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-7622-
##############################################
hol-light-20190729/Multivariate/metric.ml-7710-  ASM_SIMP_TAC[SIMPLE_IMAGE; FORALL_IN_IMAGE; FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:7711:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-7712-
##############################################
hol-light-20190729/Multivariate/metric.ml-7738-  MP_TAC(ISPECL [`top:A topology`; `s:A->bool`] CLOSURE_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:7739:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-7740-
##############################################
hol-light-20190729/Multivariate/metric.ml-7748-    FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:7749:    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-7750-    DISCH_TAC THEN X_GEN_TAC `x:A` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/metric.ml-7751-    SUBGOAL_THEN `{x:A} = topspace top DIFF (topspace top DELETE x)`
hol-light-20190729/Multivariate/metric.ml:7752:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-7753-    MATCH_MP_TAC CLOSED_IN_DIFF THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-7783-      MP_TAC(SPEC `{x:A}` th) THEN MP_TAC(SPEC `{}:A->bool` th)) THEN
hol-light-20190729/Multivariate/metric.ml:7784:    ASM_SIMP_TAC[CLOSED_IN_EMPTY; DIFF_EMPTY] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-7785-
##############################################
hol-light-20190729/Multivariate/metric.ml-7802-         OPEN_IN_INTER_DERIVED_SET_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:7803:        ASM_REWRITE_TAC[INTER_COMM] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-7804-      REWRITE_TAC[derived_set_of; IN_ELIM_THM; INFINITE; SET_RULE
##############################################
hol-light-20190729/Multivariate/metric.ml-7841-  FIRST_X_ASSUM(MP_TAC o SPEC `u INTER v:A->bool`) THEN
hol-light-20190729/Multivariate/metric.ml:7842:  ASM_SIMP_TAC[IN_INTER; OPEN_IN_INTER] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-7843-
##############################################
hol-light-20190729/Multivariate/metric.ml-7947-  SUBGOAL_THEN `?a:A. a IN top derived_set_of s` MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:7948:   [ASM SET_TAC[]; ASM_REWRITE_TAC[IN_ELIM_THM]] THEN
hol-light-20190729/Multivariate/metric.ml-7949-  DISCH_THEN(X_CHOOSE_THEN `a:A`
##############################################
hol-light-20190729/Multivariate/metric.ml-8041-     [MAP_EVERY EXISTS_TAC [`topspace top:A->bool`; `{}:A->bool`] THEN
hol-light-20190729/Multivariate/metric.ml:8042:      ASM_REWRITE_TAC[OPEN_IN_TOPSPACE; OPEN_IN_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8043-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8050-    REWRITE_TAC[FORALL_IN_IMAGE; EXISTS_FINITE_SUBSET_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:8051:    ANTS_TAC THENL [SIMP_TAC[UNIONS_IMAGE] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-8052-    REWRITE_TAC[UNIONS_IMAGE; LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8057-     [MATCH_MP_TAC OPEN_IN_INTERS THEN ASM_SIMP_TAC[FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:8058:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8059-      CONJ_TAC THENL [MATCH_MP_TAC OPEN_IN_UNIONS; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:8060:      ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/metric.ml-8061-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8064-    ASM_REWRITE_TAC[OPEN_IN_TOPSPACE; OPEN_IN_EMPTY] THEN
hol-light-20190729/Multivariate/metric.ml:8065:    ASM_SIMP_TAC[COMPACT_IN_SUBSET_TOPSPACE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8066-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8076-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE)) THEN
hol-light-20190729/Multivariate/metric.ml:8077:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8078-    REWRITE_TAC[SKOLEM_THM; LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8083-  REWRITE_TAC[FORALL_IN_IMAGE; EXISTS_FINITE_SUBSET_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:8084:  ANTS_TAC THENL [SIMP_TAC[UNIONS_IMAGE] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-8085-  REWRITE_TAC[UNIONS_IMAGE; LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8088-  EXISTS_TAC `INTERS(IMAGE (v:A->A->bool) k)` THEN
hol-light-20190729/Multivariate/metric.ml:8089:  CONJ_TAC THENL [MATCH_MP_TAC OPEN_IN_UNIONS THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:8090:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-8091-  MATCH_MP_TAC OPEN_IN_INTERS THEN ASM_SIMP_TAC[FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:8092:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-8093-
##############################################
hol-light-20190729/Multivariate/metric.ml-8104-  ASM_REWRITE_TAC[SING_SUBSET; COMPACT_IN_SING] THEN
hol-light-20190729/Multivariate/metric.ml:8105:  ANTS_TAC THENL [ASM SET_TAC[]; MESON_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-8106-
##############################################
hol-light-20190729/Multivariate/metric.ml-8117-  ASM_REWRITE_TAC[COMPACT_IN_SING] THEN
hol-light-20190729/Multivariate/metric.ml:8118:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/metric.ml-8119-  REPEAT STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml-8120-  REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:8121:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-8122-
##############################################
hol-light-20190729/Multivariate/metric.ml-8138-  REWRITE_TAC[TOPSPACE_DISCRETE_TOPOLOGY] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:8139:  MAP_EVERY EXISTS_TAC [`{x:A}`; `{y:A}`] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-8140-
##############################################
hol-light-20190729/Multivariate/metric.ml-8202-  ASM_SIMP_TAC[HAUSDORFF_SPACE_SUBTOPOLOGY; TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:8203:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-8204-
##############################################
hol-light-20190729/Multivariate/metric.ml-8239-    `{x | x IN topspace top /\ (f:A->B) x IN v}`] THEN
hol-light-20190729/Multivariate/metric.ml:8240:  ASM_SIMP_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-8241-
##############################################
hol-light-20190729/Multivariate/metric.ml-8331-  REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:8332:   [RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8333-    X_GEN_TAC `c:A->bool` THEN DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8341-  FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:8342:  RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-8343-
##############################################
hol-light-20190729/Multivariate/metric.ml-8412-  ASM_REWRITE_TAC[IN_ELIM_THM; CONJ_ASSOC; IN_INTER] THEN
hol-light-20190729/Multivariate/metric.ml:8413:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-8414-  REWRITE_TAC[OPEN_IN_PRODUCT_TOPOLOGY] THEN CONJ_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8443-    ASM_REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; IN_INTER; RIGHT_EXISTS_AND_THM] THEN
hol-light-20190729/Multivariate/metric.ml:8444:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[OPEN_IN_SUBTOPOLOGY_ALT]] THEN
hol-light-20190729/Multivariate/metric.ml-8445-    REWRITE_TAC[EXISTS_IN_GSPEC] THEN REWRITE_TAC[RIGHT_AND_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8451-    ASM_SIMP_TAC[OPEN_IN_UNION; OPEN_IN_DIFF; OPEN_IN_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:8452:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8453-    MAP_EVERY EXISTS_TAC [`u:A->bool`; `topspace top DIFF c:A->bool`] THEN
hol-light-20190729/Multivariate/metric.ml:8454:    ASM_SIMP_TAC[OPEN_IN_DIFF; OPEN_IN_TOPSPACE] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-8455-
##############################################
hol-light-20190729/Multivariate/metric.ml-8506-   [REWRITE_TAC[IN_ELIM_THM; PAIR_EQ] THEN
hol-light-20190729/Multivariate/metric.ml:8507:    RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8508-    MATCH_MP_TAC CLOSED_IN_CONTINUOUS_MAP_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8525-   [REWRITE_TAC[EXTENSION; IN_ELIM_THM; PAIR_EQ] THEN
hol-light-20190729/Multivariate/metric.ml:8526:    RULE_ASSUM_TAC(REWRITE_RULE[CONTINUOUS_MAP]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8527-    MATCH_MP_TAC CLOSED_IN_CONTINUOUS_MAP_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8537-   [RULE_ASSUM_TAC(REWRITE_RULE[continuous_map; TOPSPACE_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/metric.ml:8538:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8539-    MATCH_MP_TAC CLOSED_IN_CONTINUOUS_MAPS_EQ THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8600-   [REWRITE_TAC[SUBSET; FORALL_IN_GSPEC; TOPSPACE_PROD_TOPOLOGY; IN_CROSS] THEN
hol-light-20190729/Multivariate/metric.ml:8601:    RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8602-    REWRITE_TAC[OPEN_IN_PROD_TOPOLOGY_ALT; TOPSPACE_PROD_TOPOLOGY] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8609-  SUBGOAL_THEN `(f:A->B) x IN topspace top'` ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:8610:   [RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8611-    ASM_REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8619-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:8620:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-8621-
##############################################
hol-light-20190729/Multivariate/metric.ml-8657-  SUBGOAL_THEN `IMAGE (f:A->B) s SUBSET topspace top'` ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:8658:   [RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8659-    ASM_SIMP_TAC[TOPSPACE_SUBTOPOLOGY_SUBSET] THEN STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8663-    MATCH_MP_TAC(TAUT `p /\ (p ==> q) ==> p /\ q`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:8664:     [ASM SET_TAC[]; REWRITE_TAC[SUBTOPOLOGY_SUBTOPOLOGY]] THEN
hol-light-20190729/Multivariate/metric.ml-8665-    SIMP_TAC[SET_RULE `s SUBSET t ==> t INTER s = s`] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8670-    ASM_SIMP_TAC[CONTINUOUS_MAP_FROM_SUBTOPOLOGY; TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:8671:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8672-    DISCH_THEN(MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/metric.ml-8674-  ASM_SIMP_TAC[HAUSDORFF_SPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:8675:  REWRITE_TAC[CLOSED_IN_INTER_CLOSURE_OF] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-8676-
##############################################
hol-light-20190729/Multivariate/metric.ml-8723-   [FIRST_X_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:8724:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8725-    FIRST_ASSUM(MATCH_MP_TAC o CONJUNCT2 o
##############################################
hol-light-20190729/Multivariate/metric.ml-8741-   [FIRST_X_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:8742:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8743-    MATCH_MP_TAC CLOSED_IN_CONTINUOUS_MAP_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8789-      MATCH_MP_TAC FINITE_INTERSECTION_OF_INC THEN
hol-light-20190729/Multivariate/metric.ml:8790:      REWRITE_TAC[INSERT; IN_ELIM_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-8791-      MATCH_MP_TAC ALEXANDER_SUBBASE_THEOREM_ALT THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8815-        EXISTS_TAC `(topspace top DIFF s:A->bool) INSERT V` THEN
hol-light-20190729/Multivariate/metric.ml:8816:        ASM_REWRITE_TAC[FINITE_INSERT; UNIONS_INSERT] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-8817-      REWRITE_TAC[TOPOLOGY_EQ_ALT; NOT_FORALL_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-8824-      MATCH_MP_TAC FINITE_INTERSECTION_OF_INC THEN
hol-light-20190729/Multivariate/metric.ml:8825:      REWRITE_TAC[INSERT; IN_ELIM_THM] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-8826-
##############################################
hol-light-20190729/Multivariate/metric.ml-8920-  ASM_REWRITE_TAC[COMPACT_IN_SING] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:8921:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-8922-    REWRITE_TAC[COMPACT_IN_SUBSPACE; SUBSET_RESTRICT] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-9053-    ?a. a IN topspace top /\ {x | x IN topspace top /\ (f:A->B) x = y} = {a}`
hol-light-20190729/Multivariate/metric.ml:9054:  MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-9055-  STRIP_TAC THEN ASM_REWRITE_TAC[COMPACT_IN_EMPTY; COMPACT_IN_SING]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-9093-     [FIRST_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:9094:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-9095-      ASM_REWRITE_TAC[compact_in; SUBSET_RESTRICT] THEN
hol-light-20190729/Multivariate/metric.ml:9096:      DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-9097-    GEN_REWRITE_TAC (LAND_CONV o TOP_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-9111-      MATCH_MP_TAC CLOSED_IN_DIFF THEN REWRITE_TAC[CLOSED_IN_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:9112:      MATCH_MP_TAC OPEN_IN_UNIONS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:9113:      REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-9114-    REWRITE_TAC[SIMPLE_IMAGE; EXISTS_FINITE_SUBSET_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-9119-                 FORALL_IN_IMAGE; UNIONS_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:9120:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-9121-
##############################################
hol-light-20190729/Multivariate/metric.ml-9130-   `topspace top = {x | x IN topspace top /\ (f:A->B) x IN topspace top'}`
hol-light-20190729/Multivariate/metric.ml:9131:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN FIRST_X_ASSUM
hol-light-20190729/Multivariate/metric.ml-9132-   (MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/metric.ml-9172-    {x | x IN topspace top /\ f x IN {y | y IN topspace top' /\ g y IN k}}`
hol-light-20190729/Multivariate/metric.ml:9173:  SUBST1_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-9174-
##############################################
hol-light-20190729/Multivariate/metric.ml-9233-  FIRST_X_ASSUM MATCH_MP_TAC THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:9234:   [FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-9235-    X_GEN_TAC `k:B->bool` THEN DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-9239-  SUBST1_TAC THENL
hol-light-20190729/Multivariate/metric.ml:9240:   [FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-9241-    MATCH_MP_TAC IMAGE_COMPACT_IN] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-9250-                 CONTINUOUS_MAP_FROM_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:9251:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-9252-    MATCH_MP_TAC(MESON[CONTINUOUS_MAP_IN_SUBTOPOLOGY]
##############################################
hol-light-20190729/Multivariate/metric.ml-9256-    REWRITE_TAC[CONTINUOUS_MAP_CLOSED_IN; TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:9257:    CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `t:B->bool`] THEN
hol-light-20190729/Multivariate/metric.ml-9258-    DISCH_THEN(MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/metric.ml-9266-          {x | x IN u /\ f x IN c}`] THEN
hol-light-20190729/Multivariate/metric.ml:9267:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-9268-
##############################################
hol-light-20190729/Multivariate/metric.ml-9299-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP CLOSED_MAP_IMP_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:9300:  REPEAT STRIP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-9301-  MATCH_MP_TAC COMPACT_IN_IMP_CLOSED_IN_GEN THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-9375-  FIRST_X_ASSUM(MP_TAC o SPEC `y:B`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:9376:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-9377-
##############################################
hol-light-20190729/Multivariate/metric.ml-9389-   `s = {} ==> p ==> compact_in top s`) THEN
hol-light-20190729/Multivariate/metric.ml:9390:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-9391-
##############################################
hol-light-20190729/Multivariate/metric.ml-9409-    IMAGE (f:A->B) {x | x IN topspace top /\ (g o f) x = z}`
hol-light-20190729/Multivariate/metric.ml:9410:  SUBST1_TAC THENL [REWRITE_TAC[o_DEF] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-9411-  MATCH_MP_TAC IMAGE_COMPACT_IN THEN EXISTS_TAC `top:A topology` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-9427-    {x | x IN topspace top /\ (g o f) x:C = g y}`
hol-light-20190729/Multivariate/metric.ml:9428:  SUBST1_TAC THENL [REWRITE_TAC[o_DEF] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-9429-  FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:9430:  RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-9431-
##############################################
hol-light-20190729/Multivariate/metric.ml-9458-                    IN_CROSS; PAIR_EQ] THEN
hol-light-20190729/Multivariate/metric.ml:9459:        ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-9460-        MATCH_MP_TAC IMAGE_COMPACT_IN THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-9462-        REWRITE_TAC[CONTINUOUS_MAP_FST] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:9463:        REWRITE_TAC[IN_CROSS] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-9464-      X_GEN_TAC `y:D` THEN DISCH_TAC THEN FIRST_ASSUM(MP_TAC o
##############################################
hol-light-20190729/Multivariate/metric.ml-9473-                    IN_CROSS; PAIR_EQ] THEN
hol-light-20190729/Multivariate/metric.ml:9474:        ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-9475-        MATCH_MP_TAC IMAGE_COMPACT_IN THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-9477-        REWRITE_TAC[CONTINUOUS_MAP_SND] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:9478:        REWRITE_TAC[IN_CROSS] THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/metric.ml-9479-    STRIP_TAC THEN REWRITE_TAC[proper_map] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-9497-     [REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; TOPSPACE_PROD_TOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:9498:      REWRITE_TAC[FORALL_PAIR_THM; IN_CROSS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-9499-      REWRITE_TAC[FORALL_PAIR_THM; TOPSPACE_PROD_TOPOLOGY; IN_CROSS]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-9744-    ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:9745:  RULE_ASSUM_TAC(REWRITE_RULE[IMAGE_o]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-9746-
##############################################
hol-light-20190729/Multivariate/metric.ml-9795-   `IMAGE (f:A->B) s = IMAGE f {x | x IN topspace top /\ f x IN IMAGE f s}`
hol-light-20190729/Multivariate/metric.ml:9796:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-9797-  RULE_ASSUM_TAC(REWRITE_RULE[closed_map; kc_space; PROPER_MAP_ALT]) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-9833-    `{z | z IN topspace top /\ (f:A->B) z = y}`]) THEN
hol-light-20190729/Multivariate/metric.ml:9834:  ASM_SIMP_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-9835-  REWRITE_TAC[LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-9847-  REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:9848:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-9849-
##############################################
hol-light-20190729/Multivariate/metric.ml-9971-  ASM_SIMP_TAC[COUNTABLE_UNIONS; FORALL_IN_IMAGE; COUNTABLE_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:9972:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-9973-
##############################################
hol-light-20190729/Multivariate/metric.ml-10029-   [ASM_MESON_TAC[UNIONS_SUBSET; OPEN_IN_SUBSET]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:10030:  REWRITE_TAC[UNIONS_INSERT] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-10031-  DISCH_THEN(X_CHOOSE_THEN `g:(A->bool)->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-10033-  ASM_REWRITE_TAC[COUNTABLE_DELETE] THEN
hol-light-20190729/Multivariate/metric.ml:10034:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-10035-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-10039-  MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:10040:   [AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:10041:    ASM_REWRITE_TAC[UNIONS_INSERT] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-10042-
##############################################
hol-light-20190729/Multivariate/metric.ml-10054-  ASM_SIMP_TAC[FORALL_IN_IMAGE; UNIONS_IMAGE] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:10055:   [ASM SET_TAC[]; REWRITE_TAC[EXISTS_COUNTABLE_SUBSET_IMAGE]] THEN
hol-light-20190729/Multivariate/metric.ml-10056-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `V:(B->bool)->bool` THEN
hol-light-20190729/Multivariate/metric.ml:10057:  REWRITE_TAC[UNIONS_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-10058-
##############################################
hol-light-20190729/Multivariate/metric.ml-10086-  ASM_SIMP_TAC[UNIONS_IMAGE; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:10087:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/metric.ml-10088-  REWRITE_TAC[TAUT `p /\ q /\ r ==> s <=> p /\ q ==> r ==> s`] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-10097-    REPEAT STRIP_TAC THEN MATCH_MP_TAC FINITE_IMP_COUNTABLE THEN
hol-light-20190729/Multivariate/metric.ml:10098:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-10099-    REWRITE_TAC[SUBSET; UNIONS_GSPEC; IN_ELIM_THM; IN_INSERT] THEN
hol-light-20190729/Multivariate/metric.ml:10100:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-10101-
##############################################
hol-light-20190729/Multivariate/metric.ml-10117-    ASM_REWRITE_TAC[compact_in; SUBSET_RESTRICT] THEN
hol-light-20190729/Multivariate/metric.ml:10118:    DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-10119-    GEN_REWRITE_TAC (LAND_CONV o TOP_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-10132-      MATCH_MP_TAC CLOSED_IN_DIFF THEN REWRITE_TAC[CLOSED_IN_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:10133:      MATCH_MP_TAC OPEN_IN_UNIONS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:10134:      REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-10135-    REWRITE_TAC[SIMPLE_IMAGE; EXISTS_COUNTABLE_SUBSET_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-10138-    EXISTS_TAC `UNIONS { (v:B->(A->bool)->bool) y | y IN j}` THEN
hol-light-20190729/Multivariate/metric.ml:10139:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-10140-    MATCH_MP_TAC COUNTABLE_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-10196-  REWRITE_TAC[OPEN_IN_SUBTOPOLOGY_ALT; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/metric.ml:10197:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-10198-
##############################################
hol-light-20190729/Multivariate/metric.ml-10230-  SUBGOAL_THEN `?x. x IN topspace top /\ (f:A->B) x = y` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:10231:   [FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-10232-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-10236-   [MATCH_MP_TAC OPEN_IN_CONTINUOUS_MAP_PREIMAGE THEN ASM_MESON_TAC[];
hol-light-20190729/Multivariate/metric.ml:10237:    MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-10238-
##############################################
hol-light-20190729/Multivariate/metric.ml-10269-  FIRST_X_ASSUM(MP_TAC o SPEC `x:A`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:10270:  MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-10271-
##############################################
hol-light-20190729/Multivariate/metric.ml-10290-  SUBGOAL_THEN `?x. x IN topspace top /\ (f:A->B) x = y` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:10291:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-10292-  FIRST_X_ASSUM(MP_TAC o SPEC `x:A`) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-10301-   [MATCH_MP_TAC OPEN_IN_CONTINUOUS_MAP_PREIMAGE THEN ASM_MESON_TAC[];
hol-light-20190729/Multivariate/metric.ml:10302:    MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-10303-
##############################################
hol-light-20190729/Multivariate/metric.ml-10343-  EXISTS_TAC `IMAGE (f:A->B) c` THEN ASM_SIMP_TAC[COUNTABLE_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:10344:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-10345-  REWRITE_TAC[GSYM SUBSET_ANTISYM_EQ; CLOSURE_OF_SUBSET_TOPSPACE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-10392-  X_GEN_TAC `u:A->bool` THEN STRIP_TAC THEN REWRITE_TAC[EXISTS_IN_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:10393:  REWRITE_TAC[IN_DELETE; EXTENSION; NOT_IN_EMPTY] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-10394-
##############################################
hol-light-20190729/Multivariate/metric.ml-10403-  STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:10404:   [EXPAND_TAC "B'" THEN ASM_SIMP_TAC[COUNTABLE_RESTRICT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-10405-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-10412-  ASM_SIMP_TAC[COUNTABLE_IMAGE; UNIONS_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:10413:  REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-10414-
##############################################
hol-light-20190729/Multivariate/metric.ml-10548-    EXISTS_TAC `u INTER v:A->bool` THEN
hol-light-20190729/Multivariate/metric.ml:10549:    ASM_SIMP_TAC[IN_INTER; NET] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-10550-
##############################################
hol-light-20190729/Multivariate/metric.ml-10587-  DISCH_THEN(CONJUNCTS_THEN2 MP_TAC ASSUME_TAC) THEN
hol-light-20190729/Multivariate/metric.ml:10588:  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] EVENTUALLY_MONO) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-10589-
##############################################
hol-light-20190729/Multivariate/metric.ml-10957-     (fun th -> SUBST1_TAC th THEN ASM_SIMP_TAC[FSIGMA_IN_INTER]) THEN
hol-light-20190729/Multivariate/metric.ml:10958:   FIRST_ASSUM(MP_TAC o MATCH_MP FSIGMA_IN_SUBSET) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-10959-
##############################################
hol-light-20190729/Multivariate/metric.ml-10974-     (fun th -> SUBST1_TAC th THEN ASM_SIMP_TAC[GDELTA_IN_INTER]) THEN
hol-light-20190729/Multivariate/metric.ml:10975:   FIRST_ASSUM(MP_TAC o MATCH_MP GDELTA_IN_SUBSET) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-10976-
##############################################
hol-light-20190729/Multivariate/metric.ml-11037-    ASM_SIMP_TAC[COUNTABLE_IMAGE; FORALL_IN_IMAGE; GSYM IMAGE_UNIONS] THEN
hol-light-20190729/Multivariate/metric.ml:11038:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-11039-    X_GEN_TAC `v:(A->bool)->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-11061-  RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:11062:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-11063-
##############################################
hol-light-20190729/Multivariate/metric.ml-11106-  EQ_TAC THEN STRIP_TAC THEN ASM_SIMP_TAC[INTER_SUBSET; FSIGMA_IN_INTER] THEN
hol-light-20190729/Multivariate/metric.ml:11107:  EXISTS_TAC `t:A->bool` THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-11108-
##############################################
hol-light-20190729/Multivariate/metric.ml-11115-  EQ_TAC THEN STRIP_TAC THEN ASM_SIMP_TAC[INTER_SUBSET; GDELTA_IN_INTER] THEN
hol-light-20190729/Multivariate/metric.ml:11116:  EXISTS_TAC `t:A->bool` THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-11117-
##############################################
hol-light-20190729/Multivariate/metric.ml-11276-  REPEAT GEN_TAC THEN ASM_CASES_TAC `x:A IN mspace m` THENL
hol-light-20190729/Multivariate/metric.ml:11277:  [STRIP_TAC; ASM SET_TAC [MBALL_EMPTY_ALT]] THEN
hol-light-20190729/Multivariate/metric.ml-11278-  ASM_REWRITE_TAC[SUBSET; IN_MBALL] THEN FIX_TAC "[z]" THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-11446-    [REWRITE_TAC[IN_ELIM_THM] THEN MAP_EVERY EXISTS_TAC [`x:A`; `r:real`] THEN
hol-light-20190729/Multivariate/metric.ml:11447:     IMP_REWRITE_TAC [GSYM MBALL_SUBMETRIC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:11448:     MATCH_MP_TAC CENTRE_IN_MBALL THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/metric.ml-11449-   ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-11453-  HYP_TAC "t: tm r" (REWRITE_RULE[OPEN_IN_MTOPOLOGY]) THEN
hol-light-20190729/Multivariate/metric.ml:11454:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-11455-  REWRITE_TAC[IN_INTER] THEN INTRO_TAC "!x; xt xs" THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-11457-  EXISTS_TAC `r:real` THEN IMP_REWRITE_TAC[MBALL_SUBMETRIC] THEN
hol-light-20190729/Multivariate/metric.ml:11458:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-11459-
##############################################
hol-light-20190729/Multivariate/metric.ml-11494-  REWRITE_TAC[closed_in; OPEN_IN_MTOPOLOGY; DISJOINT; TOPSPACE_MTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:11495:  MP_TAC MBALL_SUBSET_MSPACE THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-11496-
##############################################
hol-light-20190729/Multivariate/metric.ml-11541-  REPEAT GEN_TAC THEN ASM_CASES_TAC `x:A IN mspace m` THENL
hol-light-20190729/Multivariate/metric.ml:11542:  [STRIP_TAC; ASM SET_TAC [MCBALL_EMPTY_ALT]] THEN
hol-light-20190729/Multivariate/metric.ml-11543-  ASM_REWRITE_TAC[SUBSET; IN_MCBALL] THEN FIX_TAC "[z]" THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-11654-   EXISTS_TAC `y:A` THEN HYP REWRITE_TAC "neq y" [] THEN
hol-light-20190729/Multivariate/metric.ml:11655:   ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-11656-
##############################################
hol-light-20190729/Multivariate/metric.ml-11680-   EXISTS_TAC `y:A` THEN HYP REWRITE_TAC "y" [] THEN
hol-light-20190729/Multivariate/metric.ml:11681:   ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-11682-
##############################################
hol-light-20190729/Multivariate/metric.ml-11763-    EXISTS_TAC `B:real` THEN REWRITE_TAC[SUBSET; IN_MCBALL] THEN
hol-light-20190729/Multivariate/metric.ml:11764:    X_GEN_TAC `x:A` THEN DISCH_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-11765-
##############################################
hol-light-20190729/Multivariate/metric.ml-11793-  ASM_CASES_TAC `s:A->bool = {}` THEN ASM_REWRITE_TAC[NOT_IN_EMPTY] THEN
hol-light-20190729/Multivariate/metric.ml:11794:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-11795-
##############################################
hol-light-20190729/Multivariate/metric.ml-11835-   POP_ASSUM MP_TAC THEN REWRITE_TAC[DE_MORGAN_THM; REAL_NOT_LE] THEN
hol-light-20190729/Multivariate/metric.ml:11836:   ASM SET_TAC [MCBALL_EMPTY; MCBALL_EMPTY_ALT]] THEN
hol-light-20190729/Multivariate/metric.ml-11837-  MAP_EVERY EXISTS_TAC [`c1:A`; `b1 + b2 + mdist m (c1:A,c2)`] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-11909-    CLAIM_TAC "x y" `x:A IN mspace m /\ y IN mspace m` THENL
hol-light-20190729/Multivariate/metric.ml:11910:    [ASM SET_TAC []; ASM_SIMP_TAC[MDIST_REFL; MDIST_0]]) in
hol-light-20190729/Multivariate/metric.ml-11911-  let CONJ1_CONV : conv -> conv =
##############################################
hol-light-20190729/Multivariate/metric.ml-12133-   POP_ASSUM (DESTRUCT_TAC "@a. a" o REWRITE_RULE[GSYM MEMBER_NOT_EMPTY])] THEN
hol-light-20190729/Multivariate/metric.ml:12134:  CLAIM_TAC "a'" `a:A IN mspace m` THENL [ASM SET_TAC[]; EXISTS_TAC `a:A`] THEN
hol-light-20190729/Multivariate/metric.ml-12135-  REMOVE_THEN "cpt" (MP_TAC o SPEC `{mball m (a:A,&n) | n IN (:num)}`) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12146-     ASM_SIMP_TAC[IN_MBALL; REAL_ARITH `!x. x <= &n ==> x < &n + &1`] THEN
hol-light-20190729/Multivariate/metric.ml:12147:     ASM SET_TAC []]];
hol-light-20190729/Multivariate/metric.ml-12148-   ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12150-  CLAIM_TAC "@k. k" `?k. !v. v IN V ==> v = mball m (a:A,&(k v))` THENL
hol-light-20190729/Multivariate/metric.ml:12151:  [REWRITE_TAC[GSYM SKOLEM_THM; RIGHT_EXISTS_IMP_THM] THEN ASM SET_TAC [];
hol-light-20190729/Multivariate/metric.ml-12152-   ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12293-    MATCH_MP_TAC(TAUT `p /\ (q <=> r) ==> (p /\ q <=> r)`) THEN
hol-light-20190729/Multivariate/metric.ml:12294:    CONJ_TAC THENL [ASM SET_TAC[]; EQ_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-12295-    MATCH_MP_TAC MONO_FORALL THEN X_GEN_TAC `b:B` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12300-     [X_GEN_TAC `y:B` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:12301:      FIRST_X_ASSUM(MP_TAC o SPEC `(g:B->A) y`) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:12302:      ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/metric.ml-12303-  REPEAT STRIP_TAC THEN EQ_TAC THEN MATCH_MP_TAC lemma THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12468-  REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:12469:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-12470-
##############################################
hol-light-20190729/Multivariate/metric.ml-12513-  REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:12514:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-12515-
##############################################
hol-light-20190729/Multivariate/metric.ml-12533-  REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:12534:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-12535-
##############################################
hol-light-20190729/Multivariate/metric.ml-12569-  SUBGOAL_THEN `(a:A) IN e1 \/ a IN e2` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:12570:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-12571-    UNDISCH_TAC `~(e2 INTER UNIONS u:A->bool = {})`;
##############################################
hol-light-20190729/Multivariate/metric.ml-12582-  DISCH_THEN(MP_TAC o SPECL [`e1:A->bool`; `e2:A->bool`]) THEN
hol-light-20190729/Multivariate/metric.ml:12583:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-12584-
##############################################
hol-light-20190729/Multivariate/metric.ml-12590-  REPEAT STRIP_TAC THEN MATCH_MP_TAC CONNECTED_IN_UNIONS THEN
hol-light-20190729/Multivariate/metric.ml:12591:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-12592-
##############################################
hol-light-20190729/Multivariate/metric.ml-12612-  ASM_REWRITE_TAC[] THEN MAP_EVERY EXISTS_TAC [`u:A->bool`; `v:A->bool`] THEN
hol-light-20190729/Multivariate/metric.ml:12613:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-12614-
##############################################
hol-light-20190729/Multivariate/metric.ml-12625-      [`top:A topology`; `s:A->bool`] CLOSURE_OF_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:12626:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-12627-    REWRITE_TAC[CONTRAPOS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12633-        OPEN_IN_INTER_CLOSURE_OF_EQ_EMPTY) THEN
hol-light-20190729/Multivariate/metric.ml:12634:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-12635-
##############################################
hol-light-20190729/Multivariate/metric.ml-12670-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `c2:A->bool` THEN
hol-light-20190729/Multivariate/metric.ml:12671:    REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-12672-    REWRITE_TAC[LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12680-                MP_TAC(SPEC `c2:A->bool` th)) THEN
hol-light-20190729/Multivariate/metric.ml:12681:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-12682-
##############################################
hol-light-20190729/Multivariate/metric.ml-12706-  MAP_EVERY EXISTS_TAC [`s INTER c1:A->bool`; `s INTER c2:A->bool`] THEN
hol-light-20190729/Multivariate/metric.ml:12707:  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-12708-  ASM_MESON_TAC[SEPARATED_IN_MONO; INTER_SUBSET]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-12733-  FIRST_X_ASSUM(MP_TAC o SPECL [`s:A->bool`; `t:A->bool`]) THEN
hol-light-20190729/Multivariate/metric.ml:12734:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-12735-
##############################################
hol-light-20190729/Multivariate/metric.ml-12745-  ASM_REWRITE_TAC[DE_MORGAN_THM] THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:12746:   [ASM SET_TAC[]; ALL_TAC; ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-12747-  UNDISCH_TAC `~separated_in top (s:A->bool) t` THEN REWRITE_TAC[] THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-12750-        SEPARATED_IN_MONO)) THEN
hol-light-20190729/Multivariate/metric.ml:12751:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-12752-
##############################################
hol-light-20190729/Multivariate/metric.ml-12771-   [CLOSURE_OF_SUBSET; CLOSURE_OF_SUBSET_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:12772:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-12773-
##############################################
hol-light-20190729/Multivariate/metric.ml-12780-  SUBGOAL_THEN `~(s DIFF (topspace top INTER t):A->bool = {})` MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:12781:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-12782-  SUBGOAL_THEN `~(s INTER topspace top INTER t:A->bool = {})` MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:12783:   [RULE_ASSUM_TAC(REWRITE_RULE[connected_in]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-12784-    UNDISCH_TAC `connected_in top (s:A->bool)`] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12797-  MP_TAC(ISPECL [`top:A topology`; `t:A->bool`] CLOSURE_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:12798:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-12799-
##############################################
hol-light-20190729/Multivariate/metric.ml-12806-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP CONTINUOUS_MAP_IMAGE_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:12807:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-12808-  MAP_EVERY X_GEN_TAC [`u:B->bool`; `v:B->bool`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12813-   [CONJ_TAC THEN MATCH_MP_TAC OPEN_IN_CONTINUOUS_MAP_PREIMAGE THEN
hol-light-20190729/Multivariate/metric.ml:12814:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:12815:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-12816-
##############################################
hol-light-20190729/Multivariate/metric.ml-12828-    THENL [ALL_TAC; ASM_MESON_TAC[CONNECTED_IN_CONTINUOUS_MAP_IMAGE]]] THEN
hol-light-20190729/Multivariate/metric.ml:12829:  RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-12830-
##############################################
hol-light-20190729/Multivariate/metric.ml-12843-  RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:12844:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-12845-
##############################################
hol-light-20190729/Multivariate/metric.ml-12880-    ASM_REWRITE_TAC[CONNECTED_IN_SING; TOPSPACE_DISCRETE_TOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:12881:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-12882-    REWRITE_TAC[CONNECTED_IN; OPEN_IN_DISCRETE_TOPOLOGY] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12886-    MAP_EVERY EXISTS_TAC [`{z:A}`; `u DELETE (z:A)`] THEN
hol-light-20190729/Multivariate/metric.ml:12887:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-12888-
##############################################
hol-light-20190729/Multivariate/metric.ml-12902-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP CONNECTED_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:12903:  CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `u:A->bool` THEN STRIP_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-12904-  FIRST_ASSUM(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC o
##############################################
hol-light-20190729/Multivariate/metric.ml-12910-   [ASM_MESON_TAC[T1_SPACE_OPEN_IN_DELETE_ALT; OPEN_IN_TOPSPACE];
hol-light-20190729/Multivariate/metric.ml:12911:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-12912-
##############################################
hol-light-20190729/Multivariate/metric.ml-12928-  EXISTS_TAC `\(s:A->bool) t. ~DISJOINT s t` THEN
hol-light-20190729/Multivariate/metric.ml:12929:  REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-12930-  MAP_EVERY X_GEN_TAC [`t:A->bool`; `c1:A->bool`; `c2:A->bool`] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12936-  MAP_EVERY EXISTS_TAC [`c1:A->bool`; `UNIONS(u DELETE (c1:A->bool))`] THEN
hol-light-20190729/Multivariate/metric.ml:12937:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-12938-  RULE_ASSUM_TAC(REWRITE_RULE[HAS_SIZE]) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12982-  SUBGOAL_THEN `(a:A,b:B) IN topspace top1 CROSS topspace top2` MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:12983:   [ASM SET_TAC[]; REWRITE_TAC[IN_CROSS] THEN STRIP_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-12984-  REWRITE_TAC[SUBSET; FORALL_PAIR_THM; IN_CROSS] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-12995-     ==> ~(p /\ q /\ r /\ s /\ t /\ u) ==> v`) THEN
hol-light-20190729/Multivariate/metric.ml:12996:   CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml-12997-    [CONJ_TAC THEN MATCH_MP_TAC OPEN_IN_CONTINUOUS_MAP_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13067-  SUBGOAL_THEN `f IN cartesian_product k (topspace o (tops:K->A topology))`
hol-light-20190729/Multivariate/metric.ml:13068:  ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-13069-  MP_TAC(ASSUME `open_in (product_topology k (tops:K->A topology)) u`) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13109-      MAP_EVERY X_GEN_TAC [`i:K`; `u:A->bool`] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:13110:      EXISTS_TAC `{x:K->A | x i IN u}` THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-13111-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13156-   [REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:13157:    REWRITE_TAC[TOPSPACE_PRODUCT_TOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-13158-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13184-  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:13185:   [EXPAND_TAC "f" THEN REWRITE_TAC[] THEN ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:13186:  ASM_CASES_TAC `(h:K->A) IN v` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-13187-  ASM_CASES_TAC `(i:K) IN k` THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-13195-    EXPAND_TAC "f" THEN REWRITE_TAC[cartesian_product; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/metric.ml:13196:    REWRITE_TAC[EXTENSIONAL; IN_ELIM_THM] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-13197-  SUBGOAL_THEN `connected_space ((tops:K->A topology) i)` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-13214-     REWRITE_TAC[cartesian_product; IN_ELIM_THM; o_DEF; EXTENSIONAL] THEN
hol-light-20190729/Multivariate/metric.ml:13215:     ASM SET_TAC[]);
hol-light-20190729/Multivariate/metric.ml-13216-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13224-    REWRITE_TAC[cartesian_product; IN_ELIM_THM; o_DEF; EXTENSIONAL] THEN
hol-light-20190729/Multivariate/metric.ml:13225:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-13226-    ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:13227:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-13228-  REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; IN_ELIM_THM] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-13234-    UNDISCH_TAC `(h:K->A) IN cartesian_product k (topspace o tops)`] THEN
hol-light-20190729/Multivariate/metric.ml:13235:  REWRITE_TAC[cartesian_product; IN_ELIM_THM; o_DEF] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-13236-
##############################################
hol-light-20190729/Multivariate/metric.ml-13288-  ASM_REWRITE_TAC[IN_UNION] THEN MATCH_MP_TAC CONNECTED_IN_UNION THEN
hol-light-20190729/Multivariate/metric.ml:13289:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-13290-
##############################################
hol-light-20190729/Multivariate/metric.ml-13506-    REWRITE_TAC[CONNECTED_COMPONENT_IN_CONNECTED_COMPONENTS_OF] THEN
hol-light-20190729/Multivariate/metric.ml:13507:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-13508-    MATCH_MP_TAC CONNECTED_COMPONENT_OF_MAXIMAL THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13602-  ONCE_REWRITE_TAC[SET_RULE `R = s <=> !x. R x <=> x IN s`] THEN
hol-light-20190729/Multivariate/metric.ml:13603:  REWRITE_TAC[connected_component_of] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-13604-
##############################################
hol-light-20190729/Multivariate/metric.ml-13639-    STRIP_TAC THEN ASM_REWRITE_TAC[IN_DELETE] THEN
hol-light-20190729/Multivariate/metric.ml:13640:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-13641-    MATCH_MP_TAC CONNECTED_COMPONENT_OF_MAXIMAL THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13644-    REWRITE_TAC[connected_components_of; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/metric.ml:13645:    SIMP_TAC[CONNECTED_COMPONENT_OF_EQ_OVERLAP] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-13646-
##############################################
hol-light-20190729/Multivariate/metric.ml-13671-     [MP_TAC(ISPEC `top:A topology` UNIONS_CONNECTED_COMPONENTS_OF) THEN
hol-light-20190729/Multivariate/metric.ml:13672:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-13673-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13679-    MAP_EVERY EXISTS_TAC [`c1:A->bool`; `UNIONS(u DELETE (c1:A->bool))`] THEN
hol-light-20190729/Multivariate/metric.ml:13680:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-13681-    RULE_ASSUM_TAC(REWRITE_RULE[HAS_SIZE]) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13723-   [FIRST_ASSUM(MP_TAC o MATCH_MP SEPARATED_IN_IMP_DISJOINT) THEN
hol-light-20190729/Multivariate/metric.ml:13724:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-13725-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13735-    REPEAT STRIP_TAC THEN MATCH_MP_TAC SEPARATED_IN_MONO THEN
hol-light-20190729/Multivariate/metric.ml:13736:    MAP_EVERY EXISTS_TAC [`c:A->bool`; `d:A->bool`] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-13737-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13741-  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM_ARITH_TAC; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:13742:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-13743-  SIMP_TAC[PAIRWISE_INSERT_SYMMETRIC; SEPARATED_IN_SYM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13764-      ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:13765:      RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-13766-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13772-     ASM_REWRITE_TAC[CONNECTED_COMPONENT_OF_REFL]]) THEN
hol-light-20190729/Multivariate/metric.ml:13773:  RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-13774-
##############################################
hol-light-20190729/Multivariate/metric.ml-13906-  MATCH_MP_TAC(MESON[CONNECTED_IN_EMPTY] `s = {} ==> connected_in top s`) THEN
hol-light-20190729/Multivariate/metric.ml:13907:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-13908-
##############################################
hol-light-20190729/Multivariate/metric.ml-13922-  REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:13923:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_ELIM_THM; IN_INTER]] THEN
hol-light-20190729/Multivariate/metric.ml-13924-  X_GEN_TAC `y:B` THEN DISCH_TAC THEN CONJ_TAC THENL [ALL_TAC; SET_TAC[]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13929-  DISJ_CASES_TAC THENL
hol-light-20190729/Multivariate/metric.ml:13930:   [ASM SET_TAC[]; ASM_SIMP_TAC[]; ASM_REWRITE_TAC[CONNECTED_IN_EMPTY]]);;
hol-light-20190729/Multivariate/metric.ml-13931-
##############################################
hol-light-20190729/Multivariate/metric.ml-13937-  CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:13938:   [MATCH_MP_TAC MONOTONE_MAP_FROM_SUBTOPOLOGY THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:13939:    REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-13940-
##############################################
hol-light-20190729/Multivariate/metric.ml-13952-  STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:13953:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-13954-    ASM_REWRITE_TAC[CONNECTED_IN_EMPTY];
##############################################
hol-light-20190729/Multivariate/metric.ml-13961-  REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:13962:  MATCH_MP_TAC INJECTIVE_IMP_MONOTONE_MAP THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-13963-
##############################################
hol-light-20190729/Multivariate/metric.ml-13989-  MATCH_MP_TAC(TAUT `(q ==> p) /\ q ==> p /\ q`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:13990:   [REPEAT STRIP_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:13991:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-13992-    REWRITE_TAC[EXTENSION; IN_INTER; NOT_IN_EMPTY] THEN X_GEN_TAC `y:B` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-13998-    REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:13999:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-14000-
##############################################
hol-light-20190729/Multivariate/metric.ml-14034-      FIRST_ASSUM(MP_TAC o MATCH_MP CONNECTED_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:14035:      RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-14036-    DISCH_THEN(MP_TAC o GEN `y:B` o SPEC `{y:B}`) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-14059-               x IN s /\ f x = y)`] THEN
hol-light-20190729/Multivariate/metric.ml:14060:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-14061-      MATCH_MP_TAC CONTINUOUS_CLOSED_IMP_QUOTIENT_MAP THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-14065-      FIRST_ASSUM(MP_TAC o MATCH_MP CONNECTED_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:14066:      RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-14067-    DISCH_THEN(MP_TAC o GEN `y:B` o SPEC `{y:B}`) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-14098-  DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
hol-light-20190729/Multivariate/metric.ml:14099:  MATCH_MP_TAC MONO_FORALL THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14100-
##############################################
hol-light-20190729/Multivariate/metric.ml-14146-  DISCH_THEN(MP_TAC o SPEC `x:A`) THEN ASM_REWRITE_TAC[SUBSET_INTER] THEN
hol-light-20190729/Multivariate/metric.ml:14147:  MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14148-
##############################################
hol-light-20190729/Multivariate/metric.ml-14198-  FIRST_X_ASSUM MATCH_MP_TAC THEN EXISTS_TAC `v:A->bool` THEN
hol-light-20190729/Multivariate/metric.ml:14199:  ASM_SIMP_TAC[IN_INTER; OPEN_IN_INTER] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14200-
##############################################
hol-light-20190729/Multivariate/metric.ml-14222-  ASM_CASES_TAC `(x:A) IN u` THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/metric.ml:14223:   [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-14224-  EQ_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-14227-    MAP_EVERY X_GEN_TAC [`s:A->bool`; `t:A->bool`] THEN
hol-light-20190729/Multivariate/metric.ml:14228:    ASM_CASES_TAC `t:A->bool = {x}` THEN ASM_SIMP_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-14229-    DISCH_TAC THEN X_GEN_TAC `w:A->bool` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:14230:    REPEAT(EXISTS_TAC `{x:A}`) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-14231-
##############################################
hol-light-20190729/Multivariate/metric.ml-14399-   [RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:14400:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-14401-    REWRITE_TAC[FORALL_IN_IMAGE]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-14412-  RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:14413:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14414-
##############################################
hol-light-20190729/Multivariate/metric.ml-14479-      EXTENSIONAL; o_THM]) THEN
hol-light-20190729/Multivariate/metric.ml:14480:  SUBGOAL_THEN `(i:K) IN k` ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-14481-  FIRST_X_ASSUM(MP_TAC o SPEC `i:K`) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-14538-    KOLMOGOROV_QUOTIENT_IN_OPEN)) THEN
hol-light-20190729/Multivariate/metric.ml:14539:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14540-
##############################################
hol-light-20190729/Multivariate/metric.ml-14569-    KOLMOGOROV_QUOTIENT_IN_CLOSED)) THEN
hol-light-20190729/Multivariate/metric.ml:14570:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14571-
##############################################
hol-light-20190729/Multivariate/metric.ml-14732-  FIRST_X_ASSUM(MP_TAC o SPEC `u:A->bool`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:14733:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14734-
##############################################
hol-light-20190729/Multivariate/metric.ml-14764-   `topspace top' DIFF IMAGE (f:A->B) c = IMAGE f (topspace top DIFF c)`
hol-light-20190729/Multivariate/metric.ml:14765:  SUBST1_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[FORALL_IN_IMAGE]] THEN
hol-light-20190729/Multivariate/metric.ml-14766-  AP_TERM_TAC THEN GEN_REWRITE_TAC I [FUN_EQ_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-14771-  DISCH_THEN(CONJUNCTS_THEN(MP_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:14772:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14773-
##############################################
hol-light-20190729/Multivariate/metric.ml-14790-     `t SUBSET v ==> v INTER c = {} ==> DISJOINT t c`)) THEN
hol-light-20190729/Multivariate/metric.ml:14791:    ASM_SIMP_TAC[OPEN_IN_INTER_CLOSURE_OF_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-14792-    STRIP_TAC THEN EXISTS_TAC `topspace top DIFF top closure_of u:A->bool` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-14795-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:14796:    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-14797-
##############################################
hol-light-20190729/Multivariate/metric.ml-14811-   DISCH_THEN(ASSUME_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:14812:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14813-
##############################################
hol-light-20190729/Multivariate/metric.ml-14819-  MAP_EVERY X_GEN_TAC [`c:A->bool`; `a:A`] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:14820:  MAP_EVERY EXISTS_TAC [`{a:A}`; `c:A->bool`] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14821-
##############################################
hol-light-20190729/Multivariate/metric.ml-14831-  FIRST_X_ASSUM(MP_TAC o SPECL [`c:A->bool`; `a:A`]) THEN
hol-light-20190729/Multivariate/metric.ml:14832:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:14833:  REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14834-
##############################################
hol-light-20190729/Multivariate/metric.ml-14851-   [DISCH_THEN(MP_TAC o SPEC `y:A`); DISCH_THEN(MP_TAC o SPEC `x:A`)] THEN
hol-light-20190729/Multivariate/metric.ml:14852:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14853-
##############################################
hol-light-20190729/Multivariate/metric.ml-14876-  ASM_SIMP_TAC[CLOSED_IN_COMPACT_SPACE; COMPACT_IN_SING] THEN
hol-light-20190729/Multivariate/metric.ml:14877:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:14878:  REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14879-
##############################################
hol-light-20190729/Multivariate/metric.ml-14945-    ASM_REWRITE_TAC[OPEN_IN_TOPSPACE; OPEN_IN_EMPTY] THEN
hol-light-20190729/Multivariate/metric.ml:14946:    ASM_SIMP_TAC[CLOSED_IN_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-14947-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-14957-    FIRST_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:14958:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-14959-    REWRITE_TAC[SKOLEM_THM; LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-14964-  REWRITE_TAC[FORALL_IN_IMAGE; EXISTS_FINITE_SUBSET_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:14965:  ANTS_TAC THENL [SIMP_TAC[UNIONS_IMAGE] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-14966-  REWRITE_TAC[UNIONS_IMAGE; LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-14969-  EXISTS_TAC `INTERS(IMAGE (v:A->A->bool) k)` THEN
hol-light-20190729/Multivariate/metric.ml:14970:  CONJ_TAC THENL [MATCH_MP_TAC OPEN_IN_UNIONS THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:14971:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-14972-  MATCH_MP_TAC OPEN_IN_INTERS THEN ASM_SIMP_TAC[FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:14973:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-14974-
##############################################
hol-light-20190729/Multivariate/metric.ml-14986-  ASM_REWRITE_TAC[SING_SUBSET; COMPACT_IN_SING] THEN
hol-light-20190729/Multivariate/metric.ml:14987:  ANTS_TAC THENL [ASM SET_TAC[]; MESON_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-14988-
##############################################
hol-light-20190729/Multivariate/metric.ml-15073-    ASM_MESON_TAC[REWRITE_RULE[SUBSET] OPEN_IN_SUBSET];
hol-light-20190729/Multivariate/metric.ml:15074:    REWRITE_TAC[SUBSET_CARTESIAN_PRODUCT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:15075:    REWRITE_TAC[SUBSET_CARTESIAN_PRODUCT] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-15076-
##############################################
hol-light-20190729/Multivariate/metric.ml-15107-                  TOPSPACE_PROD_TOPOLOGY; IN_CROSS] THEN
hol-light-20190729/Multivariate/metric.ml:15108:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-15109-      GEN_REWRITE_TAC I [OPEN_IN_SUBOPEN]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15126-      ASM_SIMP_TAC[OPEN_IN_DIFF; OPEN_IN_TOPSPACE; CLOSED_IN_INTER] THEN
hol-light-20190729/Multivariate/metric.ml:15127:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-15128-      DISCH_THEN(X_CHOOSE_THEN `v:C->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15133-      ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:15134:      REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-15135-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15141-    ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:15142:     [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-15143-      MATCH_MP_TAC OPEN_IN_DIFF THEN REWRITE_TAC[OPEN_IN_TOPSPACE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15151-      s SUBSET t /\ (!x. x IN u ==> ~(f x IN s))`] THEN
hol-light-20190729/Multivariate/metric.ml:15152:    ASM_SIMP_TAC[OPEN_IN_SUBSET; SUBSET_CROSS] THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/metric.ml-15153-  REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:15154:   [ALL_TAC; MATCH_MP_TAC lemma THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-15155-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15264-  ASM_SIMP_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:15265:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-15266-    MATCH_MP_TAC CLOSED_IN_CONTINUOUS_MAP_PREIMAGE THEN ASM_MESON_TAC[];
##############################################
hol-light-20190729/Multivariate/metric.ml-15280-  REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:15281:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-15282-
##############################################
hol-light-20190729/Multivariate/metric.ml-15303-  ASM_REWRITE_TAC[COMPACT_IN_SING] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:15304:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-15305-    MATCH_MP_TAC CLOSED_INTER_COMPACT_IN THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:15306:    FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-15307-    REWRITE_TAC[SING_SUBSET; LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15313-   [REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:15314:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-15315-    REWRITE_TAC[SING_SUBSET; LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15325-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:15326:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-15327-
##############################################
hol-light-20190729/Multivariate/metric.ml-15369-    RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:15370:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-15371-    FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:15372:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-15373-
##############################################
hol-light-20190729/Multivariate/metric.ml-15399-  ASM_REWRITE_TAC[] THEN EXISTS_TAC `IMAGE (r:A->A) k` THEN
hol-light-20190729/Multivariate/metric.ml:15400:  CONJ_TAC THENL [ASM_MESON_TAC[IMAGE_COMPACT_IN]; ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-15401-
##############################################
hol-light-20190729/Multivariate/metric.ml-15450-    ASM_SIMP_TAC[COMPACT_SPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:15451:    MATCH_MP_TAC CLOSED_IN_SUBSET_TOPSPACE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-15452-    REWRITE_TAC[GSYM NEIGHBOURHOOD_BASE_OF_CLOSED_IN] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15466-    ASM_SIMP_TAC[IN_INTER; OPEN_IN_SUBTOPOLOGY_INTER_OPEN] THEN
hol-light-20190729/Multivariate/metric.ml:15467:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-15468-    REWRITE_TAC[OPEN_IN_SUBTOPOLOGY_ALT; CLOSED_IN_SUBTOPOLOGY_ALT] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15476-    ASM_SIMP_TAC[CLOSED_IN_INTER; COMPACT_IN_IMP_CLOSED_IN] THEN
hol-light-20190729/Multivariate/metric.ml:15477:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-15478-
##############################################
hol-light-20190729/Multivariate/metric.ml-15513-  ASM_SIMP_TAC[COMPACT_SPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:15514:  MATCH_MP_TAC CLOSED_IN_SUBSET_TOPSPACE THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-15515-
##############################################
hol-light-20190729/Multivariate/metric.ml-15563-    STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:15564:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-15565-    MATCH_MP_TAC COMPACT_IN_SUBTOPOLOGY_IMP_COMPACT THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15568-    ASM_SIMP_TAC[COMPACT_SPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:15569:    MATCH_MP_TAC CLOSED_IN_SUBSET_TOPSPACE THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-15570-
##############################################
hol-light-20190729/Multivariate/metric.ml-15608-  EXISTS_TAC `u:A->bool` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:15609:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-15610-  MATCH_MP_TAC COMPACT_IN_SUBTOPOLOGY_IMP_COMPACT THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15636-  ASM_SIMP_TAC[FORALL_IN_IMAGE; EXISTS_FINITE_SUBSET_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:15637:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-15638-  DISCH_THEN(X_CHOOSE_THEN `k':A->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15641-  ASM_REWRITE_TAC[] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:15642:   [MATCH_MP_TAC OPEN_IN_UNIONS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-15643-    MATCH_MP_TAC COMPACT_IN_UNIONS THEN ASM_SIMP_TAC[FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:15644:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-15645-    MATCH_MP_TAC CLOSED_IN_UNIONS THEN ASM_SIMP_TAC[FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:15646:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:15647:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-15648-
##############################################
hol-light-20190729/Multivariate/metric.ml-15702-  ASM_SIMP_TAC[OPEN_IN_SUBTOPOLOGY_INTER_OPEN] THEN
hol-light-20190729/Multivariate/metric.ml:15703:  ASM_SIMP_TAC[CLOSED_INTER_COMPACT_IN] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-15704-
##############################################
hol-light-20190729/Multivariate/metric.ml-15726-               CLOSED_INTER_COMPACT_IN] THEN
hol-light-20190729/Multivariate/metric.ml:15727:  CONJ_TAC THENL [MATCH_MP_TAC OPEN_IN_SUBSET_TOPSPACE; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml:15728:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-15729-
##############################################
hol-light-20190729/Multivariate/metric.ml-15736-  MAP_EVERY EXISTS_TAC [`{x:A}`; `{x:A}`] THEN
hol-light-20190729/Multivariate/metric.ml:15737:  REWRITE_TAC[FINITE_SING] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-15738-
##############################################
hol-light-20190729/Multivariate/metric.ml-15763-  SUBGOAL_THEN `(a:A) IN topspace top` ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:15764:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-15765-  FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [locally_compact_space]) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15806-  SUBST1_TAC THENL
hol-light-20190729/Multivariate/metric.ml:15807:   [REWRITE_TAC[SUBTOPOLOGY_SUBTOPOLOGY] THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-15808-    MATCH_MP_TAC LOCALLY_COMPACT_SPACE_OPEN_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15822-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:15823:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-15824-  EXPAND_TAC "s" THEN REWRITE_TAC[GSYM SUBTOPOLOGY_SUBTOPOLOGY] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-15911-        COND_CASES_TAC THEN ASM_REWRITE_TAC[SUBSET_REFL] THEN
hol-light-20190729/Multivariate/metric.ml:15912:        ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-15913-        TRANS_TAC SUBSET_TRANS
##############################################
hol-light-20190729/Multivariate/metric.ml-15992-      ASM_SIMP_TAC[CONTINUOUS_MAP_COMPONENT_INJECTION];
hol-light-20190729/Multivariate/metric.ml:15993:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-15994-
##############################################
hol-light-20190729/Multivariate/metric.ml-16017-  SUBGOAL_THEN `?y0. y0 IN topspace top1 /\ (f:B->C) y0 = z0`
hol-light-20190729/Multivariate/metric.ml:16018:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-16019-  MP_TAC(ISPEC `top:A topology`
##############################################
hol-light-20190729/Multivariate/metric.ml-16055-    REWRITE_TAC[SUBSET; FORALL_PAIR_THM] THEN
hol-light-20190729/Multivariate/metric.ml:16056:    REWRITE_TAC[IN_CROSS; IN_ELIM_THM] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-16057-  FIRST_ASSUM(MP_TAC o SPEC `v:C->bool` o CONJUNCT2 o
##############################################
hol-light-20190729/Multivariate/metric.ml-16072-                SUBSET; FORALL_PAIR_THM; PAIR_EQ] THEN
hol-light-20190729/Multivariate/metric.ml:16073:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-16074-    MATCH_MP_TAC OPEN_IN_DIFF THEN REWRITE_TAC[OPEN_IN_TOPSPACE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-16144-  FIRST_X_ASSUM(MP_TAC o SPEC `(f:A->B) x`) THEN
hol-light-20190729/Multivariate/metric.ml:16145:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/metric.ml-16146-  MAP_EVERY X_GEN_TAC [`u:B->bool`; `k:B->bool`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-16151-   [MATCH_MP_TAC OPEN_IN_CONTINUOUS_MAP_PREIMAGE THEN ASM_MESON_TAC[];
hol-light-20190729/Multivariate/metric.ml:16152:    MATCH_MP_TAC COMPACT_IN_PROPER_MAP_PREIMAGE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:16153:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-16154-
##############################################
hol-light-20190729/Multivariate/metric.ml-16191-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:16192:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-16193-
##############################################
hol-light-20190729/Multivariate/metric.ml-16723-      DISCH_THEN(MP_TAC o SPEC `b:real`)] THEN
hol-light-20190729/Multivariate/metric.ml:16724:    ASM_REWRITE_TAC[REAL_LT_LE; real_gt] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-16725-    REWRITE_TAC[TAUT `~(p /\ q /\ r /\ s /\ t /\ u) <=>
##############################################
hol-light-20190729/Multivariate/metric.ml-16737-    SUBGOAL_THEN `~(?x:real. a <= x /\ x <= b /\ x IN e1 /\ x IN e2)`
hol-light-20190729/Multivariate/metric.ml:16738:    ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-16739-    SUBGOAL_THEN `?x:real. a <= x /\ x <= b /\ ~(x IN e1) /\ ~(x IN e2)`
hol-light-20190729/Multivariate/metric.ml:16740:    MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-16741-    MP_TAC(SPEC `\c:real. !x. a <= x /\ x <= c ==> x IN e1` REAL_COMPLETE) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-16900-  MP_TAC(SPEC `s:real->bool` SUP) THEN
hol-light-20190729/Multivariate/metric.ml:16901:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-16902-  DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC
##############################################
hol-light-20190729/Multivariate/metric.ml-16936-  MP_TAC(SPEC `s:real->bool` INF) THEN
hol-light-20190729/Multivariate/metric.ml:16937:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-16938-  DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC
##############################################
hol-light-20190729/Multivariate/metric.ml-17002-  MP_TAC(ISPECL [`euclideanreal`; `s:real->bool`] INTERIOR_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:17003:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-17004-
##############################################
hol-light-20190729/Multivariate/metric.ml-17110-        CLOSURE_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:17111:    ASM_REWRITE_TAC[TOPSPACE_EUCLIDEANREAL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-17112-    MP_TAC(ISPECL [`s:real->bool`; `a:real`; `b:real`]
##############################################
hol-light-20190729/Multivariate/metric.ml-17201-  REPEAT STRIP_TAC THEN FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:17202:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-17203-
##############################################
hol-light-20190729/Multivariate/metric.ml-17241-  REWRITE_TAC[PAIR_EQ; RELATIVE_TO; OPEN_IN_SUBTOPOLOGY_ALT] THEN
hol-light-20190729/Multivariate/metric.ml:17242:  REWRITE_TAC[EXTENSION; IN_ELIM_THM] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-17243-
##############################################
hol-light-20190729/Multivariate/metric.ml-17257-    ASM_SIMP_TAC[IMP_CONJ; MDIST_POS_EQ; IN_MBALL; SUBSET; MDIST_SYM] THEN
hol-light-20190729/Multivariate/metric.ml:17258:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-17259-    ASM_SIMP_TAC[IMP_CONJ; MDIST_POS_EQ] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-17515-       `a IN v ==> P a ==> ?x. x IN v /\ P x`)) THEN
hol-light-20190729/Multivariate/metric.ml:17516:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-17517-      ASM_REWRITE_TAC[EVENTUALLY_AND; IN_INTER]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-17556-  SIMP_TAC[FINITE_IMAGE; FINITE_INTER; FINITE_INSERT; FINITE_NUMSEG] THEN
hol-light-20190729/Multivariate/metric.ml:17557:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-17558-  TRANS_TAC SUBSET_TRANS `IMAGE a (:num) INTER (s:A->bool)` THEN
hol-light-20190729/Multivariate/metric.ml:17559:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[SUBSET]] THEN
hol-light-20190729/Multivariate/metric.ml-17560-  REWRITE_TAC[IN_INTER; FORALL_IN_IMAGE; IMP_CONJ; IN_UNIV] THEN
hol-light-20190729/Multivariate/metric.ml-17561-  X_GEN_TAC `n:num` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/metric.ml:17562:  ASM_CASES_TAC `N:num <= n` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-17563-  FIRST_ASSUM(MP_TAC o MATCH_MP (ARITH_RULE `~(N <= n) ==> n:num <= N`)) THEN
hol-light-20190729/Multivariate/metric.ml-17564-  REWRITE_TAC[UNIONS_IMAGE; IN_INTER; IN_IMAGE; IN_NUMSEG; LE_0] THEN
hol-light-20190729/Multivariate/metric.ml:17565:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-17566-
##############################################
hol-light-20190729/Multivariate/metric.ml-17840-    FIRST_X_ASSUM(MP_TAC o SPEC `u:A->bool`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:17841:    MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] EVENTUALLY_MONO) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-17842-    STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-18138-    MATCH_MP_TAC(REWRITE_RULE[SUBSET] CLOSURE_OF_SUBSET_INTER) THEN
hol-light-20190729/Multivariate/metric.ml:18139:    REWRITE_TAC[TOPSPACE_MTOPOLOGY] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-18140-
##############################################
hol-light-20190729/Multivariate/metric.ml-18597-    SUBGOAL_THEN `!n. ?x. x IN (c:num->A->bool) n` MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:18598:     [ASM SET_TAC[]; REWRITE_TAC[SKOLEM_THM; LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/metric.ml-18599-    X_GEN_TAC `x:num->A` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-18610-       MP_TAC(SPEC `(x:num->A) m` th) THEN MP_TAC(SPEC `(x:num->A) n` th)) THEN
hol-light-20190729/Multivariate/metric.ml:18611:      REPEAT(ANTS_TAC THENL [ASM SET_TAC[]; DISCH_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-18612-      MATCH_MP_TAC(METRIC_ARITH
##############################################
hol-light-20190729/Multivariate/metric.ml-18622-      REWRITE_TAC[EVENTUALLY_SEQUENTIALLY] THEN EXISTS_TAC `n:num` THEN
hol-light-20190729/Multivariate/metric.ml:18623:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-18624-    X_GEN_TAC `x:num->A` THEN REWRITE_TAC[cauchy_in] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-18675-    RULE_ASSUM_TAC(REWRITE_RULE[closed_in; TOPSPACE_MTOPOLOGY]) THEN
hol-light-20190729/Multivariate/metric.ml:18676:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-18677-    ASM_SIMP_TAC[]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-18687-   `(p /\ p') /\ ~(q /\ q') ==> (p ==> q) ==> (p' ==> q') ==> F`) THEN
hol-light-20190729/Multivariate/metric.ml:18688:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-18689-  UNDISCH_TAC `~(l':A = l)` THEN CONV_TAC METRIC_ARITH);;
##############################################
hol-light-20190729/Multivariate/metric.ml-18783-     `(!n m:num. m <= n ==> P m) <=> (!n. P n)`] THEN
hol-light-20190729/Multivariate/metric.ml:18784:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-18785-
##############################################
hol-light-20190729/Multivariate/metric.ml-18804-    RULE_ASSUM_TAC(REWRITE_RULE[closed_in; TOPSPACE_MTOPOLOGY]) THEN
hol-light-20190729/Multivariate/metric.ml:18805:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-18806-    ASM_SIMP_TAC[]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-18818-   `(p /\ p') /\ ~(q /\ q') ==> (p ==> q) ==> (p' ==> q') ==> F`) THEN
hol-light-20190729/Multivariate/metric.ml:18819:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-18820-  UNDISCH_TAC `~(l':A = l)` THEN CONV_TAC METRIC_ARITH);;
##############################################
hol-light-20190729/Multivariate/metric.ml-18830-   (MP_TAC o AP_TERM `FINITE:(num->bool)->bool`)
hol-light-20190729/Multivariate/metric.ml:18831:  THENL [ASM SET_TAC[]; REWRITE_TAC[FINITE_UNION]] THEN
hol-light-20190729/Multivariate/metric.ml-18832-  REWRITE_TAC[REWRITE_RULE[INFINITE] num_INFINITE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-18838-  ASM_SIMP_TAC[CAUCHY_IN_SUBSEQUENCE; o_THM] THEN
hol-light-20190729/Multivariate/metric.ml:18839:  (ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS]) THEN
hol-light-20190729/Multivariate/metric.ml-18840-  X_GEN_TAC `l:A` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-18865-  FIRST_ASSUM(MP_TAC o SPEC `t:A->bool`) THEN
hol-light-20190729/Multivariate/metric.ml:18866:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(MP_TAC o SPEC `x:num->A`)] THEN
hol-light-20190729/Multivariate/metric.ml:18867:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/metric.ml-18868-  X_GEN_TAC `l:A` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-18946-      REWRITE_TAC[NOT_FORALL_THM; NOT_IMP; EXISTS_IN_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:18947:      REWRITE_TAC[IN_ELIM_THM; IN_MBALL; GSYM REAL_NOT_LT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-18948-      FIRST_X_ASSUM(MP_TAC o SPEC `x:num->A`) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-18970-    X_GEN_TAC `r:num->num` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:18971:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-18972-    MATCH_MP_TAC FORALL_POS_MONO_1 THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-18995-                           (z:A) IN k}`
hol-light-20190729/Multivariate/metric.ml:18996:  MP_TAC THENL [REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-18997-  DISCH_THEN(MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ_ALT] FINITE_SUBSET)) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-19011-   `(z:A) IN mspace m /\ x((r:num->num) p) IN mspace m /\ x(r q) IN mspace m`
hol-light-20190729/Multivariate/metric.ml:19012:  MP_TAC THENL [ASM SET_TAC[]; CONV_TAC METRIC_ARITH]);;
hol-light-20190729/Multivariate/metric.ml-19013-
##############################################
hol-light-20190729/Multivariate/metric.ml-19029-  EXISTS_TAC `u UNION v:A->bool` THEN
hol-light-20190729/Multivariate/metric.ml:19030:  ASM_REWRITE_TAC[FINITE_UNION] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-19031-
##############################################
hol-light-20190729/Multivariate/metric.ml-19061-  ONCE_REWRITE_TAC[MESON[] `(?x. P x /\ Q x) <=> ~(!x. P x ==> ~Q x)`] THEN
hol-light-20190729/Multivariate/metric.ml:19062:  ASM_SIMP_TAC[MBALL_SUBMETRIC] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-19063-
##############################################
hol-light-20190729/Multivariate/metric.ml-19074-  ONCE_REWRITE_TAC[MESON[] `(?x. P x /\ Q x) <=> ~(!x. P x ==> ~Q x)`] THEN
hol-light-20190729/Multivariate/metric.ml:19075:  ASM_SIMP_TAC[MBALL_SUBMETRIC] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-19076-
##############################################
hol-light-20190729/Multivariate/metric.ml-19158-    FIRST_X_ASSUM(MP_TAC o SPEC `f:num->A`) THEN
hol-light-20190729/Multivariate/metric.ml:19159:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[GSYM MEMBER_NOT_EMPTY]] THEN
hol-light-20190729/Multivariate/metric.ml-19160-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `l:A` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-19192-    ASM_REWRITE_TAC[o_DEF; LIMIT_CONST; TOPSPACE_MTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:19193:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-19194-    FIRST_X_ASSUM(MP_TAC o SPEC `IMAGE (x:num->A) (:num)`) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-19198-    SUBGOAL_THEN `!n. (x:num->A) n IN mspace m` ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:19199:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-19200-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-19278-    MATCH_MP_TAC CONVERGENT_IMP_CAUCHY_IN THEN
hol-light-20190729/Multivariate/metric.ml:19279:    REWRITE_TAC[o_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-19280-    DISCH_TAC THEN X_GEN_TAC `U:(A->bool)->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-19336-    ASM_SIMP_TAC[FINITE_IMAGE; SUBSET; UNIONS_IMAGE; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:19337:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-19338-
##############################################
hol-light-20190729/Multivariate/metric.ml-19448-        CONVERGENT_IMP_CAUCHY_IN)) THEN
hol-light-20190729/Multivariate/metric.ml:19449:  ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-19450-  FIRST_X_ASSUM(MP_TAC o SPEC `x:num->A` o REWRITE_RULE[mcomplete]) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-19736-  REPEAT STRIP_TAC THEN REWRITE_TAC[lemma] THEN
hol-light-20190729/Multivariate/metric.ml:19737:  MATCH_MP_TAC OPEN_IN_UNIONS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-19738-
##############################################
hol-light-20190729/Multivariate/metric.ml-19748-    FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:19749:    MATCH_MP_TAC ARBITRARY_UNION_OF_INC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-19750-    POP_ASSUM MP_TAC THEN REWRITE_TAC[GSYM IMP_CONJ] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-19778-    `(!x. x IN s ==> Q x) ==> {x | x IN s /\ Q x} = s`] THEN
hol-light-20190729/Multivariate/metric.ml:19779:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-19780-
##############################################
hol-light-20190729/Multivariate/metric.ml-19795-     [FIRST_ASSUM(MP_TAC o AP_TERM `topspace:(B)topology->B->bool`) THEN
hol-light-20190729/Multivariate/metric.ml:19796:      REWRITE_TAC[TOPSPACE_SUBBASE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-19797-      FIRST_X_ASSUM MATCH_MP_TAC THEN EXPAND_TAC "top'" THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-19800-      MATCH_MP_TAC RELATIVE_TO_INC THEN
hol-light-20190729/Multivariate/metric.ml:19801:      MATCH_MP_TAC FINITE_INTERSECTION_OF_INC THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-19802-    POP_ASSUM MP_TAC THEN REWRITE_TAC[GSYM IMP_CONJ] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-20384-   CONTINUOUS_MAP_IMAGE_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:20385:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[FORALL_IN_IMAGE_2]] THEN
hol-light-20190729/Multivariate/metric.ml-20386-  MAP_EVERY X_GEN_TAC [`x:A`; `y:A`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-20405-    THENL [ALL_TAC; ASM_MESON_TAC[PATH_CONNECTED_IN_CONTINUOUS_MAP_IMAGE]]] THEN
hol-light-20190729/Multivariate/metric.ml:20406:  RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-20407-
##############################################
hol-light-20190729/Multivariate/metric.ml-20420-  RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:20421:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-20422-
##############################################
hol-light-20190729/Multivariate/metric.ml-20948-  SIMP_TAC[TOPSPACE_SUBTOPOLOGY; path_component_of; PATH_IN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:20949:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-20950-
##############################################
hol-light-20190729/Multivariate/metric.ml-20956-  REPEAT STRIP_TAC THEN MATCH_MP_TAC PATH_CONNECTED_IN_UNIONS THEN
hol-light-20190729/Multivariate/metric.ml:20957:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-20958-
##############################################
hol-light-20190729/Multivariate/metric.ml-21032-   [RULE_ASSUM_TAC(REWRITE_RULE[path_connected_in]) THEN
hol-light-20190729/Multivariate/metric.ml:21033:    REWRITE_TAC[PATH_COMPONENT_IN_PATH_COMPONENTS_OF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-21034-    MATCH_MP_TAC PATH_COMPONENT_OF_MAXIMAL THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-21102-  ONCE_REWRITE_TAC[SET_RULE `R = s <=> !x. R x <=> x IN s`] THEN
hol-light-20190729/Multivariate/metric.ml:21103:  REWRITE_TAC[PATH_COMPONENT_OF] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-21104-
##############################################
hol-light-20190729/Multivariate/metric.ml-21139-      ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:21140:      RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-21141-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-21147-     ASM_REWRITE_TAC[PATH_COMPONENT_OF_REFL]]) THEN
hol-light-20190729/Multivariate/metric.ml:21148:  RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-21149-
##############################################
hol-light-20190729/Multivariate/metric.ml-21423-      ASM_REAL_ARITH_TAC;
hol-light-20190729/Multivariate/metric.ml:21424:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:21425:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-21426-    X_GEN_TAC `k:real->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-21452-      REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:21453:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-21454-      ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-21455-    FIRST_X_ASSUM(DISJ_CASES_TAC o GEN_REWRITE_RULE I [REAL_LE_LT])
hol-light-20190729/Multivariate/metric.ml:21456:    THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-21457-    FIRST_X_ASSUM(MP_TAC o SPECL
##############################################
hol-light-20190729/Multivariate/metric.ml-21476-        ASM_MESON_TAC[];
hol-light-20190729/Multivariate/metric.ml:21477:        ASM SET_TAC[]]]]);;
hol-light-20190729/Multivariate/metric.ml-21478-
##############################################
hol-light-20190729/Multivariate/metric.ml-21534-  REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; TOPSPACE_EUCLIDEANREAL; INTER_UNIV] THEN
hol-light-20190729/Multivariate/metric.ml:21535:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-21536-
##############################################
hol-light-20190729/Multivariate/metric.ml-21572-                        CONNECTED_IN_EUCLIDEANREAL] THEN
hol-light-20190729/Multivariate/metric.ml:21573:        ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-21574-        CONJ_TAC THEN MATCH_MP_TAC FUN_IN_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-21595-                        CONNECTED_IN_EUCLIDEANREAL] THEN
hol-light-20190729/Multivariate/metric.ml:21596:        ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-21597-        CONJ_TAC THEN MATCH_MP_TAC FUN_IN_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-21688-  ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:21689:   [REWRITE_TAC[CONJ_ASSOC] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-21690-    CONJ_TAC THEN MATCH_MP_TAC CLOSED_IN_CONTINUOUS_MAP_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-21701-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:21702:    RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-21703-
##############################################
hol-light-20190729/Multivariate/metric.ml-21728-     `t SUBSET v ==> v INTER c = {} ==> DISJOINT t c`)) THEN
hol-light-20190729/Multivariate/metric.ml:21729:    ASM_SIMP_TAC[OPEN_IN_INTER_CLOSURE_OF_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-21730-    STRIP_TAC THEN EXISTS_TAC `topspace top DIFF top closure_of u:A->bool` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-21733-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:21734:    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-21735-
##############################################
hol-light-20190729/Multivariate/metric.ml-21786-  ASM_SIMP_TAC[CLOSED_IN_DIFF; CLOSED_IN_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:21787:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-21788-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `u':A->bool` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-21794-  ASM_SIMP_TAC[OPEN_IN_INTER_CLOSURE_OF_EQ_EMPTY] THEN
hol-light-20190729/Multivariate/metric.ml:21795:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-21796-  TRANS_TAC SUBSET_TRANS `topspace top DIFF u:A->bool` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-21799-  REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:21800:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-21801-
##############################################
hol-light-20190729/Multivariate/metric.ml-21840-  ASM_SIMP_TAC[SING_SUBSET] THEN DISCH_THEN MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:21841:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-21842-
##############################################
hol-light-20190729/Multivariate/metric.ml-21885-  SUBGOAL_THEN `(x:A) IN mspace m /\ (y:A) IN mspace m` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:21886:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-21887-  REMOVE_THEN "e" (MP_TAC o SPEC `x:A`) THEN
hol-light-20190729/Multivariate/metric.ml:21888:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(MP_TAC o CONJUNCT2)] THEN
hol-light-20190729/Multivariate/metric.ml-21889-  REMOVE_THEN "d" (MP_TAC o SPEC `y:A`) THEN
hol-light-20190729/Multivariate/metric.ml:21890:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(MP_TAC o CONJUNCT2)] THEN
hol-light-20190729/Multivariate/metric.ml-21891-  REWRITE_TAC[IMP_IMP] THEN DISCH_THEN(CONJUNCTS_THEN2
##############################################
hol-light-20190729/Multivariate/metric.ml-21926-  ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:21927:   [ASM_REWRITE_TAC[CLOSED_IN_CLOSURE_OF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-21928-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-21931-  ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:21932:   [ASM_REWRITE_TAC[CLOSED_IN_CLOSURE_OF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-21933-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-21958-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `n:num` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/metric.ml:21959:    (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-21960-    DISCH_THEN(X_CHOOSE_THEN `m:num` (MP_TAC o CONJUNCT2)) THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-21968-      MP_TAC(ISPECL [`top:A topology`; `t:A->bool`] CLOSURE_OF_SUBSET)] THEN
hol-light-20190729/Multivariate/metric.ml:21969:    ASM_SIMP_TAC[FSIGMA_IN_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-21970-    REWRITE_TAC[DISJOINT; INTER_UNIONS; EMPTY_UNIONS; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-21991-  REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:21992:  ASM_REWRITE_TAC[SUBSET_INTER] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-21993-
##############################################
hol-light-20190729/Multivariate/metric.ml-22011-  ASM_REWRITE_TAC[CONJ_ASSOC] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:22012:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN CONJ_TAC THEN
hol-light-20190729/Multivariate/metric.ml-22013-    MATCH_MP_TAC CLOSED_IN_CONTINUOUS_MAP_PREIMAGE THEN ASM_MESON_TAC[];
##############################################
hol-light-20190729/Multivariate/metric.ml-22020-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:22021:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-22022-
##############################################
hol-light-20190729/Multivariate/metric.ml-22041-  FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_MAP_IMP_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:22042:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-22043-
##############################################
hol-light-20190729/Multivariate/metric.ml-22113-      REWRITE_RULE[NORMAL_SPACE_ALT]) THEN
hol-light-20190729/Multivariate/metric.ml:22114:    ASM_SIMP_TAC[CLOSED_IN_CLOSURE_OF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-22115-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22146-   [X_GEN_TAC `r:real` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/metric.ml:22147:    SUBGOAL_THEN `&0 < r \/ r < &1` MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-22148-    SUBGOAL_THEN `r IN real_interval[&0,&1]` MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:22149:     [ASM SET_TAC[]; REWRITE_TAC[IN_REAL_INTERVAL] THEN REAL_ARITH_TAC];
hol-light-20190729/Multivariate/metric.ml-22150-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22161-      SIMP_TAC[IN_REAL_INTERVAL; IN_ELIM_THM; SUBSET];
hol-light-20190729/Multivariate/metric.ml:22162:      REWRITE_TAC[IN_INSERT; IN_ELIM_THM] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-22163-    X_GEN_TAC `x:A` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22204-      CLOSURE_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:22205:    ASM_SIMP_TAC[OPEN_IN_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-22206-    REMOVE_THEN "*" (K ALL_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22258-   [FIRST_ASSUM(MP_TAC o SPECL [`(f:A->real) x`; `e / &2`] o CONJUNCT1) THEN
hol-light-20190729/Multivariate/metric.ml:22259:    ANTS_TAC THENL [ASM SIMP_TAC[] THEN ASM_REAL_ARITH_TAC; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-22260-    ASM_REWRITE_TAC[LEFT_IMP_EXISTS_THM] THEN X_GEN_TAC `r:real` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22271-      SUBGOAL_THEN `(f:A->real) x <= r'` MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:22272:       [FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-22273-        ASM_REAL_ARITH_TAC];
##############################################
hol-light-20190729/Multivariate/metric.ml-22278-                CLOSURE_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:22279:        ASM_SIMP_TAC[OPEN_IN_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-22280-        SUBGOAL_THEN `(f:A->real) y <= &1` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-22302-    SUBGOAL_THEN `(f:A->real) x <= r''` MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:22303:     [FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-22304-      ASM_REAL_ARITH_TAC];
##############################################
hol-light-20190729/Multivariate/metric.ml-22315-              CLOSURE_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:22316:    ASM_SIMP_TAC[OPEN_IN_SUBSET] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-22317-
##############################################
hol-light-20190729/Multivariate/metric.ml-22557-    ASM_REWRITE_TAC[IMAGE_EQ_EMPTY] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:22558:     [CONJ_TAC THENL [ALL_TAC; REWRITE_TAC[o_DEF] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-22559-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/metric.ml-22604-  ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:22605:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-22606-    MATCH_MP_TAC CLOSED_IN_CONTINUOUS_MAP_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22740-      ASM_REWRITE_TAC[IN_DIFF] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:22741:       [ASM_MESON_TAC[CLOSED_IN_SUBSET; SUBSET]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-22742-      GEN_REWRITE_TAC (LAND_CONV o BINDER_CONV) [RIGHT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22748-    DISCH_THEN(MP_TAC o SPEC `IMAGE (h:A->A->bool) s`) THEN
hol-light-20190729/Multivariate/metric.ml:22749:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-22750-    DISCH_THEN(X_CHOOSE_THEN `U:(A->bool)->bool`
##############################################
hol-light-20190729/Multivariate/metric.ml-22755-    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/metric.ml:22756:    GEN_TAC THEN DISCH_THEN SUBST_ALL_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-22757-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22771-      ASM_REWRITE_TAC[IN_DIFF] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:22772:       [ASM_MESON_TAC[CLOSED_IN_SUBSET; SUBSET]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-22773-      GEN_REWRITE_TAC (LAND_CONV o BINDER_CONV) [RIGHT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22779-    DISCH_THEN(MP_TAC o SPEC `IMAGE (k:A->A->bool) t`) THEN
hol-light-20190729/Multivariate/metric.ml:22780:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-22781-    DISCH_THEN(X_CHOOSE_THEN `U:(A->bool)->bool`
##############################################
hol-light-20190729/Multivariate/metric.ml-22786-    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/metric.ml:22787:    GEN_TAC THEN DISCH_THEN SUBST_ALL_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-22788-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22803-  GEN_REWRITE_TAC I [CONJ_ASSOC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:22804:   [REWRITE_TAC[UNIONS_IMAGE; UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-22805-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22850-    REWRITE_TAC[RIGHT_AND_EXISTS_THM] THEN
hol-light-20190729/Multivariate/metric.ml:22851:    REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-22852-    DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22861-      RULE_ASSUM_TAC(REWRITE_RULE[separated_in]) THEN
hol-light-20190729/Multivariate/metric.ml:22862:      REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-22863-      MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/metric.ml-22869-                 (t INTER top closure_of (v INTER t'))`) THEN
hol-light-20190729/Multivariate/metric.ml:22870:      SIMP_TAC[CLOSURE_OF_MONO; INTER_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-22871-      REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22925-                 FINITE_DELETE] THEN
hol-light-20190729/Multivariate/metric.ml:22926:    REWRITE_TAC[INTERS_INSERT; INTERS_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-22927-    DISCH_TAC THEN MAP_EVERY X_GEN_TAC [`s:A->bool`; `t:A->bool`] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-22984-      RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:22985:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-22986-    ALL_TAC])
##############################################
hol-light-20190729/Multivariate/metric.ml-22993-  RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:22994:  (CONJ_TAC THENL [ASM_MESON_TAC[CONTINUOUS_MAP_COMPOSE]; ASM SET_TAC[]]));;
hol-light-20190729/Multivariate/metric.ml-22995-
##############################################
hol-light-20190729/Multivariate/metric.ml-23087-    FIRST_X_ASSUM(MP_TAC o SPECL [`c:A->bool`; `s:A->bool`]) THEN
hol-light-20190729/Multivariate/metric.ml:23088:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:23089:    MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-23090-
##############################################
hol-light-20190729/Multivariate/metric.ml-23182-      ASM_SIMP_TAC[COMPACT_SPACE_SUBTOPOLOGY; REGULAR_SPACE_SUBTOPOLOGY];
hol-light-20190729/Multivariate/metric.ml:23183:      MATCH_MP_TAC CLOSED_IN_SUBSET_TOPSPACE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-23184-      REWRITE_TAC[CLOSED_IN_SUBTOPOLOGY] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-23187-      FIRST_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:23188:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:23189:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-23190-    REWRITE_TAC[CONTINUOUS_MAP_IN_SUBTOPOLOGY; SUBSET; FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-23195-  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:23196:   [ALL_TAC; REPEAT STRIP_TAC THEN COND_CASES_TAC THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-23197-  CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-23207-    X_GEN_TAC `y:A` THEN ASM_CASES_TAC `(y:A) IN m` THEN
hol-light-20190729/Multivariate/metric.ml:23208:    ASM_REWRITE_TAC[] THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-23209-    COND_CASES_TAC THEN ASM_REWRITE_TAC[IN_DIFF; NOT_IN_EMPTY] THEN
hol-light-20190729/Multivariate/metric.ml-23210-    FIRST_X_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:23211:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-23212-    MATCH_MP_TAC CLOSED_IN_UNION THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-23267-    RULE_ASSUM_TAC(REWRITE_RULE[SUBSET; FORALL_PAIR_THM; IN_CROSS]) THEN
hol-light-20190729/Multivariate/metric.ml:23268:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-23269-
##############################################
hol-light-20190729/Multivariate/metric.ml-23343-  SUBGOAL_THEN `?a:A. a IN topspace top /\ ~(a IN s)` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:23344:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-23345-  TRANS_TAC CARD_LE_TRANS `real_interval[&0,&1]` THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-23364-  REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:23365:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-23366-
##############################################
hol-light-20190729/Multivariate/metric.ml-23393-  REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:23394:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-23395-
##############################################
hol-light-20190729/Multivariate/metric.ml-23409-  ASM_SIMP_TAC[NORMAL_IMP_COMPLETELY_REGULAR_SPACE_GEN] THEN
hol-light-20190729/Multivariate/metric.ml:23410:  CONJ_TAC THENL [ASM_MESON_TAC[T1_SPACE_CLOSED_IN_SING]; ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-23411-
##############################################
hol-light-20190729/Multivariate/metric.ml-23418-  EXISTS_TAC `top:A topology` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:23419:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-23420-  MATCH_MP_TAC CONNECTED_IN_IMP_PERFECT_GEN THEN
hol-light-20190729/Multivariate/metric.ml:23421:  ASM_REWRITE_TAC[CONNECTED_IN_TOPSPACE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-23422-
##############################################
hol-light-20190729/Multivariate/metric.ml-23437-  SUBGOAL_THEN `?a:A. a IN topspace top /\ ~(a IN s)` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:23438:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-23439-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-23457-    ASM_CASES_TAC `c:A->bool = u` THENL
hol-light-20190729/Multivariate/metric.ml:23458:     [FIRST_X_ASSUM SUBST_ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-23459-    FIRST_X_ASSUM(MP_TAC o SPEC `u:A->bool` o
hol-light-20190729/Multivariate/metric.ml-23460-        GEN_REWRITE_RULE I [CONNECTED_SPACE_CLOPEN_IN]) THEN
hol-light-20190729/Multivariate/metric.ml:23461:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-23462-    SUBGOAL_THEN `!n. ?x:A. x IN u n /\ ~(x IN u(SUC n))` MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:23463:     [ASM SET_TAC[]; REWRITE_TAC[SKOLEM_THM]] THEN
hol-light-20190729/Multivariate/metric.ml-23464-    REWRITE_TAC[INFINITE_CARD_LE; le_c; IN_UNIV; FORALL_AND_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-23468-    SUBGOAL_THEN `!m n. m < n ==> ~((f:num->A) m IN u n)` MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:23469:     [X_GEN_TAC `m:num`; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-23470-    REWRITE_TAC[GSYM LE_SUC_LT] THEN
hol-light-20190729/Multivariate/metric.ml-23471-    SUBGOAL_THEN `!m n. m <= n ==> (u:num->A->bool) n SUBSET u m`
hol-light-20190729/Multivariate/metric.ml:23472:    MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml:23473:    MATCH_MP_TAC TRANSITIVE_STEPWISE_LE THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-23474-
##############################################
hol-light-20190729/Multivariate/metric.ml-23505-    ASM_SIMP_TAC[COMPACT_IN_PATH_IMAGE; COMPACT_SPACE_SUBTOPOLOGY];
hol-light-20190729/Multivariate/metric.ml:23506:    MP_TAC ENDS_IN_UNIT_REAL_INTERVAL THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-23507-
##############################################
hol-light-20190729/Multivariate/metric.ml-23570-    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC PATH_COMPONENT_OF_MAXIMAL THEN
hol-light-20190729/Multivariate/metric.ml:23571:    ASM_REWRITE_TAC[PATH_CONNECTED_IN_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-23572-    DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-23706-   [FIRST_ASSUM(MP_TAC o MATCH_MP PATH_COMPONENTS_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:23707:    ASM_REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; SUBSET_INTER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-23708-    DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-23742-  FIRST_ASSUM(MP_TAC o MATCH_MP PATH_COMPONENTS_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:23743:  ASM_REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; SUBSET_INTER] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-23744-
##############################################
hol-light-20190729/Multivariate/metric.ml-23782-  MAP_EVERY X_GEN_TAC [`v:A->bool`; `x:A`] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:23783:  EXISTS_TAC `{x:A}` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-23784-
##############################################
hol-light-20190729/Multivariate/metric.ml-23908-        COND_CASES_TAC THEN ASM_REWRITE_TAC[SUBSET_REFL] THEN
hol-light-20190729/Multivariate/metric.ml:23909:        ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-23910-        TRANS_TAC SUBSET_TRANS
##############################################
hol-light-20190729/Multivariate/metric.ml-23961-        RULE_ASSUM_TAC(REWRITE_RULE[cartesian_product; IN_ELIM_THM]) THEN
hol-light-20190729/Multivariate/metric.ml:23962:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-23963-      GEN_REWRITE_TAC (LAND_CONV o TOP_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-23974-                  {i | i IN k /\ ~((w:K->A->bool) i = topspace (tops i))}` THEN
hol-light-20190729/Multivariate/metric.ml:23975:      ASM_REWRITE_TAC[FINITE_UNION] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-23976-      UNDISCH_TAC `(z:K->A) IN cartesian_product k w` THEN
hol-light-20190729/Multivariate/metric.ml:23977:      REWRITE_TAC[cartesian_product; IN_ELIM_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-23978-      TRANS_TAC SUBSET_TRANS `cartesian_product k (w:K->A->bool)` THEN
hol-light-20190729/Multivariate/metric.ml-23979-      ASM_REWRITE_TAC[] THEN REWRITE_TAC[SUBSET_CARTESIAN_PRODUCT] THEN
hol-light-20190729/Multivariate/metric.ml:23980:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-23981-
##############################################
hol-light-20190729/Multivariate/metric.ml-24012-      ASM_SIMP_TAC[CONTINUOUS_MAP_COMPONENT_INJECTION];
hol-light-20190729/Multivariate/metric.ml:24013:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-24014-
##############################################
hol-light-20190729/Multivariate/metric.ml-24066-    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC CONNECTED_COMPONENT_OF_MAXIMAL THEN
hol-light-20190729/Multivariate/metric.ml:24067:    ASM_REWRITE_TAC[CONNECTED_IN_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-24068-    DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24192-   [FIRST_ASSUM(MP_TAC o MATCH_MP CONNECTED_COMPONENTS_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:24193:    ASM_REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; SUBSET_INTER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-24194-    DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24229-  FIRST_ASSUM(MP_TAC o MATCH_MP CONNECTED_COMPONENTS_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:24230:  ASM_REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; SUBSET_INTER] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-24231-
##############################################
hol-light-20190729/Multivariate/metric.ml-24257-  MAP_EVERY X_GEN_TAC [`v:A->bool`; `x:A`] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:24258:  EXISTS_TAC `{x:A}` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-24259-
##############################################
hol-light-20190729/Multivariate/metric.ml-24297-    EXISTS_TAC `subtopology top (s:A->bool)` THEN
hol-light-20190729/Multivariate/metric.ml:24298:    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-24299-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP
##############################################
hol-light-20190729/Multivariate/metric.ml-24319-  ASM_SIMP_TAC[GSYM INTERIOR_OF_LOCALLY_CONNECTED_SUBSPACE_COMPONENT] THEN
hol-light-20190729/Multivariate/metric.ml:24320:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-24321-
##############################################
hol-light-20190729/Multivariate/metric.ml-24405-        COND_CASES_TAC THEN ASM_REWRITE_TAC[SUBSET_REFL] THEN
hol-light-20190729/Multivariate/metric.ml:24406:        ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-24407-        TRANS_TAC SUBSET_TRANS
##############################################
hol-light-20190729/Multivariate/metric.ml-24458-        RULE_ASSUM_TAC(REWRITE_RULE[cartesian_product; IN_ELIM_THM]) THEN
hol-light-20190729/Multivariate/metric.ml:24459:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-24460-      GEN_REWRITE_TAC (LAND_CONV o TOP_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24471-                  {i | i IN k /\ ~((w:K->A->bool) i = topspace (tops i))}` THEN
hol-light-20190729/Multivariate/metric.ml:24472:      ASM_REWRITE_TAC[FINITE_UNION] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-24473-      UNDISCH_TAC `(z:K->A) IN cartesian_product k w` THEN
hol-light-20190729/Multivariate/metric.ml:24474:      REWRITE_TAC[cartesian_product; IN_ELIM_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-24475-      TRANS_TAC SUBSET_TRANS `cartesian_product k (w:K->A->bool)` THEN
hol-light-20190729/Multivariate/metric.ml-24476-      ASM_REWRITE_TAC[] THEN REWRITE_TAC[SUBSET_CARTESIAN_PRODUCT] THEN
hol-light-20190729/Multivariate/metric.ml:24477:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-24478-
##############################################
hol-light-20190729/Multivariate/metric.ml-24509-      ASM_SIMP_TAC[CONTINUOUS_MAP_COMPONENT_INJECTION];
hol-light-20190729/Multivariate/metric.ml:24510:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-24511-
##############################################
hol-light-20190729/Multivariate/metric.ml-24548-  FIRST_X_ASSUM(MP_TAC o SPEC `k:A->bool`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:24549:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-24550-
##############################################
hol-light-20190729/Multivariate/metric.ml-24591-   [REWRITE_TAC[CONTINUOUS_MAP_IN_SUBTOPOLOGY; TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:24592:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-24593-    MATCH_MP_TAC CONTINUOUS_MAP_FROM_SUBTOPOLOGY THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24635-  ASM_REWRITE_TAC[IN_INTER; CLOSURE_OF_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:24636:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-24637-  ASM_REWRITE_TAC[SET_RULE `k INTER k INTER s = s INTER k`; IN_CLOSURE_OF] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24640-  ASM_REWRITE_TAC[] THEN DISCH_THEN(MP_TAC o SPEC `u INTER v:A->bool`) THEN
hol-light-20190729/Multivariate/metric.ml:24641:  ASM_SIMP_TAC[OPEN_IN_INTER] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-24642-
##############################################
hol-light-20190729/Multivariate/metric.ml-24663-    EXISTS_TAC `a:num->A` THEN REWRITE_TAC[TOPSPACE_MTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:24664:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-24665-    REWRITE_TAC[GSYM MTOPOLOGY_SUBMETRIC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24668-    ANTS_TAC THENL [ALL_TAC; SIMP_TAC[IN_INTER]] THEN
hol-light-20190729/Multivariate/metric.ml:24669:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-24670-    ASM_REWRITE_TAC[LIMIT_SUBTOPOLOGY; MTOPOLOGY_SUBMETRIC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24722-  ASM_REWRITE_TAC[SUBTOPOLOGY_SUBTOPOLOGY; TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:24723:  CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `c:A->bool`] THEN
hol-light-20190729/Multivariate/metric.ml-24724-  REWRITE_TAC[COMPACT_IN_SUBTOPOLOGY; TOPSPACE_SUBTOPOLOGY; SUBSET_INTER] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24727-  MATCH_MP_TAC EQ_IMP THEN BINOP_TAC THENL [AP_TERM_TAC; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:24728:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-24729-
##############################################
hol-light-20190729/Multivariate/metric.ml-24747-  ASM_REWRITE_TAC[SUBTOPOLOGY_SUBTOPOLOGY; TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:24748:  CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `c:A->bool`] THEN
hol-light-20190729/Multivariate/metric.ml-24749-  REWRITE_TAC[COMPACT_IN_SUBTOPOLOGY; TOPSPACE_SUBTOPOLOGY; SUBSET_INTER] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24752-  MATCH_MP_TAC EQ_IMP THEN BINOP_TAC THENL [AP_TERM_TAC; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:24753:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-24754-
##############################################
hol-light-20190729/Multivariate/metric.ml-24772-     `s:A->bool = v INTER ((topspace top DIFF v) UNION s)` SUBST1_TAC
hol-light-20190729/Multivariate/metric.ml:24773:    THENL [ASM SET_TAC[]; MATCH_MP_TAC CLOSED_IN_SUBTOPOLOGY_INTER_CLOSED] THEN
hol-light-20190729/Multivariate/metric.ml-24774-    MATCH_MP_TAC COMPACT_IN_IMP_CLOSED_IN_GEN THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24788-                 CLOSED_IN_CLOSED_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:24789:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-24790-    DISCH_THEN(MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/metric.ml-24793-    DISCH_THEN(MP_TAC o SPEC `U:(A->bool)->bool` o CONJUNCT2) THEN
hol-light-20190729/Multivariate/metric.ml:24794:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-24795-    DISCH_THEN(X_CHOOSE_THEN `V2:(A->bool)->bool` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/metric.ml-24796-    EXISTS_TAC `V1 UNION V2:(A->bool)->bool` THEN
hol-light-20190729/Multivariate/metric.ml:24797:    ASM_REWRITE_TAC[FINITE_UNION] THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/metric.ml-24798-  REPEAT GEN_TAC THEN DISCH_THEN(REPEAT_TCL CONJUNCTS_THEN ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24917-    ASM_REWRITE_TAC[SING_SUBSET; COMPACT_IN_SING] THEN
hol-light-20190729/Multivariate/metric.ml:24918:    REWRITE_TAC[continuous_map; TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-24919-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24927-    FIRST_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:24928:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-24929-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24946-  FIRST_X_ASSUM MATCH_MP_TAC THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:24947:   [FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-24948-    X_GEN_TAC `k:B->bool` THEN DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24952-  SUBST1_TAC THENL
hol-light-20190729/Multivariate/metric.ml:24953:   [FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-24954-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24969-  FIRST_X_ASSUM MATCH_MP_TAC THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:24970:   [FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-24971-    X_GEN_TAC `k:B->bool` THEN DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24975-  SUBST1_TAC THENL
hol-light-20190729/Multivariate/metric.ml:24976:   [FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-24977-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-24999-  DISCH_THEN(MP_TAC o SPEC `k INTER c:B->bool` o CONJUNCT2) THEN
hol-light-20190729/Multivariate/metric.ml:25000:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Multivariate/metric.ml-25001-  REWRITE_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/metric.ml-25150-  SIMP_TAC[OPEN_IN_EMPTY; UNIONS_SUBSET; INTER_UNIONS] THEN CONJ_TAC THEN
hol-light-20190729/Multivariate/metric.ml:25151:  (REPEAT STRIP_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THENL
hol-light-20190729/Multivariate/metric.ml-25152-   [ONCE_REWRITE_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/metric.ml-25155-    MATCH_MP_TAC OPEN_IN_UNIONS THEN REWRITE_TAC[FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/metric.ml:25156:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-25157-
##############################################
hol-light-20190729/Multivariate/metric.ml-25235-  ASM_REWRITE_TAC[OPEN_IN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:25236:  MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-25237-
##############################################
hol-light-20190729/Multivariate/metric.ml-25261-  EXISTS_TAC `{x | x IN topspace top /\ (f:A->B) x IN u}` THEN
hol-light-20190729/Multivariate/metric.ml:25262:  ASM_SIMP_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-25263-
##############################################
hol-light-20190729/Multivariate/metric.ml-25297-  REWRITE_TAC[COMPACT_IN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:25298:  STRIP_TAC THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-25299-  X_GEN_TAC `k:A->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-25401-    (topspace top DELETE a) DIFF (s DELETE a)`
hol-light-20190729/Multivariate/metric.ml:25402:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-25403-  MATCH_MP_TAC OPEN_IN_TRANS_FULL THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-25409-              TOPSPACE_SUBTOPOLOGY; SUBSET_INTER; SUBSET_DELETE] THEN
hol-light-20190729/Multivariate/metric.ml:25410:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-25411-  X_GEN_TAC `k:A->bool` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml-25412-  MATCH_MP_TAC CLOSED_IN_SUBSET_TOPSPACE THEN
hol-light-20190729/Multivariate/metric.ml:25413:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-25414-  ASM_SIMP_TAC[SET_RULE `~(a IN k) ==> k INTER s DELETE a = k INTER s`] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-25498-        REWRITE_TAC[sum_DISTINCT; sum_INJECTIVE] THEN
hol-light-20190729/Multivariate/metric.ml:25499:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-25500-        REWRITE_TAC[TAUT `p \/ q ==> r <=> (p ==> r) /\ (q ==> r)`] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-25512-        SUBGOAL_THEN `cc = (c:A->bool) INSERT cc` SUBST1_TAC THENL
hol-light-20190729/Multivariate/metric.ml:25513:         [ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-25514-          REWRITE_TAC[INTERS_INSERT; SET_RULE
##############################################
hol-light-20190729/Multivariate/metric.ml-25520-        ASM_SIMP_TAC[] THEN MATCH_MP_TAC CLOSED_IN_INTERS THEN
hol-light-20190729/Multivariate/metric.ml:25521:        CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[FORALL_IN_UNION]] THEN
hol-light-20190729/Multivariate/metric.ml-25522-        ASM_SIMP_TAC[FORALL_IN_IMAGE; CLOSED_IN_DIFF; CLOSED_IN_TOPSPACE]]]]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-25561-  MP_TAC(INST_TYPE [`:1`,`:B`] sum_INJECTIVE) THEN
hol-light-20190729/Multivariate/metric.ml:25562:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-25563-
##############################################
hol-light-20190729/Multivariate/metric.ml-25630-    DISCH_THEN(MP_TAC o SPEC `uu:(A+1->bool)->bool`) THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:25631:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-25632-    DISCH_THEN(X_CHOOSE_THEN `vv:(A+1->bool)->bool` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/metric.ml-25633-    EXISTS_TAC `(u:A+1->bool) INSERT vv` THEN
hol-light-20190729/Multivariate/metric.ml:25634:    ASM_REWRITE_TAC[FINITE_INSERT] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-25635-
##############################################
hol-light-20190729/Multivariate/metric.ml-25816-     [REWRITE_TAC[COMPACT_IN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:25817:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-25818-      MATCH_MP_TAC CLOSED_IN_COMPACT_SPACE THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-25828-                 CLOSED_IN_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:25829:    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-25830-    MP_TAC(ISPEC `subtopology top (topspace top DELETE (a:A))`
##############################################
hol-light-20190729/Multivariate/metric.ml-25835-                 OPEN_IN_INTER; IN_INTER; IN_DELETE] THEN
hol-light-20190729/Multivariate/metric.ml:25836:    FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_SUBSET) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-25837-
##############################################
hol-light-20190729/Multivariate/metric.ml-25960-  ASM_REWRITE_TAC[RETRACTION_MAP_FST; TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:25961:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-25962-  REWRITE_TAC[HAUSDORFF_SPACE_CLOSED_IN_DIAGONAL] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-26148-  SIMP_TAC[TOPSPACE_SUBTOPOLOGY_SUBSET; DELETE_SUBSET] THEN
hol-light-20190729/Multivariate/metric.ml:26149:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-26150-  REWRITE_TAC[FORALL_SUBSET_INSERT; FORALL_SUBSET_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-26161-   `{x:A | x IN topspace top /\ (if x = a then F else x IN u)} = u`
hol-light-20190729/Multivariate/metric.ml:26162:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-26163-  CONJ_TAC THENL [MESON_TAC[]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-26175-   `p /\ q /\ r /\ s <=> s /\ p /\ q /\ r`] THEN
hol-light-20190729/Multivariate/metric.ml:26176:  REWRITE_TAC[UNWIND_THM1] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-26177-
##############################################
hol-light-20190729/Multivariate/metric.ml-26641-    MAP_EVERY EXISTS_TAC [`(r:A->A) o (f:A->A)`; `(r:A->A) o (\x. x)`] THEN
hol-light-20190729/Multivariate/metric.ml:26642:    ASM_SIMP_TAC[o_THM] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-26643-    MATCH_MP_TAC HOMOTOPIC_COMPOSE_CONTINUOUS_MAP_LEFT THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-26698-  FIRST_ASSUM(MP_TAC o MATCH_MP HOMOTOPIC_WITH_IMP_CONTINUOUS_MAPS) THEN
hol-light-20190729/Multivariate/metric.ml:26699:  REWRITE_TAC[continuous_map] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-26700-
##############################################
hol-light-20190729/Multivariate/metric.ml-26736-    FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [CONTRACTIBLE_SPACE]) THEN
hol-light-20190729/Multivariate/metric.ml:26737:    DISCH_THEN(DISJ_CASES_THEN MP_TAC) THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-26738-    DISCH_THEN(X_CHOOSE_THEN `b:A` (CONJUNCTS_THEN2 ASSUME_TAC MP_TAC)) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-26742-    ASM_SIMP_TAC[CONTRACTIBLE_IMP_PATH_CONNECTED_SPACE];
hol-light-20190729/Multivariate/metric.ml:26743:    DISCH_TAC THEN REWRITE_TAC[CONTRACTIBLE_SPACE] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-26744-
##############################################
hol-light-20190729/Multivariate/metric.ml-26897-    EXISTS_TAC `a:A` THEN ASM_REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:26898:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-26899-
##############################################
hol-light-20190729/Multivariate/metric.ml-27105-      ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:27106:       [RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-27107-        DISCH_THEN(X_CHOOSE_TAC `y:A`)] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-27110-       [REWRITE_TAC[FUN_EQ_THM; o_THM] THEN
hol-light-20190729/Multivariate/metric.ml:27111:        RULE_ASSUM_TAC(REWRITE_RULE[continuous_map]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-27112-        MATCH_MP_TAC CONTINUOUS_MAP_LIMIT THEN ASM_MESON_TAC[]];
##############################################
hol-light-20190729/Multivariate/metric.ml-27126-    MATCH_MP_TAC(TAUT `p /\ (q <=> r) ==> (p /\ q <=> r)`) THEN
hol-light-20190729/Multivariate/metric.ml:27127:    CONJ_TAC THENL [ASM SET_TAC[]; EQ_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-27128-    MATCH_MP_TAC MONO_FORALL THEN X_GEN_TAC `b:B` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-27133-     [X_GEN_TAC `y:B` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:27134:      FIRST_X_ASSUM(MP_TAC o SPEC `(g:B->A) y`) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:27135:      ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/metric.ml-27136-  REPEAT STRIP_TAC THEN EQ_TAC THEN MATCH_MP_TAC lemma THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-27324-    MATCH_MP_TAC PROD_TOPOLOGY_HOMEOMORPHIC_SPACE_RIGHT] THEN
hol-light-20190729/Multivariate/metric.ml:27325:  REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-27326-
##############################################
hol-light-20190729/Multivariate/metric.ml-27394-  REWRITE_TAC[EXTENSION; IN_ELIM_THM; IN_CROSS; FORALL_PAIR_THM] THEN
hol-light-20190729/Multivariate/metric.ml:27395:  (STRIP_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-27396-  FIRST_X_ASSUM(MP_TAC o MATCH_MP
##############################################
hol-light-20190729/Multivariate/metric.ml-27406-    MATCH_MP_TAC PROD_TOPOLOGY_HOMEOMORPHIC_SPACE_RIGHT] THEN
hol-light-20190729/Multivariate/metric.ml:27407:  REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-27408-
##############################################
hol-light-20190729/Multivariate/metric.ml-27572-  ASM_REWRITE_TAC[IMAGE_CLAUSES; EMPTY_SUBSET; NOT_IN_EMPTY] THEN
hol-light-20190729/Multivariate/metric.ml:27573:  ASM_CASES_TAC `(c:B) IN mspace m2` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml:27574:  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-27575-  EXISTS_TAC `&1` THEN ASM_SIMP_TAC[MDIST_REFL; MDIST_POS_LE; REAL_MUL_LID]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-27699-   [MESON_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml:27700:  ASM_CASES_TAC `(c:B) IN mspace m2` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml:27701:  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-27702-  ASM_SIMP_TAC[MDIST_REFL] THEN MESON_TAC[]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-27821-  STRIP_TAC THEN X_GEN_TAC `x:num->A` THEN REWRITE_TAC[cauchy_in] THEN
hol-light-20190729/Multivariate/metric.ml:27822:  STRIP_TAC THEN REWRITE_TAC[o_THM] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-27823-
##############################################
hol-light-20190729/Multivariate/metric.ml-27858-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP CAUCHY_CONTINUOUS_MAP_IMAGE) THEN
hol-light-20190729/Multivariate/metric.ml:27859:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-27860-  X_GEN_TAC `x:num->A` THEN REWRITE_TAC[IN_DELETE; FORALL_AND_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-27903-   [continuous_map; TOPSPACE_MTOPOLOGY; cauchy_in]) THEN
hol-light-20190729/Multivariate/metric.ml:27904:  REWRITE_TAC[o_DEF] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-27905-
##############################################
hol-light-20190729/Multivariate/metric.ml-28082-  STRIP_TAC THEN X_GEN_TAC `C:real` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/metric.ml:28083:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[FORALL_IN_IMAGE_2]] THEN
hol-light-20190729/Multivariate/metric.ml-28084-  EXISTS_TAC `B * C:real` THEN ASM_SIMP_TAC[REAL_LT_MUL] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-28086-  TRANS_TAC REAL_LE_TRANS `B * mdist m1 (x:A,y)` THEN
hol-light-20190729/Multivariate/metric.ml:28087:  ASM_SIMP_TAC[REAL_LE_LMUL_EQ] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-28088-
##############################################
hol-light-20190729/Multivariate/metric.ml-28095-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP CAUCHY_CONTINUOUS_MAP_IMAGE) THEN
hol-light-20190729/Multivariate/metric.ml:28096:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_IMAGE]] THEN
hol-light-20190729/Multivariate/metric.ml-28097-  X_GEN_TAC `y:num->B` THEN REWRITE_TAC[SKOLEM_THM; FORALL_AND_THM]THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-28973-  SUBGOAL_THEN `IMAGE (f:A->B) t SUBSET topspace top'` ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:28974:   [RULE_ASSUM_TAC(REWRITE_RULE[limit]) THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-28975-  REWRITE_TAC[CONTINUOUS_MAP_ATPOINTOF; TOPSPACE_SUBTOPOLOGY; IN_INTER] THEN
hol-light-20190729/Multivariate/metric.ml-28976-  X_GEN_TAC `a:A` THEN STRIP_TAC THEN ASM_SIMP_TAC[ATPOINTOF_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:28977:  REWRITE_TAC[limit] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-28978-  X_GEN_TAC `w:B->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-28993-   [REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml:28994:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-28995-    ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-28996-  SUBGOAL_THEN `~((f:A->B) z IN topspace top' DIFF c)` MP_TAC THENL
hol-light-20190729/Multivariate/metric.ml:28997:   [REWRITE_TAC[IN_DIFF] THEN STRIP_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-28998-  FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE RAND_CONV [limit] o SPEC `z:A`) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29007-  DISCH_THEN(MP_TAC o SPEC `u INTER u':A->bool`) THEN
hol-light-20190729/Multivariate/metric.ml:29008:  ASM_SIMP_TAC[OPEN_IN_INTER] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-29009-
##############################################
hol-light-20190729/Multivariate/metric.ml-29020-      CLOSURE_OF_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:29021:    ANTS_TAC THENL [ASM SET_TAC[]; ASM_MESON_TAC[LIMIT_WITHIN_SUBSET]];
hol-light-20190729/Multivariate/metric.ml-29022-    ASM_MESON_TAC[CONTINUOUS_MAP_ON_INTERMEDIATE_CLOSURE_OF]]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-29044-  ASM_REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; IN_INTER] THEN
hol-light-20190729/Multivariate/metric.ml:29045:  RULE_ASSUM_TAC(REWRITE_RULE[closure_of]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-29046-
##############################################
hol-light-20190729/Multivariate/metric.ml-29060-  (SUBGOAL_THEN `(x:A) IN topspace top1` ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:29061:    [RULE_ASSUM_TAC(SIMP_RULE[closure_of]) THEN ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-29062-  FIRST_X_ASSUM(MP_TAC o SPEC `x:A`) THEN
hol-light-20190729/Multivariate/metric.ml:29063:  (ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]]) THEN
hol-light-20190729/Multivariate/metric.ml-29064-  X_GEN_TAC `g:A->B` THEN REWRITE_TAC[CONTINUOUS_MAP_ATPOINTOF] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29158-      FIRST_ASSUM(MP_TAC o MATCH_MP CAUCHY_CONTINUOUS_MAP_IMAGE) THEN
hol-light-20190729/Multivariate/metric.ml:29159:      REWRITE_TAC[SUBMETRIC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-29160-      MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/metric.ml-29166-      FIRST_ASSUM(MP_TAC o MATCH_MP CAUCHY_CONTINUOUS_MAP_IMAGE) THEN
hol-light-20190729/Multivariate/metric.ml:29167:      REWRITE_TAC[SUBMETRIC] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-29168-
##############################################
hol-light-20190729/Multivariate/metric.ml-29200-   [RULE_ASSUM_TAC(REWRITE_RULE[closure_of; TOPSPACE_MTOPOLOGY]) THEN
hol-light-20190729/Multivariate/metric.ml:29201:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-29202-    FIRST_ASSUM(MP_TAC o CONJUNCT1 o REWRITE_RULE[CONTINUOUS_MAP])] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29217-   `s SUBSET t ==> t INTER s = s /\ s INTER t = s`] THEN
hol-light-20190729/Multivariate/metric.ml:29218:  ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-29219-  ONCE_REWRITE_TAC[GSYM REAL_SUB_LE] THEN REWRITE_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/metric.ml-29295-   [RULE_ASSUM_TAC(REWRITE_RULE[closure_of; TOPSPACE_MTOPOLOGY]) THEN
hol-light-20190729/Multivariate/metric.ml:29296:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-29297-    FIRST_ASSUM(MP_TAC o CONJUNCT1 o REWRITE_RULE[CONTINUOUS_MAP])] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29390-   [RULE_ASSUM_TAC(REWRITE_RULE[closure_of; TOPSPACE_MTOPOLOGY]) THEN
hol-light-20190729/Multivariate/metric.ml:29391:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-29392-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29413-    ASM_SIMP_TAC[REAL_LT_MIN; REAL_LT_INV_EQ; REAL_ARITH `&0 < &n + &1`] THEN
hol-light-20190729/Multivariate/metric.ml:29414:    MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-29415-    REWRITE_TAC[SKOLEM_THM; FORALL_AND_THM; LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29425-               SET_RULE `s SUBSET t ==> t INTER s = s`] THEN
hol-light-20190729/Multivariate/metric.ml:29426:  DISCH_TAC THEN TRY(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-29427-  X_GEN_TAC `e:real` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29445-      ==> mdist m (y,y') < e / &2 ==> mdist m (x,x') < e`)] THEN
hol-light-20190729/Multivariate/metric.ml:29446:  (CONJ_TAC THENL [ASM SET_TAC[]; ASM_MESON_TAC[REAL_LT_TRANS]]));;
hol-light-20190729/Multivariate/metric.ml-29447-
##############################################
hol-light-20190729/Multivariate/metric.ml-29500-                 EVENTUALLY_ATPOINTOF; NOT_IN_EMPTY] THEN
hol-light-20190729/Multivariate/metric.ml:29501:    ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-29502-  ASM_CASES_TAC `(a:A) IN top derived_set_of s` THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-29562-        RULE_ASSUM_TAC(REWRITE_RULE[OPEN_IN_CLOSED_IN_EQ]) THEN
hol-light-20190729/Multivariate/metric.ml:29563:        ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-29564-        FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [IN_DERIVED_SET_OF]) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29568-                     FINITE_INSERT; FORALL_IN_INSERT; OPEN_IN_TOPSPACE] THEN
hol-light-20190729/Multivariate/metric.ml:29569:        ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-29570-        DISCH_THEN(X_CHOOSE_THEN `y:A` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/metric.ml-29571-        EXISTS_TAC `(f:A->B) y` THEN REWRITE_TAC[INTERS_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:29572:        ASM SET_TAC[]]];
hol-light-20190729/Multivariate/metric.ml-29573-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `b:B` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29611-  ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:29612:   [FIRST_X_ASSUM DISJ_CASES_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-29613-    ASM_MESON_TAC[CONTINUOUS_MAP_IMAGE_SUBSET_TOPSPACE; TOPSPACE_SUBTOPOLOGY;
##############################################
hol-light-20190729/Multivariate/metric.ml-29683-    EXISTS_TAC `u INTER v:A->bool` THEN
hol-light-20190729/Multivariate/metric.ml:29684:    ASM_SIMP_TAC[OPEN_IN_INTER; IN_INTER] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-29685-
##############################################
hol-light-20190729/Multivariate/metric.ml-29786-  ASM_CASES_TAC `(a:A) IN mspace m` THENL
hol-light-20190729/Multivariate/metric.ml:29787:   [ASM_REWRITE_TAC[CAPPED_METRIC]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-29788-  EQ_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29840-    W(MP_TAC o PART_MATCH (lhand o rand) REAL_SUP_LE_EQ o lhand o snd) THEN
hol-light-20190729/Multivariate/metric.ml:29841:    REWRITE_TAC[FORALL_IN_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-29842-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29885-      RULE_ASSUM_TAC(REWRITE_RULE[cartesian_product; IN_ELIM_THM; o_THM]) THEN
hol-light-20190729/Multivariate/metric.ml:29886:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-29887-
##############################################
hol-light-20190729/Multivariate/metric.ml-29922-    REWRITE_TAC[T1_SPACE_CLOSED_IN_SING; RIGHT_IMP_FORALL_THM; IMP_IMP] THEN
hol-light-20190729/Multivariate/metric.ml:29923:    STRIP_TAC THENL [ASM SET_TAC[]; FIRST_X_ASSUM MATCH_MP_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-29924-    RULE_ASSUM_TAC(REWRITE_RULE
hol-light-20190729/Multivariate/metric.ml-29925-     [TOPSPACE_PRODUCT_TOPOLOGY; cartesian_product; o_DEF; IN_ELIM_THM]) THEN
hol-light-20190729/Multivariate/metric.ml:29926:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-29927-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29949-      REWRITE_TAC[TOPSPACE_PRODUCT_TOPOLOGY; cartesian_product; o_THM] THEN
hol-light-20190729/Multivariate/metric.ml:29950:      REWRITE_TAC[EXTENSIONAL; IN_ELIM_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-29951-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29967-       `(l ==> k) /\ (k /\ l ==> p ==> q) ==> l /\ ~q ==> k /\ ~p`) THEN
hol-light-20190729/Multivariate/metric.ml:29968:      CONJ_TAC THENL [ASM SET_TAC[]; REPEAT STRIP_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-29969-      FIRST_X_ASSUM(MATCH_MP_TAC o GEN_REWRITE_RULE I [SUBSET]) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-29971-      REWRITE_TAC[cartesian_product; IN_ELIM_THM; EXTENSIONAL] THEN
hol-light-20190729/Multivariate/metric.ml:29972:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-29973-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-30164-      SUBGOAL_THEN `?a:K. a IN k` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:30165:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-30166-      EXISTS_TAC
##############################################
hol-light-20190729/Multivariate/metric.ml-30333-      ASM_REWRITE_TAC[CLOSED_IN_CONTAINS_DERIVED_SET; TOPSPACE_MTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:30334:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-30335-      REWRITE_TAC[MCOMPLETE_NEST_SING]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-30346-    SUBGOAL_THEN `(!b n. (x:(num->bool)->num->A) b n IN mspace m)`
hol-light-20190729/Multivariate/metric.ml:30347:    ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-30348-    ANTS_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-30353-        REPEAT(CONJ_TAC THENL [SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml:30354:        ASM_REWRITE_TAC[MCBALL_SUBMETRIC_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-30355-        X_GEN_TAC `e:real` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-30394-        COND_CASES_TAC THEN ASM_REWRITE_TAC[MCBALL_SUBMETRIC_EQ; IN_INTER] THEN
hol-light-20190729/Multivariate/metric.ml:30395:        ASM SET_TAC[]]];
hol-light-20190729/Multivariate/metric.ml-30396-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-30420-    SUBGOAL_THEN `~(u:A->bool = {})` ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:30421:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-30422-      REPEAT(FIRST_X_ASSUM(K ALL_TAC o check (free_in `z:A`) o concl))] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-30473-        MP_TAC(ISPECL [`top:A topology`; `c:A->bool`] INTERIOR_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:30474:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-30475-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-30523-     `DISJOINT ((d:(num->bool)->num->A->bool) b (SUC n)) (d c (SUC n))`
hol-light-20190729/Multivariate/metric.ml:30524:    MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-30525-    ASM_SIMP_TAC[COND_SWAP] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-30956-      GEN_REWRITE_TAC RAND_CONV [GSYM FUN_EQ_THM] THEN
hol-light-20190729/Multivariate/metric.ml:30957:      REWRITE_TAC[ETA_AX] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-30958-    REWRITE_TAC[NSPHERE; CONTINUOUS_MAP_IN_SUBTOPOLOGY] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-31175-   [REWRITE_TAC[MBOUNDED_ALT; SUBSET; IN_UNION] THEN
hol-light-20190729/Multivariate/metric.ml:31176:    STRIP_TAC THEN EXISTS_TAC `b:real` THEN ASM SET_TAC [];
hol-light-20190729/Multivariate/metric.ml-31177-    ASM_REWRITE_TAC[MBOUNDED_UNION]];
##############################################
hol-light-20190729/Multivariate/metric.ml-31258-  REWRITE_TAC[FUNSPACE; MBOUNDED; IMAGE_EQ_EMPTY; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/metric.ml:31259:  ASM_CASES_TAC `s:A->bool = {}` THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-31260-
##############################################
hol-light-20190729/Multivariate/metric.ml-31266-  [REWRITE_TAC[MBOUNDED_ALT; SUBSET; IN_UNION] THEN
hol-light-20190729/Multivariate/metric.ml:31267:   STRIP_TAC THEN EXISTS_TAC `b:real` THEN ASM SET_TAC [];
hol-light-20190729/Multivariate/metric.ml-31268-   ASM_REWRITE_TAC[MBOUNDED_UNION]]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-31282-    REAL_SUP_LE_EQ) THEN
hol-light-20190729/Multivariate/metric.ml:31283:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_ELIM_THM]] THEN
hol-light-20190729/Multivariate/metric.ml-31284-  MESON_TAC[]);;
##############################################
hol-light-20190729/Multivariate/metric.ml-31462-  REPEAT STRIP_TAC THEN MATCH_MP_TAC FUNSPACE_IMP_BOUNDED2 THEN
hol-light-20190729/Multivariate/metric.ml:31463:  ASM SET_TAC [CFUNSPACE_SUBSET_FUNSPACE]);;
hol-light-20190729/Multivariate/metric.ml-31464-
##############################################
hol-light-20190729/Multivariate/metric.ml-31926-        ASM_REWRITE_TAC[GSYM MEMBER_NOT_EMPTY] THEN
hol-light-20190729/Multivariate/metric.ml:31927:        REPEAT CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-31928-        EXISTS_TAC `x:A` THEN REWRITE_TAC[interior_of; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-31948-         [MP_TAC(ISPECL[`top:A topology`; `c:A->bool`] INTERIOR_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:31949:          ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-31950-          EXISTS_TAC `x:A` THEN REWRITE_TAC[interior_of; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/metric.ml-31951-          ASM_MESON_TAC[];
hol-light-20190729/Multivariate/metric.ml:31952:          ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-31953-          MP_TAC(ISPECL[`top:A topology`; `c:A->bool`] INTERIOR_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:31954:          ASM SET_TAC[]]]];
hol-light-20190729/Multivariate/metric.ml-31955-    REWRITE_TAC[NOT_EXISTS_THM; FORALL_AND_THM]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-31962-                  SUBSET];
hol-light-20190729/Multivariate/metric.ml:31963:    MATCH_MP_TAC TRANSITIVE_STEPWISE_LE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-31964-    RULE_ASSUM_TAC(REWRITE_RULE[UNIONS_IMAGE; IN_UNIV]) THEN
hol-light-20190729/Multivariate/metric.ml:31965:    REWRITE_TAC[INTERS_GSPEC] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-31966-
##############################################
hol-light-20190729/Multivariate/metric.ml-32180-    FIRST_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:32181:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-32182-    GEN_REWRITE_TAC (LAND_CONV o BINDER_CONV) [RIGHT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-32199-      ASM_SIMP_TAC[IN_ELIM_THM] THEN CONV_TAC REAL_RAT_REDUCE_CONV THEN
hol-light-20190729/Multivariate/metric.ml:32200:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-32201-    DISCH_THEN(X_CHOOSE_THEN `k:A->bool` MP_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-32219-    MATCH_MP_TAC CONTINUOUS_MAP_INF THEN REWRITE_TAC[ETA_AX] THEN
hol-light-20190729/Multivariate/metric.ml:32220:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-32221-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-32229-     SUBSET; FORALL_IN_IMAGE; IN_REAL_INTERVAL]) THEN
hol-light-20190729/Multivariate/metric.ml:32230:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-32231-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-32340-          FIRST_X_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:32341:          ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-32342-        FIRST_X_ASSUM(MP_TAC o MATCH_MP COMPACT_IN_SUBSET_TOPSPACE) THEN
hol-light-20190729/Multivariate/metric.ml:32343:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-32344-      DISCH_THEN(X_CHOOSE_THEN `g:((A->real)->real)->real`
##############################################
hol-light-20190729/Multivariate/metric.ml-32352-          CONTINUOUS_MAP_IMAGE_SUBSET_TOPSPACE)) THEN
hol-light-20190729/Multivariate/metric.ml:32353:        REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[]]]) in
hol-light-20190729/Multivariate/metric.ml-32354-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-32422-  SUBGOAL_THEN `INTERS {(s:K->A->bool) i | i IN k} SUBSET mspace m`
hol-light-20190729/Multivariate/metric.ml:32423:  ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN ABBREV_TAC
hol-light-20190729/Multivariate/metric.ml-32424-   `d:K->A->real =
##############################################
hol-light-20190729/Multivariate/metric.ml-32454-      [MATCH_MP_TAC INF_LE_ELEMENT THEN
hol-light-20190729/Multivariate/metric.ml:32455:       CONJ_TAC THENL [EXISTS_TAC `&0`; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-32456-       ASM_SIMP_TAC[FORALL_IN_IMAGE; IN_DIFF; MDIST_POS_LE];
##############################################
hol-light-20190729/Multivariate/metric.ml-32480-    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:32481:    REWRITE_TAC[TOPSPACE_MTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-32482-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-32499-         SPEC `i:K`) THEN
hol-light-20190729/Multivariate/metric.ml:32500:        ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-32501-        REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; IN_INTER; INTERS_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-32566-      EXPAND_TAC "d" THEN REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/metric.ml:32567:      COND_CASES_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-32568-      MATCH_MP_TAC INF_LE_ELEMENT THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-32578-     [ALL_TAC;
hol-light-20190729/Multivariate/metric.ml:32579:      RULE_ASSUM_TAC(REWRITE_RULE[EXTENSIONAL]) THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-32580-    REWRITE_TAC[REAL_ARITH `x = y <=> ~(&0 < abs(x - y))`] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-32600-      REWRITE_TAC[IN_REAL_INTERVAL; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/metric.ml:32601:      CONJ_TAC THENL [ASM SET_TAC[]; ASM_REAL_ARITH_TAC];
hol-light-20190729/Multivariate/metric.ml-32602-      REWRITE_TAC[TOPSPACE_PRODUCT_TOPOLOGY; cartesian_product] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-32651-  RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/metric.ml:32652:  FIRST_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-32653-
##############################################
hol-light-20190729/Multivariate/metric.ml-32740-   `s SUBSET u ==> u INTER s = s`] THEN
hol-light-20190729/Multivariate/metric.ml:32741:  ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-32742-  ASM_SIMP_TAC[HAUSDORFF_SPACE_SUBTOPOLOGY;
##############################################
hol-light-20190729/Multivariate/metric.ml-32745-   `continuous_map (subtopology top u,subtopology top s) (f:A->A)` THEN
hol-light-20190729/Multivariate/metric.ml:32746:  SIMP_TAC[CONTINUOUS_MAP_IN_SUBTOPOLOGY] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/metric.ml-32747-
##############################################
hol-light-20190729/Multivariate/metric.ml-32824-      FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:32825:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/metric.ml-32826-
##############################################
hol-light-20190729/Multivariate/metric.ml-32854-  ASM_REWRITE_TAC[IN_INTER] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:32855:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-32856-    REWRITE_TAC[OPEN_IN_SUBTOPOLOGY] THEN ASM_MESON_TAC[INTER_COMM];
##############################################
hol-light-20190729/Multivariate/metric.ml-32910-  ASM_SIMP_TAC[IN_INTER; OPEN_IN_INTER] THEN
hol-light-20190729/Multivariate/metric.ml:32911:  (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-32912-  ASM_SIMP_TAC[SET_RULE `u SUBSET v ==> u INTER v = u`;
##############################################
hol-light-20190729/Multivariate/metric.ml-32947-      RULE_ASSUM_TAC(REWRITE_RULE[homeomorphic_maps; continuous_map]) THEN
hol-light-20190729/Multivariate/metric.ml:32948:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-32949-      REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/metric.ml-32950-      RULE_ASSUM_TAC(REWRITE_RULE[homeomorphic_maps; continuous_map]) THEN
hol-light-20190729/Multivariate/metric.ml:32951:      ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-32952-      ASM_MESON_TAC[HOMEOMORPHIC_MAPS_MAP; HOMEOMORPHIC_MAP_OPENNESS_EQ];
##############################################
hol-light-20190729/Multivariate/metric.ml-32997-  EXISTS_TAC `(\x. if x IN u then &0 else &1):A->real` THEN
hol-light-20190729/Multivariate/metric.ml:32998:  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-32999-  REWRITE_TAC[CONTINUOUS_MAP_IN_SUBTOPOLOGY; SUBSET; FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33043-  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/metric.ml:33044:   [CONJ_TAC THENL [ASM_MESON_TAC[HAS_SIZE]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-33045-    DISCH_THEN(X_CHOOSE_THEN `f:(A->bool)->(A->bool)` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33049-               FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:33050:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-33051-  X_GEN_TAC `c:A->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33057-   [RULE_ASSUM_TAC(REWRITE_RULE[UNIONS_IMAGE; OPEN_IN_CLOSED_IN_EQ]) THEN
hol-light-20190729/Multivariate/metric.ml:33058:    REWRITE_TAC[UNIONS_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml:33059:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-33060-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [pairwise]) THEN
hol-light-20190729/Multivariate/metric.ml:33061:    REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-33062-    STRIP_TAC THEN MATCH_MP_TAC HAS_SIZE_IMAGE_INJ THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33064-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [pairwise]) THEN
hol-light-20190729/Multivariate/metric.ml:33065:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/metric.ml-33066-
##############################################
hol-light-20190729/Multivariate/metric.ml-33135-  SUBGOAL_THEN `!t:A->bool. t IN u ==> ~(t = {})` ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:33136:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-33137-  SUBGOAL_THEN `pairwise DISJOINT (u:(A->bool)->bool)` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/metric.ml-33160-     [RULE_ASSUM_TAC(REWRITE_RULE[UNIONS_IMAGE; OPEN_IN_CLOSED_IN_EQ]) THEN
hol-light-20190729/Multivariate/metric.ml:33161:      REWRITE_TAC[UNIONS_IMAGE; UNIONS_INSERT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-33162-      REWRITE_TAC[FORALL_IN_INSERT; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/metric.ml:33163:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-33164-      SUBGOAL_THEN `?a:A. a IN t /\ ~(a IN s)` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/metric.ml:33165:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-33166-      REWRITE_TAC[GSYM MEMBER_NOT_EMPTY] THEN EXISTS_TAC `a:A` THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33169-         CONNECTED_COMPONENTS_OF_SUBSET) THEN
hol-light-20190729/Multivariate/metric.ml:33170:        REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-33171-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33175-      RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN
hol-light-20190729/Multivariate/metric.ml:33176:      REWRITE_TAC[pairwise] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-33177-      MATCH_MP_TAC PAIRWISE_IMP THEN EXISTS_TAC
##############################################
hol-light-20190729/Multivariate/metric.ml-33183-        REWRITE_TAC[IMP_CONJ; FORALL_IN_IMAGE; pairwise] THEN
hol-light-20190729/Multivariate/metric.ml:33184:        RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-33185-        MATCH_MP_TAC(MESON[]
##############################################
hol-light-20190729/Multivariate/metric.ml-33202-            MATCH_MP_TAC CLOSED_IN_CONNECTED_COMPONENTS_OF THEN
hol-light-20190729/Multivariate/metric.ml:33203:            ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-33204-            REWRITE_TAC[CLOSED_IN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:33205:            MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/metric.ml-33206-          X_GEN_TAC `t':A->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33208-          MATCH_MP_TAC(TAUT `p /\ (p ==> q) ==> p /\ q`) THEN
hol-light-20190729/Multivariate/metric.ml:33209:          CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-33210-          DISCH_THEN(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN SET_TAC[]]];
##############################################
hol-light-20190729/Multivariate/metric.ml-33217-       [MATCH_MP_TAC HAS_SIZE_IMAGE_INJ THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/metric.ml:33218:         [RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-33219-          RULE_ASSUM_TAC(REWRITE_RULE[HAS_SIZE]) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33224-         `DISJOINT s t /\ ~(s = {}) ==> ~(s = t)`) THEN
hol-light-20190729/Multivariate/metric.ml:33225:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/metric.ml-33226-        MATCH_MP_TAC SEPARATED_IN_IMP_DISJOINT THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33228-        RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN
hol-light-20190729/Multivariate/metric.ml:33229:        FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/metric.ml-33230-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33243-        UNIONS_CONNECTED_COMPONENTS_OF) THEN
hol-light-20190729/Multivariate/metric.ml:33244:    REWRITE_TAC[TOPSPACE_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-33245-    ASM_SIMP_TAC[SET_RULE `s SUBSET u ==> u DIFF (u DIFF s) = s`;
##############################################
hol-light-20190729/Multivariate/metric.ml-33253-  EXISTS_TAC `\(u:A->bool) v. ~DISJOINT u v` THEN
hol-light-20190729/Multivariate/metric.ml:33254:  REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/metric.ml-33255-  MAP_EVERY X_GEN_TAC [`t:A->bool`; `c1:A->bool`; `c2:A->bool`] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33264-  MAP_EVERY EXISTS_TAC [`c1:A->bool`; `UNIONS(v DELETE (c1:A->bool))`] THEN
hol-light-20190729/Multivariate/metric.ml:33265:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/metric.ml-33266-  RULE_ASSUM_TAC(REWRITE_RULE[HAS_SIZE]) THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33376-    RULE_ASSUM_TAC(REWRITE_RULE[TOPSPACE_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/metric.ml:33377:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-33378-    X_GEN_TAC `d':A->bool` THEN STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33393-    RULE_ASSUM_TAC(REWRITE_RULE[TOPSPACE_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/metric.ml:33394:    ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-33395-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33404-   [REWRITE_TAC[SUBTOPOLOGY_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/metric.ml:33405:    CONJ_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/metric.ml-33406-    MATCH_MP_TAC HOMEOMORPHIC_MAPS_SUBTOPOLOGIES] THEN
##############################################
hol-light-20190729/Multivariate/metric.ml-33411-  RULE_ASSUM_TAC(REWRITE_RULE[TOPSPACE_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/metric.ml:33412:  ASM SET_TAC[]);;
##############################################
hol-light-20190729/Multivariate/misc.ml-40-  REWRITE_TAC[SUBSET_DIFF] THEN MATCH_MP_TAC EQ_IMP THEN
hol-light-20190729/Multivariate/misc.ml:41:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/misc.ml-42-
##############################################
hol-light-20190729/Multivariate/misc.ml-49-  REWRITE_TAC[SUBSET_DIFF] THEN MATCH_MP_TAC EQ_IMP THEN
hol-light-20190729/Multivariate/misc.ml:50:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/misc.ml-51-
##############################################
hol-light-20190729/Multivariate/misc.ml-126-    (!i. i IN t ==> abs(a i - b) <= d)`
hol-light-20190729/Multivariate/misc.ml:127:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/misc.ml-128-  REWRITE_TAC[SUM_RESTRICT_SET; MESON[REAL_MUL_LZERO]
##############################################
hol-light-20190729/Multivariate/misc.ml-160-    SIMP_TAC[IN_ELIM_THM; REAL_ARITH `&0 < x <=> &0 <= x /\ ~(x = &0)`] THEN
hol-light-20190729/Multivariate/misc.ml:161:    ASM SET_TAC[];
hol-light-20190729/Multivariate/misc.ml-162-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-241-    DISCH_THEN(X_CHOOSE_TAC `x:A^N`) THEN
hol-light-20190729/Multivariate/misc.ml:242:    EXISTS_TAC `\i. (x:A^N)$i` THEN ASM_REWRITE_TAC[]]);;
hol-light-20190729/Multivariate/misc.ml-243-
##############################################
hol-light-20190729/Multivariate/misc.ml-699-  MATCH_MP_TAC HULL_IMAGE_GALOIS THEN EXISTS_TAC `g:A->A` THEN
hol-light-20190729/Multivariate/misc.ml:700:  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/misc.ml-701-  X_GEN_TAC `s:A->bool` THEN
hol-light-20190729/Multivariate/misc.ml-702-  FIRST_X_ASSUM(fun th -> GEN_REWRITE_TAC RAND_CONV [GSYM th]) THEN
hol-light-20190729/Multivariate/misc.ml:703:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/misc.ml-704-
##############################################
hol-light-20190729/Multivariate/misc.ml-730-  REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/misc.ml:731:  REPEAT STRIP_TAC THEN MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/misc.ml-732-
##############################################
hol-light-20190729/Multivariate/misc.ml-735-  REWRITE_TAC[SUBSET_INTERS; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/misc.ml:736:  REPEAT STRIP_TAC THEN MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/misc.ml-737-
##############################################
hol-light-20190729/Multivariate/misc.ml-793-  SUBGOAL_THEN `?k. k IN 1..CARD(s:A->bool) /\ (a:A) = f k`
hol-light-20190729/Multivariate/misc.ml:794:  STRIP_ASSUME_TAC THENL[ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/misc.ml-795-  EXISTS_TAC
##############################################
hol-light-20190729/Multivariate/misc.ml-798-   [REWRITE_TAC[IN_NUMSEG; LE_REFL; ARITH_RULE `1 <= x <=> ~(x = 0)`] THEN
hol-light-20190729/Multivariate/misc.ml:799:    ASM_SIMP_TAC[CARD_EQ_0; ARITH_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/misc.ml-800-    ALL_TAC] THEN
hol-light-20190729/Multivariate/misc.ml-801-  ASM_REWRITE_TAC[o_THM] THEN
hol-light-20190729/Multivariate/misc.ml:802:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/misc.ml-803-  UNDISCH_THEN `s = IMAGE (f:num->A) (1..CARD(s:A->bool))`
##############################################
hol-light-20190729/Multivariate/misc.ml-1183-let COUNTABLE_INTEGER_COORDINATES = prove
hol-light-20190729/Multivariate/misc.ml:1184: (`COUNTABLE { x:real^N | !i. 1 <= i /\ i <= dimindex(:N) ==> integer(x$i) }`,
hol-light-20190729/Multivariate/misc.ml-1185-  MATCH_MP_TAC COUNTABLE_CART THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1188-let COUNTABLE_RATIONAL_COORDINATES = prove
hol-light-20190729/Multivariate/misc.ml:1189: (`COUNTABLE { x:real^N | !i. 1 <= i /\ i <= dimindex(:N) ==> rational(x$i) }`,
hol-light-20190729/Multivariate/misc.ml-1190-  MATCH_MP_TAC COUNTABLE_CART THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1262-    EXISTS_TAC `IMAGE (q:num->real) (:num)` THEN
hol-light-20190729/Multivariate/misc.ml:1263:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/misc.ml-1264-    MATCH_MP_TAC INFINITE_IMAGE THEN REWRITE_TAC[num_INFINITE; IN_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1395-  REWRITE_TAC[COMPL_COMPL] THEN
hol-light-20190729/Multivariate/misc.ml:1396:  AP_TERM_TAC THEN ABS_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/misc.ml-1397-
##############################################
hol-light-20190729/Multivariate/misc.ml-1400-  REPEAT STRIP_TAC THEN REWRITE_TAC[relative_to] THEN
hol-light-20190729/Multivariate/misc.ml:1401:  EXISTS_TAC `s:A->bool` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/misc.ml-1402-
##############################################
hol-light-20190729/Multivariate/misc.ml-1406-  REPEAT GEN_TAC THEN DISCH_THEN(CONJUNCTS_THEN2 MP_TAC STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/misc.ml:1407:  REWRITE_TAC[relative_to] THEN MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/misc.ml-1408-
##############################################
hol-light-20190729/Multivariate/misc.ml-1428-  EXISTS_TAC `c' INTER d':A->bool` THEN
hol-light-20190729/Multivariate/misc.ml:1429:  ASM_SIMP_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/misc.ml-1430-
##############################################
hol-light-20190729/Multivariate/misc.ml-1439-  EXISTS_TAC `c' UNION d':A->bool` THEN
hol-light-20190729/Multivariate/misc.ml:1440:  ASM_SIMP_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/misc.ml-1441-
##############################################
hol-light-20190729/Multivariate/misc.ml-1461-    EXISTS_TAC `UNIONS (IMAGE (g:(A->bool)->(A->bool)) f)` THEN
hol-light-20190729/Multivariate/misc.ml:1462:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/misc.ml-1463-    EXISTS_TAC `IMAGE (g:(A->bool)->(A->bool)) f` THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1485-    EXISTS_TAC `UNIONS (IMAGE (g:(A->bool)->(A->bool)) f)` THEN
hol-light-20190729/Multivariate/misc.ml:1486:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/misc.ml-1487-    EXISTS_TAC `IMAGE (g:(A->bool)->(A->bool)) f` THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1509-    EXISTS_TAC `UNIONS (IMAGE (g:(A->bool)->(A->bool)) f)` THEN
hol-light-20190729/Multivariate/misc.ml:1510:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/misc.ml-1511-    EXISTS_TAC `IMAGE (g:(A->bool)->(A->bool)) f` THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1539-    EXISTS_TAC `INTERS (IMAGE (g:(A->bool)->(A->bool)) f)` THEN
hol-light-20190729/Multivariate/misc.ml:1540:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/misc.ml-1541-    EXISTS_TAC `IMAGE (g:(A->bool)->(A->bool)) f` THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1569-    EXISTS_TAC `INTERS (IMAGE (g:(A->bool)->(A->bool)) f)` THEN
hol-light-20190729/Multivariate/misc.ml:1570:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/misc.ml-1571-    EXISTS_TAC `IMAGE (g:(A->bool)->(A->bool)) f` THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1599-    EXISTS_TAC `INTERS (IMAGE (g:(A->bool)->(A->bool)) f)` THEN
hol-light-20190729/Multivariate/misc.ml:1600:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/misc.ml-1601-    EXISTS_TAC `IMAGE (g:(A->bool)->(A->bool)) f` THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1638-    EXISTS_TAC `INTERS t:A->bool` THEN
hol-light-20190729/Multivariate/misc.ml:1639:    CONJ_TAC THENL [ASM_MESON_TAC[]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/misc.ml-1640-    GEN_REWRITE_TAC (RAND_CONV o RATOR_CONV)
##############################################
hol-light-20190729/Multivariate/misc.ml-1653-      REWRITE_TAC[ARBITRARY; INTERSECTION_OF] THEN
hol-light-20190729/Multivariate/misc.ml:1654:      EXISTS_TAC `t:(A->bool)->bool` THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/misc.ml-1655-
##############################################
hol-light-20190729/Multivariate/misc.ml-1695-    MP_TAC(ISPEC `u:(A->bool)->bool` COUNTABLE_AS_IMAGE) THEN
hol-light-20190729/Multivariate/misc.ml:1696:    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/misc.ml-1697-    FIRST_X_ASSUM(K ALL_TAC o GEN_REWRITE_RULE I [SKOLEM_THM])] THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1737-        ASM_REWRITE_TAC[]]];
hol-light-20190729/Multivariate/misc.ml:1738:    ASM SET_TAC[];
hol-light-20190729/Multivariate/misc.ml-1739-    REWRITE_TAC[pairwise] THEN MATCH_MP_TAC WLOG_LT THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1752-      DISCH_THEN(MP_TAC o AP_TERM `q:num->num#num`) THEN
hol-light-20190729/Multivariate/misc.ml:1753:      ASM_REWRITE_TAC[PAIR_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/misc.ml-1754-      REWRITE_TAC[EXTENSION; IN_DIFF; IN_INTER; UNIONS_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1763-       MATCH_MP_TAC(TAUT `p ==> (p /\ q <=> q)`) THEN
hol-light-20190729/Multivariate/misc.ml:1764:       EXPAND_TAC "d" THEN REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/misc.ml-1765-       ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1964-    CONJ_TAC THEN MAP_EVERY X_GEN_TAC [`x:A`; `y:A`] THEN
hol-light-20190729/Multivariate/misc.ml:1965:    ASM_CASES_TAC `x:A = y` THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/misc.ml-1966-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1970-    ASM_CASES_TAC `(x:A) IN s'` THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/misc.ml:1971:     [EXISTS_TAC `(f:A->B) x` THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/misc.ml:1972:    MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/misc.ml-1973-    X_GEN_TAC `y:B` THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-1976-     [SUBGOAL_THEN `?x:A. x IN s' /\ (f:A->B) x = y` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/misc.ml:1977:       [ASM SET_TAC[]; EXISTS_TAC `x:A` THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/misc.ml:1978:      MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/misc.ml-1979-
##############################################
hol-light-20190729/Multivariate/misc.ml-2018-  ANTS_TAC THENL
hol-light-20190729/Multivariate/misc.ml:2019:   [CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]; ALL_TAC] THEN
hol-light-20190729/Multivariate/misc.ml-2020-  EXPAND_TAC "t'" THEN REWRITE_TAC[FORALL_IN_IMAGE; FORALL_IN_IMAGE_2] THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-2158-  COND_CASES_TAC THEN REWRITE_TAC[INTERS_1; UNIONS_1] THEN
hol-light-20190729/Multivariate/misc.ml:2159:  MP_TAC LE_REFL THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/misc.ml-2160-
##############################################
hol-light-20190729/Multivariate/misc.ml-2363-      ASM_REWRITE_TAC[o_THM; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/misc.ml:2364:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/misc.ml-2365-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-2367-        IMAGE p (:num)`
hol-light-20190729/Multivariate/misc.ml:2368:      SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/misc.ml-2369-      REWRITE_TAC[IMP_CONJ; RIGHT_FORALL_IMP_THM; FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-2393-        REWRITE_TAC[IN_CROSS; IN_UNIV; IN_DELETE] THEN
hol-light-20190729/Multivariate/misc.ml:2394:        CONV_TAC NUM_REDUCE_CONV THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/misc.ml:2395:        ASM SET_TAC[];
hol-light-20190729/Multivariate/misc.ml-2396-        REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-2399-        REWRITE_TAC[IN_CROSS; IN_UNIV; IN_DELETE] THENL
hol-light-20190729/Multivariate/misc.ml:2400:         [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/misc.ml-2401-        EXPAND_TAC "J" THEN REWRITE_TAC[IN_UNION] THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-2414-   [X_GEN_TAC `l:num list` THEN DISCH_TAC THEN COND_CASES_TAC THENL
hol-light-20190729/Multivariate/misc.ml:2415:     [ASM SET_TAC[]; FIRST_X_ASSUM MATCH_MP_TAC] THEN
hol-light-20190729/Multivariate/misc.ml-2416-    REWRITE_TAC[GSYM LENGTH_EQ_NIL; LENGTH_LIST_OF_SEQ] THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-2486-  EXPAND_TAC "J" THEN REWRITE_TAC[IN_UNION; IN_ELIM_PAIR_THM] THEN
hol-light-20190729/Multivariate/misc.ml:2487:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/misc.ml-2488-
##############################################
hol-light-20190729/Multivariate/misc.ml-2505-  REWRITE_TAC[SIMPLE_IMAGE; IMAGE_CONST; UNIV_NOT_EMPTY; UNIONS_1] THEN
hol-light-20190729/Multivariate/misc.ml:2506:  CONJ_TAC THENL [ASM SET_TAC[]; AP_TERM_TAC] THEN
hol-light-20190729/Multivariate/misc.ml-2507-  MP_TAC(ARITH_RULE `!n. 1 <= SUC n /\ SUC n - 1 = n`) THEN
##############################################
hol-light-20190729/Multivariate/misc.ml-2531-  EXISTS_TAC `(f:num->A->bool) o (EL 0:num list->num)` THEN
hol-light-20190729/Multivariate/misc.ml:2532:  ASM_REWRITE_TAC[o_THM] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/misc.ml-2533-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-169-      MAP_EVERY EXISTS_TAC [`t:real^N->bool`; `t':real^N->bool`] THEN
hol-light-20190729/Multivariate/moretop.ml:170:      ASM_SIMP_TAC[SPAN_OF_SUBSPACE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-171-      DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-177-    ASM_SIMP_TAC[SPAN_OF_SUBSPACE; SUBSPACE_ADD; SUBSPACE_MUL] THEN
hol-light-20190729/Multivariate/moretop.ml:178:    (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/moretop.ml-179-    ASM_REWRITE_TAC[GSYM VECTOR_ADD_LDISTRIB] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-261-    ASM_SIMP_TAC[COMPACT_INTER_CLOSED; COMPACT_SPHERE; CLOSED_SUBSPACE] THEN
hol-light-20190729/Multivariate/moretop.ml:262:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[SUBSET; FORALL_IN_IMAGE]] THEN
hol-light-20190729/Multivariate/moretop.ml-263-    DISCH_THEN(X_CHOOSE_THEN `g:real^N->real^N` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-336-         [REWRITE_TAC[SEGMENT_CONVEX_HULL] THEN MATCH_MP_TAC HULL_MINIMAL THEN
hol-light-20190729/Multivariate/moretop.ml:337:          ASM_SIMP_TAC[SUBSPACE_IMP_CONVEX] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-338-          DISCH_THEN(MP_TAC o MATCH_MP SEGMENT_BOUND) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-341-            norm(f x - g x) < &1/ &2`
hol-light-20190729/Multivariate/moretop.ml:342:          MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-343-          REWRITE_TAC[IN_SPHERE_0] THEN CONV_TAC NORM_ARITH];
##############################################
hol-light-20190729/Multivariate/moretop.ml-371-       `t SUBSET s /\ ~(t = s) ==> ?a. a IN s DIFF t`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:372:       [ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-373-        MATCH_MP_TAC NONSURJECTIVE_DIFFERENTIABLE_SPHEREMAP_LOWDIM] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-393-        ASM_SIMP_TAC[SUBSPACE_IMP_CONVEX; INSERT_SUBSET; SUBSPACE_NEG] THEN
hol-light-20190729/Multivariate/moretop.ml:394:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-395-        DISCH_TAC THEN MP_TAC(ISPECL
##############################################
hol-light-20190729/Multivariate/moretop.ml-400-                      (c:real^N) IN sphere(vec 0,&1)`
hol-light-20190729/Multivariate/moretop.ml:401:        MP_TAC THENL [ASM SET_TAC[]; SIMP_TAC[IN_SPHERE_0]] THEN
hol-light-20190729/Multivariate/moretop.ml-402-        STRIP_TAC THEN REWRITE_TAC[midpoint; VECTOR_ARITH
hol-light-20190729/Multivariate/moretop.ml-403-         `vec 0:real^N = inv(&2) % (x + --y) <=> x = y`] THEN
hol-light-20190729/Multivariate/moretop.ml:404:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-405-      DISCH_THEN(MP_TAC o
##############################################
hol-light-20190729/Multivariate/moretop.ml-542-               IMAGE_ID; SUBSET_REFL] THEN
hol-light-20190729/Multivariate/moretop.ml:543:      REWRITE_TAC[NOT_IMP] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-544-      SUBGOAL_THEN `~(contractible(sphere(a:real^M,r)))` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-579-         [REWRITE_TAC[SPHERE_EQ_EMPTY] THEN ASM_REAL_ARITH_TAC;
hol-light-20190729/Multivariate/moretop.ml:580:          ASM SET_TAC[]]]]) in
hol-light-20190729/Multivariate/moretop.ml-581-  REWRITE_TAC[AND_FORALL_THM] THEN REPEAT GEN_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-650-    MP_TAC(ISPEC `s:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/moretop.ml:651:    MP_TAC(ISPEC `s:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-652-  FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [IN_RELATIVE_INTERIOR_CBALL]) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-716-      MP_TAC(SPEC `u:real` th) THEN MP_TAC(SPEC `v:real` th)) THEN
hol-light-20190729/Multivariate/moretop.ml:717:    ASM SET_TAC[]) in
hol-light-20190729/Multivariate/moretop.ml-718-  ONCE_REWRITE_TAC[SWAP_FORALL_THM] THEN GEN_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-763-    CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:764:     [MATCH_MP_TAC CARD_PSUBSET THEN ASM SET_TAC[REAL_LT_REFL];
hol-light-20190729/Multivariate/moretop.ml-765-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-769-    ASM_REWRITE_TAC[OPEN_HALFSPACE_COMPONENT_LT] THEN
hol-light-20190729/Multivariate/moretop.ml:770:    ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-771-    FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-775-    CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:776:     [MATCH_MP_TAC CARD_PSUBSET THEN ASM SET_TAC[REAL_LT_REFL];
hol-light-20190729/Multivariate/moretop.ml-777-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-781-    ASM_REWRITE_TAC[REWRITE_RULE[real_gt] OPEN_HALFSPACE_COMPONENT_GT] THEN
hol-light-20190729/Multivariate/moretop.ml:782:    ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-783-    ALL_TAC;
##############################################
hol-light-20190729/Multivariate/moretop.ml-804-    ASM_REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml:805: (ASM (CONV_TAC o GEN_SIMPLIFY_CONV TOP_DEPTH_SQCONV (basic_ss []) 5)
hol-light-20190729/Multivariate/moretop.ml-806-   [CONNECTED_FINITE_IFF_SING; INFINITE; CONVEX_CONNECTED;
##############################################
hol-light-20190729/Multivariate/moretop.ml-812-  MP_TAC lemma THEN DISCH_THEN MATCH_MP_TAC THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:813:   [EXISTS_TAC `a$k + &1 / &3 * ((b:real^N)$k - (a:real^N)$k)` THEN
hol-light-20190729/Multivariate/moretop.ml:814:    EXISTS_TAC `a$k + &2 / &3 * ((b:real^N)$k - (a:real^N)$k)` THEN
hol-light-20190729/Multivariate/moretop.ml-815-    ASM_REAL_ARITH_TAC;
##############################################
hol-light-20190729/Multivariate/moretop.ml-817-    REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; IN_INTER; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/moretop.ml:818:    SUBGOAL_THEN `!x:real^N. x$k = basis k dot x` (fun t -> SIMP_TAC[t]) THENL
hol-light-20190729/Multivariate/moretop.ml-819-     [ASM_MESON_TAC[DOT_BASIS]; MATCH_MP_TAC CONNECTED_IVT_HYPERPLANE] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-859-    ASM_SIMP_TAC[COMPACT_INTER_CLOSED; COMPACT_SPHERE; CLOSED_SUBSPACE] THEN
hol-light-20190729/Multivariate/moretop.ml:860:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[SUBSET; FORALL_IN_IMAGE]] THEN
hol-light-20190729/Multivariate/moretop.ml-861-    DISCH_THEN(X_CHOOSE_THEN `g:real^N->real^N` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-937-      DIFFERENTIABLE_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:938:    ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-939-    DISCH_THEN(MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/moretop.ml-942-          ==> ?q. q IN t /\ ~(q IN IMAGE f s)`)) THEN
hol-light-20190729/Multivariate/moretop.ml:943:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-944-    DISCH_THEN(X_CHOOSE_THEN `q:real^N` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-953-    REWRITE_TAC[VECTOR_NEG_NEG] THEN
hol-light-20190729/Multivariate/moretop.ml:954:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-955-    ASM_SIMP_TAC[IN_INTER; IN_SPHERE_0; SUBSPACE_NEG_EQ; NORM_NEG];
##############################################
hol-light-20190729/Multivariate/moretop.ml-983-      ASM_REWRITE_TAC[CONTINUOUS_MAP_EUCLIDEAN2] THEN
hol-light-20190729/Multivariate/moretop.ml:984:      ASM_SIMP_TAC[DIFFERENTIABLE_IMP_CONTINUOUS_ON] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-985-      FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [DE_MORGAN_THM]) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-1012-    ASM_SIMP_TAC[DIFFERENTIABLE_IMP_CONTINUOUS_ON] THEN
hol-light-20190729/Multivariate/moretop.ml:1013:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-1014-    MATCH_MP_TAC HOMOTOPIC_WITH_REFLECTIONS_ALONG THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-1045-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:1046:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-1047-      REWRITE_TAC[FORALL_IN_IMAGE]] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-1054-      SUBGOAL_THEN `c IN sphere(vec 0:real^N,&1) INTER t` ASSUME_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:1055:       [ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-1056-        RULE_ASSUM_TAC(REWRITE_RULE[IN_INTER; IN_SPHERE_0])] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-1063-        MATCH_MP (REAL_ARITH `abs x = &1 ==> x = &1 \/ x = -- &1`)) THEN
hol-light-20190729/Multivariate/moretop.ml:1064:      REWRITE_TAC[VECTOR_MUL_LNEG; VECTOR_MUL_LID] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-1065-      EXISTS_TAC `(&1 + abs((p:real^N) dot c)) / &2` THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-1192-    ASM_REWRITE_TAC[IMAGE_o] THEN
hol-light-20190729/Multivariate/moretop.ml:1193:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-1194-    REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-1202-    SUBGOAL_THEN `(k:real^N->real^N) x IN t` MP_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:1203:     [ASM SET_TAC[]; SPEC_TAC(`(k:real^N->real^N) x`,`y:real^N`)] THEN
hol-light-20190729/Multivariate/moretop.ml-1204-    X_GEN_TAC `y:real^N` THEN DISCH_TAC THEN REWRITE_TAC[REAL_MUL_LID] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-1208-      ASM_REWRITE_TAC[SPAN_EQ_SELF] THEN MATCH_MP_TAC DIM_EQ_SPAN THEN
hol-light-20190729/Multivariate/moretop.ml:1209:      CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[DIM_INSERT]] THEN
hol-light-20190729/Multivariate/moretop.ml-1210-      ASM_SIMP_TAC[SPAN_OF_SUBSPACE] THEN COND_CASES_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-1212-      SUBGOAL_THEN `orthogonal (p:real^N) p` MP_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:1213:       [ASM SET_TAC[]; REWRITE_TAC[ORTHOGONAL_REFL]] THEN
hol-light-20190729/Multivariate/moretop.ml-1214-      DISCH_THEN SUBST_ALL_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-1219-      SUBGOAL_THEN `orthogonal p (y - k % p:real^N)` MP_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:1220:       [ASM SET_TAC[]; REWRITE_TAC[orthogonal; DOT_RSUB]] THEN
hol-light-20190729/Multivariate/moretop.ml-1221-      REWRITE_TAC[DOT_RMUL; GSYM NORM_POW_2; REAL_SUB_0] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-1241-       [REWRITE_TAC[SEGMENT_CONVEX_HULL] THEN MATCH_MP_TAC HULL_MINIMAL THEN
hol-light-20190729/Multivariate/moretop.ml:1242:        ASM_SIMP_TAC[SUBSPACE_IMP_CONVEX] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-1243-        DISCH_THEN(MP_TAC o MATCH_MP SEGMENT_BOUND) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-1246-          norm(f x - g x) < &1/ &2`
hol-light-20190729/Multivariate/moretop.ml:1247:        MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-1248-        REWRITE_TAC[IN_SPHERE_0] THEN CONV_TAC NORM_ARITH];
##############################################
hol-light-20190729/Multivariate/moretop.ml-1367-      (f:real^N->real^N) (basis 1) = --basis 1`
hol-light-20190729/Multivariate/moretop.ml:1368:    MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/moretop.ml-1369-    MATCH_MP_TAC(INTEGER_RULE
##############################################
hol-light-20190729/Multivariate/moretop.ml-1413-    FIRST_X_ASSUM(MP_TAC o SPEC `g:real^N->real^N`) THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:1414:     [CONJ_TAC THENL [ALL_TAC;ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-1415-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/moretop.ml-1416-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:1417:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-1418-      MATCH_MP_TAC(INTEGER_RULE
##############################################
hol-light-20190729/Multivariate/moretop.ml-1443-        \x. lambda i. if 1 <= i /\ i <= n then x i else &0`;
hol-light-20190729/Multivariate/moretop.ml:1444:      `k':real^N->num->real = \x i. if 1 <= i /\ i <= n then x$i else &0`] THEN
hol-light-20190729/Multivariate/moretop.ml-1445-    ASM_REWRITE_TAC[homeomorphic_maps] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-1477-       [continuous_map; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/moretop.ml:1478:      ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-1479-    REPEAT CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-1498-         [continuous_map; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY]) THEN
hol-light-20190729/Multivariate/moretop.ml:1499:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-1500-        REPEAT
##############################################
hol-light-20190729/Multivariate/moretop.ml-1507-          CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:1508:        ASM SET_TAC[]]]]);;
hol-light-20190729/Multivariate/moretop.ml-1509-
##############################################
hol-light-20190729/Multivariate/moretop.ml-1637-    ASM_SIMP_TAC[CONVEX_INTER; CONVEX_CBALL; SUBSPACE_IMP_CONVEX] THEN
hol-light-20190729/Multivariate/moretop.ml:1638:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/moretop.ml-1639-
##############################################
hol-light-20190729/Multivariate/moretop.ml-1882-      DISCH_THEN(MP_TAC o SPEC `k:num`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/moretop.ml:1883:      STRIP_TAC THENL [ASM SET_TAC[]; EXISTS_TAC `k:num`] THEN
hol-light-20190729/Multivariate/moretop.ml-1884-      ASM_REWRITE_TAC[] THEN ASM_ARITH_TAC;
##############################################
hol-light-20190729/Multivariate/moretop.ml-2028-    EXISTS_TAC `\x. if x IN s then (f:real^M->real^N) x else g x` THEN
hol-light-20190729/Multivariate/moretop.ml:2029:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-2030-    MATCH_MP_TAC CONTINUOUS_ON_CASES THEN ASM_SIMP_TAC[CLOSED_UNIONS] THEN
hol-light-20190729/Multivariate/moretop.ml:2031:    ASM SET_TAC[]) in
hol-light-20190729/Multivariate/moretop.ml-2032-  let lemma = prove
##############################################
hol-light-20190729/Multivariate/moretop.ml-2045-    MATCH_MP_TAC wemma THEN
hol-light-20190729/Multivariate/moretop.ml:2046:    ASM_SIMP_TAC[FINITE_RESTRICT; IN_ELIM_THM] THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/moretop.ml-2047-  let zemma = prove
##############################################
hol-light-20190729/Multivariate/moretop.ml-2061-     [SUBGOAL_THEN `(UNIONS m:real^M->bool) SUBSET UNIONS n` ASSUME_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:2062:       [ASM SET_TAC[]; EXISTS_TAC `f:real^M->real^N`] THEN
hol-light-20190729/Multivariate/moretop.ml-2063-      REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:2064:       [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-2065-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2103-        ASM_SIMP_TAC[FACE_OF_REFL; POLYTOPE_IMP_CONVEX] THEN
hol-light-20190729/Multivariate/moretop.ml:2104:        ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/moretop.ml-2105-    MATCH_MP_TAC num_INDUCTION THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-2114-        ASM_CASES_TAC `d:real^M->bool = {}` THEN
hol-light-20190729/Multivariate/moretop.ml:2115:        ASM_REWRITE_TAC[EMPTY_FACE_OF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2116-        REWRITE_TAC[UNIONS_UNION; UNIONS_1; UNION_EMPTY] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2147-        REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:2148:         [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-2149-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2156-        MATCH_MP_TAC(MESON[] `(?c. P(\x. c)) ==> (?f. P f)`) THEN
hol-light-20190729/Multivariate/moretop.ml:2157:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2158-        ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2159-      SUBGOAL_THEN `~(d:real^M->bool = {})` ASSUME_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:2160:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2161-      FIRST_ASSUM(MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/moretop.ml-2196-            CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:2197:          ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2198-          ASM_MESON_TAC[AFFINE_BOUNDED_EQ_TRIVIAL; FACE_OF_POLYTOPE_POLYTOPE;
hol-light-20190729/Multivariate/moretop.ml-2199-                        POLYTOPE_IMP_BOUNDED];
hol-light-20190729/Multivariate/moretop.ml:2200:          ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-2201-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2209-            CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:2210:          ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:2211:          ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-2212-        MATCH_MP_TAC MONO_EXISTS] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2214-       [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; SUBSET_UNIV];
hol-light-20190729/Multivariate/moretop.ml:2215:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2216-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2235-        REWRITE_TAC[IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/moretop.ml:2236:        DISCH_THEN(DISJ_CASES_THEN MP_TAC) THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2237-        ASM_MESON_TAC[AFF_DIM_SUBSET; INT_NOT_LE]];
##############################################
hol-light-20190729/Multivariate/moretop.ml-2241-     [ALL_TAC;
hol-light-20190729/Multivariate/moretop.ml:2242:      MATCH_MP_TAC MONO_EXISTS THEN SIMP_TAC[] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-2243-    CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-2262-     (X_CHOOSE_THEN `c:real^M->bool` STRIP_ASSUME_TAC)) MP_TAC)
hol-light-20190729/Multivariate/moretop.ml:2263:    THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2264-    DISCH_THEN(CONJUNCTS_THEN2 (DISJ_CASES_THEN2 ASSUME_TAC
hol-light-20190729/Multivariate/moretop.ml-2265-     (X_CHOOSE_THEN `k:real^M->bool` STRIP_ASSUME_TAC)) MP_TAC)
hol-light-20190729/Multivariate/moretop.ml:2266:    THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2267-    REWRITE_TAC[UNIONS_UNION] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2279-     [ASM_MESON_TAC[POLYTOPE_IMP_CONVEX; FACE_OF_IMP_CONVEX];
hol-light-20190729/Multivariate/moretop.ml:2280:      ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/moretop.ml-2281-  let memma = prove
##############################################
hol-light-20190729/Multivariate/moretop.ml-2314-    ASM_SIMP_TAC[CARD_CLAUSES; FINITE_INSERT; RIGHT_EXISTS_AND_THM] THEN
hol-light-20190729/Multivariate/moretop.ml:2315:    REPEAT CONJ_TAC THENL [ASM SET_TAC[]; ASM_ARITH_TAC; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2316-    EXISTS_TAC `\x. if x IN s then (f:real^M->real^N) x else g x` THEN
hol-light-20190729/Multivariate/moretop.ml:2317:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-2318-    MATCH_MP_TAC CONTINUOUS_ON_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2320-                (UNIONS u DIFF ((a:real^M) INSERT c))` THEN
hol-light-20190729/Multivariate/moretop.ml:2321:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-2322-    MATCH_MP_TAC CONTINUOUS_ON_CASES_LOCAL THEN REPEAT CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-2331-      ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml:2332:    ASM SET_TAC[]) in
hol-light-20190729/Multivariate/moretop.ml-2333-  let temma = prove
##############################################
hol-light-20190729/Multivariate/moretop.ml-2351-    ASM_SIMP_TAC[FINITE_RESTRICT; IN_ELIM_THM; UNIONS_MAXIMAL_SETS] THEN
hol-light-20190729/Multivariate/moretop.ml:2352:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2353-    REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2428-                        SET_RULE `s SUBSET t ==> s DELETE a SUBSET t`];
hol-light-20190729/Multivariate/moretop.ml:2429:          ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-2430-        ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml:2431:      ASM_CASES_TAC `(d:real^M->bool) IN n` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2432-      DISJ_CASES_THEN MP_TAC (SPEC
##############################################
hol-light-20190729/Multivariate/moretop.ml-2435-       [ASM_SIMP_TAC[RELATIVE_INTERIOR_EQ_EMPTY; POLYTOPE_IMP_CONVEX] THEN
hol-light-20190729/Multivariate/moretop.ml:2436:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2437-        REWRITE_TAC[GSYM MEMBER_NOT_EMPTY]] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2469-        MP_TAC(ISPEC `d:real^M->bool` RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/moretop.ml:2470:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2471-        MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN CONJ_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2485-        MATCH_MP_TAC FACE_OF_SUBSET_RELATIVE_FRONTIER THEN
hol-light-20190729/Multivariate/moretop.ml:2486:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-2487-        MATCH_MP_TAC(MESON[]
##############################################
hol-light-20190729/Multivariate/moretop.ml-2498-        ==> IMAGE r (d DELETE a) SUBSET u`)) THEN
hol-light-20190729/Multivariate/moretop.ml:2499:      REWRITE_TAC[HULL_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2500-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2504-      REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
hol-light-20190729/Multivariate/moretop.ml:2505:      STRIP_TAC THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-2506-    ASM_SIMP_TAC[POLYTOPE_IMP_CLOSED] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2508-    STRIP_TAC THEN REWRITE_TAC[UNIONS_UNION] THEN
hol-light-20190729/Multivariate/moretop.ml:2509:    ASM_CASES_TAC `(d:real^M->bool) IN n` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2510-    MATCH_MP_TAC(SET_RULE `x IN s ==> x SUBSET t UNION UNIONS s`) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2513-    ASM_CASES_TAC `d INTER e:real^M->bool = d` THENL
hol-light-20190729/Multivariate/moretop.ml:2514:      [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2515-    ASM_SIMP_TAC[] THEN TRANS_TAC INT_LTE_TRANS `aff_dim(d:real^M->bool)` THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2534-    ASM_SIMP_TAC[GSYM OPEN_CLOSED; IN_DIFF; IN_UNIV] THEN
hol-light-20190729/Multivariate/moretop.ml:2535:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2536-    ONCE_REWRITE_TAC[TAUT `p /\ ~q ==> r <=> p /\ ~r ==> q`] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2550-          CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:2551:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:2552:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-2553-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `h:real^M->real^N` THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2557-      SUBGOAL_THEN `(x:real^M) IN UNIONS n` MP_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:2558:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2559-      REWRITE_TAC[IN_UNIONS] THEN MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2583-    ASM_SIMP_TAC[GSYM OPEN_CLOSED; IN_DIFF; IN_UNIV] THEN
hol-light-20190729/Multivariate/moretop.ml:2584:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2585-    ONCE_REWRITE_TAC[TAUT `p /\ ~q ==> r <=> p /\ ~r ==> q`] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2599-          CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:2600:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:2601:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-2602-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `k:real^M->bool` THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2611-      (SUBGOAL_THEN `(x:real^M) IN UNIONS n` MP_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:2612:        [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2613-       REWRITE_TAC[IN_UNIONS] THEN MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2646-    ASM_REWRITE_TAC[IN_ELIM_THM; NOT_IMP] THEN
hol-light-20190729/Multivariate/moretop.ml:2647:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2648-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
hol-light-20190729/Multivariate/moretop.ml-2649-      (REWRITE_RULE[IMP_CONJ] FINITE_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:2650:    ASM SET_TAC[]) in
hol-light-20190729/Multivariate/moretop.ml-2651-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2667-    ASM_SIMP_TAC[FINITE_INTER; INTER_SUBSET] THEN
hol-light-20190729/Multivariate/moretop.ml:2668:    REPEAT CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-2669-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/moretop.ml:2670:            CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-2671-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2722-      EXISTS_TAC `(\x. y):real^M->real^N` THEN
hol-light-20190729/Multivariate/moretop.ml:2723:      REWRITE_TAC[CONTINUOUS_ON_CONST] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-2724-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2750-      ASM_SIMP_TAC[CONVEX_INTER; CONVEX_INTERVAL; AFFINE_IMP_CONVEX];
hol-light-20190729/Multivariate/moretop.ml:2751:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-2752-    REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2790-        AFFINE_IMP_CONVEX; AFFINE_AFFINE_HULL; CONVEX_INTERVAL] THEN
hol-light-20190729/Multivariate/moretop.ml:2791:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2792-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/moretop.ml-2799-    TRANS_TAC EQ_TRANS `(g:real^M->real^N) x` THEN
hol-light-20190729/Multivariate/moretop.ml:2800:    CONJ_TAC THENL [AP_TERM_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-2801-    MATCH_MP_TAC CLOSEST_POINT_SELF THEN
hol-light-20190729/Multivariate/moretop.ml:2802:    ASM_SIMP_TAC[IN_INTER; HULL_INC] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-2803-  (REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_DIFF] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2806-      `closest_point s x IN s /\ s SUBSET u ==> closest_point s x IN u`) THEN
hol-light-20190729/Multivariate/moretop.ml:2807:     CONJ_TAC THENL [MATCH_MP_TAC CLOSEST_POINT_IN_SET; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-2808-     ASM_SIMP_TAC[CLOSED_INTER; CLOSED_INTERVAL; CLOSED_AFFINE] THEN
hol-light-20190729/Multivariate/moretop.ml:2809:     ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2810-     ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2819-     ASM_SIMP_TAC[CLOSED_INTER; CLOSED_AFFINE; CLOSED_INTERVAL] THEN
hol-light-20190729/Multivariate/moretop.ml:2820:     CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_DIFF]] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml-2821-      [ALL_TAC; ASM_MESON_TAC[SUBSET; RELATIVE_INTERIOR_SUBSET; IN_INTER]] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2825-     ASM_SIMP_TAC[HULL_HULL; AFFINE_AFFINE_HULL; AFFINE_IMP_CONVEX] THEN
hol-light-20190729/Multivariate/moretop.ml:2826:     ASM_SIMP_TAC[HULL_P] THEN ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml:2827:     REWRITE_TAC[INTERIOR_INTERVAL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2828-     W(MP_TAC o PART_MATCH (lhs o rand) RELATIVE_FRONTIER_CONVEX_INTER_AFFINE o
hol-light-20190729/Multivariate/moretop.ml-2829-       rand o snd) THEN
hol-light-20190729/Multivariate/moretop.ml:2830:     ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-2831-     REWRITE_TAC[CONVEX_INTERVAL; AFFINE_AFFINE_HULL; INTERIOR_INTERVAL] THEN
hol-light-20190729/Multivariate/moretop.ml:2832:     ASM SET_TAC[]]));;
hol-light-20190729/Multivariate/moretop.ml-2833-
##############################################
hol-light-20190729/Multivariate/moretop.ml-2861-    ASM_REWRITE_TAC[IN_ELIM_THM; NOT_IMP] THEN
hol-light-20190729/Multivariate/moretop.ml:2862:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2863-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
hol-light-20190729/Multivariate/moretop.ml-2864-      (REWRITE_RULE[IMP_CONJ] FINITE_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:2865:    ASM SET_TAC[]) in
hol-light-20190729/Multivariate/moretop.ml-2866-  let lemma2 = prove
##############################################
hol-light-20190729/Multivariate/moretop.ml-2879-      EXISTS_TAC `f:real^M->real^N` THEN REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:2880:       [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; SUBSET_DIFF]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-2881-      STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2883-    SUBGOAL_THEN `~(((u:real^M->bool) DIFF s) INTER k = {})` MP_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:2884:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2885-    GEN_REWRITE_TAC (LAND_CONV o RAND_CONV o LAND_CONV o LAND_CONV)
##############################################
hol-light-20190729/Multivariate/moretop.ml-2935-             AFFINE_HULL_OPEN_IN) THEN
hol-light-20190729/Multivariate/moretop.ml:2936:          ASM_SIMP_TAC[HULL_P] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2937-          REWRITE_TAC[HULL_SUBSET];
##############################################
hol-light-20190729/Multivariate/moretop.ml-2945-          EXISTS_TAC `a:real^M` THEN REWRITE_TAC[CENTRE_IN_BALL] THEN
hol-light-20190729/Multivariate/moretop.ml:2946:          ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-2947-        REWRITE_TAC[IN_INTER; LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2960-      SUBGOAL_THEN `a IN ball(a:real^M,d) INTER u` ASSUME_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:2961:       [ASM_REWRITE_TAC[CENTRE_IN_BALL; IN_INTER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2962-        ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-2963-      REPLICATE_TAC 3
hol-light-20190729/Multivariate/moretop.ml:2964:       (ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC]) THEN
hol-light-20190729/Multivariate/moretop.ml-2965-      ASM_SIMP_TAC[CONVEX_INTER; CONVEX_CBALL; AFFINE_IMP_CONVEX] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2977-        COND_CASES_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:2978:         [ASM SET_TAC[]; AP_TERM_TAC THEN ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/moretop.ml-2979-      ABBREV_TAC `j = \x:real^M. if x IN ball(a,d) then r x else x` THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2992-         [MP_TAC(ISPECL [`a:real^M`; `d:real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/moretop.ml:2993:          ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-2994-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-2998-          FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/moretop.ml:2999:            CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:3000:          REWRITE_TAC[GSYM BALL_UNION_SPHERE] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3001-        REWRITE_TAC[CLOSED_IN_CLOSED] THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-3006-        MP_TAC(ISPECL [`a:real^M`; `d:real`] CENTRE_IN_BALL) THEN
hol-light-20190729/Multivariate/moretop.ml:3007:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3008-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3014-        X_GEN_TAC `x:real^M` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/moretop.ml:3015:        COND_CASES_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3016-        SUBGOAL_THEN `(r:real^M->real^M) x IN sphere(a,d)` MP_TAC THENL
hol-light-20190729/Multivariate/moretop.ml-3017-         [MP_TAC(ISPECL [`a:real^M`; `d:real`] CENTRE_IN_BALL) THEN
hol-light-20190729/Multivariate/moretop.ml:3018:          ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:3019:          REWRITE_TAC[GSYM CBALL_DIFF_BALL] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-3020-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3024-            CONTINUOUS_ON_SUBSET))
hol-light-20190729/Multivariate/moretop.ml:3025:        THENL [ASM SET_TAC[]; ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/moretop.ml-3026-        ONCE_REWRITE_TAC[IMAGE_o] THEN FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
##############################################
hol-light-20190729/Multivariate/moretop.ml-3032-      REWRITE_TAC[SUBSET; IN_UNIV; IN_DIFF; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/moretop.ml:3033:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3034-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3076-        FINITE_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:3077:      REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3078-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3080-     [REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:3081:       [REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3082-        X_GEN_TAC `c:real^M->bool` THEN DISCH_TAC THEN ASM_SIMP_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3094-            ==> s UNION c DELETE a = (s UNION c) INTER (s UNION t)`) THEN
hol-light-20190729/Multivariate/moretop.ml:3095:          CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3096-          REWRITE_TAC[IN_ELIM_THM; IN_DELETE] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3102-           [ASM_MESON_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml:3103:          ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-3104-        MAP_EVERY X_GEN_TAC
##############################################
hol-light-20190729/Multivariate/moretop.ml-3168-               (MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)
hol-light-20190729/Multivariate/moretop.ml:3169:               MP_TAC) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3170-             REWRITE_TAC[INTER_UNIONS; EMPTY_UNIONS; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3176-             ASM_CASES_TAC `c':real^M->bool = c` THENL
hol-light-20190729/Multivariate/moretop.ml:3177:              [ASM_MESON_TAC[]; ASM SET_TAC[]]]];
hol-light-20190729/Multivariate/moretop.ml-3178-        MATCH_MP_TAC lemma0 THEN EXISTS_TAC `u:real^M->bool` THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3195-          CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:3196:           [REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3197-          MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/moretop.ml-3217-          ASM_CASES_TAC `c':real^M->bool = c` THENL
hol-light-20190729/Multivariate/moretop.ml:3218:           [ASM_MESON_TAC[]; ASM SET_TAC[]]];
hol-light-20190729/Multivariate/moretop.ml-3219-        FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/moretop.ml-3221-        REWRITE_TAC[UNION_SUBSET] THEN
hol-light-20190729/Multivariate/moretop.ml:3222:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3223-        REWRITE_TAC[UNIONS_SUBSET; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3225-        DISCH_THEN(CONJUNCTS_THEN2 (MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)
hol-light-20190729/Multivariate/moretop.ml:3226:          MP_TAC) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3227-        REWRITE_TAC[TAUT `p /\ ~p <=> F`] THEN X_GEN_TAC `x:real^M` THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3229-        ASM_CASES_TAC `(x:real^M) IN s` THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/moretop.ml:3230:         [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3231-        REWRITE_TAC[UNIONS_GSPEC; IN_ELIM_THM; IN_DELETE] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3237-        ASM_CASES_TAC `c':real^M->bool = c` THENL
hol-light-20190729/Multivariate/moretop.ml:3238:         [ASM_MESON_TAC[]; ASM SET_TAC[]]];
hol-light-20190729/Multivariate/moretop.ml-3239-      MATCH_MP_TAC(MESON[CONTINUOUS_ON_SUBSET]
##############################################
hol-light-20190729/Multivariate/moretop.ml-3248-        GEN_REWRITE_TAC (LAND_CONV o LAND_CONV) [UNIONS_COMPONENTS] THEN
hol-light-20190729/Multivariate/moretop.ml:3249:        REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3250-        SIMP_TAC[IN_UNION]] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3252-      X_GEN_TAC `x:real^M` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/moretop.ml:3253:      ASM_CASES_TAC `(x:real^M) IN s` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3254-      ASM_REWRITE_TAC[IN_UNIONS; IN_ELIM_THM] THEN COND_CASES_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:3255:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3256-      SUBGOAL_THEN
hol-light-20190729/Multivariate/moretop.ml-3257-        `x IN ((u:real^M->bool) DIFF s)` MP_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:3258:          [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3259-      GEN_REWRITE_TAC (LAND_CONV o RAND_CONV) [UNIONS_COMPONENTS] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3265-      FIRST_X_ASSUM(MP_TAC o SPECL [`x:real^M`; `c:real^M->bool`]) THEN
hol-light-20190729/Multivariate/moretop.ml:3266:      ASM_REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/moretop.ml-3267-  let lemma3 = prove
##############################################
hol-light-20190729/Multivariate/moretop.ml-3291-      SUBGOAL_THEN `(x:real^M) IN (t DIFF s)` MP_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:3292:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3293-      GEN_REWRITE_TAC (LAND_CONV o RAND_CONV) [UNIONS_COMPONENTS] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3295-      REWRITE_TAC[IN_UNIONS; RIGHT_EXISTS_AND_THM] THEN
hol-light-20190729/Multivariate/moretop.ml:3296:      MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3297-      REWRITE_TAC[SKOLEM_THM] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3316-          COMPONENTS_EQ) THEN
hol-light-20190729/Multivariate/moretop.ml:3317:        ASM_CASES_TAC `c':real^M->bool = c` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml:3318:        ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3319-        MATCH_MP_TAC CLOSED_IN_SUBSET_TRANS THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3348-                        FINITE_SING; IMAGE_CLAUSES; EMPTY_SUBSET] THEN
hol-light-20190729/Multivariate/moretop.ml:3349:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-3350-      EXISTS_TAC `{}:real^M->bool` THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3354-      EXISTS_TAC `(\x. y):real^M->real^N` THEN
hol-light-20190729/Multivariate/moretop.ml:3355:      REWRITE_TAC[CONTINUOUS_ON_CONST] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-3356-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3370-     [FIRST_X_ASSUM(MP_TAC o SPEC `c:real^M->bool`) THEN
hol-light-20190729/Multivariate/moretop.ml:3371:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3372-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3374-     `~(c SUBSET interval[--(b + vec 1):real^M,b + vec 1])`
hol-light-20190729/Multivariate/moretop.ml:3375:    MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3376-    ASM_MESON_TAC[BOUNDED_SUBSET; BOUNDED_INTERVAL];
##############################################
hol-light-20190729/Multivariate/moretop.ml-3382-  ASM_SIMP_TAC[FINITE_INTER; RIGHT_EXISTS_AND_THM] THEN
hol-light-20190729/Multivariate/moretop.ml:3383:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/moretop.ml-3384-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3426-        AFFINE_IMP_CONVEX; AFFINE_AFFINE_HULL; CONVEX_INTERVAL] THEN
hol-light-20190729/Multivariate/moretop.ml:3427:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3428-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/moretop.ml-3435-    TRANS_TAC EQ_TRANS `(g:real^M->real^N) x` THEN
hol-light-20190729/Multivariate/moretop.ml:3436:    CONJ_TAC THENL [AP_TERM_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3437-    MATCH_MP_TAC CLOSEST_POINT_SELF THEN
hol-light-20190729/Multivariate/moretop.ml:3438:    ASM_SIMP_TAC[IN_INTER; HULL_INC] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3439-  (REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_DIFF] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3442-      `closest_point s x IN s /\ s SUBSET u ==> closest_point s x IN u`) THEN
hol-light-20190729/Multivariate/moretop.ml:3443:     CONJ_TAC THENL [MATCH_MP_TAC CLOSEST_POINT_IN_SET; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3444-     ASM_SIMP_TAC[CLOSED_INTER; CLOSED_INTERVAL; CLOSED_AFFINE] THEN
hol-light-20190729/Multivariate/moretop.ml:3445:     ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3446-     ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3448-   ASM_SIMP_TAC[CLOSEST_POINT_SELF; IN_INTER] THENL
hol-light-20190729/Multivariate/moretop.ml:3449:    [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3450-   MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/moretop.ml-3456-     ASM_SIMP_TAC[CLOSED_INTER; CLOSED_AFFINE; CLOSED_INTERVAL] THEN
hol-light-20190729/Multivariate/moretop.ml:3457:     CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_DIFF]] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml-3458-      [ALL_TAC; ASM_MESON_TAC[SUBSET; RELATIVE_INTERIOR_SUBSET; IN_INTER]] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3462-     ASM_SIMP_TAC[HULL_HULL; AFFINE_AFFINE_HULL; AFFINE_IMP_CONVEX] THEN
hol-light-20190729/Multivariate/moretop.ml:3463:     ASM_SIMP_TAC[HULL_P] THEN ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml:3464:     REWRITE_TAC[INTERIOR_INTERVAL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3465-     W(MP_TAC o PART_MATCH (lhs o rand) RELATIVE_FRONTIER_CONVEX_INTER_AFFINE o
hol-light-20190729/Multivariate/moretop.ml-3466-       rand o snd) THEN
hol-light-20190729/Multivariate/moretop.ml:3467:     ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3468-     REWRITE_TAC[CONVEX_INTERVAL; AFFINE_AFFINE_HULL; INTERIOR_INTERVAL] THEN
hol-light-20190729/Multivariate/moretop.ml:3469:     ASM SET_TAC[]]));;
hol-light-20190729/Multivariate/moretop.ml-3470-
##############################################
hol-light-20190729/Multivariate/moretop.ml-3483-    EXISTS_TAC `(\x. a):real^M->real^N` THEN
hol-light-20190729/Multivariate/moretop.ml:3484:    REWRITE_TAC[CONTINUOUS_ON_CONST; FINITE_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3485-    MP_TAC(ISPECL [`a:real^N`; `r:real`] RELATIVE_FRONTIER_CBALL) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3560-                    INTER_SUBSET; FACE_OF_INTER; FACE_OF_IMP_SUBSET];
hol-light-20190729/Multivariate/moretop.ml:3561:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3562-      MATCH_MP_TAC COMPACT_IMP_CLOSED THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3571-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:3572:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:3573:      REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-3574-    DISCH_THEN(X_CHOOSE_THEN `g:real^M->real^N` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3576-    REWRITE_TAC[IMAGE_o; o_THM] THEN
hol-light-20190729/Multivariate/moretop.ml:3577:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3578-    MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN CONJ_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3580-      CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:3581:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/moretop.ml-3582-
##############################################
hol-light-20190729/Multivariate/moretop.ml-3596-   [FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [SPHERE_EQ_EMPTY]) THEN
hol-light-20190729/Multivariate/moretop.ml:3597:    ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3598-    FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE RAND_CONV [SPHERE_EQ_EMPTY])] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3604-     [DISCH_THEN(K ALL_TAC) THEN MATCH_MP_TAC(MESON[]
hol-light-20190729/Multivariate/moretop.ml:3605:       `(?c. P(\x. c)) ==> ?f. P f`) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:3606:      DISCH_TAC THEN EXISTS_TAC `f:real^M->real^N` THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-3607-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3610-    EXISTS_TAC `(\x. b):real^M->real^N` THEN
hol-light-20190729/Multivariate/moretop.ml:3611:    REWRITE_TAC[CONTINUOUS_ON_CONST] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3612-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3642-  ASM_CASES_TAC `relative_frontier t:real^M->bool = {}` THENL
hol-light-20190729/Multivariate/moretop.ml:3643:   [ASM SET_TAC[]; REPEAT STRIP_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3644-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3651-     `s = u ==> ~(s = {}) ==> ~(u = {})`)) THEN
hol-light-20190729/Multivariate/moretop.ml:3652:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[EMPTY_UNIONS]] THEN
hol-light-20190729/Multivariate/moretop.ml-3653-    REWRITE_TAC[NOT_FORALL_THM; NOT_IMP] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3689-          CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:3690:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3691-        ASM_MESON_TAC[COMPACT_EQ_BOUNDED_CLOSED; BOUNDED_SUBSET;
##############################################
hol-light-20190729/Multivariate/moretop.ml-3693-      ASM_INT_ARITH_TAC;
hol-light-20190729/Multivariate/moretop.ml:3694:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3695-      MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN CONJ_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3697-          CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:3698:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:3699:      REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3700-      X_GEN_TAC `l:real^M->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3703-      SUBGOAL_THEN `?x:real^M. x IN l` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:3704:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3705-      SUBGOAL_THEN `l SUBSET af DIFF IMAGE (h:real^M->real^M) s`
##############################################
hol-light-20190729/Multivariate/moretop.ml-3717-        EXISTS_TAC `(k:real^M->real^M) x` THEN REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/moretop.ml:3718:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3719-        MATCH_MP_TAC CONNECTED_COMPONENT_MAXIMAL THEN
hol-light-20190729/Multivariate/moretop.ml-3720-        ASM_SIMP_TAC[FUN_IN_IMAGE] THEN
hol-light-20190729/Multivariate/moretop.ml:3721:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3722-        MATCH_MP_TAC CONNECTED_CONTINUOUS_IMAGE THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3724-          CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:3725:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3726-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3739-        EXISTS_TAC `(h:real^M->real^M) z` THEN REWRITE_TAC[IN_INTER] THEN
hol-light-20190729/Multivariate/moretop.ml:3740:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3741-        MATCH_MP_TAC(SET_RULE `!s. x IN s /\ s SUBSET t ==> x IN t`) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3748-            CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:3749:          ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3750-          REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_DIFF; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/moretop.ml-3751-          X_GEN_TAC `y:real^M` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/moretop.ml:3752:          CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3753-          REWRITE_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/moretop.ml-3759-            ==> k(h y) = k(h y') ==> F`) THEN
hol-light-20190729/Multivariate/moretop.ml:3760:          ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:3761:          ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/moretop.ml-3762-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3769-         [MATCH_MP_TAC CLOSURE_MINIMAL THEN
hol-light-20190729/Multivariate/moretop.ml:3770:          ASM_SIMP_TAC[CLOSED_AFFINE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3771-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3774-          MATCH_MP_TAC CLOSED_SUBSET THEN
hol-light-20190729/Multivariate/moretop.ml:3775:          CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3776-          MATCH_MP_TAC COMPACT_IMP_CLOSED THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3780-            CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:3781:          ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:3782:          ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3783-          MP_TAC(ISPEC `l:real^M->bool` CLOSURE_SUBSET) THEN SET_TAC[]];
##############################################
hol-light-20190729/Multivariate/moretop.ml-3792-        SUBGOAL_THEN `IMAGE (h:real^M->real^M) w SUBSET l` MP_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:3793:         [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3794-        MATCH_MP_TAC COMPONENTS_MAXIMAL THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3799-            CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:3800:          ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3801-          REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_DIFF; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/moretop.ml-3802-          X_GEN_TAC `y:real^M` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/moretop.ml:3803:          CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3804-          REWRITE_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/moretop.ml-3810-            ==> k(h y) = k(h y') ==> F`) THEN
hol-light-20190729/Multivariate/moretop.ml:3811:          ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:3812:          ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/moretop.ml-3813-      SUBGOAL_THEN `path_connected(r:real^M->bool)` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-3833-      DISCH_THEN(MP_TAC o SPECL [`(k:real^M->real^M) x`; `q:real^M`]) THEN
hol-light-20190729/Multivariate/moretop.ml:3834:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-3835-      DISCH_THEN(X_CHOOSE_THEN `g:real^1->real^M` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3846-        ASM_REWRITE_TAC[GSYM path; GSYM path_image] THEN
hol-light-20190729/Multivariate/moretop.ml:3847:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3848-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3929-      `p INTER (relative_frontier t:real^M->bool) DELETE q` THEN
hol-light-20190729/Multivariate/moretop.ml:3930:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3931-    ASM_REWRITE_TAC[] THEN FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
##############################################
hol-light-20190729/Multivariate/moretop.ml-3936-     `(!x. x IN s ==> f x = x) ==> IMAGE f s SUBSET s`) THEN
hol-light-20190729/Multivariate/moretop.ml:3937:    REWRITE_TAC[o_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:3938:    ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:3939:    ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3940-    MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN CONJ_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3942-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:3943:    ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:3944:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:3945:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/moretop.ml-3946-
##############################################
hol-light-20190729/Multivariate/moretop.ml-3968-    ASM_CASES_TAC `s:real^M->bool = {}` THENL
hol-light-20190729/Multivariate/moretop.ml:3969:     [ASM_REWRITE_TAC[]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-3970-    REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3982-    EXISTS_TAC `(\x. b):real^M->real^N` THEN
hol-light-20190729/Multivariate/moretop.ml:3983:    REWRITE_TAC[CONTINUOUS_ON_CONST; FINITE_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3984-    REPEAT STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-3987-    MP_TAC(SYM(ISPECL [`b:real^N`; `e:real`] SPHERE_EQ_EMPTY)) THEN
hol-light-20190729/Multivariate/moretop.ml:3988:    SIMP_TAC[GSYM REAL_NOT_LT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-3989-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-4105-      REPEAT STRIP_TAC THEN AP_TERM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/moretop.ml:4106:      FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-4107-
##############################################
hol-light-20190729/Multivariate/moretop.ml-4115-      THENL
hol-light-20190729/Multivariate/moretop.ml:4116:       [ONCE_REWRITE_TAC[GSYM IN_SPHERE_0] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-4117-        UNDISCH_TAC `~(x IN connected_component ((:real^N) DIFF s) a)` THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-4374-   [MP_TAC(ISPEC `(:real^N) DIFF s` UNIONS_COMPONENTS) THEN
hol-light-20190729/Multivariate/moretop.ml:4375:    REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-4376-    MATCH_MP_TAC PATH_CONNECTED_UNIONS THEN
hol-light-20190729/Multivariate/moretop.ml-4377-    ASM_REWRITE_TAC[FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/moretop.ml:4378:    REWRITE_TAC[INTERS_GSPEC] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/moretop.ml-4379-
##############################################
hol-light-20190729/Multivariate/moretop.ml-4458-  `?w z:real^N. w IN sphere(a,r) /\ z IN sphere(a,r) /\ ~(w IN s) /\ ~(z IN t)`
hol-light-20190729/Multivariate/moretop.ml:4459:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-4460-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-4507-    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism; IN_UNIV]) THEN
hol-light-20190729/Multivariate/moretop.ml:4508:    (CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/moretop.ml-4509-    MATCH_MP_TAC IMAGE_DIFF_INJ_ALT THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-4569-      FIRST_X_ASSUM(X_CHOOSE_THEN `u:real` MP_TAC) THEN
hol-light-20190729/Multivariate/moretop.ml:4570:      DISCH_THEN(MP_TAC o AP_TERM `\x:real^N. x$1`) THEN
hol-light-20190729/Multivariate/moretop.ml-4571-      ASM_SIMP_TAC[BASIS_COMPONENT; VECTOR_MUL_COMPONENT; ARITH;
##############################################
hol-light-20190729/Multivariate/moretop.ml-4579-  ANTS_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:4580:   [DISCH_THEN(CHOOSE_THEN (MP_TAC o AP_TERM `\x:real^N. x$2`)) THEN
hol-light-20190729/Multivariate/moretop.ml-4581-    ASM_SIMP_TAC[BASIS_COMPONENT; VECTOR_MUL_COMPONENT; ARITH;
##############################################
hol-light-20190729/Multivariate/moretop.ml-4616-                    NOT_BOUNDED_UNIV];
hol-light-20190729/Multivariate/moretop.ml:4617:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-4618-      REWRITE_TAC[CLOSURE_COMPLEMENT] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-4623-     [`path_image g:real^N->bool`; `vec 0:real^N`; `&1`] THEN
hol-light-20190729/Multivariate/moretop.ml:4624:    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-4625-    TRANS_TAC HOMEOMORPHIC_TRANS `sphere(vec 0:real^2,&1)` THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-4950-    DISCH_THEN MATCH_MP_TAC THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:4951:     [ASM SET_TAC[]; REWRITE_TAC[IN_SPHERE_0; COMPLEX_NORM_CX; REAL_ABS_NUM]];
hol-light-20190729/Multivariate/moretop.ml-4952-    EQ_TAC THEN STRIP_TAC THEN FIRST_ASSUM(MP_TAC o MATCH_MP lemma) THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-4981-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC NULLHOMOTOPIC_FROM_CONTRACTIBLE THEN
hol-light-20190729/Multivariate/moretop.ml:4982:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/moretop.ml-4983-
##############################################
hol-light-20190729/Multivariate/moretop.ml-4992-        COVERING_SPACE_CEXP_PUNCTURED_PLANE)) THEN
hol-light-20190729/Multivariate/moretop.ml:4993:  ASM_REWRITE_TAC[IN_UNIV] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/moretop.ml-4994-
##############################################
hol-light-20190729/Multivariate/moretop.ml-5301-    ASM_SIMP_TAC[IN_INTER; CENTRE_IN_BALL; OPEN_IN_OPEN_INTER; OPEN_BALL] THEN
hol-light-20190729/Multivariate/moretop.ml:5302:    ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-5303-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5334-       [MATCH_MP_TAC OPEN_IN_SUBSET_TRANS THEN EXISTS_TAC `s:real^N->bool` THEN
hol-light-20190729/Multivariate/moretop.ml:5335:        ASM_SIMP_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-5336-        REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5406-    EXISTS_TAC `UNIONS {(u:real^N->real^N->bool) x | x IN t}` THEN
hol-light-20190729/Multivariate/moretop.ml:5407:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-5408-    ASM_SIMP_TAC[OPEN_IN_UNIONS; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5415-    ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/moretop.ml:5416:    ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-5417-    ASM_MESON_TAC[]]);;
##############################################
hol-light-20190729/Multivariate/moretop.ml-5496-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/moretop.ml:5497:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/moretop.ml-5498-
##############################################
hol-light-20190729/Multivariate/moretop.ml-5624-  MATCH_MP_TAC CONTINUOUS_LOGARITHM_ON_SIMPLY_CONNECTED THEN
hol-light-20190729/Multivariate/moretop.ml:5625:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/moretop.ml-5626-
##############################################
hol-light-20190729/Multivariate/moretop.ml-5698-   [CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:5699:     [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; SUBSET_UNION]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-5700-    DISCH_THEN(X_CHOOSE_THEN `g:real^N->complex` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5702-   [CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:5703:     [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; SUBSET_UNION]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-5704-    DISCH_THEN(X_CHOOSE_THEN `h:real^N->complex` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5706-   [EXISTS_TAC `(\x. if x IN s then g x else h x):real^N->complex` THEN
hol-light-20190729/Multivariate/moretop.ml:5707:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-5708-    MATCH_MP_TAC CONTINUOUS_ON_CASES_LOCAL_OPEN THEN
hol-light-20190729/Multivariate/moretop.ml:5709:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-5710-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5739-      ASM_SIMP_TAC[CONTINUOUS_ON_ADD; CONTINUOUS_ON_CONST] THEN
hol-light-20190729/Multivariate/moretop.ml:5740:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-5741-      GEN_TAC THEN DISCH_TAC THEN REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5744-      SUBGOAL_THEN `?y:real^N. y IN s /\ y IN t` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:5745:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-5746-      SUBGOAL_THEN `cexp(a + h(y:real^N)) = cexp(h y)` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-5749-               CEXP_NZ; COMPLEX_MUL_LID] THEN
hol-light-20190729/Multivariate/moretop.ml:5750:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/moretop.ml-5751-
##############################################
hol-light-20190729/Multivariate/moretop.ml-5762-   [CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:5763:     [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; SUBSET_UNION]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-5764-    DISCH_THEN(X_CHOOSE_THEN `g:real^N->complex` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5766-   [CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:5767:     [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; SUBSET_UNION]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-5768-    DISCH_THEN(X_CHOOSE_THEN `h:real^N->complex` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5770-   [EXISTS_TAC `(\x. if x IN s then g x else h x):real^N->complex` THEN
hol-light-20190729/Multivariate/moretop.ml:5771:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-5772-    MATCH_MP_TAC CONTINUOUS_ON_CASES_LOCAL THEN
hol-light-20190729/Multivariate/moretop.ml:5773:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-5774-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5803-      ASM_SIMP_TAC[CONTINUOUS_ON_ADD; CONTINUOUS_ON_CONST] THEN
hol-light-20190729/Multivariate/moretop.ml:5804:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-5805-      GEN_TAC THEN DISCH_TAC THEN REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5808-      SUBGOAL_THEN `?y:real^N. y IN s /\ y IN t` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:5809:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-5810-      SUBGOAL_THEN `cexp(a + h(y:real^N)) = cexp(h y)` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-5813-               CEXP_NZ; COMPLEX_MUL_LID] THEN
hol-light-20190729/Multivariate/moretop.ml:5814:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/moretop.ml-5815-
##############################################
hol-light-20190729/Multivariate/moretop.ml-5850-   `!y. ?x. y IN t ==> x IN s /\ (f:real^M->real^N) x = y`
hol-light-20190729/Multivariate/moretop.ml:5851:  MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-5852-  REWRITE_TAC[SKOLEM_THM; LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5854-  EXISTS_TAC `(h:real^M->complex) o (f':real^N->real^M)` THEN
hol-light-20190729/Multivariate/moretop.ml:5855:  REWRITE_TAC[o_THM] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-5856-  MATCH_MP_TAC CONTINUOUS_FROM_CLOSED_GRAPH THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5858-  ASM_SIMP_TAC[COMPACT_CONTINUOUS_IMAGE; IMAGE_o] THEN
hol-light-20190729/Multivariate/moretop.ml:5859:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[o_THM]] THEN
hol-light-20190729/Multivariate/moretop.ml-5860-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5882-  ONCE_REWRITE_TAC[TAUT `(p /\ q) /\ r <=> q /\ p /\ r`] THEN
hol-light-20190729/Multivariate/moretop.ml:5883:  REWRITE_TAC[UNWIND_THM1] THEN EQ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-5884-  DISCH_THEN(X_CHOOSE_THEN `w:real^M` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/moretop.ml:5885:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-5886-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5894-    DISCH_THEN(MP_TAC o SPEC `(f':real^N->real^M) y`) THEN
hol-light-20190729/Multivariate/moretop.ml:5895:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[VECTOR_SUB_REFL]] THEN
hol-light-20190729/Multivariate/moretop.ml-5896-    DISCH_THEN(SUBST_ALL_TAC o SYM) THEN
hol-light-20190729/Multivariate/moretop.ml:5897:    RULE_ASSUM_TAC(REWRITE_RULE[VECTOR_SUB_EQ]) THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-5898-  MATCH_MP_TAC CONTINUOUS_DISCRETE_RANGE_CONSTANT THEN
hol-light-20190729/Multivariate/moretop.ml-5899-  REWRITE_TAC[IN_ELIM_THM] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:5900:   [FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-5901-    MATCH_MP_TAC CONTINUOUS_ON_SUB THEN REWRITE_TAC[CONTINUOUS_ON_CONST] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5913-  DISCH_TAC THEN MATCH_MP_TAC COMPLEX_EQ_CEXP THEN
hol-light-20190729/Multivariate/moretop.ml:5914:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN REWRITE_TAC[GSYM IM_SUB] THEN
hol-light-20190729/Multivariate/moretop.ml-5915-  ASM_MESON_TAC[REAL_LET_TRANS; COMPLEX_NORM_GE_RE_IM]);;
##############################################
hol-light-20190729/Multivariate/moretop.ml-5937-    REWRITE_TAC[FORALL_IN_GSPEC; EXISTS_IN_GSPEC; GSYM CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/moretop.ml:5938:    DISCH_THEN MATCH_MP_TAC THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-5939-    ONCE_REWRITE_TAC[SIMPLE_IMAGE_GEN] THEN REWRITE_TAC[GSYM IMAGE_o] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-5968-  ASM_REWRITE_TAC[FORALL_IN_GSPEC; EXISTS_IN_GSPEC] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:5969:   [CONJ_TAC THENL [MATCH_MP_TAC COMPACT_IMP_BOUNDED; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-5970-    MATCH_MP_TAC CLOSED_IN_COMPACT THEN EXISTS_TAC `s:real^M->bool` THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6019-                (IMAGE (g:real^N->real^M) u INTER IMAGE g v)`
hol-light-20190729/Multivariate/moretop.ml:6020:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-6021-  MATCH_MP_TAC CONNECTED_CONTINUOUS_IMAGE THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml-6022-   [FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/moretop.ml:6023:      CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-6024-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6026-  ONCE_REWRITE_TAC[TAUT `p /\ q /\ r /\ s <=> r /\ (p /\ q) /\ s`] THEN
hol-light-20190729/Multivariate/moretop.ml:6027:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-6028-  CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-6030-    ASM_REWRITE_TAC[] THEN FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
hol-light-20190729/Multivariate/moretop.ml:6031:     (REWRITE_RULE[IMP_CONJ] CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-6032-    CONJ_TAC THEN MATCH_MP_TAC HOMEOMORPHISM_IMP_CLOSED_MAP THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6068-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/moretop.ml:6069:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/moretop.ml-6070-
##############################################
hol-light-20190729/Multivariate/moretop.ml-6149-      GEN_TAC THEN DISCH_TAC THEN COND_CASES_TAC THEN
hol-light-20190729/Multivariate/moretop.ml:6150:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-6151-     FIRST_X_ASSUM(MP_TAC o SPEC `g:real^N->complex`) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6171-      ==> (?n. P n /\ !x. x IN s ==> f x = k n)`) THEN
hol-light-20190729/Multivariate/moretop.ml:6172:    (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/moretop.ml-6173-    MATCH_MP_TAC(TAUT `p /\ (p ==> q) ==> p /\ q`) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6176-                  COMPLEX_RING `a - b:complex = c <=> a = b + c`] THEN
hol-light-20190729/Multivariate/moretop.ml:6177:      REWRITE_TAC[GSYM CEXP_EQ; CEXP_NEG] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-6178-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6217-         ==> ~(!y z. y IN v /\ z IN w ==> ~(P y /\ Q y /\ P z /\ Q z))`)) THEN
hol-light-20190729/Multivariate/moretop.ml:6218:  ANTS_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-6219-  REPEAT GEN_TAC THEN STRIP_TAC THEN DISCH_THEN(MP_TAC o MATCH_MP (COMPLEX_RING
##############################################
hol-light-20190729/Multivariate/moretop.ml-6253-               CONTINUOUS_CLOSED_PREIMAGE; CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/moretop.ml:6254:  REWRITE_TAC[IMP_CONJ_ALT] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-6255-  MP_TAC(ISPECL [`f:real^M->real^N`; `s:real^M->bool`; `t:real^N->bool`]
##############################################
hol-light-20190729/Multivariate/moretop.ml-6264-        CONTINUOUS_ON_SUBSET)) THEN SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:6265:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/moretop.ml-6266-
##############################################
hol-light-20190729/Multivariate/moretop.ml-6300-  STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:6301:   [MATCH_MP_TAC EXISTS_COMPONENT_SUPERSET THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-6302-  SUBGOAL_THEN `frontier s:real^N->bool = frontier c` SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-6325-    ASM_REWRITE_TAC[IN_COMPONENTS] THEN
hol-light-20190729/Multivariate/moretop.ml:6326:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-6327-    DISCH_THEN(MP_TAC o MATCH_MP CONNECTED_COMPONENT_IN) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6333-    ASM_REWRITE_TAC[IN_COMPONENTS] THEN
hol-light-20190729/Multivariate/moretop.ml:6334:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-6335-    DISCH_THEN(MP_TAC o MATCH_MP CONNECTED_COMPONENT_IN) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6346-    REWRITE_TAC[ETA_AX] THEN MATCH_MP_TAC CONNECTED_COMPONENT_MONO THEN
hol-light-20190729/Multivariate/moretop.ml:6347:    ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml:6348:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-6349-  MP_TAC(ISPECL [`connected_component ((:real^N) DIFF t) a`;
##############################################
hol-light-20190729/Multivariate/moretop.ml-6360-  ASM_SIMP_TAC[] THEN ONCE_REWRITE_TAC[CONNECTED_COMPONENT_SYM_EQ] THEN
hol-light-20190729/Multivariate/moretop.ml:6361:  ASM_SIMP_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/moretop.ml-6362-
##############################################
hol-light-20190729/Multivariate/moretop.ml-6391-    DISCH_THEN(MP_TAC o SPECL [`s:real^N->bool`; `t:real^N->bool`]) THEN
hol-light-20190729/Multivariate/moretop.ml:6392:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-6393-    UNDISCH_TAC `connected_component ((:real^N) DIFF s) a b`;
##############################################
hol-light-20190729/Multivariate/moretop.ml-6396-  REWRITE_TAC[ETA_AX] THEN MATCH_MP_TAC CONNECTED_COMPONENT_MONO THEN
hol-light-20190729/Multivariate/moretop.ml:6397:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/moretop.ml-6398-
##############################################
hol-light-20190729/Multivariate/moretop.ml-6415-  ASM_SIMP_TAC[GSYM OPEN_CLOSED; COMPL_COMPL] THEN
hol-light-20190729/Multivariate/moretop.ml:6416:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/moretop.ml-6417-
##############################################
hol-light-20190729/Multivariate/moretop.ml-6495-        FIRST_ASSUM(ASSUME_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN
hol-light-20190729/Multivariate/moretop.ml:6496:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml:6497:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:6498:      ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/moretop.ml-6499-  GEN_TAC THEN DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6505-  ASM_REWRITE_TAC[CONNECTED_UNIV; COMPL_COMPL] THEN
hol-light-20190729/Multivariate/moretop.ml:6506:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/moretop.ml-6507-  X_GEN_TAC `c:real^N->bool` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6511-  MAP_EVERY EXISTS_TAC [`t:real^N->bool`; `u:real^N->bool`] THEN
hol-light-20190729/Multivariate/moretop.ml:6512:  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-6513-  FIRST_ASSUM(MP_TAC o MATCH_MP FRONTIER_OF_COMPONENTS_SUBSET) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6527-  REWRITE_TAC[SUBTOPOLOGY_UNIV; GSYM CLOSED_IN] THEN
hol-light-20190729/Multivariate/moretop.ml:6528:  ASM_REWRITE_TAC[GSYM OPEN_CLOSED] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/moretop.ml-6529-
##############################################
hol-light-20190729/Multivariate/moretop.ml-6604-         [ASM_REWRITE_TAC[GSYM UNIONS_COMPONENTS; IN_DIFF; IN_UNIV] THEN
hol-light-20190729/Multivariate/moretop.ml:6605:          ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-6606-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6629-         [ASM_REWRITE_TAC[GSYM UNIONS_COMPONENTS; IN_DIFF; IN_UNIV] THEN
hol-light-20190729/Multivariate/moretop.ml:6630:          ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-6631-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6659-        (CONJ_TAC THENL [ASM_MESON_TAC[IN_COMPONENTS_CONNECTED];
hol-light-20190729/Multivariate/moretop.ml:6660:         ASM SET_TAC[]])])];
hol-light-20190729/Multivariate/moretop.ml-6661-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6704-    MP_TAC(ISPEC `s:real^N->bool` CLOSURE_SUBSET) THEN
hol-light-20190729/Multivariate/moretop.ml:6705:    MP_TAC(ISPEC `t:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/moretop.ml-6706-
##############################################
hol-light-20190729/Multivariate/moretop.ml-6760-  SUBGOAL_THEN `(p:real^N) IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:6761:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-6762-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6778-        ASM_SIMP_TAC[SETDIST_EQ_0_COMPACT_CLOSED; GSYM OPEN_CLOSED] THEN
hol-light-20190729/Multivariate/moretop.ml:6779:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-6780-        REWRITE_TAC[REAL_HALF; SUBSET; FORALL_IN_GSPEC] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6787-        SUBST1_TAC(NORM_ARITH `norm(l:real^N) = dist(x,x + l)`) THEN
hol-light-20190729/Multivariate/moretop.ml:6788:        MATCH_MP_TAC SETDIST_LE_DIST THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-6789-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [continuous_on]) THEN
hol-light-20190729/Multivariate/moretop.ml-6790-      DISCH_THEN(MP_TAC o SPEC `p:real^N`) THEN
hol-light-20190729/Multivariate/moretop.ml:6791:      ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(MP_TAC o SPEC `e:real`)] THEN
hol-light-20190729/Multivariate/moretop.ml-6792-      ASM_SIMP_TAC[LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6796-      CONJ_TAC THENL [ASM_REAL_ARITH_TAC; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml:6797:      CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[CONJ_ASSOC]] THEN
hol-light-20190729/Multivariate/moretop.ml-6798-      X_GEN_TAC `y:real^N` THEN STRIP_TAC THEN ONCE_REWRITE_TAC[DIST_SYM] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6835-    DISCH_THEN(MP_TAC o SPEC `p:real^N`) THEN
hol-light-20190729/Multivariate/moretop.ml:6836:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-6837-    DISCH_THEN(X_CHOOSE_THEN `k:real` (CONJUNCTS_THEN2 ASSUME_TAC MP_TAC)) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6884-  ASM_REWRITE_TAC[CENTRE_IN_BALL] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:6885:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-6886-    SUBGOAL_THEN `ball(p:real^N,k) SUBSET cball(p,e)` MP_TAC THENL
hol-light-20190729/Multivariate/moretop.ml-6887-     [REWRITE_TAC[SUBSET_BALLS; DIST_REFL] THEN ASM_REAL_ARITH_TAC;
hol-light-20190729/Multivariate/moretop.ml:6888:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-6889-    X_GEN_TAC `q:real^N` THEN REWRITE_TAC[IN_BALL] THEN STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-6959-    RULE_ASSUM_TAC(REWRITE_RULE[CLOSURE_UNION_FRONTIER]) THEN
hol-light-20190729/Multivariate/moretop.ml:6960:    ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-6961-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7032-      REPEAT STRIP_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/moretop.ml:7033:      REWRITE_TAC[GSYM IN_CBALL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7034-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/moretop.ml-7071-         [ASM_REWRITE_TAC[SUBSET_BALLS; DIST_REFL] THEN ASM_REAL_ARITH_TAC;
hol-light-20190729/Multivariate/moretop.ml:7072:          ASM SET_TAC[]]];
hol-light-20190729/Multivariate/moretop.ml-7073-      MATCH_MP_TAC CONNECTED_CLOSURE THEN EXPAND_TAC "h" THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7103-    ASM_REWRITE_TAC[SUBSET_INTER] THEN
hol-light-20190729/Multivariate/moretop.ml:7104:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-7105-    EXPAND_TAC "j" THEN REWRITE_TAC[SUBSET] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7110-        CLOSED_IN_CONNECTED_COMPONENT) THEN
hol-light-20190729/Multivariate/moretop.ml:7111:      ASM_REWRITE_TAC[CLOSED_IN_INTER_CLOSURE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7112-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7115-      REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/moretop.ml:7116:      ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7117-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7126-       [MP_TAC(ISPECL [`x:real^N`; `r:real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/moretop.ml:7127:        ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7128-        REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; IN_INTER] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7134-        CONNECTED_COMPONENT_SUBSET) THEN
hol-light-20190729/Multivariate/moretop.ml:7135:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-7136-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7158-         [ASM_REWRITE_TAC[SUBSET_BALLS; DIST_REFL] THEN ASM_REAL_ARITH_TAC;
hol-light-20190729/Multivariate/moretop.ml:7159:          ASM SET_TAC[]]];
hol-light-20190729/Multivariate/moretop.ml-7160-        SIMP_TAC[CLOSURE_OPEN_INTERVAL; UNIT_INTERVAL_NONEMPTY] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7177-        MATCH_MP_TAC(SET_RULE `r x = x /\ x IN s ==> x IN IMAGE r s`) THEN
hol-light-20190729/Multivariate/moretop.ml:7178:        (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/moretop.ml-7179-        ASM_MESON_TAC[PATHSTART_IN_PATH_IMAGE; PATHFINISH_IN_PATH_IMAGE;
##############################################
hol-light-20190729/Multivariate/moretop.ml-7211-    ASM_SIMP_TAC[CLOSED_UNIV; CONTINUOUS_ON_CONST] THEN
hol-light-20190729/Multivariate/moretop.ml:7212:    ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/moretop.ml:7213:    ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7214-    DISCH_THEN(X_CHOOSE_THEN `g:real^N->complex` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7224-    EXISTS_TAC `(j:real^N->complex) o (k:real^N->real^N)` THEN
hol-light-20190729/Multivariate/moretop.ml:7225:    ASM_SIMP_TAC[o_THM] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-7226-    MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN CONJ_TAC THEN
hol-light-20190729/Multivariate/moretop.ml-7227-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/moretop.ml:7228:      CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/moretop.ml-7229-
##############################################
hol-light-20190729/Multivariate/moretop.ml-7296-  ASM_REWRITE_TAC[IMAGE_o] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:7297:   [CONJ_TAC THENL [MATCH_MP_TAC CONTINUOUS_ON_COMPOSE; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-7298-    ASM_MESON_TAC[CONTINUOUS_ON_SUBSET];
##############################################
hol-light-20190729/Multivariate/moretop.ml-7305-    MATCH_MP_TAC(ONCE_REWRITE_RULE[IMP_CONJ_ALT] HOMOTOPIC_WITH_EQ) THEN
hol-light-20190729/Multivariate/moretop.ml:7306:    REWRITE_TAC[o_DEF; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/moretop.ml-7307-
##############################################
hol-light-20190729/Multivariate/moretop.ml-7344-       [EXISTS_TAC `s:real^2->bool`; EXISTS_TAC `t:real^2->bool`] THEN
hol-light-20190729/Multivariate/moretop.ml:7345:      ASM_SIMP_TAC[COMPACT_IMP_CLOSED] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7346-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7351-      MATCH_MP_TAC CONTINUOUS_ON_CASES_LOCAL THEN
hol-light-20190729/Multivariate/moretop.ml:7352:      ASM_REWRITE_TAC[GSYM o_DEF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7353-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7392-         `?w:real^2. cexp(ii * Cx(h w)) = cexp (ii * Cx(z + h w))`
hol-light-20190729/Multivariate/moretop.ml:7393:         (CHOOSE_THEN MP_TAC) THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-7394-        REWRITE_TAC[CX_ADD; COMPLEX_ADD_LDISTRIB; CEXP_ADD] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7425-    MP_TAC(ISPECL [`vec 0:real^2`; `r:real`] CBALL_DIFF_SPHERE) THEN
hol-light-20190729/Multivariate/moretop.ml:7426:    ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7427-    REWRITE_TAC[connected_component] THEN MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7435-    MP_TAC(ISPECL [`vec 0:real^2`; `r:real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/moretop.ml:7436:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/moretop.ml-7437-
##############################################
hol-light-20190729/Multivariate/moretop.ml-7516-  REPEAT(ANTS_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:7517:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-7518-    ASM_MESON_TAC[CONNECTED_SIMPLE_PATH_ENDLESS; ARC_IMP_SIMPLE_PATH];
##############################################
hol-light-20190729/Multivariate/moretop.ml-7535-       MATCH_MP_TAC OPEN_SUBSET THEN ASM_REWRITE_TAC[]]) THEN
hol-light-20190729/Multivariate/moretop.ml:7536:    ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7537-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7562-      MP_TAC(ISPEC `c1:real^1->real^2` NONEMPTY_SIMPLE_PATH_ENDLESS) THEN
hol-light-20190729/Multivariate/moretop.ml:7563:      ASM_SIMP_TAC[ARC_IMP_SIMPLE_PATH] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml:7564:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-7565-    UNDISCH_TAC
##############################################
hol-light-20190729/Multivariate/moretop.ml-7567-    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/moretop.ml:7568:    ASM_REWRITE_TAC[CLOSURE_UNION_FRONTIER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7569-    UNDISCH_TAC
##############################################
hol-light-20190729/Multivariate/moretop.ml-7571-    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/moretop.ml:7572:    ASM_REWRITE_TAC[CLOSURE_UNION_FRONTIER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7573-    (MP_TAC o ASSUME)
##############################################
hol-light-20190729/Multivariate/moretop.ml-7583-    CONJ_TAC THENL
hol-light-20190729/Multivariate/moretop.ml:7584:     [ASM_REWRITE_TAC[CLOSURE_UNION_FRONTIER] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml-7585-    CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/moretop.ml-7606-    MP_TAC(ISPEC `c2:real^1->real^2` NONEMPTY_SIMPLE_PATH_ENDLESS) THEN
hol-light-20190729/Multivariate/moretop.ml:7607:    ASM_SIMP_TAC[ARC_IMP_SIMPLE_PATH] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/moretop.ml-7608-
##############################################
hol-light-20190729/Multivariate/moretop.ml-7649-      `outside(path_image c1 UNION path_image c2):real^2->bool`] THEN
hol-light-20190729/Multivariate/moretop.ml:7650:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7651-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7683-        `outside(path_image c2 UNION path_image c):real^2->bool`] THEN
hol-light-20190729/Multivariate/moretop.ml:7684:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7685-      MP_TAC(ISPEC `c:real^1->real^2` NONEMPTY_SIMPLE_PATH_ENDLESS) THEN
hol-light-20190729/Multivariate/moretop.ml:7686:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-7687-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7707-        `outside(path_image c1 UNION path_image c):real^2->bool`] THEN
hol-light-20190729/Multivariate/moretop.ml:7708:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7709-      MP_TAC(ISPEC `c:real^1->real^2` NONEMPTY_SIMPLE_PATH_ENDLESS) THEN
hol-light-20190729/Multivariate/moretop.ml:7710:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/moretop.ml-7711-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7724-    ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/moretop.ml:7725:    REWRITE_TAC[OUTSIDE_INSIDE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7726-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7739-        MP_TAC(ISPEC `c1:real^1->real^2` NONEMPTY_SIMPLE_PATH_ENDLESS) THEN
hol-light-20190729/Multivariate/moretop.ml:7740:        ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7741-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7779-        MP_TAC(ISPEC `c2:real^1->real^2` NONEMPTY_SIMPLE_PATH_ENDLESS) THEN
hol-light-20190729/Multivariate/moretop.ml:7780:        ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/moretop.ml-7781-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7829-                        (UNIV DIFF s) UNION (UNIV DIFF t) = UNIV DIFF u`] THEN
hol-light-20190729/Multivariate/moretop.ml:7830:    REWRITE_TAC[GSYM UNION_WITH_INSIDE] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-7831-  MATCH_MP_TAC COMPONENTS_MAXIMAL THEN
##############################################
hol-light-20190729/Multivariate/moretop.ml-7834-   [ASM_REWRITE_TAC[OUTSIDE_IN_COMPONENTS]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/moretop.ml:7835:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/moretop.ml-7836-  MP_TAC(ISPECL
##############################################
hol-light-20190729/Multivariate/moretop.ml-7849-  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/moretop.ml:7850:  REWRITE_TAC[GSYM UNION_WITH_INSIDE] THEN ASM SET_TAC[]);;
##############################################
hol-light-20190729/Multivariate/msum.ml-36-let msum = new_definition
hol-light-20190729/Multivariate/msum.ml:37:  `msum s (f:A->real^M^N):real^M^N = (lambda i j. sum s (\x. f x$i$j))`;;
hol-light-20190729/Multivariate/msum.ml-38-
hol-light-20190729/Multivariate/msum.ml-39-let MSUM_COMPONENT = prove
hol-light-20190729/Multivariate/msum.ml:40: (`!s (f:A->real^M^N) i j. msum s f$i$j = sum s (\x. f x$i$j)`,
hol-light-20190729/Multivariate/msum.ml-41-  REPEAT GEN_TAC THEN C SUBGOAL_THEN (CONJUNCTS_THEN CHOOSE_TAC)
##############################################
hol-light-20190729/Multivariate/msum.ml-47-let MSUM_ROW = prove
hol-light-20190729/Multivariate/msum.ml:48: (`!s f:A->real^M^N i. msum s f$i = vsum s (\x. f x$i)`,
hol-light-20190729/Multivariate/msum.ml-49-  REWRITE_TAC[CART_EQ_FULL; MSUM_COMPONENT; VSUM_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/msum.ml-176-  ONCE_REWRITE_TAC[GSYM MSUM_SUPPORT_EXPLICIT] THEN
hol-light-20190729/Multivariate/msum.ml:177:  AP_THM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/msum.ml-178-
##############################################
hol-light-20190729/Multivariate/msum.ml-190-        ==> (msum (u UNION v) f = msum u f)`,
hol-light-20190729/Multivariate/msum.ml:191:  REPEAT STRIP_TAC THEN MATCH_MP_TAC MSUM_SUPERSET THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/msum.ml-192-
##############################################
hol-light-20190729/Multivariate/msum.ml-196-        ==> (msum (u UNION v) f = msum v f)`,
hol-light-20190729/Multivariate/msum.ml:197:  REPEAT STRIP_TAC THEN MATCH_MP_TAC MSUM_SUPERSET THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/msum.ml-198-
##############################################
hol-light-20190729/Multivariate/paths.ml-945-  SUBGOAL_THEN `~((pathstart g1:real^N) IN path_image g2)`
hol-light-20190729/Multivariate/paths.ml:946:   (fun th -> MP_TAC th THEN ASM SET_TAC[]) THEN
hol-light-20190729/Multivariate/paths.ml-947-  REWRITE_TAC[path_image; IN_IMAGE; IN_INTERVAL_1; DROP_VEC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-981-  MP_TAC(ISPEC `g2:real^1->real^N` PATHSTART_IN_PATH_IMAGE) THEN
hol-light-20190729/Multivariate/paths.ml:982:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-983-
##############################################
hol-light-20190729/Multivariate/paths.ml-1012-   [`p:real^1->real^N`; `q:real^1->real^N`; `r:real^1->real^N`] THEN
hol-light-20190729/Multivariate/paths.ml:1013:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-1014-
##############################################
hol-light-20190729/Multivariate/paths.ml-1443-    RULE_ASSUM_TAC(REWRITE_RULE[arc; pathstart; pathfinish]) THEN
hol-light-20190729/Multivariate/paths.ml:1444:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-1445-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-1454-   [REWRITE_TAC[IN_INTERVAL_1; DROP_VEC; REAL_POS; REAL_LE_REFL];
hol-light-20190729/Multivariate/paths.ml:1455:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-1456-
##############################################
hol-light-20190729/Multivariate/paths.ml-1486-    RULE_ASSUM_TAC(REWRITE_RULE[arc; pathstart; pathfinish]) THEN
hol-light-20190729/Multivariate/paths.ml:1487:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-1488-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-1497-   [REWRITE_TAC[IN_INTERVAL_1; DROP_VEC; REAL_POS; REAL_LE_REFL];
hol-light-20190729/Multivariate/paths.ml:1498:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-1499-
##############################################
hol-light-20190729/Multivariate/paths.ml-1507-  FIRST_ASSUM(DISJ_CASES_TAC o MATCH_MP SIMPLE_PATH_CASES) THENL
hol-light-20190729/Multivariate/paths.ml:1508:   [EXISTS_TAC `g:real^1->real^N` THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-1509-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-2212-  MATCH_MP_TAC ARC_CONTINUOUS_IMAGE THEN
hol-light-20190729/Multivariate/paths.ml:2213:  ASM_REWRITE_TAC[PATH_IMAGE_LINEPATH; ARC_LINEPATH_EQ] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-2214-
##############################################
hol-light-20190729/Multivariate/paths.ml-2225-   `IMAGE (h:real^N->real^1) (path_image g) SUBSET IMAGE h s`
hol-light-20190729/Multivariate/paths.ml:2226:  MP_TAC THENL [ASM_REWRITE_TAC[]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-2227-  W(MP_TAC o PART_MATCH (lhand o rand) INTERVAL_SUBSET_IS_INTERVAL o snd) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-2237-  RULE_ASSUM_TAC(REWRITE_RULE[pathstart; pathfinish; path_image]) THEN
hol-light-20190729/Multivariate/paths.ml:2238:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-2239-
##############################################
hol-light-20190729/Multivariate/paths.ml-2298-      ASM_REWRITE_TAC[IN_INTERVAL_1; DROP_VEC] THEN
hol-light-20190729/Multivariate/paths.ml:2299:      ASM_CASES_TAC `a:real^1 = p` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-2300-      RULE_ASSUM_TAC(REWRITE_RULE[GSYM DROP_EQ]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-2335-      ASM_REWRITE_TAC[IN_INTERVAL_1; DROP_VEC] THEN
hol-light-20190729/Multivariate/paths.ml:2336:      ASM_CASES_TAC `a:real^1 = q` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-2337-      RULE_ASSUM_TAC(REWRITE_RULE[GSYM DROP_EQ]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-2342-        PATH_IMAGE_SUBPATH_COMBINE) THEN
hol-light-20190729/Multivariate/paths.ml:2343:    ASM_SIMP_TAC[ARC_IMP_PATH] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-2344-    REWRITE_TAC[GSYM MEMBER_NOT_EMPTY] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-2423-      FIRST_X_ASSUM(fun th ->
hol-light-20190729/Multivariate/paths.ml:2424:       MP_TAC(AP_TERM `\x:real^2. x$1` th) THEN
hol-light-20190729/Multivariate/paths.ml:2425:       MP_TAC(AP_TERM `\x:real^2. x$2` th)) THEN
hol-light-20190729/Multivariate/paths.ml-2426-      REWRITE_TAC[VECTOR_ADD_COMPONENT; VECTOR_MUL_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-2479-      MATCH_MP_TAC SIMPLE_PATH_CONTINUOUS_IMAGE THEN
hol-light-20190729/Multivariate/paths.ml:2480:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-2481-      DISCH_THEN(X_CHOOSE_THEN `g:real^1->real^N`
##############################################
hol-light-20190729/Multivariate/paths.ml-2743-    REWRITE_TAC[IN] THEN ASM_REWRITE_TAC[PATH_COMPONENT_REFL_EQ] THEN
hol-light-20190729/Multivariate/paths.ml:2744:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-2745-    MATCH_MP_TAC PATH_COMPONENT_MAXIMAL THEN ASM_REWRITE_TAC[]]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-2755-    REPEAT STRIP_TAC THEN MATCH_MP_TAC PATH_COMPONENT_MAXIMAL THEN
hol-light-20190729/Multivariate/paths.ml:2756:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-2757-    ASM_MESON_TAC[PATH_COMPONENT_EQ_EMPTY; SUBSET]]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-2855-    ALL_TAC;
hol-light-20190729/Multivariate/paths.ml:2856:    ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-2857-  FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [OPEN_CONTAINS_BALL]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-2943-    ASM_MESON_TAC[CONTINUOUS_ON_SUBSET];
hol-light-20190729/Multivariate/paths.ml:2944:    ASM_REWRITE_TAC[o_DEF] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-2945-
##############################################
hol-light-20190729/Multivariate/paths.ml-2971-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:2972:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-2973-
##############################################
hol-light-20190729/Multivariate/paths.ml-3012-    DISCH_THEN(MP_TAC o SPEC `y:real^N`)] THEN
hol-light-20190729/Multivariate/paths.ml:3013:  (ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml-3014-  MATCH_MP_TAC(SET_RULE `s SUBSET t ==> s x ==> t x`) THEN
hol-light-20190729/Multivariate/paths.ml-3015-  REWRITE_TAC[ETA_AX] THEN MATCH_MP_TAC PATH_COMPONENT_MONO THEN
hol-light-20190729/Multivariate/paths.ml:3016:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-3017-
##############################################
hol-light-20190729/Multivariate/paths.ml-3078-              FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/Multivariate/paths.ml:3079:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-3080-
##############################################
hol-light-20190729/Multivariate/paths.ml-3315-    ENDS_IN_SEGMENT) THEN
hol-light-20190729/Multivariate/paths.ml:3316:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-3317-
##############################################
hol-light-20190729/Multivariate/paths.ml-3363-    REWRITE_TAC[CONTRAPOS_THM; GSYM SUBSET] THEN
hol-light-20190729/Multivariate/paths.ml:3364:    MATCH_MP_TAC SUBSET_INTERIOR THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-3365-    DISCH_THEN(X_CHOOSE_THEN `y:real^N` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-3428-   [MP_TAC(ISPEC `s:real^N->bool` INTERIOR_SUBSET_RELATIVE_INTERIOR) THEN
hol-light-20190729/Multivariate/paths.ml:3429:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-3430-    ASM_SIMP_TAC[CLOSURE_CONVEX_INTER_AFFINE] THEN SET_TAC[]]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-3529-   `IMAGE (h:real^N->real^1) (segment[a,b]) SUBSET IMAGE h s`
hol-light-20190729/Multivariate/paths.ml:3530:  MP_TAC THENL [ASM_REWRITE_TAC[]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-3531-  W(MP_TAC o PART_MATCH (lhand o rand) INTERVAL_SUBSET_IS_INTERVAL o snd) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-3541-  RULE_ASSUM_TAC(REWRITE_RULE[pathstart; pathfinish; path_image]) THEN
hol-light-20190729/Multivariate/paths.ml:3542:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-3543-
##############################################
hol-light-20190729/Multivariate/paths.ml-3613-        HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:3614:    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-3615-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-3618-   [AP_TERM_TAC THEN
hol-light-20190729/Multivariate/paths.ml:3619:    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-3620-    REWRITE_TAC[pathstart; pathfinish]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-3627-    REWRITE_TAC[ENDS_IN_UNIT_INTERVAL] THEN
hol-light-20190729/Multivariate/paths.ml:3628:    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-3629-  EQ_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-3689-    HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:3690:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-3691-
##############################################
hol-light-20190729/Multivariate/paths.ml-3737-    MATCH_MP_TAC ARC_CONTINUOUS_IMAGE THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:3738:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-3739-    REWRITE_TAC[PATHSTART_COMPOSE; PATHFINISH_COMPOSE; SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-3897-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:3898:  REPEAT(ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml-3899-  ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-3917-  FIRST_X_ASSUM(MP_TAC o SPECL [`a:real^M`; `b:real^M`]) THEN
hol-light-20190729/Multivariate/paths.ml:3918:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-3919-  DISCH_THEN(MP_TAC o MATCH_MP CONVEX_CONTAINS_SEGMENT_IMP) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-3921-   [`(f:real^M->real^N) a`; `(f:real^M->real^N) b`]) THEN
hol-light-20190729/Multivariate/paths.ml:3922:  SIMP_TAC[FUN_IN_IMAGE; ENDS_IN_SEGMENT] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-3923-
##############################################
hol-light-20190729/Multivariate/paths.ml-3936-    FIRST_X_ASSUM(MP_TAC o SPECL [`a:real^M`; `b:real^M`]) THEN
hol-light-20190729/Multivariate/paths.ml:3937:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-3938-
##############################################
hol-light-20190729/Multivariate/paths.ml-3961-     [X_GEN_TAC `c:real^1->bool` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:3962:      SUBGOAL_THEN `(\x. lift(((f:real^1->real^N) x)$i)) = (\x. lift(x$i)) o f`
hol-light-20190729/Multivariate/paths.ml-3963-       (fun th -> ONCE_REWRITE_TAC[th])
##############################################
hol-light-20190729/Multivariate/paths.ml-3970-      DISCH_THEN(X_CHOOSE_TAC `y:real^N`) THEN
hol-light-20190729/Multivariate/paths.ml:3971:      EXISTS_TAC `lift((y:real^N)$i)` THEN ASM_SIMP_TAC[LIM_COMPONENT]]] THEN
hol-light-20190729/Multivariate/paths.ml-3972-  REPEAT STRIP_TAC THEN REWRITE_TAC[CONTINUOUS_ON] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-4142-     [MP_TAC(ISPECL [`x:real^M`; `z:real^M`; `y:real^M`]
hol-light-20190729/Multivariate/paths.ml:4143:        UNION_SEGMENT) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-4144-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-4195-    REWRITE_TAC[ARITH_RULE `b < abs b + &1`] THEN
hol-light-20190729/Multivariate/paths.ml:4196:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[EVENTUALLY_WITHIN]] THEN
hol-light-20190729/Multivariate/paths.ml-4197-    DISCH_THEN(X_CHOOSE_THEN `d:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-4357-  ASM_SIMP_TAC[CARD_EQ_REAL_IMP_UNCOUNTABLE; FINITE_INSERT; FINITE_EMPTY] THEN
hol-light-20190729/Multivariate/paths.ml:4358:  MATCH_MP_TAC CARD_EQ_CONNECTED THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-4359-
##############################################
hol-light-20190729/Multivariate/paths.ml-5968-     [REWRITE_TAC[INTERS_GSPEC; SUBSET; IN_ELIM_THM; IN_UNIV] THEN
hol-light-20190729/Multivariate/paths.ml:5969:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-5970-      ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:5971:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml-5972-    REWRITE_TAC[FORALL_LIFT] THEN MATCH_MP_TAC REAL_WLOG_LT THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-5994-      ASM_REWRITE_TAC[dist] THEN
hol-light-20190729/Multivariate/paths.ml:5995:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-5996-      MATCH_MP_TAC(TAUT `q /\ (p ==> ~r) ==> p ==> ~(q ==> r)`) THEN
hol-light-20190729/Multivariate/paths.ml:5997:      CONJ_TAC THENL [ASM SET_TAC[]; CONV_TAC NORM_ARITH]] THEN
hol-light-20190729/Multivariate/paths.ml-5998-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-6069-            ASM_REAL_ARITH_TAC;
hol-light-20190729/Multivariate/paths.ml:6070:            REWRITE_TAC[OPEN_CLOSED_INTERVAL_1] THEN ASM SET_TAC[]]]];
hol-light-20190729/Multivariate/paths.ml-6071-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-6097-            ASM_REAL_ARITH_TAC;
hol-light-20190729/Multivariate/paths.ml:6098:            REWRITE_TAC[OPEN_CLOSED_INTERVAL_1] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-6099-          RULE_ASSUM_TAC(REWRITE_RULE[IN_INTERVAL_1]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-6103-    REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:6104:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:6105:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-6106-      RULE_ASSUM_TAC(REWRITE_RULE[NORM_REAL; GSYM drop; DROP_SUB]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-6274-      REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:6275:       [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-6276-        MATCH_MP_TAC CLOSED_DIFF THEN ASM_REWRITE_TAC[OPEN_SEGMENT_1];
hol-light-20190729/Multivariate/paths.ml:6277:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-6278-        ASM_REWRITE_TAC[IN_DIFF] THEN MAP_EVERY UNDISCH_TAC
##############################################
hol-light-20190729/Multivariate/paths.ml-6292-        ASM_CASES_TAC `segment(x:real^1,y) INTER segment(u,v) = {}` THENL
hol-light-20190729/Multivariate/paths.ml:6293:         [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-6294-        SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-6338-    REPEAT STRIP_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/paths.ml:6339:     [ASM MESON_TAC[];
hol-light-20190729/Multivariate/paths.ml:6340:      REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; path_image] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-6341-      REWRITE_TAC[IN_IMAGE] THEN EXISTS_TAC `vec 0:real^1` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-6348-    STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:6349:     [RULE_ASSUM_TAC(REWRITE_RULE[path_image]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-6350-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-6439-    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC CONNECTED_COMPONENT_MAXIMAL THEN
hol-light-20190729/Multivariate/paths.ml:6440:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-6441-    DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-6487-    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC PATH_COMPONENT_MAXIMAL THEN
hol-light-20190729/Multivariate/paths.ml:6488:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-6489-    DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-6524-  SUBGOAL_THEN `(k:real^N->bool) SUBSET c` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:6525:   [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-6526-  MATCH_MP_TAC COMPONENTS_MAXIMAL THEN
hol-light-20190729/Multivariate/paths.ml:6527:  EXISTS_TAC `u:real^N->bool` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-6528-
##############################################
hol-light-20190729/Multivariate/paths.ml-6543-    MATCH_MP_TAC MONO_EXISTS THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:6544:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-6545-    REWRITE_TAC[LOCALLY_PATH_CONNECTED_OPEN_PATH_COMPONENT] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-6686-    ASM_REWRITE_TAC[IN_INTER; CENTRE_IN_BALL];
hol-light-20190729/Multivariate/paths.ml:6687:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-6688-
##############################################
hol-light-20190729/Multivariate/paths.ml-6740-  SUBGOAL_THEN `(a:real^N) IN UNIONS p` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:6741:   [ASM SET_TAC[]; REWRITE_TAC[IN_UNIONS; NOT_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-6742-  X_GEN_TAC `d:real^N->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-6746-  ASM_REWRITE_TAC[NOT_IMP; GSYM CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/paths.ml:6747:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:6748:  CONJ_TAC THENL [ASM_MESON_TAC[]; ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-6749-
##############################################
hol-light-20190729/Multivariate/paths.ml-6759-  FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_NONEMPTY) THEN
hol-light-20190729/Multivariate/paths.ml:6760:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-6761-
##############################################
hol-light-20190729/Multivariate/paths.ml-6782-   `?x:real^N. x IN s /\ ~(path_component s x IN cs)`
hol-light-20190729/Multivariate/paths.ml:6783:  MP_TAC THENL [ASM SET_TAC[]; SIMP_TAC[SUBSET; NOT_FORALL_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-6784-
##############################################
hol-light-20190729/Multivariate/paths.ml-6788-                           path_component s y IN cs`
hol-light-20190729/Multivariate/paths.ml:6789:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-6790-  FIRST_ASSUM(MP_TAC o MATCH_MP PATH_COMPONENT_EQ) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-6811-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:6812:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-6813-
##############################################
hol-light-20190729/Multivariate/paths.ml-6828-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:6829:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-6830-
##############################################
hol-light-20190729/Multivariate/paths.ml-6948-  MATCH_MP_TAC CONTINUOUS_RIGHT_INVERSE_IMP_QUOTIENT_MAP THEN
hol-light-20190729/Multivariate/paths.ml:6949:  EXISTS_TAC `g:real^N->real^M` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-6950-
##############################################
hol-light-20190729/Multivariate/paths.ml-6973-  MATCH_MP_TAC CONTINUOUS_RIGHT_INVERSE_IMP_QUOTIENT_MAP THEN
hol-light-20190729/Multivariate/paths.ml:6974:  EXISTS_TAC `g:real^N->real^M` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-6975-
##############################################
hol-light-20190729/Multivariate/paths.ml-7039-   [SUBSET; FORALL_IN_PCROSS; PASTECART_IN_PCROSS; FORALL_PASTECART]) THEN
hol-light-20190729/Multivariate/paths.ml:7040:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-7041-
##############################################
hol-light-20190729/Multivariate/paths.ml-7106-   [SUBSET; FORALL_IN_PCROSS; PASTECART_IN_PCROSS; FORALL_PASTECART]) THEN
hol-light-20190729/Multivariate/paths.ml:7107:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-7108-
##############################################
hol-light-20190729/Multivariate/paths.ml-7120-   [EXISTS_TAC `{}:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:7121:    ASM_REWRITE_TAC[CONNECTED_EMPTY; OPEN_IN_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7122-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7124-        EXISTS_COMPONENT_SUPERSET) THEN
hol-light-20190729/Multivariate/paths.ml:7125:  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-7126-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `d:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7168-  ONCE_REWRITE_TAC[CARD_EQ_SYM] THEN MATCH_MP_TAC CARD_EQ_CONNECTED THEN
hol-light-20190729/Multivariate/paths.ml:7169:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-7170-
##############################################
hol-light-20190729/Multivariate/paths.ml-7182-  ASM_SIMP_TAC[AFFINE_IMP_CONVEX; CONVEX_CONNECTED] THEN
hol-light-20190729/Multivariate/paths.ml:7183:  FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-7184-
##############################################
hol-light-20190729/Multivariate/paths.ml-7304-  ASM_SIMP_TAC[OPEN_INTER; OPEN_IN_OPEN_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:7305:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml:7306:  MATCH_MP_TAC CONNECTED_UNION THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-7307-
##############################################
hol-light-20190729/Multivariate/paths.ml-7358-        MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC THEN MATCH_MP_TAC MONO_AND THEN
hol-light-20190729/Multivariate/paths.ml:7359:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-7360-        MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] OPEN_IN_TRANS) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7395-    ALL_TAC;
hol-light-20190729/Multivariate/paths.ml:7396:    SUBGOAL_THEN `(x:real^N) IN c` MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-7397-    ASM_MESON_TAC[CONNECTED_COMPONENT_REFL_EQ; IN; IN_INTER];
hol-light-20190729/Multivariate/paths.ml-7398-    FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:7399:    ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-7400-  MATCH_MP_TAC(TAUT `!q. p /\ q ==> p`) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7411-    FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:7412:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7413-    SUBGOAL_THEN `s INTER h UNION t INTER h:real^N->bool = h`
##############################################
hol-light-20190729/Multivariate/paths.ml-7415-     [FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:7416:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7417-      ASM_REWRITE_TAC[]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7420-     [FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:7421:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7422-      ASM_MESON_TAC[CONNECTED_CONNECTED_COMPONENT]]]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-7481-        REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:7482:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:7483:        RULE_ASSUM_TAC(REWRITE_RULE[path_image]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-7484-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC  `x:real^1` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7506-      ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:7507:      ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/paths.ml-7508-      X_GEN_TAC `p:real^1` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7555-        REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:7556:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-7557-      SUBGOAL_THEN `(s:real^N->bool) SUBSET u /\ (t:real^N->bool) SUBSET u`
##############################################
hol-light-20190729/Multivariate/paths.ml-7561-      ASM_SIMP_TAC[CLOSED_IN_DIFF; CLOSED_IN_REFL] THEN
hol-light-20190729/Multivariate/paths.ml:7562:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-7563-      DISCH_THEN(X_CHOOSE_THEN `p:real^1` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/paths.ml-7564-      SUBGOAL_THEN `(g:real^1->real^N) p IN t` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:7565:       [RULE_ASSUM_TAC(REWRITE_RULE[path_image]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7566-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7569-        REWRITE_TAC[INTERVAL_SING; ENDS_IN_UNIT_INTERVAL] THEN
hol-light-20190729/Multivariate/paths.ml:7570:        RULE_ASSUM_TAC(REWRITE_RULE[pathstart]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7571-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7586-        EXISTS_TAC `u:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:7587:        ASM_REWRITE_TAC[GSYM path; GSYM path_image] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7588-        DISCH_THEN(MP_TAC o MATCH_MP (TAUT `(p <=> q) ==> ~p ==> ~q`))] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7600-        FIRST_X_ASSUM(MP_TAC o SPEC `r:real^1`) THEN
hol-light-20190729/Multivariate/paths.ml:7601:        ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/paths.ml-7602-      RULE_ASSUM_TAC(REWRITE_RULE[IN_INTERVAL_1; DROP_VEC]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7710-   [EXISTS_TAC `{}:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:7711:    ASM_REWRITE_TAC[PATH_CONNECTED_EMPTY; OPEN_IN_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7712-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7717-  SUBGOAL_THEN `?a:real^N. a IN t /\ a IN u` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:7718:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-7719-  EXISTS_TAC `path_component (s INTER u) (a:real^N)` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7729-     [MATCH_MP_TAC PATH_COMPONENT_MAXIMAL THEN
hol-light-20190729/Multivariate/paths.ml:7730:      ASM_REWRITE_TAC[IN_INTER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7731-      MP_TAC(ISPECL [`s INTER u:real^N->bool`; `a:real^N`]
hol-light-20190729/Multivariate/paths.ml:7732:        PATH_COMPONENT_SUBSET) THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/paths.ml-7733-
##############################################
hol-light-20190729/Multivariate/paths.ml-7766-        MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC THEN MATCH_MP_TAC MONO_AND THEN
hol-light-20190729/Multivariate/paths.ml:7767:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-7768-        MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] OPEN_IN_TRANS) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7803-    ALL_TAC;
hol-light-20190729/Multivariate/paths.ml:7804:    SUBGOAL_THEN `(x:real^N) IN c` MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-7805-    ASM_MESON_TAC[PATH_COMPONENT_REFL_EQ; IN; IN_INTER];
hol-light-20190729/Multivariate/paths.ml-7806-    FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:7807:    ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-7808-  MATCH_MP_TAC(TAUT `!q. p /\ q ==> p`) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7819-    FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:7820:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7821-    SUBGOAL_THEN `s INTER h UNION t INTER h:real^N->bool = h`
##############################################
hol-light-20190729/Multivariate/paths.ml-7823-     [FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:7824:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7825-      ASM_REWRITE_TAC[]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7828-     [FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:7829:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7830-      ASM_MESON_TAC[PATH_CONNECTED_PATH_COMPONENT]]]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-7874-     `(!t. R t ==> Q t) /\ (?t. P t /\ R t) ==> (?t. P t /\ Q t /\ R t)`) THEN
hol-light-20190729/Multivariate/paths.ml:7875:    REWRITE_TAC[REWRITE_RULE[SUBSET] CLOSURE_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7876-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/paths.ml-7878-    REWRITE_TAC[SUBSET_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:7879:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-7880-    REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7900-    ASM_REWRITE_TAC[IN_INTER; CENTRE_IN_BALL] THEN
hol-light-20190729/Multivariate/paths.ml:7901:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-7902-    REWRITE_TAC[INTERIOR_COMPLEMENT; IN_DIFF; IN_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7906-    REWRITE_TAC[NOT_IMP] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:7907:     [MATCH_MP_TAC SUBSET_CLOSURE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:7908:      ASM_SIMP_TAC[CLOSURE_UNIONS; FINITE_RESTRICT] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-7909-    MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-7935-  REWRITE_TAC[BALL_MIN_INTER; CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/paths.ml:7936:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[GSYM CONJ_ASSOC]] THEN
hol-light-20190729/Multivariate/paths.ml-7937-  X_GEN_TAC `x:real^N` THEN REWRITE_TAC[IN_INTER; IN_BALL] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7939-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:7940:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/paths.ml-7941-  X_GEN_TAC `c:real^N->bool` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-7979-      EXISTS_TAC `k:real^N->bool` THEN ASM_REWRITE_TAC[INTER_SUBSET] THEN
hol-light-20190729/Multivariate/paths.ml:7980:      REWRITE_TAC[SUBSET_INTER; CLOSURE_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-7981-      ASM_MESON_TAC[BOUNDED_SUBSET; INTER_SUBSET; BOUNDED_CLOSURE];
##############################################
hol-light-20190729/Multivariate/paths.ml-8060-    ASM_REWRITE_TAC[IN_BALL; IN_INTER] THEN ASM_MESON_TAC[DIST_SYM];
hol-light-20190729/Multivariate/paths.ml:8061:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8062-    MATCH_MP_TAC BOUNDED_SUBSET THEN EXISTS_TAC `ball(z:real^N,e / &2)` THEN
hol-light-20190729/Multivariate/paths.ml:8063:    REWRITE_TAC[BOUNDED_BALL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8064-    TRANS_TAC REAL_LE_TRANS `diameter(ball(z:real^N,e / &2))` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8066-     [MATCH_MP_TAC DIAMETER_SUBSET THEN REWRITE_TAC[BOUNDED_BALL] THEN
hol-light-20190729/Multivariate/paths.ml:8067:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8068-      REWRITE_TAC[DIAMETER_BALL] THEN ASM_REAL_ARITH_TAC]]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-8143-        AP_TERM_TAC THEN ABS_TAC THEN REPLICATE_TAC 4 AP_TERM_TAC THEN
hol-light-20190729/Multivariate/paths.ml:8144:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8145-        MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `f:num->real^N` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8150-        SIMP_TAC[FINITE_NUMSEG_LT; FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/paths.ml:8151:        ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IMAGE_o]] THEN
hol-light-20190729/Multivariate/paths.ml-8152-        MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-8170-         (MP_TAC o SPEC `(f:num->real^N) m`) THEN
hol-light-20190729/Multivariate/paths.ml:8171:        ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[SUBSET]] THEN
hol-light-20190729/Multivariate/paths.ml-8172-        DISCH_THEN MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/paths.ml-8173-        ASM_REWRITE_TAC[IN_BALL; IN_INTER; dist] THEN
hol-light-20190729/Multivariate/paths.ml:8174:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8175-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8178-        FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/paths.ml:8179:           BOUNDED_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8180-        W(MP_TAC o PART_MATCH (lhand o rand) FINITE_IMAGE_INJ_EQ o
##############################################
hol-light-20190729/Multivariate/paths.ml-8197-      ASM_REWRITE_TAC[IN_UNION; UNION_SUBSET] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:8198:       [MATCH_MP_TAC CONNECTED_UNION THEN ASM SET_TAC[]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-8199-      MATCH_MP_TAC BOUNDED_SUBSET THEN EXISTS_TAC `s:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:8200:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8201-      MATCH_MP_TAC DIAMETER_LE THEN ASM_SIMP_TAC[REAL_LT_IMP_LE] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8287-    REWRITE_TAC[IN_SING; DIAMETER_SING] THEN
hol-light-20190729/Multivariate/paths.ml:8288:    ASM_SIMP_TAC[REAL_LT_DIV; REAL_LT_POW2] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8289-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8294-     (MP_TAC o SPEC `k:num`) ASSUME_TAC)) THEN
hol-light-20190729/Multivariate/paths.ml:8295:    REWRITE_TAC[LE_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8296-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8351-      REWRITE_TAC[COND_SWAP] THEN COND_CASES_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/paths.ml:8352:       [ASM SET_TAC[]; FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_ARITH_TAC]];
hol-light-20190729/Multivariate/paths.ml-8353-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8446-      REWRITE_TAC[COND_SWAP] THEN COND_CASES_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/paths.ml:8447:       [ASM SET_TAC[]; FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_ARITH_TAC]];
hol-light-20190729/Multivariate/paths.ml-8448-    MATCH_MP_TAC CONNECTED_UNIONS THEN
hol-light-20190729/Multivariate/paths.ml:8449:    ASM_REWRITE_TAC[FORALL_IN_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:8450:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8451-    REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_GSPEC; IN_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8474-    ASM_SIMP_TAC[FINITE_RESTRICT; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/paths.ml:8475:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-8476-    X_GEN_TAC `w:real^N->bool` THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:8477:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-8478-    TRANS_TAC REAL_LET_TRANS `r / &2 pow (k + 2)` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8509-      REWRITE_TAC[COND_SWAP] THEN COND_CASES_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/paths.ml:8510:       [ASM SET_TAC[]; FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_ARITH_TAC]];
hol-light-20190729/Multivariate/paths.ml-8511-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8522-     [SUBGOAL_THEN `?b:real^N. b IN w` CHOOSE_TAC THENL
hol-light-20190729/Multivariate/paths.ml:8523:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-8524-      REWRITE_TAC[CONNECTED_IFF_CONNECTED_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8539-        REWRITE_TAC[BOUNDED_SING; IN_SING; CONNECTED_SING] THEN
hol-light-20190729/Multivariate/paths.ml:8540:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:8541:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-8542-        REWRITE_TAC[DIAMETER_SING] THEN ASM_REAL_ARITH_TAC;
##############################################
hol-light-20190729/Multivariate/paths.ml-8600-      REWRITE_TAC[BOUNDED_SING; CONNECTED_SING; IN_SING] THEN
hol-light-20190729/Multivariate/paths.ml:8601:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:8602:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-8603-      REWRITE_TAC[DIAMETER_SING] THEN ASM_REAL_ARITH_TAC];
##############################################
hol-light-20190729/Multivariate/paths.ml-8617-  SUBGOAL_THEN `(b:real^N) IN UNIONS ws` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:8618:   [ASM SET_TAC[]; REWRITE_TAC[IN_UNIONS]] THEN
hol-light-20190729/Multivariate/paths.ml-8619-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `w:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8725-    DISCH_THEN(MP_TAC o SPEC `a:real^N`) THEN
hol-light-20190729/Multivariate/paths.ml:8726:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-8727-    DISCH_THEN(X_CHOOSE_THEN `d:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8729-    ASM_REWRITE_TAC[REAL_HALF; REAL_LT_MIN] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:8730:     [REWRITE_TAC[CBALL_MIN_INTER] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-8731-    REWRITE_TAC[COMPACT_EQ_BOUNDED_CLOSED] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-8746-    REWRITE_TAC[IN_SING; DIAMETER_SING] THEN
hol-light-20190729/Multivariate/paths.ml:8747:    ASM_SIMP_TAC[REAL_LT_DIV; REAL_LT_POW2] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8748-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8753-     (MP_TAC o SPEC `k:num`) ASSUME_TAC)) THEN
hol-light-20190729/Multivariate/paths.ml:8754:    REWRITE_TAC[LE_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8755-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8810-      REWRITE_TAC[COND_SWAP] THEN COND_CASES_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/paths.ml:8811:       [ASM SET_TAC[]; FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_ARITH_TAC]];
hol-light-20190729/Multivariate/paths.ml-8812-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8904-      REWRITE_TAC[COND_SWAP] THEN COND_CASES_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/paths.ml:8905:       [ASM SET_TAC[]; FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_ARITH_TAC]];
hol-light-20190729/Multivariate/paths.ml-8906-    MATCH_MP_TAC CONNECTED_UNIONS THEN
hol-light-20190729/Multivariate/paths.ml:8907:    ASM_REWRITE_TAC[FORALL_IN_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:8908:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-8909-    REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_GSPEC; IN_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8940-    ASM_SIMP_TAC[FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/paths.ml:8941:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-8942-    ONCE_REWRITE_TAC[TAUT `p /\ q /\ r <=> q /\ p /\ r`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-8957-      FIRST_X_ASSUM(MP_TAC o SPEC `x:real^N`) THEN
hol-light-20190729/Multivariate/paths.ml:8958:      ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml-8959-      CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-8997-      REWRITE_TAC[COND_SWAP] THEN COND_CASES_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/paths.ml:8998:       [ASM SET_TAC[]; FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_ARITH_TAC]];
hol-light-20190729/Multivariate/paths.ml-8999-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9010-     [SUBGOAL_THEN `?b:real^N. b IN w` CHOOSE_TAC THENL
hol-light-20190729/Multivariate/paths.ml:9011:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-9012-      REWRITE_TAC[CONNECTED_IFF_CONNECTED_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9027-        REWRITE_TAC[BOUNDED_SING; IN_SING; CONNECTED_SING] THEN
hol-light-20190729/Multivariate/paths.ml:9028:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:9029:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-9030-        REWRITE_TAC[DIAMETER_SING] THEN ASM_REAL_ARITH_TAC;
##############################################
hol-light-20190729/Multivariate/paths.ml-9088-      REWRITE_TAC[BOUNDED_SING; CONNECTED_SING; IN_SING] THEN
hol-light-20190729/Multivariate/paths.ml:9089:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:9090:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-9091-      REWRITE_TAC[DIAMETER_SING] THEN ASM_REAL_ARITH_TAC];
##############################################
hol-light-20190729/Multivariate/paths.ml-9105-  SUBGOAL_THEN `(b:real^N) IN UNIONS ws` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:9106:   [ASM SET_TAC[]; REWRITE_TAC[IN_UNIONS]] THEN
hol-light-20190729/Multivariate/paths.ml-9107-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `w:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9221-      ASM_REWRITE_TAC[] THEN MATCH_MP_TAC CLOSURE_MINIMAL THEN
hol-light-20190729/Multivariate/paths.ml:9222:      ASM_SIMP_TAC[COMPACT_IMP_CLOSED] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/paths.ml-9223-
##############################################
hol-light-20190729/Multivariate/paths.ml-9283-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:9284:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9285-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9294-     (fun th -> ASM_SIMP_TAC[th; COMPACT_DIFF]) THEN
hol-light-20190729/Multivariate/paths.ml:9295:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9296-    GEN_REWRITE_TAC LAND_CONV [COMPACT_EQ_HEINE_BOREL_GEN]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9299-  ASM_REWRITE_TAC[FORALL_IN_IMAGE] THEN ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:9300:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-9301-  GEN_REWRITE_TAC (LAND_CONV o BINDER_CONV)
##############################################
hol-light-20190729/Multivariate/paths.ml-9318-     [REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:9319:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9320-      ASM_REWRITE_TAC[IN_INTER; NOT_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9323-                  SUBSET s DIFF u`
hol-light-20190729/Multivariate/paths.ml:9324:    MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-9325-    MATCH_MP_TAC CLOSURE_MINIMAL_LOCAL THEN
hol-light-20190729/Multivariate/paths.ml:9326:    ASM_SIMP_TAC[CLOSED_IN_DIFF; CLOSED_IN_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:9327:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9328-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9347-    REWRITE_TAC[IN_INTER] THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:9348:    CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[connected_component]] THEN
hol-light-20190729/Multivariate/paths.ml-9349-    EXISTS_TAC `s INTER closure ((t:real^N->real^N->bool) z)` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9353-      REWRITE_TAC[INTER_SUBSET] THEN
hol-light-20190729/Multivariate/paths.ml:9354:      CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[SUBSET_INTER]] THEN
hol-light-20190729/Multivariate/paths.ml-9355-      REWRITE_TAC[CLOSURE_SUBSET] THEN
hol-light-20190729/Multivariate/paths.ml-9356-      FIRST_X_ASSUM(MP_TAC o SPEC `z:real^N`) THEN REWRITE_TAC[open_in] THEN
hol-light-20190729/Multivariate/paths.ml:9357:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:9358:      EXPAND_TAC "r" THEN REWRITE_TAC[UNIONS_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:9359:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9360-      ASM_REWRITE_TAC[IN_INTER] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9362-      MP_TAC(ISPEC `(t:real^N->real^N->bool) z` CLOSURE_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:9363:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-9364-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9369-    SUBGOAL_THEN `y IN UNIONS (IMAGE (t:real^N->real^N->bool) q)`
hol-light-20190729/Multivariate/paths.ml:9370:    MP_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[UNIONS_IMAGE; IN_ELIM_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-9371-    REWRITE_TAC[IN_INTER] THEN ASM_MESON_TAC[CLOSURE_SUBSET; SUBSET];
##############################################
hol-light-20190729/Multivariate/paths.ml-9412-      REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:9413:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-9414-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9430-        CONNECTED_COMPONENT_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:9431:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-9432-    ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-9433-  SUBGOAL_THEN `z IN UNIONS (IMAGE (t:real^N->real^N->bool) q)` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:9434:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-9435-  REWRITE_TAC[UNIONS_IMAGE; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9441-  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:9442:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-9443-    TRANS_TAC SUBSET_TRANS `s DIFF c:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9447-  EXISTS_TAC `w:real^N` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:9448:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[connected_component]] THEN
hol-light-20190729/Multivariate/paths.ml-9449-  EXISTS_TAC
##############################################
hol-light-20190729/Multivariate/paths.ml-9452-   [MATCH_MP_TAC CONNECTED_UNION THEN
hol-light-20190729/Multivariate/paths.ml:9453:    REWRITE_TAC[CONNECTED_CONNECTED_COMPONENT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9454-    EXPAND_TAC "r" THEN MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-9457-     [TRANS_TAC SUBSET_TRANS `s DIFF c:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:9458:      REWRITE_TAC[CONNECTED_COMPONENT_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9459-      REWRITE_TAC[UNIONS_IMAGE; IN_ELIM_THM; SUBSET] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9462-      MP_TAC(ISPEC `(t:real^N->real^N->bool) w` CLOSURE_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:9463:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-9464-    MATCH_MP_TAC(SET_RULE `c y ==> y IN c UNION s`) THEN
hol-light-20190729/Multivariate/paths.ml-9465-    ASM_REWRITE_TAC[CONNECTED_COMPONENT_REFL_EQ; IN_DIFF];
hol-light-20190729/Multivariate/paths.ml:9466:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-9467-
##############################################
hol-light-20190729/Multivariate/paths.ml-9476-  FIRST_ASSUM(ASSUME_TAC o CONJUNCT1 o REWRITE_RULE[open_in]) THEN
hol-light-20190729/Multivariate/paths.ml:9477:  SUBGOAL_THEN `(x:real^N) IN s` ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-9478-  MP_TAC(ISPEC `connected_component s (x:real^N)`
##############################################
hol-light-20190729/Multivariate/paths.ml-9577-    MP_TAC(ISPECL [`x:real^N`; `e:real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/paths.ml:9578:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-9579-
##############################################
hol-light-20190729/Multivariate/paths.ml-9627-    ASM_SIMP_TAC[o_THM; LIM_SUBSEQUENCE] THEN
hol-light-20190729/Multivariate/paths.ml:9628:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-9629-    FIRST_ASSUM(UNDISCH_TAC o check is_neg o concl) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9672-   [ASM_SIMP_TAC[COMPACT_SEQUENCE_WITH_LIMIT; LIM_SUBSEQUENCE] THEN
hol-light-20190729/Multivariate/paths.ml:9673:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9674-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9700-  ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:9701:   [CONJ_TAC THENL [REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-9702-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/paths.ml-9703-        COMPACT_SEQUENCE_WITH_LIMIT_GEN)) THEN
hol-light-20190729/Multivariate/paths.ml:9704:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9705-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9711-  ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:9712:   [REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-9713-  DISCH_THEN(MP_TAC o MATCH_MP COMPACT_IMP_CLOSED) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9752-  STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:9753:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9754-    ASM_REWRITE_TAC[CLOSED_IN_EMPTY];
##############################################
hol-light-20190729/Multivariate/paths.ml-9794-    REWRITE_TAC[GSYM IN_BALL] THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/paths.ml:9795:    EXISTS_TAC `(p:num->real^M) m` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9796-    PURE_REWRITE_TAC[SKOLEM_THM; LEFT_IMP_EXISTS_THM; FORALL_AND_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9803-    SUBGOAL_THEN `connected (IMAGE (f:real^M->real^N) (c(n:num)))`
hol-light-20190729/Multivariate/paths.ml:9804:    MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-9805-    DISCH_THEN(MP_TAC o SPEC `b:real^N` o
hol-light-20190729/Multivariate/paths.ml-9806-     MATCH_MP (ONCE_REWRITE_RULE[IMP_CONJ] CONNECTED_IMP_PERFECT)) THEN
hol-light-20190729/Multivariate/paths.ml:9807:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[limit_point_of]] THEN
hol-light-20190729/Multivariate/paths.ml-9808-    DISCH_THEN(MP_TAC o SPEC `ball(b:real^N,inv(&n + &1))`) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9812-    REWRITE_TAC[EXISTS_IN_IMAGE] THEN
hol-light-20190729/Multivariate/paths.ml:9813:    MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9814-    PURE_REWRITE_TAC[SKOLEM_THM; LEFT_IMP_EXISTS_THM; FORALL_AND_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9820-   [FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:9821:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-9822-    MATCH_MP_TAC COMPACT_SEQUENCE_WITH_LIMIT THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9828-    SUBGOAL_THEN `ball(a:real^M,inv(&m + &1)) SUBSET ball(a,inv(&n + &1))`
hol-light-20190729/Multivariate/paths.ml:9829:      (fun th -> ASM SET_TAC[th]) THEN
hol-light-20190729/Multivariate/paths.ml-9830-    MATCH_MP_TAC SUBSET_BALL THEN MATCH_MP_TAC REAL_LE_INV2 THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9834-   REWRITE_TAC[CLOSED_LIMPT] THEN DISCH_THEN(MP_TAC o SPEC `b:real^N`) THEN
hol-light-20190729/Multivariate/paths.ml:9835:   REWRITE_TAC[NOT_IMP] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-9836-   REWRITE_TAC[LIMPT_APPROACHABLE; EXISTS_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9838-   CONJ_TAC THENL [MESON_TAC[REAL_LT_TRANS]; ONCE_REWRITE_TAC[DIST_SYM]] THEN
hol-light-20190729/Multivariate/paths.ml:9839:   REWRITE_TAC[GSYM IN_BALL] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-9840-
##############################################
hol-light-20190729/Multivariate/paths.ml-9898-      SUBGOAL_THEN `(f:real^N->real^1) x IN ball(f x,e)` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:9899:       [ASM_REWRITE_TAC[CENTRE_IN_BALL]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-9900-      REWRITE_TAC[IN_BALL; FORALL_IN_IMAGE; SUBSET] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9911-  REWRITE_TAC[CLOSED_IN_LIMPT] THEN
hol-light-20190729/Multivariate/paths.ml:9912:  CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `a:real^M`] THEN
hol-light-20190729/Multivariate/paths.ml-9913-  FIRST_X_ASSUM(MP_TAC o SPEC `b:real^N`) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-9917-   [FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:9918:    ASM_SIMP_TAC[CONNECTED_INSERT_LIMPT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9919-    REWRITE_TAC[CONNECTED_CLOSED_IN; NOT_EXISTS_THM] THEN
hol-light-20190729/Multivariate/paths.ml-9920-    DISCH_THEN(MP_TAC o SPECL [`{b:real^N}`; `{(f:real^M->real^N) a}`]) THEN
hol-light-20190729/Multivariate/paths.ml:9921:    REWRITE_TAC[CLOSED_IN_SING] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-9922-
##############################################
hol-light-20190729/Multivariate/paths.ml-9988-    X_GEN_TAC `n:num` THEN GEN_REWRITE_TAC I [GSYM CONTRAPOS_THM] THEN
hol-light-20190729/Multivariate/paths.ml:9989:    REWRITE_TAC[ARITH_RULE `~(SUC m <= n) <=> n <= m`] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-9990-    MATCH_MP_TAC(TAUT `F ==> p`)] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10001-    ASM_SIMP_TAC[OPEN_IN_OPEN_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:10002:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10003-    MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/paths.ml-10004-    X_GEN_TAC `u:real^N->bool` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:10005:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10006-    RULE_ASSUM_TAC(REWRITE_RULE[GSYM INFINITE]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10008-        INFINITE_SUPERSET)) THEN
hol-light-20190729/Multivariate/paths.ml:10009:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10010-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10024-  REWRITE_TAC[NOT_IMP] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:10025:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10026-    MATCH_MP_TAC CONNECTED_INSERT_LIMPT THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-10035-      ASM_SIMP_TAC[LIM_SUBSEQUENCE] THEN
hol-light-20190729/Multivariate/paths.ml:10036:      REWRITE_TAC[o_DEF; IN_ELIM_THM] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-10037-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10042-        IN_COMPONENTS_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:10043:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10044-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10049-    REWRITE_TAC[closure; IN_UNION; DE_MORGAN_THM; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/paths.ml:10050:    CONJ_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10051-    MP_TAC(ISPECL [`t:real^N->bool`; `c:real^N->bool`; `(f:real^M->real^N) p`]
hol-light-20190729/Multivariate/paths.ml-10052-        LIMIT_POINT_OF_LOCAL) THEN
hol-light-20190729/Multivariate/paths.ml:10053:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-10054-
##############################################
hol-light-20190729/Multivariate/paths.ml-10187-    ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:10188:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10189-    X_GEN_TAC `y:real^1` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10210-  REWRITE_TAC[CLOSED_IN_LIMPT] THEN
hol-light-20190729/Multivariate/paths.ml:10211:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10212-  X_GEN_TAC `y:real^N` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10219-  DISCH_THEN(MP_TAC o SPEC `{x | x IN s /\ (f:real^M->real^N) x = y}`) THEN
hol-light-20190729/Multivariate/paths.ml:10220:  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10221-  REWRITE_TAC[LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10233-     [MATCH_MP_TAC CLOSED_SUBSET THEN REWRITE_TAC[CLOSED_CLOSURE] THEN
hol-light-20190729/Multivariate/paths.ml:10234:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10235-      MATCH_MP_TAC OPEN_IN_SUBSET_TRANS THEN
hol-light-20190729/Multivariate/paths.ml:10236:      EXISTS_TAC `s DIFF k:real^M->bool` THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-10237-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10241-  ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:10242:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-10243-    MATCH_MP_TAC OPEN_IN_DIFF THEN REWRITE_TAC[OPEN_IN_REFL] THEN
hol-light-20190729/Multivariate/paths.ml-10244-    MATCH_MP_TAC CLOSED_SUBSET THEN
hol-light-20190729/Multivariate/paths.ml:10245:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10246-    MATCH_MP_TAC COMPACT_IMP_CLOSED THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10249-     (REWRITE_RULE[IMP_CONJ] CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:10250:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10251-    DISCH_THEN(X_CHOOSE_THEN `r:real^N->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10254-        LIMIT_POINT_OF_LOCAL) THEN
hol-light-20190729/Multivariate/paths.ml:10255:    ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10256-    DISCH_THEN(MP_TAC o SPEC `r:real^N->bool`) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10267-    EXISTS_TAC `s:real^M->bool` THEN
hol-light-20190729/Multivariate/paths.ml:10268:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-10269-    MATCH_MP_TAC OPEN_IN_INTER THEN REWRITE_TAC[OPEN_IN_REFL] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10273-    SIMP_TAC[OPEN_IN_DIFF_CLOSED; CLOSED_CLOSURE];
hol-light-20190729/Multivariate/paths.ml:10274:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:10275:    MP_TAC(ISPEC `u:real^M->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:10276:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:10277:    ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/paths.ml-10278-
##############################################
hol-light-20190729/Multivariate/paths.ml-10330-   [ASM_MESON_TAC[CONNECTED_COMPONENT_SUBSET]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:10331:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml-10332-   [ASM_REWRITE_TAC[];
##############################################
hol-light-20190729/Multivariate/paths.ml-10359-    ONCE_REWRITE_TAC[SUBSET] THEN REWRITE_TAC[IN_ELIM_THM];
hol-light-20190729/Multivariate/paths.ml:10360:    ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-10361-  X_GEN_TAC `f:(real^N->bool)->bool` THEN REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10375-      EXISTS_TAC `INTERS f :real^N->bool` THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:10376:       [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10377-        FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-10407-    MATCH_MP_TAC(SET_RULE `t = {} ==> s UNION (u INTER t) = s`) THEN
hol-light-20190729/Multivariate/paths.ml:10408:    ASM_SIMP_TAC[OPEN_INTER_CLOSURE_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10409-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10417-  ASM_SIMP_TAC[CLOSED_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:10418:  REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml-10419-   [STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml-10420-    SUBGOAL_THEN `c SUBSET (c0 INTER v2 :real^N->bool)` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:10421:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10422-    SUBGOAL_THEN `k SUBSET (c0 INTER v2 :real^N->bool)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:10423:     [ALL_TAC; ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-10424-    STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml-10425-    SUBGOAL_THEN `c SUBSET (c0 INTER v1 :real^N->bool)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:10426:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10427-    SUBGOAL_THEN `k SUBSET (c0 INTER v1 :real^N->bool)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:10428:     [ALL_TAC; ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/paths.ml-10429-  (UNDISCH_THEN `k1 UNION k2 :real^N->bool = k` (K ALL_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10432-   REWRITE_TAC[IN_ELIM_THM] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:10433:    [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10434-     MATCH_MP_TAC OPEN_IN_INTER_OPEN THEN ASM_REWRITE_TAC[];
##############################################
hol-light-20190729/Multivariate/paths.ml-10454-   [MATCH_MP_TAC COMPONENTS_INTERMEDIATE_SUBSET THEN
hol-light-20190729/Multivariate/paths.ml:10455:    EXISTS_TAC `s:real^N->bool` THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10456-    DISCH_THEN(ASSUME_TAC o SYM)] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10466-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP IN_COMPONENTS_NONEMPTY) THEN
hol-light-20190729/Multivariate/paths.ml:10467:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10468-  GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV) [SUBSET] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10478-    SUBGOAL_THEN `k:real^N->bool = s` SUBST_ALL_TAC THENL
hol-light-20190729/Multivariate/paths.ml:10479:     [ASM SET_TAC[]; REWRITE_TAC[SUBSET_UNIV]] THEN
hol-light-20190729/Multivariate/paths.ml-10480-    EXISTS_TAC `s:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10483-    ASM_SIMP_TAC[COMPACT_INTERS] THEN
hol-light-20190729/Multivariate/paths.ml:10484:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-10485-    MATCH_MP_TAC OPEN_IN_TRANS THEN EXISTS_TAC `v:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10490-      EXPAND_TAC "v" THEN REWRITE_TAC[SUBSET_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:10491:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-10492-      MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-10507-        SURA_BURA_CLOPEN_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:10508:  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10509-  MATCH_MP_TAC MONO_EXISTS THEN REPEAT STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml-10510-  REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:10511:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-10512-
##############################################
hol-light-20190729/Multivariate/paths.ml-10523-  ASM_SIMP_TAC[COMPACT_IMP_CLOSED; CLOSED_SING] THEN
hol-light-20190729/Multivariate/paths.ml:10524:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-10525-  MAP_EVERY X_GEN_TAC [`u:real^N->bool`; `v:real^N->bool`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10529-  ASM_REWRITE_TAC[IN_INTERS; NOT_FORALL_THM; IN_ELIM_THM; NOT_IMP] THEN
hol-light-20190729/Multivariate/paths.ml:10530:  MATCH_MP_TAC MONO_EXISTS THEN REPEAT STRIP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-10531-
##############################################
hol-light-20190729/Multivariate/paths.ml-10608-      ASM_REWRITE_TAC[GSYM IS_INTERVAL_CONNECTED_1] THEN
hol-light-20190729/Multivariate/paths.ml:10609:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10610-      DISCH_THEN(X_CHOOSE_THEN `c:real^1->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10624-        REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
hol-light-20190729/Multivariate/paths.ml:10625:        FIRST_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-10626-      ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10627-    SUBGOAL_THEN `drop a <= drop b` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:10628:     [REWRITE_TAC[GSYM INTERVAL_NE_EMPTY_1] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10629-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10639-        EXPAND_TAC "t" THEN REWRITE_TAC[IN_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:10640:        ASM_REWRITE_TAC[ENDS_IN_INTERVAL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10641-        REWRITE_TAC[LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10652-          REWRITE_TAC[IN_INTER; ENDS_IN_INTERVAL] THEN
hol-light-20190729/Multivariate/paths.ml:10653:          ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10654-          REWRITE_TAC[INTERVAL_NE_EMPTY_1; DROP_SUB; LIFT_DROP] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10656-          ASM_MESON_TAC[CLOSED_IN_IMP_SUBSET; UNION_SUBSET];
hol-light-20190729/Multivariate/paths.ml:10657:          ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10658-          EXPAND_TAC "t" THEN REWRITE_TAC[UNION_SUBSET; SUBSET_INTER] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10701-          REWRITE_TAC[IN_INTER; ENDS_IN_INTERVAL] THEN
hol-light-20190729/Multivariate/paths.ml:10702:          ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10703-          REWRITE_TAC[INTERVAL_NE_EMPTY_1; DROP_ADD; LIFT_DROP] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10705-          ASM_MESON_TAC[CLOSED_IN_IMP_SUBSET; UNION_SUBSET];
hol-light-20190729/Multivariate/paths.ml:10706:          ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10707-          EXPAND_TAC "t" THEN REWRITE_TAC[UNION_SUBSET; SUBSET_INTER] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10730-      MP_TAC(ISPECL [`a':real^1`; `b':real^1`] CLOSED_OPEN_INTERVAL_1) THEN
hol-light-20190729/Multivariate/paths.ml:10731:      ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-10732-      SUBGOAL_THEN `~(interval[a:real^1,b] = {})` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:10733:       [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10734-        REWRITE_TAC[INTERVAL_EQ_EMPTY_1] THEN ASM_REAL_ARITH_TAC];
##############################################
hol-light-20190729/Multivariate/paths.ml-10758-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:10759:        RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10760-        DISCH_THEN(X_CHOOSE_TAC `r:real^1->bool`) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10784-            HOMEOMORPHISM_OF_SUBSETS))] THEN
hol-light-20190729/Multivariate/paths.ml:10785:        RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-10786-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [homeomorphic]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10807-        REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:10808:        RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10809-        REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:10810:        RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-10811-      MAP_EVERY EXISTS_TAC
##############################################
hol-light-20190729/Multivariate/paths.ml-10815-        HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:10816:      RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/paths.ml-10817-    FIRST_X_ASSUM(DISJ_CASES_THEN STRIP_ASSUME_TAC) THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-10823-        SURA_BURA_CLOPEN_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:10824:      ASM_REWRITE_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-10825-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `k:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10827-      FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:10828:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-10829-      MATCH_MP_TAC CLOSED_SUBSET THEN ASM_SIMP_TAC[COMPACT_IMP_CLOSED]]]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-10865-      REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:10866:       [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10867-        MATCH_MP_TAC OPEN_IN_DIFF THEN REWRITE_TAC[OPEN_IN_REFL] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10878-                        SUBSET]];
hol-light-20190729/Multivariate/paths.ml:10879:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-10880-      GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10887-       [MATCH_MP_TAC CLOSED_IN_DIFF THEN ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:10888:        MATCH_MP_TAC OPEN_IN_UNIONS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10889-        MATCH_MP_TAC OPEN_IN_DIFF THEN ASM_SIMP_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-10891-        ASM_SIMP_TAC[FINITE_DELETE; FINITE_IMAGE; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/paths.ml:10892:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10893-        MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-10914-      ASM_SIMP_TAC[FINITE_DELETE; FINITE_IMAGE; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/paths.ml:10915:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10916-      MATCH_MP_TAC CLOSED_IN_DIFF THEN REWRITE_TAC[CLOSED_IN_REFL] THEN
hol-light-20190729/Multivariate/paths.ml:10917:      MATCH_MP_TAC OPEN_IN_UNIONS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10918-      MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-10936-                       (~(c' = c) /\ DISJOINT c' c) <=> DISJOINT c c')`] THEN
hol-light-20190729/Multivariate/paths.ml:10937:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-10938-    FIRST_ASSUM(SUBST1_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-11132-    REWRITE_TAC[pairwise] THEN DISCH_THEN MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:11133:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN ASM_MESON_TAC[];
hol-light-20190729/Multivariate/paths.ml-11134-    REWRITE_TAC[closed_in; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY; SUBSET_DIFF] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-11191-    ASM_SIMP_TAC[SET_RULE `c SUBSET u ==> u INTER c = c`] THEN
hol-light-20190729/Multivariate/paths.ml:11192:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11193-    W(MP_TAC o PART_MATCH (rand o lhand) CLOSURE_OF_SUBSET_EQ o
##############################################
hol-light-20190729/Multivariate/paths.ml-11204-    ASM_SIMP_TAC[OPEN_IN_DIFF; OPEN_IN_REFL] THEN
hol-light-20190729/Multivariate/paths.ml:11205:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11206-    REWRITE_TAC[EMPTY_UNIONS] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-11239-  MATCH_MP_TAC(SET_RULE `s SUBSET t ==> x IN s ==> x IN t`) THEN
hol-light-20190729/Multivariate/paths.ml:11240:  MATCH_MP_TAC SUBSET_UNIONS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-11241-
##############################################
hol-light-20190729/Multivariate/paths.ml-11267-  MATCH_MP_TAC(SET_RULE `s SUBSET t ==> x IN s ==> x IN t`) THEN
hol-light-20190729/Multivariate/paths.ml:11268:  MATCH_MP_TAC SUBSET_UNIONS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-11269-
##############################################
hol-light-20190729/Multivariate/paths.ml-11326-   [MATCH_MP_TAC FRONTIER_OF_COMPONENTS_CLOSED_COMPLEMENT THEN
hol-light-20190729/Multivariate/paths.ml:11327:    ASM_REWRITE_TAC[IN_COMPONENTS; IN_UNIV; IN_DIFF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11328-    DISCH_TAC THEN  FIRST_X_ASSUM(MP_TAC o SPEC
##############################################
hol-light-20190729/Multivariate/paths.ml-11371-    MATCH_MP_TAC BOUNDED_SUBSET THEN EXISTS_TAC `s:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:11372:    ASM_SIMP_TAC[COMPACT_IMP_BOUNDED] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11373-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-11405-    FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:11406:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11407-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-11426-        OPEN_IN_SUBSET_TRANS)) THEN
hol-light-20190729/Multivariate/paths.ml:11427:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-11428-  MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-11447-  ASM_SIMP_TAC[SET_RULE `t PSUBSET s ==> s DIFF (s DIFF t) = t`] THEN
hol-light-20190729/Multivariate/paths.ml:11448:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-11449-
##############################################
hol-light-20190729/Multivariate/paths.ml-11495-    CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:11496:     [REWRITE_TAC[GSYM UNIONS_COMPONENTS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11497-      SUBGOAL_THEN `~(components(u DIFF s:real^N->bool) = {})` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:11498:       [REWRITE_TAC[COMPONENTS_EQ_EMPTY] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-11499-      ONCE_REWRITE_TAC[EXTENSION] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-11505-      ASM_MESON_TAC[IN_COMPONENTS_CONNECTED; INTER_COMM];
hol-light-20190729/Multivariate/paths.ml:11506:      REWRITE_TAC[INTERS_GSPEC] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/paths.ml-11507-
##############################################
hol-light-20190729/Multivariate/paths.ml-11540-        FIRST_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:11541:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11542-        ASM_MESON_TAC[IN_COMPONENTS_NONEMPTY];
##############################################
hol-light-20190729/Multivariate/paths.ml-11554-     [MP_TAC(ISPEC `s DELETE (a:real^N)` UNIONS_COMPONENTS) THEN
hol-light-20190729/Multivariate/paths.ml:11555:      REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11556-      REWRITE_TAC[GSYM UNIONS_INSERT]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-11563-      REWRITE_TAC[INTERS_INSERT; IN_INTER; IN_SING] THEN
hol-light-20190729/Multivariate/paths.ml:11564:      REWRITE_TAC[INTERS_GSPEC; IN_ELIM_THM] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/paths.ml-11565-
##############################################
hol-light-20190729/Multivariate/paths.ml-11584-      FIRST_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_COMPONENT) THEN
hol-light-20190729/Multivariate/paths.ml:11585:      ASM_REWRITE_TAC[CLOSED_IN_INTER_CLOSURE] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-11586-    MP_TAC(ISPECL [`(a:real^N) INSERT s`; `a:real^N`]
##############################################
hol-light-20190729/Multivariate/paths.ml-11621-    ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:11622:    ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:11623:    REWRITE_TAC[IN_SING] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11624-    STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-11628-   [ASM_REWRITE_TAC[PSUBSET] THEN MATCH_MP_TAC CLOSURE_MINIMAL THEN
hol-light-20190729/Multivariate/paths.ml:11629:    ASM_SIMP_TAC[COMPACT_IMP_CLOSED] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11630-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-11686-  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:11687:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-11688-    MATCH_MP_TAC OPEN_IN_DIFF THEN REWRITE_TAC[OPEN_IN_REFL] THEN
hol-light-20190729/Multivariate/paths.ml-11689-    MATCH_MP_TAC CLOSED_SUBSET THEN ASM_SIMP_TAC[COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/paths.ml:11690:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11691-    ASM_SIMP_TAC[SET_RULE `t SUBSET u ==> u DIFF (u DIFF t) = t`]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-11693-  SUBGOAL_THEN `c UNION s:real^N->bool = closure c UNION s` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:11694:   [MP_TAC(ISPEC `c:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11695-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-11699-    EXISTS_TAC `u:real^N->bool` THEN ASM_SIMP_TAC[COMPACT_IMP_BOUNDED] THEN
hol-light-20190729/Multivariate/paths.ml:11700:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11701-    MATCH_MP_TAC CONNECTED_UNION THEN
hol-light-20190729/Multivariate/paths.ml-11702-    FIRST_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_CONNECTED) THEN
hol-light-20190729/Multivariate/paths.ml:11703:    ASM_SIMP_TAC[CONNECTED_CLOSURE] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-11704-
##############################################
hol-light-20190729/Multivariate/paths.ml-11823-  SUBGOAL_THEN `?a:real^N. a IN k1` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:11824:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-11825-  FIRST_X_ASSUM(MP_TAC o SPEC `setdist(k1:real^N->bool,k2)`) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-11828-  DISCH_THEN(MP_TAC o SPEC `k1:real^N->bool`) THEN
hol-light-20190729/Multivariate/paths.ml:11829:  ASM_REWRITE_TAC[NOT_IMP] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-11830-  ONCE_REWRITE_TAC[TAUT `p /\ q /\ r ==> s <=> p /\ q /\ ~s ==> ~r`] THEN
hol-light-20190729/Multivariate/paths.ml-11831-  REWRITE_TAC[REAL_NOT_LT; GSYM IN_DIFF] THEN
hol-light-20190729/Multivariate/paths.ml:11832:  REPEAT STRIP_TAC THEN MATCH_MP_TAC SETDIST_LE_DIST THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-11833-
##############################################
hol-light-20190729/Multivariate/paths.ml-11851-  ABBREV_TAC `k:real^N->bool = INTERS {s m | m IN (:num)}` THEN
hol-light-20190729/Multivariate/paths.ml:11852:  ASM_CASES_TAC `k:real^N->bool = {}` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-11853-  SUBGOAL_THEN `compact(k:real^N->bool)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:11854:   [EXPAND_TAC "k" THEN MATCH_MP_TAC COMPACT_INTERS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-11855-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-11865-    GEN_REWRITE_RULE BINDER_CONV [GSYM WELLCHAINED_SETS]) THEN
hol-light-20190729/Multivariate/paths.ml:11866:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-11867-  ONCE_REWRITE_TAC[SWAP_EXISTS_THM] THEN MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-11922-     (ISPECL [`s:real^N->bool`; `a:real^N`] CONNECTED_COMPONENT_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:11923:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-11924-
##############################################
hol-light-20190729/Multivariate/paths.ml-12093-    SUBGOAL_THEN `(a:real^N) IN s /\ b IN s` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:12094:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-12095-    FIRST_X_ASSUM(MP_TAC o SPEC `connected_component s (a:real^N)`) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12152-   [REWRITE_TAC[SUBSET; IN_ELIM_THM] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:12153:     [ALL_TAC; RULE_ASSUM_TAC(REWRITE_RULE[SUBSET]) THEN ASM MESON_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-12154-    X_GEN_TAC `x:real^N` THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:12155:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-12156-    MAP_EVERY EXISTS_TAC [`(\i. x):num->real^N`; `0`] THEN
hol-light-20190729/Multivariate/paths.ml:12157:    ASM_REWRITE_TAC[LT; LE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12158-    TRANS_TAC REAL_LTE_TRANS `e:real` THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12191-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:12192:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-12193-
##############################################
hol-light-20190729/Multivariate/paths.ml-12290-  SUBGOAL_THEN `(a:real^N) IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:12291:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-12292-  SUBGOAL_THEN `?b:real^N. b IN s /\ ~(b = a)` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:12293:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-12294-  FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [locally]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12302-    TRANS_TAC SUBSET_TRANS `k:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:12303:    REWRITE_TAC[CONNECTED_COMPONENT_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12304-    TRANS_TAC SUBSET_TRANS `k:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:12305:    REWRITE_TAC[CONNECTED_COMPONENT_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12306-    MATCH_MP_TAC COMPACT_CONNECTED_COMPONENT THEN ASM_REWRITE_TAC[]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12308-  REWRITE_TAC[IN] THEN ASM_REWRITE_TAC[CONNECTED_COMPONENT_REFL_EQ] THEN
hol-light-20190729/Multivariate/paths.ml:12309:  CONJ_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-12310-  MP_TAC(ISPECL [`k:real^N->bool`; `{a:real^N}`; `v:real^N->bool`]
##############################################
hol-light-20190729/Multivariate/paths.ml-12316-    REWRITE_TAC[components; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/paths.ml:12317:    EXISTS_TAC `a:real^N` THEN REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12318-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (ONCE_REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/paths.ml-12319-        OPEN_IN_SUBSET_TRANS)) THEN
hol-light-20190729/Multivariate/paths.ml:12320:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12321-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12327-    ASM_REWRITE_TAC[] THEN FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
hol-light-20190729/Multivariate/paths.ml:12328:      (ONCE_REWRITE_RULE[IMP_CONJ] OPEN_IN_SUBSET_TRANS)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12329-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12332-    ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:12333:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-12334-
##############################################
hol-light-20190729/Multivariate/paths.ml-12359-    MATCH_MP_TAC MONO_FORALL THEN X_GEN_TAC `d:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:12360:    DISCH_THEN(fun th -> DISCH_TAC THEN MP_TAC th) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12361-    REWRITE_TAC[NOT_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12368-     [MATCH_MP_TAC CLOSED_SUBSET THEN
hol-light-20190729/Multivariate/paths.ml:12369:      ASM_SIMP_TAC[COMPACT_IMP_CLOSED] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12370-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12379-        (ISPEC `s DIFF closure u:real^N->bool` CLOSURE_UNION_FRONTIER) THEN
hol-light-20190729/Multivariate/paths.ml:12380:       ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:12381:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:12382:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12383-      FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_NONEMPTY) THEN
hol-light-20190729/Multivariate/paths.ml:12384:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12385-      SUBGOAL_THEN `frontier u:real^N->bool = closure u DIFF u`
hol-light-20190729/Multivariate/paths.ml-12386-      SUBST_ALL_TAC THENL
hol-light-20190729/Multivariate/paths.ml:12387:       [ASM_SIMP_TAC[frontier; INTERIOR_OPEN]; ALL_TAC] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/paths.ml-12388-
##############################################
hol-light-20190729/Multivariate/paths.ml-12423-   [TRANS_TAC SUBSET_TRANS `(:real^N) DIFF k` THEN
hol-light-20190729/Multivariate/paths.ml:12424:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-12425-    MATCH_MP_TAC CLOSURE_MINIMAL THEN ASM_REWRITE_TAC[GSYM OPEN_CLOSED] THEN
hol-light-20190729/Multivariate/paths.ml:12426:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12427-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12433-    FIRST_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:12434:    REWRITE_TAC[closure] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12435-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12440-  ASM_REWRITE_TAC[NOT_IMP; GSYM CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/paths.ml:12441:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml-12442-   [SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12444-     (fun th -> ASM_SIMP_TAC[COMPACT_INTER_CLOSED; th; CLOSED_CLOSURE]) THEN
hol-light-20190729/Multivariate/paths.ml:12445:    MP_TAC(ISPEC `u:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12446-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12453-     [TRANS_TAC SUBSET_TRANS `s INTER closure h:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:12454:      ASM_SIMP_TAC[IN_COMPONENTS_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12455-      REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_NONEMPTY)) THEN
hol-light-20190729/Multivariate/paths.ml:12456:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml:12457:    ASM_SIMP_TAC[frontier; INTERIOR_OPEN] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-12458-
##############################################
hol-light-20190729/Multivariate/paths.ml-12538-      ASM_SIMP_TAC[UNIFORMLY_CONTINUOUS_IMP_CONTINUOUS] THEN
hol-light-20190729/Multivariate/paths.ml:12539:      ASM_SIMP_TAC[COMPACT_IMP_CLOSED] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12540-      CONJ_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-12767-      ASM_REWRITE_TAC[UNION_SUBSET; IN_UNION] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:12768:       [MATCH_MP_TAC CONNECTED_UNION THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-12769-      CONJ_TAC THEN FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
##############################################
hol-light-20190729/Multivariate/paths.ml-12776-      ONCE_REWRITE_TAC[DIST_SYM] THEN REWRITE_TAC[GSYM IN_BALL] THEN
hol-light-20190729/Multivariate/paths.ml:12777:      REWRITE_TAC[GSYM real_div] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-12778-    SUBGOAL_THEN `!m n. m <= n ==> (r:num->num) m <= r n` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-12958-      REWRITE_TAC[COND_ID; CONNECTED_SING; IN_SING; SING_SUBSET] THEN
hol-light-20190729/Multivariate/paths.ml:12959:      REWRITE_TAC[CENTRE_IN_BALL; REAL_LT_01] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-12960-      RULE_ASSUM_TAC(REWRITE_RULE[NOT_LE])] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13008-      REWRITE_TAC[CENTRE_IN_BALL; REAL_LT_INV_EQ; REAL_LT_POW2] THEN
hol-light-20190729/Multivariate/paths.ml:13009:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-13010-      RULE_ASSUM_TAC(REWRITE_RULE[NOT_LE])] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13015-      MP_TAC(SPEC `i:num` th) THEN MP_TAC(SPEC `SUC i` th))) THEN
hol-light-20190729/Multivariate/paths.ml:13016:    ASM_SIMP_TAC[LE_SUC_LT; LT_IMP_LE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-13017-    GEN_REWRITE_TAC (LAND_CONV o TOP_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13195-   [EXPAND_TAC "r" THEN REWRITE_TAC[IN] THEN
hol-light-20190729/Multivariate/paths.ml:13196:    REWRITE_TAC[CONNECTED_COMPONENT_REFL_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-13197-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13256-       REWRITE_TAC[CLOSURE_SUBSET] THEN
hol-light-20190729/Multivariate/paths.ml:13257:       ASM_REWRITE_TAC[CLOSURE_UNION_FRONTIER; IN_UNION] THEN ASM SET_TAC[]);
hol-light-20190729/Multivariate/paths.ml-13258-      MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-13265-        SUBGOAL_THEN `frontier(r:real^N->bool) INTER r = {}`
hol-light-20190729/Multivariate/paths.ml:13266:         (fun th -> ASM SET_TAC[th]) THEN
hol-light-20190729/Multivariate/paths.ml-13267-        REWRITE_TAC[FRONTIER_DISJOINT_EQ] THEN EXPAND_TAC "r"] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13375-  SUBGOAL_THEN `(z:real^N) IN frontier s` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:13376:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-13377-    DISCH_THEN(fun th -> ASSUME_TAC th THEN MP_TAC th) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13425-    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:13426:     [ALL_TAC; RULE_ASSUM_TAC(SIMP_RULE[path_image]) THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-13427-    MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-13462-      RULE_ASSUM_TAC(REWRITE_RULE[IN_INTERVAL_1]) THEN
hol-light-20190729/Multivariate/paths.ml:13463:      ASM SET_TAC[pathstart];
hol-light-20190729/Multivariate/paths.ml-13464-      REWRITE_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-13512-  RULE_ASSUM_TAC(REWRITE_RULE[path_image; pathstart; pathfinish]) THEN
hol-light-20190729/Multivariate/paths.ml:13513:  REWRITE_TAC[path_image] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-13514-
##############################################
hol-light-20190729/Multivariate/paths.ml-13558-  ASM_SIMP_TAC[OPEN_IN_DELETE; IN_DELETE; LEFT_IMP_EXISTS_THM] THEN
hol-light-20190729/Multivariate/paths.ml:13559:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-13560-  X_GEN_TAC `h:real^1->real^N` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13579-  RULE_ASSUM_TAC(REWRITE_RULE[pathstart; pathfinish; path_image]) THEN
hol-light-20190729/Multivariate/paths.ml:13580:  REWRITE_TAC[path_image] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-13581-
##############################################
hol-light-20190729/Multivariate/paths.ml-13594-    REWRITE_TAC[PATHSTART_LINEPATH; PATHFINISH_LINEPATH; PATH_LINEPATH] THEN
hol-light-20190729/Multivariate/paths.ml:13595:    ASM_REWRITE_TAC[PATH_IMAGE_LINEPATH; SEGMENT_REFL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-13596-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13614-   [REWRITE_TAC[SEGMENT_CONVEX_HULL] THEN MATCH_MP_TAC HULL_MINIMAL THEN
hol-light-20190729/Multivariate/paths.ml:13615:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-13616-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13631-    REWRITE_TAC[SPAN_SING; SUBSET; IN_ELIM_THM; IN_UNIV] THEN
hol-light-20190729/Multivariate/paths.ml:13632:    X_GEN_TAC `c:real^N` THEN DISCH_TAC THEN EXISTS_TAC `(c:real^N)$1` THEN
hol-light-20190729/Multivariate/paths.ml-13633-    SIMP_TAC[CART_EQ; VECTOR_MUL_COMPONENT; BASIS_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13641-   [REWRITE_TAC[SEGMENT_CONVEX_HULL] THEN MATCH_MP_TAC HULL_MINIMAL THEN
hol-light-20190729/Multivariate/paths.ml:13642:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-13643-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13657-    REWRITE_TAC[SEGMENT_CONVEX_HULL] THEN
hol-light-20190729/Multivariate/paths.ml:13658:    CONJ_TAC THEN MATCH_MP_TAC HULL_MINIMAL THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-13659-  MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-13694-  REWRITE_TAC[NOT_IMP; SEGMENT_SYM] THEN
hol-light-20190729/Multivariate/paths.ml:13695:  CONJ_TAC THENL [DISJ2_TAC; REWRITE_TAC[SEGMENT_SYM] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-13696-  ONCE_REWRITE_TAC[SET_RULE `{x1,b,x2} = {x1,x2,b}`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13702-    MATCH_MP_TAC SUBSET_TRANS THEN EXISTS_TAC `segment[c:real^N,vec 0]` THEN
hol-light-20190729/Multivariate/paths.ml:13703:    CONJ_TAC THENL [ASM SET_TAC[]; ONCE_REWRITE_TAC[SEGMENT_SYM]] THEN
hol-light-20190729/Multivariate/paths.ml-13704-    REWRITE_TAC[SEGMENT_CONVEX_HULL; CONVEX_HULL_SUBSET_AFFINE_HULL];
##############################################
hol-light-20190729/Multivariate/paths.ml-13709-    CONV_TAC(RAND_CONV SYM_CONV) THEN
hol-light-20190729/Multivariate/paths.ml:13710:    DISCH_THEN(MP_TAC o AP_TERM `\x:real^N. x$k`) THEN
hol-light-20190729/Multivariate/paths.ml-13711-    ASM_SIMP_TAC[VECTOR_MUL_COMPONENT; REAL_ENTIRE]]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-13771-    ASM_REWRITE_TAC[CLOSURE_NONEMPTY_OPEN_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:13772:    DISCH_THEN(MP_TAC o SPEC `u:real^N->bool`) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-13773-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-13926-     `~(&0 < r) ==> r = &0 \/ r < &0`)) THEN
hol-light-20190729/Multivariate/paths.ml:13927:    ASM_SIMP_TAC[CBALL_EMPTY; CBALL_SING] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-13928-
##############################################
hol-light-20190729/Multivariate/paths.ml-14191-    DISCH_THEN(fun th ->
hol-light-20190729/Multivariate/paths.ml:14192:        MP_TAC(SPEC `(lambda i. (a:real^N)$1 + r):real^N` th) THEN
hol-light-20190729/Multivariate/paths.ml:14193:        MP_TAC(SPEC `(lambda i. (a:real^N)$1 - r):real^N` th)) THEN
hol-light-20190729/Multivariate/paths.ml-14194-    ASM_SIMP_TAC[LAMBDA_BETA; ARITH] THEN REAL_ARITH_TAC;
##############################################
hol-light-20190729/Multivariate/paths.ml-14212-    ASM_SIMP_TAC[CONNECTED_SPHERE; FRONTIER_CBALL; DE_MORGAN_THM] THEN
hol-light-20190729/Multivariate/paths.ml:14213:    DISCH_THEN DISJ_CASES_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-14214-    MP_TAC(ISPECL [`cball(b:real^N,s)`; `cball(a:real^N,r)`]
##############################################
hol-light-20190729/Multivariate/paths.ml-14217-    GEN_REWRITE_TAC LAND_CONV [GSYM CONTRAPOS_THM] THEN
hol-light-20190729/Multivariate/paths.ml:14218:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[DE_MORGAN_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-14219-    REWRITE_TAC[SET_RULE `s DIFF t = {} <=> s SUBSET t`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-14259-   `!r. (p ==> r) /\ (r ==> q) /\ (q ==> p) ==> (p <=> q)`) THEN
hol-light-20190729/Multivariate/paths.ml:14260:  EXISTS_TAC `x:real^N = x$1 % basis 1` THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml-14261-   [DISCH_TAC THEN REWRITE_TAC[CART_EQ] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-14269-     [`x:real^N`;
hol-light-20190729/Multivariate/paths.ml:14270:      `(lambda i. if i = k then --((x:real^N)$k) else x$i):real^N`]) THEN
hol-light-20190729/Multivariate/paths.ml-14271-    ANTS_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-14292-    REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:14293:    SUBGOAL_THEN `x:real^N = x$1 % basis 1 /\ y:real^N = y$1 % basis 1`
hol-light-20190729/Multivariate/paths.ml-14294-     (CONJUNCTS_THEN SUBST_ALL_TAC)
##############################################
hol-light-20190729/Multivariate/paths.ml-14549-   `s SUBSET t /\ s INTER u = {} ==> s SUBSET t DIFF u`) THEN
hol-light-20190729/Multivariate/paths.ml:14550:  (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml-14551-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-14567-    MP_TAC(ISPECL [`a:real^N`; `r:real`] CENTRE_IN_BALL) THEN
hol-light-20190729/Multivariate/paths.ml:14568:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-14569-    MATCH_MP_TAC CONNECTED_UNION THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-14584-  SUBGOAL_THEN `s = (a:real^N) INSERT (s DELETE a)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:14585:   [ASM SET_TAC[]; MATCH_MP_TAC CONNECTED_INSERT_LIMPT] THEN
hol-light-20190729/Multivariate/paths.ml-14586-  ASM_SIMP_TAC[LIMPT_DELETE; INTERIOR_LIMIT_POINT]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-14609-    MP_TAC(ISPECL [`a:real^N`; `r:real`] CENTRE_IN_BALL) THEN
hol-light-20190729/Multivariate/paths.ml:14610:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-14611-    MATCH_MP_TAC PATH_CONNECTED_UNION THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-14716-     [ASM_REWRITE_TAC[open_segment; IN_DIFF; IN_INSERT; NOT_IN_EMPTY] THEN
hol-light-20190729/Multivariate/paths.ml:14717:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-14718-      REWRITE_TAC[IN_SEGMENT]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-14859-     [TRANS_TAC SUBSET_TRANS `s:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:14860:      REWRITE_TAC[HULL_SUBSET; INTERS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-14861-      DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-14948-         INTERVAL_OPEN_SUBSET_CLOSED) THEN
hol-light-20190729/Multivariate/paths.ml:14949:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-14950-      REWRITE_TAC[GSYM IS_INTERVAL_CONNECTED_1; IS_INTERVAL_1] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15049-    EXISTS_TAC `(:real^N) DIFF ball (vec 0,B)` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:15050:    CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_DIFF; IN_UNIV]] THEN
hol-light-20190729/Multivariate/paths.ml-15051-    REWRITE_TAC[IN_BALL_0] THEN ASM_MESON_TAC[REAL_LT_IMP_LE];
##############################################
hol-light-20190729/Multivariate/paths.ml-15219-       [MP_TAC(ISPECL [`a:real^N`; `r:real`] CENTRE_IN_CBALL) THEN
hol-light-20190729/Multivariate/paths.ml:15220:        ASM_SIMP_TAC[REAL_LT_IMP_LE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15221-        MP_TAC(ISPECL [`a:real^N`; `r:real`] SPHERE_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/paths.ml:15222:        ASM SET_TAC[]]]) in
hol-light-20190729/Multivariate/paths.ml-15223-  let lemma3 = prove
##############################################
hol-light-20190729/Multivariate/paths.ml-15243-    STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:15244:     [REWRITE_TAC[GSYM CBALL_DIFF_SPHERE] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-15245-    RULE_ASSUM_TAC(REWRITE_RULE[SUBSET]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15250-        REPEAT(COND_CASES_TAC THEN ASM_SIMP_TAC[]) THEN
hol-light-20190729/Multivariate/paths.ml:15251:        ASM SET_TAC[]) THEN
hol-light-20190729/Multivariate/paths.ml-15252-    MATCH_MP_TAC CONTINUOUS_ON_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15257-       MP_TAC(ISPECL [`a:real^N`; `r:real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/paths.ml:15258:       ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/paths.ml-15259-    MATCH_MP_TAC CONTINUOUS_ON_CASES THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15263-    MP_TAC(ISPECL [`a:real^N`; `r:real`] CBALL_DIFF_BALL) THEN
hol-light-20190729/Multivariate/paths.ml:15264:    ASM SET_TAC[]) in
hol-light-20190729/Multivariate/paths.ml-15265-  REWRITE_TAC[TAUT `p /\ q /\ r /\ s /\ t ==> u <=>
##############################################
hol-light-20190729/Multivariate/paths.ml-15279-    ONCE_REWRITE_TAC[TAUT `~(p /\ q) <=> ~(q /\ p)`] THEN
hol-light-20190729/Multivariate/paths.ml:15280:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15281-    MAP_EVERY X_GEN_TAC [`b:real^N`; `c:real^N`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15293-     [ASM_MESON_TAC[HOMEOMORPHISM_COMPOSE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:15294:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-15295-    MATCH_MP_TAC BOUNDED_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15297-                {x:real^N | ~(f2 x = x /\ g2 x = x)}` THEN
hol-light-20190729/Multivariate/paths.ml:15298:    ASM_REWRITE_TAC[BOUNDED_UNION] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15299-    DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15310-    ASM_SIMP_TAC[CENTRE_IN_BALL; AFFINE_AFFINE_HULL; HULL_INC; IN_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:15311:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-15312-    REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15350-      MATCH_MP_TAC FINITE_IMP_CLOSED_IN THEN
hol-light-20190729/Multivariate/paths.ml:15351:      ASM_SIMP_TAC[FINITE_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15352-
##############################################
hol-light-20190729/Multivariate/paths.ml-15367-      REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:15368:      MATCH_MP_TAC HULL_INC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:15369:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15370-      MATCH_MP_TAC CONNECTED_OPEN_IN_DIFF_CARD_LT THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15376-    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN REWRITE_TAC[IN_DIFF] THEN
hol-light-20190729/Multivariate/paths.ml:15377:    (CONJ_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[IN_DIFF]]) THEN
hol-light-20190729/Multivariate/paths.ml-15378-    SIMP_TAC[SET_RULE `~(y IN IMAGE f s) <=> !x. x IN s ==> ~(f x = y)`] THEN
hol-light-20190729/Multivariate/paths.ml:15379:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15380-    REWRITE_TAC[LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15386-    ASM_SIMP_TAC[o_THM] THEN
hol-light-20190729/Multivariate/paths.ml:15387:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml-15388-    MATCH_MP_TAC BOUNDED_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15390-                {x:real^N | ~(h x = x /\ k x = x)}` THEN
hol-light-20190729/Multivariate/paths.ml:15391:    ASM_REWRITE_TAC[BOUNDED_UNION] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-15392-
##############################################
hol-light-20190729/Multivariate/paths.ml-15404-    REWRITE_TAC[HOMEOMORPHISM_I; NOT_IN_EMPTY; I_THM; EMPTY_GSPEC] THEN
hol-light-20190729/Multivariate/paths.ml:15405:    REWRITE_TAC[EMPTY_SUBSET; BOUNDED_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15406-    STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15410-  SUBGOAL_THEN `affine hull s = (:real^N)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:15411:   [MATCH_MP_TAC AFFINE_HULL_OPEN THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15412-    ASM_REWRITE_TAC[SUBTOPOLOGY_UNIV; GSYM OPEN_IN; AFF_DIM_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15608-      DISCH_THEN(MP_TAC o SPEC `b:real^1`) THEN
hol-light-20190729/Multivariate/paths.ml:15609:      ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-15610-      MAP_EVERY X_GEN_TAC [`u:real^1`; `v:real^1`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15649-           (ISPECL [`a:real^1`; `b:real^1`] INTERVAL_OPEN_SUBSET_CLOSED) THEN
hol-light-20190729/Multivariate/paths.ml:15650:          ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15651-          REWRITE_TAC[UNION_SUBSET]] THEN
hol-light-20190729/Multivariate/paths.ml:15652:        ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-15653-        MAP_EVERY X_GEN_TAC [`w0:real^1`; `w1:real^1`] THEN
hol-light-20190729/Multivariate/paths.ml-15654-        REWRITE_TAC[IN_INTERVAL_1; SUBSET] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:15655:        ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-15656-        MAP_EVERY X_GEN_TAC [`z0:real^1`; `z1:real^1`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15678-    REWRITE_TAC[] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:15679:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:15680:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15681-      ALL_TAC;
hol-light-20190729/Multivariate/paths.ml:15682:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:15683:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15684-      ALL_TAC;
hol-light-20190729/Multivariate/paths.ml:15685:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:15686:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15687-      MATCH_MP_TAC BOUNDED_SUBSET THEN EXISTS_TAC `interval[w:real^1,z]` THEN
hol-light-20190729/Multivariate/paths.ml:15688:      REWRITE_TAC[BOUNDED_INTERVAL] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-15689-    (SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15693-                 ASSUME_TAC(SYM th))
hol-light-20190729/Multivariate/paths.ml:15694:     THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-15695-     ASM_REWRITE_TAC[CONTINUOUS_ON_ID] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml-15696-      [MATCH_MP_TAC CLOSED_SUBSET THEN REWRITE_TAC[CLOSED_INTERVAL] THEN
hol-light-20190729/Multivariate/paths.ml:15697:       ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15698-       MATCH_MP_TAC CLOSED_IN_DIFF THEN REWRITE_TAC[CLOSED_IN_REFL] THEN
hol-light-20190729/Multivariate/paths.ml-15699-       MATCH_MP_TAC OPEN_SUBSET THEN REWRITE_TAC[OPEN_INTERVAL] THEN
hol-light-20190729/Multivariate/paths.ml:15700:       ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15701-       REWRITE_TAC[CLOSED_DIFF_OPEN_INTERVAL_1; SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-15704-                 (CONJUNCTS ENDS_IN_INTERVAL) THEN
hol-light-20190729/Multivariate/paths.ml:15705:       ASM SET_TAC[]])) in
hol-light-20190729/Multivariate/paths.ml-15706-  REPEAT STRIP_TAC THEN ASM_CASES_TAC `2 <= dimindex(:N)` THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-15719-    ASM_REWRITE_TAC[pairwise] THEN
hol-light-20190729/Multivariate/paths.ml:15720:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-15721-    REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
hol-light-20190729/Multivariate/paths.ml-15722-    STRIP_TAC THEN ASM_REWRITE_TAC[] THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:15723:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15724-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [NOT_LE]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15748-    ASM_REWRITE_TAC[GSYM IMAGE_o; o_DEF; IMAGE_ID] THEN
hol-light-20190729/Multivariate/paths.ml:15749:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-15750-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15752-      IMAGE (j:real^1->real^N) {x | ~(f x = x /\ g x = x)}`
hol-light-20190729/Multivariate/paths.ml:15753:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:15754:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:15755:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-15756-    ASM_SIMP_TAC[BOUNDED_LINEAR_IMAGE]]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-15794-      REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:15795:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-15796-      REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
hol-light-20190729/Multivariate/paths.ml-15797-      STRIP_TAC THEN ASM_REWRITE_TAC[] THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:15798:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-15799-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [INT_NOT_LE])] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15805-  STRIP_ASSUME_TAC THENL [ASM_MESON_TAC[open_in]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:15806:  DISCH_THEN(DISJ_CASES_THEN MP_TAC) THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-15807-  STRIP_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-15809-    REWRITE_TAC[HOMEOMORPHISM_I; I_THM; EMPTY_GSPEC; BOUNDED_EMPTY] THEN
hol-light-20190729/Multivariate/paths.ml:15810:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15811-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15841-  ASM_SIMP_TAC[o_THM; IMAGE_o] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:15842:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15843-    ASM_SIMP_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-15845-    REPLICATE_TAC 3 (ONCE_REWRITE_TAC[GSYM o_DEF]) THEN
hol-light-20190729/Multivariate/paths.ml:15846:    ASM_REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15847-    MATCH_MP_TAC CONTINUOUS_ON_EQ THEN EXISTS_TAC
hol-light-20190729/Multivariate/paths.ml-15848-     `(j:real^1->real^N) o (f:real^1->real^1) o (h:real^N->real^1)` THEN
hol-light-20190729/Multivariate/paths.ml:15849:    REWRITE_TAC[o_THM] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-15850-    REPEAT(MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN CONJ_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15852-          CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:15853:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:15854:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15855-    ASM_SIMP_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-15857-    REPLICATE_TAC 3 (ONCE_REWRITE_TAC[GSYM o_DEF]) THEN
hol-light-20190729/Multivariate/paths.ml:15858:    ASM_REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15859-    MATCH_MP_TAC CONTINUOUS_ON_EQ THEN EXISTS_TAC
hol-light-20190729/Multivariate/paths.ml-15860-     `(j:real^1->real^N) o (g:real^1->real^1) o (h:real^N->real^1)` THEN
hol-light-20190729/Multivariate/paths.ml:15861:    REWRITE_TAC[o_THM] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-15862-    REPEAT(MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN CONJ_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15864-          CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:15865:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:15866:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15867-    ALL_TAC;
##############################################
hol-light-20190729/Multivariate/paths.ml-15873-    IMAGE (j:real^1->real^N) {x | ~(f x = x /\ g x = x)}`
hol-light-20190729/Multivariate/paths.ml:15874:   SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC])
hol-light-20190729/Multivariate/paths.ml-15875-  THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-15877-     `IMAGE (j:real^1->real^N) (IMAGE (h:real^N->real^1) s)` THEN
hol-light-20190729/Multivariate/paths.ml:15878:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15879-    MATCH_MP_TAC(MESON[CLOSURE_SUBSET; BOUNDED_SUBSET; IMAGE_SUBSET]
##############################################
hol-light-20190729/Multivariate/paths.ml-15911-    EXISTS_TAC
hol-light-20190729/Multivariate/paths.ml:15912:     `\s. pairwise (\x y:real^N. !i. 1 <= i /\ i <= n ==> ~(x$i = y$i)) s` THEN
hol-light-20190729/Multivariate/paths.ml-15913-    REWRITE_TAC[] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-15919-      SIMP_TAC[] THEN REWRITE_TAC[homeomorphism] THEN
hol-light-20190729/Multivariate/paths.ml:15920:      MP_TAC(ISPEC `s:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-15921-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15982-        X_GEN_TAC `i:num` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:15983:        SUBGOAL_THEN `?g. !x. x IN s ==> (f:real^N->real^N)(x)$i = g(x$i)`
hol-light-20190729/Multivariate/paths.ml-15984-        STRIP_ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-15988-        MP_TAC(ISPECL
hol-light-20190729/Multivariate/paths.ml:15989:         [`lift o g o drop`; `IMAGE (\x:real^N. lift(x$i)) s`]
hol-light-20190729/Multivariate/paths.ml-15990-         INCREASING_EXTENDS_FROM_DENSE) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-15997-              IMAGE (\x. lift((f:real^N->real^N) x$i)) s`
hol-light-20190729/Multivariate/paths.ml:15998:            SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-15999-            ONCE_REWRITE_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-16137-        DISCH_THEN(X_CHOOSE_TAC `z:real^N`) THEN EXISTS_TAC
hol-light-20190729/Multivariate/paths.ml:16138:         `(lambda i. if i IN 1..n then (z:real^N)$i else &0):real^N` THEN
hol-light-20190729/Multivariate/paths.ml-16139-        UNDISCH_TAC `(z:real^N) IN u` THEN EXPAND_TAC "u" THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-16170-    SIMP_TAC[IN_NUMSEG] THEN
hol-light-20190729/Multivariate/paths.ml:16171:    RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/paths.ml-16172-  REPEAT GEN_TAC THEN ASM_CASES_TAC `t:real^N->bool = {}` THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-16272-       [REWRITE_TAC[HULL_SUBSET]; ASM_REWRITE_TAC[IMAGE_o]] THEN
hol-light-20190729/Multivariate/paths.ml:16273:      RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/paths.ml-16274-  CONJ_TAC THENL [ASM_ARITH_TAC; ASM_SIMP_TAC[COUNTABLE_IMAGE]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-16281-       [REWRITE_TAC[HULL_SUBSET]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/paths.ml:16282:    RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-16283-    CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-16365-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:16366:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-16367-    GEN_REWRITE_TAC I [CONJ_ASSOC]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-16384-  REWRITE_TAC[NORM_1; REAL_ARITH `B < abs x <=> x < -- B \/ B < x`] THEN
hol-light-20190729/Multivariate/paths.ml:16385:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-16386-
##############################################
hol-light-20190729/Multivariate/paths.ml-16507-  REWRITE_TAC[GSYM INSIDE_OUTSIDE] THEN
hol-light-20190729/Multivariate/paths.ml:16508:  REWRITE_TAC[OUTSIDE_INSIDE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-16509-
##############################################
hol-light-20190729/Multivariate/paths.ml-16522-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] BOUNDED_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:16523:  MATCH_MP_TAC CONNECTED_COMPONENT_MONO THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-16524-
##############################################
hol-light-20190729/Multivariate/paths.ml-16531-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] BOUNDED_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:16532:  MATCH_MP_TAC CONNECTED_COMPONENT_MONO THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-16533-
##############################################
hol-light-20190729/Multivariate/paths.ml-16706-  SUBGOAL_THEN `t SUBSET outside(c1 UNION c2:real^N->bool)`
hol-light-20190729/Multivariate/paths.ml:16707:  MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-16708-  MATCH_MP_TAC SUBSET_TRANS THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-16724-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC CONNECTED_COMPONENT_MAXIMAL THEN
hol-light-20190729/Multivariate/paths.ml:16725:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-16726-
##############################################
hol-light-20190729/Multivariate/paths.ml-16736-  X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/paths.ml:16737:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-16738-  MATCH_MP_TAC BOUNDED_SUBSET THEN EXISTS_TAC `t:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-16760-     [EXISTS_TAC `t:real^N->bool`; EXISTS_TAC `u:real^N->bool`] THEN
hol-light-20190729/Multivariate/paths.ml:16761:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-16762-    FIRST_ASSUM(SUBST1_TAC o SYM) THEN REWRITE_TAC[IN_UNION] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-16776-    SUBGOAL_THEN `t INTER u:real^N->bool = {}` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:16777:     [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-16778-    UNDISCH_TAC `~connected ((:real^N) DIFF s)` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-16797-    REWRITE_TAC[CONNECTED_CONNECTED_COMPONENT; GSYM MEMBER_NOT_EMPTY] THEN
hol-light-20190729/Multivariate/paths.ml:16798:    CONJ_TAC THENL [REWRITE_TAC[IN_INTER]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-16799-    EXISTS_TAC `x:real^N` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml-16800-     [REWRITE_TAC[IN; CONNECTED_COMPONENT_REFL_EQ] THEN
hol-light-20190729/Multivariate/paths.ml:16801:      GEN_REWRITE_TAC I [GSYM IN] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-16802-      ASM_MESON_TAC[INTERIOR_SUBSET; SUBSET]];
##############################################
hol-light-20190729/Multivariate/paths.ml-16953-    OUTSIDE_SUBSET_CONVEX) THEN
hol-light-20190729/Multivariate/paths.ml:16954:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-16955-
##############################################
hol-light-20190729/Multivariate/paths.ml-16963-  REPEAT STRIP_TAC THEN REWRITE_TAC[outside; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/paths.ml:16964:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-16965-  UNDISCH_TAC `~bounded(t:real^N->bool)` THEN REWRITE_TAC[CONTRAPOS_THM] THEN
hol-light-20190729/Multivariate/paths.ml-16966-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] BOUNDED_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:16967:  MATCH_MP_TAC CONNECTED_COMPONENT_MAXIMAL THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-16968-
##############################################
hol-light-20190729/Multivariate/paths.ml-16992-    CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:16993:     [MP_TAC(ISPEC `s:real^N->bool` INSIDE_NO_OVERLAP) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-16994-      REWRITE_TAC[IN_ELIM_THM; REAL_NOT_LT] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml-16995-      FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:16996:      MATCH_MP_TAC CLOSURE_INC THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml:16997:    MP_TAC(ISPEC `s:real^N->bool` INSIDE_INTER_OUTSIDE) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-16998-
##############################################
hol-light-20190729/Multivariate/paths.ml-17028-   [CLOSURE_SUBSET; INTERIOR_SUBSET] THEN
hol-light-20190729/Multivariate/paths.ml:17029:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-17030-
##############################################
hol-light-20190729/Multivariate/paths.ml-17052-      MP_TAC(ISPEC `s:real^N->bool` INSIDE_NO_OVERLAP) THEN
hol-light-20190729/Multivariate/paths.ml:17053:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-17054-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `e:real` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-17073-      MP_TAC(ISPEC `s:real^N->bool` OUTSIDE_NO_OVERLAP) THEN
hol-light-20190729/Multivariate/paths.ml:17074:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-17075-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `e:real` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-17159-    REWRITE_TAC[CONNECTED_CONNECTED_COMPONENT; IN] THEN
hol-light-20190729/Multivariate/paths.ml:17160:    REWRITE_TAC[CONNECTED_COMPONENT_REFL_EQ] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-17161-    FIRST_X_ASSUM(MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-17193-  REWRITE_TAC[connected_component] THEN
hol-light-20190729/Multivariate/paths.ml:17194:  EXISTS_TAC `t:real^N->bool` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-17195-
##############################################
hol-light-20190729/Multivariate/paths.ml-17229-    REWRITE_TAC[frontier] THEN
hol-light-20190729/Multivariate/paths.ml:17230:    ASM_SIMP_TAC[CLOSURE_CLOSED; GSYM OPEN_CLOSED] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-17231-    REWRITE_TAC[SUBSET; IN_DIFF; IN_UNIV]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-17294-  CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:17295:   [MP_TAC(ISPEC `t:real^N->bool` INSIDE_NO_OVERLAP) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-17296-    ONCE_REWRITE_TAC[INTER_COMM]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-17310-    CONJ_TAC THEN MATCH_MP_TAC OUTSIDE_SUBSET_CONVEX THEN
hol-light-20190729/Multivariate/paths.ml:17311:    REWRITE_TAC[CONVEX_BALL] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-17312-
##############################################
hol-light-20190729/Multivariate/paths.ml-17341-     [MAP_EVERY EXISTS_TAC [`a:real^N`; `{a:real^N}`] THEN
hol-light-20190729/Multivariate/paths.ml:17342:      ASM_REWRITE_TAC[IN_SING; CONNECTED_SING] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-17343-      FIRST_X_ASSUM(MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-17357-        ASM_MESON_TAC[PATHSTART_IN_PATH_IMAGE];
hol-light-20190729/Multivariate/paths.ml:17358:        ASM SET_TAC[]]];
hol-light-20190729/Multivariate/paths.ml-17359-    DISCH_THEN(fun th ->
##############################################
hol-light-20190729/Multivariate/paths.ml-17368-    EXISTS_TAC `t UNION v UNION u:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:17369:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-17370-    REPEAT(MATCH_MP_TAC CONNECTED_UNION THEN
hol-light-20190729/Multivariate/paths.ml-17371-           ASM_REWRITE_TAC[] THEN REPEAT CONJ_TAC) THEN
hol-light-20190729/Multivariate/paths.ml:17372:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-17373-
##############################################
hol-light-20190729/Multivariate/paths.ml-17386-     [MAP_EVERY EXISTS_TAC [`a:real^N`; `{a:real^N}`] THEN
hol-light-20190729/Multivariate/paths.ml:17387:      ASM_REWRITE_TAC[IN_SING; CONNECTED_SING] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-17388-      FIRST_X_ASSUM(MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-17402-        ASM_MESON_TAC[PATHSTART_IN_PATH_IMAGE];
hol-light-20190729/Multivariate/paths.ml:17403:        ASM SET_TAC[]]];
hol-light-20190729/Multivariate/paths.ml-17404-    DISCH_THEN(fun th ->
##############################################
hol-light-20190729/Multivariate/paths.ml-17413-    EXISTS_TAC `t UNION v UNION u:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:17414:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-17415-    REPEAT(MATCH_MP_TAC CONNECTED_UNION THEN
hol-light-20190729/Multivariate/paths.ml-17416-           ASM_REWRITE_TAC[] THEN REPEAT CONJ_TAC) THEN
hol-light-20190729/Multivariate/paths.ml:17417:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-17418-
##############################################
hol-light-20190729/Multivariate/paths.ml-17447-  ASM_REWRITE_TAC[connected_component] THEN
hol-light-20190729/Multivariate/paths.ml:17448:  EXISTS_TAC `d:real^N->bool` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-17449-
##############################################
hol-light-20190729/Multivariate/paths.ml-17465-  ASM_REWRITE_TAC[connected_component] THEN
hol-light-20190729/Multivariate/paths.ml:17466:  EXISTS_TAC `d:real^N->bool` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-17467-
##############################################
hol-light-20190729/Multivariate/paths.ml-17501-      FIRST_ASSUM(ASSUME_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:17502:      RULE_ASSUM_TAC(REWRITE_RULE[frontier]) THEN ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/paths.ml-17503-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-17522-    STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:17523:     [RULE_ASSUM_TAC(REWRITE_RULE[frontier]) THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-17524-    ASM_SIMP_TAC[CONVEX_CLOSURE_INTERIOR] THEN
hol-light-20190729/Multivariate/paths.ml:17525:    RULE_ASSUM_TAC(REWRITE_RULE[frontier]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-17526-    FIRST_X_ASSUM SUBST_ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-17539-   `s SUBSET UNIV DIFF t <=> !x. x IN t ==> ~(x IN s)`] THEN
hol-light-20190729/Multivariate/paths.ml:17540:  RULE_ASSUM_TAC(REWRITE_RULE[frontier]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-17541-
##############################################
hol-light-20190729/Multivariate/paths.ml-17657-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:17658:    REWRITE_TAC[SUBSET_PCROSS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-17659-    REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; FORALL_IN_PCROSS] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-17719-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:17720:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:17721:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-17722-
##############################################
hol-light-20190729/Multivariate/paths.ml-17735-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:17736:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:17737:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-17738-
##############################################
hol-light-20190729/Multivariate/paths.ml-17921-    REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; CONTINUOUS_ON_CONST] THEN
hol-light-20190729/Multivariate/paths.ml:17922:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:17923:    SUBGOAL_THEN `?c:real^N. c IN t` MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-17924-    MATCH_MP_TAC MONO_EXISTS THEN REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-17940-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP HOMOTOPIC_WITH_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:17941:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-17942-
##############################################
hol-light-20190729/Multivariate/paths.ml-17969-  DISCH_THEN(MP_TAC o MATCH_MP MONO_FORALL) THEN
hol-light-20190729/Multivariate/paths.ml:17970:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[FORALL_AND_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-17971-  REPEAT(DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC)) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-18004-      ONCE_REWRITE_TAC[SIMPLE_IMAGE_GEN] THEN
hol-light-20190729/Multivariate/paths.ml:18005:      SIMP_TAC[FINITE_NUMSEG_LT; FINITE_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-18006-      X_GEN_TAC `n:num` THEN FIRST_X_ASSUM(fun th ->
##############################################
hol-light-20190729/Multivariate/paths.ml-18029-                    UNIONS_GSPEC; IN_ELIM_THM; ENDS_IN_UNIT_INTERVAL] THEN
hol-light-20190729/Multivariate/paths.ml:18030:    (ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml-18031-    REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml-18032-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE BINDER_CONV [SUBSET]) THEN
hol-light-20190729/Multivariate/paths.ml:18033:    REWRITE_TAC[FORALL_IN_IMAGE; FORALL_IN_PCROSS] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-18034-
##############################################
hol-light-20190729/Multivariate/paths.ml-18152-    REWRITE_TAC[IN_SEGMENT; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/paths.ml:18153:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-18154-
##############################################
hol-light-20190729/Multivariate/paths.ml-18665-      ASM_MESON_TAC[CONTINUOUS_ON_SUBSET];
hol-light-20190729/Multivariate/paths.ml:18666:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-18667-    REWRITE_TAC[homotopic_paths; HOMOTOPIC_WITH_EUCLIDEAN; PCROSS] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-18820-    REPEAT STRIP_TAC THEN MATCH_MP_TAC SUBSET_PATH_IMAGE_JOIN THEN
hol-light-20190729/Multivariate/paths.ml:18821:    REWRITE_TAC[path_image; SUBSET; FORALL_IN_IMAGE; o_DEF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-18822-    ALL_TAC; ALL_TAC; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-19588-      REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/paths.ml:19589:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml:19590:    REWRITE_TAC[path_image] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-19591-
##############################################
hol-light-20190729/Multivariate/paths.ml-19745-  ASM_SIMP_TAC[COMPACT_PATH_IMAGE; GSYM OPEN_CLOSED] THEN
hol-light-20190729/Multivariate/paths.ml:19746:  (ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_DIFF; IN_UNIV; dist]]) THEN
hol-light-20190729/Multivariate/paths.ml-19747-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `e:real` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-19755-  ASM_SIMP_TAC[] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:19756:  ASM_REWRITE_TAC[path_image] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-19757-
##############################################
hol-light-20190729/Multivariate/paths.ml-19774-    SUBGOAL_THEN `?c:real^N. sphere(a,r) SUBSET {c}` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:19775:     [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-19776-    ASM_CASES_TAC `r = &0` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-19863-        CONTINUOUS_ON_SUBSET))) THEN
hol-light-20190729/Multivariate/paths.ml:19864:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-19865-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-19870-    `(h:real^M->real^N) o (k:real^N->real^M) o (q:real^P->real^N)`] THEN
hol-light-20190729/Multivariate/paths.ml:19871:  ASM_REWRITE_TAC[o_THM] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-19872-  MATCH_MP_TAC HOMOTOPIC_WITH_COMPOSE_CONTINUOUS_LEFT THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-19901-        CONTINUOUS_ON_SUBSET))) THEN
hol-light-20190729/Multivariate/paths.ml:19902:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-19903-    DISCH_THEN(X_CHOOSE_TAC `c:real^M`)] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-19909-    `(h:real^M->real^N) o ((\x. c):real^P->real^M)`] THEN
hol-light-20190729/Multivariate/paths.ml:19910:  ASM_REWRITE_TAC[o_THM] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-19911-  MATCH_MP_TAC HOMOTOPIC_WITH_COMPOSE_CONTINUOUS_LEFT THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-19943-        CONTINUOUS_ON_SUBSET))) THEN
hol-light-20190729/Multivariate/paths.ml:19944:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-19945-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-19950-    `((q:real^N->real^P) o (h:real^M->real^N)) o (k:real^N->real^M)`] THEN
hol-light-20190729/Multivariate/paths.ml:19951:  ASM_REWRITE_TAC[o_THM] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-19952-  MATCH_MP_TAC HOMOTOPIC_WITH_COMPOSE_CONTINUOUS_RIGHT THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-19981-        CONTINUOUS_ON_SUBSET))) THEN
hol-light-20190729/Multivariate/paths.ml:19982:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-19983-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `c:real^P` THEN DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-19988-    `((\x. c):real^M->real^P) o (k:real^N->real^M)`] THEN
hol-light-20190729/Multivariate/paths.ml:19989:  ASM_REWRITE_TAC[o_THM] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-19990-  MATCH_MP_TAC HOMOTOPIC_WITH_COMPOSE_CONTINUOUS_RIGHT THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-20206-    ASM_SIMP_TAC[PATH_IMAGE_SHIFTPATH; ETA_AX] THEN
hol-light-20190729/Multivariate/paths.ml:20207:    REWRITE_TAC[path_image] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-20208-
##############################################
hol-light-20190729/Multivariate/paths.ml-20313-                  PATH_IMAGE_LINEPATH; SEGMENT_REFL] THEN
hol-light-20190729/Multivariate/paths.ml:20314:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-20315-
##############################################
hol-light-20190729/Multivariate/paths.ml-20388-                PATHSTART_LINEPATH; PATHFINISH_LINEPATH] THEN
hol-light-20190729/Multivariate/paths.ml:20389:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-20390-
##############################################
hol-light-20190729/Multivariate/paths.ml-20528-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:20529:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-20530-
##############################################
hol-light-20190729/Multivariate/paths.ml-20643-  REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:20644:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-20645-    MP_TAC(ISPEC `p:real^1->real^N` PATH_IMAGE_NONEMPTY) THEN
hol-light-20190729/Multivariate/paths.ml:20646:    REWRITE_TAC[INTERS_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-20647-    REWRITE_TAC[NOT_FORALL_THM; NOT_IMP; LEFT_IMP_EXISTS_THM]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-20657-  MATCH_MP_TAC HOMOTOPIC_LOOPS_SUBSET THEN EXISTS_TAC `s:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:20658:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-20659-  FIRST_X_ASSUM(MATCH_MP_TAC o REWRITE_RULE[simply_connected]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-20697-      CONV_TAC SELECT_CONV THEN ASM_MESON_TAC[HOMOTOPIC_PATHS_REFL];
hol-light-20190729/Multivariate/paths.ml:20698:      ASM MESON_TAC[HOMOTOPIC_PATHS_IMP_PATH; HOMOTOPIC_PATHS_IMP_SUBSET;
hol-light-20190729/Multivariate/paths.ml-20699-                HOMOTOPIC_PATHS_IMP_PATHSTART;
##############################################
hol-light-20190729/Multivariate/paths.ml-20844-        EXISTS_TAC `f:real^M->real^N` THEN REWRITE_TAC[CONTINUOUS_ON_SING] THEN
hol-light-20190729/Multivariate/paths.ml:20845:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-20846-      MATCH_MP_TAC(TAUT `~q /\ ~p ==> (p <=> q)`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:20847:       [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-20848-      UNDISCH_TAC `~((f:real^M->real^N) a IN s)` THEN REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-21046-    REWRITE_TAC[IMAGE_o] THEN FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP
hol-light-20190729/Multivariate/paths.ml:21047:     (REWRITE_RULE[IMP_CONJ] CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:21048:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-21049-    TRANS_TAC HOMOTOPIC_WITH_TRANS
##############################################
hol-light-20190729/Multivariate/paths.ml-21126-    REWRITE_TAC[PASTECART_IN_PCROSS; FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/Multivariate/paths.ml:21127:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-21128-
##############################################
hol-light-20190729/Multivariate/paths.ml-21221-        CONTINUOUS_ON_SUBSET))) THEN
hol-light-20190729/Multivariate/paths.ml:21222:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-21223-      MATCH_MP_TAC(MESON[HOMOTOPIC_WITH_TRANS; HOMOTOPIC_WITH_SYM]
##############################################
hol-light-20190729/Multivariate/paths.ml-21279-        CONTINUOUS_ON_SUBSET))) THEN
hol-light-20190729/Multivariate/paths.ml:21280:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-21281-      MATCH_MP_TAC(MESON[HOMOTOPIC_WITH_TRANS; HOMOTOPIC_WITH_SYM]
##############################################
hol-light-20190729/Multivariate/paths.ml-21325-    REWRITE_TAC[IMAGE_o] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:21326:     [CONJ_TAC THENL [MATCH_MP_TAC CONTINUOUS_ON_COMPOSE; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-21327-      ASM_MESON_TAC[CONTINUOUS_ON_SUBSET];
##############################################
hol-light-20190729/Multivariate/paths.ml-21377-    REWRITE_TAC[IMAGE_o] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:21378:     [CONJ_TAC THENL [MATCH_MP_TAC CONTINUOUS_ON_COMPOSE; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-21379-      ASM_MESON_TAC[CONTINUOUS_ON_SUBSET];
##############################################
hol-light-20190729/Multivariate/paths.ml-21416-     `IMAGE f s' SUBSET t ==> s SUBSET s' ==> IMAGE f s SUBSET t`)) THEN
hol-light-20190729/Multivariate/paths.ml:21417:    REWRITE_TAC[SUBSET_PCROSS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-21418-    W(MP_TAC o fst o EQ_IMP_RULE o PART_MATCH (rand o lhand)
##############################################
hol-light-20190729/Multivariate/paths.ml-21425-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:21426:      REWRITE_TAC[SUBSET_PCROSS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-21427-      DISCH_THEN MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-21445-    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:21446:     [FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-21447-      MATCH_MP_TAC CONNECTED_CONTINUOUS_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-21476-   [MP_TAC(ISPECL [`s:real^M->bool`; `a:real^M`]
hol-light-20190729/Multivariate/paths.ml:21477:        CONNECTED_COMPONENT_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-21478-    REWRITE_TAC[o_THM] THEN
hol-light-20190729/Multivariate/paths.ml-21479-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CONNECTED_COMPONENT_REFL)) THEN
hol-light-20190729/Multivariate/paths.ml:21480:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-21481-
##############################################
hol-light-20190729/Multivariate/paths.ml-21539-    EXISTS_TAC `(g:real^N->real^M) y` THEN
hol-light-20190729/Multivariate/paths.ml:21540:    CONJ_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC PATH_COMPONENT_MAXIMAL] THEN
hol-light-20190729/Multivariate/paths.ml-21541-    REPEAT CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-21547-      MP_TAC(ISPECL [`t:real^N->bool`; `y:real^N`]
hol-light-20190729/Multivariate/paths.ml:21548:        PATH_COMPONENT_SUBSET) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-21549-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-21573-   [MP_TAC(ISPECL [`s:real^M->bool`; `a:real^M`]
hol-light-20190729/Multivariate/paths.ml:21574:        PATH_COMPONENT_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-21575-    REWRITE_TAC[o_THM] THEN
hol-light-20190729/Multivariate/paths.ml-21576-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP PATH_COMPONENT_REFL)) THEN
hol-light-20190729/Multivariate/paths.ml:21577:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-21578-
##############################################
hol-light-20190729/Multivariate/paths.ml-21594-    MP_TAC(ISPEC `s:real^M->bool` PATH_CONNECTED_COMPONENT_SET) THEN
hol-light-20190729/Multivariate/paths.ml:21595:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-21596-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-21677-       (ONCE_REWRITE_RULE [IMP_CONJ] HOMEOMORPHISM_OF_SUBSETS))] THEN
hol-light-20190729/Multivariate/paths.ml:21678:    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-21679-    DISCH_THEN(CONJUNCTS_THEN MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-21723-  MATCH_MP_TAC(TAUT `a /\ (a ==> b) ==> a /\ b`) THEN
hol-light-20190729/Multivariate/paths.ml:21724:  CONJ_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-21725-  X_GEN_TAC `p:real^1->real^N` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-21847-  REWRITE_TAC[CONTINUOUS_ON_CONST] THEN
hol-light-20190729/Multivariate/paths.ml:21848:  REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml-21849-  CONJ_TAC THEN MATCH_MP_TAC HOMOTOPIC_INTO_CONTRACTIBLE THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-21851-                  CONTINUOUS_ON_CONST] THEN
hol-light-20190729/Multivariate/paths.ml:21852:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-21853-
##############################################
hol-light-20190729/Multivariate/paths.ml-22097-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:22098:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-22099-
##############################################
hol-light-20190729/Multivariate/paths.ml-22123-   [ASM_MESON_TAC[AFFINE_EQ_SUBSPACE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:22124:  TRANS_TAC HOMEOMORPHIC_TRANS `{x:real^N | x$1 = &0} INTER t` THEN
hol-light-20190729/Multivariate/paths.ml-22125-  CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-22133-    DISCH_THEN SUBST1_TAC THEN
hol-light-20190729/Multivariate/paths.ml:22134:    SUBGOAL_THEN `~(t INTER {x:real^N | x$1 = &0} = {})` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml-22135-     [REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; IN_INTER; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22137-      ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:22138:    SUBGOAL_THEN `~(t SUBSET {v:real^N | v$1 = &0})` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml-22139-     [REWRITE_TAC[SUBSET] THEN DISCH_THEN(MP_TAC o SPEC `basis 1:real^N`) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22164-  REWRITE_TAC[homeomorphic; HOMEOMORPHISM] THEN MAP_EVERY ABBREV_TAC
hol-light-20190729/Multivariate/paths.ml:22165:   [`f = \x:real^N. &2 % basis 1 + &2 / (&1 - x$1) % (x - basis 1)`;
hol-light-20190729/Multivariate/paths.ml-22166-    `g = \y:real^N.
##############################################
hol-light-20190729/Multivariate/paths.ml-22238-                      REAL_POW_ONE] THEN
hol-light-20190729/Multivariate/paths.ml:22239:      UNDISCH_TAC `~((x:real^N)$1 = &1)` THEN CONV_TAC REAL_FIELD;
hol-light-20190729/Multivariate/paths.ml-22240-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22252-    REWRITE_TAC[VECTOR_MUL_EQ_0] THEN DISJ1_TAC THEN
hol-light-20190729/Multivariate/paths.ml:22253:    UNDISCH_TAC `~((x:real^N)$1 = &1)` THEN CONV_TAC REAL_FIELD;
hol-light-20190729/Multivariate/paths.ml-22254-    X_GEN_TAC `y:real^N` THEN REWRITE_TAC[IN_INTER; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22314-     [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; DELETE_SUBSET];
hol-light-20190729/Multivariate/paths.ml:22315:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22316-      ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; DELETE_SUBSET];
hol-light-20190729/Multivariate/paths.ml:22317:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:22318:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:22319:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-22320-    MATCH_MP_TAC HOMEOMORPHIC_PUNCTURED_AFFINE_SPHERE_AFFINE THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22322-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [HOMEOMORPHISM]) THEN
hol-light-20190729/Multivariate/paths.ml:22323:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-22324-
##############################################
hol-light-20190729/Multivariate/paths.ml-22423-     [SUBGOAL_THEN `{u:real^N,v} DELETE b = {v}` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:22424:       [ASM SET_TAC[]; ASM_REWRITE_TAC[CONNECTED_SING]];
hol-light-20190729/Multivariate/paths.ml-22425-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22427-     [SUBGOAL_THEN `{u:real^N,v} DELETE b = {u}` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:22428:       [ASM SET_TAC[]; ASM_REWRITE_TAC[CONNECTED_SING]];
hol-light-20190729/Multivariate/paths.ml-22429-      ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-22430-    SUBGOAL_THEN `{u:real^N,v} DELETE b = {u,v}` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:22431:     [ASM SET_TAC[]; ASM_REWRITE_TAC[CONNECTED_2] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-22432-    ASM_CASES_TAC `b IN sphere(a:real^N,r)` THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-22456-   [MP_TAC(ISPECL [`a:real^N`; `r:real`] SPHERE_EQ_EMPTY) THEN
hol-light-20190729/Multivariate/paths.ml:22457:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22458-    RULE_ASSUM_TAC(REWRITE_RULE[GSYM REAL_NOT_LE])] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22460-   [MP_TAC(ISPECL [`a:real^N`; `r:real`; `a:real^N`] SPHERE_EQ_SING) THEN
hol-light-20190729/Multivariate/paths.ml:22461:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22462-    SUBGOAL_THEN `&0 < r` ASSUME_TAC THENL [ASM_REAL_ARITH_TAC; ALL_TAC]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22468-  SUBGOAL_THEN `?c:real^N. c IN sphere(a,r) /\ ~(c IN s) /\ ~(c = b)`
hol-light-20190729/Multivariate/paths.ml:22469:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-22470-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22483-    MP_TAC(SPEC `s:real^N->bool` th)) THEN
hol-light-20190729/Multivariate/paths.ml:22484:  REPEAT(ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)]) THEN
hol-light-20190729/Multivariate/paths.ml-22485-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22491-    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism; IN_UNIV]) THEN
hol-light-20190729/Multivariate/paths.ml:22492:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22493-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22506-        OPEN_IN_SUBSET_TRANS)) THEN
hol-light-20190729/Multivariate/paths.ml:22507:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22508-    MATCH_MP_TAC EQ_IMP THEN CONV_TAC SYM_CONV THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22510-    EXISTS_TAC `g:real^(N,1)finite_diff->real^N` THEN
hol-light-20190729/Multivariate/paths.ml:22511:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-22512-
##############################################
hol-light-20190729/Multivariate/paths.ml-22553-    ASM_SIMP_TAC[BASIS_NONZERO; LE_REFL; DIMINDEX_GE_1] THEN
hol-light-20190729/Multivariate/paths.ml:22554:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-22555-    DISCH_THEN(SUBST1_TAC o MATCH_MP HOMEOMORPHIC_CONNECTEDNESS) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22584-     (ONCE_REWRITE_RULE [IMP_CONJ] HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:22585:    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22586-    DISCH_THEN(MP_TAC o MATCH_MP HOMEOMORPHIC_CARD_EQ_COMPONENTS) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22615-    {c} UNION (components(sphere(a:real^N,r) DIFF s) DELETE c)`
hol-light-20190729/Multivariate/paths.ml:22616:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-22617-  W(MP_TAC o PART_MATCH (lhand o rand) CARD_DISJOINT_UNION o lhand o snd) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22639-      REWRITE_TAC[SEPARATED_IN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/paths.ml:22640:      REWRITE_TAC[separated_in; EUCLIDEAN_CLOSURE_OF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22641-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22651-      REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:22652:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22653-      DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22660-        ==> IMAGE f d SUBSET UNIV DIFF IMAGE f s`) THEN
hol-light-20190729/Multivariate/paths.ml:22661:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-22662-      FIRST_X_ASSUM(STRIP_ASSUME_TAC o GEN_REWRITE_RULE I [homeomorphism]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22666-            ==> IMAGE f (d INTER s) = IMAGE f d INTER IMAGE f s`)) THEN
hol-light-20190729/Multivariate/paths.ml:22667:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22668-      MATCH_MP_TAC CONNECTED_CONTINUOUS_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22673-      REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:22674:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22675-      X_GEN_TAC `c':real^M->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22679-         [homeomorphism]) THEN
hol-light-20190729/Multivariate/paths.ml:22680:        ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-22681-      MATCH_MP_TAC COMPONENTS_MAXIMAL THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22688-          CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:22689:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22690-        FIRST_X_ASSUM(STRIP_ASSUME_TAC o GEN_REWRITE_RULE I
hol-light-20190729/Multivariate/paths.ml-22691-         [homeomorphism]) THEN
hol-light-20190729/Multivariate/paths.ml:22692:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22693-        FIRST_X_ASSUM(STRIP_ASSUME_TAC o GEN_REWRITE_RULE I
##############################################
hol-light-20190729/Multivariate/paths.ml-22695-        REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:22696:        ASM SET_TAC[]]];
hol-light-20190729/Multivariate/paths.ml-22697-    X_GEN_TAC `d:real^M->bool` THEN STRIP_TAC THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-22700-       [homeomorphism]) THEN
hol-light-20190729/Multivariate/paths.ml:22701:      ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-22702-    REWRITE_TAC[IN_DELETE] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-22715-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [homeomorphism]) THEN
hol-light-20190729/Multivariate/paths.ml:22716:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22717-      DISCH_THEN(MP_TAC o MATCH_MP HOMEOMORPHISM_COMPONENTS)] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22732-          COMPONENTS_MAXIMAL)) THEN
hol-light-20190729/Multivariate/paths.ml:22733:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22734-        REPEAT STRIP_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22736-        REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:22737:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-22738-      MATCH_MP_TAC(TAUT `~p ==> p ==> q`) THEN DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22748-     [REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:22749:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22750-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22760-          COMPONENTS_MAXIMAL)) THEN
hol-light-20190729/Multivariate/paths.ml:22761:    MP_TAC(ISPEC `s:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-22762-
##############################################
hol-light-20190729/Multivariate/paths.ml-22784-        EXISTS_DOUBLE_ARC) THEN
hol-light-20190729/Multivariate/paths.ml:22785:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-22786-  MAP_EVERY X_GEN_TAC [`g1:real^1->real^N`; `g2:real^1->real^N`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22790-  ASM_SIMP_TAC[CLOSED_PATH_IMAGE; ARC_IMP_PATH] THEN
hol-light-20190729/Multivariate/paths.ml:22791:  REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml-22792-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22797-  ASM_SIMP_TAC[CONNECTED_PATH_IMAGE; ARC_IMP_PATH] THEN
hol-light-20190729/Multivariate/paths.ml:22798:  (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml-22799-  ASM_MESON_TAC[PATHSTART_IN_PATH_IMAGE; PATHFINISH_IN_PATH_IMAGE]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-22847-  SIMP_TAC[AFF_DIM_DIM_0; HULL_INC; INT_OF_NUM_LT] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:22848:  MP_TAC(ISPECL [`{x:real^N | x$1 = &0}`; `dim(s:real^M->bool)`]
hol-light-20190729/Multivariate/paths.ml-22849-        CHOOSE_SUBSPACE_OF_SUBSPACE) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22879-    ASM_MESON_TAC[SPAN_SUPERSET; REAL_LE_REFL];
hol-light-20190729/Multivariate/paths.ml:22880:    REWRITE_TAC[NOT_IN_EMPTY; IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-22881-    REWRITE_TAC[CLOSED_IN_CLOSED] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22898-    REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_SPHERE_0; IN_DELETE] THEN
hol-light-20190729/Multivariate/paths.ml:22899:    MP_TAC(ISPEC `s:real^M->bool` SPAN_INC) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-22900-
##############################################
hol-light-20190729/Multivariate/paths.ml-22915-  ABBREV_TAC
hol-light-20190729/Multivariate/paths.ml:22916:   `g:real^N->real^(M,1)finite_sum = (\x. lambda i. x$i)` THEN
hol-light-20190729/Multivariate/paths.ml-22917-  EXISTS_TAC `IMAGE (f:real^(M,1)finite_sum->real^N) t` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22942-   [`f:real^(M,1)finite_sum->real^N`; `g:real^N->real^(M,1)finite_sum`] THEN
hol-light-20190729/Multivariate/paths.ml:22943:  ASM_SIMP_TAC[LINEAR_CONTINUOUS_ON] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-22944-
##############################################
hol-light-20190729/Multivariate/paths.ml-22988-    SIMP_TAC[UNIONS_2; EXISTS_IN_INSERT; FORALL_IN_INSERT; NOT_IN_EMPTY] THEN
hol-light-20190729/Multivariate/paths.ml:22989:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-22990-    DISCH_THEN(X_CHOOSE_THEN `e:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-22998-    FIRST_X_ASSUM(MP_TAC o SPEC `(p:real^1->real^N) x`) THEN
hol-light-20190729/Multivariate/paths.ml:22999:    ANTS_TAC THENL [REWRITE_TAC[path_image] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-23000-    MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-23307-    ASM_SIMP_TAC[IN_INTER; INTER_SUBSET; OPEN_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:23308:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-23309-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/paths.ml-23316-      MP_TAC(ISPEC `w:real^N->bool` CLOSURE_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:23317:      ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-23318-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-23322-    ASM_SIMP_TAC[CLOSURE_MINIMAL_EQ; GSYM OPEN_CLOSED] THEN
hol-light-20190729/Multivariate/paths.ml:23323:    ASM SET_TAC[]) in
hol-light-20190729/Multivariate/paths.ml-23324-  let LOCALLY_DIMENSION_LE' = prove
##############################################
hol-light-20190729/Multivariate/paths.ml-23358-      ASM_SIMP_TAC[CLOSURE_BALL; OPEN_BALL; CENTRE_IN_BALL] THEN
hol-light-20190729/Multivariate/paths.ml:23359:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-23360-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-23362-    ASM_SIMP_TAC[OPEN_INTER; IN_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:23363:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-23364-    MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/paths.ml-23365-    X_GEN_TAC `c:real^N->bool` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:23366:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-23367-    SUBGOAL_THEN `s INTER frontier c:real^N->bool = u INTER frontier c`
##############################################
hol-light-20190729/Multivariate/paths.ml-23369-    MP_TAC(ISPECL [`c:real^N->bool`; `b:real^N->bool`] SUBSET_CLOSURE) THEN
hol-light-20190729/Multivariate/paths.ml:23370:    REWRITE_TAC[frontier] THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/paths.ml-23371-  let DIMENSION_LE_AFF_DIM' = prove
##############################################
hol-light-20190729/Multivariate/paths.ml-23618-    SUBGOAL_THEN `(a:real^N) IN t` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:23619:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-23620-    FIRST_X_ASSUM(MP_TAC o SPECL [`t INTER v:real^N->bool`; `a:real^N`]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-23628- (ASM_SIMP_TAC[IN_INTER; OPEN_IN_OPEN_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:23629:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-23630-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (ONCE_REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/paths.ml-23645-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:23646:  CONJ_TAC THEN MATCH_MP_TAC SUBSET_CLOSURE THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-23647-
##############################################
hol-light-20190729/Multivariate/paths.ml-23776-    FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:23777:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-23778-    REWRITE_TAC[RIGHT_AND_EXISTS_THM; LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-23781-    STRIP_TAC THEN EXISTS_TAC `u:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:23782:    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-23783-    TRANS_TAC INT_LE_TRANS `dimension(b:real^N->bool)` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-23793-    ASM_SIMP_TAC[OPEN_IN_INTER_CLOSURE_OF_EQ_EMPTY; OPEN_IN_SUBSET] THEN
hol-light-20190729/Multivariate/paths.ml:23794:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-23795-
##############################################
hol-light-20190729/Multivariate/paths.ml-23824-    ASM_SIMP_TAC[FRONTIER_BALL; sphere] THEN
hol-light-20190729/Multivariate/paths.ml:23825:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-23826-    TRANS_TAC SUBSET_TRANS `ball(a:real^N,r)` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-23868-  MAP_EVERY EXISTS_TAC [`u:real^N->bool`; `v:real^N->bool`] THEN
hol-light-20190729/Multivariate/paths.ml:23869:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-23870-
##############################################
hol-light-20190729/Multivariate/paths.ml-24061-  REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:24062:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-24063-
##############################################
hol-light-20190729/Multivariate/paths.ml-24102-      STRIP_TAC THEN EXISTS_TAC `d DIFF t:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:24103:      REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml-24104-      CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-24153-      FIRST_ASSUM(MP_TAC o GEN `n:num` o MATCH_MP CLOSED_IN_IMP_SUBSET o
hol-light-20190729/Multivariate/paths.ml:24154:          SPEC `n:num`) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24155-      UNDISCH_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24184-      ONCE_REWRITE_TAC[CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/paths.ml:24185:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml-24186-       [REWRITE_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-24206-        REWRITE_TAC[FORALL_IN_GSPEC; IN_UNIV] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:24207:         [ASM_MESON_TAC[OPEN_IN_IMP_SUBSET]; ASM SET_TAC[]]]] THEN
hol-light-20190729/Multivariate/paths.ml-24208-    MATCH_MP_TAC(MESON[] `(?f. R (FST o f) (SND o f)) ==> ?g h. R g h`) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24215-       [ONCE_REWRITE_TAC[CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/paths.ml:24216:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-24217-        CONJ_TAC THEN MATCH_MP_TAC CLOSED_IN_SUBSET_TRANS THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24226-       [ONCE_REWRITE_TAC[CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/paths.ml:24227:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN CONJ_TAC THEN
hol-light-20190729/Multivariate/paths.ml-24228-        MATCH_MP_TAC CLOSED_IN_UNION THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24230-        ASM_REWRITE_TAC[];
hol-light-20190729/Multivariate/paths.ml:24231:        REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-24232-      MAP_EVERY X_GEN_TAC [`n:num`; `g:real^N->bool`; `h:real^N->bool`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24239-       [ONCE_REWRITE_TAC[CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/paths.ml:24240:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-24241-        CONJ_TAC THEN MATCH_MP_TAC CLOSED_IN_SUBSET_TRANS THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24253-       [ONCE_REWRITE_TAC[CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/paths.ml:24254:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN CONJ_TAC THEN
hol-light-20190729/Multivariate/paths.ml-24255-        MATCH_MP_TAC CLOSED_IN_UNION THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24259-        REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:24260:        ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-24261-        ONCE_REWRITE_TAC[CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/paths.ml:24262:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN CONJ_TAC THEN
hol-light-20190729/Multivariate/paths.ml-24263-        FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/paths.ml-24319-                 (UNIONS (IMAGE r c) DIFF UNIONS (IMAGE t c))`
hol-light-20190729/Multivariate/paths.ml:24320:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-24321-    REWRITE_TAC[GSYM INT_OF_NUM_SUC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24343-        ASM_SIMP_TAC[] THEN MATCH_MP_TAC DIMENSION_SUBSET THEN
hol-light-20190729/Multivariate/paths.ml:24344:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24345-        REWRITE_TAC[UNION_OF] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24356-          (UNIONS (IMAGE r c) DIFF UNIONS (IMAGE t c)) INTER d`
hol-light-20190729/Multivariate/paths.ml:24357:        SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-24358-        MATCH_MP_TAC CLOSED_IN_SUBTOPOLOGY_INTER_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24365-        TRANS_TAC SUBSET_TRANS `b:real^N->bool` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:24366:         [ASM SET_TAC[]; ASM_MESON_TAC[CLOSED_IN_IMP_SUBSET]];
hol-light-20190729/Multivariate/paths.ml-24367-        TRANS_TAC INT_LE_TRANS
##############################################
hol-light-20190729/Multivariate/paths.ml-24428-    CONJ_TAC THENL [MATCH_MP_TAC DIMENSION_SUBSET; ASM_REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml:24429:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24430-    REWRITE_TAC[UNION_OF] THEN DISCH_THEN(STRIP_ASSUME_TAC o GSYM) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24484-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP RELATIVE_TO_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:24485:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24486-    ONCE_REWRITE_TAC[SET_RULE `t DIFF s = (s UNION t) DIFF s`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24490-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP RELATIVE_TO_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:24491:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24492-    TRANS_TAC INT_LE_TRANS `dimension(t:real^N->bool)` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24708-      MATCH_MP_TAC DIMENSION_SUBSET THEN
hol-light-20190729/Multivariate/paths.ml:24709:      REWRITE_TAC[SUBSET_PCROSS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24710-      MATCH_MP_TAC EQ_IMP THEN AP_THM_TAC THEN AP_TERM_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24722-      MATCH_MP_TAC DIMENSION_SUBSET THEN
hol-light-20190729/Multivariate/paths.ml:24723:      REWRITE_TAC[SUBSET_PCROSS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24724-      MATCH_MP_TAC EQ_IMP THEN AP_THM_TAC THEN AP_TERM_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24762-    ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:24763:     [REWRITE_TAC[CONJ_ASSOC] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-24764-      CONJ_TAC THEN MATCH_MP_TAC CLOSED_IN_SUBTOPOLOGY_INTER_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24779-     `t INTER u:real^N->bool = u /\ t INTER v = v`
hol-light-20190729/Multivariate/paths.ml:24780:    (CONJUNCTS_THEN SUBST_ALL_TAC) THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-24781-    MP_TAC(ISPECL [`c UNION c':real^N->bool`; `d UNION d':real^N->bool`]
##############################################
hol-light-20190729/Multivariate/paths.ml-24787-        d' INTER closure u:real^N->bool = {}`
hol-light-20190729/Multivariate/paths.ml:24788:      STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-24789-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24798-       [REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP SUBSET_CLOSURE)) THEN
hol-light-20190729/Multivariate/paths.ml:24799:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24800-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24817-                     SET_RULE `s SUBSET t ==> t INTER s = s`] THEN
hol-light-20190729/Multivariate/paths.ml:24818:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24819-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24823-      STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:24824:       [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24825-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24828-                     SET_RULE `s SUBSET t ==> t INTER s = s`] THEN
hol-light-20190729/Multivariate/paths.ml:24829:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24830-      REWRITE_TAC[LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24838-          OPEN_INTER_CLOSURE_EQ_EMPTY) THEN
hol-light-20190729/Multivariate/paths.ml:24839:        ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24840-        MAP_EVERY EXISTS_TAC
##############################################
hol-light-20190729/Multivariate/paths.ml-24844-        REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:24845:         [MP_TAC(ISPEC `w:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:24846:          ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:24847:          ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24848-          MP_TAC(ISPECL [`z:real^N->bool`; `w:real^N->bool`]
hol-light-20190729/Multivariate/paths.ml-24849-            OPEN_INTER_CLOSURE_EQ_EMPTY) THEN
hol-light-20190729/Multivariate/paths.ml:24850:          ASM SET_TAC[]]]];
hol-light-20190729/Multivariate/paths.ml-24851-
##############################################
hol-light-20190729/Multivariate/paths.ml-24861-    ASM_REWRITE_TAC[] THEN CONV_TAC INT_REDUCE_CONV THEN
hol-light-20190729/Multivariate/paths.ml:24862:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[DIMENSION_LE_MINUS1]] THEN
hol-light-20190729/Multivariate/paths.ml-24863-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `b:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24867-    ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:24868:    MATCH_MP_TAC DIMENSION_SUBSET THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-24869-
##############################################
hol-light-20190729/Multivariate/paths.ml-24900-      REWRITE_TAC[GSYM SING_SUBSET] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:24901:      ASM_REWRITE_TAC[CLOSED_IN_SING] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/paths.ml-24902-
##############################################
hol-light-20190729/Multivariate/paths.ml-24949-    FIRST_X_ASSUM(MP_TAC o SPECL [`p:real^N`; `q:real^N`]) THEN
hol-light-20190729/Multivariate/paths.ml:24950:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-24951-    X_GEN_TAC `b:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24958-      ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:24959:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-24960-    MP_TAC(snd(EQ_IMP_RULE(ISPECL
##############################################
hol-light-20190729/Multivariate/paths.ml-24963-    ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:24964:     [CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml-24965-       [UNDISCH_TAC `open_in (subtopology euclidean s) (u:real^N->bool)`;
##############################################
hol-light-20190729/Multivariate/paths.ml-24967-      REWRITE_TAC[OPEN_IN_OPEN] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/paths.ml:24968:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-24969-      STRIP_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:24970:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-24971-    TRANS_TAC INT_LE_TRANS `dimension(b:real^N->bool)` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24979-      (k INTER v) SUBSET closure(k INTER v)`
hol-light-20190729/Multivariate/paths.ml:24980:    MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-24981-    REWRITE_TAC[CLOSURE_SUBSET; CLOSURE_EQ] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24984-    SUBGOAL_THEN `k DIFF v:real^N->bool = k INTER (s DIFF v)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:24985:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-24986-    MATCH_MP_TAC CLOSED_IN_SUBTOPOLOGY_INTER_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-24996-  ASM_SIMP_TAC[FORALL_IN_IMAGE; UNIONS_IMAGE] THEN
hol-light-20190729/Multivariate/paths.ml:24997:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-24998-  GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV)
##############################################
hol-light-20190729/Multivariate/paths.ml-25009-   [EXPAND_TAC "v" THEN MATCH_MP_TAC OPEN_IN_UNIONS THEN
hol-light-20190729/Multivariate/paths.ml:25010:    REWRITE_TAC[FORALL_IN_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-25011-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25019-  ONCE_REWRITE_TAC[TAUT `p /\ q /\ r /\ s <=> (q /\ r) /\ p /\ s`] THEN
hol-light-20190729/Multivariate/paths.ml:25020:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-25021-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25039-     CONJ_TAC THENL [ASM_INT_ARITH_TAC; REWRITE_TAC[FORALL_IN_IMAGE]] THEN
hol-light-20190729/Multivariate/paths.ml:25040:     REWRITE_TAC[CLOSED_IN_FRONTIER_OF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-25041-     FIRST_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-25049-       FIRST_X_ASSUM(MP_TAC o SPEC `q:real^N`) THEN
hol-light-20190729/Multivariate/paths.ml:25050:       ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC])
hol-light-20190729/Multivariate/paths.ml-25051-     THENL
hol-light-20190729/Multivariate/paths.ml-25052-      [MP_TAC(ISPEC `(u:real^N->real^N->bool) q` CLOSURE_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:25053:       ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-25054-       DISCH_THEN(MP_TAC o el 2 o CONJUNCTS) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25077-    X_GEN_TAC `x:real^N` THEN REWRITE_TAC[IN_ELIM_THM; IN_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:25078:    ABBREV_TAC `k = {i | i IN 1..dimindex(:N) /\ rational((x:real^N)$i)}` THEN
hol-light-20190729/Multivariate/paths.ml-25079-    EQ_TAC THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml-25080-    EXISTS_TAC `k:num->bool` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:25081:    EXISTS_TAC `(lambda i. if i IN k then (x:real^N)$i else &0):real^N` THEN
hol-light-20190729/Multivariate/paths.ml-25082-    SIMP_TAC[LAMBDA_BETA] THEN EXPAND_TAC "k" THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25109-    MP_TAC(ISPECL [`k:num->bool`;
hol-light-20190729/Multivariate/paths.ml:25110:                   `{i | i IN 1..dimindex(:N) /\ rational((x:real^N)$i)}`]
hol-light-20190729/Multivariate/paths.ml-25111-      CARD_SUBSET_LE) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25113-    SIMP_TAC[FINITE_RESTRICT; FINITE_NUMSEG] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:25114:     [RULE_ASSUM_TAC(REWRITE_RULE[GSYM IN_NUMSEG]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-25115-      UNDISCH_TAC `(x:real^N) IN s` THEN EXPAND_TAC "s" THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25211-  ASM_SIMP_TAC[OPEN_IN_SUBTOPOLOGY_REFL; TOPSPACE_EUCLIDEAN; SUBSET_UNIV] THEN
hol-light-20190729/Multivariate/paths.ml:25212:  CONJ_TAC THENL [ASM SET_TAC[]; EXISTS_TAC `g:real^N->real^M`] THEN
hol-light-20190729/Multivariate/paths.ml-25213-  ASM_REWRITE_TAC[homeomorphism]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-25223-  FIRST_X_ASSUM(MP_TAC o SPEC `(p:real^M->real^N) x`) THEN
hol-light-20190729/Multivariate/paths.ml:25224:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-25225-  DISCH_THEN(X_CHOOSE_THEN `t:real^N->bool` MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25228-  SUBGOAL_THEN `(x:real^M) IN UNIONS v` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:25229:   [ASM SET_TAC[]; REWRITE_TAC[IN_UNIONS]] THEN
hol-light-20190729/Multivariate/paths.ml-25230-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `u:real^M->bool` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25243-   [FIRST_X_ASSUM(MP_TAC o MATCH_MP COVERING_SPACE_IMP_SURJECTIVE) THEN
hol-light-20190729/Multivariate/paths.ml:25244:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-25245-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `x:real^M` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25258-  DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `y:real^N`) THEN
hol-light-20190729/Multivariate/paths.ml:25259:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-25260-  DISCH_THEN(X_CHOOSE_THEN `u:real^N->bool` MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25265-   `?x. x IN {x | x IN c /\ (p:real^M->real^N) x IN u} /\ x IN t /\ p x = y`
hol-light-20190729/Multivariate/paths.ml:25266:  MP_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-25267-  DISCH_THEN(X_CHOOSE_THEN `x:real^M` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25273-  EXISTS_TAC `IMAGE (p:real^M->real^N) (t INTER v)` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:25274:   [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-25275-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25277-    {z | z IN u /\ q z IN (t INTER v)}`
hol-light-20190729/Multivariate/paths.ml:25278:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-25279-  MATCH_MP_TAC OPEN_IN_TRANS THEN EXISTS_TAC `u:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25312-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:25313:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-25314-  MAP_EVERY X_GEN_TAC [`u:real^M->bool`; `v:real^N->bool`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25325-      HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:25326:    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-25327-
##############################################
hol-light-20190729/Multivariate/paths.ml-25340-   [FIRST_X_ASSUM(MP_TAC o MATCH_MP COVERING_SPACE_IMP_SURJECTIVE) THEN
hol-light-20190729/Multivariate/paths.ml:25341:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-25342-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `x:real^M` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25352-      REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:25353:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/paths.ml-25354-
##############################################
hol-light-20190729/Multivariate/paths.ml-25386-    REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:25387:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:25388:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:25389:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:25390:    RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-25391-
##############################################
hol-light-20190729/Multivariate/paths.ml-25421-    RULE_ASSUM_TAC(REWRITE_RULE[covering_space]) THEN
hol-light-20190729/Multivariate/paths.ml:25422:    CONJ_TAC THENL [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml:25423:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN FIRST_X_ASSUM(MP_TAC o
hol-light-20190729/Multivariate/paths.ml-25424-      SPECL [`q:real^N->real^M`; `{x | x IN u /\ (p:real^M->real^N) x IN l}`;
##############################################
hol-light-20190729/Multivariate/paths.ml-25426-    ASM_REWRITE_TAC[] THEN DISCH_THEN MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:25427:    REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml-25428-    RULE_ASSUM_TAC(REWRITE_RULE[covering_space]) THEN
hol-light-20190729/Multivariate/paths.ml-25429-    REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:25430:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-25431-    FIRST_ASSUM(MATCH_MP_TAC o MATCH_MP (ONCE_REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/paths.ml-25432-       HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:25433:    RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-25434-
##############################################
hol-light-20190729/Multivariate/paths.ml-25521-        MATCH_MP COVERING_SPACE_LOCAL_HOMEOMORPHISM) THEN
hol-light-20190729/Multivariate/paths.ml:25522:    ANTS_TAC THENL [ASM SET_TAC[]; SIMP_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-25523-    MAP_EVERY X_GEN_TAC [`v:real^M->bool`; `w:real^N->bool`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25537-      REWRITE_TAC[OPEN_IN_OPEN] THEN
hol-light-20190729/Multivariate/paths.ml:25538:      MATCH_MP_TAC MONO_EXISTS THEN SIMP_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-25539-      REWRITE_TAC[SUBSET; IN_ELIM_THM; IN_INTER; VECTOR_SUB_EQ] THEN
hol-light-20190729/Multivariate/paths.ml:25540:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-25541-    MATCH_MP_TAC CONTINUOUS_CLOSED_IN_PREIMAGE_CONSTANT THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25559-    `a:real^P`; `x:real^P`] COVERING_SPACE_LIFT_UNIQUE_GEN) THEN
hol-light-20190729/Multivariate/paths.ml:25560:  ASM_REWRITE_TAC[IN_COMPONENTS_SELF] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-25561-
##############################################
hol-light-20190729/Multivariate/paths.ml-25748-    EXISTS_TAC `(h:real^(1,P)finite_sum->real^N) (pastecart t y)` THEN
hol-light-20190729/Multivariate/paths.ml:25749:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-25750-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25785-    REMOVE_THEN "+" (MP_TAC o SPEC `t:real^1`) THEN
hol-light-20190729/Multivariate/paths.ml:25786:    (ANTS_TAC THENL [ASM SET_TAC[]; SIMP_TAC[IN_INTER]]);
hol-light-20190729/Multivariate/paths.ml-25787-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25802-    DISCH_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:25803:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-25804-  DISCH_THEN(X_CHOOSE_THEN `d:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25829-    REWRITE_TAC[OPEN_IN_SUBTOPOLOGY_REFL; TOPSPACE_EUCLIDEAN; SUBSET_UNIV] THEN
hol-light-20190729/Multivariate/paths.ml:25830:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-25831-    MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25859-  REMOVE_THEN "+" (MP_TAC o SPEC `t:real^1`) THEN
hol-light-20190729/Multivariate/paths.ml:25860:  ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-25861-  FIRST_X_ASSUM(MP_TAC o SPEC `(xx:real^1->real^N) t`) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25946-    ASM_REWRITE_TAC[IN_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:25947:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-25948-    DISCH_THEN(X_CHOOSE_THEN `e:real` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25955-    MP_TAC(ISPECL [`y:real^P`; `e:real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/paths.ml:25956:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-25957-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25982-      REWRITE_TAC[SUBSET; FORALL_PASTECART; PASTECART_IN_PCROSS] THEN
hol-light-20190729/Multivariate/paths.ml:25983:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-25984-      MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN CONJ_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-25991-      MATCH_MP_TAC PCROSS_MONO THEN
hol-light-20190729/Multivariate/paths.ml:25992:      (CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/paths.ml-25993-      ASM_REWRITE_TAC[SUBSET_INTERVAL_1; LIFT_DROP; DROP_VEC;
##############################################
hol-light-20190729/Multivariate/paths.ml-26012-       [FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:26013:        ASM_REWRITE_TAC[PASTECART_IN_PCROSS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-26014-        FIRST_X_ASSUM(MATCH_MP_TAC o GEN_REWRITE_RULE I [SUBSET]) THEN
hol-light-20190729/Multivariate/paths.ml-26015-        MATCH_MP_TAC FUN_IN_IMAGE THEN
hol-light-20190729/Multivariate/paths.ml:26016:        REWRITE_TAC[PASTECART_IN_PCROSS; IN_SING] THEN ASM SET_TAC[]]];
hol-light-20190729/Multivariate/paths.ml-26017-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-26034-     [SIMP_TAC[EXTENSION; IN_UNION; FORALL_PASTECART; PASTECART_IN_PCROSS] THEN
hol-light-20190729/Multivariate/paths.ml:26035:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-26036-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-26044-      SUBGOAL_THEN `(z:real^P) IN q'` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:26045:       [ASM SET_TAC[]; ASM_REWRITE_TAC[PASTECART_IN_PCROSS]] THEN
hol-light-20190729/Multivariate/paths.ml-26046-      COND_CASES_TAC THEN REWRITE_TAC[o_THM] THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-26048-        MATCH_MP_TAC FUN_IN_IMAGE THEN
hol-light-20190729/Multivariate/paths.ml:26049:        REWRITE_TAC[PASTECART_IN_PCROSS; IN_SING] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-26050-        FIRST_X_ASSUM(MATCH_MP_TAC o REWRITE_RULE[SUBSET] o
##############################################
hol-light-20190729/Multivariate/paths.ml-26056-      SUBGOAL_THEN `(z:real^P) IN q'` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:26057:       [ASM SET_TAC[]; ASM_REWRITE_TAC[LIFT_DROP; DROP_VEC]] THEN
hol-light-20190729/Multivariate/paths.ml:26058:      SIMP_TAC[REAL_LE_DIV; REAL_POS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-26059-      REWRITE_TAC[FORALL_PASTECART; PASTECART_IN_PCROSS] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-26061-      SUBGOAL_THEN `(z:real^P) IN q'` ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:26062:       [ASM SET_TAC[]; ASM_REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-26063-      COND_CASES_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/paths.ml-26064-       [FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:26065:        ASM_REWRITE_TAC[PASTECART_IN_PCROSS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-26066-        REWRITE_TAC[o_THM] THEN CONV_TAC SYM_CONV THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-26070-    ASM_REWRITE_TAC[PASTECART_IN_PCROSS; IN_INTER] THEN
hol-light-20190729/Multivariate/paths.ml:26071:    REPEAT(CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/paths.ml-26072-    RULE_ASSUM_TAC(REWRITE_RULE[IN_INTERVAL_1]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-26130-  SUBGOAL_THEN `?b. b IN c /\ (p:real^M->real^N) b = a` CHOOSE_TAC THENL
hol-light-20190729/Multivariate/paths.ml:26131:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-26132-    EXISTS_TAC `(\x. b):real^P->real^M`] THEN
hol-light-20190729/Multivariate/paths.ml:26133:  REWRITE_TAC[CONTINUOUS_ON_CONST] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-26134-
##############################################
hol-light-20190729/Multivariate/paths.ml-26205-    ASM_REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; FORALL_IN_PCROSS] THEN
hol-light-20190729/Multivariate/paths.ml:26206:    SIMP_TAC[FSTCART_PASTECART] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-26207-    DISCH_THEN(X_CHOOSE_THEN `k:real^(1,P)finite_sum->real^M`
##############################################
hol-light-20190729/Multivariate/paths.ml-26484-      ASM_MESON_TAC[CONTINUOUS_ON_SUBSET];
hol-light-20190729/Multivariate/paths.ml:26485:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-26486-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-26698-        GEN_REWRITE_RULE I [covering_space]) THEN
hol-light-20190729/Multivariate/paths.ml:26699:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-26700-  DISCH_THEN(X_CHOOSE_THEN `w:real^N->bool` MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-26706-  MATCH_MP_TAC(TAUT `q /\ (p ==> r) ==> (p <=> q) ==> r`) THEN
hol-light-20190729/Multivariate/paths.ml:26707:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_UNIONS]] THEN
hol-light-20190729/Multivariate/paths.ml-26708-  DISCH_THEN(X_CHOOSE_THEN `w':real^M->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-26719-     [`{x | x IN u /\ (f:real^P->real^N) x IN w}`; `y:real^P`]) THEN
hol-light-20190729/Multivariate/paths.ml:26720:    ANTS_TAC THENL [ALL_TAC; MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml:26721:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-26722-    MATCH_MP_TAC CONTINUOUS_OPEN_IN_PREIMAGE_GEN THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-26740-    UNDISCH_TAC `open_in (subtopology euclidean c) (n:real^M->bool)` THEN
hol-light-20190729/Multivariate/paths.ml:26741:    REWRITE_TAC[OPEN_IN_OPEN] THEN MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:26742:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-26743-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-26763-  ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:26764:   [MATCH_MP_TAC SUBSET_PATH_IMAGE_JOIN THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-26765-  ANTS_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-26777-             CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:26778:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:26779:      REWRITE_TAC[pathfinish] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-26780-    MATCH_MP_TAC SUBSET_PATH_IMAGE_JOIN THEN ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:26781:    REWRITE_TAC[PATH_IMAGE_COMPOSE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-26782-    X_GEN_TAC `tt:real^1` THEN REWRITE_TAC[IN_INTERVAL_1; DROP_VEC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-26792-    ASM_SIMP_TAC[] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:26793:    RULE_ASSUM_TAC(REWRITE_RULE[path_image]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-26794-
##############################################
hol-light-20190729/Multivariate/paths.ml-26861-  MATCH_MP_TAC(TAUT `q /\ (p ==> r) ==> (p <=> q) ==> r`) THEN
hol-light-20190729/Multivariate/paths.ml:26862:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_IMAGE]] THEN
hol-light-20190729/Multivariate/paths.ml-26863-  ASM_MESON_TAC[]);;
##############################################
hol-light-20190729/Multivariate/paths.ml-26952-      REWRITE_TAC[PATH_IMAGE_COMPOSE; PATH_IMAGE_LINEPATH] THEN
hol-light-20190729/Multivariate/paths.ml:26953:      REWRITE_TAC[SEGMENT_REFL] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-26954-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-26989-    [ASM_MESON_TAC[PATH_CONTINUOUS_IMAGE; CONTINUOUS_ON_SUBSET];
hol-light-20190729/Multivariate/paths.ml:26990:     ASM SET_TAC[]]));;
hol-light-20190729/Multivariate/paths.ml-26991-
##############################################
hol-light-20190729/Multivariate/paths.ml-27013-  FIRST_X_ASSUM(MP_TAC o SPEC `(p:real^M->real^N) a`) THEN
hol-light-20190729/Multivariate/paths.ml:27014:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-27015-  DISCH_THEN(X_CHOOSE_THEN `u:real^N->bool` MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27031-        GEN_REWRITE_RULE I [LIMPT_INFINITE_OPEN]) THEN
hol-light-20190729/Multivariate/paths.ml:27032:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[INFINITE]] THEN
hol-light-20190729/Multivariate/paths.ml-27033-  MATCH_MP_TAC(MESON[FINITE_SING; FINITE_SUBSET]
hol-light-20190729/Multivariate/paths.ml-27034-   `(?a. s SUBSET {a}) ==> FINITE s`) THEN
hol-light-20190729/Multivariate/paths.ml:27035:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-27036-
##############################################
hol-light-20190729/Multivariate/paths.ml-27064-    FIRST_ASSUM(MP_TAC o MATCH_MP COVERING_SPACE_IMP_SURJECTIVE) THEN
hol-light-20190729/Multivariate/paths.ml:27065:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-27066-
##############################################
hol-light-20190729/Multivariate/paths.ml-27076-  REWRITE_TAC[closed_in; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:27077:   [ASM SET_TAC[]; ONCE_REWRITE_TAC[OPEN_IN_SUBOPEN]] THEN
hol-light-20190729/Multivariate/paths.ml-27078-  X_GEN_TAC `y:real^N` THEN REWRITE_TAC[IN_DIFF] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27086-  ASM_CASES_TAC `uu:(real^M->bool)->bool = {}` THENL
hol-light-20190729/Multivariate/paths.ml:27087:   [ASM_REWRITE_TAC[UNIONS_0; NOT_IN_EMPTY] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-27088-  EXISTS_TAC `INTERS {IMAGE (p:real^M->real^N) (u DIFF t) | u IN uu}` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27096-      ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:27097:       [RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27098-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27102-       [FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/paths.ml:27103:          FINITE_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27104-        MATCH_MP_TAC EQ_IMP THEN MATCH_MP_TAC FINITE_IMAGE_INJ_EQ THEN
hol-light-20190729/Multivariate/paths.ml-27105-        FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [pairwise]) THEN
hol-light-20190729/Multivariate/paths.ml:27106:        REPEAT(MATCH_MP_TAC MONO_FORALL THEN GEN_TAC) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-27107-      X_GEN_TAC `u:real^M->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27115-      EXISTS_TAC `(:real^M) DIFF k` THEN
hol-light-20190729/Multivariate/paths.ml:27116:      ASM_REWRITE_TAC[GSYM closed] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-27117-    REWRITE_TAC[IN_INTERS; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27119-    REPEAT(FIRST_X_ASSUM(MP_TAC o SPEC `u:real^M->bool`)) THEN
hol-light-20190729/Multivariate/paths.ml:27120:    ASM_REWRITE_TAC[homeomorphism] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27121-    REWRITE_TAC[SUBSET; INTERS_GSPEC; IN_DIFF; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/paths.ml-27122-    X_GEN_TAC `z:real^N` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/paths.ml:27123:    CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_IMAGE]] THEN
hol-light-20190729/Multivariate/paths.ml-27124-    DISCH_THEN(X_CHOOSE_THEN `w:real^M` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27130-    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN
hol-light-20190729/Multivariate/paths.ml:27131:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml:27132:    REWRITE_TAC[IN_UNIONS] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-27133-
##############################################
hol-light-20190729/Multivariate/paths.ml-27150-      ASM_REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml:27151:    ASM SET_TAC[]) in
hol-light-20190729/Multivariate/paths.ml-27152-  REPEAT STRIP_TAC THEN EQ_TAC THEN REPEAT STRIP_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-27170-      `!x. ?v. x IN c /\ (p:real^M->real^N) x = b ==> v IN vv /\ x IN v`
hol-light-20190729/Multivariate/paths.ml:27171:    MP_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[SKOLEM_THM]] THEN
hol-light-20190729/Multivariate/paths.ml-27172-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `f:real^M->real^M->bool` THEN
hol-light-20190729/Multivariate/paths.ml-27173-    REWRITE_TAC[IN_ELIM_THM] THEN DISCH_TAC THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:27174:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-27175-    MAP_EVERY X_GEN_TAC [`x:real^M`; `y:real^M`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27178-    ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:27179:    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27180-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27194-    REWRITE_TAC[CLOSED_IN_LIMPT; SUBSET; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/paths.ml:27195:    CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `a:real^M`] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml-27196-    FIRST_ASSUM(MP_TAC o MATCH_MP LIMPT_OF_SEQUENCE_SUBSEQUENCE) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27206-         [ASM_MESON_TAC[COVERING_SPACE_IMP_CONTINUOUS];
hol-light-20190729/Multivariate/paths.ml:27207:          REWRITE_TAC[o_DEF] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-27208-        REWRITE_TAC[o_ASSOC] THEN MATCH_MP_TAC LIM_SUBSEQUENCE THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27211-        MATCH_MP_TAC ALWAYS_EVENTUALLY THEN REWRITE_TAC[o_DEF] THEN
hol-light-20190729/Multivariate/paths.ml:27212:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-27213-      SUBGOAL_THEN `?u. u IN vv /\ (a:real^M) IN u` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:27214:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-27215-      SUBGOAL_THEN `?w:real^M->bool. open w /\ u = c INTER w`
##############################################
hol-light-20190729/Multivariate/paths.ml-27223-      DISCH_THEN(MP_TAC o SPEC `c:real^M->bool`) THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:27224:       [ASM SET_TAC[]; REWRITE_TAC[INTER_ASSOC]] THEN
hol-light-20190729/Multivariate/paths.ml-27225-      ONCE_REWRITE_TAC[GSYM CONTRAPOS_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27233-        MATCH_MP lemma) THEN
hol-light-20190729/Multivariate/paths.ml:27234:      ASM_REWRITE_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-27235-      MESON_TAC[FINITE_SUBSET; FINITE_SING; INTER_COMM]];
##############################################
hol-light-20190729/Multivariate/paths.ml-27239-    SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:27240:     [REWRITE_TAC[GSYM IMAGE_o; o_DEF] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-27241-    REWRITE_TAC[CLOSED_IN_LIMPT] THEN
hol-light-20190729/Multivariate/paths.ml-27242-    DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC (MP_TAC o SPEC `b:real^N`)) THEN
hol-light-20190729/Multivariate/paths.ml:27243:    ASM_REWRITE_TAC[NOT_IMP] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-27244-    REWRITE_TAC[LIMPT_SEQUENTIAL_INJ] THEN
hol-light-20190729/Multivariate/paths.ml:27245:    EXISTS_TAC `y:num->real^N` THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-27246-
##############################################
hol-light-20190729/Multivariate/paths.ml-27260-    ASM_REWRITE_TAC[] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/paths.ml:27261:    MATCH_MP_TAC CONNECTED_IMP_PERFECT THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-27262-
##############################################
hol-light-20190729/Multivariate/paths.ml-27335-    EXISTS_TAC `y INTER v:real^M->bool` THEN
hol-light-20190729/Multivariate/paths.ml:27336:    ASM_SIMP_TAC[OPEN_INTER; IN_INTER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27337-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27359-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [HOMEOMORPHISM]) THEN
hol-light-20190729/Multivariate/paths.ml:27360:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-27361-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27441-      FIRST_X_ASSUM(MP_TAC o SPEC `x:real^M`) THEN
hol-light-20190729/Multivariate/paths.ml:27442:      ASM_REWRITE_TAC[HOMEOMORPHISM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27443-      DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27447-                   FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/paths.ml:27448:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27449-      DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27468-        FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [HOMEOMORPHISM])] THEN
hol-light-20190729/Multivariate/paths.ml:27469:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27470-      FIRST_ASSUM(MATCH_MP_TAC o MATCH_MP (ONCE_REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/paths.ml-27472-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [HOMEOMORPHISM]) THEN
hol-light-20190729/Multivariate/paths.ml:27473:      REPEAT STRIP_TAC THENL [ASM SET_TAC[]; ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-27474-      REWRITE_TAC[GSYM SUBSET_ANTISYM_EQ] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/paths.ml-27480-       `z IN IMAGE p s /\ P z ==> z IN IMAGE p {x | x IN s /\ P(p x)}`) THEN
hol-light-20190729/Multivariate/paths.ml:27481:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-27482-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27567-      EXISTS_TAC `v INTER w:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:27568:      ASM_SIMP_TAC[IN_INTER; OPEN_IN_INTER; INTER_SUBSET] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-27569-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27578-    RULE_ASSUM_TAC(REWRITE_RULE[UNIONS_IMAGE]) THEN
hol-light-20190729/Multivariate/paths.ml:27579:    EQ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-27580-    DISCH_THEN(X_CHOOSE_THEN `z:real^M` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27584-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:27585:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27586-    X_GEN_TAC `x:real^M` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27597-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [HOMEOMORPHISM])] THEN
hol-light-20190729/Multivariate/paths.ml:27598:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27599-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [pairwise]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27610-     (ONCE_REWRITE_RULE[IMP_CONJ] HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/paths.ml:27611:    ASM_REWRITE_TAC[SUBSET_RESTRICT] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-27612-
##############################################
hol-light-20190729/Multivariate/paths.ml-27716-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:27717:    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27718-    X_GEN_TAC `u:real^M->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27722-      REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:27723:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/paths.ml-27724-
##############################################
hol-light-20190729/Multivariate/paths.ml-27801-  STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:27802:   [RULE_ASSUM_TAC(REWRITE_RULE[covering_space]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27803-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27825-      RULE_ASSUM_TAC(REWRITE_RULE[covering_space]) THENL
hol-light-20190729/Multivariate/paths.ml:27826:       [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-27827-      REWRITE_TAC[o_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27840-        ASM_MESON_TAC[CONTINUOUS_ON_SUBSET];
hol-light-20190729/Multivariate/paths.ml:27841:        RULE_ASSUM_TAC(REWRITE_RULE[covering_space]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27842-        MATCH_MP_TAC PATH_CONTINUOUS_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27849-          FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/paths.ml:27850:            CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml:27851:        RULE_ASSUM_TAC(REWRITE_RULE[covering_space]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27852-        MATCH_MP_TAC HOMOTOPIC_PATHS_EQ THEN ASM_SIMP_TAC[o_THM] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27857-          REWRITE_TAC[PATH_IMAGE_COMPOSE] THEN
hol-light-20190729/Multivariate/paths.ml:27858:          RULE_ASSUM_TAC(REWRITE_RULE[covering_space]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:27859:          RULE_ASSUM_TAC(REWRITE_RULE[path_image]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-27860-        MATCH_MP_TAC PATH_CONTINUOUS_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27862-        ASM_MESON_TAC[CONTINUOUS_ON_SUBSET];
hol-light-20190729/Multivariate/paths.ml:27863:        RULE_ASSUM_TAC(REWRITE_RULE[covering_space]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-27864-      DISCH_THEN SUBST1_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27887-     [FIRST_ASSUM(MP_TAC o MATCH_MP COVERING_SPACE_IMP_SURJECTIVE) THEN
hol-light-20190729/Multivariate/paths.ml:27888:      ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27889-      DISCH_THEN(X_CHOOSE_THEN `t:real^P->bool` MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27896-    DISCH_THEN(MP_TAC o SPEC `(p':real^N->real^P) z`) THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:27897:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27898-      DISCH_THEN(X_CHOOSE_THEN `t':real^P->bool` MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27920-      REWRITE_TAC[SET_RULE `{x | x IN v /\ P x} = v INTER {x | P x}`] THEN
hol-light-20190729/Multivariate/paths.ml:27921:      ASM_REWRITE_TAC[GSYM INTER_UNIONS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27922-      REWRITE_TAC[FORALL_IN_GSPEC] THEN REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27941-        MP_TAC th THEN MATCH_MP_TAC(ONCE_REWRITE_RULE[IMP_CONJ_ALT]
hol-light-20190729/Multivariate/paths.ml:27942:          HOMEOMORPHISM_OF_SUBSETS)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27943-      REWRITE_TAC[SET_RULE `{x | x IN v /\ P x} = v INTER {x | P x}`] THEN
hol-light-20190729/Multivariate/paths.ml:27944:      ASM_REWRITE_TAC[GSYM INTER_UNIONS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27945-      REWRITE_TAC[FORALL_IN_GSPEC] THEN REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27964-        MP_TAC th THEN MATCH_MP_TAC(ONCE_REWRITE_RULE[IMP_CONJ_ALT]
hol-light-20190729/Multivariate/paths.ml:27965:          HOMEOMORPHISM_OF_SUBSETS)) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-27966-    ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-27967-  SUBGOAL_THEN `?v':real^N->bool. v' IN vv' /\ z IN v'` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:27968:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-27969-  SUBGOAL_THEN `v' SUBSET {x | x IN c' /\ (p':real^N->real^P) x IN t}`
hol-light-20190729/Multivariate/paths.ml:27970:  ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-27971-  SUBGOAL_THEN `open_in (subtopology euclidean c') (v':real^N->bool) /\
##############################################
hol-light-20190729/Multivariate/paths.ml-27979-    SUBGOAL_THEN `IMAGE (q:real^M->real^N) u SUBSET UNIONS vv'` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:27980:     [ASM_REWRITE_TAC[IN_ELIM_THM; SUBSET; FORALL_IN_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-27981-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-27986-      ==> s SUBSET UNIONS uu ==> ?u. u IN uu /\ s SUBSET u`) THEN
hol-light-20190729/Multivariate/paths.ml:27987:    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-27988-    X_GEN_TAC `v:real^N->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28001-      EXISTS_TAC `c':real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:28002:      (CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/paths.ml-28003-      MATCH_MP_TAC OPEN_IN_INTER THEN ASM_SIMP_TAC[OPEN_IN_REFL] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28007-       `a IN s ==> a INSERT (s DELETE a) = s`] THEN
hol-light-20190729/Multivariate/paths.ml:28008:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-28009-      MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-28020-   [MATCH_MP_TAC SUBSET_ANTISYM THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:28021:     [ASM SET_TAC[]; GEN_REWRITE_TAC I [SUBSET]] THEN
hol-light-20190729/Multivariate/paths.ml-28022-    REWRITE_TAC[IN_UNIONS; IN_ELIM_THM] THEN X_GEN_TAC `x:real^M` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28024-    SUBGOAL_THEN `(x:real^M) IN UNIONS vv` MP_TAC THENL
hol-light-20190729/Multivariate/paths.ml:28025:     [ASM_REWRITE_TAC[] THEN ASM SET_TAC[]; REWRITE_TAC[IN_UNIONS]] THEN
hol-light-20190729/Multivariate/paths.ml-28026-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `u:real^M->bool` THEN
hol-light-20190729/Multivariate/paths.ml:28027:    RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28028-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/paths.ml-28041-      RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN
hol-light-20190729/Multivariate/paths.ml:28042:      REWRITE_TAC[o_DEF] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/paths.ml-28043-
##############################################
hol-light-20190729/Multivariate/paths.ml-28064-     [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; PATH_CONTINUOUS_IMAGE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:28065:    REWRITE_TAC[PATH_IMAGE_COMPOSE] THEN ASM SET_TAC[] in
hol-light-20190729/Multivariate/paths.ml-28066-  REPEAT STRIP_TAC THEN REWRITE_TAC[fundamental_group] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28106-        EXISTS_TAC `c:real^M->bool` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/paths.ml:28107:        RULE_ASSUM_TAC(REWRITE_RULE[covering_space]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28108-        MATCH_MP_TAC HOMOTOPIC_PATHS_EQ THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28155-      CONV_TAC SELECT_CONV THEN ASM_MESON_TAC[HOMOTOPIC_PATHS_REFL];
hol-light-20190729/Multivariate/paths.ml:28156:      ASM MESON_TAC[HOMOTOPIC_PATHS_IMP_PATH; HOMOTOPIC_PATHS_IMP_SUBSET;
hol-light-20190729/Multivariate/paths.ml-28157-                HOMOTOPIC_PATHS_IMP_PATHSTART;
##############################################
hol-light-20190729/Multivariate/paths.ml-28286-  ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:28287:   [RULE_ASSUM_TAC(REWRITE_RULE[covering_space]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28288-    DISCH_TAC THEN FIRST_ASSUM(MP_TAC o MATCH_MP CARD_FINITE_CONG)] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28304-   `FINITE s ==> (CARD s = n <=> s HAS_SIZE n)`] THEN
hol-light-20190729/Multivariate/paths.ml:28305:  CONV_TAC(LAND_CONV HAS_SIZE_CONV) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-28306-
##############################################
hol-light-20190729/Multivariate/paths.ml-28448-       [REWRITE_TAC[SUBTOPOLOGY_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/paths.ml:28449:        AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28450-        ONCE_REWRITE_TAC[CONTINUOUS_MAP_IN_SUBTOPOLOGY] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28498-    ASM_MESON_TAC[CONTINUOUS_ON_SUBSET];
hol-light-20190729/Multivariate/paths.ml:28499:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:28500:    REWRITE_TAC[o_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28501-    ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-28502-  SUBGOAL_THEN `IMAGE ((h:real^N->real^M) o (f:real^M->real^N)) s SUBSET t`
hol-light-20190729/Multivariate/paths.ml:28503:  ASSUME_TAC THENL [REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-28504-  ABBREV_TAC `w = IMAGE ((h:real^N->real^M) o (f:real^M->real^N)) s` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28524-   [FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:28525:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28526-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28563-   [FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:28564:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28565-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28624-  ASSUME_TAC(ISPEC `s:real^M->bool` RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/paths.ml:28625:  CONJ_TAC THENL [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-28626-
##############################################
hol-light-20190729/Multivariate/paths.ml-28636-   [EXISTS_TAC `f:real^M->real^N`; EXISTS_TAC `g:real^N->real^M`] THEN
hol-light-20190729/Multivariate/paths.ml:28637:  ASM_REWRITE_TAC[HULL_SUBSET] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-28638-
##############################################
hol-light-20190729/Multivariate/paths.ml-28664-  ASM_REWRITE_TAC[DIMINDEX_1; DIMINDEX_GE_1] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:28665:   [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-28666-
##############################################
hol-light-20190729/Multivariate/paths.ml-28677-   `{x | x IN IMAGE f s /\ g x IN t} = IMAGE (f:real^M->real^N) (s INTER t)`
hol-light-20190729/Multivariate/paths.ml:28678:  SUBST1_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC OPEN_OPEN_IN_TRANS] THEN
hol-light-20190729/Multivariate/paths.ml-28679-  REWRITE_TAC[CONJ_ASSOC] THEN CONJ_TAC THENL [ALL_TAC; SET_TAC[]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28697-    FIRST_ASSUM(SUBST1_TAC o SYM) THEN
hol-light-20190729/Multivariate/paths.ml:28698:    MATCH_MP_TAC INJECTIVE_INTO_1D_IMP_OPEN_MAP THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28699-    MATCH_MP_TAC CONTINUOUS_INVERSE_INJECTIVE_PROPER_MAP THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28706-    STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:28707:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28708-      ASM_REWRITE_TAC[COMPACT_EMPTY; CONNECTED_EMPTY];
##############################################
hol-light-20190729/Multivariate/paths.ml-28714-    REWRITE_TAC[open_in; SUBSET; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/paths.ml:28715:    CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `x:real^N` THEN DISCH_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-28716-    ABBREV_TAC `u = connected_component w (x:real^N)` THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28729-            ==> y IN IMAGE f u`
hol-light-20190729/Multivariate/paths.ml:28730:      ASSUME_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-28731-      REPEAT(FIRST_X_ASSUM(K ALL_TAC o
##############################################
hol-light-20190729/Multivariate/paths.ml-28758-      STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:28759:       [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28760-        ASM_REWRITE_TAC[COMPACT_EMPTY; CONNECTED_EMPTY];
##############################################
hol-light-20190729/Multivariate/paths.ml-28788-    (ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:28789:      [CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml:28790:       CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-28791-       REWRITE_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/paths.ml-28795-       EXISTS_TAC `s:real^N->bool` THEN
hol-light-20190729/Multivariate/paths.ml:28796:       CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-28797-       MATCH_MP_TAC CLOSED_IN_INTER THEN REWRITE_TAC[CLOSED_IN_REFL] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28807-    (DISCH_THEN(DISJ_CASES_THEN2 ASSUME_TAC MP_TAC) THENL
hol-light-20190729/Multivariate/paths.ml:28808:      [EXISTS_TAC `&1` THEN REWRITE_TAC[REAL_LT_01] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28809-       ALL_TAC]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28812-    ASM_REWRITE_TAC[GSYM DIST_NZ] THEN
hol-light-20190729/Multivariate/paths.ml:28813:    (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/paths.ml-28814-    X_GEN_TAC `z:real^1` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28844-  DISCH_TAC THEN ASM_REWRITE_TAC[homeomorphism] THEN
hol-light-20190729/Multivariate/paths.ml:28845:  ASM_SIMP_TAC[CONTINUOUS_ON_INVERSE_OPEN] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-28846-
##############################################
hol-light-20190729/Multivariate/paths.ml-28889-      EXISTS_TAC `interval(c:real^N,d)`] THEN
hol-light-20190729/Multivariate/paths.ml:28890:    ASM_REWRITE_TAC[OPEN_INTERVAL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28891-    TRANS_TAC HOMEOMORPHIC_TRANS
##############################################
hol-light-20190729/Multivariate/paths.ml-28912-      X_GEN_TAC `y:real^N` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/paths.ml:28913:      EXISTS_TAC `(lambda i. (y:real^N)$i):real^M` THEN
hol-light-20190729/Multivariate/paths.ml-28914-      SIMP_TAC[CART_EQ; LAMBDA_BETA] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28948-   [SUBGOAL_THEN `t = IMAGE (f:real^M->real^N) s` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:28949:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28950-      MATCH_MP_TAC CONTINUOUS_IMAGE_SUBSET_INTERIOR THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28952-    SUBGOAL_THEN `s = IMAGE (g:real^N->real^M) t` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:28953:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28954-      MATCH_MP_TAC CONTINUOUS_IMAGE_SUBSET_INTERIOR THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28992-    (!y:real^N. y IN interior t ==> g y IN interior s)`
hol-light-20190729/Multivariate/paths.ml:28993:  MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-28994-  REWRITE_TAC[SET_RULE `(!x. x IN s ==> f x IN t) <=> IMAGE f s SUBSET t`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-28996-   [SUBGOAL_THEN `t = IMAGE (f:real^M->real^N) s` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:28997:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-28998-      MATCH_MP_TAC CONTINUOUS_IMAGE_SUBSET_INTERIOR THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29000-    SUBGOAL_THEN `s = IMAGE (g:real^N->real^M) t` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:29001:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29002-      MATCH_MP_TAC CONTINUOUS_IMAGE_SUBSET_INTERIOR THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29036-  REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:29037:   [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-29038-  MATCH_MP_TAC SUBSET_TRANS THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29055-   [SUBGOAL_THEN `t = IMAGE (f:real^M->real^N) s` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:29056:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29057-      MATCH_MP_TAC CONTINUOUS_IMAGE_SUBSET_RELATIVE_INTERIOR THEN
hol-light-20190729/Multivariate/paths.ml-29058-      EXISTS_TAC `t:real^N->bool` THEN ASM_REWRITE_TAC[INT_LE_REFL] THEN
hol-light-20190729/Multivariate/paths.ml:29059:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-29060-    SUBGOAL_THEN `s = IMAGE (g:real^N->real^M) t` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:29061:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29062-      MATCH_MP_TAC CONTINUOUS_IMAGE_SUBSET_RELATIVE_INTERIOR THEN
hol-light-20190729/Multivariate/paths.ml-29063-      EXISTS_TAC `s:real^M->bool` THEN ASM_REWRITE_TAC[INT_LE_REFL] THEN
hol-light-20190729/Multivariate/paths.ml:29064:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-29065-    ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; RELATIVE_INTERIOR_SUBSET];
##############################################
hol-light-20190729/Multivariate/paths.ml-29109-    (!y:real^N. y IN relative_interior t ==> g y IN relative_interior s)`
hol-light-20190729/Multivariate/paths.ml:29110:  MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-29111-  REWRITE_TAC[SET_RULE `(!x. x IN s ==> f x IN t) <=> IMAGE f s SUBSET t`] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29113-   [SUBGOAL_THEN `t = IMAGE (f:real^M->real^N) s` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:29114:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29115-      MATCH_MP_TAC CONTINUOUS_IMAGE_SUBSET_RELATIVE_INTERIOR THEN
hol-light-20190729/Multivariate/paths.ml-29116-      EXISTS_TAC `t:real^N->bool` THEN ASM_REWRITE_TAC[INT_LE_REFL] THEN
hol-light-20190729/Multivariate/paths.ml:29117:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-29118-    SUBGOAL_THEN `s = IMAGE (g:real^N->real^M) t` SUBST1_TAC THENL
hol-light-20190729/Multivariate/paths.ml:29119:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29120-      MATCH_MP_TAC CONTINUOUS_IMAGE_SUBSET_RELATIVE_INTERIOR THEN
hol-light-20190729/Multivariate/paths.ml-29121-      EXISTS_TAC `s:real^M->bool` THEN ASM_REWRITE_TAC[INT_LE_REFL] THEN
hol-light-20190729/Multivariate/paths.ml:29122:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/paths.ml-29123-
##############################################
hol-light-20190729/Multivariate/paths.ml-29166-    EXISTS_TAC `(g:real^N->real^N) l` THEN
hol-light-20190729/Multivariate/paths.ml:29167:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-29168-    MATCH_MP_TAC LIM_TRANSFORM_EVENTUALLY THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29170-    REWRITE_TAC[o_DEF] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:29171:     [MATCH_MP_TAC ALWAYS_EVENTUALLY THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29172-      MATCH_MP_TAC LIM_CONTINUOUS_FUNCTION THEN ASM_SIMP_TAC[GSYM o_DEF] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29175-    MATCH_MP_TAC INVARIANCE_OF_DOMAIN THEN
hol-light-20190729/Multivariate/paths.ml:29176:    ASM_REWRITE_TAC[OPEN_UNIV] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-29177-
##############################################
hol-light-20190729/Multivariate/paths.ml-29232-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:29233:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:29234:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29235-    RULE_ASSUM_TAC(REWRITE_RULE[SUBSET; IN_DELETE]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29245-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:29246:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml:29247:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29248-    RULE_ASSUM_TAC(REWRITE_RULE[SUBSET; IN_DELETE]) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29261-    CONJ_TAC THENL
hol-light-20190729/Multivariate/paths.ml:29262:     [REWRITE_TAC[IMAGE_UNION] THEN BINOP_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml:29263:    REWRITE_TAC[IMAGE_o] THEN AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/paths.ml-29264-
##############################################
hol-light-20190729/Multivariate/paths.ml-29422-    ASM_REWRITE_TAC[BALL_EQ_EMPTY; OPEN_BALL; REAL_NOT_LE] THEN
hol-light-20190729/Multivariate/paths.ml:29423:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29424-    DISCH_THEN(MP_TAC o MATCH_MP lemma) THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29469-       [TOPSPACE_EUCLIDEAN; HOMEOMORPHIC_EQ_EVERYTHING_MAP]) THEN
hol-light-20190729/Multivariate/paths.ml:29470:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-29471-      MATCH_MP_TAC EQ_IMP THEN MATCH_MP_TAC CARD_EQ_CONG] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29566-    FIRST_X_ASSUM(MP_TAC o CONV_RULE HAS_SIZE_CONV) THEN
hol-light-20190729/Multivariate/paths.ml:29567:    STRIP_TAC THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29568-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29598-      ASM_REWRITE_TAC[SUBSET_UNIV; CONNECTED_UNIV; OPEN_UNIV];
hol-light-20190729/Multivariate/paths.ml:29599:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/paths.ml-29600-    X_GEN_TAC `t:real^N->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29607-    ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:29608:     [RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29609-      DISCH_THEN(ASSUME_TAC o MATCH_MP HOMEOMORPHISM_IMP_HOMEOMORPHIC)] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29611-    ANTS_TAC THENL
hol-light-20190729/Multivariate/paths.ml:29612:     [RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29613-      MATCH_MP_TAC EQ_IMP] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29684-  SUBGOAL_THEN `components((:real^N) DIFF s) = {ins,out}` SUBST_ALL_TAC THENL
hol-light-20190729/Multivariate/paths.ml:29685:   [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/paths.ml-29686-  MATCH_MP_TAC COMPONENTS_UNIQUE_2 THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29748-  REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
hol-light-20190729/Multivariate/paths.ml:29749:  STRIP_TAC THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-29750-
##############################################
hol-light-20190729/Multivariate/paths.ml-29780-  MP_TAC(ISPEC `path_image g:real^2->bool` INSIDE_INTER_OUTSIDE) THEN
hol-light-20190729/Multivariate/paths.ml:29781:  REPLICATE_TAC 2 STRIP_TAC THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/paths.ml-29782-
##############################################
hol-light-20190729/Multivariate/paths.ml-29828-  `?w z:real^N. w IN sphere(a,r) /\ z IN sphere(a,r) /\ ~(w IN s) /\ ~(z IN t)`
hol-light-20190729/Multivariate/paths.ml:29829:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/paths.ml-29830-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29873-      CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/paths.ml:29874:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29875-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29887-        HOMEOMORPHIC_SELF_IMAGE)) THEN
hol-light-20190729/Multivariate/paths.ml:29888:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29889-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29985-  STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/paths.ml:29986:   [RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29987-    ASM_REWRITE_TAC[]] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-29994-        HOMEOMORPHIC_SELF_IMAGE) o GEN_REWRITE_RULE I [HOMEOMORPHISM_SYM]) THEN
hol-light-20190729/Multivariate/paths.ml:29995:    ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-29996-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/paths.ml-30015-  (CONJUNCTS_THEN SUBST1_TAC) THENL
hol-light-20190729/Multivariate/paths.ml:30016:   [RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/paths.ml-30017-    REWRITE_TAC[HAS_SIZE]] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-74-  REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:75:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-76-    ASM_MESON_TAC[CONVEX_INTER];
##############################################
hol-light-20190729/Multivariate/polytope.ml-87-  REWRITE_TAC[face_of] THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:88:   [ASM SET_TAC[]; ASM_SIMP_TAC[CONVEX_INTERS]; ASM SET_TAC[]; ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-89-
##############################################
hol-light-20190729/Multivariate/polytope.ml-110-    REWRITE_TAC[EXTENSION] THEN X_GEN_TAC `x:real^N` THEN EQ_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:111:     [ASM MESON_TAC[HULL_INC; SUBSET; IN_INTER]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-112-    ASM_CASES_TAC `t:real^N -> bool = {}` THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-152-    REPEAT GEN_TAC THEN ASM_CASES_TAC `(a:real^N) IN affine hull t` THEN
hol-light-20190729/Multivariate/polytope.ml:153:    ASM_REWRITE_TAC[] THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-154-    ASM_CASES_TAC `a:real^N = b` THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-287-    FIRST_X_ASSUM MATCH_MP_TAC THEN EXISTS_TAC `b:real^N` THEN
hol-light-20190729/Multivariate/polytope.ml:288:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/polytope.ml-289-    SUBGOAL_THEN `~(b:real^N = d)` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-321-    MP_TAC(ISPEC `t:real^N->bool` RELATIVE_INTERIOR_SUBSET)] THEN
hol-light-20190729/Multivariate/polytope.ml:322:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-323-
##############################################
hol-light-20190729/Multivariate/polytope.ml-330-  FIRST_ASSUM(MP_TAC o MATCH_MP FACE_OF_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/polytope.ml:331:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-332-
##############################################
hol-light-20190729/Multivariate/polytope.ml-349-  MP_TAC(ISPEC `u:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/polytope.ml:350:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-351-
##############################################
hol-light-20190729/Multivariate/polytope.ml-358-        SUBSET_OF_FACE_OF_AFFINE_HULL) THEN
hol-light-20190729/Multivariate/polytope.ml:359:  FIRST_ASSUM(MP_TAC o MATCH_MP FACE_OF_IMP_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-360-
##############################################
hol-light-20190729/Multivariate/polytope.ml-560-   [REWRITE_TAC[VECTOR_ARITH `&2 % a - b:real^N = a + &1 % (a - b)`] THEN
hol-light-20190729/Multivariate/polytope.ml:561:    MATCH_MP_TAC IN_AFFINE_ADD_MUL_DIFF THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-562-    EXISTS_TAC `&1 / &2` THEN CONV_TAC REAL_RAT_REDUCE_CONV THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-596-    SUBGOAL_THEN `f = (s:real^N->bool) INSERT (f DELETE s)` MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:597:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-598-      DISCH_THEN(fun th -> GEN_REWRITE_TAC (funpow 2 RAND_CONV) [th])] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-605-    ASM_REWRITE_TAC[] THEN REWRITE_TAC[SUBSET; IN_INTERS; IN_DELETE] THEN
hol-light-20190729/Multivariate/polytope.ml:606:    ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml-607-  REPEAT STRIP_TAC THEN ASM_CASES_TAC
##############################################
hol-light-20190729/Multivariate/polytope.ml-616-    REPEAT(DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC)) THEN
hol-light-20190729/Multivariate/polytope.ml:617:    ASM_REWRITE_TAC[PSUBSET; INTER_SUBSET] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml-618-  FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE BINDER_CONV
##############################################
hol-light-20190729/Multivariate/polytope.ml-662-      ASM_REWRITE_TAC[] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:663:       [MATCH_MP_TAC FACE_OF_INTERS THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-664-        FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [GSYM MEMBER_NOT_EMPTY] o
##############################################
hol-light-20190729/Multivariate/polytope.ml-667-        FIRST_X_ASSUM(MP_TAC o SPEC `e:real^N->bool`) THEN
hol-light-20190729/Multivariate/polytope.ml:668:        ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-669-        MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/polytope.ml-672-        FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP FACE_OF_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/polytope.ml:673:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-674-      DISCH_TAC THEN REWRITE_TAC[GSYM INT_OF_NUM_SUC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-715-    REPEAT(DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC)) THEN
hol-light-20190729/Multivariate/polytope.ml:716:    ASM_REWRITE_TAC[PSUBSET; INTER_SUBSET] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml-717-  FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE BINDER_CONV
##############################################
hol-light-20190729/Multivariate/polytope.ml-832-    SUBGOAL_THEN `(x:real^N) IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:833:     [ASM SET_TAC[]; ASM_SIMP_TAC[IN_SEGMENT]] THEN
hol-light-20190729/Multivariate/polytope.ml-834-    ASM_SIMP_TAC[VECTOR_MUL_RCANCEL; REAL_LT_IMP_NE] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-1004-    SUBGOAL_THEN `~(relative_interior s:real^N->bool = {})` MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:1005:     [ASM_SIMP_TAC[RELATIVE_INTERIOR_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-1006-      MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/polytope.ml-1023-  DISCH_THEN(MP_TAC o MATCH_MP FACE_OF_SUBSET_RELATIVE_BOUNDARY) THEN
hol-light-20190729/Multivariate/polytope.ml:1024:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-1025-
##############################################
hol-light-20190729/Multivariate/polytope.ml-1063-  REPEAT STRIP_TAC THEN MATCH_MP_TAC FACE_OF_EQ THEN
hol-light-20190729/Multivariate/polytope.ml:1064:  EXISTS_TAC `s:real^N->bool` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-1065-
##############################################
hol-light-20190729/Multivariate/polytope.ml-1081-  MATCH_MP_TAC SUBSET_OF_FACE_OF THEN EXISTS_TAC `s:real^N->bool` THEN
hol-light-20190729/Multivariate/polytope.ml:1082:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-1083-
##############################################
hol-light-20190729/Multivariate/polytope.ml-1094-    MP_TAC(ISPEC `t:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/polytope.ml:1095:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-1096-
##############################################
hol-light-20190729/Multivariate/polytope.ml-1147-  MP_TAC(ISPECL [`f:real^N->bool`; `s:real^N->bool`] SUBSET_INTERIOR) THEN
hol-light-20190729/Multivariate/polytope.ml:1148:  ASM_SIMP_TAC[FACE_OF_IMP_SUBSET] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-1149-
##############################################
hol-light-20190729/Multivariate/polytope.ml-1168-    MP_TAC(ISPEC `f:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/polytope.ml:1169:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-1170-    ASM_REWRITE_TAC[IN_ELIM_THM]] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-1180-        INTER_RELATIVE_INTERIOR_SUBSET) THEN
hol-light-20190729/Multivariate/polytope.ml:1181:  ANTS_TAC THENL [ASM_MESON_TAC[FACE_OF_IMP_CONVEX]; ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-1182-
##############################################
hol-light-20190729/Multivariate/polytope.ml-1336-    SUBGOAL_THEN `!t:real^N->bool. t IN Q ==> t exposed_face_of s` MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:1337:     [ASM SET_TAC[]; UNDISCH_TAC `FINITE(Q:(real^N->bool)->bool)`] THEN
hol-light-20190729/Multivariate/polytope.ml-1338-    SPEC_TAC(`Q:(real^N->bool)->bool`,`Q:(real^N->bool)->bool`) THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-1427-      SUBGOAL_THEN `s SUBSET affine hull (s:real^N->bool)` MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:1428:       [REWRITE_TAC[HULL_SUBSET]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-1429-      MAP_EVERY EXISTS_TAC [`vec 0:real^N`; `&0`] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-1475-    SUBGOAL_THEN `~(relative_interior s:real^N->bool = {})` MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:1476:     [ASM_SIMP_TAC[RELATIVE_INTERIOR_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-1477-      REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; EXTENSION; NOT_FORALL_THM]] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-1609-        HULL_SUBSET) THEN
hol-light-20190729/Multivariate/polytope.ml:1610:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-1611-
##############################################
hol-light-20190729/Multivariate/polytope.ml-1670-  ASM_SIMP_TAC[FUN_IN_IMAGE; IN_ELIM_THM; IMP_IMP; GSYM CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/polytope.ml:1671:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-1672-
##############################################
hol-light-20190729/Multivariate/polytope.ml-1699-    ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml:1700:  MAP_EVERY EXISTS_TAC [`a:real^N`; `b:real`] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-1701-
##############################################
hol-light-20190729/Multivariate/polytope.ml-1747-    b extreme_point_of s /\ c extreme_point_of s`
hol-light-20190729/Multivariate/polytope.ml:1748:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-1749-  SUBGOAL_THEN `(a:real^N) IN s /\ b IN s /\ c IN s` STRIP_ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-1752-   [MATCH_MP_TAC COLLINEAR_SUBSET THEN EXISTS_TAC `s:real^N->bool` THEN
hol-light-20190729/Multivariate/polytope.ml:1753:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-1754-    REWRITE_TAC[COLLINEAR_BETWEEN_CASES; BETWEEN_IN_SEGMENT] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-1777-  ASM_SIMP_TAC[SET_RULE `~(a IN s) ==> a INSERT s DIFF {a} = s`] THEN
hol-light-20190729/Multivariate/polytope.ml:1778:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-1779-
##############################################
hol-light-20190729/Multivariate/polytope.ml-1850-     `~(z IN s) ==> t SUBSET s ==> ~(z IN t)`)) THEN
hol-light-20190729/Multivariate/polytope.ml:1851:    MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-1852-    DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-1890-        FIRST_ASSUM(MP_TAC o MATCH_MP FACE_OF_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/polytope.ml:1891:        ASM SET_TAC[]]]]);;
hol-light-20190729/Multivariate/polytope.ml-1892-
##############################################
hol-light-20190729/Multivariate/polytope.ml-2000-  SUBGOAL_THEN `~(t:real^N->bool = {})` ASSUME_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:2001:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-2002-  ASM_SIMP_TAC[REAL_LE_RDIV_EQ; SETDIST_EQ_0_SING; CLOSURE_CLOSED;
##############################################
hol-light-20190729/Multivariate/polytope.ml-2040-    MP_TAC(ISPEC `s:real^N->bool` RELATIVE_INTERIOR_CLOSURE_SUBSET) THEN
hol-light-20190729/Multivariate/polytope.ml:2041:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-2042-    REWRITE_TAC[GSYM SUBSET_ANTISYM_EQ] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-2280-    SUBGOAL_THEN `?y:real^N. ~(y = vec 0) /\ y IN c` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:2281:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-2282-    FIRST_X_ASSUM(MP_TAC o SPEC `y:real^N` o REWRITE_RULE[SUBSET]) THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-2329-     [SIMP_TAC[CONIC_RELATIVE_INTERIOR_INSERT; CONIC_CONIC_HULL];
hol-light-20190729/Multivariate/polytope.ml:2330:      ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-2331-      ASM_REWRITE_TAC[INSERT_SUBSET; CONIC_HULL_CONTAINS_0] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-2378-    EXISTS_TAC `&0` THEN REWRITE_TAC[VECTOR_MUL_LZERO; REAL_LE_REFL] THEN
hol-light-20190729/Multivariate/polytope.ml:2379:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-2380-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-2395-     `~(z IN s) ==> t SUBSET s ==> z IN t ==> F`)) THEN
hol-light-20190729/Multivariate/polytope.ml:2396:    MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-2397-
##############################################
hol-light-20190729/Multivariate/polytope.ml-2413-   [EXISTS_TAC `&0` THEN ASM_REWRITE_TAC[REAL_POS; VECTOR_MUL_LZERO] THEN
hol-light-20190729/Multivariate/polytope.ml:2414:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-2415-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-2428-     `!q t. ~(z IN s) ==> t SUBSET s ==> z IN t ==> q`)) THEN
hol-light-20190729/Multivariate/polytope.ml:2429:    MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-2430-
##############################################
hol-light-20190729/Multivariate/polytope.ml-2463-   [EXISTS_TAC `&0` THEN ASM_REWRITE_TAC[REAL_POS; VECTOR_MUL_LZERO] THEN
hol-light-20190729/Multivariate/polytope.ml:2464:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-2465-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-2486-  MATCH_MP_TAC(TAUT `p /\ ~q ==> (p ==> q) ==> r`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:2487:   [RULE_ASSUM_TAC(REWRITE_RULE[relative_frontier]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-2488-    REWRITE_TAC[SUBSET; IN_SEGMENT]] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-2492-    EXISTS_TAC `c / d:real`;
hol-light-20190729/Multivariate/polytope.ml:2493:    RULE_ASSUM_TAC(REWRITE_RULE[relative_frontier]) THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml-2494-  SUBGOAL_THEN `&0 < d` ASSUME_TAC THENL [ASM_REAL_ARITH_TAC; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-2513-   [MP_TAC(ISPEC `s:real^N->bool` CLOSURE_SUBSET_AFFINE_HULL) THEN
hol-light-20190729/Multivariate/polytope.ml:2514:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-2515-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-2683-    DISCH_THEN(CONJUNCTS_THEN2 STRIP_ASSUME_TAC MP_TAC) THEN
hol-light-20190729/Multivariate/polytope.ml:2684:    ASM_REWRITE_TAC[AFF_DIM_UNIV] THEN TRY INT_ARITH_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-2685-    DISCH_THEN(CONJUNCTS_THEN2 STRIP_ASSUME_TAC MP_TAC) THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-2716-   [ASM_SIMP_TAC[EXPOSED_FACE_OF_IMP_FACE_OF; FACE_OF_IMP_SUBSET] THEN
hol-light-20190729/Multivariate/polytope.ml:2717:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-2718-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-2752-        AFFINE_HULL_FACE_OF_DISJOINT_RELATIVE_INTERIOR) THEN
hol-light-20190729/Multivariate/polytope.ml:2753:    ANTS_TAC THENL [ASM_MESON_TAC[facet_of; FACET_OF_REFL]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-2754-    ASM_SIMP_TAC[CONIC_HULL_RELATIVE_INTERIOR]] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-2941-                 CLOSED_HYPERPLANE] THEN
hol-light-20190729/Multivariate/polytope.ml:2942:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-2943-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-2987-    SUBGOAL_THEN `~(relative_interior(s:real^N->bool) = {})` ASSUME_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:2988:     [ASM_SIMP_TAC[RELATIVE_INTERIOR_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-2989-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-3095-  SUBGOAL_THEN `s SUBSET convex hull (s DELETE (a:real^N))` MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:3096:   [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml-3097-  MATCH_MP_TAC SUBSET_TRANS THEN EXISTS_TAC `convex hull t:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-3099-   [ASM_REWRITE_TAC[HULL_SUBSET];
hol-light-20190729/Multivariate/polytope.ml:3100:    MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-3101-
##############################################
hol-light-20190729/Multivariate/polytope.ml-3163-    MATCH_MP_TAC DISJOINT_AFFINE_HULL THEN
hol-light-20190729/Multivariate/polytope.ml:3164:    EXISTS_TAC `s:real^N->bool` THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-3165-
##############################################
hol-light-20190729/Multivariate/polytope.ml-3194-      COND_CASES_TAC THENL [ARITH_TAC; DISCH_THEN(K ALL_TAC)] THEN
hol-light-20190729/Multivariate/polytope.ml:3195:      CONJ_TAC THENL [ALL_TAC; AP_TERM_TAC] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-3196-    DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-3208-    ASM_SIMP_TAC[CARD_EQ_0; AFFINE_INDEPENDENT_IMP_FINITE] THEN
hol-light-20190729/Multivariate/polytope.ml:3209:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-3210-
##############################################
hol-light-20190729/Multivariate/polytope.ml-3227-    ASM_SIMP_TAC[CARD_EQ_0; AFFINE_INDEPENDENT_IMP_FINITE] THEN
hol-light-20190729/Multivariate/polytope.ml:3228:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-3229-    REWRITE_TAC[ARITH_RULE `2 <= 1 + x <=> ~(x = 0)`] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-3271-   [DISCH_THEN(MP_TAC o MATCH_MP EXTREME_POINT_OF_CONVEX_HULL) THEN
hol-light-20190729/Multivariate/polytope.ml:3272:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-3273-    STRIP_TAC THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-3283-               SET_RULE `~(a IN s) ==> a INSERT s DIFF s = {a}`] THEN
hol-light-20190729/Multivariate/polytope.ml:3284:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/polytope.ml-3285-
##############################################
hol-light-20190729/Multivariate/polytope.ml-3320-      ASM_REWRITE_TAC[] THEN CONJ_TAC THEN MATCH_MP_TAC HULL_MONO THEN
hol-light-20190729/Multivariate/polytope.ml:3321:      ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml-3322-    DISJ2_TAC THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-3336-      REWRITE_TAC[IN_INTER] THEN CONJ_TAC THEN MATCH_MP_TAC HULL_INC THEN
hol-light-20190729/Multivariate/polytope.ml:3337:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-3338-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-3396-        ASM_MESON_TAC[VECTOR_MUL_LZERO];
hol-light-20190729/Multivariate/polytope.ml:3397:        ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-3398-        REWRITE_TAC[IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-3410-        ASM_MESON_TAC[VECTOR_MUL_LZERO];
hol-light-20190729/Multivariate/polytope.ml:3411:        ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml-3412-        REWRITE_TAC[IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-3418-       `(b:real^N) IN f /\ (c:real^N) IN f`
hol-light-20190729/Multivariate/polytope.ml:3419:      MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN MP_TAC th) THEN
hol-light-20190729/Multivariate/polytope.ml-3420-    ASM_CASES_TAC `ux = &0` THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-3467-    MATCH_MP_TAC(REWRITE_RULE[SUBSET] CONVEX_HULL_SUBSET_AFFINE_HULL) THEN
hol-light-20190729/Multivariate/polytope.ml:3468:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-3469-
##############################################
hol-light-20190729/Multivariate/polytope.ml-3488-      `~DISJOINT {x | P x} t ==> (!x. x IN t ==> ~P x) ==> Q`)) THEN
hol-light-20190729/Multivariate/polytope.ml:3489:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-3490-
##############################################
hol-light-20190729/Multivariate/polytope.ml-3498-  MP_TAC(ISPEC `convex hull s:real^N->bool` EXTREME_POINT_NOT_IN_INTERIOR) THEN
hol-light-20190729/Multivariate/polytope.ml:3499:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-3500-
##############################################
hol-light-20190729/Multivariate/polytope.ml-3506-  MP_TAC(ISPEC `t:real^N->bool` EXTREME_POINTS_OF_CONVEX_HULL) THEN
hol-light-20190729/Multivariate/polytope.ml:3507:  FIRST_X_ASSUM(SUBST1_TAC o SYM) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-3508-
##############################################
hol-light-20190729/Multivariate/polytope.ml-3569-    SUBGOAL_THEN `s = (a:real^N) INSERT t` SUBST1_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:3570:     [ASM SET_TAC[]; REWRITE_TAC[extreme_point_of]] THEN
hol-light-20190729/Multivariate/polytope.ml-3571-    SIMP_TAC[HULL_INC; IN_INSERT] THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-3669-      MATCH_MP_TAC SETDIST_SUBSET_RIGHT THEN
hol-light-20190729/Multivariate/polytope.ml:3670:      MP_TAC(ISPEC `s:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml-3671-    MATCH_MP_TAC REAL_LE_SETDIST THEN
hol-light-20190729/Multivariate/polytope.ml-3672-    REWRITE_TAC[NOT_INSERT_EMPTY] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:3673:     [MP_TAC(ISPEC `s:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-3674-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-3727-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC SETDIST_LE_DIST THEN
hol-light-20190729/Multivariate/polytope.ml:3728:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-3729-
##############################################
hol-light-20190729/Multivariate/polytope.ml-3792-      MP_TAC(ISPEC `t:real^N->bool` CLOSURE_SUBSET)] THEN
hol-light-20190729/Multivariate/polytope.ml:3793:    MP_TAC(ISPEC `s:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-3794-    SUBGOAL_THEN `(x:real^N) IN interior t` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-3809-      AP_TERM_TAC THEN REWRITE_TAC[PAIR_EQ] THEN
hol-light-20190729/Multivariate/polytope.ml:3810:      MATCH_MP_TAC CONVEX_CLOSURE_INTERIOR THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-3811-      TRANS_TAC REAL_LE_TRANS `setdist({x},(:real^N) DIFF interior s)` THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-4111-              FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/Multivariate/polytope.ml:4112:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-4113-
##############################################
hol-light-20190729/Multivariate/polytope.ml-4408-let POLYHEDRON_POSITIVE_ORTHANT = prove
hol-light-20190729/Multivariate/polytope.ml:4409: (`polyhedron {x:real^N | !i. 1 <= i /\ i <= dimindex(:N) ==> &0 <= x$i}`,
hol-light-20190729/Multivariate/polytope.ml-4410-  REWRITE_TAC[polyhedron] THEN
hol-light-20190729/Multivariate/polytope.ml:4411:  EXISTS_TAC `IMAGE (\i. {x:real^N | &0 <= x$i}) (1..dimindex(:N))` THEN
hol-light-20190729/Multivariate/polytope.ml-4412-  SIMP_TAC[FINITE_IMAGE; FINITE_NUMSEG; FORALL_IN_IMAGE] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-4571-    EXISTS_TAC `{affine hull s,h:real^N->bool}` THEN
hol-light-20190729/Multivariate/polytope.ml:4572:    ASM_REWRITE_TAC[INTERS_2] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-4573-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-4593-  ASM_REWRITE_TAC[IN_INTERS] THEN AP_TERM_TAC THEN ABS_TAC THEN
hol-light-20190729/Multivariate/polytope.ml:4594:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-4595-
##############################################
hol-light-20190729/Multivariate/polytope.ml-4622-  CONJ_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:4623:   [REPEAT STRIP_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-4624-    MATCH_MP_TAC(SET_RULE `s SUBSET t ==> ~(s = t) ==> s PSUBSET t`) THEN
hol-light-20190729/Multivariate/polytope.ml-4625-    FIRST_X_ASSUM(fun th -> GEN_REWRITE_TAC LAND_CONV [th]) THEN
hol-light-20190729/Multivariate/polytope.ml:4626:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-4627-
##############################################
hol-light-20190729/Multivariate/polytope.ml-4672-  FIRST_X_ASSUM(MP_TAC o SPEC `f DELETE (i:real^N->bool)`) THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:4673:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-4674-    REWRITE_TAC[PSUBSET_ALT; IN_INTER; IN_INTERS; IN_DELETE]] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-4679-    FIRST_ASSUM(SUBST1_TAC o SYM) THEN REWRITE_TAC[IN_INTER; IN_INTERS] THEN
hol-light-20190729/Multivariate/polytope.ml:4680:    ASM_REWRITE_TAC[REAL_ARITH `a:real > b <=> ~(a <= b)`] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-4681-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-4706-      MATCH_MP_TAC(REWRITE_RULE[AFFINE_ALT] AFFINE_AFFINE_HULL) THEN
hol-light-20190729/Multivariate/polytope.ml:4707:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-4708-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-4715-  ONCE_REWRITE_TAC[REAL_ARITH `a * (&1 - b) = (&1 - b) * a`] THEN
hol-light-20190729/Multivariate/polytope.ml:4716:  REWRITE_TAC[GSYM DOT_RMUL; GSYM DOT_RADD] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-4717-
##############################################
hol-light-20190729/Multivariate/polytope.ml-4733-     (MP_TAC o SPEC `f DELETE (h:real^N->bool)` o last o CONJUNCTS) THEN
hol-light-20190729/Multivariate/polytope.ml:4734:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-4735-    STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-4755-        FIRST_X_ASSUM(MP_TAC o SPEC `h:real^N->bool`) THEN
hol-light-20190729/Multivariate/polytope.ml:4756:        ASM_REWRITE_TAC[] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-4757-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-4764-    ANTS_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:4765:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-4766-      REWRITE_TAC[PSUBSET_ALT; IN_INTER; IN_INTERS; IN_DELETE]] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-4773-      ASM_REWRITE_TAC[REAL_ARITH `a:real > b <=> ~(a <= b)`] THEN
hol-light-20190729/Multivariate/polytope.ml:4774:      ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-4775-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-4809-      UNDISCH_TAC `!t:real^N->bool. t IN f /\ ~(t = h) ==> z IN t` THEN
hol-light-20190729/Multivariate/polytope.ml:4810:      DISCH_THEN(MP_TAC o SPEC `i:real^N->bool`) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-4811-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-4828-      ASM_CASES_TAC `i:real^N->bool = h` THENL
hol-light-20190729/Multivariate/polytope.ml:4829:       [ASM SET_TAC[REAL_LE_REFL]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-4830-      SUBGOAL_THEN `convex(i:real^N->bool)` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-4849-      SIMP_TAC[AFF_DIM_AFFINE_INTER_HYPERPLANE; AFFINE_AFFINE_HULL] THEN
hol-light-20190729/Multivariate/polytope.ml:4850:      COND_CASES_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml:4851:      COND_CASES_TAC THENL [ASM SET_TAC[REAL_LT_REFL]; REFL_TAC]] THEN
hol-light-20190729/Multivariate/polytope.ml-4852-    MATCH_MP_TAC SUBSET_ANTISYM THEN REWRITE_TAC[SUBSET_INTER] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-4941-    EXISTS_TAC `s:real^N->bool` THEN ASM_SIMP_TAC[FACE_OF_REFL] THEN
hol-light-20190729/Multivariate/polytope.ml:4942:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-4943-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5022-      FIRST_X_ASSUM(MP_TAC o SPEC `h:real^N->bool`) THEN
hol-light-20190729/Multivariate/polytope.ml:5023:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-5024-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5038-    EXISTS_TAC `s:real^N->bool` THEN ASM_SIMP_TAC[FACE_OF_REFL] THEN
hol-light-20190729/Multivariate/polytope.ml:5039:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-5040-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5104-      FIRST_X_ASSUM(MP_TAC o SPEC `h:real^N->bool`) THEN
hol-light-20190729/Multivariate/polytope.ml:5105:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-5106-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5140-      MATCH_MP_TAC SUBSET_OF_FACE_OF THEN EXISTS_TAC `s:real^N->bool` THEN
hol-light-20190729/Multivariate/polytope.ml:5141:      ASM_SIMP_TAC[] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-5142-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5168-   [MATCH_MP_TAC HULL_MONO THEN
hol-light-20190729/Multivariate/polytope.ml:5169:    REWRITE_TAC[SUBSET; IN_INTERS; FORALL_IN_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-5170-    SIMP_TAC[SET_RULE `s SUBSET INTERS f <=> !t. t IN f ==> s SUBSET t`] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5173-    REWRITE_TAC[AFFINE_HYPERPLANE] THEN
hol-light-20190729/Multivariate/polytope.ml:5174:    REWRITE_TAC[SUBSET; IN_INTERS; FORALL_IN_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-5175-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5178-  SUBGOAL_THEN `(a:(real^N->bool)->real^N) j dot z <= b j` MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:5179:   [ASM SET_TAC[]; REWRITE_TAC[REAL_LE_LT]] THEN
hol-light-20190729/Multivariate/polytope.ml:5180:  STRIP_TAC THENL [ASM SET_TAC[REAL_LT_IMP_LE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-5181-  MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/polytope.ml-5183-  REWRITE_TAC[EXISTS_IN_GSPEC] THEN EXISTS_TAC `j:real^N->bool` THEN
hol-light-20190729/Multivariate/polytope.ml:5184:  ASM SET_TAC[REAL_LE_REFL]);;
hol-light-20190729/Multivariate/polytope.ml-5185-
##############################################
hol-light-20190729/Multivariate/polytope.ml-5250-  ASM_CASES_TAC `{f:real^N->bool | f facet_of s /\ c SUBSET f} = {}` THEN
hol-light-20190729/Multivariate/polytope.ml:5251:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-5252-
##############################################
hol-light-20190729/Multivariate/polytope.ml-5397-    SUBGOAL_THEN `(x:real^N) IN INTERS f` MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:5398:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-5399-    REWRITE_TAC[IN_INTERS] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5462-  FIRST_ASSUM(MP_TAC o SPEC `f DELETE (h2:real^N->bool)`) THEN
hol-light-20190729/Multivariate/polytope.ml:5463:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[PSUBSET_ALT]] THEN
hol-light-20190729/Multivariate/polytope.ml-5464-  DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC (X_CHOOSE_THEN `x:real^N` MP_TAC)) THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5503-   `(a:(real^N->bool)->real^N) k dot z < b k /\ a k dot x <= b k`
hol-light-20190729/Multivariate/polytope.ml:5504:  STRIP_ASSUME_TAC THENL [ASM_SIMP_TAC[] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-5505-  SUBGOAL_THEN `y IN segment(x:real^N,z)` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-5537-    TRANS_TAC SUBSET_TRANS `affine hull s INTER INTERS f:real^N->bool` THEN
hol-light-20190729/Multivariate/polytope.ml:5538:    CONJ_TAC THENL [ASM_REWRITE_TAC[SUBSET_REFL]; ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml:5539:    MATCH_MP_TAC MONO_EXISTS THEN SIMP_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-5540-
##############################################
hol-light-20190729/Multivariate/polytope.ml-5556-      REWRITE_TAC[HULL_SUBSET] THEN ASM_MESON_TAC[];
hol-light-20190729/Multivariate/polytope.ml:5557:      MATCH_MP_TAC MONO_EXISTS THEN SIMP_TAC[] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-5558-    DISCH_THEN(X_CHOOSE_THEN `f':(real^N->bool)->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5563-    ASM_REWRITE_TAC[FINITE_UNION; FORALL_IN_UNION; INTERS_UNION] THEN
hol-light-20190729/Multivariate/polytope.ml:5564:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-5565-
##############################################
hol-light-20190729/Multivariate/polytope.ml-5642-      ASM_REWRITE_TAC[GSYM closed];
hol-light-20190729/Multivariate/polytope.ml:5643:     MP_TAC(ISPEC `s:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-5644-     MP_TAC(ISPEC `s:real^N->bool` RELATIVE_INTERIOR_SUBSET) THEN SET_TAC[];
##############################################
hol-light-20190729/Multivariate/polytope.ml-5671-      ASM_SIMP_TAC[real_ge; REWRITE_RULE[SUBSET] CLOSURE_SUBSET];
hol-light-20190729/Multivariate/polytope.ml:5672:      ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-5673-      REWRITE_TAC[EXTENSION; IN_INTER; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5693-  REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:5694:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml:5695:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml:5696:    REWRITE_TAC[IN_SEGMENT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-5697-    STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5699-        SUBSET_OF_FACE_OF) THEN
hol-light-20190729/Multivariate/polytope.ml:5700:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-5701-
##############################################
hol-light-20190729/Multivariate/polytope.ml-5858-     [MATCH_MP_TAC HULL_MONO THEN
hol-light-20190729/Multivariate/polytope.ml:5859:      FIRST_ASSUM(MP_TAC o MATCH_MP FACET_OF_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-5860-      ASM_MESON_TAC[CONVEX_HULL_EQ; POLYHEDRON_IMP_CONVEX; SUBSET_REFL]]] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-5879-  SUBGOAL_THEN `(vec 0:real^N) IN p` ASSUME_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:5880:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-5881-  MP_TAC(ISPECL [`segment[vec 0,t % v:real^N] INTER p`; `vec 0:real^N`]
##############################################
hol-light-20190729/Multivariate/polytope.ml-6087-      ASM_REWRITE_TAC[IN_INTERS] THEN ASM_MESON_TAC[];
hol-light-20190729/Multivariate/polytope.ml:6088:      ASM SET_TAC[REAL_LE_REFL]]]);;
hol-light-20190729/Multivariate/polytope.ml-6089-
##############################################
hol-light-20190729/Multivariate/polytope.ml-6328-      REWRITE_TAC[FSTCART_PASTECART; IN_ELIM_THM; IN_INTERS; REAL_MUL_RID] THEN
hol-light-20190729/Multivariate/polytope.ml:6329:      ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-6330-      ASM_REWRITE_TAC[CONVEX_CONE_HULL_UNION]] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-6522-      FIRST_X_ASSUM(MP_TAC o SPEC
hol-light-20190729/Multivariate/polytope.ml:6523:       `c / (transp(A:real^N^M) ** (y:real^M))$k % basis k:real^N`) THEN
hol-light-20190729/Multivariate/polytope.ml-6524-      ASM_SIMP_TAC[VECTOR_MUL_COMPONENT; BASIS_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-6584-        FIRST_X_ASSUM(MP_TAC o SPECL
hol-light-20190729/Multivariate/polytope.ml:6585:         [`vec 0:real^N`; `--c / --((y:real^M)$k) % basis k:real^M`]) THEN
hol-light-20190729/Multivariate/polytope.ml-6586-        ASM_SIMP_TAC[MATRIX_VECTOR_MUL_RZERO; VECTOR_ADD_LID;
##############################################
hol-light-20190729/Multivariate/polytope.ml-6621-      REWRITE_TAC[VECTOR_ARITH `vec 0:real^N = x + y <=> y = --x`] THEN
hol-light-20190729/Multivariate/polytope.ml:6622:      REWRITE_TAC[UNWIND_THM2; VECTOR_NEG_NEG] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-6623-    REWRITE_TAC[FORALL_IN_GSPEC; IMP_CONJ; RIGHT_FORALL_IMP_THM] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-6728-          SUBGOAL_THEN `?a:real^N. a IN s /\ ~(a IN t)` MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:6729:           [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/polytope.ml-6730-          X_GEN_TAC `a:real^N` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-6733-          MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:6734:           [MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[]; ASM SET_TAC[]]];
hol-light-20190729/Multivariate/polytope.ml-6735-        ONCE_REWRITE_TAC[SIMPLE_IMAGE] THEN REWRITE_TAC[UNIONS_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-6758-      REWRITE_TAC[ARITH_RULE `2 <= n + 1 <=> 1 <= n`; DIMINDEX_GE_1] THEN
hol-light-20190729/Multivariate/polytope.ml:6759:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/polytope.ml-6760-
##############################################
hol-light-20190729/Multivariate/polytope.ml-6777-  REWRITE_TAC[IMAGE_CLAUSES; UNIONS_INSERT; UNIONS_0; UNION_EMPTY] THEN
hol-light-20190729/Multivariate/polytope.ml:6778:  REPEAT BINOP_TAC THEN REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-6779-
##############################################
hol-light-20190729/Multivariate/polytope.ml-6813-    REWRITE_TAC[IMAGE_CLAUSES; UNIONS_INSERT; UNIONS_0; UNION_EMPTY] THEN
hol-light-20190729/Multivariate/polytope.ml:6814:    REPEAT BINOP_TAC THEN REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-6815-
##############################################
hol-light-20190729/Multivariate/polytope.ml-6894-    MAP_EVERY EXISTS_TAC [`f1:real^N->bool`; `f2:real^N->bool`] THEN
hol-light-20190729/Multivariate/polytope.ml:6895:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-6896-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-6940-        FIRST_X_ASSUM(MP_TAC o SPEC `f DELETE (h1:real^N->bool)`)] THEN
hol-light-20190729/Multivariate/polytope.ml:6941:      (ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-6942-       MATCH_MP_TAC(SET_RULE `(p ==> s = t) ==> s PSUBSET t ==> ~p`) THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-6948-                      f = (h2:real^N->bool) INSERT h1 INSERT (f DIFF {h1,h2})`
hol-light-20190729/Multivariate/polytope.ml:6949:         (fun th -> ONCE_REWRITE_TAC[th]) THENL [ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/polytope.ml-6950-        SUBGOAL_THEN `f DELETE h1 = h2 INSERT (f DIFF {h1,h2}) /\
hol-light-20190729/Multivariate/polytope.ml-6951-                      f = (h1:real^N->bool) INSERT h2 INSERT (f DIFF {h1,h2})`
hol-light-20190729/Multivariate/polytope.ml:6952:         (fun th -> ONCE_REWRITE_TAC[th]) THENL [ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/polytope.ml-6953-      REWRITE_TAC[INTERS_INSERT] THEN MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/polytope.ml-6965-        FIRST_X_ASSUM(MP_TAC o SPEC `f DELETE (h2:real^N->bool)`)] THEN
hol-light-20190729/Multivariate/polytope.ml:6966:      (ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-6967-       MATCH_MP_TAC(SET_RULE `(p ==> s = t) ==> s PSUBSET t ==> ~p`) THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-6973-                      f = (h3:real^N->bool) INSERT h2 INSERT (f DIFF {h2,h3})`
hol-light-20190729/Multivariate/polytope.ml:6974:         (fun th -> ONCE_REWRITE_TAC[th]) THENL [ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/polytope.ml-6975-        SUBGOAL_THEN `f DELETE h2 = h3 INSERT (f DIFF {h2,h3}) /\
hol-light-20190729/Multivariate/polytope.ml-6976-                      f = (h2:real^N->bool) INSERT h3 INSERT (f DIFF {h2,h3})`
hol-light-20190729/Multivariate/polytope.ml:6977:         (fun th -> ONCE_REWRITE_TAC[th]) THENL [ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/polytope.ml-6978-      REWRITE_TAC[INTERS_INSERT] THEN MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/polytope.ml-6990-        FIRST_X_ASSUM(MP_TAC o SPEC `f DELETE (h1:real^N->bool)`)] THEN
hol-light-20190729/Multivariate/polytope.ml:6991:      (ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-6992-       MATCH_MP_TAC(SET_RULE `(p ==> s = t) ==> s PSUBSET t ==> ~p`) THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-6998-                      f = (h3:real^N->bool) INSERT h1 INSERT (f DIFF {h1,h3})`
hol-light-20190729/Multivariate/polytope.ml:6999:         (fun th -> ONCE_REWRITE_TAC[th]) THENL [ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/polytope.ml-7000-        SUBGOAL_THEN `f DELETE h1 = h3 INSERT (f DIFF {h1,h3}) /\
hol-light-20190729/Multivariate/polytope.ml-7001-                      f = (h1:real^N->bool) INSERT h3 INSERT (f DIFF {h1,h3})`
hol-light-20190729/Multivariate/polytope.ml:7002:         (fun th -> ONCE_REWRITE_TAC[th]) THENL [ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/polytope.ml-7003-      REWRITE_TAC[INTERS_INSERT] THEN MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/polytope.ml-7023-      FIRST_X_ASSUM(MP_TAC o SPEC `f DELETE (h1:real^N->bool)`)] THEN
hol-light-20190729/Multivariate/polytope.ml:7024:    (ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-7025-     FIRST_X_ASSUM(fun th -> GEN_REWRITE_TAC
##############################################
hol-light-20190729/Multivariate/polytope.ml-7032-        f =  h1 INSERT h2 INSERT h3 INSERT (f DELETE h3)`
hol-light-20190729/Multivariate/polytope.ml:7033:       (fun th -> ONCE_REWRITE_TAC[th]) THENL [ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/polytope.ml-7034-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-7036-        f =  h2 INSERT h1 INSERT h3 INSERT (f DELETE h2)`
hol-light-20190729/Multivariate/polytope.ml:7037:       (fun th -> ONCE_REWRITE_TAC[th]) THENL [ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/polytope.ml-7038-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-7040-        f =  h1 INSERT h2 INSERT h3 INSERT (f DELETE h1)`
hol-light-20190729/Multivariate/polytope.ml:7041:       (fun th -> ONCE_REWRITE_TAC[th]) THENL [ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/polytope.ml-7042-    REWRITE_TAC[INTERS_INSERT] THEN REWRITE_TAC[GSYM INTER_ASSOC] THEN
hol-light-20190729/Multivariate/polytope.ml:7043:    AP_THM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-7044-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-7051-     [ASM_SIMP_TAC[RELATIVE_INTERIOR_EQ_EMPTY; POLYHEDRON_IMP_CONVEX] THEN
hol-light-20190729/Multivariate/polytope.ml:7052:      ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-7053-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-7065-                   (a (h3:real^N->bool)) dot x = b h3`
hol-light-20190729/Multivariate/polytope.ml:7066:  MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-7067-  SUBGOAL_THEN `?z:real^N. z IN r` CHOOSE_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:7068:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-7069-  MAP_EVERY UNDISCH_TAC
##############################################
hol-light-20190729/Multivariate/polytope.ml-7079-  SUBGOAL_THEN `(z:real^N) IN (affine hull p)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:7080:   [MATCH_MP_TAC HULL_INC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-7081-    ASM_REWRITE_TAC[]] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-7086-  (REPEAT_TCL CONJUNCTS_THEN (SUBST1_TAC o SYM))
hol-light-20190729/Multivariate/polytope.ml:7087:  THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-7088-  SUBGOAL_THEN `(r:real^N->bool) SUBSET affine hull p` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-7124-   [GEN_REWRITE_TAC RAND_CONV [GSYM DIM_SPAN] THEN
hol-light-20190729/Multivariate/polytope.ml:7125:    MATCH_MP_TAC DIM_SUBSET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-7126-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-7150-    REWRITE_TAC[CONJ_ACI] THEN DISCH_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/polytope.ml:7151:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-7152-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-7288-      ASM_CASES_TAC `?n:real^N. n IN span p /\ ~(n = vec 0)` THENL
hol-light-20190729/Multivariate/polytope.ml:7289:       [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml-7290-      FIRST_X_ASSUM(CHOOSE_THEN STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-7318-        ASM_SIMP_TAC[CARD_DELETE; ARITH_RULE `n - 1 < n <=> ~(n = 0)`] THEN
hol-light-20190729/Multivariate/polytope.ml:7319:        ASM_SIMP_TAC[CARD_EQ_0] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-7320-      DISCH_THEN(MP_TAC o MATCH_MP ORTHOGONAL_TO_SUBSPACE_EXISTS_GEN)] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-7345-       REWRITE_TAC[orthogonal; DOT_SYM] THEN DISCH_THEN MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/polytope.ml:7346:       MATCH_MP_TAC SPAN_SUPERSET THEN ASM SET_TAC[]]) THENL
hol-light-20190729/Multivariate/polytope.ml-7347-     [MATCH_MP_TAC(REAL_ARITH `&0 <= --x * y /\ &0 <= z ==> x * y <= z`);
##############################################
hol-light-20190729/Multivariate/polytope.ml-7397-    SUBGOAL_THEN `(d:real^N->bool) SUBSET convex hull d` MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:7398:     [REWRITE_TAC[HULL_SUBSET]; ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/polytope.ml-7399-
##############################################
hol-light-20190729/Multivariate/polytope.ml-7492-    SUBGOAL_THEN `c' SUBSET (c DELETE (a:real^N))` MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:7493:     [ASM SET_TAC[]; ASM_MESON_TAC[HULL_MONO; SUBSET]]]);;
hol-light-20190729/Multivariate/polytope.ml-7494-
##############################################
hol-light-20190729/Multivariate/polytope.ml-7573-  ONCE_REWRITE_TAC[GSYM CONTRAPOS_THM] THEN DISCH_TAC THEN REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/polytope.ml:7574:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-7575-  MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/polytope.ml-7580-  ASM_SIMP_TAC[HULL_INC; CONVEX_HULL_SUBSET_AFFINE_HULL] THEN
hol-light-20190729/Multivariate/polytope.ml:7581:  MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-7582-
##############################################
hol-light-20190729/Multivariate/polytope.ml-7860-    DISCH_THEN(MP_TAC o MATCH_MP EXTREME_POINT_OF_CONVEX_HULL) THEN
hol-light-20190729/Multivariate/polytope.ml:7861:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-7862-
##############################################
hol-light-20190729/Multivariate/polytope.ml-7919-   [`c:real^N->bool`; `d:real^N->bool`] THEN
hol-light-20190729/Multivariate/polytope.ml:7920:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-7921-
##############################################
hol-light-20190729/Multivariate/polytope.ml-7948-    MP_TAC(ISPEC `u:real^N->bool` RELATIVE_FRONTIER_NONEMPTY_INTERIOR) THEN
hol-light-20190729/Multivariate/polytope.ml:7949:    ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-7950-    DISCH_THEN(X_CHOOSE_THEN `k:real^N->bool` STRIP_ASSUME_TAC)] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-7969-    CONJ_TAC THENL [ASM_MESON_TAC[FINITE_FACES_OF_SIMPLEX]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml:7970:    REWRITE_TAC[UNIONS_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-7971-    ASM_MESON_TAC[SIMPLEX_FACE_OF_SIMPLEX];
##############################################
hol-light-20190729/Multivariate/polytope.ml-8057-      MP_TAC(ISPECL [`(a:real^N) dot x`; `b:real`] REAL_LE_TOTAL) THEN
hol-light-20190729/Multivariate/polytope.ml:8058:      REWRITE_TAC[real_ge] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8059-      REWRITE_TAC[IN_UNION; IN_ELIM_THM] THEN REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8128-  MATCH_MP_TAC REAL_LT_IMP_LE THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/polytope.ml:8129:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-8130-
##############################################
hol-light-20190729/Multivariate/polytope.ml-8167-    ASM_CASES_TAC `v:real^N = w` THENL
hol-light-20190729/Multivariate/polytope.ml:8168:     [COND_CASES_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8169-      REWRITE_TAC[IN_ELIM_THM] THEN EXISTS_TAC `w:real^N` THEN
hol-light-20190729/Multivariate/polytope.ml:8170:      ASM_REWRITE_TAC[] THEN MATCH_MP_TAC HULL_INC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8171-      ASM_CASES_TAC `x:real^N = z` THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-8278-       [MESON_TAC[POLYTOPE_IMP_CONVEX; POLYTOPE_IMP_CLOSED];
hol-light-20190729/Multivariate/polytope.ml:8279:        ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8280-        REPEAT STRIP_TAC THEN CONV_TAC SELECT_CONV THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8293-      SUBGOAL_THEN `?r. r simplex (k:real^N->bool)` CHOOSE_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:8294:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8295-      ASM_CASES_TAC `r = aff_dim(k:real^N->bool)` THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-8315-         `?l:real^N->bool. l IN sk /\ k SUBSET l`
hol-light-20190729/Multivariate/polytope.ml:8316:        STRIP_ASSUME_TAC THENL [ASM MESON_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8317-        EXISTS_TAC `l INTER c:real^N->bool` THEN
hol-light-20190729/Multivariate/polytope.ml:8318:        CONJ_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[SUBSET_INTER]] THEN
hol-light-20190729/Multivariate/polytope.ml-8319-        CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-8322-          TRANS_TAC INT_LET_TRANS `aff_dim(l:real^N->bool)` THEN
hol-light-20190729/Multivariate/polytope.ml:8323:          SIMP_TAC[AFF_DIM_SUBSET; INTER_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8324-          TRANS_TAC SUBSET_TRANS `relative_frontier c:real^N->bool` THEN
hol-light-20190729/Multivariate/polytope.ml:8325:          ASM_SIMP_TAC[relative_frontier; CLOSURE_CLOSED] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-8326-        MP_TAC(ISPECL [`c:real^N->bool`; `f:real^N->bool`]
##############################################
hol-light-20190729/Multivariate/polytope.ml-8387-          ASM_SIMP_TAC[FACE_OF_CONVEX_HULL_AFFINE_INDEPENDENT] THEN
hol-light-20190729/Multivariate/polytope.ml:8388:          EXISTS_TAC `j DELETE (z:real^N)` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8389-          TRANS_TAC SUBSET_TRANS `k:real^N->bool` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/polytope.ml:8390:          EXPAND_TAC "k" THEN MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8391-          ONCE_REWRITE_TAC[SET_RULE `z INSERT i = {z} UNION i`] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8393-          REWRITE_TAC[SET_RULE `{z} UNION i = z INSERT i`] THEN
hol-light-20190729/Multivariate/polytope.ml:8394:          EXPAND_TAC "f" THEN AP_TERM_TAC THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-8395-        DISJ1_TAC THEN FIRST_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8398-        ASM_SIMP_TAC[FACE_OF_CONVEX_HULL_AFFINE_INDEPENDENT] THEN
hol-light-20190729/Multivariate/polytope.ml:8399:        EXISTS_TAC `j:real^N->bool` THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/polytope.ml-8400-        REWRITE_TAC[IN_UNION] THEN MATCH_MP_TAC(MESON[]
##############################################
hol-light-20190729/Multivariate/polytope.ml-8423-              ASM_SIMP_TAC[relative_frontier; CLOSURE_CLOSED] THEN
hol-light-20190729/Multivariate/polytope.ml:8424:              ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8425-              ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8437-            MATCH_MP_TAC FACE_OF_DISJOINT_RELATIVE_INTERIOR THEN
hol-light-20190729/Multivariate/polytope.ml:8438:            CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8439-            MATCH_MP_TAC(MESON[INT_LT_REFL]
##############################################
hol-light-20190729/Multivariate/polytope.ml-8441-           TRANS_TAC INT_LET_TRANS `aff_dim(d:real^N->bool)` THEN
hol-light-20190729/Multivariate/polytope.ml:8442:           SIMP_TAC[AFF_DIM_SUBSET; INTER_SUBSET] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8443-           ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8445-          [MATCH_MP_TAC HULL_P THEN MATCH_MP_TAC POLYTOPE_IMP_CONVEX THEN
hol-light-20190729/Multivariate/polytope.ml:8446:           MATCH_MP_TAC SIMPLEX_IMP_POLYTOPE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8447-           ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml:8448:         CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8449-         TRANS_TAC FACE_OF_TRANS `k:real^N->bool` THEN
hol-light-20190729/Multivariate/polytope.ml:8450:         CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8451-         REMOVE_THEN "*" (MP_TAC o SPEC `k:real^N->bool`) THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8468-                       AFFINE_INDEPENDENT_INSERT] THEN
hol-light-20190729/Multivariate/polytope.ml:8469:          EXISTS_TAC `i:real^N->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8470-          ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8492-             ASM_SIMP_TAC[relative_frontier; CLOSURE_CLOSED] THEN
hol-light-20190729/Multivariate/polytope.ml:8493:             ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8494-             ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8509-           MATCH_MP_TAC FACE_OF_DISJOINT_RELATIVE_INTERIOR THEN
hol-light-20190729/Multivariate/polytope.ml:8510:           CONJ_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8511-           SUBGOAL_THEN
hol-light-20190729/Multivariate/polytope.ml-8512-             `~(aff_dim (d:real^N->bool) = aff_dim (c:real^N->bool))`
hol-light-20190729/Multivariate/polytope.ml:8513:           ASSUME_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml-8514-           MATCH_MP_TAC INT_LT_IMP_NE THEN EXPAND_TAC "d" THEN
hol-light-20190729/Multivariate/polytope.ml-8515-           MATCH_MP_TAC FACE_OF_AFF_DIM_LT THEN
hol-light-20190729/Multivariate/polytope.ml:8516:           CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml:8517:           MATCH_MP_TAC POLYTOPE_IMP_CONVEX THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8518-           ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8520-          [MATCH_MP_TAC HULL_P THEN MATCH_MP_TAC POLYTOPE_IMP_CONVEX THEN
hol-light-20190729/Multivariate/polytope.ml:8521:           MATCH_MP_TAC SIMPLEX_IMP_POLYTOPE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8522-           ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8532-             ASM_SIMP_TAC[relative_frontier; CLOSURE_CLOSED] THEN
hol-light-20190729/Multivariate/polytope.ml:8533:             ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8534-             ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8546-           MATCH_MP_TAC FACE_OF_DISJOINT_RELATIVE_INTERIOR THEN
hol-light-20190729/Multivariate/polytope.ml:8547:           CONJ_TAC THENL [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8548-           SUBGOAL_THEN
hol-light-20190729/Multivariate/polytope.ml-8549-            `~(aff_dim (c:real^N->bool) = aff_dim (d:real^N->bool))`
hol-light-20190729/Multivariate/polytope.ml:8550:           ASSUME_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml-8551-           MATCH_MP_TAC INT_LT_IMP_NE THEN EXPAND_TAC "c" THEN
hol-light-20190729/Multivariate/polytope.ml-8552-           MATCH_MP_TAC FACE_OF_AFF_DIM_LT THEN
hol-light-20190729/Multivariate/polytope.ml:8553:           CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/polytope.ml:8554:           MATCH_MP_TAC POLYTOPE_IMP_CONVEX THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8555-           ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8557-          [MATCH_MP_TAC HULL_P THEN MATCH_MP_TAC POLYTOPE_IMP_CONVEX THEN
hol-light-20190729/Multivariate/polytope.ml:8558:           MATCH_MP_TAC SIMPLEX_IMP_POLYTOPE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8559-           ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8576-            DISCH_THEN SUBST1_TAC THEN EXISTS_TAC `i:real^N->bool` THEN
hol-light-20190729/Multivariate/polytope.ml:8577:            ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/polytope.ml-8578-         MATCH_MP_TAC AFFINE_INDEPENDENT_INSERT THEN ASM_REWRITE_TAC[] THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-8593-          MATCH_MP_TAC POLYTOPE_IMP_CONVEX THEN
hol-light-20190729/Multivariate/polytope.ml:8594:          MATCH_MP_TAC SIMPLEX_IMP_POLYTOPE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8595-          DISCH_THEN SUBST1_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8603-        CONJ_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:8604:         [MATCH_MP_TAC SIMPLEX_IMP_POLYTOPE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8605-          ASM_MESON_TAC[MEMBER_NOT_EMPTY; IN_INTER]]);
##############################################
hol-light-20190729/Multivariate/polytope.ml-8616-         MATCH_MP_TAC(INT_ARITH `x:int <= n /\ ~(x < n) ==> x = n`) THEN
hol-light-20190729/Multivariate/polytope.ml:8617:         ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8618-         ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8666-           FACE_OF_AFF_DIM_LT) THEN
hol-light-20190729/Multivariate/polytope.ml:8667:         ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8668-         DISCH_TAC THEN
hol-light-20190729/Multivariate/polytope.ml-8669-         SUBGOAL_THEN `?k:real^N->bool. k IN sc /\ y IN k /\ k SUBSET f`
hol-light-20190729/Multivariate/polytope.ml:8670:         MP_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS]] THEN
hol-light-20190729/Multivariate/polytope.ml-8671-       X_GEN_TAC `k:real^N->bool` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8677-       REWRITE_TAC[SEGMENT_CONVEX_HULL] THEN
hol-light-20190729/Multivariate/polytope.ml:8678:       MATCH_MP_TAC HULL_MONO THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8679-       REWRITE_TAC[FORALL_IN_UNION; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/polytope.ml:8680:       CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8681-       MAP_EVERY X_GEN_TAC [`c:real^N->bool`; `k:real^N->bool`] THEN
hol-light-20190729/Multivariate/polytope.ml-8682-       STRIP_TAC THEN EXISTS_TAC `c:real^N->bool` THEN
hol-light-20190729/Multivariate/polytope.ml:8683:       CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8684-       MATCH_MP_TAC HULL_MINIMAL THEN ASM_SIMP_TAC[INSERT_SUBSET] THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8776-  SUBGOAL_THEN `(x:real^N) IN UNIONS f` MP_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:8777:   [ASM SET_TAC[]; REWRITE_TAC[IN_UNIONS]] THEN
hol-light-20190729/Multivariate/polytope.ml:8778:  MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/polytope.ml-8779-
##############################################
hol-light-20190729/Multivariate/polytope.ml-8827-   [ASM_MESON_TAC[CLOSED_UNIONS]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml:8828:  MATCH_MP_TAC SUBSET_ANTISYM THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8829-  ASM_CASES_TAC
hol-light-20190729/Multivariate/polytope.ml-8830-   `!c. c IN s ==> aff_dim(c:real^N->bool) = aff_dim(u:real^N->bool)`
hol-light-20190729/Multivariate/polytope.ml:8831:  THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8832-  MATCH_MP_TAC(MESON[CLOSURE_CLOSED]
##############################################
hol-light-20190729/Multivariate/polytope.ml-8844-     [MATCH_MP_TAC OPEN_IN_DIFF THEN REWRITE_TAC[OPEN_IN_REFL] THEN
hol-light-20190729/Multivariate/polytope.ml:8845:      MATCH_MP_TAC CLOSED_SUBSET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8846-      MATCH_MP_TAC(SET_RULE `t = s ==> s SUBSET t`) THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8856-      MATCH_MP_TAC MONO_EXISTS THEN SIMP_TAC[NOT_IMP; INT_LT_LE] THEN
hol-light-20190729/Multivariate/polytope.ml:8857:      REPEAT STRIP_TAC THEN MATCH_MP_TAC AFF_DIM_SUBSET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/polytope.ml-8858-      ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8859-    SUBGOAL_THEN `(x:real^N) IN u /\ x IN UNIONS s`
hol-light-20190729/Multivariate/polytope.ml:8860:     (CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8861-    REWRITE_TAC[IN_UNIONS] THEN MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8864-    ASM_SIMP_TAC[IN_DIFF; INT_NOT_LT; GSYM INT_LE_ANTISYM] THEN
hol-light-20190729/Multivariate/polytope.ml:8865:    DISCH_TAC THEN MATCH_MP_TAC AFF_DIM_SUBSET THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/polytope.ml-8866-
##############################################
hol-light-20190729/Multivariate/polytope.ml-8886-  MATCH_MP_TAC(TAUT `(q ==> p) /\ q ==> p /\ q`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:8887:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8888-  X_GEN_TAC `c:real^N->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8896-  ASM_SIMP_TAC[FINITE_RESTRICT] THEN
hol-light-20190729/Multivariate/polytope.ml:8897:  CONJ_TAC THENL [ASM SET_TAC[]; CONV_TAC SYM_CONV] THEN
hol-light-20190729/Multivariate/polytope.ml-8898-  SUBGOAL_THEN `d = aff_dim(c:real^N->bool)` SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/polytope.ml-8924-  MATCH_MP_TAC(TAUT `(q ==> p) /\ q ==> p /\ q`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/polytope.ml:8925:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/polytope.ml-8926-  X_GEN_TAC `c:real^N->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/polytope.ml-8934-  ASM_SIMP_TAC[FINITE_RESTRICT] THEN
hol-light-20190729/Multivariate/polytope.ml:8935:  CONJ_TAC THENL [ASM SET_TAC[]; CONV_TAC SYM_CONV] THEN
hol-light-20190729/Multivariate/polytope.ml-8936-  SUBGOAL_THEN `d = aff_dim(c:real^N->bool)` SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-737-  SUBGOAL_THEN `s INTER k = s:num->bool` ASSUME_TAC THENL
hol-light-20190729/Multivariate/realanalysis.ml:738:   [ASM SET_TAC[]; ASM_MESON_TAC [REAL_SERIES_FINITE_SUPPORT]]);;
hol-light-20190729/Multivariate/realanalysis.ml-739-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-792-  ASM_SIMP_TAC[IN_INTER; IN_DIFF; FINITE_INTER; FINITE_NUMSEG] THEN
hol-light-20190729/Multivariate/realanalysis.ml:793:  REWRITE_TAC[SUBSET; IN_NUMSEG; IN_INTER; LE_0] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/realanalysis.ml-794-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-1665-  REWRITE_TAC[LIM_WITHINREAL_WITHIN; LIM_ATREAL_AT; REAL_OPEN] THEN
hol-light-20190729/Multivariate/realanalysis.ml:1666:  REPEAT STRIP_TAC THEN MATCH_MP_TAC LIM_WITHIN_OPEN THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/realanalysis.ml-1667-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-3298-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT]
hol-light-20190729/Multivariate/realanalysis.ml:3299:   HAS_COMPLEX_DERIVATIVE_WITHIN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/realanalysis.ml-3300-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-3319-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT]
hol-light-20190729/Multivariate/realanalysis.ml:3320:     HAS_COMPLEX_DERIVATIVE_WITHIN_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/realanalysis.ml-3321-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-5175-    REWRITE_TAC[REAL_OPEN_REAL_INTERVAL] THEN
hol-light-20190729/Multivariate/realanalysis.ml:5176:    ASM_REWRITE_TAC[REAL_OPEN_CLOSED_INTERVAL] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/realanalysis.ml-5177-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-7515-    MATCH_MP_TAC HAS_REAL_DERIVATIVE_WITHIN_SUBSET THEN
hol-light-20190729/Multivariate/realanalysis.ml:7516:    EXISTS_TAC `s:real->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/realanalysis.ml-7517-    DISCH_THEN(X_CHOOSE_THEN `z:real` MP_TAC) THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-7519-    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC REAL_LE_MUL THEN
hol-light-20190729/Multivariate/realanalysis.ml:7520:    CONJ_TAC THENL [ASM SET_TAC[]; ASM_REAL_ARITH_TAC]]);;
hol-light-20190729/Multivariate/realanalysis.ml-7521-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-8956-  REWRITE_TAC[o_THM; IN_DIFF; IMP_CONJ; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/realanalysis.ml:8957:  REWRITE_TAC[LIFT_IN_IMAGE_LIFT; LIFT_DROP] THEN ASM SET_TAC[LIFT_NUM]);;
hol-light-20190729/Multivariate/realanalysis.ml-8958-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-8968-  REWRITE_TAC[o_THM; IN_DIFF; IMP_CONJ; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/realanalysis.ml:8969:  REWRITE_TAC[LIFT_IN_IMAGE_LIFT; LIFT_DROP] THEN ASM SET_TAC[LIFT_NUM]);;
hol-light-20190729/Multivariate/realanalysis.ml-8970-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-9096-  EXISTS_TAC `real_interval[a:real,b] DIFF real_interval(a,b)` THEN
hol-light-20190729/Multivariate/realanalysis.ml:9097:  REWRITE_TAC[REAL_NEGLIGIBLE_FRONTIER_INTERVAL] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/realanalysis.ml-9098-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-9486-  DISCH_THEN MATCH_MP_TAC THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/realanalysis.ml:9487:  FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[LIFT_DROP]);;
hol-light-20190729/Multivariate/realanalysis.ml-9488-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-9691-  REPEAT(COND_CASES_TAC THEN ASM_SIMP_TAC[REAL_LE_REFL]) THEN
hol-light-20190729/Multivariate/realanalysis.ml:9692:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/realanalysis.ml-9693-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-9789-  W(MP_TAC o PART_MATCH (lhs o rand) VSUM_IMAGE o lhand o snd) THEN
hol-light-20190729/Multivariate/realanalysis.ml:9790:  ANTS_TAC THENL [ASM SET_TAC[LIFT_DROP]; ALL_TAC] THEN
hol-light-20190729/Multivariate/realanalysis.ml-9791-  DISCH_THEN SUBST1_TAC THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-10422-  REPEAT STRIP_TAC THEN MATCH_MP_TAC HAS_MEASURE_DISJOINT_UNION THEN
hol-light-20190729/Multivariate/realanalysis.ml:10423:  ASM SET_TAC[LIFT_DROP]);;
hol-light-20190729/Multivariate/realanalysis.ml-10424-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-10446-    HAS_MEASURE_SUBSET) THEN
hol-light-20190729/Multivariate/realanalysis.ml:10447:  ASM SET_TAC[HAS_MEASURE_SUBSET]);;
hol-light-20190729/Multivariate/realanalysis.ml-10448-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-10557-  REPEAT STRIP_TAC THEN MATCH_MP_TAC HAS_MEASURE_ALMOST THEN
hol-light-20190729/Multivariate/realanalysis.ml:10558:  MAP_EVERY EXISTS_TAC [`IMAGE lift s`; `IMAGE lift t`] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/realanalysis.ml-10559-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-10857-         ASM_REWRITE_TAC[DROP_VEC; REAL_POS; REAL_LE_REFL]) THEN
hol-light-20190729/Multivariate/realanalysis.ml:10858:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/realanalysis.ml-10859-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-10885-    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC REAL_MEASURE_SUBSET THEN
hol-light-20190729/Multivariate/realanalysis.ml:10886:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/realanalysis.ml-10887-    DISCH_TAC THEN MATCH_MP_TAC(REAL_ARITH
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-11170-    REWRITE_TAC[SIMPLE_IMAGE; FORALL_IN_IMAGE; EXISTS_IN_IMAGE] THEN
hol-light-20190729/Multivariate/realanalysis.ml:11171:    ASM SET_TAC[];
hol-light-20190729/Multivariate/realanalysis.ml-11172-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-11396-        ASM_SIMP_TAC[REAL_CONTINUOUS_ATREAL_WITHINREAL; IN_DIFF] THEN
hol-light-20190729/Multivariate/realanalysis.ml:11397:        ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/realanalysis.ml-11398-        ASM_MESON_TAC[HAS_REAL_DERIVATIVE_WITHIN_SUBSET];
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-11475-        FIRST_X_ASSUM(MP_TAC o SPEC `(g:real->real) x`) THEN
hol-light-20190729/Multivariate/realanalysis.ml:11476:        ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/realanalysis.ml-11477-        MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-11542-    FIRST_X_ASSUM(MP_TAC o SPEC `(g:real->real) x`) THEN
hol-light-20190729/Multivariate/realanalysis.ml:11543:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/realanalysis.ml-11544-    MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-11565-let slice = new_definition
hol-light-20190729/Multivariate/realanalysis.ml:11566: `slice k t s = IMAGE (dropout k) (s INTER {x | x$k = t})`;;
hol-light-20190729/Multivariate/realanalysis.ml-11567-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-11713-  MATCH_MP_TAC CLOSED_INJECTIVE_IMAGE_SUBSET_SUBSPACE THEN
hol-light-20190729/Multivariate/realanalysis.ml:11714:  EXISTS_TAC `{x:real^N | x$k = &0}` THEN
hol-light-20190729/Multivariate/realanalysis.ml-11715-  ASM_SIMP_TAC[SUBSPACE_SPECIAL_HYPERPLANE; LINEAR_DROPOUT;
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-12277-  SUBGOAL_THEN `~(interval[a:real^N,b] = {})` MP_TAC THENL
hol-light-20190729/Multivariate/realanalysis.ml:12278:   [ASM SET_TAC[]; REWRITE_TAC[INTERVAL_NE_EMPTY] THEN DISCH_TAC] THEN
hol-light-20190729/Multivariate/realanalysis.ml-12279-  MATCH_MP_TAC(REAL_ARITH `~(&0 < b - a) /\ ~(&0 < a - b) ==> a:real = b`) THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-13277-    ANTS_TAC THENL
hol-light-20190729/Multivariate/realanalysis.ml:13278:     [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/realanalysis.ml-13279-      EXPAND_TAC "G" THEN REWRITE_TAC[] THEN X_GEN_TAC `w:real^N` THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-13282-                     `s:real^N->bool`;
hol-light-20190729/Multivariate/realanalysis.ml:13283:                     `{x:real^1 | x$1 < e}`] CONTINUOUS_OPEN_IN_PREIMAGE) THEN
hol-light-20190729/Multivariate/realanalysis.ml-13284-      REWRITE_TAC[OPEN_HALFSPACE_COMPONENT_LT; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-13299-     [GEN_REWRITE_TAC RAND_CONV [REAL_ARITH `x = min x x`] THEN
hol-light-20190729/Multivariate/realanalysis.ml:13300:      REWRITE_TAC[REAL_MIN_INF; INSERT_AC] THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/realanalysis.ml-13301-      REMOVE_THEN "inf" (MP_TAC o SPEC
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-13304-      REWRITE_TAC[SIMPLE_IMAGE; ETA_AX] THEN
hol-light-20190729/Multivariate/realanalysis.ml:13305:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/realanalysis.ml-13306-      REWRITE_TAC[GSYM IMAGE_o; o_DEF];
hol-light-20190729/Multivariate/realanalysis.ml-13307-      SUBGOAL_THEN `~(t:real^N->bool = {})` ASSUME_TAC THENL
hol-light-20190729/Multivariate/realanalysis.ml:13308:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/realanalysis.ml-13309-      ASM_SIMP_TAC[REAL_INF_LT_FINITE; SIMPLE_IMAGE;
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-13332-  ANTS_TAC THENL
hol-light-20190729/Multivariate/realanalysis.ml:13333:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN EXPAND_TAC "H" THEN
hol-light-20190729/Multivariate/realanalysis.ml-13334-    REWRITE_TAC[] THEN X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-13336-                   `s:real^N->bool`;
hol-light-20190729/Multivariate/realanalysis.ml:13337:                   `{x:real^1 | x$1 < e}`] CONTINUOUS_OPEN_IN_PREIMAGE) THEN
hol-light-20190729/Multivariate/realanalysis.ml-13338-    REWRITE_TAC[OPEN_HALFSPACE_COMPONENT_LT; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-13358-    REWRITE_TAC[SIMPLE_IMAGE; ETA_AX] THEN
hol-light-20190729/Multivariate/realanalysis.ml:13359:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/realanalysis.ml-13360-    REWRITE_TAC[GSYM IMAGE_o; o_DEF];
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-13363-  SUBGOAL_THEN `~(t:real^N->bool = {})` ASSUME_TAC THENL
hol-light-20190729/Multivariate/realanalysis.ml:13364:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/realanalysis.ml-13365-  REWRITE_TAC[SIMPLE_IMAGE; REAL_ARITH
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-13369-  REWRITE_TAC[EXISTS_IN_IMAGE; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/realanalysis.ml:13370:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/realanalysis.ml-13371-  UNDISCH_TAC `s SUBSET {y:real^N | ?x:real^N. x IN t /\ y IN H x}` THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-13744-    MP_TAC(GEN `g:num^N#num^N->real` (ISPECL
hol-light-20190729/Multivariate/realanalysis.ml:13745:     [`(\(k,l). lambda i. k$i + l$i):num^N#num^N->num^N`;
hol-light-20190729/Multivariate/realanalysis.ml-13746-      `g:num^N#num^N->real`; `{k,l | (k:num^N) IN s /\ (l:num^N) IN t}`;
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-13822-  REWRITE_TAC[NOT_FORALL_THM; NOT_IMP; LEFT_IMP_EXISTS_THM] THEN
hol-light-20190729/Multivariate/realanalysis.ml:13823:  X_GEN_TAC `i:num` THEN STRIP_TAC THEN EXISTS_TAC `\x:real^N. x$i` THEN
hol-light-20190729/Multivariate/realanalysis.ml-13824-  ASM_SIMP_TAC[real_polynomial_function_RULES]);;
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-14155-    DISCH_THEN(X_CHOOSE_THEN `g:real^M->real^N` STRIP_ASSUME_TAC)] THEN
hol-light-20190729/Multivariate/realanalysis.ml:14156:  EXISTS_TAC `(\x. vsum(1..n) (\i. (g x:real^N)$i % b i)):real^M->real^N` THEN
hol-light-20190729/Multivariate/realanalysis.ml-14157-  REWRITE_TAC[] THEN REPEAT CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-14174-     [MATCH_MP_TAC ORTHONORMAL_BASIS_EXPAND THEN
hol-light-20190729/Multivariate/realanalysis.ml:14175:      ASM_REWRITE_TAC[FORALL_IN_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/realanalysis.ml-14176-      ASM_SIMP_TAC[REWRITE_RULE[INJECTIVE_ON_ALT] VSUM_IMAGE;
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-14243-  GEN_REWRITE_TAC (RAND_CONV o LAND_CONV) [GSYM o_DEF] THEN
hol-light-20190729/Multivariate/realanalysis.ml:14244:  SPEC_TAC(`\x. (p:real^1->real^N) x$i`,`p:real^1->real`) THEN
hol-light-20190729/Multivariate/realanalysis.ml-14245-  POP_ASSUM_LIST(K ALL_TAC) THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-14315-                   COMPACT_PATH_IMAGE; GSYM OPEN_CLOSED] THEN
hol-light-20190729/Multivariate/realanalysis.ml:14316:      ASM_SIMP_TAC[PATH_IMAGE_NONEMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/realanalysis.ml-14317-      X_GEN_TAC `z:real^N` THEN DISCH_TAC THEN REWRITE_TAC[SUBSET] THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-14399-    ASM_SIMP_TAC[LIPSCHITZ_REAL_POLYNOMIAL_FUNCTION];
hol-light-20190729/Multivariate/realanalysis.ml:14400:    EXISTS_TAC `&1 + sum(1..dimindex(:N)) (\i. (b:real^N)$i)` THEN
hol-light-20190729/Multivariate/realanalysis.ml-14401-    CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-14537-             ==> negligible {x:real^N | !i:num. i <= m ==> P i x}`) THEN
hol-light-20190729/Multivariate/realanalysis.ml:14538:    EXISTS_TAC `j:num` THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/realanalysis.ml-14539-    FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_SIMP_TAC[FINITE_RESTRICT] THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-14549-    MP_TAC(ISPECL
hol-light-20190729/Multivariate/realanalysis.ml:14550:     [`dimindex(:N)`; `IMAGE (\x:num^N i. x$i) s`;
hol-light-20190729/Multivariate/realanalysis.ml-14551-       `(a:num^N->real) o (\k. lambda i. k i)`] lemma1) THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-15772-  ASM_REWRITE_TAC[GSYM FORALL_DROP] THEN REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/realanalysis.ml:15773:  REWRITE_TAC[INTERVAL_REAL_INTERVAL; LIFT_DROP] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/realanalysis.ml-15774-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-15788-  ASM_REWRITE_TAC[GSYM FORALL_DROP] THEN REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/realanalysis.ml:15789:  REWRITE_TAC[INTERVAL_REAL_INTERVAL; LIFT_DROP] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/realanalysis.ml-15790-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-16156-  MATCH_MP_TAC EQ_IMP THEN AP_THM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/realanalysis.ml:16157:  REWRITE_TAC[FUN_EQ_THM] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/realanalysis.ml-16158-
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-16354-    MAP_EVERY X_GEN_TAC [`u:real^N`; `v:real^N`] THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/realanalysis.ml:16355:    EXISTS_TAC `(lambda j. min (a - &1) ((u:real^N)$j)):real^N` THEN
hol-light-20190729/Multivariate/realanalysis.ml:16356:    EXISTS_TAC `(lambda j. max (a + &1) ((v:real^N)$j)):real^N` THEN
hol-light-20190729/Multivariate/realanalysis.ml-16357-    CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-16364-   [`indicator(s:real^N->bool)`; `u:real^N`; `v:real^N`; `u:real^N`;
hol-light-20190729/Multivariate/realanalysis.ml:16365:    `(lambda j. if j = i then min ((v:real^N)$i) a else v$j):real^N`;
hol-light-20190729/Multivariate/realanalysis.ml-16366-    `e / &2`]
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-16381-  DISCH_THEN(X_CHOOSE_THEN `d:real` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/realanalysis.ml:16382:  EXISTS_TAC `min d (min (a - (u:real^N)$i) ((v:real^N)$i - a))` THEN
hol-light-20190729/Multivariate/realanalysis.ml-16383-  ASM_REWRITE_TAC[REAL_LT_MIN; REAL_SUB_LT] THEN
##############################################
hol-light-20190729/Multivariate/realanalysis.ml-16385-  FIRST_X_ASSUM(MP_TAC o SPECL [`u:real^N`;
hol-light-20190729/Multivariate/realanalysis.ml:16386:   `(lambda j. if j = i then min ((v:real^N)$i) b else v$j):real^N`]) THEN
hol-light-20190729/Multivariate/realanalysis.ml-16387-  REWRITE_TAC[dist] THEN ANTS_TAC THENL
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-130-  SIMP_TAC[NOT_IN_EMPTY; FORALL_UNWIND_THM2] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:131:  X_GEN_TAC `x:A` THEN COND_CASES_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/specialtopologies.ml-132-  ASM_CASES_TAC `(x:A) IN u` THEN ASM_REWRITE_TAC[NOT_IN_EMPTY; IN_DIFF] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:133:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/specialtopologies.ml-134-
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-149-  REWRITE_TAC[DERIVED_SET_OF_INDISCRETE_TOPOLOGY] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:150:  ASM_CASES_TAC `s:A->bool = u` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/specialtopologies.ml-151-  FIRST_X_ASSUM SUBST_ALL_TAC THEN
hol-light-20190729/Multivariate/specialtopologies.ml-152-  ASM_REWRITE_TAC[GSYM DISJOINT_EMPTY_REFL; INTER_IDEMPOT] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:153:  COND_CASES_TAC THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/specialtopologies.ml-154-
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-177-    CLOSED_IN_INDISCRETE_TOPOLOGY; NOT_IN_EMPTY; EMPTY_GSPEC] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:178:  EQ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/specialtopologies.ml-179-  STRIP_TAC THEN MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-187-    MP_TAC(SPEC `{(f:A->B) b}` th) THEN MP_TAC(SPEC `{(f:A->B) a}` th)) THEN
hol-light-20190729/Multivariate/specialtopologies.ml:188:  ASM_SIMP_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/specialtopologies.ml-189-
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-198-  REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:199:  CONV_TAC REAL_RAT_REDUCE_CONV THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/specialtopologies.ml-200-
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-246-    REWRITE_TAC[SET_RULE `u DIFF s INTER t = (u DIFF s) UNION (u DIFF t)`] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:247:    ASM_SIMP_TAC[FINITE_UNION] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/specialtopologies.ml-248-    X_GEN_TAC `k:(A->bool)->bool` THEN REWRITE_TAC[EMPTY_UNIONS] THEN
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-259-    MATCH_MP_TAC FINITE_SUBSET THEN EXISTS_TAC `u DIFF s:A->bool` THEN
hol-light-20190729/Multivariate/specialtopologies.ml:260:    ASM_SIMP_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/specialtopologies.ml-261-
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-277-  ASM_SIMP_TAC[SET_RULE `s SUBSET u ==> u DIFF (u DIFF s) = s`] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:278:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/specialtopologies.ml-279-
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-302-  SIMP_TAC[TOPSPACE_COFINITE_TOPOLOGY] THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/specialtopologies.ml:303:   [ASM SET_TAC[]; ASM SET_TAC[]; ASM SET_TAC[];
hol-light-20190729/Multivariate/specialtopologies.ml-304-    ASM_MESON_TAC[INFINITE; FINITE_SUBSET; FINITE_UNION]]);;
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-329-     [ASM_MESON_TAC[FINITE_SUBSET; FINITE_SING];
hol-light-20190729/Multivariate/specialtopologies.ml:330:      REWRITE_TAC[SUBSET; IN_SING] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/specialtopologies.ml-331-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-334-  SUBGOAL_THEN `U = k INSERT (U DELETE (k:A->bool))` SUBST1_TAC THENL
hol-light-20190729/Multivariate/specialtopologies.ml:335:   [ASM SET_TAC[]; REWRITE_TAC[INTER_INTERS; INTERS_INSERT]] THEN
hol-light-20190729/Multivariate/specialtopologies.ml-336-  ASM_SIMP_TAC[SET_RULE `a IN s ==> (s DELETE a = {} <=> s = {a})`] THEN
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-352-     [ASM_MESON_TAC[FINITE_EMPTY; FINITE_DELETE]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:353:    CONJ_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[]] THEN
hol-light-20190729/Multivariate/specialtopologies.ml-354-    REWRITE_TAC[INTER_IDEMPOT; INTER_INTERS; INTERS_INSERT] THEN
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-384-    REWRITE_TAC[IN_INTER; OPEN_IN_COFINITE_TOPOLOGY] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:385:    X_GEN_TAC `t:A->bool` THEN STRIP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:386:    X_GEN_TAC `t':A->bool` THEN STRIP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/specialtopologies.ml-387-    REPEAT STRIP_TAC THEN MATCH_MP_TAC FINITE_SUBSET THEN
hol-light-20190729/Multivariate/specialtopologies.ml-388-    EXISTS_TAC `(u DIFF t) UNION (u DIFF t'):A->bool` THEN
hol-light-20190729/Multivariate/specialtopologies.ml:389:    ASM_REWRITE_TAC[FINITE_UNION] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/specialtopologies.ml-390-    ASM_SIMP_TAC[hausdorff_space; TOPSPACE_SUBTOPOLOGY_SUBSET;
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-400-    TRY(MATCH_MP_TAC FINITE_SUBSET THEN EXISTS_TAC `s:A->bool`) THEN
hol-light-20190729/Multivariate/specialtopologies.ml:401:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/specialtopologies.ml-402-
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-434-    REWRITE_TAC[SET_RULE `u DIFF s INTER t = (u DIFF s) UNION (u DIFF t)`] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:435:    ASM_SIMP_TAC[COUNTABLE_UNION] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/specialtopologies.ml-436-    X_GEN_TAC `k:(A->bool)->bool` THEN REWRITE_TAC[EMPTY_UNIONS] THEN
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-447-    MATCH_MP_TAC COUNTABLE_SUBSET THEN EXISTS_TAC `u DIFF s:A->bool` THEN
hol-light-20190729/Multivariate/specialtopologies.ml:448:    ASM_SIMP_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/specialtopologies.ml-449-
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-465-  ASM_SIMP_TAC[SET_RULE `s SUBSET u ==> u DIFF (u DIFF s) = s`] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:466:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/specialtopologies.ml-467-
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-484-  SIMP_TAC[TOPSPACE_COCOUNTABLE_TOPOLOGY] THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/specialtopologies.ml:485:   [ASM SET_TAC[]; ASM SET_TAC[]; ASM SET_TAC[];
hol-light-20190729/Multivariate/specialtopologies.ml-486-    ASM_MESON_TAC[COUNTABLE_SUBSET; COUNTABLE_UNION]]);;
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-518-   [X_GEN_TAC `a:A` THEN DISCH_TAC THEN DISJ2_TAC THEN
hol-light-20190729/Multivariate/specialtopologies.ml:519:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/specialtopologies.ml-520-    MATCH_MP_TAC COUNTABLE_SUBSET THEN EXISTS_TAC `t:A->bool` THEN
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-523-    ALL_TAC;
hol-light-20190729/Multivariate/specialtopologies.ml:524:    REWRITE_TAC[INTERS_GSPEC] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/specialtopologies.ml-525-  REWRITE_TAC[FORALL_FINITE_SUBSET_IMAGE; SIMPLE_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-562-    REWRITE_TAC[IN_INTER; OPEN_IN_COCOUNTABLE_TOPOLOGY] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:563:    X_GEN_TAC `t:A->bool` THEN STRIP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/specialtopologies.ml:564:    X_GEN_TAC `t':A->bool` THEN STRIP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/specialtopologies.ml-565-    REPEAT STRIP_TAC THEN MATCH_MP_TAC COUNTABLE_SUBSET THEN
hol-light-20190729/Multivariate/specialtopologies.ml-566-    EXISTS_TAC `(u DIFF t) UNION (u DIFF t'):A->bool` THEN
hol-light-20190729/Multivariate/specialtopologies.ml:567:    ASM_REWRITE_TAC[COUNTABLE_UNION] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/specialtopologies.ml-568-    ASM_SIMP_TAC[hausdorff_space; TOPSPACE_SUBTOPOLOGY_SUBSET;
##############################################
hol-light-20190729/Multivariate/specialtopologies.ml-578-    TRY(MATCH_MP_TAC COUNTABLE_SUBSET THEN EXISTS_TAC `s:A->bool`) THEN
hol-light-20190729/Multivariate/specialtopologies.ml:579:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/specialtopologies.ml-580-
##############################################
hol-light-20190729/Multivariate/tarski.ml-211-  SUBGOAL_THEN `?c:real^2. c IN Y` (CHOOSE_THEN MP_TAC) THENL
hol-light-20190729/Multivariate/tarski.ml:212:   [ASM SET_TAC[]; REPEAT(POP_ASSUM MP_TAC)] THEN
hol-light-20190729/Multivariate/tarski.ml-213-  GEOM_BASIS_MULTIPLE_TAC 1 `c:real^2` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-417-  REWRITE_TAC[CONTINUOUS_MAP_COMPONENTWISE_REAL] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:418:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !x:real^N. x$i = x$k`
hol-light-20190729/Multivariate/topology.ml-419-  STRIP_ASSUME_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ASM_SIMP_TAC[]]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-728-    REWRITE_TAC[CLOSED_IN_CLOSED] THEN EXISTS_TAC `s:real^N->bool` THEN
hol-light-20190729/Multivariate/topology.ml:729:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-730-
##############################################
hol-light-20190729/Multivariate/topology.ml-758-  REWRITE_TAC[OPEN_IN_SUBTOPOLOGY; GSYM OPEN_IN] THEN EQ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:759:   [REWRITE_TAC[open_def] THEN ASM SET_TAC[INTER_SUBSET; IN_INTER];
hol-light-20190729/Multivariate/topology.ml-760-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-1412-  SUBGOAL_THEN `(a:real^N) IN e1 \/ a IN e2` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:1413:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-1414-    UNDISCH_TAC `~(e2 INTER UNIONS P:real^N->bool = {})`;
##############################################
hol-light-20190729/Multivariate/topology.ml-1425-  DISCH_THEN(MP_TAC o SPECL [`e1:real^N->bool`; `e2:real^N->bool`]) THEN
hol-light-20190729/Multivariate/topology.ml:1426:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-1427-
##############################################
hol-light-20190729/Multivariate/topology.ml-1433-  REPEAT STRIP_TAC THEN MATCH_MP_TAC CONNECTED_UNIONS THEN
hol-light-20190729/Multivariate/topology.ml:1434:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-1435-
##############################################
hol-light-20190729/Multivariate/topology.ml-1445-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:1446:  REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-1447-  POP_ASSUM_LIST(MP_TAC o end_itlist CONJ) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-1455-  MAP_EVERY EXISTS_TAC [`v UNION s:real^N->bool`; `w DIFF t:real^N->bool`] THEN
hol-light-20190729/Multivariate/topology.ml:1456:  ASM_SIMP_TAC[OPEN_UNION; OPEN_DIFF] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-1457-
##############################################
hol-light-20190729/Multivariate/topology.ml-1472-   `?t a:real^N. t IN f' /\ a IN s /\ a IN t` STRIP_ASSUME_TAC
hol-light-20190729/Multivariate/topology.ml:1473:  THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-1474-  SUBGOAL_THEN `s:real^N->bool = t` (fun th -> ASM_REWRITE_TAC[th]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-1496-    MATCH_MP_TAC OPEN_UNIONS THEN ASM_SIMP_TAC[IN_DELETE];
hol-light-20190729/Multivariate/topology.ml:1497:    REWRITE_TAC[GSYM UNIONS_INSERT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-1498-    MATCH_MP_TAC(SET_RULE `t INTER u = {} ==> t INTER u INTER s = {}`) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-1500-    REWRITE_TAC[IN_DELETE; GSYM DISJOINT] THEN ASM_MESON_TAC[pairwise];
hol-light-20190729/Multivariate/topology.ml:1501:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:1502:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-1503-
##############################################
hol-light-20190729/Multivariate/topology.ml-1523-    GEN_REWRITE_TAC I [CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/topology.ml:1524:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml-1525-     [UNDISCH_TAC `closed_in (subtopology euclidean s) (a:real^N->bool)`;
##############################################
hol-light-20190729/Multivariate/topology.ml-1527-    REWRITE_TAC[CLOSED_IN_CLOSED] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/topology.ml:1528:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-1529-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [DE_MORGAN_THM]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-1537-       REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:1538:       ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-1539-     CONJ_TAC THENL [MATCH_MP_TAC CLOSED_IN_UNION THEN CONJ_TAC; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-1542-     REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:1543:     ASM SET_TAC[])]);;
hol-light-20190729/Multivariate/topology.ml-1544-
##############################################
hol-light-20190729/Multivariate/topology.ml-1564-    GEN_REWRITE_TAC I [CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/topology.ml:1565:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml-1566-     [UNDISCH_TAC `open_in (subtopology euclidean s) (a:real^N->bool)`;
##############################################
hol-light-20190729/Multivariate/topology.ml-1568-    REWRITE_TAC[OPEN_IN_OPEN] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/topology.ml:1569:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-1570-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [DE_MORGAN_THM]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-1578-       REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:1579:       ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-1580-     CONJ_TAC THENL [MATCH_MP_TAC OPEN_IN_UNION THEN CONJ_TAC; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-1583-     REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:1584:     ASM SET_TAC[])]);;
hol-light-20190729/Multivariate/topology.ml-1585-
##############################################
hol-light-20190729/Multivariate/topology.ml-1623-    X_GEN_TAC `c:real^N` THEN REWRITE_TAC[IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/topology.ml:1624:    MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-1625-    ONCE_REWRITE_TAC[OPEN_IN_SUBOPEN] THEN
hol-light-20190729/Multivariate/topology.ml-1626-    X_GEN_TAC `c:real^N` THEN REWRITE_TAC[IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/topology.ml:1627:    MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-1628-    REWRITE_TAC[SUBSET; IN_ELIM_THM; IN_UNION] THEN
hol-light-20190729/Multivariate/topology.ml-1629-    X_GEN_TAC `c:real^N` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/topology.ml:1630:    FIRST_X_ASSUM(MP_TAC o SPEC `c:real^N`) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-1631-    REWRITE_TAC[EXTENSION; IN_INTER; NOT_IN_EMPTY; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-1635-    FIRST_X_ASSUM(MP_TAC o SPECL [`t INTER u:real^N->bool`; `c:real^N`]) THEN
hol-light-20190729/Multivariate/topology.ml:1636:    ASM_SIMP_TAC[OPEN_IN_INTER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:1637:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:1638:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-1639-
##############################################
hol-light-20190729/Multivariate/topology.ml-1774-  X_GEN_TAC `i:num` THEN STRIP_TAC THEN REWRITE_TAC[GSYM REAL_NOT_LT] THEN
hol-light-20190729/Multivariate/topology.ml:1775:  DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `--(x:real^N $ i)`) THEN
hol-light-20190729/Multivariate/topology.ml-1776-  ASM_REWRITE_TAC[REAL_LT_RNEG; REAL_ADD_LID; NOT_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-1779-  MATCH_MP_TAC(REAL_ARITH `!b. abs x <= b /\ b <= a ==> ~(a + x < &0)`) THEN
hol-light-20190729/Multivariate/topology.ml:1780:  EXISTS_TAC `abs((y - x :real^N)$i)` THEN
hol-light-20190729/Multivariate/topology.ml-1781-  ASM_SIMP_TAC[dist; COMPONENT_LE_NORM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-1826-  TRANS_TAC EQ_TRANS `(x:real^N) limit_point_of a INSERT (s DELETE a)` THEN
hol-light-20190729/Multivariate/topology.ml:1827:  CONJ_TAC THENL [REWRITE_TAC[LIMPT_INSERT]; AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-1828-
##############################################
hol-light-20190729/Multivariate/topology.ml-1936-  ONCE_REWRITE_TAC[TAUT `p /\ q /\ r ==> s <=> r ==> p /\ q ==> s`] THEN
hol-light-20190729/Multivariate/topology.ml:1937:  REWRITE_TAC[FORALL_UNWIND_THM2; IN_INTER] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-1938-
##############################################
hol-light-20190729/Multivariate/topology.ml-2164-  REWRITE_TAC[UNIONS_SUBSET; FORALL_IN_GSPEC] THEN
hol-light-20190729/Multivariate/topology.ml:2165:  REPEAT STRIP_TAC THEN MATCH_MP_TAC SUBSET_CLOSURE THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-2166-
##############################################
hol-light-20190729/Multivariate/topology.ml-2175-  REWRITE_TAC[FORALL_IN_IMAGE] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:2176:  MATCH_MP_TAC SUBSET_CLOSURE THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-2177-
##############################################
hol-light-20190729/Multivariate/topology.ml-2306-  REPEAT STRIP_TAC THEN MATCH_MP_TAC CONNECTED_IN_NONSEPARATED_UNION THEN
hol-light-20190729/Multivariate/topology.ml:2307:  ASM_REWRITE_TAC[separated_in] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-2308-
##############################################
hol-light-20190729/Multivariate/topology.ml-2318-    REWRITE_TAC[CLOSED_CLOSURE; CLOSED_SING] THEN
hol-light-20190729/Multivariate/topology.ml:2319:    MP_TAC(ISPEC `s:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-2320-    DISCH_TAC THEN ONCE_REWRITE_TAC[SET_RULE `a INSERT s = s UNION {a}`] THEN
hol-light-20190729/Multivariate/topology.ml-2321-    MATCH_MP_TAC CONNECTED_UNION_STRONG THEN
hol-light-20190729/Multivariate/topology.ml:2322:    ASM_REWRITE_TAC[CONNECTED_SING] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-2323-
##############################################
hol-light-20190729/Multivariate/topology.ml-2393-        OPEN_INTER_CLOSURE_EQ_EMPTY) THEN
hol-light-20190729/Multivariate/topology.ml:2394:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-2395-
##############################################
hol-light-20190729/Multivariate/topology.ml-2413-        OPEN_INTER_CLOSURE_EQ_EMPTY) THEN
hol-light-20190729/Multivariate/topology.ml:2414:  ASM_SIMP_TAC[OPEN_INTER] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-2415-
##############################################
hol-light-20190729/Multivariate/topology.ml-2514-  DISCH_THEN(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET o CONJUNCT1) THEN
hol-light-20190729/Multivariate/topology.ml:2515:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-2516-
##############################################
hol-light-20190729/Multivariate/topology.ml-2792-  MP_TAC(ISPECL [`(:real^N)`; `s:real^N->bool`] CONNECTED_INTER_FRONTIER) THEN
hol-light-20190729/Multivariate/topology.ml:2793:  REWRITE_TAC[CONNECTED_UNIV] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-2794-
##############################################
hol-light-20190729/Multivariate/topology.ml-2893-  MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:2894:   [ASM_SIMP_TAC[OPEN_INTER_CLOSURE_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:2895:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-2896-
##############################################
hol-light-20190729/Multivariate/topology.ml-3182-  GEN_REWRITE_TAC LAND_CONV [GSYM EVENTUALLY_WITHIN_IMP] THEN
hol-light-20190729/Multivariate/topology.ml:3183:  MATCH_MP_TAC EVENTUALLY_WITHIN_OPEN THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-3184-
##############################################
hol-light-20190729/Multivariate/topology.ml-3197-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ] EVENTUALLY_MONO) THEN
hol-light-20190729/Multivariate/topology.ml:3198:  FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-3199-
##############################################
hol-light-20190729/Multivariate/topology.ml-3528-    X_GEN_TAC `n:num` THEN EXISTS_TAC `n:num` THEN REWRITE_TAC[LE_REFL] THEN
hol-light-20190729/Multivariate/topology.ml:3529:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-3530-
##############################################
hol-light-20190729/Multivariate/topology.ml-3697-        GEN_REWRITE_RULE I [LIMPT_INFINITE_OPEN]) THEN
hol-light-20190729/Multivariate/topology.ml:3698:  FIRST_X_ASSUM SUBST_ALL_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-3699-
##############################################
hol-light-20190729/Multivariate/topology.ml-3718-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] COUNTABLE_SUBSET) THEN
hol-light-20190729/Multivariate/topology.ml:3719:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-3720-
##############################################
hol-light-20190729/Multivariate/topology.ml-4549-  FIRST_ASSUM(MP_TAC o MATCH_MP DENSE_IMP_PERFECT) THEN
hol-light-20190729/Multivariate/topology.ml:4550:  RULE_ASSUM_TAC(REWRITE_RULE[closure]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-4551-
##############################################
hol-light-20190729/Multivariate/topology.ml-4783-  ASM_CASES_TAC `r = &0` THEN ASM_SIMP_TAC[SPHERE_SING] THENL
hol-light-20190729/Multivariate/topology.ml:4784:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-4785-  MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/topology.ml-4888-  ASM_REWRITE_TAC[CONNECTED_IN_EUCLIDEAN; T1_SPACE_EUCLIDEAN] THEN
hol-light-20190729/Multivariate/topology.ml:4889:  REWRITE_TAC[LIMIT_POINT_IN_DERIVED_SET] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-4890-
##############################################
hol-light-20190729/Multivariate/topology.ml-5050-  CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:5051:   [REWRITE_TAC[BOUNDED_INSERT]; AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-5052-
##############################################
hol-light-20190729/Multivariate/topology.ml-5057-  DISCH_TAC THEN MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] BOUNDED_SUBSET) THEN
hol-light-20190729/Multivariate/topology.ml:5058:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-5059-
##############################################
hol-light-20190729/Multivariate/topology.ml-5435-          ==> t = IMAGE f s`) THEN
hol-light-20190729/Multivariate/topology.ml:5436:    EXISTS_TAC `\(x:real^N) i. if i IN 1..dimindex(:N) then x$i else ARB` THEN
hol-light-20190729/Multivariate/topology.ml-5437-    REWRITE_TAC[cartesian_product; IN_ELIM_THM; EXTENSIONAL] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-6029-  SIMP_TAC[COMPACT_EQ_BOUNDED_CLOSED; CLOSED_INTERS] THEN
hol-light-20190729/Multivariate/topology.ml:6030:  REPEAT STRIP_TAC THEN MATCH_MP_TAC BOUNDED_INTERS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-6031-
##############################################
hol-light-20190729/Multivariate/topology.ml-6068-  REWRITE_TAC[LIMPT_DELETE] THEN COND_CASES_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:6069:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-6070-
##############################################
hol-light-20190729/Multivariate/topology.ml-6114-    MATCH_MP_TAC OPEN_IN_DIFF THEN ASM_REWRITE_TAC[CLOSED_IN_SING] THEN
hol-light-20190729/Multivariate/topology.ml:6115:    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-6116-    ASM_SIMP_TAC[SET_RULE `~(a IN s) ==> s DELETE a = s`]]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-6248-  DISCH_THEN MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:6249:  ASM_SIMP_TAC[CLOSED_SUBSET; LE_0] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-6250-
##############################################
hol-light-20190729/Multivariate/topology.ml-6301-  SUBGOAL_THEN `?s:real^N->bool. s IN f /\ !t. t IN u ==> s SUBSET t`
hol-light-20190729/Multivariate/topology.ml:6302:  MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-6303-  UNDISCH_TAC `(u:(real^N->bool)->bool) SUBSET f` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-6306-  MATCH_MP_TAC FINITE_INDUCT_STRONG THEN
hol-light-20190729/Multivariate/topology.ml:6307:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-6308-  MAP_EVERY X_GEN_TAC [`t:real^N->bool`; `u:(real^N->bool)->bool`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-6314-  FIRST_X_ASSUM(MP_TAC o SPECL [`s:real^N->bool`; `t:real^N->bool`]) THEN
hol-light-20190729/Multivariate/topology.ml:6315:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-6316-
##############################################
hol-light-20190729/Multivariate/topology.ml-6328-   [ASM_REWRITE_TAC[INTERS_0] THEN SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:6329:    MATCH_MP_TAC BOUNDED_CLOSED_CHAIN THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-6330-
##############################################
hol-light-20190729/Multivariate/topology.ml-6359-    DISCH_THEN(MP_TAC o SPEC `(x:num->real^N) o (r:num->num)`) THEN
hol-light-20190729/Multivariate/topology.ml:6360:    REWRITE_TAC[o_THM] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-6361-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `y:real^N` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-6363-    EXISTS_TAC `(r:num->num) o (q:num->num)` THEN
hol-light-20190729/Multivariate/topology.ml:6364:    ASM_SIMP_TAC[o_ASSOC; o_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-6365-    MAP_EVERY X_GEN_TAC [`y:real^N`; `r:num->num`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-6367-    ASM_SIMP_TAC[COMPACT_SEQUENCE_WITH_LIMIT; INSERT_SUBSET; IMAGE_o] THEN
hol-light-20190729/Multivariate/topology.ml:6368:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-6369-    DISCH_THEN(MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ] FINITE_SUBSET)) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-7115-        {n | p n IN {z | z IN s INTER u /\ f z = f x}}`
hol-light-20190729/Multivariate/topology.ml:7116:      SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-7117-      MATCH_MP_TAC FINITE_FINITE_PREIMAGE THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-7119-       `(?a. s SUBSET {a}) ==> FINITE s`) THEN
hol-light-20190729/Multivariate/topology.ml:7120:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-7121-    DISCH_THEN(X_CHOOSE_THEN `r:num->num` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-7123-    EXISTS_TAC `(f:real^M->real^N) o p o (r:num->num)` THEN
hol-light-20190729/Multivariate/topology.ml:7124:    REWRITE_TAC[o_THM] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-7125-    FIRST_ASSUM(MATCH_MP_TAC o
##############################################
hol-light-20190729/Multivariate/topology.ml-7138-   `(?a. s SUBSET {a}) ==> FINITE s`) THEN
hol-light-20190729/Multivariate/topology.ml:7139:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-7140-
##############################################
hol-light-20190729/Multivariate/topology.ml-7162-  ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:7163:   [MATCH_MP_TAC TRANSITIVE_STEPWISE_LE THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-7164-  SUBGOAL_THEN `!n. (x:num->real^M) n IN s 0` ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-7662-    X_GEN_TAC `x:real^M` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:7663:    FIRST_X_ASSUM(MP_TAC o SPEC `(f:real^M->real^N) x`) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-7664-    DISCH_TAC THEN X_GEN_TAC `x:real^M` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-7709-  REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:7710:  CONJ_TAC THENL [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-7711-
##############################################
hol-light-20190729/Multivariate/topology.ml-7730-  ASM_REWRITE_TAC[SUBSET_RESTRICT] THEN
hol-light-20190729/Multivariate/topology.ml:7731:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-7732-
##############################################
hol-light-20190729/Multivariate/topology.ml-7767-  REPEAT(FIRST_X_ASSUM(ASSUME_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:7768:  CONJ_TAC THENL [ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]; ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-7769-
##############################################
hol-light-20190729/Multivariate/topology.ml-7806-                 s INTER t'` SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:7807:    [ASM SET_TAC []; ASM_MESON_TAC [OPEN_INTER]]]);;
hol-light-20190729/Multivariate/topology.ml-7808-
##############################################
hol-light-20190729/Multivariate/topology.ml-7821-                 s INTER t'` SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:7822:    [ASM SET_TAC []; ASM_MESON_TAC [CLOSED_INTER]]]);;
hol-light-20190729/Multivariate/topology.ml-7823-
##############################################
hol-light-20190729/Multivariate/topology.ml-7871-    (fun th -> REWRITE_TAC[th]) THEN
hol-light-20190729/Multivariate/topology.ml:7872:  REWRITE_TAC[RESTRICTION] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-7873-
##############################################
hol-light-20190729/Multivariate/topology.ml-7920-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/topology.ml:7921:  SUBGOAL_THEN `linear(\x:real^N. lift (x$i))` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml-7922-   [REWRITE_TAC[LINEAR_LIFT_COMPONENT]; REWRITE_TAC[GSYM IMP_CONJ_ALT]] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-8151-  ASM_SIMP_TAC[OPEN_PCROSS; EXTENSION; FORALL_PASTECART] THEN
hol-light-20190729/Multivariate/topology.ml:8152:  REWRITE_TAC[IN_INTER; PASTECART_IN_PCROSS] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-8153-
##############################################
hol-light-20190729/Multivariate/topology.ml-8412-   `open_in top x ==> x = y ==> open_in top y`)) THEN
hol-light-20190729/Multivariate/topology.ml:8413:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-8414-
##############################################
hol-light-20190729/Multivariate/topology.ml-8443-     `t = IMAGE f {x | x IN s /\ (f:real^M->real^N) x IN t}`
hol-light-20190729/Multivariate/topology.ml:8444:    SUBST1_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[]];
hol-light-20190729/Multivariate/topology.ml-8445-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [CONTINUOUS_ON_OPEN]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-8464-      DISCH_THEN(MP_TAC o CONJUNCT2) THEN MATCH_MP_TAC EQ_IMP THEN
hol-light-20190729/Multivariate/topology.ml:8465:      AP_TERM_TAC THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-8466-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [CONTINUOUS_ON_OPEN]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-8483-      REWRITE_TAC[OPEN_IN_OPEN] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/Multivariate/topology.ml:8484:      ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:8485:      MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-8486-    DISCH_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-8488-     (fun th -> ASM_REWRITE_TAC[th]) THEN
hol-light-20190729/Multivariate/topology.ml:8489:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-8490-
##############################################
hol-light-20190729/Multivariate/topology.ml-8500-  EXISTS_TAC `g:real^N->real^M` THEN
hol-light-20190729/Multivariate/topology.ml:8501:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-8502-
##############################################
hol-light-20190729/Multivariate/topology.ml-8519-  (ANTS_TAC THENL [SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)]) THEN
hol-light-20190729/Multivariate/topology.ml:8520:  REWRITE_TAC[SUBSET_RESTRICT] THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-8521-
##############################################
hol-light-20190729/Multivariate/topology.ml-8535-   (fun th -> REWRITE_TAC[MATCH_MP CONTINUOUS_ON_OPEN_GEN th])
hol-light-20190729/Multivariate/topology.ml:8536:  THENL [REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-8537-  X_GEN_TAC `v:real^P->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-8543-   `open_in top s ==> s = t ==> open_in top t`)) THEN
hol-light-20190729/Multivariate/topology.ml:8544:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-8545-
##############################################
hol-light-20190729/Multivariate/topology.ml-8559-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `g:real^N->real^P` THEN
hol-light-20190729/Multivariate/topology.ml:8560:  DISCH_TAC THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-8561-  MATCH_MP_TAC CONTINUOUS_ON_COMPOSE_QUOTIENT THEN MAP_EVERY EXISTS_TAC
hol-light-20190729/Multivariate/topology.ml-8562-   [`f:real^M->real^N`; `s:real^M->bool`; `u:real^P->bool`] THEN
hol-light-20190729/Multivariate/topology.ml:8563:  ASM_SIMP_TAC[SUBSET_REFL] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-8564-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/Multivariate/topology.ml-8584-    {x | x IN s /\ f x IN {x | x IN t /\ g x IN v}}`
hol-light-20190729/Multivariate/topology.ml:8585:  SUBST1_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[SUBSET_RESTRICT]]);;
hol-light-20190729/Multivariate/topology.ml-8586-
##############################################
hol-light-20190729/Multivariate/topology.ml-8604-      {x | x IN s /\ f x IN {x | x IN t /\ g x IN v}}`
hol-light-20190729/Multivariate/topology.ml:8605:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-8606-    MATCH_MP_TAC CONTINUOUS_OPEN_IN_PREIMAGE_GEN THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-8653-  DISCH_THEN(fun th -> DISCH_TAC THEN MP_TAC th) THEN
hol-light-20190729/Multivariate/topology.ml:8654:  (ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-8655-  (MATCH_MP_TAC EQ_IMP THEN BINOP_TAC THENL
hol-light-20190729/Multivariate/topology.ml-8656-    [MATCH_MP_TAC(MESON[] `t = s /\ (P s <=> Q s) ==> (P s <=> Q t)`) THEN
hol-light-20190729/Multivariate/topology.ml:8657:     CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_ELIM_THM]];
hol-light-20190729/Multivariate/topology.ml-8658-     ALL_TAC]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-8665-   MATCH_MP_TAC CONTINUOUS_CLOSED_IN_PREIMAGE_GEN ORELSE ASM_SIMP_TAC[]) THEN
hol-light-20190729/Multivariate/topology.ml:8666:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-8667-
##############################################
hol-light-20190729/Multivariate/topology.ml-8701-  ASM_REWRITE_TAC[OPEN_IN_REFL] THEN MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/topology.ml:8702:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-8703-
##############################################
hol-light-20190729/Multivariate/topology.ml-8738-  DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `c:real^M->bool`) THEN
hol-light-20190729/Multivariate/topology.ml:8739:  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-8740-
##############################################
hol-light-20190729/Multivariate/topology.ml-8753-  DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `c:real^M->bool`) THEN
hol-light-20190729/Multivariate/topology.ml:8754:  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-8755-
##############################################
hol-light-20190729/Multivariate/topology.ml-8770-  FIRST_X_ASSUM(MP_TAC o SPEC `IMAGE (f:real^M->real^N) k`) THEN
hol-light-20190729/Multivariate/topology.ml:8771:  ASM_SIMP_TAC[IMAGE_SUBSET] THEN DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-8772-
##############################################
hol-light-20190729/Multivariate/topology.ml-8789-  FIRST_X_ASSUM(MP_TAC o SPEC `IMAGE (f:real^M->real^N) k`) THEN
hol-light-20190729/Multivariate/topology.ml:8790:  ASM_SIMP_TAC[IMAGE_SUBSET] THEN DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-8791-
##############################################
hol-light-20190729/Multivariate/topology.ml-8806-  SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:8807:   [FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-8808-    MATCH_MP_TAC OPEN_IN_DIFF THEN REWRITE_TAC[OPEN_IN_REFL] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-8827-  SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:8828:   [FIRST_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-8829-    MATCH_MP_TAC CLOSED_IN_DIFF THEN REWRITE_TAC[CLOSED_IN_REFL] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-8845-  REWRITE_TAC[TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:8846:  (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-8847-  FIRST_X_ASSUM(MP_TAC o SPEC `s DIFF c:real^M->bool`) THEN
hol-light-20190729/Multivariate/topology.ml-8848-  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/topology.ml:8849:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-8850-
##############################################
hol-light-20190729/Multivariate/topology.ml-8862-   [FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/topology.ml:8863:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-8864-    FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-8879-   [FIRST_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/topology.ml:8880:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-8881-    FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-8897-   [FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/topology.ml:8898:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-8899-    MATCH_MP_TAC CONTINUOUS_OPEN_IN_PREIMAGE_GEN THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-8914-   [FIRST_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/topology.ml:8915:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-8916-    MATCH_MP_TAC CONTINUOUS_CLOSED_IN_PREIMAGE_GEN THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9097-  FIRST_X_ASSUM(MP_TAC o SPEC `{x | x IN t /\ (g:real^N->real^P) x IN k}`) THEN
hol-light-20190729/Multivariate/topology.ml:9098:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC EQ_IMP] THEN
hol-light-20190729/Multivariate/topology.ml:9099:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-9100-
##############################################
hol-light-20190729/Multivariate/topology.ml-9114-        CONTINUOUS_ON_SUBSET)) THEN SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:9115:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-9116-
##############################################
hol-light-20190729/Multivariate/topology.ml-9130-  ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:9131:   [CONJ_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC COMPACT_CONTINUOUS_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml-9132-    ASM_MESON_TAC[CONTINUOUS_ON_SUBSET];
##############################################
hol-light-20190729/Multivariate/topology.ml-9135-    EXISTS_TAC `s:real^M->bool` THEN
hol-light-20190729/Multivariate/topology.ml:9136:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-9137-    MATCH_MP_TAC CONTINUOUS_CLOSED_IN_PREIMAGE_GEN THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9150-              PASTECART_IN_PCROSS; FSTCART_PASTECART] THEN
hol-light-20190729/Multivariate/topology.ml:9151:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-9152-
##############################################
hol-light-20190729/Multivariate/topology.ml-9162-  ASM_SIMP_TAC[PROPER_MAP_FSTCART; IMAGE_FSTCART_PCROSS] THEN
hol-light-20190729/Multivariate/topology.ml:9163:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-9164-
##############################################
hol-light-20190729/Multivariate/topology.ml-9174-              PASTECART_IN_PCROSS; SNDCART_PASTECART] THEN
hol-light-20190729/Multivariate/topology.ml:9175:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-9176-
##############################################
hol-light-20190729/Multivariate/topology.ml-9186-  ASM_SIMP_TAC[PROPER_MAP_SNDCART; IMAGE_SNDCART_PCROSS] THEN
hol-light-20190729/Multivariate/topology.ml:9187:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-9188-
##############################################
hol-light-20190729/Multivariate/topology.ml-9269-    REWRITE_TAC[SUBSET; UNIONS_IMAGE; IN_ELIM_THM; FORALL_IN_PCROSS] THEN
hol-light-20190729/Multivariate/topology.ml:9270:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-9271-    MAP_EVERY X_GEN_TAC [`a:real^M`; `b:real^N`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9273-    FIRST_X_ASSUM(MP_TAC o SPEC `c:real^N`) THEN
hol-light-20190729/Multivariate/topology.ml:9274:    ASM_REWRITE_TAC[SUBSET; FORALL_IN_PCROSS] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-9275-
##############################################
hol-light-20190729/Multivariate/topology.ml-9291-    REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; o_THM] THEN
hol-light-20190729/Multivariate/topology.ml:9292:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[compact]] THEN
hol-light-20190729/Multivariate/topology.ml-9293-    DISCH_THEN(MP_TAC o SPEC `x:num->real^M`) THEN
hol-light-20190729/Multivariate/topology.ml:9294:    ASM_REWRITE_TAC[IN_ELIM_THM; IN_INSERT; IMAGE_o] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-9295-
##############################################
hol-light-20190729/Multivariate/topology.ml-9311-   [`(x:num->real^M) o (r:num->num)`; `y:real^N`]) THEN
hol-light-20190729/Multivariate/topology.ml:9312:  ASM_REWRITE_TAC[o_THM] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-9313-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `z:real^M` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9347-   `!x. (!n. x n IN s) ==> (!n:num. (f:real^M->real^N) (x n) IN t)`
hol-light-20190729/Multivariate/topology.ml:9348:  MP_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[SEQUENCE_ESCAPES]] THEN
hol-light-20190729/Multivariate/topology.ml-9349-  DISCH_THEN(K ALL_TAC) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9373-   `!x. (!n. x n IN s) ==> (!n:num. (f:real^M->real^N) (x n) IN t)`
hol-light-20190729/Multivariate/topology.ml:9374:  MP_TAC THENL [ASM SET_TAC[]; SIMP_TAC[SEQUENCE_ESCAPES]] THEN
hol-light-20190729/Multivariate/topology.ml-9375-  DISCH_THEN(K ALL_TAC) THEN ONCE_REWRITE_TAC[IMP_CONJ] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9475-  REPEAT STRIP_TAC THEN REWRITE_TAC[GSYM REAL_NOT_LT] THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9476:  FIRST_X_ASSUM(MP_TAC o SPEC `(x:real^N)$i - (b:real^N)$i`) THEN
hol-light-20190729/Multivariate/topology.ml-9477-  ASM_REWRITE_TAC[REAL_SUB_LT] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9480-  REWRITE_TAC[dist; REAL_NOT_LT] THEN
hol-light-20190729/Multivariate/topology.ml:9481:  MATCH_MP_TAC REAL_LE_TRANS THEN EXISTS_TAC `abs((z - x :real^N)$i)` THEN
hol-light-20190729/Multivariate/topology.ml-9482-  ASM_SIMP_TAC[COMPONENT_LE_NORM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9490-  REPEAT STRIP_TAC THEN REWRITE_TAC[GSYM REAL_NOT_LT] THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9491:  FIRST_X_ASSUM(MP_TAC o SPEC `(a:real^N)$i - (x:real^N)$i`) THEN
hol-light-20190729/Multivariate/topology.ml-9492-  ASM_REWRITE_TAC[REAL_SUB_LT] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9495-  REWRITE_TAC[dist; REAL_NOT_LT] THEN
hol-light-20190729/Multivariate/topology.ml:9496:  MATCH_MP_TAC REAL_LE_TRANS THEN EXISTS_TAC `abs((z - x :real^N)$i)` THEN
hol-light-20190729/Multivariate/topology.ml-9497-  ASM_SIMP_TAC[COMPONENT_LE_NORM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9539-let CLOSED_STANDARD_HYPERPLANE = prove
hol-light-20190729/Multivariate/topology.ml:9540: (`!k a. closed {x:real^N | x$k = a}`,
hol-light-20190729/Multivariate/topology.ml-9541-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9542:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/topology.ml-9543-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-9548-let CLOSED_HALFSPACE_COMPONENT_LE = prove
hol-light-20190729/Multivariate/topology.ml:9549: (`!a k. closed {x:real^N | x$k <= a}`,
hol-light-20190729/Multivariate/topology.ml-9550-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9551:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/topology.ml-9552-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-9557-let CLOSED_HALFSPACE_COMPONENT_GE = prove
hol-light-20190729/Multivariate/topology.ml:9558: (`!a k. closed {x:real^N | x$k >= a}`,
hol-light-20190729/Multivariate/topology.ml-9559-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9560:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/topology.ml-9561-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-9576-let OPEN_HALFSPACE_COMPONENT_LT = prove
hol-light-20190729/Multivariate/topology.ml:9577: (`!a k. open {x:real^N | x$k < a}`,
hol-light-20190729/Multivariate/topology.ml-9578-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9579:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/topology.ml-9580-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-9591-let OPEN_HALFSPACE_COMPONENT_GT = prove
hol-light-20190729/Multivariate/topology.ml:9592: (`!a k. open {x:real^N | x$k > a}`,
hol-light-20190729/Multivariate/topology.ml-9593-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9594:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/topology.ml-9595-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-9620-let OPEN_INTERVAL_LEFT = prove
hol-light-20190729/Multivariate/topology.ml:9621: (`!b:real^N. open {x:real^N | !i. 1 <= i /\ i <= dimindex(:N) ==> x$i < b$i}`,
hol-light-20190729/Multivariate/topology.ml-9622-  GEN_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9632-let OPEN_INTERVAL_RIGHT = prove
hol-light-20190729/Multivariate/topology.ml:9633: (`!a:real^N. open {x:real^N | !i. 1 <= i /\ i <= dimindex(:N) ==> a$i < x$i}`,
hol-light-20190729/Multivariate/topology.ml-9634-  GEN_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9644-let OPEN_POSITIVE_ORTHANT = prove
hol-light-20190729/Multivariate/topology.ml:9645: (`open {x:real^N | !i. 1 <= i /\ i <= dimindex(:N) ==> &0 < x$i}`,
hol-light-20190729/Multivariate/topology.ml-9646-  MP_TAC(ISPEC `vec 0:real^N` OPEN_INTERVAL_RIGHT) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9683-let INTERIOR_HALFSPACE_COMPONENT_LE = prove
hol-light-20190729/Multivariate/topology.ml:9684: (`!a k. interior {x:real^N | x$k <= a} = {x | x$k < a}`,
hol-light-20190729/Multivariate/topology.ml-9685-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9686:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/topology.ml-9687-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-9692-let INTERIOR_HALFSPACE_COMPONENT_GE = prove
hol-light-20190729/Multivariate/topology.ml:9693: (`!a k. interior {x:real^N | x$k >= a} = {x | x$k > a}`,
hol-light-20190729/Multivariate/topology.ml-9694-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9695:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/topology.ml-9696-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-9717-let CLOSURE_HALFSPACE_COMPONENT_LT = prove
hol-light-20190729/Multivariate/topology.ml:9718: (`!a k. closure {x:real^N | x$k < a} = {x | x$k <= a}`,
hol-light-20190729/Multivariate/topology.ml-9719-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9720:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/topology.ml-9721-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-9726-let CLOSURE_HALFSPACE_COMPONENT_GT = prove
hol-light-20190729/Multivariate/topology.ml:9727: (`!a k. closure {x:real^N | x$k > a} = {x | x$k >= a}`,
hol-light-20190729/Multivariate/topology.ml-9728-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9729:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/topology.ml-9730-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-9782-let FRONTIER_HALFSPACE_COMPONENT_LE = prove
hol-light-20190729/Multivariate/topology.ml:9783: (`!a k. frontier {x:real^N | x$k <= a} = {x | x$k = a}`,
hol-light-20190729/Multivariate/topology.ml-9784-  SIMP_TAC[frontier; CLOSURE_CLOSED; CLOSED_HALFSPACE_COMPONENT_LE;
##############################################
hol-light-20190729/Multivariate/topology.ml-9788-let FRONTIER_HALFSPACE_COMPONENT_GE = prove
hol-light-20190729/Multivariate/topology.ml:9789: (`!a k. frontier {x:real^N | x$k >= a} = {x | x$k = a}`,
hol-light-20190729/Multivariate/topology.ml-9790-  SIMP_TAC[frontier; CLOSURE_CLOSED; CLOSED_HALFSPACE_COMPONENT_GE;
##############################################
hol-light-20190729/Multivariate/topology.ml-9794-let FRONTIER_HALFSPACE_COMPONENT_LT = prove
hol-light-20190729/Multivariate/topology.ml:9795: (`!a k. frontier {x:real^N | x$k < a} = {x | x$k = a}`,
hol-light-20190729/Multivariate/topology.ml-9796-  SIMP_TAC[frontier; INTERIOR_OPEN; OPEN_HALFSPACE_COMPONENT_LT;
##############################################
hol-light-20190729/Multivariate/topology.ml-9800-let FRONTIER_HALFSPACE_COMPONENT_GT = prove
hol-light-20190729/Multivariate/topology.ml:9801: (`!a k. frontier {x:real^N | x$k > a} = {x | x$k = a}`,
hol-light-20190729/Multivariate/topology.ml-9802-  SIMP_TAC[frontier; INTERIOR_OPEN; OPEN_HALFSPACE_COMPONENT_GT;
##############################################
hol-light-20190729/Multivariate/topology.ml-9806-let INTERIOR_STANDARD_HYPERPLANE = prove
hol-light-20190729/Multivariate/topology.ml:9807: (`!k a. interior {x:real^N | x$k = a} = {}`,
hol-light-20190729/Multivariate/topology.ml-9808-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9809:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/Multivariate/topology.ml-9810-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-9834-let UNBOUNDED_HALFSPACE_COMPONENT_LE = prove
hol-light-20190729/Multivariate/topology.ml:9835: (`!a k. ~bounded {x:real^N | x$k <= a}`,
hol-light-20190729/Multivariate/topology.ml-9836-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/topology.ml:9837:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !z:real^N. z$k = z$i`
hol-light-20190729/Multivariate/topology.ml-9838-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9847-let UNBOUNDED_HALFSPACE_COMPONENT_GE = prove
hol-light-20190729/Multivariate/topology.ml:9848: (`!a k. ~bounded {x:real^N | x$k >= a}`,
hol-light-20190729/Multivariate/topology.ml-9849-  REPEAT GEN_TAC THEN DISCH_THEN(MP_TAC o MATCH_MP BOUNDED_NEGATIONS) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9856-let UNBOUNDED_HALFSPACE_COMPONENT_LT = prove
hol-light-20190729/Multivariate/topology.ml:9857: (`!a k. ~bounded {x:real^N | x$k < a}`,
hol-light-20190729/Multivariate/topology.ml-9858-  ONCE_REWRITE_TAC[GSYM BOUNDED_CLOSURE_EQ] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9862-let UNBOUNDED_HALFSPACE_COMPONENT_GT = prove
hol-light-20190729/Multivariate/topology.ml:9863: (`!a k. ~bounded {x:real^N | x$k > a}`,
hol-light-20190729/Multivariate/topology.ml-9864-  ONCE_REWRITE_TAC[GSYM BOUNDED_CLOSURE_EQ] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9916-  DISCH_THEN(MP_TAC o fst o EQ_IMP_RULE) THEN
hol-light-20190729/Multivariate/topology.ml:9917:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-9918-  DISCH_THEN(X_CHOOSE_THEN `a:num->real^M` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-9924-    GEN_REWRITE_RULE I [CONTINUOUS_ON_SEQUENTIALLY]) THEN
hol-light-20190729/Multivariate/topology.ml:9925:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-9926-
##############################################
hol-light-20190729/Multivariate/topology.ml-9939-  let lemma = prove
hol-light-20190729/Multivariate/topology.ml:9940:   (`x IN s ==> f x <= a <=> x IN s ==> (lift o f) x IN {y | y$1 <= a}`,
hol-light-20190729/Multivariate/topology.ml-9941-    REWRITE_TAC[IN_ELIM_THM; o_THM; GSYM drop; LIFT_DROP]) in
##############################################
hol-light-20190729/Multivariate/topology.ml-9952-  let lemma = prove
hol-light-20190729/Multivariate/topology.ml:9953:   (`x IN s ==> a <= f x <=> x IN s ==> (lift o f) x IN {y | y$1 >= a}`,
hol-light-20190729/Multivariate/topology.ml-9954-    REWRITE_TAC[IN_ELIM_THM; o_THM; GSYM drop; real_ge; LIFT_DROP]) in
##############################################
hol-light-20190729/Multivariate/topology.ml-10058-  MATCH_MP_TAC CONTINUOUS_CLOSED_PREIMAGE THEN
hol-light-20190729/Multivariate/topology.ml:10059:  ASM_REWRITE_TAC[CLOSED_SING] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-10060-
##############################################
hol-light-20190729/Multivariate/topology.ml-10291-                  COMPACT_IMP_BOUNDED; COMPACT_CONTINUOUS_IMAGE];
hol-light-20190729/Multivariate/topology.ml:10292:    MP_TAC(ISPEC `s:real^M->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-10293-
##############################################
hol-light-20190729/Multivariate/topology.ml-10373-  ABBREV_TAC `fx = sup {drop(f(x:real^N)) | P f}` THEN
hol-light-20190729/Multivariate/topology.ml:10374:  REPEAT(ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-10375-  REWRITE_TAC[NORM_1; DROP_SUB; LIFT_DROP; REAL_ARITH
##############################################
hol-light-20190729/Multivariate/topology.ml-10406-  ABBREV_TAC `fx = inf {drop(f(x:real^N)) | P f}` THEN
hol-light-20190729/Multivariate/topology.ml:10407:  REPEAT(ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-10408-  REWRITE_TAC[NORM_1; DROP_SUB; LIFT_DROP; REAL_ARITH
##############################################
hol-light-20190729/Multivariate/topology.ml-10481-  SUBGOAL_THEN `y IN IMAGE (f:real^M->real^N) s` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:10482:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-10483-  REWRITE_TAC[IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-10488-   [MATCH_MP_TAC CONTINUOUS_OPEN_PREIMAGE_UNIV THEN ASM_MESON_TAC[];
hol-light-20190729/Multivariate/topology.ml:10489:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-10490-
##############################################
hol-light-20190729/Multivariate/topology.ml-10684-  REWRITE_TAC[TOPSPACE_EUCLIDEAN_SUBTOPOLOGY; SUBSET_RESTRICT] THEN
hol-light-20190729/Multivariate/topology.ml:10685:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-10686-
##############################################
hol-light-20190729/Multivariate/topology.ml-10701-  REWRITE_TAC[TOPSPACE_EUCLIDEAN_SUBTOPOLOGY; SUBSET_RESTRICT] THEN
hol-light-20190729/Multivariate/topology.ml:10702:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-10703-
##############################################
hol-light-20190729/Multivariate/topology.ml-10719-    FIRST_ASSUM(ASSUME_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/topology.ml:10720:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-10721-    X_GEN_TAC `v:real^M->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-10725-    REWRITE_TAC[OPEN_IN_CLOSED_IN_EQ; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/topology.ml:10726:    DISCH_THEN(fun th -> CONJ_TAC THENL [ASM SET_TAC[]; MP_TAC th]) THEN
hol-light-20190729/Multivariate/topology.ml:10727:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-10728-
##############################################
hol-light-20190729/Multivariate/topology.ml-10744-    FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/topology.ml:10745:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-10746-    X_GEN_TAC `v:real^M->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-10750-    REWRITE_TAC[closed_in; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN
hol-light-20190729/Multivariate/topology.ml:10751:    DISCH_THEN(fun th -> CONJ_TAC THENL [ASM SET_TAC[]; MP_TAC th]) THEN
hol-light-20190729/Multivariate/topology.ml:10752:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-10753-
##############################################
hol-light-20190729/Multivariate/topology.ml-10815-    ASM_SIMP_TAC[SIMPLE_IMAGE; FORALL_IN_IMAGE; FINITE_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml:10816:    ASM_REWRITE_TAC[IMAGE_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-10817-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-10824-    ASM_REWRITE_TAC[IN_INTER; CENTRE_IN_BALL; REAL_HALF] THEN
hol-light-20190729/Multivariate/topology.ml:10825:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-10826-    DISCH_THEN(X_CHOOSE_THEN `d2:real`
##############################################
hol-light-20190729/Multivariate/topology.ml-10877-  EXISTS_TAC `{x:real^N}` THEN REWRITE_TAC[CONNECTED_SING] THEN
hol-light-20190729/Multivariate/topology.ml:10878:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-10879-
##############################################
hol-light-20190729/Multivariate/topology.ml-10897-  ASM_REWRITE_TAC[IN_UNION; UNION_SUBSET] THEN
hol-light-20190729/Multivariate/topology.ml:10898:  MATCH_MP_TAC CONNECTED_UNION THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-10899-
##############################################
hol-light-20190729/Multivariate/topology.ml-10929-  DISCH_THEN(SUBST1_TAC o SYM) THEN MATCH_MP_TAC CONNECTED_UNIONS THEN
hol-light-20190729/Multivariate/topology.ml:10930:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-10931-
##############################################
hol-light-20190729/Multivariate/topology.ml-11085-    REWRITE_TAC[IN] THEN ASM_REWRITE_TAC[CONNECTED_COMPONENT_REFL_EQ] THEN
hol-light-20190729/Multivariate/topology.ml:11086:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-11087-    MATCH_MP_TAC CONNECTED_COMPONENT_MAXIMAL THEN ASM_REWRITE_TAC[]]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-11236-    REPEAT STRIP_TAC THEN MATCH_MP_TAC CONNECTED_COMPONENT_MAXIMAL THEN
hol-light-20190729/Multivariate/topology.ml:11237:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-11238-    ASM_MESON_TAC[CONNECTED_COMPONENT_EQ_EMPTY; SUBSET]]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-11251-  SUBGOAL_THEN `(z:real^N) IN UNIONS f` ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:11252:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-11253-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-11259-  EXISTS_TAC `u UNION c:real^N->bool` THEN
hol-light-20190729/Multivariate/topology.ml:11260:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml:11261:  MATCH_MP_TAC CONNECTED_UNION_STRONG THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-11262-
##############################################
hol-light-20190729/Multivariate/topology.ml-11271-  MAP_EVERY EXISTS_TAC [`s:real^N->bool`; `t:real^N->bool`] THEN
hol-light-20190729/Multivariate/topology.ml:11272:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-11273-
##############################################
hol-light-20190729/Multivariate/topology.ml-11315-    ASM_REWRITE_TAC[CLOSURE_NONEMPTY_OPEN_INTER] THEN
hol-light-20190729/Multivariate/topology.ml:11316:    DISCH_THEN(MP_TAC o SPEC `u:real^N->bool`) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-11317-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-11454-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `x:real^N` THEN
hol-light-20190729/Multivariate/topology.ml:11455:    DISCH_TAC THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-11456-    MATCH_MP_TAC(GSYM CONNECTED_COMPONENT_UNIQUE) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-11459-    FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:11460:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml:11461:    MATCH_MP_TAC CONNECTED_UNION THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-11462-
##############################################
hol-light-20190729/Multivariate/topology.ml-11637-    REPEAT STRIP_TAC THEN ASM_REWRITE_TAC[GSYM SUBSET_ANTISYM_EQ] THEN
hol-light-20190729/Multivariate/topology.ml:11638:    FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-11639-
##############################################
hol-light-20190729/Multivariate/topology.ml-11659-    ASM_REWRITE_TAC[] THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:11660:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-11661-    X_GEN_TAC `c':real^N->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-11663-    FIRST_X_ASSUM MATCH_MP_TAC THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:11664:     [MATCH_MP_TAC CONNECTED_UNION; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml:11665:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-11666-    DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `c:real^N->bool`) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-11669-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `x:real^N` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:11670:    CONJ_TAC THENL [ASM SET_TAC[]; CONV_TAC SYM_CONV] THEN
hol-light-20190729/Multivariate/topology.ml-11671-    FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-11673-    MATCH_MP_TAC CONNECTED_COMPONENT_MAXIMAL THEN
hol-light-20190729/Multivariate/topology.ml:11674:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-11675-
##############################################
hol-light-20190729/Multivariate/topology.ml-11706-    SUBGOAL_THEN `c UNION c2:real^N->bool = s` SUBST1_TAC THEN
hol-light-20190729/Multivariate/topology.ml:11707:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-11708-    MP_TAC(ISPECL [`c1:real^N->bool`; `c:real^N->bool`]
##############################################
hol-light-20190729/Multivariate/topology.ml-11710-    SUBGOAL_THEN `c1 UNION c:real^N->bool = s` SUBST1_TAC THEN
hol-light-20190729/Multivariate/topology.ml:11711:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-11712-
##############################################
hol-light-20190729/Multivariate/topology.ml-11723-    REWRITE_TAC[IN_COMPONENTS] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:11724:     [ASM SET_TAC[]; ASM_MESON_TAC[CONNECTED_COMPONENT_MAXIMAL]]]);;
hol-light-20190729/Multivariate/topology.ml-11725-
##############################################
hol-light-20190729/Multivariate/topology.ml-11753-  STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:11754:  CONJ_TAC THENL [ASM SET_TAC[]; REPEAT STRIP_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-11755-  FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:11756:  FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-11757-
##############################################
hol-light-20190729/Multivariate/topology.ml-11776-  MATCH_MP_TAC(TAUT `p ==> ~(p /\ ~q) ==> q`) THEN
hol-light-20190729/Multivariate/topology.ml:11777:  REPLICATE_TAC 2 (CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/topology.ml-11778-  CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-11783-   [EXISTS_TAC `t:real^N->bool`; EXISTS_TAC `(:real^N) DIFF t`] THEN
hol-light-20190729/Multivariate/topology.ml:11784:  ASM_REWRITE_TAC[GSYM OPEN_CLOSED] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-11785-
##############################################
hol-light-20190729/Multivariate/topology.ml-11826-    EXISTS_TAC `u:real^N->bool` THEN
hol-light-20190729/Multivariate/topology.ml:11827:    MP_TAC(ISPEC `u:real^N->bool` UNIONS_COMPONENTS) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-11828-
##############################################
hol-light-20190729/Multivariate/topology.ml-11857-   `(s1:real^N->bool) SUBSET c1 /\ (s2:real^N->bool) SUBSET c2`
hol-light-20190729/Multivariate/topology.ml:11858:  MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-11859-  CONJ_TAC THEN MATCH_MP_TAC COMPONENTS_MAXIMAL THEN
hol-light-20190729/Multivariate/topology.ml:11860:  EXISTS_TAC `UNIONS f:real^N->bool` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-11861-
##############################################
hol-light-20190729/Multivariate/topology.ml-11919-     MP_TAC(MATCH_MP IN_COMPONENTS_SUBSET th))) THEN
hol-light-20190729/Multivariate/topology.ml:11920:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-11921-
##############################################
hol-light-20190729/Multivariate/topology.ml-11952-   [MATCH_MP_TAC CONNECTED_UNION THEN REWRITE_TAC[CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/topology.ml:11953:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-11954-    CONJ_TAC THEN MATCH_MP_TAC CONNECTED_INTERMEDIATE_CLOSURE THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-11957-    REWRITE_TAC[INSERT_SUBSET; CLOSURE_SUBSET] THEN
hol-light-20190729/Multivariate/topology.ml:11958:    RULE_ASSUM_TAC(REWRITE_RULE[frontier]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-11959-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP IN_COMPONENTS_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:11960:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-11961-
##############################################
hol-light-20190729/Multivariate/topology.ml-11974-  REWRITE_TAC[CONNECTED_COMPONENT_SYM; CONNECTED_COMPONENT_TRANS] THEN
hol-light-20190729/Multivariate/topology.ml:11975:  REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-11976-  MAP_EVERY X_GEN_TAC [`a:real^N`; `b:real^N`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-11985-     `connected_component ((:real^N) DIFF s) b`) THEN
hol-light-20190729/Multivariate/topology.ml:11986:    REWRITE_TAC[frontier] THEN ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-11987-    REWRITE_TAC[components; IN_ELIM_THM; IN_UNIV; IN_DIFF] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-11990-    MP_TAC(ISPECL [`(:real^N) DIFF s`; `b:real^N`]
hol-light-20190729/Multivariate/topology.ml:11991:      CONNECTED_COMPONENT_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-11992-    DISJ2_TAC THEN REWRITE_TAC[IN] THEN
hol-light-20190729/Multivariate/topology.ml:11993:    REWRITE_TAC[CONNECTED_COMPONENT_REFL_EQ] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-11994-
##############################################
hol-light-20190729/Multivariate/topology.ml-12598-    REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; IN_INTER; EXISTS_IN_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml:12599:    EXISTS_TAC `x2:real^M` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-12600-    REWRITE_TAC[SUBSET; IN_UNION; FORALL_AND_THM; FORALL_IN_IMAGE;
hol-light-20190729/Multivariate/topology.ml-12601-                TAUT `a \/ b ==> c <=> (a ==> c) /\ (b ==> c)`] THEN
hol-light-20190729/Multivariate/topology.ml:12602:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:12603:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:12604:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-12605-
##############################################
hol-light-20190729/Multivariate/topology.ml-12625-              FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/Multivariate/topology.ml:12626:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-12627-
##############################################
hol-light-20190729/Multivariate/topology.ml-12707-  ASM_SIMP_TAC[CLOSED_PCROSS; EXTENSION; FORALL_PASTECART] THEN
hol-light-20190729/Multivariate/topology.ml:12708:  REWRITE_TAC[IN_INTER; PASTECART_IN_PCROSS] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-12709-
##############################################
hol-light-20190729/Multivariate/topology.ml-12732-              PASTECART_IN_PCROSS] THEN
hol-light-20190729/Multivariate/topology.ml:12733:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-12734-
##############################################
hol-light-20190729/Multivariate/topology.ml-12957-  REWRITE_TAC[FORALL_IN_GSPEC] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:12958:   [CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-12959-    FIRST_X_ASSUM(X_CHOOSE_TAC `B:real` o GEN_REWRITE_RULE I [BOUNDED_POS]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-12973-  ASM_REWRITE_TAC[diameter] THEN
hol-light-20190729/Multivariate/topology.ml:12974:  COND_CASES_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-12975-  MATCH_MP_TAC REAL_SUP_LE_SUBSET THEN
hol-light-20190729/Multivariate/topology.ml:12976:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-12977-  REWRITE_TAC[FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-13055-  STRIP_TAC THEN MATCH_MP_TAC REAL_SUP_LE THEN
hol-light-20190729/Multivariate/topology.ml:13056:  CONJ_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[FORALL_IN_GSPEC]]);;
hol-light-20190729/Multivariate/topology.ml-13057-
##############################################
hol-light-20190729/Multivariate/topology.ml-13136-    REPEAT STRIP_TAC THEN MATCH_MP_TAC DIAMETER_BOUNDED_BOUND THEN
hol-light-20190729/Multivariate/topology.ml:13137:    ASM_SIMP_TAC[BOUNDED_SCALING] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-13138-
##############################################
hol-light-20190729/Multivariate/topology.ml-13156-               DIAMETER_EMPTY; REAL_ADD_RID; DIAMETER_POS_LE] THEN
hol-light-20190729/Multivariate/topology.ml:13157:  MATCH_MP_TAC DIAMETER_LE THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-13158-  REWRITE_TAC[RIGHT_FORALL_IMP_THM; IMP_CONJ; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-13174-  MATCH_MP_TAC DIAMETER_BOUNDED_BOUND THEN
hol-light-20190729/Multivariate/topology.ml:13175:  ASM_SIMP_TAC[BOUNDED_SUMS] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-13176-
##############################################
hol-light-20190729/Multivariate/topology.ml-13216-  X_GEN_TAC `t:real^N->bool` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:13217:  ASM_CASES_TAC `t:real^N->bool = {}` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-13218-  MP_TAC(ISPEC `t:real^N->bool` DIAMETER_SUBSET_CBALL_NONEMPTY) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-13222-  FIRST_X_ASSUM(MP_TAC o SPEC `x:real^N`) THEN
hol-light-20190729/Multivariate/topology.ml:13223:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/topology.ml-13224-  X_GEN_TAC `b:real^N->bool` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-13252-  REWRITE_TAC[UNIONS_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml:13253:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/topology.ml-13254-  GEN_TAC THEN MATCH_MP_TAC MONO_AND THEN REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:13255:  MATCH_MP_TAC MONO_FORALL THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-13256-
##############################################
hol-light-20190729/Multivariate/topology.ml-13462-  SUBGOAL_THEN `?a b:real^N. a IN t /\ b IN t /\ ~(a = b)`
hol-light-20190729/Multivariate/topology.ml:13463:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-13464-  MP_TAC(ISPEC `{x + y:real^N | x IN s /\ y IN t}`
##############################################
hol-light-20190729/Multivariate/topology.ml-13565-  REWRITE_TAC[VECTOR_ARITH `vec 0 = x - y <=> x = y`] THEN
hol-light-20190729/Multivariate/topology.ml:13566:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-13567-  MATCH_MP_TAC MONO_EXISTS THEN SIMP_TAC[LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-13641-        SUBSET_TRANS)) THEN
hol-light-20190729/Multivariate/topology.ml:13642:      REWRITE_TAC[SUBSET; UNIONS_GSPEC; IN_ELIM_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-13643-      ONCE_REWRITE_TAC[TAUT `p /\ q /\ r <=> q /\ p /\ r`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-13743-                PASTECART_INJ; VECTOR_SUB_EQ] THEN
hol-light-20190729/Multivariate/topology.ml:13744:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-13745-    MATCH_MP_TAC CONTINUOUS_CLOSED_IN_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-13770-                PASTECART_IN_PCROSS; PASTECART_INJ] THEN
hol-light-20190729/Multivariate/topology.ml:13771:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-13772-    MATCH_MP_TAC CLOSED_MAP_FSTCART THEN EXISTS_TAC `t:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-13795-  REWRITE_TAC[SUBSET; FORALL_IN_GSPEC; PASTECART_IN_PCROSS] THEN
hol-light-20190729/Multivariate/topology.ml:13796:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-13797-
##############################################
hol-light-20190729/Multivariate/topology.ml-13831-  REPEAT STRIP_TAC THEN REWRITE_TAC[GSYM REAL_NOT_LT] THEN DISCH_TAC THENL
hol-light-20190729/Multivariate/topology.ml:13832:   [FIRST_X_ASSUM(MP_TAC o SPEC `(a:real^N)$i - (x:real^N)$i`);
hol-light-20190729/Multivariate/topology.ml:13833:    FIRST_X_ASSUM(MP_TAC o SPEC `(x:real^N)$i - (b:real^N)$i`)] THEN
hol-light-20190729/Multivariate/topology.ml-13834-  ASM_REWRITE_TAC[REAL_SUB_LT] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-13837-  REWRITE_TAC[dist; REAL_NOT_LT] THEN
hol-light-20190729/Multivariate/topology.ml:13838:  MATCH_MP_TAC REAL_LE_TRANS THEN EXISTS_TAC `abs((z - x :real^N)$i)` THEN
hol-light-20190729/Multivariate/topology.ml-13839-  ASM_SIMP_TAC[COMPONENT_LE_NORM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-13884-  STRIP_TAC THEN MATCH_MP_TAC REAL_LE_TRANS THEN
hol-light-20190729/Multivariate/topology.ml:13885:  EXISTS_TAC `sum(1..dimindex(:N)) (\i. abs((x:real^N)$i))` THEN
hol-light-20190729/Multivariate/topology.ml-13886-  REWRITE_TAC[NORM_LE_L1] THEN MATCH_MP_TAC SUM_LE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-13918-  ASM_REWRITE_TAC[] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:13919:  SUBST1_TAC(REAL_ARITH `(a:real^N)$i = e * a$i + (&1 - e) * a$i`) THEN
hol-light-20190729/Multivariate/topology.ml:13920:  SUBST1_TAC(REAL_ARITH `(b:real^N)$i = e * b$i + (&1 - e) * b$i`) THEN
hol-light-20190729/Multivariate/topology.ml-13921-  CONJ_TAC THEN MATCH_MP_TAC REAL_LTE_ADD2 THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-14153-    MATCH_MP_TAC REAL_LE_TRANS THEN
hol-light-20190729/Multivariate/topology.ml:14154:    EXISTS_TAC `sum(1..dimindex(:N)) (\i. abs((x - y:real^N)$i))` THEN
hol-light-20190729/Multivariate/topology.ml-14155-    REWRITE_TAC[NORM_LE_L1] THEN MATCH_MP_TAC SUM_BOUND_GEN THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-14200-   [X_GEN_TAC `y:real^N` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/topology.ml:14201:    EXISTS_TAC `(lambda i. (y:real^N)$(inverse p i)):real^M` THEN
hol-light-20190729/Multivariate/topology.ml-14202-    IMP_REWRITE_TAC[LAMBDA_BETA] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-14275-  SIMP_TAC[pushin; dropout; LAMBDA_BETA] THEN EQ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:14276:   [DISCH_TAC THEN EXISTS_TAC `(a:real^N)$k` THEN X_GEN_TAC `i:num` THEN
hol-light-20190729/Multivariate/topology.ml-14277-    STRIP_TAC THEN COND_CASES_TAC THEN ASM_REWRITE_TAC[] THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-14662-  MAP_EVERY EXISTS_TAC
hol-light-20190729/Multivariate/topology.ml:14663:   [`{x:real^N | x$1 < (a:real^N)$1}`;
hol-light-20190729/Multivariate/topology.ml:14664:    `{x:real^N | x$1 > (a:real^N)$1}`] THEN
hol-light-20190729/Multivariate/topology.ml-14665-  REWRITE_TAC[OPEN_HALFSPACE_COMPONENT_GT; OPEN_HALFSPACE_COMPONENT_LT] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-14733-  SUBGOAL_THEN
hol-light-20190729/Multivariate/topology.ml:14734:    `!n. ?y:real^N. (!i. 1 <= i /\ i <= n ==> y$i = (x:real^N)$i) /\ y IN s`
hol-light-20190729/Multivariate/topology.ml-14735-  MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-14743-      EXISTS_TAC
hol-light-20190729/Multivariate/topology.ml:14744:       `(lambda i. if i <= n then (y:real^N)$i else (z:real^N)$i):real^N` THEN
hol-light-20190729/Multivariate/topology.ml-14745-      CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-14768-   [ASM_MESON_TAC[EMPTY_AS_INTERVAL]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:14769:  EXISTS_TAC `(lambda i. inf { (x:real^N)$i | x IN s}):real^N` THEN
hol-light-20190729/Multivariate/topology.ml:14770:  EXISTS_TAC `(lambda i. sup { (x:real^N)$i | x IN s}):real^N` THEN
hol-light-20190729/Multivariate/topology.ml-14771-  SIMP_TAC[EXTENSION; IN_INTERVAL; LAMBDA_BETA] THEN X_GEN_TAC `x:real^N` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-14773-   [DISCH_TAC THEN X_GEN_TAC `i:num` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:14774:    MP_TAC(ISPEC `{ (x:real^N)$i | x IN s}` INF) THEN
hol-light-20190729/Multivariate/topology.ml:14775:    MP_TAC(ISPEC `{ (x:real^N)$i | x IN s}` SUP) THEN
hol-light-20190729/Multivariate/topology.ml-14776-    ONCE_REWRITE_TAC[SIMPLE_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-14784-    SUBGOAL_THEN
hol-light-20190729/Multivariate/topology.ml:14785:     `?a b:real^N. a IN s /\ b IN s /\ a$i <= (x:real^N)$i /\ x$i <= b$i`
hol-light-20190729/Multivariate/topology.ml-14786-    STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:14787:     [MP_TAC(ISPECL [`\x:real^N. x$i`; `s:real^N->bool`]
hol-light-20190729/Multivariate/topology.ml-14788-        CONTINUOUS_ATTAINS_INF) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-14790-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `a:real^N` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:14791:      MP_TAC(ISPECL [`\x:real^N. x$i`; `s:real^N->bool`]
hol-light-20190729/Multivariate/topology.ml-14792-        CONTINUOUS_ATTAINS_SUP) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-14795-      ASM_REWRITE_TAC[] THEN CONJ_TAC THEN MATCH_MP_TAC REAL_LE_TRANS THENL
hol-light-20190729/Multivariate/topology.ml:14796:       [EXISTS_TAC `inf {(x:real^N)$i | x IN s}` THEN ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:14797:        MATCH_MP_TAC REAL_LE_INF THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:14798:        EXISTS_TAC `sup {(x:real^N)$i | x IN s}` THEN ASM_SIMP_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:14799:        MATCH_MP_TAC REAL_SUP_LE THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-14800-      EXISTS_TAC
hol-light-20190729/Multivariate/topology.ml:14801:       `(lambda j. if j = i then (x:real^N)$i else (a:real^N)$j):real^N` THEN
hol-light-20190729/Multivariate/topology.ml-14802-      ASM_SIMP_TAC[LAMBDA_BETA] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-14805-       [`a:real^N`;
hol-light-20190729/Multivariate/topology.ml:14806:        `(lambda j. if j = i then (b:real^N)$i else (a:real^N)$j):real^N`] THEN
hol-light-20190729/Multivariate/topology.ml-14807-      ASM_SIMP_TAC[LAMBDA_BETA] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-15167-  REWRITE_TAC[is_interval; GSYM UNION_SUBSET] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:15168:  EXISTS_TAC `(lambda i. min ((a:real^N)$i) ((c:real^N)$i)):real^N` THEN
hol-light-20190729/Multivariate/topology.ml:15169:  EXISTS_TAC `(lambda i. max ((b:real^N)$i) ((d:real^N)$i)):real^N` THEN
hol-light-20190729/Multivariate/topology.ml-15170-  SIMP_TAC[UNION_SUBSET; SUBSET_INTERVAL; LAMBDA_BETA] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-15173-  REPEAT STRIP_TAC THEN FIRST_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:15174:  EXISTS_TAC `(lambda i. min ((a:real^N)$i) ((c:real^N)$i)):real^N` THEN
hol-light-20190729/Multivariate/topology.ml:15175:  EXISTS_TAC `(lambda i. max ((b:real^N)$i) ((d:real^N)$i)):real^N` THEN
hol-light-20190729/Multivariate/topology.ml-15176-  ASM_SIMP_TAC[LAMBDA_BETA] THEN CONJ_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-15301-  ASM_SIMP_TAC[CONTINUOUS_CLOSED_PREIMAGE; CLOSED_CLOSURE] THEN
hol-light-20190729/Multivariate/topology.ml:15302:  MP_TAC (ISPEC `s:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-15303-
##############################################
hol-light-20190729/Multivariate/topology.ml-15333-    MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:15334:  [MATCH_MP_TAC IMAGE_CLOSURE_SUBSET; ASM SET_TAC []] THEN
hol-light-20190729/Multivariate/topology.ml:15335:  ASM_REWRITE_TAC [CLOSED_CBALL] THEN ASM SET_TAC []);;
hol-light-20190729/Multivariate/topology.ml-15336-
##############################################
hol-light-20190729/Multivariate/topology.ml-15343-  REWRITE_TAC [GSYM IN_CBALL_0] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:15344:  SUBGOAL_THEN `IMAGE (f:real^N->real^M) (closure s) SUBSET {x | x$k <= b}`
hol-light-20190729/Multivariate/topology.ml-15345-  MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:15346:   [MATCH_MP_TAC IMAGE_CLOSURE_SUBSET; ASM SET_TAC []] THEN
hol-light-20190729/Multivariate/topology.ml:15347:  ASM_REWRITE_TAC[CLOSED_HALFSPACE_COMPONENT_LE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-15348-
##############################################
hol-light-20190729/Multivariate/topology.ml-15355-  REWRITE_TAC [GSYM IN_CBALL_0] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:15356:  SUBGOAL_THEN `IMAGE (f:real^N->real^M) (closure s) SUBSET {x | x$k >= b}`
hol-light-20190729/Multivariate/topology.ml-15357-  MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:15358:   [MATCH_MP_TAC IMAGE_CLOSURE_SUBSET; ASM SET_TAC [real_ge]] THEN
hol-light-20190729/Multivariate/topology.ml:15359:  ASM_REWRITE_TAC[CLOSED_HALFSPACE_COMPONENT_GE] THEN ASM SET_TAC[real_ge]);;
hol-light-20190729/Multivariate/topology.ml-15360-
##############################################
hol-light-20190729/Multivariate/topology.ml-15388-    REWRITE_TAC[GSYM SUBSET] THEN MATCH_MP_TAC CLOSURE_MINIMAL THEN
hol-light-20190729/Multivariate/topology.ml:15389:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-15390-
##############################################
hol-light-20190729/Multivariate/topology.ml-15418-    W(MP_TAC o PART_MATCH (lhand o rand) SEQUENCE_ESCAPES o rand o snd) THEN
hol-light-20190729/Multivariate/topology.ml:15419:    ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-15420-    REWRITE_TAC[] THEN RULE_ASSUM_TAC(REWRITE_RULE[o_DEF]) THEN
hol-light-20190729/Multivariate/topology.ml-15421-    MAP_EVERY EXISTS_TAC [`b:real^N`; `r:num->num`] THEN
hol-light-20190729/Multivariate/topology.ml:15422:    ASM_REWRITE_TAC[o_DEF] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-15423-
##############################################
hol-light-20190729/Multivariate/topology.ml-15644-  SIMP_TAC[SUBSET; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml:15645:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-15646-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/topology.ml-15647-  SUBGOAL_THEN `s:real^M->bool = t UNION (s DIFF t)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:15648:   [ASM SET_TAC[]; MATCH_MP_TAC CONTINUOUS_ON_CASES_LOCAL] THEN
hol-light-20190729/Multivariate/topology.ml-15649-  ASM_SIMP_TAC[SET_RULE `t SUBSET s ==> t UNION (s DIFF t) = s`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-15664-    `s INTER t = {x:real^M | x IN s /\ (if x IN t then a else b:real^N) IN {a}}`
hol-light-20190729/Multivariate/topology.ml:15665:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-15666-    CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-15669-    EXISTS_TAC `{a:real^N,b}` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:15670:    (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-15671-    REWRITE_TAC[CLOSED_IN_SING; OPEN_IN_SING; IN_INSERT] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-15677-    ASM_REWRITE_TAC[CONTINUOUS_ON_CONST] THEN
hol-light-20190729/Multivariate/topology.ml:15678:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-15679-    ONCE_REWRITE_TAC[SET_RULE `s DIFF t = s DIFF s INTER t`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-16160-  REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:16161:  TRY(MATCH_MP_TAC CONTINUOUS_ON_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16162-
##############################################
hol-light-20190729/Multivariate/topology.ml-16172-  FIRST_ASSUM(MP_TAC o el 1 o CONJUNCTS o REWRITE_RULE[homeomorphism]) THEN
hol-light-20190729/Multivariate/topology.ml:16173:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16174-
##############################################
hol-light-20190729/Multivariate/topology.ml-16217-   [ASM_MESON_TAC[CONTINUOUS_ON_EQ];
hol-light-20190729/Multivariate/topology.ml:16218:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-16219-    ASM_MESON_TAC[CONTINUOUS_ON_EQ];
hol-light-20190729/Multivariate/topology.ml:16220:    ASM SET_TAC[]; ASM SET_TAC[]; ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-16221-
##############################################
hol-light-20190729/Multivariate/topology.ml-16228-  REWRITE_TAC[o_THM; I_THM] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:16229:  ASM_SIMP_TAC[homeomorphism; LINEAR_CONTINUOUS_ON] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16230-
##############################################
hol-light-20190729/Multivariate/topology.ml-16249-        HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:16250:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16251-
##############################################
hol-light-20190729/Multivariate/topology.ml-16272-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:16273:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16274-
##############################################
hol-light-20190729/Multivariate/topology.ml-16301-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:16302:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16303-
##############################################
hol-light-20190729/Multivariate/topology.ml-16395-   [CONJ_TAC THEN MATCH_MP_TAC CONTINUOUS_ON_SUBSET THEN
hol-light-20190729/Multivariate/topology.ml:16396:    EXISTS_TAC `u:real^N->bool` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:16397:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-16398-
##############################################
hol-light-20190729/Multivariate/topology.ml-16406-  ASM_REWRITE_TAC[UNION_SUBSET; SUBSET_REFL] THEN MATCH_MP_TAC EQ_IMP THEN
hol-light-20190729/Multivariate/topology.ml:16407:  AP_THM_TAC THEN AP_TERM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16408-
##############################################
hol-light-20190729/Multivariate/topology.ml-16501-  REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_INTER; IN_CBALL_0] THEN
hol-light-20190729/Multivariate/topology.ml:16502:  SIMP_TAC[LINEAR_CONTINUOUS_ON] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16503-
##############################################
hol-light-20190729/Multivariate/topology.ml-16514-    REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
hol-light-20190729/Multivariate/topology.ml:16515:    ASM_SIMP_TAC[CONTINUOUS_ON_FINITE] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-16516-
##############################################
hol-light-20190729/Multivariate/topology.ml-16544-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:16545:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16546-
##############################################
hol-light-20190729/Multivariate/topology.ml-16598-   [`k:real^N->real^P`; `h:real^P->real^N`] THEN
hol-light-20190729/Multivariate/topology.ml:16599:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16600-
##############################################
hol-light-20190729/Multivariate/topology.ml-16632-    ==> (p /\ q /\ r /\ s /\ t /\ u) /\ v`) THEN
hol-light-20190729/Multivariate/topology.ml:16633:  CONJ_TAC THENL [REPEAT CONJ_TAC THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-16634-  CONJ_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-16637-      MATCH_MP_TAC CONTINUOUS_ON_CASES_LOCAL] THEN
hol-light-20190729/Multivariate/topology.ml:16638:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]));;
hol-light-20190729/Multivariate/topology.ml-16639-
##############################################
hol-light-20190729/Multivariate/topology.ml-16697-        CONTINUOUS_ON_OPEN_GEN) THEN
hol-light-20190729/Multivariate/topology.ml:16698:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-16699-  X_GEN_TAC `u:real^M->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-16702-  FIRST_ASSUM(MP_TAC o CONJUNCT1 o GEN_REWRITE_RULE I [open_in]) THEN
hol-light-20190729/Multivariate/topology.ml:16703:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16704-
##############################################
hol-light-20190729/Multivariate/topology.ml-16713-        CONTINUOUS_ON_CLOSED_GEN) THEN
hol-light-20190729/Multivariate/topology.ml:16714:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-16715-  X_GEN_TAC `u:real^M->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-16718-  FIRST_ASSUM(MP_TAC o CONJUNCT1 o GEN_REWRITE_RULE I [closed_in]) THEN
hol-light-20190729/Multivariate/topology.ml:16719:  REWRITE_TAC[TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16720-
##############################################
hol-light-20190729/Multivariate/topology.ml-16742-  DISCH_TAC THEN ASM_SIMP_TAC[homeomorphism] THEN
hol-light-20190729/Multivariate/topology.ml:16743:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-16744-  MATCH_MP_TAC CONTINUOUS_ON_INVERSE_OPEN_MAP THEN ASM_MESON_TAC[]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-16756-  DISCH_TAC THEN ASM_SIMP_TAC[homeomorphism] THEN
hol-light-20190729/Multivariate/topology.ml:16757:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-16758-  MATCH_MP_TAC CONTINUOUS_ON_INVERSE_CLOSED_MAP THEN ASM_MESON_TAC[]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-16768-   [FIRST_ASSUM(MP_TAC o CONJUNCT1 o GEN_REWRITE_RULE I [open_in]) THEN
hol-light-20190729/Multivariate/topology.ml:16769:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-16770-    MATCH_MP_TAC CONTINUOUS_ON_IMP_OPEN_IN THEN ASM_REWRITE_TAC[]]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-16780-   [FIRST_ASSUM(MP_TAC o CONJUNCT1 o GEN_REWRITE_RULE I [closed_in]) THEN
hol-light-20190729/Multivariate/topology.ml:16781:    REWRITE_TAC[TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-16782-    MATCH_MP_TAC CONTINUOUS_ON_IMP_CLOSED_IN THEN ASM_REWRITE_TAC[]]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-16833-   [SUBGOAL_THEN `v = IMAGE (g:real^N->real^M) (IMAGE f v)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:16834:     [RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-16835-      MATCH_MP_TAC HOMEOMORPHISM_IMP_OPEN_MAP THEN MAP_EVERY EXISTS_TAC
##############################################
hol-light-20190729/Multivariate/topology.ml-16841-    HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:16842:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16843-
##############################################
hol-light-20190729/Multivariate/topology.ml-16851-   [`g:real^N->real^M`; `s:real^M->bool`; `t:real^N->bool`] THEN
hol-light-20190729/Multivariate/topology.ml:16852:  ASM_REWRITE_TAC[homeomorphism] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16853-
##############################################
hol-light-20190729/Multivariate/topology.ml-16860-   [SUBGOAL_THEN `v = IMAGE (g:real^N->real^M) (IMAGE f v)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:16861:     [RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-16862-      MATCH_MP_TAC HOMEOMORPHISM_IMP_CLOSED_MAP THEN MAP_EVERY EXISTS_TAC
##############################################
hol-light-20190729/Multivariate/topology.ml-16868-    HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:16869:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16870-
##############################################
hol-light-20190729/Multivariate/topology.ml-16878-   [`g:real^N->real^M`; `s:real^M->bool`; `t:real^N->bool`] THEN
hol-light-20190729/Multivariate/topology.ml:16879:  ASM_REWRITE_TAC[homeomorphism] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16880-
##############################################
hol-light-20190729/Multivariate/topology.ml-16899-  BINOP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:16900:   [RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-16901-    MATCH_MP_TAC HOMEOMORPHISM_DERIVED_SET_OF THEN ASM_MESON_TAC[]]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-16933-  DISCH_THEN SUBST1_TAC THEN AP_TERM_TAC THEN AP_TERM_TAC THEN
hol-light-20190729/Multivariate/topology.ml:16934:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-16935-
##############################################
hol-light-20190729/Multivariate/topology.ml-16956-      FIRST_X_ASSUM(STRIP_ASSUME_TAC o GEN_REWRITE_RULE I [homeomorphism]) THEN
hol-light-20190729/Multivariate/topology.ml:16957:      REPEAT CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-16958-      MATCH_MP_TAC CONNECTED_CONTINUOUS_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-16960-      FIRST_X_ASSUM(STRIP_ASSUME_TAC o GEN_REWRITE_RULE I [homeomorphism]) THEN
hol-light-20190729/Multivariate/topology.ml:16961:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/topology.ml-16962-
##############################################
hol-light-20190729/Multivariate/topology.ml-16989-  FIRST_X_ASSUM(MP_TAC o SPEC `x:real^M`) THEN
hol-light-20190729/Multivariate/topology.ml:16990:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/topology.ml-16991-  MAP_EVERY X_GEN_TAC
##############################################
hol-light-20190729/Multivariate/topology.ml-16994-  EXISTS_TAC `IMAGE (f:real^M->real^N) (u INTER v)` THEN
hol-light-20190729/Multivariate/topology.ml:16995:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-16996-  TRANS_TAC OPEN_IN_TRANS `w:real^N->bool` THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17077-  STRIP_TAC THEN REWRITE_TAC[HOMEOMORPHISM] THEN
hol-light-20190729/Multivariate/topology.ml:17078:  ASM_SIMP_TAC[LINEAR_CONTINUOUS_ON] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-17079-
##############################################
hol-light-20190729/Multivariate/topology.ml-17095-  STRIP_TAC THEN REWRITE_TAC[HOMEOMORPHISM] THEN
hol-light-20190729/Multivariate/topology.ml:17096:  ASM_SIMP_TAC[LINEAR_CONTINUOUS_ON] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-17097-
##############################################
hol-light-20190729/Multivariate/topology.ml-17113-  STRIP_TAC THEN REWRITE_TAC[HOMEOMORPHISM] THEN
hol-light-20190729/Multivariate/topology.ml:17114:  ASM_SIMP_TAC[LINEAR_CONTINUOUS_ON] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-17115-
##############################################
hol-light-20190729/Multivariate/topology.ml-17131-  STRIP_TAC THEN REWRITE_TAC[HOMEOMORPHISM] THEN
hol-light-20190729/Multivariate/topology.ml:17132:  ASM_SIMP_TAC[LINEAR_CONTINUOUS_ON] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-17133-
##############################################
hol-light-20190729/Multivariate/topology.ml-17215-   [MATCH_MP_TAC HOMEOMORPHISM_INJECTIVE_OPEN_MAP THEN
hol-light-20190729/Multivariate/topology.ml:17216:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-17217-    MATCH_MP_TAC OPEN_MAP_FROM_COMPOSITION_SURJECTIVE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17226-    ASM_SIMP_TAC[o_THM; IMAGE_o] THEN
hol-light-20190729/Multivariate/topology.ml:17227:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-17228-    MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17242-   [MATCH_MP_TAC HOMEOMORPHISM_INJECTIVE_OPEN_MAP THEN
hol-light-20190729/Multivariate/topology.ml:17243:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-17244-    MATCH_MP_TAC OPEN_MAP_FROM_COMPOSITION_INJECTIVE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17253-    ASM_SIMP_TAC[o_THM; IMAGE_o] THEN
hol-light-20190729/Multivariate/topology.ml:17254:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-17255-    MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17280-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:17281:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-17282-
##############################################
hol-light-20190729/Multivariate/topology.ml-17291-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:17292:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-17293-
##############################################
hol-light-20190729/Multivariate/topology.ml-17371-   [REWRITE_TAC[HOMEOMORPHISM] THEN REPEAT GEN_TAC THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:17372:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN X_GEN_TAC `y:real^N` THEN
hol-light-20190729/Multivariate/topology.ml-17373-    DISCH_TAC THEN
hol-light-20190729/Multivariate/topology.ml-17374-    SUBGOAL_THEN `(f':real^M->real^N) (g(y:real^N)) = y` MP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:17375:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-17376-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17378-  SIMP_TAC[IN_DELETE] THEN MATCH_MP_TAC HOMEOMORPHISM_COMPACT THEN
hol-light-20190729/Multivariate/topology.ml:17379:  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-17380-  REWRITE_TAC[CONTINUOUS_ON_EQ_CONTINUOUS_WITHIN] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17394-        IMAGE (g:real^N->real^M) (t DIFF ball (b,e))`
hol-light-20190729/Multivariate/topology.ml:17395:      SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-17396-      MATCH_MP_TAC COMPACT_CONTINUOUS_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17398-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/topology.ml:17399:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-17400-      REWRITE_TAC[closed_in; open_in; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17406-      ASM_REWRITE_TAC[DIST_REFL] THEN ONCE_REWRITE_TAC[DIST_SYM] THEN
hol-light-20190729/Multivariate/topology.ml:17407:      RULE_ASSUM_TAC(REWRITE_RULE[IN_BALL]) THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-17408-    UNDISCH_TAC `(f:real^M->real^N) continuous_on (s DELETE a)` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17447-    SIMP_TAC[IMAGE_SUBSET; CLOSURE_SUBSET; SUBSET_CLOSURE] THEN
hol-light-20190729/Multivariate/topology.ml:17448:    RULE_ASSUM_TAC(REWRITE_RULE[HOMEOMORPHISM]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-17449-    FIRST_ASSUM(MP_TAC o SPEC `c:real^M->bool` o
##############################################
hol-light-20190729/Multivariate/topology.ml-17541-      REWRITE_TAC[NORM_REAL; GSYM drop] THEN ASM_REAL_ARITH_TAC];
hol-light-20190729/Multivariate/topology.ml:17542:    SUBGOAL_THEN `(:real^1) = {x | x$1 >= &0} UNION {x | x$1 <= &0}`
hol-light-20190729/Multivariate/topology.ml-17543-    SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-17592-  MATCH_MP_TAC CONTINUOUS_ON_SUBSET THENL
hol-light-20190729/Multivariate/topology.ml:17593:   [EXISTS_TAC `interval(lift((a:real^N)$i),lift((b:real^N)$i))`;
hol-light-20190729/Multivariate/topology.ml:17594:    EXISTS_TAC `interval(lift((c:real^N)$i),lift((d:real^N)$i))`] THEN
hol-light-20190729/Multivariate/topology.ml-17595-  REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_INTERVAL_1] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17628-  MATCH_MP_TAC CONTINUOUS_ON_SUBSET THENL
hol-light-20190729/Multivariate/topology.ml:17629:   [EXISTS_TAC `interval(lift((a:real^N)$i),lift((b:real^N)$i))`;
hol-light-20190729/Multivariate/topology.ml-17630-    EXISTS_TAC `(:real^1)`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17840-  REPEAT STRIP_TAC THEN EQ_TAC THEN REPEAT STRIP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:17841:   [ALL_TAC; MATCH_MP_TAC CARD_EQ_CONNECTED THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-17842-  FIRST_ASSUM(MP_TAC o MATCH_MP(REWRITE_RULE[IMP_CONJ_ALT] FINITE_SUBSET)) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17911-    FIRST_X_ASSUM(MP_TAC o SPEC `(f:real^M->real^N) x`) THEN
hol-light-20190729/Multivariate/topology.ml:17912:    ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Multivariate/topology.ml-17913-    MATCH_MP_TAC CONNECTED_COMPONENT_MAXIMAL THEN
hol-light-20190729/Multivariate/topology.ml:17914:    ASM_SIMP_TAC[CONNECTED_CONTINUOUS_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-17915-    REPEAT STRIP_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17958-    ASM_CASES_TAC `IMAGE (f:real^M->real^N) s DELETE (f x) = {}` THENL
hol-light-20190729/Multivariate/topology.ml:17959:     [EXISTS_TAC `&1` THEN REWRITE_TAC[REAL_LT_01] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-17960-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17976-     [EXPAND_TAC "s" THEN MATCH_MP_TAC CONTINUOUS_ON_CASES_LOCAL THEN
hol-light-20190729/Multivariate/topology.ml:17977:      ASM_REWRITE_TAC[CONTINUOUS_ON_CONST] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-17978-      MATCH_MP_TAC FINITE_SUBSET THEN EXISTS_TAC `{vec 0:real^N,basis 1}` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-17981-      STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:17982:       [ASM SET_TAC[]; DISCH_THEN(CHOOSE_THEN MP_TAC)] THEN
hol-light-20190729/Multivariate/topology.ml-17983-      DISCH_THEN(fun th -> MP_TAC(SPEC `a:real^M` th) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-18070-      DISCH_THEN(X_CHOOSE_THEN `k:num` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/topology.ml:18071:      EXISTS_TAC `b / (a:real^N)$k % basis k:real^N` THEN
hol-light-20190729/Multivariate/topology.ml-18072-      ASM_SIMP_TAC[DOT_RMUL; DOT_BASIS; REAL_DIV_RMUL];
hol-light-20190729/Multivariate/topology.ml-18073-      FIRST_X_ASSUM(SUBST1_TAC o SYM) THEN
hol-light-20190729/Multivariate/topology.ml:18074:      ABBREV_TAC `p = {x:real^N | x$1 = &0}` THEN
hol-light-20190729/Multivariate/topology.ml-18075-      GEOM_ORIGIN_TAC `c:real^N` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-18083-  REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:18084:  TRANS_TAC HOMEOMORPHIC_TRANS `{x:real^N | x$1 = &0}` THEN
hol-light-20190729/Multivariate/topology.ml-18085-  ASM_SIMP_TAC[lemma] THEN ONCE_REWRITE_TAC[HOMEOMORPHIC_SYM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-18092-  REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:18093:  SUBGOAL_THEN `{x:real^N | x$k = c} = {x | basis k dot x = c}` SUBST1_TAC
hol-light-20190729/Multivariate/topology.ml-18094-  THENL [ASM_SIMP_TAC[DOT_BASIS]; MATCH_MP_TAC HOMEOMORPHIC_HYPERPLANES] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-18111-  REWRITE_TAC[homeomorphic; HOMEOMORPHISM] THEN
hol-light-20190729/Multivariate/topology.ml:18112:  EXISTS_TAC `(\x. lambda i. x$i):real^N->real^M` THEN
hol-light-20190729/Multivariate/topology.ml-18113-  EXISTS_TAC `(\x. lambda i. if i <= dimindex(:M) then x$i else &0)
##############################################
hol-light-20190729/Multivariate/topology.ml-18264-  ABBREV_TAC `u = y - (f:real^M->real^N) x` THEN
hol-light-20190729/Multivariate/topology.ml:18265:  EXISTS_TAC `x + vsum(1..dimindex(:N)) (\i. (u:real^N)$i % b i):real^M` THEN
hol-light-20190729/Multivariate/topology.ml-18266-  ASM_SIMP_TAC[LINEAR_ADD; LINEAR_VSUM; FINITE_NUMSEG; o_DEF;
##############################################
hol-light-20190729/Multivariate/topology.ml-18288-  SUBGOAL_THEN `s = {x | (f:real^M->real^N) x IN IMAGE f s}`
hol-light-20190729/Multivariate/topology.ml:18289:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-18290-  MATCH_MP_TAC CONTINUOUS_OPEN_PREIMAGE_UNIV THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-18335-  SUBGOAL_THEN `s = {x | (f:real^M->real^N) x IN IMAGE f s}`
hol-light-20190729/Multivariate/topology.ml:18336:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-18337-  MATCH_MP_TAC CONTINUOUS_CLOSED_PREIMAGE_UNIV THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-18714-  X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/topology.ml:18715:  FIRST_X_ASSUM(MP_TAC o SPEC `x - (x$(SUC d)) % basis(SUC d) :real^N`) THEN
hol-light-20190729/Multivariate/topology.ml-18716-  ANTS_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-18830-  MP_TAC(ISPECL
hol-light-20190729/Multivariate/topology.ml:18831:   [`(\x. vsum(1..n) (\i. x$i % b i)):real^N->real^N`;
hol-light-20190729/Multivariate/topology.ml-18832-    `span(IMAGE basis (1..n)):real^N->bool`]
##############################################
hol-light-20190729/Multivariate/topology.ml-18848-    SUBGOAL_THEN
hol-light-20190729/Multivariate/topology.ml:18849:     `vsum(1..n) (\i. (x:real^N)$i % b i:real^N) = vsum k (\v. x$(c v) % v)`
hol-light-20190729/Multivariate/topology.ml-18850-    SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-18852-      MAP_EVERY EXISTS_TAC [`b:num->real^N`; `c:real^N->num`] THEN
hol-light-20190729/Multivariate/topology.ml:18853:      ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-18854-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-18856-    FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [INDEPENDENT_EXPLICIT]) THEN
hol-light-20190729/Multivariate/topology.ml:18857:    DISCH_THEN(MP_TAC o SPEC `\v:real^N. (x:real^N)$(c v)` o CONJUNCT2) THEN
hol-light-20190729/Multivariate/topology.ml-18858-    ASM_REWRITE_TAC[] THEN ANTS_TAC THENL [ASM_MESON_TAC[]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-18998-    DISCH_THEN(X_CHOOSE_THEN `C:real` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/topology.ml:18999:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/topology.ml-19000-    X_GEN_TAC `D:real` THEN STRIP_TAC THEN EXISTS_TAC `B * (C + D):real` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-19078-   [ASM_REWRITE_TAC[VECTOR_MUL_LZERO; VECTOR_ADD_LID; COND_ID] THEN
hol-light-20190729/Multivariate/topology.ml:19079:    REWRITE_TAC[INTERVAL_SING] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-19080-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-19677-        STRIP_TAC THEN MATCH_MP_TAC SPAN_MUL THEN
hol-light-20190729/Multivariate/topology.ml:19678:        MATCH_MP_TAC SPAN_SUPERSET THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-19679-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `n:num` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-19706-        THENL
hol-light-20190729/Multivariate/topology.ml:19707:         [REWRITE_TAC[rows; IN_DELETE; IN_NUMSEG] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-19708-          ASM_SIMP_TAC[DIM_INSERT]] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-19914-    (MAP_EVERY X_GEN_TAC [`m:num`; `n:num`] THEN
hol-light-20190729/Multivariate/topology.ml:19915:     SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !A:real^N^N. A$m = A$k`
hol-light-20190729/Multivariate/topology.ml-19916-     CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:19917:     SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$n = z$l`
hol-light-20190729/Multivariate/topology.ml-19918-     CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-19949-      X_GEN_TAC `j:num` THEN STRIP_TAC THEN MATCH_MP_TAC SPAN_MUL THEN
hol-light-20190729/Multivariate/topology.ml:19950:      MATCH_MP_TAC SPAN_SUPERSET THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/topology.ml-19951-  REPEAT GEN_TAC THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-19966-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `i:num` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:19967:      EXISTS_TAC `inv(c$i) % c:real^N` THEN
hol-light-20190729/Multivariate/topology.ml-19968-      ASM_SIMP_TAC[VECTOR_MUL_COMPONENT; REAL_MUL_LINV] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-19989-    (MAP_EVERY X_GEN_TAC [`m:num`; `n:num`] THEN
hol-light-20190729/Multivariate/topology.ml:19990:     SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !A:real^N^N. A$m = A$k`
hol-light-20190729/Multivariate/topology.ml-19991-     CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:19992:     SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$n = z$l`
hol-light-20190729/Multivariate/topology.ml-19993-     CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-19999-     SUBGOAL_THEN
hol-light-20190729/Multivariate/topology.ml:20000:      `(A:real^N^N)$k$l = (transp(A':real^N^N) ** (&2 % basis i - c:real^N))$l`
hol-light-20190729/Multivariate/topology.ml-20001-     SUBST1_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-20024-      TRANS_TAC REAL_LET_TRANS
hol-light-20190729/Multivariate/topology.ml:20025:       `abs((B - A':real^N^N)$r$l) * (&1 + norm(&2 % basis i - c:real^N))` THEN
hol-light-20190729/Multivariate/topology.ml-20026-      CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-20050-       [MAP_EVERY X_GEN_TAC [`m:num`; `n:num`] THEN
hol-light-20190729/Multivariate/topology.ml:20051:        SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !A:real^N^N. A$m = A$k`
hol-light-20190729/Multivariate/topology.ml-20052-        CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:20053:        SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$n = z$l`
hol-light-20190729/Multivariate/topology.ml-20054-        CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-20227-    ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:20228:     [MATCH_MP_TAC SPAN_SUBSET_SUBSPACE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-20229-      DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-20241-      ASM_REWRITE_TAC[FORALL_IN_INSERT] THEN
hol-light-20190729/Multivariate/topology.ml:20242:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-20243-      ASM_REWRITE_TAC[PAIRWISE_INSERT] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-21150-  FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE RAND_CONV [DET_2]) THEN
hol-light-20190729/Multivariate/topology.ml:21151:  SUBGOAL_THEN `(A:real^2^2)$2$1 = A$1$2` SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml-21152-   [ASM_MESON_TAC[TRANSP_COMPONENT]; REWRITE_TAC[REAL_SUB_LE]] THEN
hol-light-20190729/Multivariate/topology.ml:21153:  ASM_CASES_TAC `(A:real^2^2)$2$2 = &0` THENL
hol-light-20190729/Multivariate/topology.ml-21154-   [DISCH_THEN(MP_TAC o MATCH_MP (REAL_ARITH
##############################################
hol-light-20190729/Multivariate/topology.ml-21161-  REPEAT GEN_TAC THEN MATCH_MP_TAC REAL_LE_LCANCEL_IMP THEN
hol-light-20190729/Multivariate/topology.ml:21162:  EXISTS_TAC `(A:real^2^2)$2$2` THEN
hol-light-20190729/Multivariate/topology.ml-21163-  ASM_REWRITE_TAC[REAL_MUL_RZERO; REAL_LT_LE] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-21176-  SIMP_TAC[CART_EQ; FORALL_2; TRANSP_COMPONENT; DIMINDEX_2] THEN
hol-light-20190729/Multivariate/topology.ml:21177:  ASM_CASES_TAC `(A:real^2^2)$2$1 = A$1$2` THEN
hol-light-20190729/Multivariate/topology.ml-21178-  ASM_REWRITE_TAC[] THEN REAL_ARITH_TAC);;
##############################################
hol-light-20190729/Multivariate/topology.ml-21195-  SIMP_TAC[CART_EQ; FORALL_2; TRANSP_COMPONENT; DIMINDEX_2] THEN
hol-light-20190729/Multivariate/topology.ml:21196:  ASM_CASES_TAC `(A:real^2^2)$2$1 = A$1$2` THEN
hol-light-20190729/Multivariate/topology.ml-21197-  ASM_REWRITE_TAC[] THEN REAL_ARITH_TAC);;
##############################################
hol-light-20190729/Multivariate/topology.ml-21389-      REWRITE_TAC[IN_IMAGE; IN_NUMSEG] THEN ASM_MESON_TAC[];
hol-light-20190729/Multivariate/topology.ml:21390:      MP_TAC(ISPEC `IMAGE (\i. abs((D:real^N^N)$i$i)) (1..dimindex(:N))`
hol-light-20190729/Multivariate/topology.ml-21391-        INF_FINITE) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-21404-    DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:21405:  MP_TAC(ISPEC `IMAGE (\i. abs((D:real^N^N)$i$i)) (1..dimindex(:N))`
hol-light-20190729/Multivariate/topology.ml-21406-    INF_FINITE) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-21412-  DISCH_THEN(X_CHOOSE_THEN `n:num` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/topology.ml:21413:  MP_TAC(ISPECL [`\i. (D:real^N^N)$i$i`; `1..dimindex(:N)`; `n:num`]
hol-light-20190729/Multivariate/topology.ml-21414-        PRODUCT_DELETE) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-21576-  ABBREV_TAC
hol-light-20190729/Multivariate/topology.ml:21577:     `D:real^N^N = (lambda i j. if i = j then (x:real^N)$i else &0)` THEN
hol-light-20190729/Multivariate/topology.ml-21578-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-21610-    REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:21611:    SUBGOAL_THEN `(B:real^N^N)$j$i = B$i$j`
hol-light-20190729/Multivariate/topology.ml-21612-     (fun th -> REWRITE_TAC[th; REAL_MUL_AC]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-21690-  MP_TAC(ISPECL
hol-light-20190729/Multivariate/topology.ml:21691:   [`{i | i IN 1..dimindex(:N) /\ (D:real^N^N)$i$i = &0}`;
hol-light-20190729/Multivariate/topology.ml-21692-    `c:real^N->bool`] CARD_EQ_BIJECTION) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-21743-   [`transp(U:real^N^N) ** P:real^N^N`;
hol-light-20190729/Multivariate/topology.ml:21744:    `transp(P:real^N^N) ** (lambda i j. sqrt((D:real^N^N)$j$i)) ** P`] THEN
hol-light-20190729/Multivariate/topology.ml-21745-  REPEAT CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-21751-     [STRIP_TAC THEN COND_CASES_TAC THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/Multivariate/topology.ml:21752:       [ASM SET_TAC[]; REWRITE_TAC[NORM_MUL; REAL_ABS_INV]] THEN
hol-light-20190729/Multivariate/topology.ml-21753-      MATCH_MP_TAC(REAL_FIELD
##############################################
hol-light-20190729/Multivariate/topology.ml-21760-      MAP_EVERY ASM_CASES_TAC
hol-light-20190729/Multivariate/topology.ml:21761:       [`(D:real^N^N)$i$i = &0`; `(D:real^N^N)$j$j = &0`] THEN
hol-light-20190729/Multivariate/topology.ml-21762-      ASM_SIMP_TAC[IN_UNION] THEN
hol-light-20190729/Multivariate/topology.ml-21763-      REPEAT(CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:21764:        [EXPAND_TAC "b" THEN REWRITE_TAC[IN_NUMSEG] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-21765-         ALL_TAC])
##############################################
hol-light-20190729/Multivariate/topology.ml-21768-         `DISJOINT b c ==> x IN b /\ y IN c ==> ~(x = y)`)) THEN
hol-light-20190729/Multivariate/topology.ml:21769:        EXPAND_TAC "b" THEN REWRITE_TAC[IN_NUMSEG] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-21770-        FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
hol-light-20190729/Multivariate/topology.ml-21771-         `DISJOINT b c ==> x IN b /\ y IN c ==> ~(y = x)`)) THEN
hol-light-20190729/Multivariate/topology.ml:21772:        EXPAND_TAC "b" THEN REWRITE_TAC[IN_NUMSEG] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-21773-        MATCH_MP_TAC(MESON[ORTHOGONAL_REFL]
##############################################
hol-light-20190729/Multivariate/topology.ml-22264-  SUBGOAL_THEN `s INTER k = s:num->bool` ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:22265:   [ASM SET_TAC []; ASM_MESON_TAC [SERIES_FINITE_SUPPORT]]);;
hol-light-20190729/Multivariate/topology.ml-22266-
##############################################
hol-light-20190729/Multivariate/topology.ml-22395-  FIRST_X_ASSUM(X_CHOOSE_TAC `l:real^N` o REWRITE_RULE[summable]) THEN
hol-light-20190729/Multivariate/topology.ml:22396:  REWRITE_TAC[summable] THEN EXISTS_TAC `lift((l:real^N)$k)` THEN
hol-light-20190729/Multivariate/topology.ml-22397-  ASM_SIMP_TAC[SERIES_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-22616-  FIRST_X_ASSUM(MP_TAC o SPEC
hol-light-20190729/Multivariate/topology.ml:22617:   `vsum (s INTER (0..n)) (f:num->real^N)$k - (infsum s f)$k`) THEN
hol-light-20190729/Multivariate/topology.ml-22618-  ASM_REWRITE_TAC[REAL_SUB_LT] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-22621-  MATCH_MP_TAC REAL_LE_TRANS THEN
hol-light-20190729/Multivariate/topology.ml:22622:  EXISTS_TAC `abs((vsum (s INTER (0..N + n)) f - infsum s f:real^N)$k)` THEN
hol-light-20190729/Multivariate/topology.ml-22623-  ASM_SIMP_TAC[COMPONENT_LE_NORM] THEN REWRITE_TAC[VECTOR_SUB_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-22750-  DISCH_TAC THEN EXISTS_TAC `N + 1` THEN
hol-light-20190729/Multivariate/topology.ml:22751:  REWRITE_TAC[ARITH_RULE `N + 1 <= n <=> ~(n <= N)`] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-22752-
##############################################
hol-light-20190729/Multivariate/topology.ml-23961-  ASM_CASES_TAC `?x:real^N. x IN s /\ ~(g x = x)` THENL
hol-light-20190729/Multivariate/topology.ml:23962:   [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-23963-  FIRST_X_ASSUM(X_CHOOSE_THEN `x:real^N` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/topology.ml-23964-  ABBREV_TAC `y = (g:real^N->real^N) x` THEN
hol-light-20190729/Multivariate/topology.ml:23965:  SUBGOAL_THEN `(y:real^N) IN s` ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-23966-  FIRST_ASSUM(MP_TAC o MATCH_MP COMPACT_PCROSS o W CONJ) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-23971-  SUBGOAL_THEN `!n z. z IN s ==> (f:num->real^N->real^N) n z IN s`
hol-light-20190729/Multivariate/topology.ml:23972:  STRIP_ASSUME_TAC THENL [INDUCT_TAC THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-23973-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-23983-   `\n:num. pastecart (f n (x:real^N)) (f n y:real^N)`) THEN
hol-light-20190729/Multivariate/topology.ml:23984:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/topology.ml-23985-  MAP_EVERY X_GEN_TAC [`l:real^(N,N)finite_sum`; `s:num->num`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-24086-    ASM_REWRITE_TAC[ITER_POINTLESS; IMAGE_I; IMAGE_o] THEN
hol-light-20190729/Multivariate/topology.ml:24087:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-24088-    REWRITE_TAC[EXISTS_UNIQUE] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-24092-    ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:24093:     [CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-24094-      ASM_MESON_TAC[ITER_ALT; ITER];
##############################################
hol-light-20190729/Multivariate/topology.ml-24112-    ASM_REWRITE_TAC[ITER_POINTLESS; IMAGE_I; IMAGE_o] THEN
hol-light-20190729/Multivariate/topology.ml:24113:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-24114-    REWRITE_TAC[EXISTS_UNIQUE] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-24118-    ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:24119:     [CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-24120-      ASM_MESON_TAC[ITER_ALT; ITER];
##############################################
hol-light-20190729/Multivariate/topology.ml-24380-  MATCH_MP_TAC REAL_LE_INF THEN
hol-light-20190729/Multivariate/topology.ml:24381:  REWRITE_TAC[FORALL_IN_GSPEC; DIST_POS_LE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-24382-
##############################################
hol-light-20190729/Multivariate/topology.ml-24395-   [ASM_CASES_TAC `s':real^N->bool = {}` THEN
hol-light-20190729/Multivariate/topology.ml:24396:    ASM_REWRITE_TAC[SETDIST_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-24397-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-24399-   [ASM_CASES_TAC `t':real^N->bool = {}` THEN
hol-light-20190729/Multivariate/topology.ml:24400:    ASM_REWRITE_TAC[SETDIST_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-24401-    ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:24402:  ASM_CASES_TAC `s':real^N->bool = {}` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:24403:  ASM_CASES_TAC `t':real^N->bool = {}` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-24404-  ASM_REWRITE_TAC[setdist] THEN MATCH_MP_TAC INF_EQ THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-24414-  REWRITE_TAC[FORALL_IN_GSPEC] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:24415:   [CONJ_TAC THENL [ASM SET_TAC[]; MESON_TAC[DIST_POS_LE]]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-24416-  ASM_MESON_TAC[]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-24420-  REPEAT GEN_TAC THEN REWRITE_TAC[setdist] THEN
hol-light-20190729/Multivariate/topology.ml:24421:  COND_CASES_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-24422-  MP_TAC(ISPEC `{dist(x:real^N,y) | x IN s /\ y IN t}` INF) THEN
hol-light-20190729/Multivariate/topology.ml-24423-  REWRITE_TAC[FORALL_IN_GSPEC] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:24424:   [CONJ_TAC THENL [ASM SET_TAC[]; MESON_TAC[DIST_POS_LE]]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-24425-  ASM_MESON_TAC[]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-24501-    REWRITE_TAC[FORALL_IN_GSPEC; RIGHT_IMP_FORALL_THM; IMP_IMP] THEN
hol-light-20190729/Multivariate/topology.ml:24502:    DISCH_THEN MATCH_MP_TAC THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-24503-    MESON_TAC[DIST_POS_LE]]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-24598-  ASM_REWRITE_TAC[FORALL_IN_GSPEC; SUBSET] THEN
hol-light-20190729/Multivariate/topology.ml:24599:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-24600-  MESON_TAC[DIST_POS_LE]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-24649-    ASM_REWRITE_TAC[IN_INTER; IN_DIFF; ENDS_IN_SEGMENT] THEN
hol-light-20190729/Multivariate/topology.ml:24650:    MP_TAC(ISPEC `s:real^N->bool` INTERIOR_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-24651-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `z:real^N` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-24668-               DIST_0; GSYM CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/topology.ml:24669:  REWRITE_TAC[dist] THEN DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-24670-
##############################################
hol-light-20190729/Multivariate/topology.ml-24684-               DIST_0; GSYM CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/topology.ml:24685:  REWRITE_TAC[dist] THEN DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-24686-
##############################################
hol-light-20190729/Multivariate/topology.ml-24753-   [ASM_MESON_TAC[SETDIST_LE_DIST];
hol-light-20190729/Multivariate/topology.ml:24754:    MATCH_MP_TAC REAL_LE_SETDIST THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-24755-
##############################################
hol-light-20190729/Multivariate/topology.ml-24771-  REWRITE_TAC[DIST_EQ_0; UNWIND_THM2; DIST_REFL; DIST_POS_LE] THEN
hol-light-20190729/Multivariate/topology.ml:24772:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-24773-
##############################################
hol-light-20190729/Multivariate/topology.ml-24804-     `s INTER (UNIV DIFF t) = {} <=> s SUBSET t`] THEN
hol-light-20190729/Multivariate/topology.ml:24805:    MATCH_MP_TAC SUBSET_CLOSURE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-24806-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `z:real^N` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-24847- (`!s t x:real^N. x IN s ==> setdist(s,t) <= setdist({x},t)`,
hol-light-20190729/Multivariate/topology.ml:24848:  REPEAT STRIP_TAC THEN MATCH_MP_TAC SETDIST_SUBSET_LEFT THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-24849-
##############################################
hol-light-20190729/Multivariate/topology.ml-24924-               GSYM OPEN_CLOSED] THEN
hol-light-20190729/Multivariate/topology.ml:24925:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-24926-  X_GEN_TAC `b:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-24931-  SUBST1_TAC(NORM_ARITH `dist(a:real^N,b) = dist(a + c,b + c)`) THEN
hol-light-20190729/Multivariate/topology.ml:24932:  MATCH_MP_TAC SETDIST_LE_DIST THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-24933-
##############################################
hol-light-20190729/Multivariate/topology.ml-24960-  ASM_REWRITE_TAC[REAL_NOT_LT; NOT_IMP] THEN
hol-light-20190729/Multivariate/topology.ml:24961:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-24962-  MATCH_MP_TAC SETDIST_LE_DIST THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-25140-    ASM_REWRITE_TAC[CENTRE_IN_BALL; REAL_HALF; VECTOR_ADD_RID] THEN
hol-light-20190729/Multivariate/topology.ml:25141:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-25142-    MATCH_MP_TAC(SET_RULE `DISJOINT t u ==> (s UNION t) INTER u SUBSET s`) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-25182-  FIRST_X_ASSUM(STRIP_ASSUME_TAC o MATCH_MP CLOSED_IN_SEPARATED_UNION) THEN
hol-light-20190729/Multivariate/topology.ml:25183:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-25184-
##############################################
hol-light-20190729/Multivariate/topology.ml-25204-  MATCH_MP_TAC SEPARATION_CLOSURES THEN
hol-light-20190729/Multivariate/topology.ml:25205:  ASM_SIMP_TAC[CLOSURE_CLOSED] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-25206-
##############################################
hol-light-20190729/Multivariate/topology.ml-25268-  ASM_SIMP_TAC[CLOSED_UNION; GSYM OPEN_CLOSED; OPEN_BALL] THEN
hol-light-20190729/Multivariate/topology.ml:25269:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-25270-  REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
hol-light-20190729/Multivariate/topology.ml-25271-  STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:25272:  CONJ_TAC THENL [MATCH_MP_TAC BOUNDED_CLOSURE; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-25273-  MATCH_MP_TAC BOUNDED_SUBSET THEN EXISTS_TAC `ball(vec 0:real^N,r)` THEN
hol-light-20190729/Multivariate/topology.ml:25274:  REWRITE_TAC[BOUNDED_BALL] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-25275-
##############################################
hol-light-20190729/Multivariate/topology.ml-25314-      ASM_SIMP_TAC[BASIS_NONZERO; DIMINDEX_GE_1; LE_REFL] THEN
hol-light-20190729/Multivariate/topology.ml:25315:      ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-25316-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-25350-    ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:25351:    REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-25352-
##############################################
hol-light-20190729/Multivariate/topology.ml-25366-  SUBGOAL_THEN `compact(c:real^N->bool)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:25367:   [EXPAND_TAC "c" THEN MATCH_MP_TAC COMPACT_INTERS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-25368-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-25375-  SUBGOAL_THEN `?k:real^N->bool. k IN f` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:25376:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-25377-  SUBGOAL_THEN `?n:real^N->bool. open n /\ k SUBSET n` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-25387-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN ONCE_REWRITE_TAC[IN_UNION] THEN
hol-light-20190729/Multivariate/topology.ml:25388:    ASM_CASES_TAC `(x:real^N) IN c` THENL [ASM SET_TAC[]; DISJ2_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-25389-    REWRITE_TAC[UNIONS_IMAGE; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-25392-    REWRITE_TAC[IN_INTERS; NOT_FORALL_THM] THEN
hol-light-20190729/Multivariate/topology.ml:25393:    MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-25394-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-25408-    ASM_REWRITE_TAC[IMAGE_CLAUSES; UNIONS_0; EMPTY_SUBSET] THENL
hol-light-20190729/Multivariate/topology.ml:25409:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-25410-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-25433-     [FIRST_X_ASSUM(MP_TAC o SPEC `j:real^N->bool` o CONJUNCT2) THEN
hol-light-20190729/Multivariate/topology.ml:25434:      ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:25435:      DISJ1_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:25436:      DISJ2_TAC THEN EXISTS_TAC `j:real^N->bool` THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-25437-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-25447-    ASM_REWRITE_TAC[] THEN ONCE_REWRITE_TAC[UNIONS_INSERT] THEN
hol-light-20190729/Multivariate/topology.ml:25448:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-25449-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-25453-    MAP_EVERY EXISTS_TAC [`u:real^N->bool`; `v:real^N->bool`] THEN
hol-light-20190729/Multivariate/topology.ml:25454:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-25455-
##############################################
hol-light-20190729/Multivariate/topology.ml-25466-  SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:25467:   [REWRITE_TAC[EXTENSION; INTERS_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-25468-    MATCH_MP_TAC CONNECTED_CHAIN THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-25470-    ASM_SIMP_TAC[COMPACT_INTER_CLOSED] THEN
hol-light-20190729/Multivariate/topology.ml:25471:    CONJ_TAC THENL [X_GEN_TAC `t:real^N->bool`; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-25472-    DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-25474-     (DISJ_CASES_THEN SUBST1_TAC) THEN
hol-light-20190729/Multivariate/topology.ml:25475:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-25476-
##############################################
hol-light-20190729/Multivariate/topology.ml-25717-  EXISTS_TAC `max b c:real` THEN
hol-light-20190729/Multivariate/topology.ml:25718:  ASM_SIMP_TAC[REAL_LE_MAX] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-25719-
##############################################
hol-light-20190729/Multivariate/topology.ml-25869-  REWRITE_TAC[REAL_NOT_LT] THEN MATCH_MP_TAC SETDIST_SING_LE_HAUSDIST THEN
hol-light-20190729/Multivariate/topology.ml:25870:  ASM_SIMP_TAC[COMPACT_IMP_BOUNDED] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-25871-
##############################################
hol-light-20190729/Multivariate/topology.ml-25989-  REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:25990:  ASM_CASES_TAC `s:real^N->bool = {}` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-25991-  MP_TAC(ISPECL [`{x:real^N}`; `t:real^N->bool`]
##############################################
hol-light-20190729/Multivariate/topology.ml-26083-  ASM_SIMP_TAC[COMPACT_IMP_BOUNDED] THEN
hol-light-20190729/Multivariate/topology.ml:26084:  (ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(MP_TAC o SPEC `a:real^N`)]) THEN
hol-light-20190729/Multivariate/topology.ml-26085-  ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml-26086-  DISCH_THEN(X_CHOOSE_THEN `c:real^N` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/topology.ml:26087:  (ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(MP_TAC o SPEC `b:real^N`)]) THEN
hol-light-20190729/Multivariate/topology.ml-26088-  ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-26092-  (CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:26093:    [MATCH_MP_TAC SETDIST_LE_DIST THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-26094-     REPEAT(FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [GSYM REAL_NOT_LT])) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-26303-     HAUSDIST_COMPACT_SUMS) THEN
hol-light-20190729/Multivariate/topology.ml:26304:    ASM_REWRITE_TAC[] THEN ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-26305-    MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/topology.ml-26336-  ONCE_REWRITE_TAC[HAUSDIST_SYM] THEN ASM_SIMP_TAC[COMPACT_IMP_BOUNDED] THEN
hol-light-20190729/Multivariate/topology.ml:26337:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-26338-
##############################################
hol-light-20190729/Multivariate/topology.ml-26353-    SUBGOAL_THEN `(s:num->real^N->bool) n = {}` SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:26354:     [ASM SET_TAC[]; REWRITE_TAC[HAUSDIST_EMPTY; LIFT_NUM]];
hol-light-20190729/Multivariate/topology.ml-26355-    RULE_ASSUM_TAC(REWRITE_RULE[NOT_EXISTS_THM])] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-26573-    REWRITE_TAC[UNWIND_THM2] THEN ASM_REWRITE_TAC[IN_CBALL_0] THEN
hol-light-20190729/Multivariate/topology.ml:26574:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-26575-    MATCH_MP_TAC(ISPEC `sequentially` LIM_NORM_UBOUND) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-26605-  MATCH_MP_TAC(TAUT `q /\ (q ==> p /\ r) ==> p /\ q /\ r`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:26606:   [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-26607-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-26690-   `?y. y IN (f:num->(real^N->bool)) n /\ dist(y,x) < e`
hol-light-20190729/Multivariate/topology.ml:26691:  MP_TAC THENL [ONCE_REWRITE_TAC[DIST_SYM]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-26692-  MATCH_MP_TAC REAL_LT_HAUSDIST_POINT_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-26723-    SUBGOAL_THEN `?x:real^N. x IN t` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:26724:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-26725-    FIRST_X_ASSUM(MP_TAC o SPEC `x:real^N` o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/topology.ml-26730-    STRIP_TAC THEN ASM_REWRITE_TAC[GSYM CONJ_ASSOC; RIGHT_EXISTS_AND_THM] THEN
hol-light-20190729/Multivariate/topology.ml:26731:    CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_BALL_0]] THEN
hol-light-20190729/Multivariate/topology.ml-26732-    SUBGOAL_THEN `(y:real^N) IN closure s` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:26733:     [ASM SET_TAC[]; REWRITE_TAC[CLOSURE_APPROACHABLE]] THEN
hol-light-20190729/Multivariate/topology.ml-26734-    DISCH_THEN(MP_TAC o SPEC `e / &4`) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-26742-  ASM_CASES_TAC `s:real^N->bool = {}` THENL
hol-light-20190729/Multivariate/topology.ml:26743:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-26744-  FIRST_ASSUM(MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/topology.ml-26754-    SUBGOAL_THEN `?x:real^N. x IN t` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:26755:     [ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/topology.ml-26756-    REWRITE_TAC[SUBSET; IN_INTER; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-26759-    REWRITE_TAC[VECTOR_ADD_RID; CENTRE_IN_CBALL; GSYM CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/topology.ml:26760:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-26761-    CONJ_TAC THENL [ALL_TAC; ASM_REAL_ARITH_TAC];
##############################################
hol-light-20190729/Multivariate/topology.ml-26811-      MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:26812:       [REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-26813-        DISCH_THEN(MP_TAC o MATCH_MP (MESON[INFINITE; num_INFINITE]
##############################################
hol-light-20190729/Multivariate/topology.ml-26846-      REWRITE_TAC[SUBSET; UNIONS_GSPEC; IN_DIFF; IN_NUMSEG; IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/topology.ml:26847:      REWRITE_TAC[LE_0; NOT_LE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-26848-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-26928-  REWRITE_TAC[open_in; FORALL_IN_IMAGE] THEN REPEAT GEN_TAC THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:26929:  CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `x:real^M` THEN DISCH_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-26930-  FIRST_X_ASSUM(MP_TAC o SPEC `x:real^M`) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-26963-    SUBGOAL_THEN `!n. (z:num->real^N) n IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:26964:     [INDUCT_TAC THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-26965-    FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [compact]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-26979-    TRANS_TAC REAL_LE_TRANS `dist(x:real^N,z(SUC d))` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:26980:     [MATCH_MP_TAC SETDIST_LE_DIST THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-26981-    MATCH_MP_TAC REAL_EQ_IMP_LE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-27031-        `&0 <= x /\ &0 <= y /\ ~(x = &0 /\ y = &0) ==> &0 < x + y`) THEN
hol-light-20190729/Multivariate/topology.ml:27032:      REWRITE_TAC[SETDIST_POS_LE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-27033-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-27083-       [REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:27084:        REWRITE_TAC[TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-27085-        ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-27088-      ASM_REWRITE_TAC[CLOSED_IN_SING; MIDPOINT_EQ_ENDPOINT] THEN
hol-light-20190729/Multivariate/topology.ml:27089:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-27090-      MATCH_MP_TAC MONO_EXISTS THEN SIMP_TAC[NOT_IN_EMPTY] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-27099-          VECTOR_ARITH_TAC;
hol-light-20190729/Multivariate/topology.ml:27100:          ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-27101-        SUBGOAL_THEN `~(a IN segment[midpoint(a,b):real^M,b])` MP_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-27161-  ONCE_REWRITE_TAC[REAL_MUL_SYM] THEN X_GEN_TAC `n:num` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/topology.ml:27162:  EXISTS_TAC `(lambda i. floor(&2 pow n * (x:real^N)$i)):real^N` THEN
hol-light-20190729/Multivariate/topology.ml-27163-  ASM_SIMP_TAC[LAMBDA_BETA; FLOOR; dist; NORM_MUL] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-27176-  REWRITE_TAC[REAL_LE_REFL; REAL_ABS_POW; REAL_ABS_INV; REAL_ABS_NUM] THEN
hol-light-20190729/Multivariate/topology.ml:27177:  MP_TAC(SPEC `&2 pow n * (x:real^N)$k` FLOOR) THEN REAL_ARITH_TAC);;
hol-light-20190729/Multivariate/topology.ml-27178-
##############################################
hol-light-20190729/Multivariate/topology.ml-27336-    EXISTS_TAC `u DELETE ({}:real^N->bool)` THEN
hol-light-20190729/Multivariate/topology.ml:27337:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-27338-    FIRST_X_ASSUM SUBST_ALL_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-27360-    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/Multivariate/topology.ml:27361:    REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; TOPSPACE_EUCLIDEAN] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-27362-    REWRITE_TAC[SUBSET; CLOSURE_APPROACHABLE; EXISTS_IN_IMAGE] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-27378-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `c:real^N->bool` THEN
hol-light-20190729/Multivariate/topology.ml:27379:      DISCH_TAC THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-27380-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [EXTENSION]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-27383-      MATCH_MP_TAC(TAUT `a /\ c ==> (a /\ b <=> c) ==> b`) THEN
hol-light-20190729/Multivariate/topology.ml:27384:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-27385-      FIRST_X_ASSUM(MP_TAC o SPEC `c:real^N->bool`) THEN
hol-light-20190729/Multivariate/topology.ml:27386:      ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-27387-      FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/Multivariate/topology.ml-27388-      REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; TOPSPACE_EUCLIDEAN] THEN
hol-light-20190729/Multivariate/topology.ml:27389:      ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/topology.ml-27390-
##############################################
hol-light-20190729/Multivariate/topology.ml-27477-  STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:27478:   [EXPAND_TAC "d" THEN ASM_SIMP_TAC[COUNTABLE_RESTRICT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-27479-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-27486-  ASM_SIMP_TAC[COUNTABLE_IMAGE; UNIONS_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml:27487:  REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-27488-
##############################################
hol-light-20190729/Multivariate/topology.ml-27504-  `!f'. f' SUBSET f ==> UNIONS f' = (u:real^N->bool) INTER UNIONS (IMAGE v f')`
hol-light-20190729/Multivariate/topology.ml:27505:  MP_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[SUBSET_REFL]]);;
hol-light-20190729/Multivariate/topology.ml-27506-
##############################################
hol-light-20190729/Multivariate/topology.ml-27574-    FIRST_X_ASSUM(MP_TAC o SPEC `v:real^N->bool`) THEN
hol-light-20190729/Multivariate/topology.ml:27575:    ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-27576-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (ONCE_REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/topology.ml-27577-        OPEN_IN_SUBSET_TRANS)) THEN
hol-light-20190729/Multivariate/topology.ml:27578:    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-27579-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `g:(real^N->bool)->bool` THEN
hol-light-20190729/Multivariate/topology.ml:27580:    STRIP_TAC THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-27581-
##############################################
hol-light-20190729/Multivariate/topology.ml-27656-    SUBGOAL_THEN `?u:real^N->bool. x IN u /\ u IN b /\ u SUBSET t` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:27657:     [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/Multivariate/topology.ml-27658-    REPEAT STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml-27659-    MATCH_MP_TAC COUNTABLE_SUBSET THEN
hol-light-20190729/Multivariate/topology.ml:27660:    EXISTS_TAC `s INTER t:real^N->bool` THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-27661-
##############################################
hol-light-20190729/Multivariate/topology.ml-27809-     [`s:real^N->bool`;
hol-light-20190729/Multivariate/topology.ml:27810:      `{ x:real^N | !i. 1 <= i /\ i <= dimindex(:N) ==> rational(x$i) }`;
hol-light-20190729/Multivariate/topology.ml-27811-      `(:num)`] CARD_LE_TRANS) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-27949-           ~(a < b /\ b < a') /\ ~(b < a /\ a < b'))`] THEN
hol-light-20190729/Multivariate/topology.ml:27950:    REWRITE_TAC[GSYM IN_INTERVAL_1] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-27951-    MATCH_MP_TAC EQ_IMP THEN MATCH_MP_TAC COUNTABLE_IMAGE_INJ_EQ THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28067-    SUBGOAL_THEN `~(b IN interval(a:real^1,B a))` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:28068:     [ASM SET_TAC[]; REWRITE_TAC[IN_INTERVAL_1] THEN ASM_REAL_ARITH_TAC];
hol-light-20190729/Multivariate/topology.ml-28069-    MATCH_MP_TAC EQ_IMP THEN MATCH_MP_TAC COUNTABLE_IMAGE_INJ_EQ THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28076-    REWRITE_TAC[IN_ELIM_THM; TRIVIAL_LIMIT_WITHIN; LIMPT_APPROACHABLE] THEN
hol-light-20190729/Multivariate/topology.ml:28077:    ASM_CASES_TAC `(a:real^1) IN s` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-28078-    ASM_REWRITE_TAC[] THEN DISCH_THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28166-    ASM_REWRITE_TAC[SUBSET; IN_INTER] THEN
hol-light-20190729/Multivariate/topology.ml:28167:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-28168-    DISCH_THEN(X_CHOOSE_THEN `r:real` STRIP_ASSUME_TAC) THEN
hol-light-20190729/Multivariate/topology.ml-28169-    EXISTS_TAC `r / &2` THEN ASM_REWRITE_TAC[REAL_HALF] THEN
hol-light-20190729/Multivariate/topology.ml:28170:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-28171-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/topology.ml-28194-  SUBGOAL_THEN `(!n:num. a n IN s) /\ (!n. (f:real^M->real^N) (a n) = b)`
hol-light-20190729/Multivariate/topology.ml:28195:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-28196-  REMOVE_THEN "*" (MP_TAC o GEN_REWRITE_RULE I [SET_RULE
##############################################
hol-light-20190729/Multivariate/topology.ml-28220-        [`(u:num->real^M->bool) 0`; `a 0:real^M`]) THEN
hol-light-20190729/Multivariate/topology.ml:28221:      ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-28222-      MAP_EVERY X_GEN_TAC [`n:num`; `x:real^M`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28271-     [`(f:real^M->real^N) o (x:num->real^M)`; `b:real^N`] o CONJUNCT2) THEN
hol-light-20190729/Multivariate/topology.ml:28272:    ASM_REWRITE_TAC[o_THM; NOT_IMP] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-28273-  REWRITE_TAC[CLOSED_IN_LIMPT] THEN
hol-light-20190729/Multivariate/topology.ml:28274:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-28275-  X_GEN_TAC `z:real^M` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28298-    SUBGOAL_THEN `?N. z = (a:num->real^M) N`
hol-light-20190729/Multivariate/topology.ml:28299:     (X_CHOOSE_THEN `N:num` SUBST_ALL_TAC) THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-28300-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28373-  ASM_SIMP_TAC[OPEN_IN_INTER; INTER_SUBSET; CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/topology.ml:28374:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml-28375-   [ALL_TAC; ASM_MESON_TAC[CONTINUOUS_ON_SUBSET; INTER_SUBSET]] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28387-  REWRITE_TAC[IN; CONNECTED_CONNECTED_COMPONENT] THEN
hol-light-20190729/Multivariate/topology.ml:28388:  ASM_REWRITE_TAC[CONNECTED_COMPONENT_REFL_EQ] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-28389-
##############################################
hol-light-20190729/Multivariate/topology.ml-28430-  REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:28431:   [ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-28432-    MATCH_MP_TAC CLOSED_INTERS THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28459-        FIRST_X_ASSUM(MP_TAC o SELECT_RULE) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:28460:        ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-28461-        FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [NOT_EXISTS_THM]) THEN
hol-light-20190729/Multivariate/topology.ml-28462-        DISCH_THEN(MP_TAC o SPEC `t:real^N->bool`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:28463:        ASM SET_TAC[]]]]);;
hol-light-20190729/Multivariate/topology.ml-28464-
##############################################
hol-light-20190729/Multivariate/topology.ml-28484-      MATCH_MP_TAC TRANSITIVE_STEPWISE_LE THEN ASM_SIMP_TAC[] THEN SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:28485:      ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-28486-      FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_REWRITE_TAC[]];
##############################################
hol-light-20190729/Multivariate/topology.ml-28504-  ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:28505:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN GEN_TAC THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml-28506-    CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:28507:     [REWRITE_TAC[SUBSET_INTERS] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-28508-      MATCH_MP_TAC CONNECTED_NEST THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28515-    GEN_TAC THEN STRIP_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:28516:    ASM_SIMP_TAC[COMPACT_IMP_CLOSED] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-28517-
##############################################
hol-light-20190729/Multivariate/topology.ml-28595-        FUNCTION_CONVERGENT_SUBSEQUENCE) THEN
hol-light-20190729/Multivariate/topology.ml:28596:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-28597-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `k:num->num` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28636-  ASM_SIMP_TAC[] THEN REMOVE_THEN "*" (MP_TAC o SPEC `y:real^M`) THEN
hol-light-20190729/Multivariate/topology.ml:28637:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-28638-  DISCH_THEN(MP_TAC o SPECL [`m:num`; `n:num`]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28768-    SUBGOAL_THEN `(x:real^N) IN s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:28769:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-28770-    FIRST_X_ASSUM(MP_TAC o SPEC `x:real^N`) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28836-  REWRITE_TAC[LOCALLY_AND_OPEN_IN] THEN REPEAT STRIP_TAC THEN EQ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:28837:   [STRIP_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-28838-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28860-    REWRITE_TAC[GSYM SUBSET_ANTISYM_EQ; UNIONS_SUBSET; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml:28861:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-28862-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/topology.ml-28864-    REWRITE_TAC[FORALL_IN_IMAGE; SUBSET_EMPTY; EMPTY_SUBSET] THEN
hol-light-20190729/Multivariate/topology.ml:28865:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-28866-    REWRITE_TAC[SKOLEM_THM; LEFT_IMP_EXISTS_THM; FORALL_AND_THM]] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28873-    REWRITE_TAC[FORALL_IN_UNIONS; IMP_CONJ; RIGHT_FORALL_IMP_THM] THEN
hol-light-20190729/Multivariate/topology.ml:28874:    REWRITE_TAC[FORALL_IN_GSPEC; IN_UNIV] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-28875-    X_GEN_TAC `v:real^N->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28890-    SUBGOAL_THEN `(a:real^N) IN UNIONS (c(n:num))` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:28891:     [ASM SET_TAC[]; REWRITE_TAC[IN_UNIONS]] THEN
hol-light-20190729/Multivariate/topology.ml-28892-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `t:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28904-                  a IN ball(b,inv(&n + &1))`
hol-light-20190729/Multivariate/topology.ml:28905:    MP_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_BALL]] THEN
hol-light-20190729/Multivariate/topology.ml-28906-    UNDISCH_TAC `inv (&n + &1) < r / &2` THEN CONV_TAC NORM_ARITH]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-28931-    SUBGOAL_THEN `(y:real^N) IN w` ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:28932:     [ASM SET_TAC[]; ASM_REWRITE_TAC[IN_INTER; SUBSET_INTER]] THEN
hol-light-20190729/Multivariate/topology.ml-28933-    ANTS_TAC THENL [ASM_MESON_TAC[OPEN_IN_INTER; OPEN_IN_TRANS]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28953-  EXISTS_TAC `IMAGE (v:real^N->real^N->bool) t` THEN
hol-light-20190729/Multivariate/topology.ml:28954:  ASM_SIMP_TAC[COUNTABLE_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-28955-
##############################################
hol-light-20190729/Multivariate/topology.ml-28968-  ASM_SIMP_TAC[FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml:28969:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-28970-  ONCE_REWRITE_TAC[TAUT `p /\ q /\ r <=> q /\ p /\ r`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-28973-  EXISTS_TAC `IMAGE (v:real^N->real^N->bool) t` THEN
hol-light-20190729/Multivariate/topology.ml:28974:  ASM_SIMP_TAC[FINITE_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-28975-
##############################################
hol-light-20190729/Multivariate/topology.ml-28999-  MP_TAC(ISPECL [`a:real^N`; `r:real`] BALL_SUBSET_CBALL) THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/topology.ml:29000:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-29001-  REWRITE_TAC[CLOSURE_OF_SUBTOPOLOGY] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29056-  EXISTS_TAC `v1 INTER v2:real^N->bool` THEN
hol-light-20190729/Multivariate/topology.ml:29057:  ASM_SIMP_TAC[OPEN_INTER] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-29058-
##############################################
hol-light-20190729/Multivariate/topology.ml-29075-        REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:29076:        ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-29077-        MATCH_MP_TAC OPEN_IN_SUBTOPOLOGY_INTER_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29081-      REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:29082:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-29083-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `n:real^N->bool` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29085-    STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:29086:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-29087-    MATCH_MP_TAC OPEN_IN_SUBSET_TRANS THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29089-    REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:29090:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-29091-
##############################################
hol-light-20190729/Multivariate/topology.ml-29143-    ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:29144:     [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-29145-      SUBGOAL_THEN `IMAGE (g:real^M->real^N) w =
##############################################
hol-light-20190729/Multivariate/topology.ml-29147-      SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:29148:       [RULE_ASSUM_TAC(REWRITE_RULE[open_in]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-29149-        MATCH_MP_TAC CONTINUOUS_ON_IMP_OPEN_IN THEN ASM_REWRITE_TAC[]];
##############################################
hol-light-20190729/Multivariate/topology.ml-29157-      SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:29158:       [RULE_ASSUM_TAC(REWRITE_RULE[open_in]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-29159-        MATCH_MP_TAC CONTINUOUS_ON_IMP_OPEN_IN THEN ASM_REWRITE_TAC[]];
##############################################
hol-light-20190729/Multivariate/topology.ml-29167-      ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:29168:    RULE_ASSUM_TAC(REWRITE_RULE[open_in]) THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/topology.ml-29169-  REPEAT STRIP_TAC THEN EQ_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29236-  SUBGOAL_THEN `?x. x IN s /\ (f:real^M->real^N) x = y` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:29237:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-29238-  FIRST_X_ASSUM(MP_TAC o SPECL
##############################################
hol-light-20190729/Multivariate/topology.ml-29243-   [`IMAGE (f:real^M->real^N) u`; `IMAGE (f:real^M->real^N) v`] THEN
hol-light-20190729/Multivariate/topology.ml:29244:  ASM_SIMP_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml:29245:  FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-29246-
##############################################
hol-light-20190729/Multivariate/topology.ml-29268-    EXISTS_TAC `UNIONS(IMAGE (u:real^N->real^N->bool) s)` THEN
hol-light-20190729/Multivariate/topology.ml:29269:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-29270-    MP_TAC(ISPECL [`IMAGE (u:real^N->real^N->bool) s`; `s:real^N->bool`]
##############################################
hol-light-20190729/Multivariate/topology.ml-29336-  ASM_SIMP_TAC[FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml:29337:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-29338-  ONCE_REWRITE_TAC[TAUT `a /\ b /\ c <=> b /\ a /\ c`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29342-  EXISTS_TAC `UNIONS (IMAGE (v:real^N->real^N->bool) k)` THEN
hol-light-20190729/Multivariate/topology.ml:29343:  REPEAT (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-29344-  FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:29345:  ASM_SIMP_TAC[FINITE_IMAGE; FORALL_IN_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-29346-
##############################################
hol-light-20190729/Multivariate/topology.ml-29390-    MP_TAC(ISPECL [`x:real^N`; `e:real`] BALL_SUBSET_CBALL) THEN
hol-light-20190729/Multivariate/topology.ml:29391:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-29392-
##############################################
hol-light-20190729/Multivariate/topology.ml-29418-    SUBGOAL_THEN `cball(x:real^N,e) INTER s = cball (x,e) INTER v`
hol-light-20190729/Multivariate/topology.ml:29419:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-29420-    ASM_SIMP_TAC[COMPACT_CBALL; COMPACT_INTER; COMPACT_IMP_CLOSED];
##############################################
hol-light-20190729/Multivariate/topology.ml-29469-  ASM_SIMP_TAC[FORALL_IN_IMAGE; UNIONS_IMAGE] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:29470:   [CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-29471-    REPEAT STRIP_TAC THEN MATCH_MP_TAC OPEN_IN_SUBTOPOLOGY_INTER_SUBSET THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29473-    MATCH_MP_TAC OPEN_IN_INTER THEN REWRITE_TAC[OPEN_IN_REFL] THEN
hol-light-20190729/Multivariate/topology.ml:29474:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-29475-    ONCE_REWRITE_TAC[TAUT `p /\ q /\ r <=> q /\ p /\ r`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29482-      MATCH_MP_TAC COMPACT_UNIONS THEN ASM_SIMP_TAC[FINITE_IMAGE]] THEN
hol-light-20190729/Multivariate/topology.ml:29483:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-29484-
##############################################
hol-light-20190729/Multivariate/topology.ml-29513-    REWRITE_TAC[CLOSURE_SUBSET; INTER_SUBSET] THEN REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:29514:     [ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-29515-      TRANS_TAC SUBSET_TRANS `closure(u:real^N->bool)` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29546-  ASM_SIMP_TAC[CLOSED_INTER_COMPACT; COMPACT_CBALL] THEN
hol-light-20190729/Multivariate/topology.ml:29547:  MP_TAC(ISPECL [`x:real^N`; `&1`] BALL_SUBSET_CBALL) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-29548-
##############################################
hol-light-20190729/Multivariate/topology.ml-29572-    MP_TAC(ISPECL [`c:real^N`; `d:real^N`] INTERVAL_OPEN_SUBSET_CLOSED) THEN
hol-light-20190729/Multivariate/topology.ml:29573:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-29574-
##############################################
hol-light-20190729/Multivariate/topology.ml-29651-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:29652:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-29653-
##############################################
hol-light-20190729/Multivariate/topology.ml-29668-  ASM_REWRITE_TAC[IN_INTER; CENTRE_IN_BALL; REAL_LT_01] THEN
hol-light-20190729/Multivariate/topology.ml:29669:  MP_TAC(ISPEC `x:real^N` BALL_SUBSET_CBALL) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-29670-
##############################################
hol-light-20190729/Multivariate/topology.ml-29715-                  cball(x,d) INTER cball (x,e) INTER s` SUBST1_TAC
hol-light-20190729/Multivariate/topology.ml:29716:    THENL [REWRITE_TAC[CBALL_MIN_INTER] THEN ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/topology.ml-29717-    SUBGOAL_THEN `cball (x:real^N,min d e) INTER (s UNION t) =
hol-light-20190729/Multivariate/topology.ml-29718-                  cball(x,d) INTER cball (x,e) INTER t` SUBST1_TAC
hol-light-20190729/Multivariate/topology.ml:29719:    THENL [REWRITE_TAC[CBALL_MIN_INTER] THEN ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/topology.ml-29720-  ASM_MESON_TAC[CLOSED_INTER; CLOSED_CBALL]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-29735-  STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:29736:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-29737-  MATCH_MP_TAC OPEN_IN_SUBSET_TRANS THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29740-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/Multivariate/topology.ml:29741:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[UNIONS_SUBSET]] THEN
hol-light-20190729/Multivariate/topology.ml-29742-  ASM_MESON_TAC[OPEN_IN_IMP_SUBSET]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-29789-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [OPEN_IN_OPEN]) THEN
hol-light-20190729/Multivariate/topology.ml:29790:    REWRITE_TAC[OPEN_IN_OPEN] THEN MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-29791-    ONCE_REWRITE_TAC[OPEN_IN_SUBOPEN] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29794-    DISCH_THEN(MP_TAC o SPEC `a:real^N`) THEN
hol-light-20190729/Multivariate/topology.ml:29795:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/Multivariate/topology.ml-29796-    MAP_EVERY X_GEN_TAC [`u:real^N->bool`; `v:real^N->bool`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29843-          REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:29844:          ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-29845-          MATCH_MP_TAC CLOSURE_MINIMAL THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29849-          ASM_MESON_TAC[CONTINUOUS_ON_SUBSET]];
hol-light-20190729/Multivariate/topology.ml:29850:        CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-29851-        REWRITE_TAC[COMPACT_EQ_BOUNDED_CLOSED; CLOSED_CLOSURE] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29874-     [MATCH_MP_TAC CLOSURE_MINIMAL THEN ASM_SIMP_TAC[COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/topology.ml:29875:      MP_TAC(ISPEC `v:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:29876:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-29877-      REWRITE_TAC[COMPACT_EQ_BOUNDED_CLOSED; CLOSED_CLOSURE] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29904-    `{x | x IN s /\ (f:real^M->real^N) x IN k}`] THEN
hol-light-20190729/Multivariate/topology.ml:29905:  REPLICATE_TAC 3 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-29906-  CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-29909-      {x | x IN {x | x IN s /\ f x IN c} /\ f x IN u}`
hol-light-20190729/Multivariate/topology.ml:29910:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-29911-    MATCH_MP_TAC CONTINUOUS_OPEN_IN_PREIMAGE_GEN THEN
hol-light-20190729/Multivariate/topology.ml-29912-    EXISTS_TAC `c:real^N->bool` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:29913:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-29914-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/topology.ml-29915-          CONTINUOUS_ON_SUBSET)) THEN SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:29916:    FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-29917-
##############################################
hol-light-20190729/Multivariate/topology.ml-29960-       [MATCH_MP_TAC OPEN_IN_INTER THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:29961:        MATCH_MP_TAC CONTINUOUS_OPEN_IN_PREIMAGE_GEN THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:29962:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-29963-      X_GEN_TAC `k:real^N->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-29966-        v INTER {x | x IN closure u /\ (f:real^M->real^N) x IN k}`
hol-light-20190729/Multivariate/topology.ml:29967:      SUBST1_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC COMPACT_INTER_CLOSED] THEN
hol-light-20190729/Multivariate/topology.ml-29968-      ASM_REWRITE_TAC[] THEN MATCH_MP_TAC CONTINUOUS_CLOSED_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30006-      REWRITE_TAC[NOT_IMP; NOT_EXISTS_THM] THEN
hol-light-20190729/Multivariate/topology.ml:30007:      CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `e:real` THEN STRIP_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-30008-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [LIM_SEQUENTIALLY]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30010-      DISCH_THEN(X_CHOOSE_THEN `n:num` (MP_TAC o SPEC `n:num`)) THEN
hol-light-20190729/Multivariate/topology.ml:30011:      ASM_REWRITE_TAC[LE_REFL; o_THM] THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/topology.ml-30012-
##############################################
hol-light-20190729/Multivariate/topology.ml-30123-     [`t:real^M->bool`; `IMAGE (f:real^M->real^(M,N)finite_sum) t`] THEN
hol-light-20190729/Multivariate/topology.ml:30124:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-30125-
##############################################
hol-light-20190729/Multivariate/topology.ml-30200-    ASM_SIMP_TAC[COUNTABLE_IMAGE; FORALL_IN_IMAGE];
hol-light-20190729/Multivariate/topology.ml:30201:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-30202-
##############################################
hol-light-20190729/Multivariate/topology.ml-30407-        CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:30408:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-30409-
##############################################
hol-light-20190729/Multivariate/topology.ml-30424-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:30425:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-30426-
##############################################
hol-light-20190729/Multivariate/topology.ml-30465-    s INTER (UNIONS (IMAGE (u:(real^N->bool)->(real^M->bool)) g))`
hol-light-20190729/Multivariate/topology.ml:30466:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-30467-  MATCH_MP_TAC FSIGMA_INTER THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30494-    s INTER (INTERS (IMAGE (u:(real^N->bool)->(real^M->bool)) g))`
hol-light-20190729/Multivariate/topology.ml:30495:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-30496-  MATCH_MP_TAC GDELTA_INTER THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30510-  ASM_SIMP_TAC[COUNTABLE_IMAGE; FORALL_IN_IMAGE; UNIONS_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml:30511:  CONJ_TAC THENL [REPEAT STRIP_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml:30512:  FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-30513-
##############################################
hol-light-20190729/Multivariate/topology.ml-30526-              IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/topology.ml:30527:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-30528-
##############################################
hol-light-20190729/Multivariate/topology.ml-30582-    SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:30583:     [REWRITE_TAC[PASTECART_IN_PCROSS] THEN ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/topology.ml-30584-    SUBGOAL_THEN `t = {y | y IN (:real^N) /\
##############################################
hol-light-20190729/Multivariate/topology.ml-30586-    SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:30587:     [REWRITE_TAC[PASTECART_IN_PCROSS] THEN ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/topology.ml-30588-  MATCH_MP_TAC CONTINUOUS_GDELTA_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30762-   (CONJ_TAC THENL [ASM_MESON_TAC[CONTINUOUS_GDELTA_PREIMAGE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:30763:    REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC])) THEN
hol-light-20190729/Multivariate/topology.ml:30764:  REPLICATE_TAC 2 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-30765-  ONCE_REWRITE_TAC[TAUT
##############################################
hol-light-20190729/Multivariate/topology.ml-30770-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/topology.ml:30771:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:30772:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/topology.ml-30773-  CONJ_TAC THEN ONCE_REWRITE_TAC[GSYM VECTOR_SUB_EQ] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30777-  REWRITE_TAC[IN_SING; VECTOR_SUB_EQ; CLOSED_SING] THEN
hol-light-20190729/Multivariate/topology.ml:30778:  (CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/topology.ml-30779-  MATCH_MP_TAC CONTINUOUS_ON_SUB THEN REWRITE_TAC[CONTINUOUS_ON_ID] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30783-      CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:30784:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-30785-
##############################################
hol-light-20190729/Multivariate/topology.ml-30807-  SUBGOAL_THEN `!n. (h:num->real^N->bool) n SUBSET u` ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:30808:   [INDUCT_TAC THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-30809-  REPEAT CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-30819-       `IMAGE (g:real^N->real^N) (h(n:num)) = {x | x IN v /\ g' x IN h n}`
hol-light-20190729/Multivariate/topology.ml:30820:      SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-30821-    MATCH_MP_TAC CONTINUOUS_GDELTA_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30826-    ASM_REWRITE_TAC[SUBSET_INTER] THEN
hol-light-20190729/Multivariate/topology.ml:30827:    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-30828-    MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/topology.ml-30835-       `!a. a IN s /\ f a SUBSET t ==> INTERS {f x | x IN s} SUBSET t`) THEN
hol-light-20190729/Multivariate/topology.ml:30836:      EXISTS_TAC `0` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-30837-      MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/Multivariate/topology.ml-30839-      EXISTS_TAC `SUC 0` THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:30840:      RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-30841-      MATCH_MP_TAC SUBSET_ANTISYM THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-30845-         `(!n. P(SUC n) ==> Q n) ==> (!n. P n) ==> (!n. Q n)`) THEN
hol-light-20190729/Multivariate/topology.ml:30846:        ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-30847-        REWRITE_TAC[SUBSET; IN_IMAGE; INTERS_GSPEC; IN_ELIM_THM; IN_UNIV] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30855-        ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:30856:        RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]]]]);;
hol-light-20190729/Multivariate/topology.ml-30857-
##############################################
hol-light-20190729/Multivariate/topology.ml-30874-    SUBGOAL_THEN `t = {x | x IN v /\ (g':real^N->real^M) x IN s}`
hol-light-20190729/Multivariate/topology.ml:30875:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-30876-    MATCH_MP_TAC CONTINUOUS_GDELTA_PREIMAGE THEN ASM_SIMP_TAC[]) in
##############################################
hol-light-20190729/Multivariate/topology.ml-30888-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:30889:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-30890-
##############################################
hol-light-20190729/Multivariate/topology.ml-30911-      ASM_REWRITE_TAC[COUNTABLE_SING; SING_SUBSET; UNIONS_1] THEN
hol-light-20190729/Multivariate/topology.ml:30912:      ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-30913-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30926-    EXISTS_TAC `f':(real^N->bool)->bool` THEN
hol-light-20190729/Multivariate/topology.ml:30927:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-30928-    MP_TAC(ISPEC `v:real^N->bool` SUBSET_SECOND_COUNTABLE) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30946-    ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:30947:     [CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-30948-      SUBGOAL_THEN `?c':real^N->bool. c' IN f /\ ~(c' SUBSET c)`
hol-light-20190729/Multivariate/topology.ml:30949:      STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-30950-      SUBGOAL_THEN `c PSUBSET (c':real^N->bool)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:30951:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-30952-      SUBGOAL_THEN `?c'':real^N->bool. c'' IN f' /\ c' SUBSET c''` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:30953:       [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:30954:      MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-30955-      DISCH_THEN(X_CHOOSE_THEN `c':real^N->bool` STRIP_ASSUME_TAC)] THEN
hol-light-20190729/Multivariate/topology.ml-30956-    SUBGOAL_THEN `?p:real^N. p IN c' /\ ~(p IN c)` STRIP_ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:30957:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-30958-    SUBGOAL_THEN `open_in (subtopology euclidean v) (v DIFF c:real^N->bool)`
##############################################
hol-light-20190729/Multivariate/topology.ml-30967-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `t:real^N->bool` THEN
hol-light-20190729/Multivariate/topology.ml:30968:    STRIP_TAC THEN REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-30969-    X_GEN_TAC `d:real^N->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30973-    DISCH_THEN(MP_TAC o SPEC `(c':real^N->bool),(d:real^N->bool)`) THEN
hol-light-20190729/Multivariate/topology.ml:30974:    ASM_SIMP_TAC[IN] THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/topology.ml-30975-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-30985-  EXISTS_TAC `fo UNION fc:(real^N->bool)->bool` THEN
hol-light-20190729/Multivariate/topology.ml:30986:  ASM_REWRITE_TAC[COUNTABLE_UNION] THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-30987-
##############################################
hol-light-20190729/Multivariate/topology.ml-31007-    ANTS_TAC THENL [ASM_MESON_TAC[UNIONS_0; SUBSET]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:31008:    MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-31009-
##############################################
hol-light-20190729/Multivariate/topology.ml-31044-    CONJ_TAC THEN MATCH_MP_TAC INTERS_SUBSET THEN
hol-light-20190729/Multivariate/topology.ml:31045:    (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/topology.ml-31046-    ASM_MESON_TAC[OPEN_IN_IMP_SUBSET; CLOSED_IN_IMP_SUBSET; SUBSET]]]);;
##############################################
hol-light-20190729/Multivariate/topology.ml-31068-    ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:31069:     [ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-31070-      ASM_MESON_TAC[INTERS_0];
hol-light-20190729/Multivariate/topology.ml:31071:      MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/topology.ml-31072-
##############################################
hol-light-20190729/Multivariate/topology.ml-31168-      REWRITE_TAC[linseg; less] THEN UNDISCH_TAC `woset(w:A#A->bool)` THEN
hol-light-20190729/Multivariate/topology.ml:31169:      REWRITE_TAC[woset] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-31170-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `a:A` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml-31171-      MATCH_MP_TAC(TAUT `p /\ (p ==> q) ==> p /\ q`) THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:31172:       [ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-31173-      X_GEN_TAC `b:A` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-31417-    SUBGOAL_THEN `t = {x | x IN v /\ (g':real^N->real^M) x IN s}`
hol-light-20190729/Multivariate/topology.ml:31418:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-31419-    MATCH_MP_TAC CONTINUOUS_BOREL_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-31449-          HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:31450:  RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-31451-
##############################################
hol-light-20190729/Multivariate/topology.ml-31481-    SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:31482:     [REWRITE_TAC[PASTECART_IN_PCROSS] THEN ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/topology.ml-31483-    SUBGOAL_THEN `t = {y | y IN (:real^N) /\
##############################################
hol-light-20190729/Multivariate/topology.ml-31485-    SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:31486:     [REWRITE_TAC[PASTECART_IN_PCROSS] THEN ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/topology.ml-31487-  MATCH_MP_TAC CONTINUOUS_BOREL_PREIMAGE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-31509-    ASM_SIMP_TAC[GDELTA_IMP_BOREL];
hol-light-20190729/Multivariate/topology.ml:31510:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:31511:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-31512-    FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/Multivariate/topology.ml-31513-      CONTINUOUS_ON_SUBSET)) THEN SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:31514:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-31515-
##############################################
hol-light-20190729/Multivariate/topology.ml-32038-      REWRITE_TAC[SETDIST_POS_LT; SETDIST_EQ_0_SING] THEN
hol-light-20190729/Multivariate/topology.ml:32039:      ASM_SIMP_TAC[CLOSURE_CLOSED; GSYM OPEN_CLOSED] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-32040-    GEN_REWRITE_TAC LAND_CONV [SWAP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-32277-      ASM_SIMP_TAC[COMPACT_IMP_CLOSED] THEN
hol-light-20190729/Multivariate/topology.ml:32278:      ANTS_TAC THENL [ASM SET_TAC[]; MESON_TAC[]];
hol-light-20190729/Multivariate/topology.ml-32279-      REWRITE_TAC[SKOLEM_THM; FORALL_AND_THM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-32284-       [SUBGOAL_THEN `?n. x IN (c:num->real^N->bool) n` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:32285:         [ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/topology.ml-32286-        SUBGOAL_THEN `?n. x IN (d:num->real^N->bool) n` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:32287:         [ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/topology.ml-32288-      REWRITE_TAC[EVENTUALLY_SEQUENTIALLY] THEN MATCH_MP_TAC MONO_EXISTS THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-32290-         `!m n. m <= n ==> (c:num->real^N->bool) m SUBSET c n`
hol-light-20190729/Multivariate/topology.ml:32291:        MP_TAC THENL [ALL_TAC; ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-32292-        SUBGOAL_THEN
hol-light-20190729/Multivariate/topology.ml-32293-         `!m n. m <= n ==> (d:num->real^N->bool) m SUBSET d n`
hol-light-20190729/Multivariate/topology.ml:32294:        MP_TAC THENL [ALL_TAC; ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/topology.ml-32295-      MATCH_MP_TAC TRANSITIVE_STEPWISE_LE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-32367-   [SUBGOAL_THEN `s = {x | (f:real^M->real^N) x IN IMAGE f s}`
hol-light-20190729/Multivariate/topology.ml:32368:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-32369-    MATCH_MP_TAC BAIRE_INDICATOR_CONTINUOUS_PREIMAGE_UNIV THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-32376-     `IMAGE (f:real^M->real^N) s = IMAGE f UNIV INTER {x | g x IN s}`
hol-light-20190729/Multivariate/topology.ml:32377:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-32378-    MATCH_MP_TAC BAIRE_INDICATOR_INTER THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-32391-  REPEAT STRIP_TAC THEN ASM_CASES_TAC `k = 0` THENL
hol-light-20190729/Multivariate/topology.ml:32392:   [ASM_REWRITE_TAC[BAIRE0_INDICATOR] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-32393-    MATCH_MP_TAC BAIRE_INDICATOR_INJECTIVE_LINEAR_IMAGE THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-32526-    ASM_REWRITE_TAC[GSYM CONJ_ASSOC] THEN
hol-light-20190729/Multivariate/topology.ml:32527:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-32528-    ONCE_REWRITE_TAC[COUNTABLE_INTERSECTION_OF_COMPLEMENT] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-32594-      ASM_REWRITE_TAC[CONJ_ASSOC; SKOLEM_THM] THEN
hol-light-20190729/Multivariate/topology.ml:32595:      ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[FORALL_AND_THM]] THEN
hol-light-20190729/Multivariate/topology.ml-32596-      DISCH_THEN(X_CHOOSE_THEN `v:num->real^N->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-32611-       [SUBGOAL_THEN `(t:num->real^N->bool) N SUBSET t m` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:32612:         [ALL_TAC; ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-32613-        SUBGOAL_THEN `(u:num->real^N->bool) N SUBSET u m` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:32614:         [ALL_TAC; ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/topology.ml-32615-      UNDISCH_TAC `N:num <= m` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-32699-          ASM_SIMP_TAC[CLOSURE_CLOSED; GSYM OPEN_CLOSED] THEN
hol-light-20190729/Multivariate/topology.ml:32700:          ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-32701-        GEN_REWRITE_TAC LAND_CONV [SWAP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-32847- (ASM_CASES_TAC `u = (:real^N)` THENL
hol-light-20190729/Multivariate/topology.ml:32848:   [EXISTS_TAC `(:real^M)` THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-32849-    MATCH_MP_TAC COUNTABLE_UNION_OF_INC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-32871-      REWRITE_TAC[SETDIST_POS_LT; SETDIST_EQ_0_SING] THEN
hol-light-20190729/Multivariate/topology.ml:32872:      ASM_SIMP_TAC[CLOSURE_CLOSED; GSYM OPEN_CLOSED] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-32873-    GEN_REWRITE_TAC LAND_CONV [SWAP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-32921-             ((g:num->real^M->real^N) n)`;
hol-light-20190729/Multivariate/topology.ml:32922:            `{x:real^N | x$1 < e}`]) THEN
hol-light-20190729/Multivariate/topology.ml-32923-    REWRITE_TAC[OPEN_HALFSPACE_COMPONENT_LT; ARITH_RULE `1 <= SUC n`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33057-       [SUBGOAL_THEN `(x:real^N) IN UNIONS {y n | n IN (:num)}` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:33058:         [ASM_REWRITE_TAC[] THEN ASM SET_TAC[]; ALL_TAC];
hol-light-20190729/Multivariate/topology.ml-33059-        SUBGOAL_THEN `(x:real^N) IN UNIONS {z n | n IN (:num)}` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:33060:         [ASM_REWRITE_TAC[] THEN ASM SET_TAC[]; ALL_TAC]] THEN
hol-light-20190729/Multivariate/topology.ml-33061-      SIMP_TAC[UNIONS_GSPEC; IN_ELIM_THM; EVENTUALLY_SEQUENTIALLY;
##############################################
hol-light-20190729/Multivariate/topology.ml-33065-       [SUBGOAL_THEN `(y:num->real^N->bool) N SUBSET y m` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:33066:         [ALL_TAC; ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-33067-        SUBGOAL_THEN `(z:num->real^N->bool) N SUBSET z m` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:33068:         [ALL_TAC; ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/topology.ml-33069-      UNDISCH_TAC `N:num <= m` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33086-      DISCH_THEN(MP_TAC o MATCH_MP MONO_FORALL) THEN
hol-light-20190729/Multivariate/topology.ml:33087:      ASM_SIMP_TAC[COMPACT_IMP_CLOSED; SKOLEM_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-33088-      SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33122-      DISCH_THEN(MP_TAC o MATCH_MP MONO_FORALL) THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:33123:       [ASM SET_TAC[]; REWRITE_TAC[SKOLEM_THM; FORALL_AND_THM]] THEN
hol-light-20190729/Multivariate/topology.ml-33124-      DISCH_THEN(X_CHOOSE_THEN `w:num->real^N->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33126-      ASM_REWRITE_TAC[o_THM] THEN
hol-light-20190729/Multivariate/topology.ml:33127:      REWRITE_TAC[indicator] THEN ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/topology.ml-33128-  REPEAT STRIP_TAC THEN EQ_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33138-  SUBGOAL_THEN `!x. (g:real^M->real^N) x IN ball(vec 0,&1)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:33139:   [EXPAND_TAC "g" THEN REWRITE_TAC[o_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-33140-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33233-    SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:33234:     [EXPAND_TAC "g" THEN REWRITE_TAC[o_THM] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-33235-      FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33265-      `~(c = 0) ==> (x <= c - 1 <=> x < c)`] THEN
hol-light-20190729/Multivariate/topology.ml:33266:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-33267-    DISCH_THEN(REPEAT_TCL CHOOSE_THEN (SUBST_ALL_TAC o SYM))] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33313-      SUBGOAL_THEN `x IN {x | x IN s /\ (f:real^M->real^N) x IN u(m:num)}`
hol-light-20190729/Multivariate/topology.ml:33314:      MP_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[IN_INTER]]];
hol-light-20190729/Multivariate/topology.ml-33315-    X_GEN_TAC `x:real^M` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33323-      SUBGOAL_THEN `x IN {x | x IN s /\ (f:real^M->real^N) x IN u(n:num)}`
hol-light-20190729/Multivariate/topology.ml:33324:      MP_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[IN_INTER]];
hol-light-20190729/Multivariate/topology.ml-33325-      REWRITE_TAC[UNIONS_GSPEC; IN_ELIM_THM; IN_UNIV]] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33333-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [pairwise]) THEN
hol-light-20190729/Multivariate/topology.ml:33334:      ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-33335-      REWRITE_TAC[COND_RAND; COND_RATOR]] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33338-    SUBGOAL_THEN `(f:real^M->real^N) x IN u(n:num)` MP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:33339:     [ASM SET_TAC[]; EXPAND_TAC "u"] THEN
hol-light-20190729/Multivariate/topology.ml-33340-    COND_CASES_TAC THEN ASM_REWRITE_TAC[IN_BALL; NOT_IN_EMPTY] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33448-      EXISTS_TAC `s INTER u:real^M->bool` THEN
hol-light-20190729/Multivariate/topology.ml:33449:      ASM_SIMP_TAC[OPEN_IN_OPEN_INTER; IN_INTER] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-33450-      GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33458-      RULE_ASSUM_TAC(REWRITE_RULE[OPEN_IN_OPEN]) THEN
hol-light-20190729/Multivariate/topology.ml:33459:      REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-33460-    ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33463-    EXISTS_TAC `w UNION r:real^M->bool` THEN
hol-light-20190729/Multivariate/topology.ml:33464:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-33465-    MATCH_MP_TAC FSIGMA_UNION THEN ASM_SIMP_TAC[OPEN_IMP_FSIGMA] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33568-         [SUBGOAL_THEN `(x:real^N) IN u` ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:33569:           [ASM SET_TAC[]; ASM_REWRITE_TAC[indicator; DROP_VEC]] THEN
hol-light-20190729/Multivariate/topology.ml-33570-          CONV_TAC REAL_RAT_REDUCE_CONV THEN REWRITE_TAC[real_pow] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33579-         [SUBGOAL_THEN `~((x:real^N) IN u)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/topology.ml:33580:           [ASM SET_TAC[]; ASM_REWRITE_TAC[indicator; DROP_VEC]] THEN
hol-light-20190729/Multivariate/topology.ml-33581-          CONV_TAC REAL_RAT_REDUCE_CONV THEN REWRITE_TAC[real_pow] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33664-    ASM_REWRITE_TAC[] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/topology.ml:33665:     [REWRITE_TAC[GSYM REAL_NOT_LT] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-33666-    DISCH_THEN(X_CHOOSE_THEN `u:real^N->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33673-      REWRITE_TAC[DROP_VEC; REAL_MUL_LZERO; REAL_ABS_NUM; REAL_LT_01] THEN
hol-light-20190729/Multivariate/topology.ml:33674:      REWRITE_TAC[REAL_MUL_LID; GSYM REAL_NOT_LE] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-33675-      X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/topology.ml-33676-      REWRITE_TAC[NORM_MUL; indicator] THEN
hol-light-20190729/Multivariate/topology.ml:33677:      COND_CASES_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-33678-      ASM_SIMP_TAC[DROP_VEC; VECTOR_MUL_LID]]) in
##############################################
hol-light-20190729/Multivariate/topology.ml-33693-    REWRITE_TAC[GSYM IN_BALL_0] THEN
hol-light-20190729/Multivariate/topology.ml:33694:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-33695-    DISCH_THEN(X_CHOOSE_THEN `g:real^N->real^1` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33705-      {x | x IN (:real^N) /\ g x IN {y | y IN ball(vec 0,&1) /\ h' y IN u}}`
hol-light-20190729/Multivariate/topology.ml:33706:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-33707-    MATCH_MP_TAC FSIGMA_BAIRE_PREIMAGE_OPEN THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33873-     X_GEN_TAC `x:real^M` THEN DISCH_TAC THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:33874:      [ASM SET_TAC[]; EXISTS_TAC `(g:real^M->real^N) x`] THEN
hol-light-20190729/Multivariate/topology.ml-33875-     MATCH_MP_TAC LIM_TRANSFORM_EVENTUALLY THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33878-     DISCH_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:33879:   CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-33880-   SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33882-             ==> ((\n. (h:num->real^M->real^N) n x) --> l) sequentially`
hol-light-20190729/Multivariate/topology.ml:33883:   MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-33884-   REWRITE_TAC[SKOLEM_THM] THEN MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33887-     X_GEN_TAC `k:num` THEN MATCH_MP_TAC BAIRE_SUBSET THEN
hol-light-20190729/Multivariate/topology.ml:33888:     EXISTS_TAC `(u:num->real^M->bool) k` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-33889-     X_GEN_TAC `x:real^M` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33896-      [ASM_SIMP_TAC[EVENTUALLY_TRUE]; FIRST_X_ASSUM MATCH_MP_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:33897:     ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/topology.ml-33898-
##############################################
hol-light-20190729/Multivariate/topology.ml-33915-  EXISTS_TAC `s INTER v UNION (((:real^M) DIFF s) INTER w)` THEN
hol-light-20190729/Multivariate/topology.ml:33916:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-33917-  REPEAT((MATCH_MP_TAC COUNTABLE_UNION_OF_UNION ORELSE
##############################################
hol-light-20190729/Multivariate/topology.ml-33941-     [EXISTS_TAC `{}:real^M->bool`; EXISTS_TAC `(:real^M)`] THEN
hol-light-20190729/Multivariate/topology.ml:33942:    (CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/Multivariate/topology.ml-33943-    MATCH_MP_TAC COUNTABLE_UNION_OF_INC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-33965-          COUNTABLE_SUBSET_NUM; FORALL_IN_IMAGE; CLOSED_IMP_FSIGMA] THEN
hol-light-20190729/Multivariate/topology.ml:33966:        ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-33967-      MP_TAC(GEN `n:num` (ISPECL [`f:real^M->real^N`; `s:real^M->bool`;
##############################################
hol-light-20190729/Multivariate/topology.ml-33972-      EXISTS_TAC `UNIONS {c n | n IN (:num)}:real^M->bool` THEN
hol-light-20190729/Multivariate/topology.ml:33973:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-33974-      MATCH_MP_TAC COUNTABLE_UNION_OF_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-34011-    EXISTS_TAC `UNIONS {c n | n IN (:num)}:real^M->bool` THEN
hol-light-20190729/Multivariate/topology.ml:34012:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-34013-    MATCH_MP_TAC COUNTABLE_UNION_OF_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-34076-    SUBGOAL_THEN `t = {x | x IN v /\ (g':real^N->real^M) x IN s}`
hol-light-20190729/Multivariate/topology.ml:34077:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-34078-    SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-34114-    SUBGOAL_THEN `t = IMAGE (f:real^M->real^N) (UNIONS ss)` SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:34115:     [RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-34116-      REWRITE_TAC[IMAGE_UNIONS]] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-34127-        HOMEOMORPHISM_OF_SUBSETS)) THEN
hol-light-20190729/Multivariate/topology.ml:34128:    RULE_ASSUM_TAC(REWRITE_RULE[homeomorphism]) THEN ASM SET_TAC[]) in
hol-light-20190729/Multivariate/topology.ml-34129-  REPEAT STRIP_TAC THEN EQ_TAC THEN MATCH_MP_TAC lemma THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-34151-    SUBGOAL_THEN `t = {x | x IN v /\ (g':real^N->real^M) x IN s}`
hol-light-20190729/Multivariate/topology.ml:34152:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-34153-
##############################################
hol-light-20190729/Multivariate/topology.ml-34356-   [REWRITE_TAC[GSYM SUBSET_ANTISYM_EQ; UNIONS_SUBSET] THEN
hol-light-20190729/Multivariate/topology.ml:34357:    CONJ_TAC THENL [REWRITE_TAC[FORALL_IN_IMAGE]; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-34358-    ASM_MESON_TAC[OPEN_IN_IMP_SUBSET];
##############################################
hol-light-20190729/Multivariate/topology.ml-34372-    REWRITE_TAC[o_THM; BAIRE_INDICATOR_INTER] THEN
hol-light-20190729/Multivariate/topology.ml:34373:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-34374-    MATCH_MP_TAC COUNTABLE_UNION_OF_INC THEN REWRITE_TAC[o_THM] THEN
hol-light-20190729/Multivariate/topology.ml-34375-    MATCH_MP_TAC BAIRE_MONO THEN EXISTS_TAC `1` THEN ASM_SIMP_TAC[LE_1] THEN
hol-light-20190729/Multivariate/topology.ml:34376:    MATCH_MP_TAC OPEN_IMP_BAIRE1_INDICATOR THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-34377-    REWRITE_TAC[UNIONS_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml:34378:    RULE_ASSUM_TAC(REWRITE_RULE[UNIONS_IMAGE]) THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-34379-
##############################################
hol-light-20190729/Multivariate/topology.ml-34409-                 FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml:34410:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-34411-
##############################################
hol-light-20190729/Multivariate/topology.ml-34419-        FSIGMA_LOCALLY_GEN)) THEN
hol-light-20190729/Multivariate/topology.ml:34420:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:34421:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-34422-    FIRST_X_ASSUM(SUBST1_TAC o SYM) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-34475-        GDELTA_LOCALLY_GEN)) THEN
hol-light-20190729/Multivariate/topology.ml:34476:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:34477:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-34478-    FIRST_X_ASSUM(SUBST1_TAC o SYM) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-34514-  ANTS_TAC THENL [ALL_TAC; MATCH_MP_TAC MONO_EXISTS THEN SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml:34515:  REWRITE_TAC[CONJ_ASSOC] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-34516-  ONCE_REWRITE_TAC[SET_RULE `s DIFF t = s INTER (UNIV DIFF t)`] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-34806-      SUBST1_TAC THENL
hol-light-20190729/Multivariate/topology.ml:34807:       [REWRITE_TAC[INTERS_GSPEC] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-34808-      MATCH_MP_TAC BOREL_INTERS THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-34843-      REWRITE_TAC[SETDIST_POS_LT; SETDIST_EQ_0_SING] THEN
hol-light-20190729/Multivariate/topology.ml:34844:      ASM_SIMP_TAC[CLOSURE_CLOSED; GSYM OPEN_CLOSED] THEN ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-34845-    GEN_REWRITE_TAC LAND_CONV [SWAP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35139-          EXISTS_TAC `(u:num->real^M->bool) m`] THEN
hol-light-20190729/Multivariate/topology.ml:35140:        ASM_REWRITE_TAC[ETA_AX] THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-35141-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35144-       X_GEN_TAC `x:real^M` THEN DISCH_TAC THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:35145:        [ASM SET_TAC[]; EXISTS_TAC `(g:real^M->real^N) x`] THEN
hol-light-20190729/Multivariate/topology.ml-35146-       MATCH_MP_TAC LIM_TRANSFORM_EVENTUALLY THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35149-       DISCH_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:35150:     CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-35151-     SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35153-               ==> ((\n. (h:num->real^M->real^N) n x) --> l) sequentially`
hol-light-20190729/Multivariate/topology.ml:35154:     MP_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-35155-     REWRITE_TAC[SKOLEM_THM] THEN MATCH_MP_TAC MONO_EXISTS THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35159-       X_GEN_TAC `n:num` THEN MATCH_MP_TAC BOREL_MEASURABLE_ON_SUBSET THEN
hol-light-20190729/Multivariate/topology.ml:35160:       EXISTS_TAC `(u:num->real^M->bool) n` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-35161-       X_GEN_TAC `x:real^M` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35168-        [ASM_SIMP_TAC[EVENTUALLY_TRUE]; FIRST_X_ASSUM MATCH_MP_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:35169:       ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/topology.ml-35170-  let version2 = prove
##############################################
hol-light-20190729/Multivariate/topology.ml-35186-     [MATCH_MP_TAC BOREL_BOREL_MEASURABLE_PREIMAGE THEN ASM_REWRITE_TAC[];
hol-light-20190729/Multivariate/topology.ml:35187:      ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:35188:      ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-35189-      MATCH_MP_TAC BOREL_MEASURABLE_ON_SUBSET THEN
hol-light-20190729/Multivariate/topology.ml-35190-      EXISTS_TAC `u:real^M->bool` THEN ASM_REWRITE_TAC[SUBSET_RESTRICT];
hol-light-20190729/Multivariate/topology.ml:35191:      ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:35192:      ASM SET_TAC[]]) in
hol-light-20190729/Multivariate/topology.ml-35193-  REPEAT GEN_TAC THEN ASM_CASES_TAC `t:real^N->bool = {}` THENL
##############################################
hol-light-20190729/Multivariate/topology.ml-35206-  EXISTS_TAC `\x. if x IN u then (g:real^M->real^N) x else c` THEN
hol-light-20190729/Multivariate/topology.ml:35207:  REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-35208-  W(MP_TAC o PART_MATCH (rand o lhand)
##############################################
hol-light-20190729/Multivariate/topology.ml-35217-    X_GEN_TAC `x:real^M` THEN
hol-light-20190729/Multivariate/topology.ml:35218:    REPEAT(COND_CASES_TAC THEN ASM_REWRITE_TAC[]) THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-35219-    MATCH_MP_TAC BOREL_UNION THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35233-  EXISTS_TAC `(h:real^N->real^P) o (f:real^M->real^N)` THEN
hol-light-20190729/Multivariate/topology.ml:35234:  REWRITE_TAC[o_THM] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-35235-  UNDISCH_TAC `(f:real^M->real^N) borel_measurable_on s` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35253-    EXISTS_TAC `\n. (g:num->real^N->real^P) n  o (f:real^M->real^N)` THEN
hol-light-20190729/Multivariate/topology.ml:35254:    ASM_SIMP_TAC[o_THM] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-35255-
##############################################
hol-light-20190729/Multivariate/topology.ml-35426-    s INTER {x | x IN (:real^M) /\ g x IN t}`
hol-light-20190729/Multivariate/topology.ml:35427:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-35428-  MATCH_MP_TAC ANALYTIC_INTER THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35472-     [REWRITE_TAC[SUBSET; IN] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/topology.ml:35473:      MATCH_MP_TAC COMPACT_INTERS THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-35474-      DISCH_THEN(fun th -> GEN_REWRITE_TAC (LAND_CONV o RATOR_CONV) [th])] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35639-        CENTRE_IN_BALL) THEN
hol-light-20190729/Multivariate/topology.ml:35640:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-35641-    FIRST_X_ASSUM(MP_TAC o C AP_THM `b:real^N->bool`)] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35733-      MATCH_MP_TAC HAS_SIZE_IMAGE_INJ THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:35734:      RULE_ASSUM_TAC(REWRITE_RULE[pairwise]) THEN ASM SET_TAC[]]] THEN
hol-light-20190729/Multivariate/topology.ml-35735-  DISCH_THEN(X_CHOOSE_THEN `t:real^M->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35749-    MP_TAC(ISPECL [`x:real^M`;
hol-light-20190729/Multivariate/topology.ml:35750:     `{a:real^M | !i. 1 <= i /\ i <= dimindex(:M) ==> rational(a$i)}`]
hol-light-20190729/Multivariate/topology.ml-35751-        CLOSURE_APPROACHABLE) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35761-    MATCH_MP_TAC(TAUT `r /\ (r ==> p /\ q) ==> p /\ q /\ r`) THEN
hol-light-20190729/Multivariate/topology.ml:35762:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-35763-    DISCH_THEN(ASSUME_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/Multivariate/topology.ml-35871-    MATCH_MP_TAC(SET_RULE `i SUBSET s /\ s DIFF i = s ==> i = {}`) THEN
hol-light-20190729/Multivariate/topology.ml:35872:    CONJ_TAC THENL [REWRITE_TAC[INTERS_IMAGE] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-35873-    REWRITE_TAC[DIFF_INTERS] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35926-    MATCH_MP_TAC INTERS_SUBSET THEN
hol-light-20190729/Multivariate/topology.ml:35927:    REWRITE_TAC[IMAGE_EQ_EMPTY; FORALL_IN_IMAGE] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-35928-
##############################################
hol-light-20190729/Multivariate/topology.ml-35968-  X_GEN_TAC `r:real^N` THEN ASM_CASES_TAC `d:(real^N->bool)->bool = {}` THENL
hol-light-20190729/Multivariate/topology.ml:35969:   [SUBGOAL_THEN `t = (:real^N)` SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-35970-    REWRITE_TAC[IN_UNIV] THEN ONCE_REWRITE_TAC[CONJ_SYM] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-35996-        TRANS_TAC SUBSET_TRANS `closure(t:real^N->bool)`]] THEN
hol-light-20190729/Multivariate/topology.ml:35997:    ASM_REWRITE_TAC[] THEN MATCH_MP_TAC SUBSET_CLOSURE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-35998-    DISCH_THEN(MP_TAC o MATCH_MP (SET_RULE `UNIV SUBSET s ==> ~(s = {})`)) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36122-      STRIP_TAC THENL
hol-light-20190729/Multivariate/topology.ml:36123:       [UNDISCH_TAC `(x:real^M)$m < (y:real^M)$m`;
hol-light-20190729/Multivariate/topology.ml:36124:        UNDISCH_TAC `(y:real^M)$n < (x:real^M)$n`] THEN
hol-light-20190729/Multivariate/topology.ml-36125-      REWRITE_TAC[REAL_NOT_LT] THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36198-    MP_TAC(ISPECL
hol-light-20190729/Multivariate/topology.ml:36199:     [`\x:real^M. x$(SUC m)`;
hol-light-20190729/Multivariate/topology.ml-36200-      `{x | x IN s /\ (f:real^M->real^N) x IN {f z}} INTER
##############################################
hol-light-20190729/Multivariate/topology.ml-36306-    GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV) [SIMPLE_IMAGE] THEN
hol-light-20190729/Multivariate/topology.ml:36307:    MATCH_MP_TAC UNIONS_MONO_IMAGE THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-36308-    TRANS_TAC EQ_TRANS
hol-light-20190729/Multivariate/topology.ml-36309-     `IMAGE (f:real^M->real^N) (UNIONS (IMAGE d (:num)))` THEN
hol-light-20190729/Multivariate/topology.ml:36310:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/topology.ml-36311-    GEN_REWRITE_TAC I [EXTENSION] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36324-    REWRITE_TAC[IMP_IMP] THEN MATCH_MP_TAC WLOG_LT THEN
hol-light-20190729/Multivariate/topology.ml:36325:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-36326-    CONJ_TAC THENL [MESON_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml:36327:    REWRITE_TAC[UNIONS_IMAGE] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/topology.ml-36328-
##############################################
hol-light-20190729/Multivariate/topology.ml-36343-      CONTINUOUS_ON_SUBSET)) THEN
hol-light-20190729/Multivariate/topology.ml:36344:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/topology.ml-36345-
##############################################
hol-light-20190729/Multivariate/topology.ml-36389-  ASM_CASES_TAC `k:real^N->bool = {}` THENL
hol-light-20190729/Multivariate/topology.ml:36390:   [ASM_REWRITE_TAC[] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-36391-  MP_TAC(ISPEC `k:real^N->bool` COUNTABLE_AS_IMAGE) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36399-     [MATCH_MP_TAC OPEN_DIFF THEN
hol-light-20190729/Multivariate/topology.ml:36400:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-36401-      MATCH_MP_TAC CLOSED_UNIONS THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36404-      SIMP_TAC[FINITE_IMAGE; FINITE_NUMSEG_LT];
hol-light-20190729/Multivariate/topology.ml:36405:      EXISTS_TAC `f((a:num->real^N) n):real^N->bool` THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-36406-    REWRITE_TAC[SUBSET; UNIONS_GSPEC; IN_ELIM_THM; IN_DIFF] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36413-      DISCH_THEN(MP_TAC o snd o EQ_IMP_RULE) THEN
hol-light-20190729/Multivariate/topology.ml:36414:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-36415-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `n:num` THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36417-      FIRST_X_ASSUM(MP_TAC o SPEC `(a:num->real^N) n`) THEN
hol-light-20190729/Multivariate/topology.ml:36418:      ANTS_TAC THENL [ASM SET_TAC[]; ASM_MESON_TAC[CLOSURE_SUBSET; SUBSET]];
hol-light-20190729/Multivariate/topology.ml-36419-      GEN_REWRITE_TAC LAND_CONV [num_WOP] THEN
hol-light-20190729/Multivariate/topology.ml:36420:      MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/topology.ml-36421-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36426-    DISCH_THEN(MP_TAC o snd o EQ_IMP_RULE) THEN
hol-light-20190729/Multivariate/topology.ml:36427:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-36428-    DISCH_THEN(X_CHOOSE_TAC `n:num`) THEN
hol-light-20190729/Multivariate/topology.ml-36429-    EXISTS_TAC `e((a:num->real^N) n):real^N->bool` THEN
hol-light-20190729/Multivariate/topology.ml:36430:    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-36431-    REWRITE_TAC[SET_RULE
##############################################
hol-light-20190729/Multivariate/topology.ml-36469-               EXISTS_IN_IMAGE; EXISTS_IN_INSERT; GSYM closed] THEN
hol-light-20190729/Multivariate/topology.ml:36470:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-36471-  DISCH_THEN(X_CHOOSE_THEN `d:(real^N->bool)->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36473-  REPEAT CONJ_TAC THENL
hol-light-20190729/Multivariate/topology.ml:36474:   [REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml:36475:    REWRITE_TAC[FORALL_IN_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-36476-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36525-    ASM_SIMP_TAC[CONTINUOUS_ON_CONST; COND_ID; SUM_DELTA] THEN
hol-light-20190729/Multivariate/topology.ml:36526:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/topology.ml-36527-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36557-    ASM_SIMP_TAC[SETDIST_SING_IN_SET; IN_DIFF; REAL_MUL_LZERO] THEN
hol-light-20190729/Multivariate/topology.ml:36558:    ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-36559-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36569-    DISCH_THEN SUBST1_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/Multivariate/topology.ml:36570:    ASM_REWRITE_TAC[IN_INTER; IN_DIFF; IN_UNION] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-36571-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36585-      ASM_CASES_TAC `(x:real^N) IN u` THEN
hol-light-20190729/Multivariate/topology.ml:36586:      ASM_SIMP_TAC[SETDIST_SING_IN_SET; IN_DIFF] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-36587-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [SUBSET]) THEN
##############################################
hol-light-20190729/Multivariate/topology.ml-36616-    ASM_REWRITE_TAC[IN_ELIM_THM] THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/topology.ml:36617:    MATCH_MP_TAC SETDIST_SING_IN_SET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/topology.ml-36618-    ASM_SIMP_TAC[LIFT_SUM; o_DEF] THEN MATCH_MP_TAC CONTINUOUS_VSUM THEN
##############################################
hol-light-20190729/Multivariate/transcendentals.ml-6266-        MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] CONTINUOUS_ON_SUBSET) THEN
hol-light-20190729/Multivariate/transcendentals.ml:6267:        ASM SET_TAC[];
hol-light-20190729/Multivariate/transcendentals.ml-6268-        FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/transcendentals.ml-6280-        SIMP_TAC[SUBSET; FORALL_IN_IMAGE; IN_INTER; IN_ELIM_THM; IN_DIFF] THEN
hol-light-20190729/Multivariate/transcendentals.ml:6281:        SIMP_TAC[IN_SING; CNJ_EQ_0; IM_CNJ; REAL_NEG_GE0] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/transcendentals.ml-6282-        FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/Multivariate/transcendentals.ml-7186-      REWRITE_TAC[CONTINUOUS_ON_CONST] THEN
hol-light-20190729/Multivariate/transcendentals.ml:7187:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN DISCH_THEN
hol-light-20190729/Multivariate/transcendentals.ml-7188-       (MP_TAC o MATCH_MP HOMOTOPIC_CIRCLEMAPS_IMP_HOMOTOPIC_LOOPS) THEN
##############################################
hol-light-20190729/Multivariate/transcendentals.ml-7395-  REWRITE_TAC[IN_UNIV; ETA_AX] THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/transcendentals.ml:7396:  ABBREV_TAC `h:real^(1,1)finite_sum->complex = \x. lambda i. x$i` THEN
hol-light-20190729/Multivariate/transcendentals.ml:7397:  ABBREV_TAC `k:complex->real^(1,1)finite_sum = \x. lambda i. x$i` THEN
hol-light-20190729/Multivariate/transcendentals.ml-7398-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/transcendentals.ml-7406-                IMAGE (k:complex->real^(1,1)finite_sum) UNIV = UNIV`
hol-light-20190729/Multivariate/transcendentals.ml:7407:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/transcendentals.ml-7408-  MP_TAC(ISPEC `(g:complex->real^N) o (h:real^(1,1)finite_sum->complex)`
##############################################
hol-light-20190729/Multivariate/transcendentals.ml-7472-            else vec 0` THEN
hol-light-20190729/Multivariate/transcendentals.ml:7473:  ABBREV_TAC `h:real^(1,1)finite_sum->complex = \x. lambda i. x$i` THEN
hol-light-20190729/Multivariate/transcendentals.ml:7474:  ABBREV_TAC `k:complex->real^(1,1)finite_sum = \x. lambda i. x$i` THEN
hol-light-20190729/Multivariate/transcendentals.ml-7475-  SUBGOAL_THEN
##############################################
hol-light-20190729/Multivariate/transcendentals.ml-7483-                IMAGE (k:complex->real^(1,1)finite_sum) UNIV = UNIV`
hol-light-20190729/Multivariate/transcendentals.ml:7484:  STRIP_ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/transcendentals.ml-7485-  MP_TAC(ISPEC `(g:complex->real^N) o (h:real^(1,1)finite_sum->complex)`
##############################################
hol-light-20190729/Multivariate/vectors.ml-55-let vector_add = new_definition
hol-light-20190729/Multivariate/vectors.ml:56:  `(vector_add:real^N->real^N->real^N) x y = lambda i. x$i + y$i`;;
hol-light-20190729/Multivariate/vectors.ml-57-
hol-light-20190729/Multivariate/vectors.ml-58-let vector_sub = new_definition
hol-light-20190729/Multivariate/vectors.ml:59:  `(vector_sub:real^N->real^N->real^N) x y = lambda i. x$i - y$i`;;
hol-light-20190729/Multivariate/vectors.ml-60-
hol-light-20190729/Multivariate/vectors.ml-61-let vector_neg = new_definition
hol-light-20190729/Multivariate/vectors.ml:62:  `(vector_neg:real^N->real^N) x = lambda i. --(x$i)`;;
hol-light-20190729/Multivariate/vectors.ml-63-
##############################################
hol-light-20190729/Multivariate/vectors.ml-79-let vector_mul = new_definition
hol-light-20190729/Multivariate/vectors.ml:80:  `((%):real->real^N->real^N) c x = lambda i. c * x$i`;;
hol-light-20190729/Multivariate/vectors.ml-81-
##############################################
hol-light-20190729/Multivariate/vectors.ml-95-let dot = new_definition
hol-light-20190729/Multivariate/vectors.ml:96:  `(x:real^N) dot (y:real^N) = sum(1..dimindex(:N)) (\i. x$i * y$i)`;;
hol-light-20190729/Multivariate/vectors.ml-97-
hol-light-20190729/Multivariate/vectors.ml-98-let DOT_1 = prove
hol-light-20190729/Multivariate/vectors.ml:99: (`(x:real^1) dot (y:real^1) = x$1 * y$1`,
hol-light-20190729/Multivariate/vectors.ml-100-  REWRITE_TAC[dot; DIMINDEX_1; SUM_1]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-102-let DOT_2 = prove
hol-light-20190729/Multivariate/vectors.ml:103: (`(x:real^2) dot (y:real^2) = x$1 * y$1 + x$2 * y$2`,
hol-light-20190729/Multivariate/vectors.ml-104-  REWRITE_TAC[dot; DIMINDEX_2; SUM_2]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-106-let DOT_3 = prove
hol-light-20190729/Multivariate/vectors.ml:107: (`(x:real^3) dot (y:real^3) = x$1 * y$1 + x$2 * y$2 + x$3 * y$3`,
hol-light-20190729/Multivariate/vectors.ml-108-  REWRITE_TAC[dot; DIMINDEX_3; SUM_3]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-110-let DOT_4 = prove
hol-light-20190729/Multivariate/vectors.ml:111: (`(x:real^4) dot (y:real^4) = x$1 * y$1 + x$2 * y$2 + x$3 * y$3 + x$4 * y$4`,
hol-light-20190729/Multivariate/vectors.ml-112-  REWRITE_TAC[dot; DIMINDEX_4; SUM_4]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-144-let VEC_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:145: (`!k i. (vec k :real^N)$i = &k`,
hol-light-20190729/Multivariate/vectors.ml-146-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:147:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !z:real^N. z$i = z$k`
hol-light-20190729/Multivariate/vectors.ml-148-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/vectors.ml-152-let VECTOR_ADD_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:153: (`!x:real^N y i. (x + y)$i = x$i + y$i`,
hol-light-20190729/Multivariate/vectors.ml-154-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:155:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !z:real^N. z$i = z$k`
hol-light-20190729/Multivariate/vectors.ml-156-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/vectors.ml-160-let VECTOR_SUB_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:161: (`!x:real^N y i. (x - y)$i = x$i - y$i`,
hol-light-20190729/Multivariate/vectors.ml-162-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:163:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !z:real^N. z$i = z$k`
hol-light-20190729/Multivariate/vectors.ml-164-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/vectors.ml-168-let VECTOR_NEG_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:169: (`!x:real^N i. (--x)$i = --(x$i)`,
hol-light-20190729/Multivariate/vectors.ml-170-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:171:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !z:real^N. z$i = z$k`
hol-light-20190729/Multivariate/vectors.ml-172-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/vectors.ml-176-let VECTOR_MUL_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:177: (`!c x:real^N i. (c % x)$i = c * x$i`,
hol-light-20190729/Multivariate/vectors.ml-178-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:179:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !z:real^N. z$i = z$k`
hol-light-20190729/Multivariate/vectors.ml-180-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/vectors.ml-184-let COND_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:185: (`(if b then x else y)$i = if b then x$i else y$i`,
hol-light-20190729/Multivariate/vectors.ml-186-  MESON_TAC[]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-393-let VECTOR_ONE = prove
hol-light-20190729/Multivariate/vectors.ml:394: (`!x:real^1. x = lambda i. x$1`,
hol-light-20190729/Multivariate/vectors.ml-395-  SIMP_TAC[CART_EQ; LAMBDA_BETA] THEN MESON_TAC[DIMINDEX_1; LE_ANTISYM]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-399-  EQ_TAC THEN SIMP_TAC[] THEN DISCH_TAC THEN GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:400:  FIRST_X_ASSUM(MP_TAC o SPEC `(x:real^1)$1`) THEN
hol-light-20190729/Multivariate/vectors.ml-401-  REWRITE_TAC[GSYM VECTOR_ONE]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-418-let NORM_REAL = prove
hol-light-20190729/Multivariate/vectors.ml:419: (`!x:real^1. norm(x) = abs(x$1)`,
hol-light-20190729/Multivariate/vectors.ml-420-  REWRITE_TAC[vector_norm; dot; DIMINDEX_1; SUM_SING_NUMSEG;
##############################################
hol-light-20190729/Multivariate/vectors.ml-423-let DIST_REAL = prove
hol-light-20190729/Multivariate/vectors.ml:424: (`!x:real^1 y. dist(x,y) = abs(x$1 - y$1)`,
hol-light-20190729/Multivariate/vectors.ml-425-  SIMP_TAC[dist; NORM_REAL; vector_sub; LAMBDA_BETA; LE_REFL; DIMINDEX_1]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-548-let COMPONENT_LE_NORM = prove
hol-light-20190729/Multivariate/vectors.ml:549: (`!x:real^N i. abs(x$i) <= norm x`,
hol-light-20190729/Multivariate/vectors.ml-550-  REPEAT GEN_TAC THEN SUBGOAL_THEN
hol-light-20190729/Multivariate/vectors.ml:551:  `?k. 1 <= k /\ k <= dimindex(:N) /\ !x:real^N. x$i = x$k`
hol-light-20190729/Multivariate/vectors.ml-552-  STRIP_ASSUME_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-576-let NORM_LE_L1 = prove
hol-light-20190729/Multivariate/vectors.ml:577: (`!x:real^N. norm x <= sum(1..dimindex(:N)) (\i. abs(x$i))`,
hol-light-20190729/Multivariate/vectors.ml-578-  REPEAT GEN_TAC THEN REWRITE_TAC[vector_norm; dot] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-1226-let vsum = new_definition
hol-light-20190729/Multivariate/vectors.ml:1227:  `(vsum:(A->bool)->(A->real^N)->real^N) s f = lambda i. sum s (\x. f(x)$i)`;;
hol-light-20190729/Multivariate/vectors.ml-1228-
##############################################
hol-light-20190729/Multivariate/vectors.ml-1272-let VSUM_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:1273: (`!s f:A->real^N i. vsum s f$i = sum s (\x. f x$i)`,
hol-light-20190729/Multivariate/vectors.ml-1274-  REPEAT GEN_TAC THEN C SUBGOAL_THEN CHOOSE_TAC
hol-light-20190729/Multivariate/vectors.ml:1275:    `?k. 1 <= k /\ k <= dimindex(:N) /\ !z:real^N. z$i = z$k`  THENL
hol-light-20190729/Multivariate/vectors.ml-1276-  [REWRITE_TAC[FINITE_INDEX_INRANGE];
##############################################
hol-light-20190729/Multivariate/vectors.ml-1332-  ONCE_REWRITE_TAC[GSYM VSUM_SUPPORT] THEN
hol-light-20190729/Multivariate/vectors.ml:1333:  AP_THM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/vectors.ml-1334-
##############################################
hol-light-20190729/Multivariate/vectors.ml-1346-        ==> (vsum (u UNION v) f = vsum u f)`,
hol-light-20190729/Multivariate/vectors.ml:1347:  REPEAT STRIP_TAC THEN MATCH_MP_TAC VSUM_SUPERSET THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/vectors.ml-1348-
##############################################
hol-light-20190729/Multivariate/vectors.ml-1352-        ==> (vsum (u UNION v) f = vsum v f)`,
hol-light-20190729/Multivariate/vectors.ml:1353:  REPEAT STRIP_TAC THEN MATCH_MP_TAC VSUM_SUPERSET THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/vectors.ml-1354-
##############################################
hol-light-20190729/Multivariate/vectors.ml-1569-  EXISTS_TAC
hol-light-20190729/Multivariate/vectors.ml:1570:   `sum p (\x:A. sum (1..dimindex(:N)) (\i. abs((f x:real^N)$i)))` THEN
hol-light-20190729/Multivariate/vectors.ml-1571-  CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/vectors.ml-1593-  THENL
hol-light-20190729/Multivariate/vectors.ml:1594:   [EXISTS_TAC `\x. ((f:A->real^N) x)$k`;
hol-light-20190729/Multivariate/vectors.ml:1595:    EXISTS_TAC `\x. --(((f:A->real^N) x)$k)`] THEN
hol-light-20190729/Multivariate/vectors.ml-1596-  (CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/vectors.ml-1897-let BASIS_EXPANSION = prove
hol-light-20190729/Multivariate/vectors.ml:1898: (`!x:real^N. vsum(1..dimindex(:N)) (\i. x$i % basis i) = x`,
hol-light-20190729/Multivariate/vectors.ml-1899-  SIMP_TAC[CART_EQ; VSUM_COMPONENT; VECTOR_MUL_COMPONENT; BASIS_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-2058-let VECTOR_1 = prove
hol-light-20190729/Multivariate/vectors.ml:2059: (`(vector[x]:A^1)$1 = x`,
hol-light-20190729/Multivariate/vectors.ml-2060-  SIMP_TAC[vector; LAMBDA_BETA; DIMINDEX_1; ARITH; LENGTH; EL; HD; TL]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-2085-  EQ_TAC THEN SIMP_TAC[] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:2086:  FIRST_X_ASSUM(MP_TAC o SPEC `(v:A^1)$1`) THEN
hol-light-20190729/Multivariate/vectors.ml-2087-  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-2092-  EQ_TAC THEN SIMP_TAC[] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:2093:  FIRST_X_ASSUM(MP_TAC o SPECL [`(v:A^2)$1`; `(v:A^2)$2`]) THEN
hol-light-20190729/Multivariate/vectors.ml-2094-  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-2100-  FIRST_X_ASSUM(MP_TAC o SPECL
hol-light-20190729/Multivariate/vectors.ml:2101:    [`(v:A^3)$1`; `(v:A^3)$2`; `(v:A^3)$3`]) THEN
hol-light-20190729/Multivariate/vectors.ml-2102-  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-2108-  FIRST_X_ASSUM(MP_TAC o SPECL
hol-light-20190729/Multivariate/vectors.ml:2109:    [`(v:A^4)$1`; `(v:A^4)$2`; `(v:A^4)$3`; `(v:A^4)$4`]) THEN
hol-light-20190729/Multivariate/vectors.ml-2110-  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-2133-let VECTOR_EXPAND_1 = prove
hol-light-20190729/Multivariate/vectors.ml:2134: (`!x:real^1. x = vector[x$1]`,
hol-light-20190729/Multivariate/vectors.ml-2135-  SIMP_TAC[CART_EQ; DIMINDEX_1; FORALL_1; VECTOR_1]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-2137-let VECTOR_EXPAND_2 = prove
hol-light-20190729/Multivariate/vectors.ml:2138: (`!x:real^2. x = vector[x$1;x$2]`,
hol-light-20190729/Multivariate/vectors.ml-2139-  SIMP_TAC[CART_EQ; DIMINDEX_2; FORALL_2; VECTOR_2]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-2141-let VECTOR_EXPAND_3 = prove
hol-light-20190729/Multivariate/vectors.ml:2142: (`!x:real^3. x = vector[x$1;x$2;x$3]`,
hol-light-20190729/Multivariate/vectors.ml-2143-  SIMP_TAC[CART_EQ; DIMINDEX_3; FORALL_3; VECTOR_3]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-2145-let VECTOR_EXPAND_4 = prove
hol-light-20190729/Multivariate/vectors.ml:2146: (`!x:real^4. x = vector[x$1;x$2;x$3;x$4]`,
hol-light-20190729/Multivariate/vectors.ml-2147-  SIMP_TAC[CART_EQ; DIMINDEX_4; FORALL_4; VECTOR_4]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-2655-let matrix_cmul = new_definition
hol-light-20190729/Multivariate/vectors.ml:2656:  `((%%):real->real^N^M->real^N^M) c A = lambda i j. c * A$i$j`;;
hol-light-20190729/Multivariate/vectors.ml-2657-
hol-light-20190729/Multivariate/vectors.ml-2658-let matrix_neg = new_definition
hol-light-20190729/Multivariate/vectors.ml:2659:  `!A:real^N^M. --A = lambda i j. --(A$i$j)`;;
hol-light-20190729/Multivariate/vectors.ml-2660-
hol-light-20190729/Multivariate/vectors.ml-2661-let matrix_add = new_definition
hol-light-20190729/Multivariate/vectors.ml:2662:  `!A:real^N^M B:real^N^M. A + B = lambda i j. A$i$j + B$i$j`;;
hol-light-20190729/Multivariate/vectors.ml-2663-
hol-light-20190729/Multivariate/vectors.ml-2664-let matrix_sub = new_definition
hol-light-20190729/Multivariate/vectors.ml:2665:  `!A:real^N^M B:real^N^M. A - B = lambda i j. A$i$j - B$i$j`;;
hol-light-20190729/Multivariate/vectors.ml-2666-
##############################################
hol-light-20190729/Multivariate/vectors.ml-2683-let transp = new_definition
hol-light-20190729/Multivariate/vectors.ml:2684:  `(transp:real^N^M->real^M^N) A = lambda i j. A$j$i`;;
hol-light-20190729/Multivariate/vectors.ml-2685-
hol-light-20190729/Multivariate/vectors.ml-2686-let row = new_definition
hol-light-20190729/Multivariate/vectors.ml:2687: `(row:num->real^N^M->real^N) i A = lambda j. A$i$j`;;
hol-light-20190729/Multivariate/vectors.ml-2688-
hol-light-20190729/Multivariate/vectors.ml-2689-let column = new_definition
hol-light-20190729/Multivariate/vectors.ml:2690: `(column:num->real^N^M->real^M) j A = lambda i. A$i$j`;;
hol-light-20190729/Multivariate/vectors.ml-2691-
##############################################
hol-light-20190729/Multivariate/vectors.ml-2698-let MATRIX_CMUL_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:2699: (`!c A:real^N^M i. (c %% A)$i$j = c * A$i$j`,
hol-light-20190729/Multivariate/vectors.ml-2700-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:2701:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:M) /\ !A:real^N^M. A$i = A$k`
hol-light-20190729/Multivariate/vectors.ml-2702-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml:2703:  SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$j = z$l`
hol-light-20190729/Multivariate/vectors.ml-2704-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-2707-let MATRIX_ADD_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:2708: (`!A B:real^N^M i j. (A + B)$i$j = A$i$j + B$i$j`,
hol-light-20190729/Multivariate/vectors.ml-2709-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:2710:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:M) /\ !A:real^N^M. A$i = A$k`
hol-light-20190729/Multivariate/vectors.ml-2711-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml:2712:  SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$j = z$l`
hol-light-20190729/Multivariate/vectors.ml-2713-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-2716-let MATRIX_SUB_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:2717: (`!A B:real^N^M i j. (A - B)$i$j = A$i$j - B$i$j`,
hol-light-20190729/Multivariate/vectors.ml-2718-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:2719:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:M) /\ !A:real^N^M. A$i = A$k`
hol-light-20190729/Multivariate/vectors.ml-2720-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml:2721:  SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$j = z$l`
hol-light-20190729/Multivariate/vectors.ml-2722-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-2725-let MATRIX_NEG_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:2726: (`!A:real^N^M i j. (--A)$i$j = --(A$i$j)`,
hol-light-20190729/Multivariate/vectors.ml-2727-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:2728:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:M) /\ !A:real^N^M. A$i = A$k`
hol-light-20190729/Multivariate/vectors.ml-2729-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml:2730:  SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$j = z$l`
hol-light-20190729/Multivariate/vectors.ml-2731-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-2734-let TRANSP_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:2735: (`!A:real^N^M i j. (transp A)$i$j = A$j$i`,
hol-light-20190729/Multivariate/vectors.ml-2736-  REPEAT GEN_TAC THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-2752-let MAT_0_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:2753: (`!i j. (mat 0:real^N^M)$i$j = &0`,
hol-light-20190729/Multivariate/vectors.ml-2754-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:2755:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:M) /\ !A:real^N^M. A$i = A$k`
hol-light-20190729/Multivariate/vectors.ml-2756-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml:2757:  SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$j = z$l`
hol-light-20190729/Multivariate/vectors.ml-2758-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-2761-let MATRIX_ADD_ROW = prove
hol-light-20190729/Multivariate/vectors.ml:2762: (`!X Y:real^M^N i. (X + Y)$i = X$i + Y$i`,
hol-light-20190729/Multivariate/vectors.ml-2763-  REWRITE_TAC[CART_EQ_FULL; VECTOR_ADD_COMPONENT; MATRIX_ADD_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-2765-let MATRIX_SUB_ROW = prove
hol-light-20190729/Multivariate/vectors.ml:2766: (`!X Y:real^M^N i. (X - Y)$i = X$i - Y$i`,
hol-light-20190729/Multivariate/vectors.ml-2767-  REWRITE_TAC[CART_EQ_FULL; VECTOR_SUB_COMPONENT; MATRIX_SUB_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-2769-let MATRIX_NEG_ROW = prove
hol-light-20190729/Multivariate/vectors.ml:2770:  (`!X:real^M^N i. (--X)$i = --(X$i)`,
hol-light-20190729/Multivariate/vectors.ml-2771-  REWRITE_TAC[CART_EQ_FULL; VECTOR_NEG_COMPONENT; MATRIX_NEG_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-2773-let MATRIX_CMUL_ROW = prove
hol-light-20190729/Multivariate/vectors.ml:2774:  (`!c X:real^M^N i. (c %% X)$i = c % X$i`,
hol-light-20190729/Multivariate/vectors.ml-2775-  REWRITE_TAC[CART_EQ_FULL; VECTOR_MUL_COMPONENT; MATRIX_CMUL_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-2777-let MAT_0_ROW = prove
hol-light-20190729/Multivariate/vectors.ml:2778: (`mat 0:real^M^N$i = vec 0`,
hol-light-20190729/Multivariate/vectors.ml-2779-  REWRITE_TAC[CART_EQ_FULL; MAT_0_COMPONENT; VEC_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-2786-  let CART2_EQ_FULL = prove
hol-light-20190729/Multivariate/vectors.ml:2787:   (`!x y:A^M^N. x = y <=> (!i j. x$i$j = y$i$j)`,
hol-light-20190729/Multivariate/vectors.ml-2788-    REWRITE_TAC[CART_EQ_FULL]) in
##############################################
hol-light-20190729/Multivariate/vectors.ml-3245-let MATRIX_MUL_DOT = prove
hol-light-20190729/Multivariate/vectors.ml:3246: (`!A:real^N^M x. A ** x = lambda i. A$i dot x`,
hol-light-20190729/Multivariate/vectors.ml-3247-  REWRITE_TAC[matrix_vector_mul; dot] THEN SIMP_TAC[CART_EQ; LAMBDA_BETA]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-3249-let MATRIX_MUL_VSUM = prove
hol-light-20190729/Multivariate/vectors.ml:3250: (`!A:real^N^M x. A ** x = vsum(1..dimindex(:N)) (\i. x$i % column i A)`,
hol-light-20190729/Multivariate/vectors.ml-3251-  SIMP_TAC[matrix_vector_mul; CART_EQ; VSUM_COMPONENT; LAMBDA_BETA;
##############################################
hol-light-20190729/Multivariate/vectors.ml-3347-let matrix = new_definition
hol-light-20190729/Multivariate/vectors.ml:3348:  `(matrix:(real^M->real^N)->real^M^N) f = lambda i j. f(basis j)$i`;;
hol-light-20190729/Multivariate/vectors.ml-3349-
##############################################
hol-light-20190729/Multivariate/vectors.ml-3473-  ASM_SIMP_TAC[FUN_EQ_THM; CART_EQ; FORALL_1] THEN
hol-light-20190729/Multivariate/vectors.ml:3474:  EXISTS_TAC `(f:real^N->real^N)(basis 1)$1` THEN
hol-light-20190729/Multivariate/vectors.ml-3475-  REWRITE_TAC[VECTOR_MUL_COMPONENT] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-3776-let drop = new_definition
hol-light-20190729/Multivariate/vectors.ml:3777: `(drop:real^1->real) x = x$1`;;
hol-light-20190729/Multivariate/vectors.ml-3778-
hol-light-20190729/Multivariate/vectors.ml-3779-let LIFT_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:3780: (`!x. (lift x)$1 = x`,
hol-light-20190729/Multivariate/vectors.ml-3781-  SIMP_TAC[lift; LAMBDA_BETA; DIMINDEX_1; LE_ANTISYM]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-4042-let LINEAR_LIFT_COMPONENT = prove
hol-light-20190729/Multivariate/vectors.ml:4043: (`!k. linear(\x:real^N. lift(x$k))`,
hol-light-20190729/Multivariate/vectors.ml-4044-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:4045:  SUBGOAL_THEN `?j. 1 <= j /\ j <= dimindex(:N) /\ !z:real^N. z$k = z$j`
hol-light-20190729/Multivariate/vectors.ml-4046-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/Multivariate/vectors.ml-4449-   [DISCH_THEN SUBST1_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:4450:    EXISTS_TAC `(x:real^N)$k` THEN ASM_SIMP_TAC[PUSHIN_DROPOUT];
hol-light-20190729/Multivariate/vectors.ml-4451-    DISCH_THEN(X_CHOOSE_THEN `t:real` SUBST1_TAC) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-4502-    DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/Multivariate/vectors.ml:4503:  MP_TAC(ISPECL [`\i. (x:real^N)$i * (y:real^N)$i`;
hol-light-20190729/Multivariate/vectors.ml-4504-                 `1..dimindex(:N)`;
##############################################
hol-light-20190729/Multivariate/vectors.ml-4666-  STRIP_TAC THEN SUBGOAL_THEN `(x + y:real^N) IN s UNION t` MP_TAC THENL
hol-light-20190729/Multivariate/vectors.ml:4667:   [MATCH_MP_TAC SUBSPACE_ADD THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-4668-    REWRITE_TAC[IN_UNION; DE_MORGAN_THM] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-4696-              FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/Multivariate/vectors.ml:4697:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/vectors.ml-4698-
##############################################
hol-light-20190729/Multivariate/vectors.ml-4921-  CONJ_TAC THENL
hol-light-20190729/Multivariate/vectors.ml:4922:   [AP_TERM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml:4923:    ASM_SIMP_TAC[SPAN_LINEAR_IMAGE] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/vectors.ml-4924-
##############################################
hol-light-20190729/Multivariate/vectors.ml-4936-   (fun th -> ASM_SIMP_TAC[FUN_IN_IMAGE; SPAN_LINEAR_IMAGE; th]) THEN
hol-light-20190729/Multivariate/vectors.ml:4937:  ASM SET_TAC[]);;
hol-light-20190729/Multivariate/vectors.ml-4938-
##############################################
hol-light-20190729/Multivariate/vectors.ml-5097-    ASM_REWRITE_TAC[IN_INSERT; INSERT_SUBSET; FINITE_INSERT] THEN
hol-light-20190729/Multivariate/vectors.ml:5098:    CONJ_TAC THENL [ASM SET_TAC[]; CONV_TAC REAL_RAT_REDUCE_CONV] THEN
hol-light-20190729/Multivariate/vectors.ml-5099-    ASM_SIMP_TAC[VSUM_CLAUSES] THEN
hol-light-20190729/Multivariate/vectors.ml:5100:    COND_CASES_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml-5101-    REWRITE_TAC[VECTOR_ARITH `-- &1 % a + s = vec 0 <=> a = s`] THEN
hol-light-20190729/Multivariate/vectors.ml-5102-    FIRST_X_ASSUM(fun th -> GEN_REWRITE_TAC LAND_CONV [SYM th]) THEN
hol-light-20190729/Multivariate/vectors.ml:5103:    MATCH_MP_TAC VSUM_EQ THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-5104-    MAP_EVERY X_GEN_TAC [`s:real^N->bool`; `u:real^N->real`; `a:real^N`] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-5108-    ASM_SIMP_TAC[VSUM_DELETE; FINITE_DELETE] THEN
hol-light-20190729/Multivariate/vectors.ml:5109:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/vectors.ml-5110-    REWRITE_TAC[real_div] THEN ONCE_REWRITE_TAC[REAL_MUL_SYM] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-5124-    EXISTS_TAC `\v:real^N. if v IN t then u(v) else &0` THEN
hol-light-20190729/Multivariate/vectors.ml:5125:    REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml-5126-    ONCE_REWRITE_TAC[COND_RAND] THEN ONCE_REWRITE_TAC[COND_RATOR] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-5304-    ANTS_TAC THENL
hol-light-20190729/Multivariate/vectors.ml:5305:     [UNDISCH_TAC `~((s:real^N->bool) SUBSET t)` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-5306-      ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-5336-                 FINITE_DIFF] THEN
hol-light-20190729/Multivariate/vectors.ml:5337:    UNDISCH_TAC `~((s:real^N->bool) SUBSET t)` THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-5338-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-5349-               CARD_EQ_0] THEN
hol-light-20190729/Multivariate/vectors.ml:5350:  UNDISCH_TAC `(b:real^N) IN t` THEN ASM SET_TAC[]);;
hol-light-20190729/Multivariate/vectors.ml-5351-
##############################################
hol-light-20190729/Multivariate/vectors.ml-5774-       [MATCH_MP_TAC SPAN_SUBSET_SUBSPACE THEN
hol-light-20190729/Multivariate/vectors.ml:5775:        ASM_REWRITE_TAC[SUBSPACE_SPAN] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-5776-        ASM_REWRITE_TAC[DIM_SPAN; DIM_INSERT; ADD1]]]]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-5818-    REPEAT STRIP_TAC THEN MATCH_MP_TAC SPAN_MUL THEN
hol-light-20190729/Multivariate/vectors.ml:5819:    MATCH_MP_TAC SPAN_SUPERSET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-5820-    REWRITE_TAC[SPAN_0];
##############################################
hol-light-20190729/Multivariate/vectors.ml-6298-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:6299:    FIRST_X_ASSUM(MP_TAC o SPEC `\i. (x:real^N)$i`)] THEN
hol-light-20190729/Multivariate/vectors.ml-6300-  ASM_SIMP_TAC[LAMBDA_BETA; CART_EQ; VEC_COMPONENT]);;
##############################################
hol-light-20190729/Multivariate/vectors.ml-6330-   (X_CHOOSE_THEN `x:real^N` (SUBST1_TAC o SYM))) THEN
hol-light-20190729/Multivariate/vectors.ml:6331:  EXISTS_TAC `(lambda j. if j = i then c + (x:real^N)$i else x$j):real^N` THEN
hol-light-20190729/Multivariate/vectors.ml-6332-  SUBGOAL_THEN `1..dimindex(:N) = i INSERT ((1..dimindex(:N)) DELETE i)`
##############################################
hol-light-20190729/Multivariate/vectors.ml-6508-  REPEAT STRIP_TAC THEN EQ_TAC THENL [REPEAT STRIP_TAC; MESON_TAC[]] THEN
hol-light-20190729/Multivariate/vectors.ml:6509:  ASM METIS_TAC[LINEAR_BIJECTIVE_LEFT_RIGHT_INVERSE]);;
hol-light-20190729/Multivariate/vectors.ml-6510-
##############################################
hol-light-20190729/Multivariate/vectors.ml-6722-let rowvector = new_definition
hol-light-20190729/Multivariate/vectors.ml:6723: `(rowvector:real^N->real^N^1) v = lambda i j. v$j`;;
hol-light-20190729/Multivariate/vectors.ml-6724-
hol-light-20190729/Multivariate/vectors.ml-6725-let columnvector = new_definition
hol-light-20190729/Multivariate/vectors.ml:6726: `(columnvector:real^N->real^1^N) v = lambda i j. v$i`;;
hol-light-20190729/Multivariate/vectors.ml-6727-
##############################################
hol-light-20190729/Multivariate/vectors.ml-6741-let DOT_MATRIX_PRODUCT = prove
hol-light-20190729/Multivariate/vectors.ml:6742: (`!x y:real^N. x dot y = (rowvector x ** columnvector y)$1$1`,
hol-light-20190729/Multivariate/vectors.ml-6743-  REWRITE_TAC[matrix_mul; columnvector; rowvector; dot] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-6802-  X_GEN_TAC `k:num` THEN STRIP_TAC THEN REWRITE_TAC[IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/vectors.ml:6803:  FIRST_X_ASSUM(MP_TAC o AP_TERM `\y:real^N. y$k`) THEN
hol-light-20190729/Multivariate/vectors.ml-6804-  ASM_SIMP_TAC[MATRIX_VECTOR_MUL_COMPONENT; VEC_COMPONENT; row; dot;
##############################################
hol-light-20190729/Multivariate/vectors.ml-6846-     (ISPEC `A:real^M^N` MATRIX_VECTOR_MUL_INJECTIVE_ON_ROWSPACE) THEN
hol-light-20190729/Multivariate/vectors.ml:6847:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/vectors.ml-6848-
##############################################
hol-light-20190729/Multivariate/vectors.ml-7047-  REPEAT STRIP_TAC THEN REWRITE_TAC[column] THEN
hol-light-20190729/Multivariate/vectors.ml:7048:  SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$i = z$l`
hol-light-20190729/Multivariate/vectors.ml-7049-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-7055-let MATRIX_COMPONENT_LE_ONORM = prove
hol-light-20190729/Multivariate/vectors.ml:7056: (`!A:real^N^M i j. abs(A$i$j) <= onorm(\x. A ** x)`,
hol-light-20190729/Multivariate/vectors.ml-7057-  REPEAT GEN_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:7058:  SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:M) /\ !A:real^N^M. A$i = A$k`
hol-light-20190729/Multivariate/vectors.ml-7059-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml:7060:  SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$j = z$l`
hol-light-20190729/Multivariate/vectors.ml-7061-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-7071-let COMPONENT_LE_ONORM = prove
hol-light-20190729/Multivariate/vectors.ml:7072: (`!f:real^M->real^N i j. linear f ==> abs(matrix f$i$j) <= onorm f`,
hol-light-20190729/Multivariate/vectors.ml-7073-  REPEAT STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-7360-    MATCH_MP_TAC SPAN_MUL THEN MATCH_MP_TAC SPAN_SUPERSET THEN
hol-light-20190729/Multivariate/vectors.ml:7361:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/vectors.ml-7362-
##############################################
hol-light-20190729/Multivariate/vectors.ml-7502-    ASM_REWRITE_TAC[IN_UNION] THEN DISCH_THEN(SUBST_ALL_TAC o SYM) THEN
hol-light-20190729/Multivariate/vectors.ml:7503:    ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-7504-    ASM_SIMP_TAC[NORM_MUL; REAL_MUL_LINV; NORM_EQ_0; REAL_ABS_INV;
##############################################
hol-light-20190729/Multivariate/vectors.ml-7644-  EXISTS_TAC `b DELETE (vec 0:real^N)` THEN ASM_REWRITE_TAC[IN_DELETE] THEN
hol-light-20190729/Multivariate/vectors.ml:7645:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml-7646-  MATCH_MP_TAC(TAUT `a /\ (a ==> b) ==> a /\ b`) THEN CONJ_TAC THENL
##############################################
hol-light-20190729/Multivariate/vectors.ml-7717-      MATCH_MP_TAC(SET_RULE `s SUBSET t ==> ~(x IN t) ==> ~(x IN s)`) THEN
hol-light-20190729/Multivariate/vectors.ml:7718:      MATCH_MP_TAC SPAN_MONO THEN ASM SET_TAC[]];
hol-light-20190729/Multivariate/vectors.ml-7719-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-7729-   [SUBGOAL_THEN `(n:real^N) IN span (b UNION ns)` MP_TAC THENL
hol-light-20190729/Multivariate/vectors.ml:7730:     [MATCH_MP_TAC SPAN_SUPERSET THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-7731-      ASM_REWRITE_TAC[] THEN SPEC_TAC(`n:real^N`,`n:real^N`) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-7738-    REWRITE_TAC[SET_RULE `(\y. orthogonal n y) = {y | orthogonal n y}`] THEN
hol-light-20190729/Multivariate/vectors.ml:7739:    REWRITE_TAC[SUBSPACE_ORTHOGONAL_TO_VECTOR] THEN ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/vectors.ml-7740-
##############################################
hol-light-20190729/Multivariate/vectors.ml-7946-    REWRITE_TAC[SYM(ASSUME `span c:real^N->bool = t`)] THEN
hol-light-20190729/Multivariate/vectors.ml:7947:    MATCH_MP_TAC SPAN_MONO THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-7948-    UNDISCH_THEN `span b:real^M->bool = s` (SUBST1_TAC o SYM) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-7960-    ASM_SIMP_TAC[pairwise; ORTHOGONAL_CLAUSES] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/vectors.ml:7961:     [REPEAT STRIP_TAC THEN REWRITE_TAC[ORTHOGONAL_MUL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-7962-      REPEAT(DISCH_THEN SUBST1_TAC) THEN ASM_SIMP_TAC[NORM_MUL] THEN
hol-light-20190729/Multivariate/vectors.ml:7963:      MATCH_MP_TAC SUM_EQ THEN ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/vectors.ml-7964-
##############################################
hol-light-20190729/Multivariate/vectors.ml-7996-    REWRITE_TAC[SYM(ASSUME `span c:real^N->bool = t`)] THEN
hol-light-20190729/Multivariate/vectors.ml:7997:    AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-7998-    REWRITE_TAC[SYM(ASSUME `span c:real^N->bool = t`)] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8000-    REWRITE_TAC[SYM(ASSUME `span b:real^M->bool = s`)] THEN
hol-light-20190729/Multivariate/vectors.ml:8001:    AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-8002-    UNDISCH_THEN `span b:real^M->bool = s` (SUBST1_TAC o SYM) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8014-    ASM_SIMP_TAC[pairwise; ORTHOGONAL_CLAUSES] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/vectors.ml:8015:     [REPEAT STRIP_TAC THEN REWRITE_TAC[ORTHOGONAL_MUL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-8016-      REPEAT(DISCH_THEN SUBST1_TAC) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8030-    ASM_SIMP_TAC[pairwise; ORTHOGONAL_CLAUSES] THEN ANTS_TAC THENL
hol-light-20190729/Multivariate/vectors.ml:8031:     [REPEAT STRIP_TAC THEN REWRITE_TAC[ORTHOGONAL_MUL] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-8032-      REPEAT(DISCH_THEN SUBST1_TAC) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8100-  REPEAT STRIP_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:8101:  EXISTS_TAC `(\x. lambda i. x$i):real^M->real^N` THEN
hol-light-20190729/Multivariate/vectors.ml:8102:  EXISTS_TAC `(\x. lambda i. x$i):real^N->real^M` THEN
hol-light-20190729/Multivariate/vectors.ml-8103-  SIMP_TAC[vector_norm; dot; LAMBDA_BETA] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8118-let SUBSPACE_SPECIAL_HYPERPLANE = prove
hol-light-20190729/Multivariate/vectors.ml:8119: (`!k. subspace {x:real^N | x$k = &0}`,
hol-light-20190729/Multivariate/vectors.ml-8120-  SIMP_TAC[subspace; IN_ELIM_THM; VEC_COMPONENT;
##############################################
hol-light-20190729/Multivariate/vectors.ml-8174-   [TRANS_TAC EQ_TRANS `span(s:real^N->bool)` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/vectors.ml:8175:     [AP_TERM_TAC THEN ASM SET_TAC[]; ASM_MESON_TAC[SPAN_OF_SUBSPACE]];
hol-light-20190729/Multivariate/vectors.ml-8176-    STRIP_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8204-     [SET_RULE `s UNION {a} = a INSERT s`]) THEN
hol-light-20190729/Multivariate/vectors.ml:8205:    REWRITE_TAC[PAIRWISE_INSERT] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-8206-    DISCH_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8238-    MAXIMAL_INDEPENDENT_SUBSET_EXTEND) THEN
hol-light-20190729/Multivariate/vectors.ml:8239:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml-8240-  DISCH_THEN(X_CHOOSE_THEN `w:real^M->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8319-             ASSUME `linear(f:real^M->real^N)`] THEN
hol-light-20190729/Multivariate/vectors.ml:8320:    REWRITE_TAC[VECTOR_MUL_EQ_0] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-8321-    SUBGOAL_THEN `independent(IMAGE (f:real^M->real^N) (w DIFF v))`
##############################################
hol-light-20190729/Multivariate/vectors.ml-8350-    MAXIMAL_INDEPENDENT_SUBSET_EXTEND) THEN
hol-light-20190729/Multivariate/vectors.ml:8351:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml-8352-  DISCH_THEN(X_CHOOSE_THEN `c:real^N->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8354-    MAXIMAL_INDEPENDENT_SUBSET_EXTEND) THEN
hol-light-20190729/Multivariate/vectors.ml:8355:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml-8356-  DISCH_THEN(X_CHOOSE_THEN `d:real^N->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8367-      MP_TAC(ISPECL [`b:real^N->bool`; `c DELETE (x:real^N)`] SPAN_MONO) THEN
hol-light-20190729/Multivariate/vectors.ml:8368:      ASM SET_TAC[]];
hol-light-20190729/Multivariate/vectors.ml-8369-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8388-    MAP_EVERY EXISTS_TAC [`x:real^N`; `vec 0:real^N`] THEN
hol-light-20190729/Multivariate/vectors.ml:8389:    ASM_SIMP_TAC[SUBSPACE_0; VECTOR_ADD_RID] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-8390-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
hol-light-20190729/Multivariate/vectors.ml-8391-    MAP_EVERY EXISTS_TAC [`vec 0:real^N`; `x:real^N`] THEN
hol-light-20190729/Multivariate/vectors.ml:8392:    ASM_SIMP_TAC[SUBSPACE_0; VECTOR_ADD_LID] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-8393-    MAP_EVERY X_GEN_TAC [`x:real^N`; `y:real^N`] THEN STRIP_TAC THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8397-    REWRITE_TAC[SUBSET_UNION] THEN REWRITE_TAC[SUBSET] THEN
hol-light-20190729/Multivariate/vectors.ml:8398:    DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-8399-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8418-    REPEAT STRIP_TAC THEN MATCH_MP_TAC SUBSPACE_MUL THEN
hol-light-20190729/Multivariate/vectors.ml:8419:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-8420-    ALL_TAC] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8436-  SUBGOAL_THEN `!v:real^N. v IN (c DIFF b) ==> a v = &0` ASSUME_TAC THENL
hol-light-20190729/Multivariate/vectors.ml:8437:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml-8438-  MP_TAC(ISPEC `d:real^N->bool` INDEPENDENT_EXPLICIT) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8442-   (fun th -> GEN_REWRITE_TAC (LAND_CONV o LAND_CONV o ONCE_DEPTH_CONV) [th])
hol-light-20190729/Multivariate/vectors.ml:8443:  THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml:8444:  ANTS_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/vectors.ml-8445-  ASM_SIMP_TAC[VSUM_UNION; FINITE_DIFF; INDEPENDENT_IMP_FINITE;
##############################################
hol-light-20190729/Multivariate/vectors.ml-8495-    SUBGOAL_THEN `(f:real^M->real^N) x IN span(IMAGE f c)` MP_TAC THENL
hol-light-20190729/Multivariate/vectors.ml:8496:     [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml-8497-    ASM_SIMP_TAC[SPAN_LINEAR_IMAGE; IN_IMAGE; LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8551-  MATCH_MP_TAC SUBSET_ANTISYM THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/vectors.ml:8552:   [MATCH_MP_TAC SPAN_MONO THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/vectors.ml-8553-  MATCH_MP_TAC SPAN_SUBSET_SUBSPACE THEN REWRITE_TAC[SUBSPACE_SPAN] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8581-    X_GEN_TAC `j:num` THEN STRIP_TAC THEN
hol-light-20190729/Multivariate/vectors.ml:8582:    ASM_CASES_TAC `(x:real^N)$j = &0` THEN
hol-light-20190729/Multivariate/vectors.ml-8583-    ASM_REWRITE_TAC[SPAN_0; VECTOR_MUL_LZERO] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8862-    MATCH_MP_TAC SPAN_SUB THEN CONJ_TAC THEN MATCH_MP_TAC SPAN_SUPERSET THEN
hol-light-20190729/Multivariate/vectors.ml:8863:    ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-8864-    MATCH_MP_TAC SPAN_SUPERSET THEN REWRITE_TAC[IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-8872-    MATCH_MP_TAC SPAN_SUB THEN CONJ_TAC THEN MATCH_MP_TAC SPAN_SUPERSET THEN
hol-light-20190729/Multivariate/vectors.ml:8873:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/vectors.ml-8874-
##############################################
hol-light-20190729/Multivariate/vectors.ml-9474-let infnorm = define
hol-light-20190729/Multivariate/vectors.ml:9475: `infnorm (x:real^N) = sup { abs(x$i) | 1 <= i /\ i <= dimindex(:N) }`;;
hol-light-20190729/Multivariate/vectors.ml-9476-
##############################################
hol-light-20190729/Multivariate/vectors.ml-9543-let COMPONENT_LE_INFNORM = prove
hol-light-20190729/Multivariate/vectors.ml:9544: (`!x:real^N i. 1 <= i /\ i <= dimindex (:N) ==> abs(x$i) <= infnorm x`,
hol-light-20190729/Multivariate/vectors.ml-9545-  REPEAT GEN_TAC THEN REWRITE_TAC[infnorm] THEN
hol-light-20190729/Multivariate/vectors.ml:9546:  MP_TAC(SPEC `{ abs((x:real^N)$i) | 1 <= i /\ i <= dimindex(:N) }`
hol-light-20190729/Multivariate/vectors.ml-9547-              SUP_FINITE) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-9802-     (REWRITE_RULE[IMP_CONJ] COLLINEAR_SUBSET)) THEN
hol-light-20190729/Multivariate/vectors.ml:9803:    ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-9804-    ONCE_REWRITE_TAC[SET_RULE `{a,b,x} = {a,x,b}`] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-10181-  DISCH_THEN(MP_TAC o SPEC
hol-light-20190729/Multivariate/vectors.ml:10182:   `(lambda i. mid ((a:real^N)$i) ((b:real^N)$i)):real^N`) THEN
hol-light-20190729/Multivariate/vectors.ml-10183-  ONCE_REWRITE_TAC[TAUT `a /\ b /\ c <=> ~(a /\ b ==> ~c)`] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-10257-    [FIRST_X_ASSUM(MP_TAC o SPEC
hol-light-20190729/Multivariate/vectors.ml:10258:      `((c:real^N)$i + min ((a:real^N)$i) ((d:real^N)$i)) / &2`) THEN
hol-light-20190729/Multivariate/vectors.ml-10259-     POP_ASSUM MP_TAC THEN REAL_ARITH_TAC;
hol-light-20190729/Multivariate/vectors.ml-10260-     FIRST_X_ASSUM(MP_TAC o SPEC
hol-light-20190729/Multivariate/vectors.ml:10261:      `(max ((b:real^N)$i) ((c:real^N)$i) + (d:real^N)$i) / &2`) THEN
hol-light-20190729/Multivariate/vectors.ml-10262-     POP_ASSUM MP_TAC THEN REAL_ARITH_TAC]));;
##############################################
hol-light-20190729/Multivariate/vectors.ml-10417-    ASM_SIMP_TAC[UNIONS_IMAGE; COUNTABLE_IMAGE; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/vectors.ml:10418:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/vectors.ml-10419-    GEN_TAC THEN DISCH_THEN(ANTE_RES_THEN MP_TAC) THEN
hol-light-20190729/Multivariate/vectors.ml-10420-    FIRST_X_ASSUM(fun th -> GEN_REWRITE_TAC RAND_CONV [GSYM th]) THEN
hol-light-20190729/Multivariate/vectors.ml:10421:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-10422-    DISCH_THEN(X_CHOOSE_THEN `u:(A->bool)->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-10424-    ASM_SIMP_TAC[UNIONS_IMAGE; COUNTABLE_IMAGE; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/vectors.ml:10425:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/vectors.ml-10426-
##############################################
hol-light-20190729/Multivariate/vectors.ml-10436-    ASM_SIMP_TAC[INTERS_IMAGE; COUNTABLE_IMAGE; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/vectors.ml:10437:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/Multivariate/vectors.ml-10438-    GEN_TAC THEN DISCH_THEN(ANTE_RES_THEN MP_TAC) THEN
hol-light-20190729/Multivariate/vectors.ml-10439-    FIRST_X_ASSUM(fun th -> GEN_REWRITE_TAC RAND_CONV [GSYM th]) THEN
hol-light-20190729/Multivariate/vectors.ml:10440:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/Multivariate/vectors.ml-10441-    DISCH_THEN(X_CHOOSE_THEN `u:(A->bool)->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-10443-    ASM_SIMP_TAC[INTERS_IMAGE; COUNTABLE_IMAGE; FORALL_IN_IMAGE] THEN
hol-light-20190729/Multivariate/vectors.ml:10444:    ASM SET_TAC[]]);;
hol-light-20190729/Multivariate/vectors.ml-10445-
##############################################
hol-light-20190729/Multivariate/vectors.ml-10540-  REWRITE_TAC[INFINITE; TAUT `(~p <=> ~q) <=> (p <=> q)`] THEN
hol-light-20190729/Multivariate/vectors.ml:10541:  REPLICATE_TAC 11 (CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/Multivariate/vectors.ml-10542-  REWRITE_TAC[HAS_SIZE] THEN
##############################################
hol-light-20190729/Multivariate/vectors.ml-10823-  SUBGOAL_THEN `!s. IMAGE (f:A->B) (IMAGE g s) = s` ASSUME_TAC THENL
hol-light-20190729/Multivariate/vectors.ml:10824:   [ASM SET_TAC[]; CONJ_TAC THENL [ASM MESON_TAC[]; ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/vectors.ml-10825-
##############################################
hol-light-20190729/Multivariate/wlog.ml-44-    REPEAT(AP_TERM_TAC THEN ABS_TAC) THEN BINOP_TAC THENL
hol-light-20190729/Multivariate/wlog.ml:45:     [ASM_MESON_TAC[COLLINEAR_LINEAR_IMAGE_EQ]; ASM SET_TAC[]]]);;
hol-light-20190729/Multivariate/wlog.ml-46-
##############################################
hol-light-20190729/Multivariate/wlog.ml-63-  let lemma = prove
hol-light-20190729/Multivariate/wlog.ml:64:   (`span {z:real^3 | z$3 = &0} = {z:real^3 | z$3 = &0}`,
hol-light-20190729/Multivariate/wlog.ml-65-    REWRITE_TAC[SPAN_EQ_SELF; subspace; IN_ELIM_THM] THEN
##############################################
hol-light-20190729/Multivariate/wlog.ml-98-  MATCH_MP_TAC LE_TRANS THEN EXISTS_TAC `2` THEN CONJ_TAC THENL
hol-light-20190729/Multivariate/wlog.ml:99:   [MP_TAC(ISPECL [`{z:real^3 | z$3 = &0}`; `(:real^3)`] DIM_EQ_SPAN) THEN
hol-light-20190729/Multivariate/wlog.ml-100-    REWRITE_TAC[SUBSET_UNIV; DIM_UNIV; DIMINDEX_3; lemma] THEN
##############################################
hol-light-20190729/Multivariate/wlog.ml-226-let pad2d3d = new_definition
hol-light-20190729/Multivariate/wlog.ml:227: `(pad2d3d:real^2->real^3) x = lambda i. if i < 3 then x$i else &0`;;
hol-light-20190729/Multivariate/wlog.ml-228-
hol-light-20190729/Multivariate/wlog.ml-229-let FORALL_PAD2D3D_THM = prove
hol-light-20190729/Multivariate/wlog.ml:230: (`!P. (!y:real^3. y$3 = &0 ==> P y) <=> (!x. P(pad2d3d x))`,
hol-light-20190729/Multivariate/wlog.ml-231-  GEN_TAC THEN EQ_TAC THEN REPEAT STRIP_TAC THENL
##############################################
hol-light-20190729/Multivariate/wlog.ml-233-    SIMP_TAC[LAMBDA_BETA; DIMINDEX_3; ARITH; LT_REFL];
hol-light-20190729/Multivariate/wlog.ml:234:    FIRST_X_ASSUM(MP_TAC o SPEC `(lambda i. (y:real^3)$i):real^2`) THEN
hol-light-20190729/Multivariate/wlog.ml-235-    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN
##############################################
hol-light-20190729/Multivariate/wlog_examples.ml-82-  REWRITE_TAC[RIGHT_EXISTS_AND_THM; LEFT_EXISTS_AND_THM; EXISTS_REFL] THEN
hol-light-20190729/Multivariate/wlog_examples.ml:83:  ABBREV_TAC `u = (u2:real^2)$1` THEN
hol-light-20190729/Multivariate/wlog_examples.ml-84-  REWRITE_TAC[REAL_ARITH `x + --y * --y:real = x + y * y`] THEN
##############################################
hol-light-20190729/Multivariate/wlog_examples.ml-156-             DIMINDEX_2; ARITH] THEN
hol-light-20190729/Multivariate/wlog_examples.ml:157:    EXISTS_TAC `--(a$2) / ((b:real^2)$2 - (a:real^2)$2)` THEN
hol-light-20190729/Multivariate/wlog_examples.ml-158-    ASM_SIMP_TAC[REAL_LT_IMP_NZ; REAL_DIV_RMUL;
##############################################
hol-light-20190729/Multivariate/wlog_examples.ml-197-
hol-light-20190729/Multivariate/wlog_examples.ml:198:  SUBGOAL_THEN `affine hull {vec 0,y} = {u:real^2 | u$2 = &0}` SUBST1_TAC THENL
hol-light-20190729/Multivariate/wlog_examples.ml-199-   [MATCH_MP_TAC HULL_UNIQUE THEN
##############################################
hol-light-20190729/Multivariate/wlog_examples.ml-224-  REWRITE_TAC[IN_ELIM_THM] THEN
hol-light-20190729/Multivariate/wlog_examples.ml:225:  FIRST_ASSUM(MP_TAC o SPEC `(a:real^2)$2` o MATCH_MP (REAL_ARITH
hol-light-20190729/Multivariate/wlog_examples.ml-226-   `b' = --b ==> !a. a <= &0 /\ &0 <= b \/ a <= &0 /\ &0 <= b' \/
##############################################
hol-light-20190729/Multivariate/wlog_examples.ml-322-      IMAGE f {x | x IN s /\ ~(u(f x) = &0)}`
hol-light-20190729/Multivariate/wlog_examples.ml:323:    SUBST1_TAC THENL [ASM SET_TAC[]; CONV_TAC SYM_CONV] THEN
hol-light-20190729/Multivariate/wlog_examples.ml-324-    SUBGOAL_THEN `FINITE {x | x IN s /\ ~(u((f:real^M->real^N) x) = &0)}`
##############################################
hol-light-20190729/Multivariate/wlog_examples.ml-535-  EXISTS_TAC `vec 0:real^3` THEN REWRITE_TAC[VECTOR_SUB_RZERO] THEN
hol-light-20190729/Multivariate/wlog_examples.ml:536:  SUBGOAL_THEN `~((w:real^3)$3 = &0)` ASSUME_TAC THENL
hol-light-20190729/Multivariate/wlog_examples.ml-537-   [DISCH_TAC THEN UNDISCH_TAC `~coplanar{v1:real^3,v2,v3,w}` THEN
##############################################
hol-light-20190729/Multivariate/wlog_examples.ml-547-     [DISCH_THEN(K ALL_TAC) THEN REWRITE_TAC[GT] THEN
hol-light-20190729/Multivariate/wlog_examples.ml:548:      MATCH_MP_TAC LET_TRANS THEN EXISTS_TAC `dim {z:real^3 | z$3 = &0}` THEN
hol-light-20190729/Multivariate/wlog_examples.ml:549:      CONJ_TAC THENL [MATCH_MP_TAC DIM_SUBSET THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/Multivariate/wlog_examples.ml-550-      SIMP_TAC[DIM_SPECIAL_HYPERPLANE; DIMINDEX_3; ARITH] THEN
##############################################
hol-light-20190729/Multivariate/wlog_examples.ml-559-    ALL_TAC] THEN
hol-light-20190729/Multivariate/wlog_examples.ml:560:  SUBGOAL_THEN `affine hull {v1,v2,v3} = {z:real^3 | z$3 = &0}`
hol-light-20190729/Multivariate/wlog_examples.ml-561-  ASSUME_TAC THENL
##############################################
hol-light-20190729/Multivariate/wlog_examples.ml-617-                h % ((w:real^3)$1 % basis 1 + w$2 % basis 2):real^3` THEN
hol-light-20190729/Multivariate/wlog_examples.ml:618:    EXISTS_TAC `h * (w:real^3)$3` THEN
hol-light-20190729/Multivariate/wlog_examples.ml-619-    ASM_SIMP_TAC[REAL_LE_MUL; REAL_LT_IMP_LE] THEN
##############################################
hol-light-20190729/Multivariate/wlog_examples.ml-647-    MAP_EVERY EXISTS_TAC
hol-light-20190729/Multivariate/wlog_examples.ml:648:     [`a + (&1 - (a + b + c + h / (w:real^3)$3)) * a'`;
hol-light-20190729/Multivariate/wlog_examples.ml:649:      `b + (&1 - (a + b + c + h / (w:real^3)$3)) * b'`;
hol-light-20190729/Multivariate/wlog_examples.ml:650:      `c + (&1 - (a + b + c + h / (w:real^3)$3)) * c'`; `h / (w:real^3)$3`] THEN
hol-light-20190729/Multivariate/wlog_examples.ml-651-    ASM_REWRITE_TAC[REAL_ARITH
##############################################
hol-light-20190729/Multivariate/wlog_examples.ml-671-                h % ((w:real^3)$1 % basis 1 + w$2 % basis 2):real^3` THEN
hol-light-20190729/Multivariate/wlog_examples.ml:672:    EXISTS_TAC `h * --((w:real^3)$3)` THEN
hol-light-20190729/Multivariate/wlog_examples.ml-673-    ASM_SIMP_TAC[REAL_LE_MUL; REAL_LT_IMP_LE] THEN
##############################################
hol-light-20190729/Multivariate/wlog_examples.ml-702-    MAP_EVERY EXISTS_TAC
hol-light-20190729/Multivariate/wlog_examples.ml:703:     [`a + (&1 - (a + b + c + h / --((w:real^3)$3))) * a'`;
hol-light-20190729/Multivariate/wlog_examples.ml:704:      `b + (&1 - (a + b + c + h / --((w:real^3)$3))) * b'`;
hol-light-20190729/Multivariate/wlog_examples.ml:705:      `c + (&1 - (a + b + c + h / --((w:real^3)$3))) * c'`;
hol-light-20190729/Multivariate/wlog_examples.ml:706:      `h / --((w:real^3)$3)`] THEN
hol-light-20190729/Multivariate/wlog_examples.ml-707-    ASM_REWRITE_TAC[REAL_ARITH
##############################################
hol-light-20190729/Ntrie/ntrie.ml-173-  REPEAT STRIP_TAC THEN REPEAT COND_CASES_TAC THEN
hol-light-20190729/Ntrie/ntrie.ml:174:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[ARITH_EQ; ARITH_ZERO]);;
hol-light-20190729/Ntrie/ntrie.ml-175-
##############################################
hol-light-20190729/Proofrecording/diffs/tactics.ml-293-
hol-light-20190729/Proofrecording/diffs/tactics.ml:294:let (ASM :(thm list -> tactic)->(thm list -> tactic)) =
hol-light-20190729/Proofrecording/diffs/tactics.ml-295-  fun tltac ths (asl,w as g) -> tltac (map snd asl @ ths) g;;
##############################################
hol-light-20190729/QUICK_REFERENCE.txt-165-CONJ `ASM1 |- a` `ASM2 |- b` gives `ASM1+ASM2 |- a /\ b`
hol-light-20190729/QUICK_REFERENCE.txt:166:CONJUNCT1 `ASM |- a /\ b` gives `ASM1 |- a`
hol-light-20190729/QUICK_REFERENCE.txt:167:CONJUNCT2 `ASM |- a /\ b` gives `ASM1 |- b`
hol-light-20190729/QUICK_REFERENCE.txt-168-CONJ_PAIR th = (CONJUNCT1 th, CONJUNCT2 th)
##############################################
hol-light-20190729/QUICK_REFERENCE.txt-173-MP `ASM1 |- a ==> b` `ASM2 |- a` gives `ASM1+ASM2 |- b`
hol-light-20190729/QUICK_REFERENCE.txt:174:DISCH `a` `ASM,a |- b` gives `ASM |- a ==> b`
hol-light-20190729/QUICK_REFERENCE.txt-175-DISCH_ALL repeats DISCH until there are no more hypotheses.
hol-light-20190729/QUICK_REFERENCE.txt:176:UNDISCH `ASM |- a ==> b` gives `ASM,a |- b`
hol-light-20190729/QUICK_REFERENCE.txt-177-UNDISCH_ALL repeats UNDISCH until the conclusion is not an implication
hol-light-20190729/QUICK_REFERENCE.txt-178-IMP_ANTISYM_RULE `ASM1 |- a ==> b` `ASM2 |- b ==> a` gives `ASM1+ASM2 |- a = b`
hol-light-20190729/QUICK_REFERENCE.txt:179:ADD_ASSUM `a` `ASM |- b` gives `ASM,a |- b`
hol-light-20190729/QUICK_REFERENCE.txt:180:EQ_IMP_RULE `ASM |- (a:bool) = b` gives (`ASM |- a ==> b`, `ASM |- b ==> a`)
hol-light-20190729/QUICK_REFERENCE.txt-181-IMP_TRANS `ASM1 |- a ==> b` `ASM2 |- b ==> c` gives `ASM1+ASM2 |- a ==> c`
##############################################
hol-light-20190729/QUICK_REFERENCE.txt-183-FORALL_DEF: `(!) = \P:A->bool. P = \x. T`
hol-light-20190729/QUICK_REFERENCE.txt:184:SPEC `a` `ASM |- !x.P[x]` gives `ASM |- P[a]`
hol-light-20190729/QUICK_REFERENCE.txt:185:SPECL [`a`;`b`;`c`] `ASM |- !x y z.P[x,y,z]` gives `ASM |- P[a,b,c]`
hol-light-20190729/QUICK_REFERENCE.txt:186:SPEC_VAR `ASM |- !x.P[x]` gives (`x17`, `ASM |- P[x17]`)
hol-light-20190729/QUICK_REFERENCE.txt-187-SPEC_ALL repeats SPEC_VAR until the conclusion is not a "forall", and returns
##############################################
hol-light-20190729/QUICK_REFERENCE.txt-192-ISPECL is like SPECL with type instantiations.
hol-light-20190729/QUICK_REFERENCE.txt:193:GEN `x` `ASM |- P[x]` gives `ASM |- !x. P[x]` (if x is not free in ASM)
hol-light-20190729/QUICK_REFERENCE.txt:194:GENL [`x`;`y`;`z`] `ASM |- P[x,y,z]` gives `ASM |- !x y z. P[x,y,z]`
hol-light-20190729/QUICK_REFERENCE.txt-195-GEN_ALL generalizes over all variables free in the conclusion but not
##############################################
hol-light-20190729/QUICK_REFERENCE.txt-198-EXISTS_DEF: `(?) = \P:A->bool. !Q. (!x. P x ==> Q) ==> Q`
hol-light-20190729/QUICK_REFERENCE.txt:199:EXISTS (`?x. P[x]`,`a`) `ASM |- P[a]` gives `ASM |- ?x. P[x]`
hol-light-20190729/QUICK_REFERENCE.txt:200:SIMPLE_EXISTS `x` `ASM |- P[x]` gives `ASM |- ?x. P[x]`
hol-light-20190729/QUICK_REFERENCE.txt-201-CHOOSE (`x`,`ASM1 |- ?y.P[y]`) `ASM2,P[x] |- a` gives `ASM1+ASM2 |- a`
##############################################
hol-light-20190729/QUICK_REFERENCE.txt-205-OR_DEF: `(\/) = \t1 t2. !t. (t1 ==> t) ==> (t2 ==> t) ==> t`
hol-light-20190729/QUICK_REFERENCE.txt:206:DISJ1 `ASM |- a` `b` gives `ASM |- a \/ b`
hol-light-20190729/QUICK_REFERENCE.txt:207:DISJ2 `a` `ASM |- b` gives `ASM |- a \/ b`
hol-light-20190729/QUICK_REFERENCE.txt-208-DISJ_CASES `ASM1 |- a \/ b` `ASM2,a |- c` `ASM3,b |- c` gives
##############################################
hol-light-20190729/QUICK_REFERENCE.txt-215-NOT_DEF: `(~) = \t. t ==> F`
hol-light-20190729/QUICK_REFERENCE.txt:216:NOT_ELIM `ASM |- ~a` gives `ASM |- a ==> F`
hol-light-20190729/QUICK_REFERENCE.txt:217:NOT_INTRO `ASM |- a ==> F` gives `ASM |- ~a`
hol-light-20190729/QUICK_REFERENCE.txt:218:EQF_INTRO `ASM |- ~a` gives `ASM |- a = F`
hol-light-20190729/QUICK_REFERENCE.txt:219:EQF_ELIM `ASM |- a = F` gives `ASM |- ~a`
hol-light-20190729/QUICK_REFERENCE.txt:220:NEG_DISCH `a` `ASM,a |- F` gives `ASM |- ~a` (if the conclusion of the
hol-light-20190729/QUICK_REFERENCE.txt-221-          initial theorem is not F, then NEG_DISCH acts like DISCH)
hol-light-20190729/QUICK_REFERENCE.txt:222:CONTR `a` `ASM |- F` gives `ASM |- a`
hol-light-20190729/QUICK_REFERENCE.txt-223-
hol-light-20190729/QUICK_REFERENCE.txt-224-EXISTS_UNIQUE_DEF: `(?!) = \P:A->bool. ((?) P) /\ (!x y. ((P x) /\ (P y)) ==> (x = y))`
hol-light-20190729/QUICK_REFERENCE.txt:225:EXISTENCE `ASM |- ?!x. P[x]` gives `ASM |- ?x. P[x]`
hol-light-20190729/QUICK_REFERENCE.txt-226-
##############################################
hol-light-20190729/QUICK_REFERENCE.txt-230-MK_DISJ `ASM1 |- a = b` `ASM2 |- c = d` gives `ASM1,ASM2 |- a \/ c = b \/ d`
hol-light-20190729/QUICK_REFERENCE.txt:231:MK_FORALL `x` `ASM |- a = b` gives `ASM |- (!x.a) = (!x.b)`
hol-light-20190729/QUICK_REFERENCE.txt:232:MK_EXISTS `x` `ASM |- a = b` gives `ASM |- (?x.a) = (?x.b)`
hol-light-20190729/QUICK_REFERENCE.txt-233-
##############################################
hol-light-20190729/QUICK_REFERENCE.txt-374-
hol-light-20190729/QUICK_REFERENCE.txt:375:ASM thlt thl
hol-light-20190729/QUICK_REFERENCE.txt:376:Applies tactic (thlt (asm @ thl)), where asm is the list of assumptions.
hol-light-20190729/QUICK_REFERENCE.txt-377-
##############################################
hol-light-20190729/QUICK_REFERENCE.txt-956-EXISTS_EQUATION `x = a` `ASM,x = a |- P[x]`
hol-light-20190729/QUICK_REFERENCE.txt:957:gives `ASM |- ?x. P[x]`
hol-light-20190729/QUICK_REFERENCE.txt-958-
##############################################
hol-light-20190729/Quaternions/misc.hl-37-let VECTOR_EQ_1 = prove
hol-light-20190729/Quaternions/misc.hl:38: (`!u v:real^1. u = v <=> u$1 = v$1`,
hol-light-20190729/Quaternions/misc.hl-39-  REWRITE_TAC[CART_EQ; DIMINDEX_1; FORALL_1]);;
##############################################
hol-light-20190729/Quaternions/misc.hl-41-let VECTOR_EQ_2 = prove
hol-light-20190729/Quaternions/misc.hl:42: (`!u v:real^2. u = v <=> u$1 = v$1 /\ u$2 = v$2`,
hol-light-20190729/Quaternions/misc.hl-43-  REWRITE_TAC[CART_EQ; DIMINDEX_2; FORALL_2]);;
##############################################
hol-light-20190729/Quaternions/misc.hl-45-let VECTOR_EQ_3 = prove
hol-light-20190729/Quaternions/misc.hl:46: (`!u v:real^3. u = v <=> u$1 = v$1 /\ u$2 = v$2 /\ u$3 = v$3`,
hol-light-20190729/Quaternions/misc.hl-47-  REWRITE_TAC[CART_EQ; DIMINDEX_3; FORALL_3]);;
##############################################
hol-light-20190729/Quaternions/misc.hl-49-let VECTOR_EQ_4 = prove
hol-light-20190729/Quaternions/misc.hl:50: (`!u v:real^4. u = v <=> u$1 = v$1 /\ u$2 = v$2 /\ u$3 = v$3 /\ u$4 = v$4`,
hol-light-20190729/Quaternions/misc.hl-51-  REWRITE_TAC[CART_EQ; DIMINDEX_4; FORALL_4]);;
##############################################
hol-light-20190729/Quaternions/misc.hl-53-let DOT_LBASIS = prove
hol-light-20190729/Quaternions/misc.hl:54: (`!i x:real^N. 1 <= i /\ i <= dimindex(:N) ==> basis i dot x = x$i`,
hol-light-20190729/Quaternions/misc.hl-55-  INTRO_TAC "!i x; ihp" THEN REWRITE_TAC[dot] THEN
hol-light-20190729/Quaternions/misc.hl:56:  TRANS_TAC EQ_TRANS `sum {i} (\j. (basis i:real^N)$j * (x:real^N)$j)` THEN
hol-light-20190729/Quaternions/misc.hl-57-  CONJ_TAC THENL
##############################################
hol-light-20190729/Quaternions/misc.hl-63-let DOT_RBASIS = prove
hol-light-20190729/Quaternions/misc.hl:64: (`!x:real^N i. 1 <= i /\ i <= dimindex(:N) ==> x dot basis i = x$i`,
hol-light-20190729/Quaternions/misc.hl-65-  MESON_TAC[DOT_SYM; DOT_LBASIS]);;
##############################################
hol-light-20190729/Quaternions/qisom.hl-17-let HIM_DEF = new_definition
hol-light-20190729/Quaternions/qisom.hl:18:  `HIm(q:quat) : real^3 = vector[q$2;q$3;q$4]`;;
hol-light-20190729/Quaternions/qisom.hl-19-
##############################################
hol-light-20190729/Quaternions/qisom.hl-86-let HV = new_definition
hol-light-20190729/Quaternions/qisom.hl:87:  `Hv(x:real^3) = quat(&0,x$1,x$2,x$3)`;;
hol-light-20190729/Quaternions/qisom.hl-88-
##############################################
hol-light-20190729/Quaternions/quaternion.hl-35-
hol-light-20190729/Quaternions/quaternion.hl:36:let QUAT_RE_DEF  = new_definition  `Re(x:quat) = x$1`;;
hol-light-20190729/Quaternions/quaternion.hl:37:let QUAT_IM1_DEF = new_definition `Im1(x:quat) = x$2`;;
hol-light-20190729/Quaternions/quaternion.hl:38:let QUAT_IM2_DEF = new_definition `Im2(x:quat) = x$3`;;
hol-light-20190729/Quaternions/quaternion.hl:39:let QUAT_IM3_DEF = new_definition `Im3(x:quat) = x$4`;;
hol-light-20190729/Quaternions/quaternion.hl-40-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-280-  X_GEN_TAC `i:num` THEN STRIP_TAC THEN REWRITE_TAC[GSYM REAL_NOT_LT] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:281:  DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `--(x:real^N $ i)`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-282-  ASM_REWRITE_TAC[REAL_LT_RNEG; REAL_ADD_LID; NOT_EXISTS_THM] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-285-  MATCH_MP_TAC(REAL_ARITH `!b. abs x <= b /\ b <= a ==> ~(a + x < &0)`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:286:  EXISTS_TAC `abs((y - x :real^N)$i)` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-287-  ASM_SIMP_TAC[dist; COMPONENT_LE_NORM] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-954-        GEN_REWRITE_RULE I [LIMPT_INFINITE_OPEN]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:955:  FIRST_X_ASSUM SUBST_ALL_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-956-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-975-  MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] COUNTABLE_SUBSET) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:976:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-977-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-1873-  ASM_CASES_TAC `r = &0` THEN ASM_SIMP_TAC[SPHERE_SING] THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:1874:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-1875-  MATCH_MP_TAC(SET_RULE
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-1927-   [REWRITE_TAC[OPEN_IN_OPEN] THEN EXISTS_TAC `t:real^N->bool` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:1928:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-1929-    REWRITE_TAC[CLOSED_IN_CLOSED] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-1932-    ASM_MESON_TAC[CENTRE_IN_CBALL; SUBSET; REAL_LT_IMP_LE];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:1933:    ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-1934-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-2028-  DISCH_TAC THEN MATCH_MP_TAC(REWRITE_RULE[IMP_CONJ_ALT] BOUNDED_SUBSET) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:2029:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-2030-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-2442-  ASM_SIMP_TAC[ARITH_RULE `SUC d <= n ==> d <= n`] THEN STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:2443:  MP_TAC(SPECL [`\n:num. (x:num->real^N) (r n) $ (SUC d)`; `b:real`]
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-2444-         COMPACT_REAL_LEMMA) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-2450-  MAP_EVERY EXISTS_TAC
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:2451:   [`(lambda k. if k = SUC d then y else (l:real^N)$k):real^N`;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-2452-    `(r:num->num) o (s:num->num)`] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-2940-    ASM_SIMP_TAC[FORALL_IN_IMAGE] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:2941:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-2942-    DISCH_THEN(X_CHOOSE_THEN `f':(real^N->bool)->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-2944-    ASM_SIMP_TAC[FINITE_IMAGE; UNIONS_IMAGE; SUBSET; FORALL_IN_IMAGE] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:2945:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-2946-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [SUBSET_IMAGE]) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-2950-    REWRITE_TAC[SIMPLE_IMAGE; FORALL_IN_IMAGE; OPEN_IN_OPEN; UNIONS_IMAGE] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:2951:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-2952-    ONCE_REWRITE_TAC[TAUT `a /\ b /\ c <=> b /\ a /\ c`] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-3041-  SIMP_TAC[COMPACT_EQ_BOUNDED_CLOSED; CLOSED_INTERS] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:3042:  REPEAT STRIP_TAC THEN MATCH_MP_TAC BOUNDED_INTERS THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-3043-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-3115-    MATCH_MP_TAC OPEN_IN_DIFF THEN ASM_REWRITE_TAC[CLOSED_IN_SING] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:3116:    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-3117-    ASM_SIMP_TAC[SET_RULE `~(a IN s) ==> s DELETE a = s`]]);;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-3315-  SUBGOAL_THEN `?s:real^N->bool. s IN f /\ !t. t IN u ==> s SUBSET t`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:3316:  MP_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-3317-  UNDISCH_TAC `(u:(real^N->bool)->bool) SUBSET f` THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-3320-  MATCH_MP_TAC FINITE_INDUCT_STRONG THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:3321:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-3322-  MAP_EVERY X_GEN_TAC [`t:real^N->bool`; `u:(real^N->bool)->bool`] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-3328-  FIRST_X_ASSUM(MP_TAC o SPECL [`s:real^N->bool`; `t:real^N->bool`]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:3329:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-3330-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-3342-   [ASM_REWRITE_TAC[INTERS_0] THEN SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:3343:    MATCH_MP_TAC BOUNDED_CLOSED_CHAIN THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-3344-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4049-    X_GEN_TAC `x:real^M` THEN STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4050:    FIRST_X_ASSUM(MP_TAC o SPEC `(f:real^M->real^N) x`) THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4051-    DISCH_TAC THEN X_GEN_TAC `x:real^M` THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4102-  ASM_REWRITE_TAC[SUBSET_RESTRICT] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4103:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4104-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4163-                 s INTER t'` SUBST1_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4164:    [ASM SET_TAC []; ASM_MESON_TAC [OPEN_INTER]]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4165-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4178-                 s INTER t'` SUBST1_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4179:    [ASM SET_TAC []; ASM_MESON_TAC [CLOSED_INTER]]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4180-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4264-let CONTINUOUS_LIFT_COMPONENT_COMPOSE = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4265: (`!net f:A->real^N i. f continuous net ==> (\x. lift(f x$i)) continuous net`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4266-  REPEAT GEN_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4267:  SUBGOAL_THEN `linear(\x:real^N. lift (x$i))` MP_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4268-   [REWRITE_TAC[LINEAR_LIFT_COMPONENT]; REWRITE_TAC[GSYM IMP_CONJ_ALT]] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4525-  ASM_SIMP_TAC[OPEN_PCROSS; EXTENSION; FORALL_PASTECART] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4526:  REWRITE_TAC[IN_INTER; PASTECART_IN_PCROSS] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4527-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4627-   `open_in top x ==> x = y ==> open_in top y`)) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4628:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4629-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4658-     `t = IMAGE f {x | x IN s /\ (f:real^M->real^N) x IN t}`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4659:    SUBST1_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4660-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [CONTINUOUS_ON_OPEN]) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4679-      DISCH_THEN(MP_TAC o CONJUNCT2) THEN MATCH_MP_TAC EQ_IMP THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4680:      AP_TERM_TAC THEN ASM SET_TAC[]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4681-    FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [CONTINUOUS_ON_OPEN]) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4698-      REWRITE_TAC[OPEN_IN_OPEN] THEN MATCH_MP_TAC MONO_EXISTS THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4699:      ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4700:      MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4701-    DISCH_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4703-     (fun th -> ASM_REWRITE_TAC[th]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4704:    ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4705-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4715-  EXISTS_TAC `g:real^N->real^M` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4716:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4717-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4734-  (ANTS_TAC THENL [SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4735:  REWRITE_TAC[SUBSET_RESTRICT] THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4736-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4750-   (fun th -> REWRITE_TAC[MATCH_MP CONTINUOUS_ON_OPEN_GEN th])
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4751:  THENL [REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[]; DISCH_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4752-  X_GEN_TAC `v:real^P->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4758-   `open_in top s ==> s = t ==> open_in top t`)) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4759:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4760-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4774-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `g:real^N->real^P` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4775:  DISCH_TAC THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4776-  MATCH_MP_TAC CONTINUOUS_ON_COMPOSE_QUOTIENT THEN MAP_EVERY EXISTS_TAC
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4777-   [`f:real^M->real^N`; `s:real^M->bool`; `u:real^P->bool`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4778:  ASM_SIMP_TAC[SUBSET_REFL] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4779-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ_ALT]
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4799-    {x | x IN s /\ f x IN {x | x IN t /\ g x IN v}}`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4800:  SUBST1_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[SUBSET_RESTRICT]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4801-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4819-      {x | x IN s /\ f x IN {x | x IN t /\ g x IN v}}`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4820:    SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4821-    MATCH_MP_TAC CONTINUOUS_OPEN_IN_PREIMAGE_GEN THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4868-  DISCH_THEN(fun th -> DISCH_TAC THEN MP_TAC th) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4869:  (ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4870-  (MATCH_MP_TAC EQ_IMP THEN BINOP_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4871-    [MATCH_MP_TAC(MESON[] `t = s /\ (P s <=> Q s) ==> (P s <=> Q t)`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4872:     CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[IN_ELIM_THM]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4873-     ALL_TAC]) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4880-   MATCH_MP_TAC CONTINUOUS_CLOSED_IN_PREIMAGE_GEN ORELSE ASM_SIMP_TAC[]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4881:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4882-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4904-    FIRST_X_ASSUM(MP_TAC o SPEC `y:real^N`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4905:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[connected]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4906-    MAP_EVERY EXISTS_TAC [`u:real^M->bool`; `v:real^M->bool`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4907:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4908-    ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4909-  ONCE_REWRITE_TAC[CONJ_ASSOC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4910:  CONJ_TAC THENL [CONJ_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4911-  FIRST_X_ASSUM(fun th ->
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4912-   W(MP_TAC o PART_MATCH (rand o rand) th o snd)) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4913:  (ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4914-  MATCH_MP_TAC(MESON[]
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4916-    ==> open_in top {x | x IN s /\ f x IN IMAGE f u}`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4917:  ASM_SIMP_TAC[OPEN_IN_OPEN_INTER] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4918-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4941-    REWRITE_TAC[SUBSET_RESTRICT];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4942:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4943-    MATCH_MP_TAC QUOTIENT_MAP_RESTRICT THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4946-    FIRST_X_ASSUM(MP_TAC o SPEC `y:real^N`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4947:    ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC EQ_IMP] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4948:    AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4949-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4966-  DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `c:real^M->bool`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4967:  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4968-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4981-  DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `c:real^M->bool`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4982:  ASM_REWRITE_TAC[] THEN MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4983-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-4998-  FIRST_X_ASSUM(MP_TAC o SPEC `IMAGE (f:real^M->real^N) k`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:4999:  ASM_SIMP_TAC[IMAGE_SUBSET] THEN DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5000-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5017-  FIRST_X_ASSUM(MP_TAC o SPEC `IMAGE (f:real^M->real^N) k`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5018:  ASM_SIMP_TAC[IMAGE_SUBSET] THEN DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5019-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5034-  SUBST1_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5035:   [FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5036-    MATCH_MP_TAC OPEN_IN_DIFF THEN REWRITE_TAC[OPEN_IN_REFL] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5055-  SUBST1_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5056:   [FIRST_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5057-    MATCH_MP_TAC CLOSED_IN_DIFF THEN REWRITE_TAC[CLOSED_IN_REFL] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5073-   [FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5074:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5075-    FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5090-   [FIRST_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5091:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5092-    FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5108-   [FIRST_ASSUM(MP_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5109:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5110-    MATCH_MP_TAC CONTINUOUS_OPEN_IN_PREIMAGE_GEN THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5125-   [FIRST_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5126:    REWRITE_TAC[IMAGE_o] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5127-    MATCH_MP_TAC CONTINUOUS_CLOSED_IN_PREIMAGE_GEN THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5140-  EXISTS_TAC `t DIFF IMAGE (f:real^M->real^N) (s DIFF u)` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5141:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5142-  MATCH_MP_TAC CLOSED_IN_DIFF THEN REWRITE_TAC[CLOSED_IN_REFL] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5160-  ASM_SIMP_TAC[CLOSED_IN_DIFF; CLOSED_IN_REFL] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5161:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5162-  DISCH_THEN(X_CHOOSE_THEN `v:real^N->bool` STRIP_ASSUME_TAC) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5163-  SUBGOAL_THEN `IMAGE (f:real^M->real^N) k = t DIFF v` SUBST1_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5164:   [ASM SET_TAC[]; ASM_SIMP_TAC[OPEN_IN_DIFF; OPEN_IN_REFL]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5165-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5176-  EXISTS_TAC `t DIFF IMAGE (f:real^M->real^N) (s DIFF u)` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5177:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5178-  MATCH_MP_TAC OPEN_IN_DIFF THEN REWRITE_TAC[OPEN_IN_REFL] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5196-  ASM_SIMP_TAC[OPEN_IN_DIFF; OPEN_IN_REFL] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5197:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5198-  DISCH_THEN(X_CHOOSE_THEN `v:real^N->bool` STRIP_ASSUME_TAC) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5199-  SUBGOAL_THEN `IMAGE (f:real^M->real^N) k = t DIFF v` SUBST1_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5200:   [ASM SET_TAC[]; ASM_SIMP_TAC[CLOSED_IN_DIFF; CLOSED_IN_REFL]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5201-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5224-     [MATCH_MP_TAC OPEN_IN_UNIONS THEN REWRITE_TAC[FORALL_IN_GSPEC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5225:      ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5226-      REWRITE_TAC[UNIONS_GSPEC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5227:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5228-      REWRITE_TAC[SUBSET; IN_ELIM_THM; RIGHT_AND_EXISTS_THM;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5230-      MAP_EVERY X_GEN_TAC [`x:real^M`; `y:real^N`] THEN STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5231:      FIRST_X_ASSUM(MP_TAC o SPEC `y:real^N`) THEN ASM SET_TAC[]]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5232-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5246-  SUBGOAL_THEN `IMAGE f {x | x IN s /\ (f:real^M->real^N) x IN c} = c`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5247:  ASSUME_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[]] THEN ANTS_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5248-   [FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5258-                 {x | x IN s /\ f x = y}`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5259:   ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5260-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5274-  SUBGOAL_THEN `IMAGE f {x | x IN s /\ (f:real^M->real^N) x IN c} = c`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5275:  ASSUME_TAC THENL [ASM SET_TAC[]; ASM_REWRITE_TAC[]] THEN ANTS_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5276-   [FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5286-                 {x | x IN s /\ f x = y}`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5287:   ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5288-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5307-    REWRITE_TAC[CLOSED_IN_LIMPT] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5308:    CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `y:real^N`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5309-    REWRITE_TAC[LIMPT_SEQUENTIAL_INJ; IN_DELETE] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5329-        FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5330:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5331-        MATCH_MP_TAC COMPACT_SEQUENCE_WITH_LIMIT THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5341-        X_GEN_TAC `p:num` THEN DISCH_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5342:        CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5343-        REWRITE_TAC[IN_INSERT; IN_IMAGE; IN_UNIV] THEN DISJ2_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5366-       (MP_TAC o SPEC `a:real^N`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5367:      ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[COMPACT_EQ_HEINE_BOREL]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5368:      DISCH_THEN MATCH_MP_TAC THEN ASM_REWRITE_TAC[] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5369-      GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5387-        MATCH_MP_TAC OPEN_IN_OPEN_INTER THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5388:        MATCH_MP_TAC OPEN_UNIONS THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5389-        DISCH_THEN(CONJUNCTS_THEN2 ASSUME_TAC MP_TAC) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5393-        ASM_REWRITE_TAC[] THEN REPEAT
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5394:         ((ANTS_TAC THENL [ASM SET_TAC[]; DISCH_TAC]) ORELSE STRIP_TAC)
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5395:        THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5396-        FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [EXTENSION]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5397:        DISCH_THEN(MP_TAC o SPEC `a:real^N`) THEN ASM SET_TAC[]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5398-      GEN_REWRITE_TAC (LAND_CONV o ONCE_DEPTH_CONV) [RIGHT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5403-    DISCH_THEN(MP_TAC o SPEC `IMAGE (vv:real^N->(real^N->bool)) k`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5404:    ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5405-    ONCE_REWRITE_TAC[TAUT `p /\ q /\ r ==> s <=> q /\ p ==> r ==> s`] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5409-    REPEAT CONJ_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5410:     [ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5411-      ASM_SIMP_TAC[FINITE_UNIONS; FORALL_IN_IMAGE; FINITE_IMAGE] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5412:      ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5413-      REWRITE_TAC[UNIONS_IMAGE; SUBSET; IN_UNIONS; IN_ELIM_THM] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5414:      ASM SET_TAC[]]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5415-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5428-                 `s:real^M->bool`] PROPER_MAP) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5429:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5430-  MATCH_MP_TAC(TAUT `(q ==> s) /\ p ==> (p <=> q /\ r) ==> s`) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5437-     (fun th -> ASM_SIMP_TAC[th])] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5438:  FIRST_ASSUM(ASSUME_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5439-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5459-  FIRST_X_ASSUM(MP_TAC o SPEC `{x | x IN t /\ (g:real^N->real^P) x IN k}`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5460:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC EQ_IMP] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5461:  AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5462-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5476-        CONTINUOUS_ON_SUBSET)) THEN SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5477:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5478-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5492-  ANTS_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5493:   [CONJ_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC COMPACT_CONTINUOUS_IMAGE] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5494-    ASM_MESON_TAC[CONTINUOUS_ON_SUBSET];
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5497-    EXISTS_TAC `s:real^M->bool` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5498:    CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5499-    MATCH_MP_TAC CONTINUOUS_CLOSED_IN_PREIMAGE_GEN THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5512-              PASTECART_IN_PCROSS; FSTCART_PASTECART] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5513:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5514-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5524-  ASM_SIMP_TAC[PROPER_MAP_FSTCART; IMAGE_FSTCART_PCROSS] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5525:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5526-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5536-              PASTECART_IN_PCROSS; SNDCART_PASTECART] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5537:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5538-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5548-  ASM_SIMP_TAC[PROPER_MAP_SNDCART; IMAGE_SNDCART_PCROSS] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5549:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5550-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5631-    REWRITE_TAC[SUBSET; UNIONS_IMAGE; IN_ELIM_THM; FORALL_IN_PCROSS] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5632:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5633-    MAP_EVERY X_GEN_TAC [`a:real^M`; `b:real^N`] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5635-    FIRST_X_ASSUM(MP_TAC o SPEC `c:real^N`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5636:    ASM_REWRITE_TAC[SUBSET; FORALL_IN_PCROSS] THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5637-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5660-     [ASM_MESON_TAC[OPEN_IN_SUBSET; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5661:      REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5662-    MATCH_MP_TAC OPEN_IN_UNIONS THEN REWRITE_TAC[FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5676-  EXISTS_TAC `\x. (f:A->real^M->real^N)(@i. i IN k /\ x IN t i) x` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5677:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN MATCH_MP_TAC PASTING_LEMMA THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5678-  MAP_EVERY EXISTS_TAC
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5679-   [`f:A->real^M->real^N`; `t:A->real^M->bool`; `k:A->bool`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5680:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5681-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5749-     [ASM_MESON_TAC[CLOSED_IN_SUBSET; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5750:      REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5751-    MATCH_MP_TAC CLOSED_IN_UNIONS THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5767-  EXISTS_TAC `\x. (f:A->real^M->real^N)(@i. i IN k /\ x IN t i) x` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5768:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5769-  MATCH_MP_TAC PASTING_LEMMA_CLOSED THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5771-   [`f:A->real^M->real^N`; `t:A->real^M->bool`; `k:A->bool`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5772:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5773-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5805-  REPEAT STRIP_TAC THEN REWRITE_TAC[GSYM REAL_NOT_LT] THEN DISCH_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5806:  FIRST_X_ASSUM(MP_TAC o SPEC `(x:real^N)$i - (b:real^N)$i`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5807-  ASM_REWRITE_TAC[REAL_SUB_LT] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5810-  REWRITE_TAC[dist; REAL_NOT_LT] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5811:  MATCH_MP_TAC REAL_LE_TRANS THEN EXISTS_TAC `abs((z - x :real^N)$i)` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5812-  ASM_SIMP_TAC[COMPONENT_LE_NORM] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5821-  REPEAT STRIP_TAC THEN REWRITE_TAC[GSYM REAL_NOT_LT] THEN DISCH_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5822:  FIRST_X_ASSUM(MP_TAC o SPEC `(a:real^N)$i - (x:real^N)$i`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5823-  ASM_REWRITE_TAC[REAL_SUB_LT] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5826-  REWRITE_TAC[dist; REAL_NOT_LT] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5827:  MATCH_MP_TAC REAL_LE_TRANS THEN EXISTS_TAC `abs((z - x :real^N)$i)` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5828-  ASM_SIMP_TAC[COMPONENT_LE_NORM] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5866-let CLOSED_STANDARD_HYPERPLANE = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5867: (`!k a. closed {x:real^N | x$k = a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5868-  REPEAT GEN_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5869:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5870-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5875-let CLOSED_HALFSPACE_COMPONENT_LE = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5876: (`!a k. closed {x:real^N | x$k <= a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5877-  REPEAT GEN_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5878:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5879-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5884-let CLOSED_HALFSPACE_COMPONENT_GE = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5885: (`!a k. closed {x:real^N | x$k >= a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5886-  REPEAT GEN_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5887:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5888-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5903-let OPEN_HALFSPACE_COMPONENT_LT = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5904: (`!a k. open {x:real^N | x$k < a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5905-  REPEAT GEN_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5906:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5907-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5918-let OPEN_HALFSPACE_COMPONENT_GT = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5919: (`!a k. open {x:real^N | x$k > a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5920-  REPEAT GEN_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5921:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5922-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5981-let INTERIOR_HALFSPACE_COMPONENT_LE = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5982: (`!a k. interior {x:real^N | x$k <= a} = {x | x$k < a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5983-  REPEAT GEN_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5984:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5985-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5990-let INTERIOR_HALFSPACE_COMPONENT_GE = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5991: (`!a k. interior {x:real^N | x$k >= a} = {x | x$k > a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5992-  REPEAT GEN_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:5993:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-5994-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6015-let CLOSURE_HALFSPACE_COMPONENT_LT = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6016: (`!a k. closure {x:real^N | x$k < a} = {x | x$k <= a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6017-  REPEAT GEN_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6018:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6019-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6024-let CLOSURE_HALFSPACE_COMPONENT_GT = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6025: (`!a k. closure {x:real^N | x$k > a} = {x | x$k >= a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6026-  REPEAT GEN_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6027:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6028-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6080-let INTERIOR_STANDARD_HYPERPLANE = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6081: (`!k a. interior {x:real^N | x$k = a} = {}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6082-  REPEAT GEN_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6083:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !x:real^N. x$k = x$i`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6084-  CHOOSE_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6104-let UNBOUNDED_HALFSPACE_COMPONENT_LE = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6105: (`!a k. ~bounded {x:real^N | x$k <= a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6106-  REPEAT GEN_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6107:  SUBGOAL_THEN `?i. 1 <= i /\ i <= dimindex(:N) /\ !z:real^N. z$k = z$i`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6108-  CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6117-let UNBOUNDED_HALFSPACE_COMPONENT_GE = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6118: (`!a k. ~bounded {x:real^N | x$k >= a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6119-  REPEAT GEN_TAC THEN DISCH_THEN(MP_TAC o MATCH_MP BOUNDED_NEGATIONS) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6126-let UNBOUNDED_HALFSPACE_COMPONENT_LT = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6127: (`!a k. ~bounded {x:real^N | x$k < a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6128-  ONCE_REWRITE_TAC[GSYM BOUNDED_CLOSURE_EQ] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6132-let UNBOUNDED_HALFSPACE_COMPONENT_GT = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6133: (`!a k. ~bounded {x:real^N | x$k > a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6134-  ONCE_REWRITE_TAC[GSYM BOUNDED_CLOSURE_EQ] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6187-  ASM_REWRITE_TAC[CLOSED_CLOSURE] THEN CONJ_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6188:   [MP_TAC(ISPEC `s:real^M->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6189-    MATCH_MP_TAC CONTINUOUS_CLOSED_PREIMAGE THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6220-  let lemma = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6221:   (`x IN s ==> f x <= a <=> x IN s ==> (lift o f) x IN {y | y$1 <= a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6222-    REWRITE_TAC[IN_ELIM_THM; o_THM; GSYM drop; LIFT_DROP]) in
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6231-  let lemma = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6232:   (`x IN s ==> a <= f x <=> x IN s ==> (lift o f) x IN {y | y$1 >= a}`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6233-    REWRITE_TAC[IN_ELIM_THM; o_THM; GSYM drop; real_ge; LIFT_DROP]) in
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6273-  MATCH_MP_TAC CONTINUOUS_CLOSED_PREIMAGE THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6274:  ASM_REWRITE_TAC[CLOSED_SING] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6275-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6591-                  COMPACT_IMP_BOUNDED; COMPACT_CONTINUOUS_IMAGE];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6592:    MP_TAC(ISPEC `s:real^M->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6593-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6655-  SUBGOAL_THEN `y IN IMAGE (f:real^M->real^N) s` MP_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6656:   [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6657-  REWRITE_TAC[IN_IMAGE] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6662-   [MATCH_MP_TAC CONTINUOUS_OPEN_PREIMAGE_UNIV THEN ASM_MESON_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6663:    ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6664-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6843-  REWRITE_TAC[TOPSPACE_EUCLIDEAN_SUBTOPOLOGY; SUBSET_RESTRICT] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6844:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6845-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6860-  REWRITE_TAC[TOPSPACE_EUCLIDEAN_SUBTOPOLOGY; SUBSET_RESTRICT] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6861:  MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6862-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6878-    FIRST_ASSUM(ASSUME_TAC o MATCH_MP CLOSED_IN_IMP_SUBSET) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6879:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6880-    X_GEN_TAC `v:real^M->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6884-    REWRITE_TAC[OPEN_IN_CLOSED_IN_EQ; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6885:    DISCH_THEN(fun th -> CONJ_TAC THENL [ASM SET_TAC[]; MP_TAC th]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6886:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6887-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6903-    FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6904:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6905-    X_GEN_TAC `v:real^M->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6909-    REWRITE_TAC[closed_in; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6910:    DISCH_THEN(fun th -> CONJ_TAC THENL [ASM SET_TAC[]; MP_TAC th]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6911:    MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6912-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6974-    ASM_SIMP_TAC[SIMPLE_IMAGE; FORALL_IN_IMAGE; FINITE_IMAGE] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6975:    ASM_REWRITE_TAC[IMAGE_EQ_EMPTY] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6976-    ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6983-    ASM_REWRITE_TAC[IN_INTER; CENTRE_IN_BALL; REAL_HALF] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:6984:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-6985-    DISCH_THEN(X_CHOOSE_THEN `d2:real`
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7028-  EXISTS_TAC `{x:real^N}` THEN REWRITE_TAC[CONNECTED_SING] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7029:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7030-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7048-  ASM_REWRITE_TAC[IN_UNION; UNION_SUBSET] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7049:  MATCH_MP_TAC CONNECTED_UNION THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7050-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7080-  DISCH_THEN(SUBST1_TAC o SYM) THEN MATCH_MP_TAC CONNECTED_UNIONS THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7081:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7082-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7221-    REWRITE_TAC[IN] THEN ASM_REWRITE_TAC[CONNECTED_COMPONENT_REFL_EQ] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7222:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7223-    MATCH_MP_TAC CONNECTED_COMPONENT_MAXIMAL THEN ASM_REWRITE_TAC[]]);;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7372-    REPEAT STRIP_TAC THEN MATCH_MP_TAC CONNECTED_COMPONENT_MAXIMAL THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7373:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7374-    ASM_MESON_TAC[CONNECTED_COMPONENT_EQ_EMPTY; SUBSET]]);;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7460-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `x:real^N` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7461:    DISCH_TAC THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7462-    MATCH_MP_TAC(GSYM CONNECTED_COMPONENT_UNIQUE) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7465-    FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7466:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7467:    MATCH_MP_TAC CONNECTED_UNION THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7468-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7621-    ASM_REWRITE_TAC[] THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7622:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7623-    X_GEN_TAC `c':real^N->bool` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7625-    FIRST_X_ASSUM MATCH_MP_TAC THEN CONJ_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7626:     [MATCH_MP_TAC CONNECTED_UNION; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7627:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7628-    DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `c:real^N->bool`) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7631-    MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `x:real^N` THEN STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7632:    CONJ_TAC THENL [ASM SET_TAC[]; CONV_TAC SYM_CONV] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7633-    FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7635-    MATCH_MP_TAC CONNECTED_COMPONENT_MAXIMAL THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7636:    ASM_REWRITE_TAC[] THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7637-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7664-    REWRITE_TAC[IN_COMPONENTS] THEN CONJ_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7665:     [ASM SET_TAC[]; ASM_MESON_TAC[CONNECTED_COMPONENT_MAXIMAL]]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7666-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7693-  MATCH_MP_TAC(TAUT `p ==> ~(p /\ ~q) ==> q`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7694:  REPLICATE_TAC 2 (CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7695-  CONJ_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7700-   [EXISTS_TAC `t:real^N->bool`; EXISTS_TAC `(:real^N) DIFF t`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7701:  ASM_REWRITE_TAC[GSYM OPEN_CLOSED] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7702-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7743-    EXISTS_TAC `u:real^N->bool` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:7744:    MP_TAC(ISPEC `u:real^N->bool` UNIONS_COMPONENTS) THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-7745-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8211-    REWRITE_TAC[GSYM MEMBER_NOT_EMPTY; IN_INTER; EXISTS_IN_IMAGE] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8212:    EXISTS_TAC `x2:real^M` THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8213-    REWRITE_TAC[SUBSET; IN_UNION; FORALL_AND_THM; FORALL_IN_IMAGE;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8214-                TAUT `a \/ b ==> c <=> (a ==> c) /\ (b ==> c)`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8215:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8216:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8217:    ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8218-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8238-              FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8239:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8240-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8277-  ASM_SIMP_TAC[CLOSED_PCROSS; EXTENSION; FORALL_PASTECART] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8278:  REWRITE_TAC[IN_INTER; PASTECART_IN_PCROSS] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8279-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8302-              PASTECART_IN_PCROSS] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8303:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8304-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8494-  REWRITE_TAC[FORALL_IN_GSPEC] THEN ANTS_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8495:   [CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8496-    FIRST_X_ASSUM(X_CHOOSE_TAC `B:real` o GEN_REWRITE_RULE I [BOUNDED_POS]) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8510-  ASM_REWRITE_TAC[diameter] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8511:  COND_CASES_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8512-  MATCH_MP_TAC REAL_SUP_LE_SUBSET THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8513:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8514-  REWRITE_TAC[FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8576-  STRIP_TAC THEN MATCH_MP_TAC REAL_SUP_LE THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8577:  CONJ_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[FORALL_IN_GSPEC]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8578-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8624-               DIAMETER_EMPTY; REAL_ADD_RID; DIAMETER_POS_LE] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8625:  MATCH_MP_TAC DIAMETER_LE THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8626-  REWRITE_TAC[RIGHT_FORALL_IMP_THM; IMP_CONJ; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8643-  X_GEN_TAC `t:real^N->bool` THEN STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8644:  ASM_CASES_TAC `t:real^N->bool = {}` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8645-  MP_TAC(ISPEC `t:real^N->bool` DIAMETER_SUBSET_CBALL_NONEMPTY) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8649-  FIRST_X_ASSUM(MP_TAC o SPEC `x:real^N`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8650:  ANTS_TAC THENL [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8651-  X_GEN_TAC `b:real^N->bool` THEN STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8858-  REWRITE_TAC[VECTOR_ARITH `vec 0 = x - y <=> x = y`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8859:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8860-  MATCH_MP_TAC MONO_EXISTS THEN SIMP_TAC[LEFT_IMP_EXISTS_THM] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8934-        SUBSET_TRANS)) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:8935:      REWRITE_TAC[SUBSET; UNIONS_GSPEC; IN_ELIM_THM] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-8936-      ONCE_REWRITE_TAC[TAUT `p /\ q /\ r <=> q /\ p /\ r`] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9036-                PASTECART_INJ; VECTOR_SUB_EQ] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9037:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9038-    MATCH_MP_TAC CONTINUOUS_CLOSED_IN_PREIMAGE THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9063-                PASTECART_IN_PCROSS; PASTECART_INJ] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9064:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9065-    MATCH_MP_TAC CLOSED_MAP_FSTCART THEN EXISTS_TAC `t:real^N->bool` THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9088-  REWRITE_TAC[SUBSET; FORALL_IN_GSPEC; PASTECART_IN_PCROSS] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9089:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9090-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9156-  DISCH_THEN(MP_TAC o SPEC
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9157:   `(lambda i. mid ((a:real^N)$i) ((b:real^N)$i)):real^N`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9158-  ONCE_REWRITE_TAC[TAUT `a /\ b /\ c <=> ~(a /\ b ==> ~c)`] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9232-    [FIRST_X_ASSUM(MP_TAC o SPEC
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9233:      `((c:real^N)$i + min ((a:real^N)$i) ((d:real^N)$i)) / &2`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9234-     POP_ASSUM MP_TAC THEN REAL_ARITH_TAC;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9235-     FIRST_X_ASSUM(MP_TAC o SPEC
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9236:      `(max ((b:real^N)$i) ((c:real^N)$i) + (d:real^N)$i) / &2`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9237-     POP_ASSUM MP_TAC THEN REAL_ARITH_TAC]));;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9324-  REPEAT STRIP_TAC THEN REWRITE_TAC[GSYM REAL_NOT_LT] THEN DISCH_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9325:   [FIRST_X_ASSUM(MP_TAC o SPEC `(a:real^N)$i - (x:real^N)$i`);
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9326:    FIRST_X_ASSUM(MP_TAC o SPEC `(x:real^N)$i - (b:real^N)$i`)] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9327-  ASM_REWRITE_TAC[REAL_SUB_LT] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9330-  REWRITE_TAC[dist; REAL_NOT_LT] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9331:  MATCH_MP_TAC REAL_LE_TRANS THEN EXISTS_TAC `abs((z - x :real^N)$i)` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9332-  ASM_SIMP_TAC[COMPONENT_LE_NORM] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9377-  STRIP_TAC THEN MATCH_MP_TAC REAL_LE_TRANS THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9378:  EXISTS_TAC `sum(1..dimindex(:N)) (\i. abs((x:real^N)$i))` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9379-  REWRITE_TAC[NORM_LE_L1] THEN MATCH_MP_TAC SUM_LE THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9415-  ASM_REWRITE_TAC[] THEN STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9416:  SUBST1_TAC(REAL_ARITH `(a:real^N)$i = e * a$i + (&1 - e) * a$i`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9417:  SUBST1_TAC(REAL_ARITH `(b:real^N)$i = e * b$i + (&1 - e) * b$i`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9418-  CONJ_TAC THEN MATCH_MP_TAC REAL_LTE_ADD2 THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9675-    MATCH_MP_TAC REAL_LE_TRANS THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9676:    EXISTS_TAC `sum(1..dimindex(:N)) (\i. abs((x - y:real^N)$i))` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9677-    REWRITE_TAC[NORM_LE_L1] THEN MATCH_MP_TAC SUM_BOUND_GEN THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9907-  SUBGOAL_THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9908:    `!n. ?y:real^N. (!i. 1 <= i /\ i <= n ==> y$i = (x:real^N)$i) /\ y IN s`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9909-  MP_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9917-      EXISTS_TAC
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9918:       `(lambda i. if i <= n then (y:real^N)$i else (z:real^N)$i):real^N` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9919-      CONJ_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9942-   [ASM_MESON_TAC[EMPTY_AS_INTERVAL]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9943:  EXISTS_TAC `(lambda i. inf { (x:real^N)$i | x IN s}):real^N` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9944:  EXISTS_TAC `(lambda i. sup { (x:real^N)$i | x IN s}):real^N` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9945-  SIMP_TAC[EXTENSION; IN_INTERVAL; LAMBDA_BETA] THEN X_GEN_TAC `x:real^N` THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9947-   [DISCH_TAC THEN X_GEN_TAC `i:num` THEN STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9948:    MP_TAC(ISPEC `{ (x:real^N)$i | x IN s}` INF) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9949:    MP_TAC(ISPEC `{ (x:real^N)$i | x IN s}` SUP) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9950-    ONCE_REWRITE_TAC[SIMPLE_IMAGE] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9958-    SUBGOAL_THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9959:     `?a b:real^N. a IN s /\ b IN s /\ a$i <= (x:real^N)$i /\ x$i <= b$i`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9960-    STRIP_ASSUME_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9961:     [MP_TAC(ISPECL [`\x:real^N. x$i`; `s:real^N->bool`]
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9962-        CONTINUOUS_ATTAINS_INF) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9964-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `a:real^N` THEN STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9965:      MP_TAC(ISPECL [`\x:real^N. x$i`; `s:real^N->bool`]
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9966-        CONTINUOUS_ATTAINS_SUP) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9969-      ASM_REWRITE_TAC[] THEN CONJ_TAC THEN MATCH_MP_TAC REAL_LE_TRANS THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9970:       [EXISTS_TAC `inf {(x:real^N)$i | x IN s}` THEN ASM_SIMP_TAC[] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9971:        MATCH_MP_TAC REAL_LE_INF THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9972:        EXISTS_TAC `sup {(x:real^N)$i | x IN s}` THEN ASM_SIMP_TAC[] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9973:        MATCH_MP_TAC REAL_SUP_LE THEN ASM SET_TAC[]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9974-      EXISTS_TAC
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9975:       `(lambda j. if j = i then (x:real^N)$i else (a:real^N)$j):real^N` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9976-      ASM_SIMP_TAC[LAMBDA_BETA] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9979-       [`a:real^N`;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:9980:        `(lambda j. if j = i then (b:real^N)$i else (a:real^N)$j):real^N`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-9981-      ASM_SIMP_TAC[LAMBDA_BETA] THEN CONJ_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10684-  ASM_SIMP_TAC[CONTINUOUS_CLOSED_PREIMAGE; CLOSED_CLOSURE] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:10685:  MP_TAC (ISPEC `s:real^N->bool` CLOSURE_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10686-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10716-    MP_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:10717:  [MATCH_MP_TAC IMAGE_CLOSURE_SUBSET; ASM SET_TAC []] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:10718:  ASM_REWRITE_TAC [CLOSED_CBALL] THEN ASM SET_TAC []);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10719-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10726-  REWRITE_TAC [GSYM IN_CBALL_0] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:10727:  SUBGOAL_THEN `IMAGE (f:real^N->real^M) (closure s) SUBSET {x | x$k <= b}`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10728-  MP_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:10729:   [MATCH_MP_TAC IMAGE_CLOSURE_SUBSET; ASM SET_TAC []] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:10730:  ASM_REWRITE_TAC[CLOSED_HALFSPACE_COMPONENT_LE] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10731-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10738-  REWRITE_TAC [GSYM IN_CBALL_0] THEN REPEAT STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:10739:  SUBGOAL_THEN `IMAGE (f:real^N->real^M) (closure s) SUBSET {x | x$k >= b}`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10740-  MP_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:10741:   [MATCH_MP_TAC IMAGE_CLOSURE_SUBSET; ASM SET_TAC [real_ge]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:10742:  ASM_REWRITE_TAC[CLOSED_HALFSPACE_COMPONENT_GE] THEN ASM SET_TAC[real_ge]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10743-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10868-  SIMP_TAC[SUBSET; FORALL_IN_IMAGE] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:10869:  CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10870-  FIRST_ASSUM(ASSUME_TAC o MATCH_MP OPEN_IN_IMP_SUBSET) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10871-  SUBGOAL_THEN `s:real^M->bool = t UNION (s DIFF t)` SUBST1_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:10872:   [ASM SET_TAC[]; MATCH_MP_TAC CONTINUOUS_ON_CASES_LOCAL] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-10873-  ASM_SIMP_TAC[SET_RULE `t SUBSET s ==> t UNION (s DIFF t) = s`] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11154-  REPEAT STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11155:  TRY(MATCH_MP_TAC CONTINUOUS_ON_SUBSET) THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11156-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11372-  REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_INTER; IN_CBALL_0] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11373:  SIMP_TAC[LINEAR_CONTINUOUS_ON] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11374-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11385-    REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11386:    ASM_SIMP_TAC[CONTINUOUS_ON_FINITE] THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11387-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11428-        CONTINUOUS_ON_OPEN_GEN) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11429:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11430-  X_GEN_TAC `u:real^M->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11433-  FIRST_ASSUM(MP_TAC o CONJUNCT1 o GEN_REWRITE_RULE I [open_in]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11434:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11435-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11444-        CONTINUOUS_ON_CLOSED_GEN) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11445:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11446-  X_GEN_TAC `u:real^M->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11449-  FIRST_ASSUM(MP_TAC o CONJUNCT1 o GEN_REWRITE_RULE I [closed_in]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11450:  REWRITE_TAC[TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11451-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11462-  DISCH_TAC THEN ASM_SIMP_TAC[homeomorphism] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11463:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11464-  MATCH_MP_TAC CONTINUOUS_ON_INVERSE_OPEN_MAP THEN ASM_MESON_TAC[]);;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11476-  DISCH_TAC THEN ASM_SIMP_TAC[homeomorphism] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11477:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11478-  MATCH_MP_TAC CONTINUOUS_ON_INVERSE_CLOSED_MAP THEN ASM_MESON_TAC[]);;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11488-   [FIRST_ASSUM(MP_TAC o CONJUNCT1 o GEN_REWRITE_RULE I [open_in]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11489:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11490-    MATCH_MP_TAC CONTINUOUS_ON_IMP_OPEN_IN THEN ASM_REWRITE_TAC[]]);;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11500-   [FIRST_ASSUM(MP_TAC o CONJUNCT1 o GEN_REWRITE_RULE I [closed_in]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11501:    REWRITE_TAC[TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11502-    MATCH_MP_TAC CONTINUOUS_ON_IMP_CLOSED_IN THEN ASM_REWRITE_TAC[]]);;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11622-   [MATCH_MP_TAC HOMEOMORPHISM_INJECTIVE_OPEN_MAP THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11623:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11624-    MATCH_MP_TAC OPEN_MAP_FROM_COMPOSITION_SURJECTIVE THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11633-    ASM_SIMP_TAC[o_THM; IMAGE_o] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11634:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11635-    MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11649-   [MATCH_MP_TAC HOMEOMORPHISM_INJECTIVE_OPEN_MAP THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11650:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11651-    MATCH_MP_TAC OPEN_MAP_FROM_COMPOSITION_INJECTIVE THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11660-    ASM_SIMP_TAC[o_THM; IMAGE_o] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11661:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11662-    MATCH_MP_TAC CONTINUOUS_ON_COMPOSE THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11753-  EXISTS_TAC `\x. if x = a then b else (f:real^M->real^N) x` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11754:  ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11755-  REWRITE_TAC[CONTINUOUS_ON_EQ_CONTINUOUS_WITHIN] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11769-        IMAGE (g:real^N->real^M) (t DIFF ball (b,e))`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11770:      SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11771-      MATCH_MP_TAC COMPACT_CONTINUOUS_IMAGE THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11773-      FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (REWRITE_RULE[IMP_CONJ]
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11774:        CONTINUOUS_ON_SUBSET)) THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11775-      REWRITE_TAC[closed_in; open_in; TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11781-      ASM_REWRITE_TAC[DIST_REFL] THEN ONCE_REWRITE_TAC[DIST_SYM] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11782:      RULE_ASSUM_TAC(REWRITE_RULE[IN_BALL]) THEN ASM SET_TAC[]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11783-    UNDISCH_TAC `(f:real^M->real^N) continuous_on (s DELETE a)` THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11879-      REWRITE_TAC[NORM_REAL; GSYM drop] THEN ASM_REAL_ARITH_TAC];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11880:    SUBGOAL_THEN `(:real^1) = {x | x$1 >= &0} UNION {x | x$1 <= &0}`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11881-    SUBST1_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11930-  MATCH_MP_TAC CONTINUOUS_ON_SUBSET THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11931:   [EXISTS_TAC `interval(lift((a:real^N)$i),lift((b:real^N)$i))`;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11932:    EXISTS_TAC `interval(lift((c:real^N)$i),lift((d:real^N)$i))`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11933-  REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_INTERVAL_1] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11966-  MATCH_MP_TAC CONTINUOUS_ON_SUBSET THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:11967:   [EXISTS_TAC `interval(lift((a:real^N)$i),lift((b:real^N)$i))`;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-11968-    EXISTS_TAC `(:real^1)`] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12160-  REPEAT STRIP_TAC THEN EQ_TAC THEN REPEAT STRIP_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12161:   [ALL_TAC; MATCH_MP_TAC CARD_EQ_CONNECTED THEN ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12162-  FIRST_ASSUM(MP_TAC o MATCH_MP(REWRITE_RULE[IMP_CONJ_ALT] FINITE_SUBSET)) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12202-    FIRST_X_ASSUM(MP_TAC o SPEC `(f:real^M->real^N) x`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12203:    ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN(SUBST1_TAC o SYM)] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12204-    MATCH_MP_TAC CONNECTED_COMPONENT_MAXIMAL THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12205:    ASM_SIMP_TAC[CONNECTED_CONTINUOUS_IMAGE] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12206-    REPEAT STRIP_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12249-    ASM_CASES_TAC `IMAGE (f:real^M->real^N) s DELETE (f x) = {}` THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12250:     [EXISTS_TAC `&1` THEN REWRITE_TAC[REAL_LT_01] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12251-      ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12267-     [EXPAND_TAC "s" THEN MATCH_MP_TAC CONTINUOUS_ON_CASES_LOCAL THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12268:      ASM_REWRITE_TAC[CONTINUOUS_ON_CONST] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12269-      MATCH_MP_TAC FINITE_SUBSET THEN EXISTS_TAC `{vec 0:real^N,basis 1}` THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12272-      STRIP_ASSUME_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12273:       [ASM SET_TAC[]; DISCH_THEN(CHOOSE_THEN MP_TAC)] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12274-      DISCH_THEN(fun th -> MP_TAC(SPEC `a:real^M` th) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12361-      DISCH_THEN(X_CHOOSE_THEN `k:num` STRIP_ASSUME_TAC) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12362:      EXISTS_TAC `b / (a:real^N)$k % basis k:real^N` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12363-      ASM_SIMP_TAC[DOT_RMUL; DOT_BASIS; REAL_DIV_RMUL];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12364-      FIRST_X_ASSUM(SUBST1_TAC o SYM) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12365:      ABBREV_TAC `p = {x:real^N | x$1 = &0}` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12366-      GEOM_ORIGIN_TAC `c:real^N` THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12374-  REPEAT STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12375:  TRANS_TAC HOMEOMORPHIC_TRANS `{x:real^N | x$1 = &0}` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12376-  ASM_SIMP_TAC[lemma] THEN ONCE_REWRITE_TAC[HOMEOMORPHIC_SYM] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12383-  REPEAT STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12384:  SUBGOAL_THEN `{x:real^N | x$k = c} = {x | basis k dot x = c}` SUBST1_TAC
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12385-  THENL [ASM_SIMP_TAC[DOT_BASIS]; MATCH_MP_TAC HOMEOMORPHIC_HYPERPLANES] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12402-  REWRITE_TAC[homeomorphic; HOMEOMORPHISM] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12403:  EXISTS_TAC `(\x. lambda i. x$i):real^N->real^M` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12404-  EXISTS_TAC `(\x. lambda i. if i <= dimindex(:M) then x$i else &0)
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12555-  ABBREV_TAC `u = y - (f:real^M->real^N) x` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12556:  EXISTS_TAC `x + vsum(1..dimindex(:N)) (\i. (u:real^N)$i % b i):real^M` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12557-  ASM_SIMP_TAC[LINEAR_ADD; LINEAR_VSUM; FINITE_NUMSEG; o_DEF;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12579-  SUBGOAL_THEN `s = {x | (f:real^M->real^N) x IN IMAGE f s}`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12580:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12581-  MATCH_MP_TAC CONTINUOUS_OPEN_PREIMAGE_UNIV THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12618-  SUBGOAL_THEN `s = {x | (f:real^M->real^N) x IN IMAGE f s}`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12619:  SUBST1_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12620-  MATCH_MP_TAC CONTINUOUS_CLOSED_PREIMAGE_UNIV THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12908-  X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:12909:  FIRST_X_ASSUM(MP_TAC o SPEC `x - (x$(SUC d)) % basis(SUC d) :real^N`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-12910-  ANTS_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13019-  MP_TAC(ISPECL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:13020:   [`(\x. vsum(1..n) (\i. x$i % b i)):real^N->real^N`;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13021-    `span(IMAGE basis (1..n)):real^N->bool`]
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13037-    SUBGOAL_THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:13038:     `vsum(1..n) (\i. (x:real^N)$i % b i:real^N) = vsum k (\v. x$(c v) % v)`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13039-    SUBST1_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13041-      MAP_EVERY EXISTS_TAC [`b:num->real^N`; `c:real^N->num`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:13042:      ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13043-      ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13045-    FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [INDEPENDENT_EXPLICIT]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:13046:    DISCH_THEN(MP_TAC o SPEC `\v:real^N. (x:real^N)$(c v)` o CONJUNCT2) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13047-    ASM_REWRITE_TAC[] THEN ANTS_TAC THENL [ASM_MESON_TAC[]; ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13155-   [ASM_REWRITE_TAC[VECTOR_MUL_LZERO; VECTOR_ADD_LID; COND_ID] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:13156:    REWRITE_TAC[INTERVAL_SING] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13157-    ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13301-    ANTS_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:13302:     [MATCH_MP_TAC SPAN_SUBSET_SUBSPACE THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13303-      DISCH_THEN(SUBST1_TAC o SYM)] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13315-      ASM_REWRITE_TAC[FORALL_IN_INSERT] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:13316:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13317-      ASM_REWRITE_TAC[PAIRWISE_INSERT] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13884-        STRIP_TAC THEN MATCH_MP_TAC SPAN_MUL THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:13885:        MATCH_MP_TAC SPAN_SUPERSET THEN ASM SET_TAC[]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13886-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `n:num` THEN STRIP_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13913-        THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:13914:         [REWRITE_TAC[rows; IN_DELETE; IN_NUMSEG] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-13915-          ASM_SIMP_TAC[DIM_INSERT]] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14030-    (MAP_EVERY X_GEN_TAC [`m:num`; `n:num`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14031:     SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !A:real^N^N. A$m = A$k`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14032-     CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14033:     SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$n = z$l`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14034-     CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC]) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14065-      X_GEN_TAC `j:num` THEN STRIP_TAC THEN MATCH_MP_TAC SPAN_MUL THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14066:      MATCH_MP_TAC SPAN_SUPERSET THEN ASM SET_TAC[]]) in
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14067-  REPEAT GEN_TAC THEN DISCH_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14082-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `i:num` THEN STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14083:      EXISTS_TAC `inv(c$i) % c:real^N` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14084-      ASM_SIMP_TAC[VECTOR_MUL_COMPONENT; REAL_MUL_LINV] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14105-    (MAP_EVERY X_GEN_TAC [`m:num`; `n:num`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14106:     SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !A:real^N^N. A$m = A$k`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14107-     CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14108:     SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$n = z$l`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14109-     CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC]) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14115-     SUBGOAL_THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14116:      `(A:real^N^N)$k$l = (transp(A':real^N^N) ** (&2 % basis i - c:real^N))$l`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14117-     SUBST1_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14140-      TRANS_TAC REAL_LET_TRANS
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14141:       `abs((B - A':real^N^N)$r$l) * (&1 + norm(&2 % basis i - c:real^N))` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14142-      CONJ_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14166-       [MAP_EVERY X_GEN_TAC [`m:num`; `n:num`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14167:        SUBGOAL_THEN `?k. 1 <= k /\ k <= dimindex(:N) /\ !A:real^N^N. A$m = A$k`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14168-        CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14169:        SUBGOAL_THEN `?l. 1 <= l /\ l <= dimindex(:N) /\ !z:real^N. z$n = z$l`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14170-        CHOOSE_TAC THENL [REWRITE_TAC[FINITE_INDEX_INRANGE]; ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14389-  SUBGOAL_THEN `s INTER k = s:num->bool` ASSUME_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14390:   [ASM SET_TAC []; ASM_MESON_TAC [SERIES_FINITE_SUPPORT]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14391-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14441-  FIRST_X_ASSUM(X_CHOOSE_TAC `l:real^N` o REWRITE_RULE[summable]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14442:  REWRITE_TAC[summable] THEN EXISTS_TAC `lift((l:real^N)$k)` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14443-  ASM_SIMP_TAC[SERIES_COMPONENT]);;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14648-  FIRST_X_ASSUM(MP_TAC o SPEC
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14649:   `vsum (s INTER (0..n)) (f:num->real^N)$k - (infsum s f)$k`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14650-  ASM_REWRITE_TAC[REAL_SUB_LT] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14653-  MATCH_MP_TAC REAL_LE_TRANS THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14654:  EXISTS_TAC `abs((vsum (s INTER (0..N + n)) f - infsum s f:real^N)$k)` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14655-  ASM_SIMP_TAC[COMPONENT_LE_NORM] THEN REWRITE_TAC[VECTOR_SUB_COMPONENT] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14770-  DISCH_TAC THEN EXISTS_TAC `N + 1` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:14771:  REWRITE_TAC[ARITH_RULE `N + 1 <= n <=> ~(n <= N)`] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-14772-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15440-  ASM_CASES_TAC `?x:real^N. x IN s /\ ~(g x = x)` THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:15441:   [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15442-  FIRST_X_ASSUM(X_CHOOSE_THEN `x:real^N` STRIP_ASSUME_TAC) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15443-  ABBREV_TAC `y = (g:real^N->real^N) x` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:15444:  SUBGOAL_THEN `(y:real^N) IN s` ASSUME_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15445-  FIRST_ASSUM(MP_TAC o MATCH_MP COMPACT_PCROSS o W CONJ) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15450-  SUBGOAL_THEN `!n z. z IN s ==> (f:num->real^N->real^N) n z IN s`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:15451:  STRIP_ASSUME_TAC THENL [INDUCT_TAC THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15452-  SUBGOAL_THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15462-   `\n:num. pastecart (f n (x:real^N)) (f n y:real^N)`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:15463:  ANTS_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[LEFT_IMP_EXISTS_THM]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15464-  MAP_EVERY X_GEN_TAC [`l:real^(N,N)finite_sum`; `s:num->num`] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15747-  MATCH_MP_TAC REAL_LE_INF THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:15748:  REWRITE_TAC[FORALL_IN_GSPEC; DIST_POS_LE] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15749-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15757-  REWRITE_TAC[FORALL_IN_GSPEC] THEN ANTS_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:15758:   [CONJ_TAC THENL [ASM SET_TAC[]; MESON_TAC[DIST_POS_LE]]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15759-  ASM_MESON_TAC[]);;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15763-  REPEAT GEN_TAC THEN REWRITE_TAC[setdist] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:15764:  COND_CASES_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15765-  MP_TAC(ISPEC `{dist(x:real^N,y) | x IN s /\ y IN t}` INF) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15766-  REWRITE_TAC[FORALL_IN_GSPEC] THEN ANTS_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:15767:   [CONJ_TAC THENL [ASM SET_TAC[]; MESON_TAC[DIST_POS_LE]]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15768-  ASM_MESON_TAC[]);;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15866-  ASM_REWRITE_TAC[FORALL_IN_GSPEC; SUBSET] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:15867:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15868-  MESON_TAC[DIST_POS_LE]);;
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15910-               DIST_0; GSYM CONJ_ASSOC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:15911:  REWRITE_TAC[dist] THEN DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15912-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15926-               DIST_0; GSYM CONJ_ASSOC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:15927:  REWRITE_TAC[dist] THEN DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15928-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15996-   [ASM_MESON_TAC[SETDIST_LE_DIST];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:15997:    MATCH_MP_TAC REAL_LE_SETDIST THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-15998-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16042- (`!s t x:real^N. x IN s ==> setdist(s,t) <= setdist({x},t)`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16043:  REPEAT STRIP_TAC THEN MATCH_MP_TAC SETDIST_SUBSET_LEFT THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16044-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16116-   [MAP_EVERY EXISTS_TAC [`{}:real^N->bool`; `(:real^N)`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16117:    ASM_REWRITE_TAC[OPEN_EMPTY; OPEN_UNIV] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16118-    ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16120-   [MAP_EVERY EXISTS_TAC [`(:real^N)`; `{}:real^N->bool`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16121:    ASM_REWRITE_TAC[OPEN_EMPTY; OPEN_UNIV] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16122-    ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16147-               SET_RULE `{a} INTER s = {} <=> ~(a IN s)`] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16148:  ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16149-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16158-  MATCH_MP_TAC SEPARATION_CLOSURES THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16159:  ASM_SIMP_TAC[CLOSURE_CLOSED] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16160-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16212-  ASM_SIMP_TAC[CLOSED_UNION; GSYM OPEN_CLOSED; OPEN_BALL] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16213:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16214-  REPEAT(MATCH_MP_TAC MONO_EXISTS THEN GEN_TAC) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16215-  STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16216:  CONJ_TAC THENL [MATCH_MP_TAC BOUNDED_CLOSURE; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16217-  MATCH_MP_TAC BOUNDED_SUBSET THEN EXISTS_TAC `ball(vec 0:real^N,r)` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16218:  REWRITE_TAC[BOUNDED_BALL] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16219-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16226-  REWRITE_TAC[SING_SUBSET; CLOSED_SING] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16227:  DISCH_THEN MATCH_MP_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16228-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16415-  EXISTS_TAC `max b c:real` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16416:  ASM_SIMP_TAC[REAL_LE_MAX] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16417-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16557-  REPEAT STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16558:  ASM_CASES_TAC `s:real^N->bool = {}` THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16559-  MP_TAC(ISPECL [`{x:real^N}`; `t:real^N->bool`]
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16781-  REWRITE_TAC[open_in; FORALL_IN_IMAGE] THEN REPEAT GEN_TAC THEN STRIP_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16782:  CONJ_TAC THENL [ASM SET_TAC[]; X_GEN_TAC `x:real^M` THEN DISCH_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16783-  FIRST_X_ASSUM(MP_TAC o SPEC `x:real^M`) THEN ASM_REWRITE_TAC[] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16816-    SUBGOAL_THEN `!n. (z:num->real^N) n IN s` ASSUME_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16817:     [INDUCT_TAC THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16818-    FIRST_ASSUM(MP_TAC o GEN_REWRITE_RULE I [compact]) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16832-    TRANS_TAC REAL_LE_TRANS `dist(x:real^N,z(SUC d))` THEN CONJ_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16833:     [MATCH_MP_TAC SETDIST_LE_DIST THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16834-    MATCH_MP_TAC REAL_EQ_IMP_LE THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16884-        `&0 <= x /\ &0 <= y /\ ~(x = &0 /\ y = &0) ==> &0 < x + y`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16885:      REWRITE_TAC[SETDIST_POS_LE] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16886-      ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16936-       [REPEAT(FIRST_X_ASSUM(MP_TAC o MATCH_MP CLOSED_IN_SUBSET)) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16937:        REWRITE_TAC[TOPSPACE_EUCLIDEAN_SUBTOPOLOGY] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16938-        ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16941-      ASM_REWRITE_TAC[CLOSED_IN_SING; MIDPOINT_EQ_ENDPOINT] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16942:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16943-      MATCH_MP_TAC MONO_EXISTS THEN SIMP_TAC[NOT_IN_EMPTY] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16952-          VECTOR_ARITH_TAC;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:16953:          ASM SET_TAC[]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-16954-        SUBGOAL_THEN `~(a IN segment[midpoint(a,b):real^M,b])` MP_TAC THENL
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17035-let COUNTABLE_INTEGER_COORDINATES = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17036: (`COUNTABLE { x:real^N | !i. 1 <= i /\ i <= dimindex(:N) ==> integer(x$i) }`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17037-  MATCH_MP_TAC COUNTABLE_CART THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17040-let COUNTABLE_RATIONAL_COORDINATES = prove
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17041: (`COUNTABLE { x:real^N | !i. 1 <= i /\ i <= dimindex(:N) ==> rational(x$i) }`,
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17042-  MATCH_MP_TAC COUNTABLE_CART THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17058-  ONCE_REWRITE_TAC[REAL_MUL_SYM] THEN X_GEN_TAC `n:num` THEN DISCH_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17059:  EXISTS_TAC `(lambda i. floor(&2 pow n * (x:real^N)$i)):real^N` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17060-  ASM_SIMP_TAC[LAMBDA_BETA; FLOOR; dist; NORM_MUL] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17073-  REWRITE_TAC[REAL_LE_REFL; REAL_ABS_POW; REAL_ABS_INV; REAL_ABS_NUM] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17074:  MP_TAC(SPEC `&2 pow n * (x:real^N)$k` FLOOR) THEN REAL_ARITH_TAC);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17075-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17234-    EXISTS_TAC `u DELETE ({}:real^N->bool)` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17235:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17236-    FIRST_X_ASSUM SUBST_ALL_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17258-    FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17259:    REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; TOPSPACE_EUCLIDEAN] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17260-    REWRITE_TAC[SUBSET; CLOSURE_APPROACHABLE; EXISTS_IN_IMAGE] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17276-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `c:real^N->bool` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17277:      DISCH_TAC THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17278-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [EXTENSION]) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17281-      MATCH_MP_TAC(TAUT `a /\ c ==> (a /\ b <=> c) ==> b`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17282:      CONJ_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17283-      FIRST_X_ASSUM(MP_TAC o SPEC `c:real^N->bool`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17284:      ANTS_TAC THENL [ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17285-      FIRST_X_ASSUM(MP_TAC o MATCH_MP OPEN_IN_SUBSET) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17286-      REWRITE_TAC[TOPSPACE_SUBTOPOLOGY; TOPSPACE_EUCLIDEAN] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17287:      ASM SET_TAC[]]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17288-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17375-  STRIP_ASSUME_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17376:   [EXPAND_TAC "d" THEN ASM_SIMP_TAC[COUNTABLE_RESTRICT] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17377-    ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17384-  ASM_SIMP_TAC[COUNTABLE_IMAGE; UNIONS_IMAGE] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17385:  REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17386-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17402-  `!f'. f' SUBSET f ==> UNIONS f' = (u:real^N->bool) INTER UNIONS (IMAGE v f')`
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17403:  MP_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[SUBSET_REFL]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17404-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17484-    SUBGOAL_THEN `?u:real^N->bool. x IN u /\ u IN b /\ u SUBSET t` MP_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17485:     [ASM SET_TAC[]; MATCH_MP_TAC MONO_EXISTS] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17486-    REPEAT STRIP_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17487-    MATCH_MP_TAC COUNTABLE_SUBSET THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17488:    EXISTS_TAC `s INTER t:real^N->bool` THEN ASM SET_TAC[]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17489-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17606-     [`s:real^N->bool`;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17607:      `{ x:real^N | !i. 1 <= i /\ i <= dimindex(:N) ==> rational(x$i) }`;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17608-      `(:num)`] CARD_LE_TRANS) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17661-  REPEAT CONJ_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17662:   [ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17663-    MATCH_MP_TAC CLOSED_INTERS THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17690-        FIRST_X_ASSUM(MP_TAC o SELECT_RULE) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17691:        ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17692-        FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [NOT_EXISTS_THM]) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17693-        DISCH_THEN(MP_TAC o SPEC `t:real^N->bool`) THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17694:        ASM SET_TAC[]]]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17695-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17715-      MATCH_MP_TAC TRANSITIVE_STEPWISE_LE THEN ASM_SIMP_TAC[] THEN SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17716:      ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17717-      FIRST_X_ASSUM MATCH_MP_TAC THEN ASM_REWRITE_TAC[]];
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17871-        FUNCTION_CONVERGENT_SUBSEQUENCE) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17872:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17873-  MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `k:num->num` THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17912-  ASM_SIMP_TAC[] THEN REMOVE_THEN "*" (MP_TAC o SPEC `y:real^M`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17913:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17914-  DISCH_THEN(MP_TAC o SPECL [`m:num`; `n:num`]) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17965-        STRIP_TAC THEN REWRITE_TAC[SUBSET; CLOSURE_APPROACHABLE] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17966:        ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17967-        ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17978-        ASM_REWRITE_TAC[CENTRE_IN_BALL; REAL_HALF; IN_INTER] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:17979:        ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-17980-        FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP (SET_RULE
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18022-      REWRITE_TAC[SUBSET; IN_INTERS; FORALL_IN_IMAGE; FORALL_IN_GSPEC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18023:      ASM SET_TAC[]]]);;
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18024-
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18039-    MATCH_MP_TAC(SET_RULE `i SUBSET s /\ s DIFF i = s ==> i = {}`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18040:    CONJ_TAC THENL [REWRITE_TAC[INTERS_IMAGE] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18041-    REWRITE_TAC[DIFF_INTERS] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18106-  ASM_CASES_TAC `k:real^N->bool = {}` THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18107:   [ASM_REWRITE_TAC[] THEN ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18108-  MP_TAC(ISPEC `k:real^N->bool` COUNTABLE_AS_IMAGE) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18116-     [MATCH_MP_TAC OPEN_DIFF THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18117:      CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18118-      MATCH_MP_TAC CLOSED_UNIONS THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18121-      SIMP_TAC[FINITE_IMAGE; FINITE_NUMSEG_LT];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18122:      EXISTS_TAC `f((a:num->real^N) n):real^N->bool` THEN ASM SET_TAC[]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18123-    REWRITE_TAC[SUBSET; UNIONS_GSPEC; IN_ELIM_THM; IN_DIFF] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18130-      DISCH_THEN(MP_TAC o snd o EQ_IMP_RULE) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18131:      ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18132-      MATCH_MP_TAC MONO_EXISTS THEN X_GEN_TAC `n:num` THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18134-      FIRST_X_ASSUM(MP_TAC o SPEC `(a:num->real^N) n`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18135:      ANTS_TAC THENL [ASM SET_TAC[]; ASM_MESON_TAC[CLOSURE_SUBSET; SUBSET]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18136-      GEN_REWRITE_TAC LAND_CONV [num_WOP] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18137:      MATCH_MP_TAC MONO_EXISTS THEN ASM SET_TAC[]];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18138-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18143-    DISCH_THEN(MP_TAC o snd o EQ_IMP_RULE) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18144:    ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18145-    DISCH_THEN(X_CHOOSE_TAC `n:num`) THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18146-    EXISTS_TAC `e((a:num->real^N) n):real^N->bool` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18147:    ASM_REWRITE_TAC[] THEN CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18148-    REWRITE_TAC[SET_RULE
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18186-               EXISTS_IN_IMAGE; EXISTS_IN_INSERT; GSYM closed] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18187:  ANTS_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18188-  DISCH_THEN(X_CHOOSE_THEN `d:(real^N->bool)->bool` STRIP_ASSUME_TAC) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18190-  REPEAT CONJ_TAC THENL
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18191:   [REWRITE_TAC[UNIONS_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18192:    REWRITE_TAC[FORALL_IN_GSPEC] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18193-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18242-    ASM_SIMP_TAC[CONTINUOUS_ON_CONST; COND_ID; SUM_DELTA] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18243:    CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18244-    X_GEN_TAC `x:real^N` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18274-    ASM_SIMP_TAC[SETDIST_SING_IN_SET; IN_DIFF; REAL_MUL_LZERO] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18275:    ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18276-    ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18286-    DISCH_THEN SUBST1_TAC THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18287:    ASM_REWRITE_TAC[IN_INTER; IN_DIFF; IN_UNION] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18288-    ALL_TAC] THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18302-      ASM_CASES_TAC `(x:real^N) IN u` THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18303:      ASM_SIMP_TAC[SETDIST_SING_IN_SET; IN_DIFF] THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18304-      FIRST_X_ASSUM(MP_TAC o GEN_REWRITE_RULE I [SUBSET]) THEN
##############################################
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18333-    ASM_REWRITE_TAC[IN_ELIM_THM] THEN DISCH_TAC THEN
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml:18334:    MATCH_MP_TAC SETDIST_SING_IN_SET THEN ASM SET_TAC[];
hol-light-20190729/RichterHilbertAxiomGeometry/from_topology.ml-18335-    ASM_SIMP_TAC[LIFT_SUM; o_DEF] THEN MATCH_MP_TAC CONTINUOUS_VSUM THEN
##############################################
hol-light-20190729/Unity/aux_definitions.ml-28-    let th_tac (th:thm) (tac:tactic) = (UNDISCH_TAC (concl th)) THEN tac in
hol-light-20190729/Unity/aux_definitions.ml:29:    let u_asm  (th:thm) = itlist  th_tac [th] ALL_TAC in
hol-light-20190729/Unity/aux_definitions.ml-30-        FIRST_ASSUM u_asm
##############################################
hol-light-20190729/cart.ml-113-let finite_index = new_definition
hol-light-20190729/cart.ml:114:  `x$i = dest_cart x (finite_index i)`;;
hol-light-20190729/cart.ml-115-
##############################################
hol-light-20190729/cart.ml-145-let LAMBDA_ETA = prove
hol-light-20190729/cart.ml:146: (`!g. (lambda i. g$i) = g`,
hol-light-20190729/cart.ml-147-  REWRITE_TAC[CART_EQ; LAMBDA_BETA]);;
##############################################
hol-light-20190729/cart.ml-153-let FINITE_INDEX_INRANGE = prove
hol-light-20190729/cart.ml:154: (`!i. ?k. 1 <= k /\ k <= dimindex(:N) /\ !x:A^N. x$i = x$k`,
hol-light-20190729/cart.ml-155-  REWRITE_TAC[finite_index] THEN MESON_TAC[FINITE_INDEX_WORKS]);;
##############################################
hol-light-20190729/cart.ml-162-let CART_EQ_FULL = prove
hol-light-20190729/cart.ml:163: (`!x y:A^N. x = y <=> !i. x$i = y$i`,
hol-light-20190729/cart.ml-164-  REPEAT GEN_TAC THEN EQ_TAC THEN SIMP_TAC[] THEN SIMP_TAC[CART_EQ]);;
##############################################
hol-light-20190729/cart.ml-182-let fstcart = new_definition
hol-light-20190729/cart.ml:183:  `(fstcart:A^(M,N)finite_sum->A^M) f = lambda i. f$i`;;
hol-light-20190729/cart.ml-184-
##############################################
hol-light-20190729/cart.ml-512-  X_GEN_TAC `v:A^N` THEN REWRITE_TAC[IN_ELIM_THM] THEN
hol-light-20190729/cart.ml:513:  STRIP_TAC THEN EXISTS_TAC `(v:A^N)$(SUC n)` THEN
hol-light-20190729/cart.ml:514:  EXISTS_TAC `(lambda i. if i = SUC n then @x. F else (v:A^N)$i):A^N` THEN
hol-light-20190729/cart.ml-515-  SIMP_TAC[CART_EQ; LAMBDA_BETA; ARITH_RULE `i <= n ==> ~(i = SUC n)`] THEN
##############################################
hol-light-20190729/cart.ml-647-  REWRITE_TAC[PASTECART_IN_PCROSS; FSTCART_PASTECART; SNDCART_PASTECART] THEN
hol-light-20190729/cart.ml:648:  ASM SET_TAC[]);;
hol-light-20190729/cart.ml-649-
##############################################
hol-light-20190729/cart.ml-655-  REWRITE_TAC[EXTENSION; IN_IMAGE] THEN ONCE_REWRITE_TAC[CONJ_SYM] THEN
hol-light-20190729/cart.ml:656:  REWRITE_TAC[EXISTS_IN_PCROSS; FSTCART_PASTECART] THEN ASM SET_TAC[]);;
hol-light-20190729/cart.ml-657-
##############################################
hol-light-20190729/cart.ml-663-  REWRITE_TAC[EXTENSION; IN_IMAGE] THEN ONCE_REWRITE_TAC[CONJ_SYM] THEN
hol-light-20190729/cart.ml:664:  REWRITE_TAC[EXISTS_IN_PCROSS; SNDCART_PASTECART] THEN ASM SET_TAC[]);;
hol-light-20190729/cart.ml-665-
##############################################
hol-light-20190729/cart.ml-710-                  PASTECART_IN_PCROSS; NOT_IN_EMPTY] THEN
hol-light-20190729/cart.ml:711:  ASM SET_TAC[]);;
hol-light-20190729/cart.ml-712-
##############################################
hol-light-20190729/define.ml-798-      let th8 = PROVE_HYP (UNDISCH(snd(EQ_IMP_RULE th7))) th6 in
hol-light-20190729/define.ml:799:      let wfasm,cdasm = dest_conj(hd(hyp th8)) in
hol-light-20190729/define.ml-800-      let th9 = PROVE_HYP (CONJ (ASSUME wfasm) (ASSUME cdasm)) th8 in
hol-light-20190729/define.ml:801:      let th10 = SIMPLIFY_WELLDEFINEDNESS_CONV cdasm in
hol-light-20190729/define.ml-802-      let th11 = PROVE_HYP (UNDISCH(snd(EQ_IMP_RULE th10))) th9 in
##############################################
hol-light-20190729/define.ml-824-      let parms = if parms0 <> [] then parms0 else [genvar aty] in
hol-light-20190729/define.ml:825:      let wfasm = find is_exists (hyp th1) in
hol-light-20190729/define.ml:826:      let ord,bod = dest_exists wfasm in
hol-light-20190729/define.ml-827-      let SIMP_ADMISS_TAC =
##############################################
hol-light-20190729/define.ml-843-      let th3 = SIMPLE_EXISTS ord th2 in
hol-light-20190729/define.ml:844:      let allasms = hyp th3 and wfasm = lhand(concl th2) in
hol-light-20190729/define.ml-845-      let th4 = ASSUME(list_mk_conj(wfasm::subtract allasms [wfasm])) in
##############################################
hol-light-20190729/impconv.ml-1404-(* Tactic for implicational rewrite with assumptions. *)
hol-light-20190729/impconv.ml:1405:let ASM_IMP_REWRITE_TAC = ASM IMP_REWRITE_TAC
hol-light-20190729/impconv.ml-1406-
##############################################
hol-light-20190729/ind_defs.ml-437-    let th3 = IMP_TRANS th1 th2 in
hol-light-20190729/ind_defs.ml:438:    let nasm = lhand(concl th3) in
hol-light-20190729/ind_defs.ml:439:    let th4 = GENL ps (DISCH nasm (weaken_triv(UNDISCH th3))) in
hol-light-20190729/ind_defs.ml-440-    GENL svs (prove_monotonicity_hyps th4);;
##############################################
hol-light-20190729/ind_types.ml-564-      (CONJUNCTS rth) (conjuncts(lhand(concl iith))) in
hol-light-20190729/ind_types.ml:565:    let asm = list_mk_conj(map (lhand o concl) bths) in
hol-light-20190729/ind_types.ml-566-    let ths = map2 MP bths (CONJUNCTS (ASSUME asm)) in
##############################################
hol-light-20190729/ind_types.ml-569-      (finish_induction_conclusion consindex tybijpairs) (CONJUNCTS th1)) in
hol-light-20190729/ind_types.ml:570:    let th3 = DISCH asm th2 in
hol-light-20190729/ind_types.ml-571-    let preds = map (rator o body o rand) (conjuncts(rand(concl th3))) in
##############################################
hol-light-20190729/iterate.ml-224-    ASM_CASES_TAC `((a:A) << (b:A)) :bool` THENL
hol-light-20190729/iterate.ml:225:     [EXISTS_TAC `a:A`; EXISTS_TAC `b:A`] THEN ASM SET_TAC[];
hol-light-20190729/iterate.ml-226-    ALL_TAC] THEN
##############################################
hol-light-20190729/iterate.ml-252-    ASM_REWRITE_TAC[LT_REFL] THENL
hol-light-20190729/iterate.ml:253:     [STRIP_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/iterate.ml-254-      ARITH_TAC;
##############################################
hol-light-20190729/iterate.ml-696-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP ITERATE_SUPERSET) THEN
hol-light-20190729/iterate.ml:697:  ASM SET_TAC[]);;
hol-light-20190729/iterate.ml-698-
##############################################
hol-light-20190729/iterate.ml-743-    SUBGOAL_THEN `{y | y IN IMAGE (f:A->B) s /\ f x = y} = {(f x)}`
hol-light-20190729/iterate.ml:744:    SUBST1_TAC THENL [ASM SET_TAC[]; ASM_SIMP_TAC[ITERATE_SING]];
hol-light-20190729/iterate.ml-745-    ASM_SIMP_TAC[ITERATE_RESTRICT_SET] THEN
##############################################
hol-light-20190729/iterate.ml-1062-  FIRST_X_ASSUM(MATCH_MP_TAC o MATCH_MP ITERATE_SUPERSET) THEN
hol-light-20190729/iterate.ml:1063:  ASM SET_TAC[]);;
hol-light-20190729/iterate.ml-1064-
##############################################
hol-light-20190729/iterate.ml-1190-  MATCH_MP_TAC NSUM_SUPERSET THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/iterate.ml:1191:  REPEAT STRIP_TAC THEN MATCH_MP_TAC NSUM_EQ_0 THEN ASM SET_TAC[]);;
hol-light-20190729/iterate.ml-1192-
##############################################
hol-light-20190729/iterate.ml-1204-  MATCH_MP_TAC NSUM_EQ THEN REPEAT STRIP_TAC THEN REWRITE_TAC[] THEN
hol-light-20190729/iterate.ml:1205:  AP_THM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/iterate.ml-1206-
##############################################
hol-light-20190729/iterate.ml-1496-  ASM_SIMP_TAC[FINITE_UNIONS; FINITE_UNION; INTER_UNIONS] THEN
hol-light-20190729/iterate.ml:1497:  REWRITE_TAC[EMPTY_UNIONS; IN_ELIM_THM] THEN ASM MESON_TAC[]);;
hol-light-20190729/iterate.ml-1498-
##############################################
hol-light-20190729/iterate.ml-1921-  MATCH_MP_TAC SUM_SUPERSET THEN ASM_REWRITE_TAC[] THEN
hol-light-20190729/iterate.ml:1922:  REPEAT STRIP_TAC THEN MATCH_MP_TAC SUM_EQ_0 THEN ASM SET_TAC[]);;
hol-light-20190729/iterate.ml-1923-
##############################################
hol-light-20190729/iterate.ml-1935-  MATCH_MP_TAC SUM_EQ THEN REPEAT STRIP_TAC THEN REWRITE_TAC[] THEN
hol-light-20190729/iterate.ml:1936:  AP_THM_TAC THEN AP_TERM_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/iterate.ml-1937-
##############################################
hol-light-20190729/iterate.ml-2086-  ASM_SIMP_TAC[SUM_POS_LE; FINITE_RESTRICT; IN_ELIM_THM] THEN
hol-light-20190729/iterate.ml:2087:  ASM SET_TAC[]);;
hol-light-20190729/iterate.ml-2088-
##############################################
hol-light-20190729/miz3/Samples/icms.ml-51-      ~(IMAGE (\x. abs (f x)) (:real) = {}) /\ (?b. !x. abs (f x) <= b) [5]
hol-light-20190729/miz3/Samples/icms.ml:52:        by ASM SET_TAC[],-,3;
hol-light-20190729/miz3/Samples/icms.ml-53-      now
##############################################
hol-light-20190729/miz3/bin/miz3-13-  then echo "no server found" 1>&2; exit 1; fi
hol-light-20190729/miz3/bin/miz3:14:pid=`cat $pidfile | head -1`
hol-light-20190729/miz3/bin/miz3-15-echo "waiting for server to be free" 1>&2
##############################################
hol-light-20190729/miz3/bin/miz3f-21-    if $e != 0 && $e != 1;
hol-light-20190729/miz3/bin/miz3f:22:  $x = `cat $file`;
hol-light-20190729/miz3/bin/miz3f-23-  $x =~ s/\s*;+\s*$//s if !$s;
##############################################
hol-light-20190729/pa_j_3.1x_5.xx.ml-302-    match strm with parser
hol-light-20190729/pa_j_3.1x_5.xx.ml:303:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_5.xx.ml-304-        ("ANTIQUOT", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_5.xx.ml-311-    match strm with parser
hol-light-20190729/pa_j_3.1x_5.xx.ml:312:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_5.xx.ml-313-        ("ANTIQUOT_LOC", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_5.xx.ml-326-    match strm with parser
hol-light-20190729/pa_j_3.1x_5.xx.ml:327:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_5.xx.ml-328-        ("ANTIQUOT", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_5.xx.ml-335-    match strm with parser
hol-light-20190729/pa_j_3.1x_5.xx.ml:336:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_5.xx.ml-337-        ("ANTIQUOT_LOC", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.02.1.ml-1052-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.02.1.ml:1053:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.02.1.ml-1054-        ("ANTIQUOT", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.02.1.ml-1061-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.02.1.ml:1062:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.02.1.ml-1063-        ("ANTIQUOT_LOC", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.02.1.ml-1076-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.02.1.ml:1077:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.02.1.ml-1078-        ("ANTIQUOT", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.02.1.ml-1085-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.02.1.ml:1086:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.02.1.ml-1087-        ("ANTIQUOT_LOC", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.02.2.ml-1034-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.02.2.ml:1035:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.02.2.ml-1036-        ("ANTIQUOT", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.02.2.ml-1043-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.02.2.ml:1044:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.02.2.ml-1045-        ("ANTIQUOT_LOC", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.02.2.ml-1058-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.02.2.ml:1059:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.02.2.ml-1060-        ("ANTIQUOT", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.02.2.ml-1067-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.02.2.ml:1068:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.02.2.ml-1069-        ("ANTIQUOT_LOC", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.11.ml-1105-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.11.ml:1106:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.11.ml-1107-        ("ANTIQUOT", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.11.ml-1114-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.11.ml:1115:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.11.ml-1116-        ("ANTIQUOT_LOC", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.11.ml-1129-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.11.ml:1130:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.11.ml-1131-        ("ANTIQUOT", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.11.ml-1138-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.11.ml:1139:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.11.ml-1140-        ("ANTIQUOT_LOC", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.xx.ml-1046-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.xx.ml:1047:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.xx.ml-1048-        ("ANTIQUOT", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.xx.ml-1055-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.xx.ml:1056:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.xx.ml-1057-        ("ANTIQUOT_LOC", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.xx.ml-1070-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.xx.ml:1071:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.xx.ml-1072-        ("ANTIQUOT", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_3.1x_6.xx.ml-1079-    match strm with parser
hol-light-20190729/pa_j_3.1x_6.xx.ml:1080:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_3.1x_6.xx.ml-1081-        ("ANTIQUOT_LOC", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_4.xx_7.06.ml-1108-    match strm with parser
hol-light-20190729/pa_j_4.xx_7.06.ml:1109:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_4.xx_7.06.ml-1110-        ("ANTIQUOT", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_4.xx_7.06.ml-1117-    match strm with parser
hol-light-20190729/pa_j_4.xx_7.06.ml:1118:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_4.xx_7.06.ml-1119-        ("ANTIQUOT_LOC", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_4.xx_7.06.ml-1132-    match strm with parser
hol-light-20190729/pa_j_4.xx_7.06.ml:1133:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_4.xx_7.06.ml-1134-        ("ANTIQUOT", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_4.xx_7.06.ml-1141-    match strm with parser
hol-light-20190729/pa_j_4.xx_7.06.ml:1142:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_4.xx_7.06.ml-1143-        ("ANTIQUOT_LOC", "~" ^ s ^ ":")
##############################################
hol-light-20190729/sets.ml-279-        if P a then a INSERT {x | x IN s /\ P x} else {x | x IN s /\ P x}`,
hol-light-20190729/sets.ml:280:  REPEAT GEN_TAC THEN COND_CASES_TAC THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-281-
##############################################
hol-light-20190729/sets.ml-439-  REPEAT GEN_TAC THEN EQ_TAC THENL
hol-light-20190729/sets.ml:440:   [REPEAT STRIP_TAC THEN FIRST_X_ASSUM MATCH_MP_TAC THEN ASM SET_TAC[];
hol-light-20190729/sets.ml-441-    DISCH_TAC THEN X_GEN_TAC `s:A->bool` THEN DISCH_TAC THEN
##############################################
hol-light-20190729/sets.ml-443-    ANTS_TAC THENL [ALL_TAC; MATCH_MP_TAC EQ_IMP THEN AP_TERM_TAC] THEN
hol-light-20190729/sets.ml:444:    ASM SET_TAC[]]);;
hol-light-20190729/sets.ml-445-
##############################################
hol-light-20190729/sets.ml-1119-  ASM_REWRITE_TAC[INTERS_0; INTER_UNIV; INTERS_GSPEC] THEN
hol-light-20190729/sets.ml:1120:  ASM SET_TAC[]);;
hol-light-20190729/sets.ml-1121-
##############################################
hol-light-20190729/sets.ml-1178-   [MATCH_MP_TAC IMAGE_INTER_SATURATED_GEN THEN
hol-light-20190729/sets.ml:1179:    EXISTS_TAC `u:A->bool` THEN ASM SET_TAC[];
hol-light-20190729/sets.ml:1180:    MATCH_MP_TAC lemma THEN ASM SET_TAC[]]);;
hol-light-20190729/sets.ml-1181-
##############################################
hol-light-20190729/sets.ml-1316-   [REWRITE_TAC[GSYM SURJECTIVE_ON_RIGHT_INVERSE] THEN SET_TAC[];
hol-light-20190729/sets.ml:1317:    EXISTS_TAC `IMAGE (g:B->A) (IMAGE (f:A->B) s)` THEN ASM SET_TAC[]]);;
hol-light-20190729/sets.ml-1318-
##############################################
hol-light-20190729/sets.ml-1384-  REPEAT STRIP_TAC THEN MATCH_MP_TAC FINITE_SUBSET THEN
hol-light-20190729/sets.ml:1385:  ASM_REWRITE_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-1386-
##############################################
hol-light-20190729/sets.ml-1427-  MATCH_MP_TAC FINITE_SUBSET THEN EXISTS_TAC `IMAGE (g:B->A) A` THEN
hol-light-20190729/sets.ml:1428:  ASM_SIMP_TAC[FINITE_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-1429-
##############################################
hol-light-20190729/sets.ml-1475-  SUBGOAL_THEN `s = IMAGE (g:B->A) (IMAGE f s)` SUBST1_TAC THENL
hol-light-20190729/sets.ml:1476:   [ASM SET_TAC[]; MATCH_MP_TAC FINITE_IMAGE THEN ASM_REWRITE_TAC[]]);;
hol-light-20190729/sets.ml-1477-
##############################################
hol-light-20190729/sets.ml-1506-  DISCH_THEN(X_CHOOSE_TAC `g:B->A`) THEN
hol-light-20190729/sets.ml:1507:  EXISTS_TAC `IMAGE (g:B->A) s` THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-1508-
##############################################
hol-light-20190729/sets.ml-1635-  ASM_SIMP_TAC[NOT_IMP; FINITE_RESTRICT; FORALL_IN_GSPEC; EXISTS_IN_GSPEC] THEN
hol-light-20190729/sets.ml:1636:  REPEAT CONJ_TAC THENL [SET_TAC[]; SET_TAC[]; ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/sets.ml-1637-  ASM_MESON_TAC[PSUBSET_TRANS; SUBSET_PSUBSET_TRANS; PSUBSET]);;
##############################################
hol-light-20190729/sets.ml-1649-  EXISTS_TAC `IMAGE (u:A->A->bool) s` THEN
hol-light-20190729/sets.ml:1650:  ASM_SIMP_TAC[FINITE_IMAGE; UNIONS_IMAGE] THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-1651-
##############################################
hol-light-20190729/sets.ml-1667-    ==> t IN f ==> s UNION t = s \/ s UNION t IN f`) THEN
hol-light-20190729/sets.ml:1668:  ASM SET_TAC[]);;
hol-light-20190729/sets.ml-1669-
##############################################
hol-light-20190729/sets.ml-1685-    ==> t IN f ==> s INTER t = s \/ s INTER t IN f`) THEN
hol-light-20190729/sets.ml:1686:  ASM SET_TAC[]);;
hol-light-20190729/sets.ml-1687-
##############################################
hol-light-20190729/sets.ml-1698-  ASM_CASES_TAC `t:(A->bool)->bool = {}` THENL
hol-light-20190729/sets.ml:1699:   [ASM_SIMP_TAC[UNIONS_0] THEN ASM SET_TAC[]; STRIP_TAC] THEN
hol-light-20190729/sets.ml-1700-  EXISTS_TAC `UNIONS t:A->bool` THEN
##############################################
hol-light-20190729/sets.ml-1702-  FIRST_ASSUM(MATCH_MP_TAC o REWRITE_RULE[SUBSET]) THEN
hol-light-20190729/sets.ml:1703:  MATCH_MP_TAC UNIONS_IN_CHAIN THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-1704-
##############################################
hol-light-20190729/sets.ml-1955-  MATCH_MP_TAC(ARITH_RULE `a + b:num = c ==> a = c - b`) THEN
hol-light-20190729/sets.ml:1956:  MATCH_MP_TAC CARD_UNION_EQ THEN ASM_SIMP_TAC[] THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-1957-
##############################################
hol-light-20190729/sets.ml-2313-  SUBGOAL_THEN `IMAGE  (f:A->B) s = IMAGE f (s DELETE y)` SUBST1_TAC THENL
hol-light-20190729/sets.ml:2314:   [ASM SET_TAC[]; REWRITE_TAC[]] THEN
hol-light-20190729/sets.ml-2315-  MATCH_MP_TAC(ARITH_RULE `!n. m <= n /\ n < p ==> ~(m:num = p)`) THEN
##############################################
hol-light-20190729/sets.ml-2319-               ARITH_RULE `n - 1 < n <=> ~(n = 0)`] THEN
hol-light-20190729/sets.ml:2320:  ASM SET_TAC[]);;
hol-light-20190729/sets.ml-2321-
##############################################
hol-light-20190729/sets.ml-2337-  EXISTS_TAC `(a:A) INSERT t` THEN
hol-light-20190729/sets.ml:2338:  REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/sets.ml-2339-  RULE_ASSUM_TAC(REWRITE_RULE[HAS_SIZE]) THEN
##############################################
hol-light-20190729/sets.ml-2342-  GEN_TAC THEN COND_CASES_TAC THEN REWRITE_TAC[SUC_SUB1] THEN
hol-light-20190729/sets.ml:2343:  ASM SET_TAC[]);;
hol-light-20190729/sets.ml-2344-
##############################################
hol-light-20190729/sets.ml-2371-    EXISTS_TAC `s UNION t:A->bool` THEN
hol-light-20190729/sets.ml:2372:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN
hol-light-20190729/sets.ml-2373-    SUBGOAL_THEN `n:num = CARD(s) + (n - CARD(s:A->bool))` SUBST1_TAC THENL
##############################################
hol-light-20190729/sets.ml-2375-      MATCH_MP_TAC HAS_SIZE_UNION] THEN
hol-light-20190729/sets.ml:2376:      ASM_REWRITE_TAC[] THEN ASM_REWRITE_TAC[HAS_SIZE] THEN ASM SET_TAC[]]);;
hol-light-20190729/sets.ml-2377-
##############################################
hol-light-20190729/sets.ml-2532-  REWRITE_TAC[SUBSET; IN_IMAGE; EXISTS_PAIR_THM; IN_CROSS] THEN
hol-light-20190729/sets.ml:2533:  ASM SET_TAC[]);;
hol-light-20190729/sets.ml-2534-
##############################################
hol-light-20190729/sets.ml-2575-  REWRITE_TAC[EXTENSION; IN_IMAGE] THEN ONCE_REWRITE_TAC[CONJ_SYM] THEN
hol-light-20190729/sets.ml:2576:  REWRITE_TAC[EXISTS_IN_CROSS; FST] THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-2577-
##############################################
hol-light-20190729/sets.ml-2583-  REWRITE_TAC[EXTENSION; IN_IMAGE] THEN ONCE_REWRITE_TAC[CONJ_SYM] THEN
hol-light-20190729/sets.ml:2584:  REWRITE_TAC[EXISTS_IN_CROSS; SND] THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-2585-
##############################################
hol-light-20190729/sets.ml-2637-                  IN_CROSS; NOT_IN_EMPTY] THEN
hol-light-20190729/sets.ml:2638:  ASM SET_TAC[]);;
hol-light-20190729/sets.ml-2639-
##############################################
hol-light-20190729/sets.ml-2868-    ASM_REWRITE_TAC[GSYM SUBSET_ANTISYM_EQ; SUBSET_CARTESIAN_PRODUCT] THEN
hol-light-20190729/sets.ml:2869:    ASM SET_TAC[]]);;
hol-light-20190729/sets.ml-2870-
##############################################
hol-light-20190729/sets.ml-2973-  ASM_REWRITE_TAC[RESTRICTION_EXTENSION] THEN
hol-light-20190729/sets.ml:2974:  ASM SET_TAC[]);;
hol-light-20190729/sets.ml-2975-
##############################################
hol-light-20190729/sets.ml-3186-  X_GEN_TAC `s:A->bool` THEN
hol-light-20190729/sets.ml:3187:  ASM_CASES_TAC `(a:A) IN s` THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/sets.ml-3188-  STRIP_TAC THEN DISJ2_TAC THEN EXISTS_TAC `s DELETE (a:A)` THEN
hol-light-20190729/sets.ml:3189:  ASM SET_TAC[]);;
hol-light-20190729/sets.ml-3190-
##############################################
hol-light-20190729/sets.ml-3218-    REWRITE_TAC[SUBSET; FORALL_IN_IMAGE; IN_ELIM_THM; IN_CROSS] THEN
hol-light-20190729/sets.ml:3219:    ASM SET_TAC[]] THEN
hol-light-20190729/sets.ml-3220-  REWRITE_TAC[FUN_EQ_THM] THEN X_GEN_TAC `x:A` THEN
##############################################
hol-light-20190729/sets.ml-3611-  CONJ_TAC THENL
hol-light-20190729/sets.ml:3612:   [REWRITE_TAC[GSYM UNIONS_UNION] THEN AP_TERM_TAC THEN ASM SET_TAC[];
hol-light-20190729/sets.ml-3613-    REWRITE_TAC[DISJOINT; INTER_UNIONS; EMPTY_UNIONS; FORALL_IN_GSPEC] THEN
##############################################
hol-light-20190729/sets.ml-3616-    FIRST_X_ASSUM MATCH_MP_TAC THEN
hol-light-20190729/sets.ml:3617:    REPEAT(CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC]) THEN ASM_MESON_TAC[]]);;
hol-light-20190729/sets.ml-3618-
##############################################
hol-light-20190729/sets.ml-3631-  ASM_CASES_TAC `u:A->bool = v` THEN ASM_REWRITE_TAC[] THENL
hol-light-20190729/sets.ml:3632:   [ASM_MESON_TAC[]; ASM SET_TAC[]]);;
hol-light-20190729/sets.ml-3633-
##############################################
hol-light-20190729/sets.ml-3639-  MATCH_MP_TAC(SET_RULE `u SUBSET v /\ ~(v DIFF u = {}) ==> u PSUBSET v`) THEN
hol-light-20190729/sets.ml:3640:  CONJ_TAC THENL [ASM SET_TAC[]; ALL_TAC] THEN
hol-light-20190729/sets.ml-3641-  W(MP_TAC o PART_MATCH (lhand o rand)
hol-light-20190729/sets.ml-3642-      DIFF_UNIONS_PAIRWISE_DISJOINT o lhand o rand o snd) THEN
hol-light-20190729/sets.ml:3643:  ANTS_TAC THENL [ASM SET_TAC[]; DISCH_THEN SUBST1_TAC] THEN
hol-light-20190729/sets.ml-3644-  REWRITE_TAC[EMPTY_UNIONS] THEN
##############################################
hol-light-20190729/sets.ml-3722-  REWRITE_TAC[ARBITRARY; UNION_OF] THEN
hol-light-20190729/sets.ml:3723:  EXISTS_TAC `{u:A->bool | u IN B /\ u SUBSET s}` THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-3724-
##############################################
hol-light-20190729/sets.ml-3774-  REWRITE_TAC[FORALL_IN_IMAGE; FORALL_IN_GSPEC] THEN
hol-light-20190729/sets.ml:3775:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[UNIONS_IMAGE]] THEN
hol-light-20190729/sets.ml:3776:  REWRITE_TAC[EXISTS_IN_GSPEC] THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-3777-
##############################################
hol-light-20190729/sets.ml-3917-  REWRITE_TAC[FORALL_IN_IMAGE; FORALL_IN_GSPEC] THEN
hol-light-20190729/sets.ml:3918:  CONJ_TAC THENL [ASM SET_TAC[]; REWRITE_TAC[UNIONS_IMAGE]] THEN
hol-light-20190729/sets.ml:3919:  REWRITE_TAC[EXISTS_IN_GSPEC] THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-3920-
##############################################
hol-light-20190729/sets.ml-4138-   [DISCH_TAC THEN X_GEN_TAC `y:B` THEN DISCH_TAC THEN
hol-light-20190729/sets.ml:4139:    FIRST_X_ASSUM(MP_TAC o SPEC `{y:B}`) THEN ASM SET_TAC[];
hol-light-20190729/sets.ml-4140-    DISCH_TAC THEN X_GEN_TAC `t:B->bool` THEN DISCH_TAC THEN
hol-light-20190729/sets.ml:4141:    EXISTS_TAC `{x | x IN u /\ (f:A->B) x IN t}` THEN ASM SET_TAC[]]);;
hol-light-20190729/sets.ml-4142-
##############################################
hol-light-20190729/sets.ml-4154-        u SUBSET IMAGE f s`,
hol-light-20190729/sets.ml:4155:  REPEAT GEN_TAC THEN EQ_TAC THEN DISCH_TAC THENL [ALL_TAC; ASM SET_TAC[]] THEN
hol-light-20190729/sets.ml-4156-  REWRITE_TAC[SUBSET] THEN X_GEN_TAC `y:B` THEN
hol-light-20190729/sets.ml:4157:  FIRST_X_ASSUM(MP_TAC o SPECL [`{y:B}`; `{}:B->bool`]) THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-4158-
##############################################
hol-light-20190729/sets.ml-4167-     [REWRITE_TAC[SUBSET; FORALL_IN_IMAGE] THEN X_GEN_TAC `x:A` THEN
hol-light-20190729/sets.ml:4168:      DISCH_TAC THEN FIRST_X_ASSUM(MP_TAC o SPEC `{x:A}`) THEN ASM SET_TAC[];
hol-light-20190729/sets.ml-4169-      MAP_EVERY X_GEN_TAC [`x:A`; `y:A`] THEN STRIP_TAC THEN
hol-light-20190729/sets.ml:4170:      FIRST_X_ASSUM(MP_TAC o SPEC `{x:A}`) THEN ASM SET_TAC[]];
hol-light-20190729/sets.ml-4171-    X_GEN_TAC `k:A->bool` THEN STRIP_TAC THEN
hol-light-20190729/sets.ml:4172:    EXISTS_TAC `IMAGE (f:A->B) k` THEN ASM SET_TAC[]]);;
hol-light-20190729/sets.ml-4173-
##############################################
hol-light-20190729/sets.ml-4220-  REPEAT STRIP_TAC THEN SUBGOAL_THEN `t = IMAGE (f:A->B) s` SUBST_ALL_TAC THENL
hol-light-20190729/sets.ml:4221:   [ASM SET_TAC[];
hol-light-20190729/sets.ml-4222-    MATCH_MP_TAC HAS_SIZE_IMAGE_INJ THEN ASM_MESON_TAC[]]);;
##############################################
hol-light-20190729/sets.ml-4374-  REPEAT STRIP_TAC THEN MATCH_MP_TAC REAL_SUP_LE THEN
hol-light-20190729/sets.ml:4375:  MP_TAC(SPEC `t:real->bool` SUP) THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-4376-
##############################################
hol-light-20190729/sets.ml-4435-  REPEAT STRIP_TAC THEN GEN_REWRITE_TAC RAND_CONV [GSYM SUP_SING] THEN
hol-light-20190729/sets.ml:4436:  MATCH_MP_TAC SUP_EQ THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-4437-
##############################################
hol-light-20190729/sets.ml-4534-  REPEAT STRIP_TAC THEN MATCH_MP_TAC REAL_LE_INF THEN
hol-light-20190729/sets.ml:4535:  MP_TAC(SPEC `s:real->bool` INF) THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-4536-
##############################################
hol-light-20190729/sets.ml-4606-  REPEAT STRIP_TAC THEN GEN_REWRITE_TAC RAND_CONV [GSYM INF_SING] THEN
hol-light-20190729/sets.ml:4607:  MATCH_MP_TAC INF_EQ THEN ASM SET_TAC[]);;
hol-light-20190729/sets.ml-4608-
##############################################
hol-light-20190729/simp.ml-476-let (PURE_ASM_REWRITE_TAC: thm list -> tactic) =
hol-light-20190729/simp.ml:477:  ASM PURE_REWRITE_TAC;;
hol-light-20190729/simp.ml-478-
hol-light-20190729/simp.ml-479-let (ASM_REWRITE_TAC: thm list -> tactic) =
hol-light-20190729/simp.ml:480:  ASM REWRITE_TAC;;
hol-light-20190729/simp.ml-481-
hol-light-20190729/simp.ml-482-let (PURE_ONCE_ASM_REWRITE_TAC: thm list -> tactic) =
hol-light-20190729/simp.ml:483:  ASM PURE_ONCE_REWRITE_TAC;;
hol-light-20190729/simp.ml-484-
hol-light-20190729/simp.ml-485-let (ONCE_ASM_REWRITE_TAC: thm list -> tactic) =
hol-light-20190729/simp.ml:486:  ASM ONCE_REWRITE_TAC;;
hol-light-20190729/simp.ml-487-
##############################################
hol-light-20190729/simp.ml-531-
hol-light-20190729/simp.ml:532:let ASM_SIMP_TAC = ASM SIMP_TAC;;
hol-light-20190729/simp.ml-533-
hol-light-20190729/simp.ml:534:let PURE_ASM_SIMP_TAC = ASM PURE_SIMP_TAC;;
hol-light-20190729/simp.ml-535-
hol-light-20190729/simp.ml:536:let ONCE_ASM_SIMP_TAC = ASM ONCE_SIMP_TAC;;
hol-light-20190729/simp.ml-537-
##############################################
hol-light-20190729/tactics.ml-299-(* General tools to augment a required set of theorems with assumptions.     *)
hol-light-20190729/tactics.ml:300:(* Here ASM uses all current hypotheses of the goal, while HYP uses only     *)
hol-light-20190729/tactics.ml-301-(* those whose labels are given in the string argument.                      *)
##############################################
hol-light-20190729/tactics.ml-303-
hol-light-20190729/tactics.ml:304:let (ASM :(thm list -> tactic)->(thm list -> tactic)) =
hol-light-20190729/tactics.ml-305-  fun tltac ths (asl,w as g) -> tltac (map snd asl @ ths) g;;
##############################################
hol-light-20190729/.pc/0004-Fix-compilation-with-camlp5-7.11.patch/pa_j_4.xx_7.xx.ml-1108-    match strm with parser
hol-light-20190729/.pc/0004-Fix-compilation-with-camlp5-7.11.patch/pa_j_4.xx_7.xx.ml:1109:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/.pc/0004-Fix-compilation-with-camlp5-7.11.patch/pa_j_4.xx_7.xx.ml-1110-        ("ANTIQUOT", "?" ^ s ^ ":")
##############################################
hol-light-20190729/.pc/0004-Fix-compilation-with-camlp5-7.11.patch/pa_j_4.xx_7.xx.ml-1117-    match strm with parser
hol-light-20190729/.pc/0004-Fix-compilation-with-camlp5-7.11.patch/pa_j_4.xx_7.xx.ml:1118:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/.pc/0004-Fix-compilation-with-camlp5-7.11.patch/pa_j_4.xx_7.xx.ml-1119-        ("ANTIQUOT_LOC", "?" ^ s ^ ":")
##############################################
hol-light-20190729/.pc/0004-Fix-compilation-with-camlp5-7.11.patch/pa_j_4.xx_7.xx.ml-1132-    match strm with parser
hol-light-20190729/.pc/0004-Fix-compilation-with-camlp5-7.11.patch/pa_j_4.xx_7.xx.ml:1133:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/.pc/0004-Fix-compilation-with-camlp5-7.11.patch/pa_j_4.xx_7.xx.ml-1134-        ("ANTIQUOT", "~" ^ s ^ ":")
##############################################
hol-light-20190729/.pc/0004-Fix-compilation-with-camlp5-7.11.patch/pa_j_4.xx_7.xx.ml-1141-    match strm with parser
hol-light-20190729/.pc/0004-Fix-compilation-with-camlp5-7.11.patch/pa_j_4.xx_7.xx.ml:1142:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/.pc/0004-Fix-compilation-with-camlp5-7.11.patch/pa_j_4.xx_7.xx.ml-1143-        ("ANTIQUOT_LOC", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_4.xx_7.xx.ml-1110-    match strm with parser
hol-light-20190729/pa_j_4.xx_7.xx.ml:1111:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_4.xx_7.xx.ml-1112-        ("ANTIQUOT", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_4.xx_7.xx.ml-1119-    match strm with parser
hol-light-20190729/pa_j_4.xx_7.xx.ml:1120:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_4.xx_7.xx.ml-1121-        ("ANTIQUOT_LOC", "?" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_4.xx_7.xx.ml-1134-    match strm with parser
hol-light-20190729/pa_j_4.xx_7.xx.ml:1135:    [ [: `'$'; s = antiquot ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_4.xx_7.xx.ml-1136-        ("ANTIQUOT", "~" ^ s ^ ":")
##############################################
hol-light-20190729/pa_j_4.xx_7.xx.ml-1143-    match strm with parser
hol-light-20190729/pa_j_4.xx_7.xx.ml:1144:    [ [: `'$'; s = antiquot_loc ctx bp $empty; `':' :] ->
hol-light-20190729/pa_j_4.xx_7.xx.ml-1145-        ("ANTIQUOT_LOC", "~" ^ s ^ ":")