Уже существует такая тактика, она называется enough
, так как «достаточно показать, что P».Предполагается, что P
, и теперь вы можете закончить доказательство, используя P
.Когда вы закончите, вы должны доказать P
.
Если его легко закончить, вы можете использовать by
(так же, как для assert
).Я часто делаю enough (bla bla) by (subst; auto).
или что-то подобное, что ставит меня перед целью bla bla
.
Эта тактика также может оказаться полезной, т. Е. Если вы не хотите вводить весь сложный антецедент в enough
заявление:
Ltac postpone_antecedent H :=
match type of H with ?A -> _ =>
let Q := fresh in enough A as Q ; [specialize (H Q) | ]
end.