simpLib.type_ssfrag : string -> ssfrag
- val ss = simpLib.type_ssfrag "list";
> val ss =
simpLib.SSFRAG{ac = [], congs = [], convs = [], dprocs = [],
filter = NONE,
rewrs =
[|- (!v f. case v f [] = v) /\
!v f a0 a1. case v f (a0::a1) = f a0 a1,
|- !a1 a0. ~([] = a0::a1),
|- !a1 a0. ~(a0::a1 = []),
|- !a0 a1 a0' a1'. (a0::a1 = a0'::a1') =
(a0 = a0') /\ (a1 = a1')]}
: ssfrag
- SIMP_CONV (bool_ss ++ ss) [] ``h::t = []``;
<<HOL message: inventing new type variable names: 'a>>
> val it = |- (h::t = []) = F : thm