Лучший способ выполнить универсальное создание в Coq

Предположим, у меня есть гипотеза H : forall ( x : X ), P x и переменная x : X в контексте. Я хочу выполнить универсальное инстанцирование и получить новую гипотезу H' : P x. Как это сделать наиболее безболезненно? Видимо apply H in x не работает. assert ( P x ), за которым следует apply H, делает, но это может стать очень запутанным, если P сложное.

Есть похожий вопрос, который кажется несколько связанным. Хотя не уверен, что его можно здесь применить.


person user287393    schedule 05.09.2014    source источник


Ответы (3)


pose proof (H x) as H'.

Скобки необязательны.

person Ptival    schedule 05.09.2014

Если вам нужна новая гипотеза, вы можете использовать ответ @Ptival или

assert (H' := H x).

Можно ли заменить существующую гипотезу

specialize (H x).
person max taldykin    schedule 06.09.2014

Вы можете использовать что-то вроде generalize (H x); intros Hx: generalize добавит (H x) в качестве нового значения перед текущей целью, а intros поместит его в ваши гипотезы.

person Virgile    schedule 05.09.2014