如何在Coq中切换当前目标?

时间:2015-12-22 17:10:10

标签: coq coq-tactic

是否可以切换当前目标或子目标以在Coq中证明?

例如,我有一个这样的目标(来自eexists):

______________________________________(1/1)
?s > 0 /\ r1 * (r1 + s1) + ?s = r3 * (r3 + s2)

我想做的是split并首先证明正确的合奏。我认为这将给出存在变量?s的值,而左连词应该只是一个简化。

但默认情况下split会将左合并?s > 0设置为当前目标。

______________________________________(1/2)
?s > 0
______________________________________(2/2)
r1 * (r1 + s1) + ?s = r3 * (r3 + s2)

我知道我可以在2:前加上战术来操作第二个子目标,但这很尴尬因为

1)我看不到目标#2和

的假设

2)如果它在不同的背景下,目标#2可能是第三个目标或第k个目标。证明不可移植。

这就是我想将第二个目标设定为当前目标的原因。

BTW,我正在使用CoqIDE(8.5)。

2 个答案:

答案 0 :(得分:14)

您可以使用Focus 2专注于第二个目标。

答案 1 :(得分:0)

2021 年更新:使用 2:

Focus 2 至少从 8.13 开始被弃用:

The Focus command is deprecated; use '2: {' instead [deprecated-focus,deprecated]