1 (* ---------------------------------------------------------------------- *)
3 (* ---------------------------------------------------------------------- *)
5 let NOT_NIL = prove_by_refinement(
6 `!l. ~(l = []) <=> ?(h:A) t. l = CONS h t`,
10 STRIP_TAC THEN EQ_TAC;
11 MESON_TAC[list_CASES];
13 ASM_MESON_TAC[NOT_CONS_NIL];
18 let LIST_REWRITES = ref [
29 let LIST_SIMP_TAC = REWRITE_TAC (
33 let extend_list_rewrites l =
34 LIST_REWRITES := !LIST_REWRITES @ l;;
36 BASIC_REWRITES := !LIST_REWRITES @ !BASIC_REWRITES;;