]     \\ `Num (ABS k) < LENGTH ws' <=> k < &LENGTH ws'` by intLib.COOPER_TAC     \\ fs [GREATER_EQ,GSYM NOT_LESS]     \\ IF_CASES_TAC \\ fs [] \\ rveq \\ fs [v_rel_def]     \\ fs [option_case_eq] \\ rveq \\ fs [v_rel_def,Unit_def,EVAL ``tuple_tag``]     \\ rename [`store_v_same_type (EL j s0.refs)`]     \\ Cases_on `EL j s0.refs` \\ fs [store_v_same_type_def]     \\ fs [state_rel_def,store_rel_def]     \\ strip_tac     \\ last_x_assum (qspec_then `i` mp_tac)     \\ fs [FLOOKUP_UPDATE] \\ IF_CASES_TAC \\ fs [EL_LUPDATE]     \\ Cases_on `i = j` \\ fs []     \\ rveq \\ fs [] \\ rpt strip_tac \\ rveq \\ fs []     \\ `ABS k = k` by intLib.COOPER_TAC \\ simp []) 