IPSPEC
PairRules.IPSPEC : (term -> thm -> thm)
Specializes a theorem, with type instantiation if necessary.
This rule specializes a paired quantification as does
PSPEC
; it differs from it in also instantiating the type if
needed:
A |- !p:ty.tm
----------------------- IPSPEC "q:ty'"
A |- tm[q/p]
(where q
is free for p
in tm
,
and ty'
is an instance of ty
).
IPSPEC
fails if the input theorem is not universally
quantified, if the type of the given term is not an instance of the type
of the quantified variable, or if the type variable is free in the
assumptions.
Drule.ISPEC
, Drule.INST_TY_TERM
, Thm.INST_TYPE
, PairRules.IPSPECL
, PairRules.PSPEC
, DB.match