Из справочного руководства Coq (8.5p1) у меня сложилось впечатление, что revert
является обратным intro
, но в определенной степени generalize
тоже. Например, revert
и generalize dependent
ниже кажутся одинаковыми.
Goal forall x y: nat, 1 + x = 2 + y -> 1 + x + 5 = 7 + y.
intros x y. revert x y.
intros x y. generalize dependent y. generalize dependent x.
Просто generalize
мощнее revert
?
Кроме того, документация немного циклична в объяснении вещей о generalize
:
Эта тактика применима к любой цели. Он обобщает вывод относительно некоторого термина.
Похож ли generalize
на оператор абстракции в лямбда-исчислении?