Coq: как применить одну гипотезу к другой

Предположим, у меня есть две гипотезы в контексте,a_b : A -> B а такжеa : A, Я должен быть в состоянии подать заявкуa_b вa чтобы получить дальнейшую гипотезу,b : B.

То есть, учитывая следующее состояние:

1 subgoal
A : Prop
B : Prop
C : Prop
a_b : A -> B
a : A
______________________________________(1/1)
C

Там должна быть какая-то тактика,foo (a_b a), чтобы преобразовать это в следующее состояние:

1 subgoal
A : Prop
B : Prop
C : Prop
a_b : A -> B
a : A
b : B
______________________________________(1/1)
C

Но я не знаю чтоfoo является.

Одна вещь, которую я могу сделать, это:

 assert B as b.
 apply a_b.
 exact a.

но это довольно многословно, и масштабируется плохо, если вместоa_b a У меня есть несколько большее выражение.

Еще одна вещь, которую я могу сделать:

specialize (a_b a).

но этозаменяет a_b гипотеза, которую я не хочу делать.

Ответы на вопрос(1)

Ваш ответ на вопрос