INST_TYPE : (hol_type,hol_type) subst -> thm -> thm
A |- t ----------------------------------- INST_TYPE[vty1|->ty1,..., vtyn|->tyn] A |- t[ty1,...,tyn/vty1,...,vtyn]where none of the types vtyi are free in the assumption list. Variables will be renamed if necessary to prevent distinct variables becoming identical after the instantiation.
- SPECL [``a:num``, ``b:num``] EQ_SYM_EQ; uncaught exception HOL_ERRThe failure occurred because EQ_SYM_EQ contains polymorphic types. The desired specialization can be obtained by using INST_TYPE:
- load "numTheory"; > val it = () : unit - SPECL [(--`a:num`--), (--`b:num`--)] (INST_TYPE [``:'a`` |-> ``:num``] EQ_SYM_EQ); > val it = |- (a = b) = (b = a) : thm