Coq:如何将一个假设应用于另一个假设

时间:2013-11-22 23:52:19

标签: coq

假设我在上下文中有两个假设a_b : A -> Ba : 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假设,我不想这样做。

2 个答案:

答案 0 :(得分:10)

pose proof (a_b a) as B.

应该做你想做的事。

答案 1 :(得分:0)

您可以只使用“在a中应用a_b”。