作为证明,如果我对不是最终定理的论点进行归纳,那么我会得到普遍量化的归纳假设。我发现自己反复写这样的战术:
match goal with
| [H : forall (esub : expr) (x : exprvar) (tsub t : T) (Gamma_ : Gamma),
(internalType Gamma_ ?Theta_ ?d esub tsub) ->
(internalType (gamma_evar x tsub :: ?Gamma_) ?Theta_ ?d ?e t)->
internalType Gamma_ ?Theta_ ?d (esubst_expr esub x ?e) t,
esub : expr,
xvar : exprvar,
tsub : T,
t : T,
Gamma_ : Gamma,
H1 : internalType ?Gamma_ ?Theta ?d ?esub ?xsub,
H2 : internalType (gamma_evar ?xvar ?tsub :: ?Gamma_) ?Theta ?d ?e ?t
|- _]
也就是说,我搜索归纳假设,并寻找与之统一的论点以使其专门化。然后,我做specialize (Hypothesis Arg1 Arg2...)
感觉就像样板,但是我仍然需要为使用它的每个引理编写一个不同的版本。有没有办法: